def query(self): """Query all remote devices for data. Args: None Returns: None """ # Initialize key variables config = self.config # Check for lock and pid files if os.path.exists(self.lockfile_parent) is True: log_message = ( 'Lock file %s exists. Multiple API daemons running ' 'API may have died ' 'catastrophically in the past, in which case the lockfile ' 'should be deleted. ' '') % (self.lockfile_parent) log.log2see(1083, log_message) if os.path.exists(self.pidfile_parent) is True: log_message = ( 'PID file: %s already exists. Daemon already running? ' 'If not, it may have died catastrophically in the past ' 'in which case you should use --stop --force to fix.' '') % (self.pidfile_parent) log.log2see(1084, log_message) ###################################################################### # # Assign options in format that the Gunicorn WSGI will accept # # NOTE! to get a full set of valid options pprint(self.cfg.settings) # in the instantiation of StandaloneApplication. The option names # do not exactly match the CLI options found at # http://docs.gunicorn.org/en/stable/settings.html # ###################################################################### options = { 'bind': '%s:%s' % (config.listen_address(), config.bind_port()), 'accesslog': config.web_log_file(), 'errorlog': config.web_log_file(), 'capture_output': True, 'pidfile': self.pidfile_child, 'loglevel': config.log_level(), 'workers': _number_of_workers(), } # Log so that user running the script from the CLI knows that something # is happening log_message = ('Infoset API running on %s:%s and logging to file %s.' '') % (config.listen_address(), config.bind_port(), config.web_log_file()) log.log2info(1022, log_message) # Run StandaloneApplication(API, options).run()
def main(): """Process agent data. Args: None Returns: None """ # Get configuration config = reference.ReferenceSampleConfig() api = reference.ReferenceSampleAPI(config) agent_name = config.agent_name() devicename = config.prefix id_agent = reference.get_id_agent(agent_name, test=True) # Instantiate an agent report = reference.ReferenceSampleAgent(config, devicename, test=True) # Populate data and post report.populate_dict(data2post()) success = report.post() # Posting success if success is True: # Log success log_message = ('Successfully posted test data for agent ID %s' '') % (id_agent) log.log2see(1015, log_message) # Try to retrieve data uri = ('db/agent/getidagent/%s') % (id_agent) results = api.get(uri) # print results if results['exists'] is True: log_message = ('Successfully retrieved test data for agent ID %s' '') % (id_agent) log.log2see(1034, log_message) print('\nOK\n') else: log_message = ('WARNING: Contacted this infoset server. ' 'The data for the test agent ID %s is not present ' 'in the database. Ingester has not added agent to ' 'the database' '') % (id_agent) log.log2see(1035, log_message) print('\nOK - Ingester not running\n') else: log_message = ('Failed to post data to the local infoset server. ' 'Review the installation steps ' 'and verify whether the API is running.') log.log2die(1039, log_message) print('\nFail\n')
def main(): """Process agent data. Args: None Returns: None """ # Get configuration config = reference.ReferenceSampleConfig() api = reference.ReferenceSampleAPI(config) agent_name = config.agent_name() devicename = config.prefix id_agent = reference.get_id_agent(agent_name, test=True) # Instantiate an agent report = reference.ReferenceSampleAgent(config, devicename, test=True) # Populate data and post report.populate_dict(data2post()) success = report.post() # Posting success if success is True: # Log success log_message = ( 'Successfully posted test data for agent ID %s' '') % (id_agent) log.log2see(1015, log_message) # Try to retrieve data uri = ('/agents?id_agent=%s') % (id_agent) results = api.get(uri) if bool(results) is True: if isinstance(results, dict) is True: # print results if results['exists'] is True: log_message = ( 'Successfully retrieved test data for agent ID %s' '') % (id_agent) log.log2see(1132, log_message) print('\nOK\n') else: log_message = ( 'WARNING: Contacted this infoset server. ' 'The data for the test agent ID %s is not present ' 'in the database. Ingester has not added agent to ' 'the database' '') % (id_agent) log.log2see(1133, log_message) print("""\ OK, but Ingester has not updated the database yet. \ Run test in a minute and this message should change. \ If not, the Ingester may not be running. """) else: log_message = ( 'Failed to retrieve posted data to the local infoset ' 'server. Review the installation steps ' 'and verify whether the API is running.') log.log2die(1140, log_message) print('\nFail\n') else: log_message = ( 'Failed to retrieve posted data to the local infoset ' 'server. Review the installation steps ' 'and verify whether the API is running.') log.log2die(1141, log_message) print('\nFail\n') else: log_message = ( 'Failed to post data to the local infoset server. ' 'Review the installation steps ' 'and verify whether the API is running.') log.log2die(1142, log_message) print('\nFail\n')