def InstallerNotifyServer():
 config_lib.CONFIG.SetWriteBack('temp.yaml')
 try:
  log_data = open(config_lib.CONFIG['Installer.logfile'], 'rb').read()
 except (IOError, OSError):
  log_data = ''
 comms.CommsInit().RunOnce()
 client = comms.GRRHTTPClient(ca_cert=config_lib.CONFIG['CA.certificate'], private_key=config_lib.CONFIG.Get('Client.private_key'))
 client.client_worker.SendReply(session_id=rdfvalue.FlowSessionID(flow_name='InstallationFailed'), message_type=rdf_flows.GrrMessage.Type.STATUS, request_id=0, response_id=0, rdf_value=rdf_flows.GrrStatus(status=rdf_flows.GrrStatus.ReturnedStatus.GENERIC_ERROR, error_message='Installation failed.', backtrace=log_data[(-10000):]))
 client.RunOnce()

def InstallerNotifyServer ( ) : config_lib . CONFIG . SetWriteBack ( 'temp.yaml' ) try : log_data = open ( config_lib . CONFIG [ 'Installer.logfile' ] , 'rb' ) . read ( ) except ( IOError , OSError ) : log_data = '' comms . CommsInit ( ) . RunOnce ( ) client = comms . GRRHTTPClient ( ca_cert = config_lib . CONFIG [ 'CA.certificate' ] , private_key = config_lib . CONFIG . Get ( 'Client.private_key' ) ) client . client_worker . SendReply ( session_id = rdfvalue . FlowSessionID ( flow_name = 'InstallationFailed' ) , message_type = rdf_flows . GrrMessage . Type . STATUS , request_id = 0 , response_id = 0 , rdf_value = rdf_flows . GrrStatus ( status = rdf_flows . GrrStatus . ReturnedStatus . GENERIC_ERROR , error_message = 'Installation failed.' , backtrace = log_data [ ( - 10000 ) : ] ) ) client . RunOnce ( )
an emergency function invoked when the client installation failed .