def _deregister_not_running_services(): try: ship = get_ship_name() except: ship = get_ship_ip() services = _get_local_services() running_containers_ids = _get_running_container_ids() for service_id in services.keys(): container_id, is_subservice = _get_container_id_with_subservice( service_id) if container_id in running_containers_ids: continue if not is_subservice: name = services[service_id]['Service'] kv.update_container_status('crashed', ship=ship, name=name, container_id=container_id) deregister_services(container_id) services_keys = kv.kv_list('ships/{}/service/'.format(ship)) or [] for service_key in services_keys: container_id = service_key.split('/')[-1] if container_id not in running_containers_ids: kv.update_container_status('crashed', key=service_key) deregister_services(container_id)
def _deregister_not_running_services(): try: ship = get_ship_name() except: ship = get_ship_ip() services = _get_local_services() running_containers_ids = _get_running_container_ids() for service_id in services.keys(): container_id, is_subservice = _get_container_id_with_subservice(service_id) if container_id in running_containers_ids: continue if not is_subservice: name = services[service_id]['Service'] kv.update_container_status('crashed', ship=ship, name=name, container_id=container_id) deregister_services(container_id) services_keys = kv.kv_list('ships/{}/service/'.format(ship)) or [] for service_key in services_keys: container_id = service_key.split('/')[-1] if container_id not in running_containers_ids: kv.update_container_status('crashed', key=service_key) deregister_services(container_id)
def GET(self): try: catalog_nodes_dict = consul_query('catalog/nodes') result = [] running_armada_services = _get_running_armada_services() ship_ip_to_armada = _create_ip_to_service(running_armada_services) current_ship_ip = get_ship_ip() for consul_node in catalog_nodes_dict: ship_ip = consul_node['Address'] ship_name = get_ship_name(ship_ip) armada_service = ship_ip_to_armada.get(ship_ip, {}) service_armada_address = armada_service.get('address', ship_ip) service_armada_status = armada_service.get('status', '?') service_armada_version = get_armada_version( service_armada_address) try: ship_role = get_ship_role(ship_ip) except: ship_role = '?' is_current = (ship_ip == current_ship_ip) armada_instance = { 'name': ship_name, 'role': ship_role, 'address': service_armada_address, 'status': service_armada_status, 'version': service_armada_version, 'microservice_id': armada_service.get('microservice_id'), 'is_current': is_current } result.append(armada_instance) except Exception as e: return self.status_exception('Could not get armada info.', e) return self.status_ok({'result': result})
def GET(self): try: catalog_nodes_dict = consul_query("catalog/nodes") result = [] running_armada_services = _get_running_armada_services() ship_ip_to_armada = _create_ip_to_service(running_armada_services) current_ship_ip = get_ship_ip() for consul_node in catalog_nodes_dict: ship_ip = consul_node["Address"] ship_name = get_ship_name(ship_ip) armada_service = ship_ip_to_armada.get(ship_ip, {}) service_armada_address = armada_service.get("address", ship_ip) service_armada_status = armada_service.get("status", "?") service_armada_version = get_armada_version(service_armada_address) try: ship_role = get_ship_role(ship_ip) except: ship_role = "?" is_current = ship_ip == current_ship_ip armada_instance = { "name": ship_name, "role": ship_role, "address": service_armada_address, "status": service_armada_status, "version": service_armada_version, "microservice_id": armada_service.get("microservice_id"), "is_current": is_current, } result.append(armada_instance) except Exception as e: return self.status_exception("Could not get armada info.", e) return self.status_ok({"result": result})
def GET(self): try: catalog_nodes_dict = consul_query('catalog/nodes') result = [] running_armada_services = _get_running_armada_services() ship_ip_to_armada = _create_ip_to_service(running_armada_services) current_ship_ip = get_ship_ip() for consul_node in catalog_nodes_dict: ship_ip = consul_node['Address'] ship_name = get_ship_name(ship_ip) armada_service = ship_ip_to_armada.get(ship_ip, {}) service_armada_address = armada_service.get('address', ship_ip) service_armada_status = armada_service.get('status', '?') service_armada_version = get_armada_version(service_armada_address) try: ship_role = get_ship_role(ship_ip) except: ship_role = '?' is_current = (ship_ip == current_ship_ip) armada_instance = { 'name': ship_name, 'role': ship_role, 'address': service_armada_address, 'status': service_armada_status, 'version': service_armada_version, 'microservice_id': armada_service.get('microservice_id'), 'is_current': is_current } result.append(armada_instance) except Exception as e: return self.status_exception('Could not get armada info.', e) return self.status_ok({'result': result})