def get_services_by_name_and_host(servicename, hostid): """ GET /system/services/<servicename>/<hostid> :param request_inputs: :param servicename: :param hostid: :return: """ request_inputs = anchore_engine.services.common.do_request_prep( request, default_params={}) user_auth = request_inputs['auth'] params = request_inputs['params'] return_object = [] httpcode = 500 try: service_records = catalog.get_service(user_auth, servicename=servicename, hostid=hostid) for service_record in service_records: return_object.append( make_response_service(user_auth, service_record, params)) httpcode = 200 except Exception as err: return_object = anchore_engine.services.common.make_response_error( err, in_httpcode=httpcode) httpcode = return_object['httpcode'] return (return_object, httpcode)
def get_simplequeue_endpoint(userId): global localconfig, headers if localconfig == None: localconfig = anchore_engine.configuration.localconfig.get_config() base_url = "" try: service = None service_reports = catalog.get_service(userId, servicename='simplequeue') if service_reports: service = service_reports[0] if not service: raise Exception("cannot locate registered simplequeue service") endpoint = service['base_url'] if endpoint: apiversion = service['version'] base_url = '/'.join([endpoint, apiversion, 'queues']) else: raise Exception("cannot load valid endpoint from service record") except Exception as err: raise Exception("could not find valid simplequeue endpoint - exception: " + str(err)) return(base_url)
def get_service_detail(): global apiext_status """ GET /system/status :return: list of service details """ request_inputs = anchore_engine.services.common.do_request_prep( request, default_params={}) user_auth = request_inputs['auth'] method = request_inputs['method'] params = request_inputs['params'] httpcode = 500 service_detail = {} try: try: try: service_detail['service_states'] = [] try: up_services = {} service_records = catalog.get_service(user_auth) for service in service_records: el = make_response_service(user_auth, service, params) service_detail['service_states'].append(el) if el['servicename'] not in up_services: up_services[el['servicename']] = 0 if el['status']: up_services[el['servicename']] += 1 except Exception as err: pass service_detail['queues'] = {} ret_queues = {} try: queues = simplequeue.get_queues(user_auth) for queuename in queues: ret_queues[queuename] = {} qlen = simplequeue.qlen(user_auth, queuename) ret_queues[queuename]['qlen'] = qlen service_detail['queues'] = ret_queues except: pass service_detail['error_event'] = [] try: events = catalog.get_event(user_auth) for event in events: el = {} for k in ['message_ts', 'hostId', 'message', 'level']: el[k] = event[k] service_detail['error_event'].append(el) except: pass httpcode = 200 except Exception as err: return_object = anchore_engine.services.common.make_response_error( err, in_httpcode=httpcode) httpcode = return_object['httpcode'] except: service_detail = {} return_object = service_detail except Exception as err: return_object = str(err) apiext_status.update(return_object) return (return_object, httpcode)
def get_service_detail(): """ GET /system/status :return: list of service details """ request_inputs = anchore_engine.services.common.do_request_prep( request, default_params={}) user_auth = request_inputs['auth'] method = request_inputs['method'] params = request_inputs['params'] httpcode = 500 service_detail = {} try: try: try: service_detail['service_states'] = [] try: up_services = {} service_records = catalog.get_service(user_auth) for service in service_records: el = make_response_service(user_auth, service, params) service_detail['service_states'].append(el) if el['servicename'] not in up_services: up_services[el['servicename']] = 0 if el['status']: up_services[el['servicename']] += 1 except Exception as err: pass # Bring back when eventing subsystem is utilized #service_detail['error_event'] = [] #try: # events = catalog.get_event(user_auth) # for event in events: # el = {} # for k in ['message_ts', 'hostId', 'message', 'level']: # el[k] = event[k] # service_detail['error_event'].append(el) #except: # pass httpcode = 200 except Exception as err: return_object = anchore_engine.services.common.make_response_error( err, in_httpcode=httpcode) httpcode = return_object['httpcode'] except: service_detail = {} return_object = service_detail except Exception as err: return_object = str(err) return (return_object, httpcode)