def _register_services(self, dispatcher): url = self.parameters.get('registration_url') if not url: return services = self.parameters.get('services') if not services: return for service in services: if service.get('enabled', True): break else: return connection = Connection(url) for _ in range(10): try: connection.request('GET') except (ConnectionFailed, IOError): sleep(3) else: break else: raise Exception('failed to register services') host = self.host for service in services: if service.get('enabled', True): path = '/spire.service/%s' % service['id'] dispatcher.mount( ServiceEndpoint(self, service, path=path, shared_path='/spire.service')) body = { 'id': service['id'], 'pid': self.pid, 'required': service['required'], 'endpoint': 'http://%s%s' % (host, path) } if 'dependencies' in service: body['dependencies'] = service['dependencies'] connection.request('POST', body=body, mimetype='application/json', serialize=True)
def instruct(self, payload, ignore_response=False, timeout=None): connection = Connection(self.endpoint, timeout=timeout) try: response = connection.request('POST', body=payload, mimetype='application/json', serialize=True) except ConnectionFailed: if ignore_response: return else: raise if ignore_response: return elif not response.ok: raise Exception('response invalid: %s' % response.status) content = response.unserialize() if content['status'] == 'ready': self.status = 'ready' self.stage = None else: self.status = content['status'] self.stage = content['stage'] if self.status == 'restarting': self.registered = False
def _register_services(self, dispatcher): url = self.parameters.get("registration_url") if not url: return services = self.parameters.get("services") if not services: return for service in services: if service.get("enabled", True): break else: return connection = Connection(url) for _ in range(10): try: connection.request("GET") except (ConnectionFailed, IOError): sleep(3) else: break else: raise Exception("failed to register services") host = self.host for service in services: if service.get("enabled", True): path = "/spire.service/%s" % service["id"] dispatcher.mount(ServiceEndpoint(self, service, path=path, shared_path="/spire.service")) body = { "id": service["id"], "pid": self.pid, "required": service["required"], "endpoint": "http://%s%s" % (host, path), } if "dependencies" in service: body["dependencies"] = service["dependencies"] connection.request("POST", body=body, mimetype="application/json", serialize=True)
def _register_services(self, dispatcher): url = self.parameters.get('registration_url') if not url: return services = self.parameters.get('services') if not services: return for service in services: if service.get('enabled', True): break else: return connection = Connection(url) for _ in range(10): try: connection.request('GET') except (ConnectionFailed, IOError): sleep(3) else: break else: raise Exception('failed to register services') host = self.host for service in services: if service.get('enabled', True): path = '/spire.service/%s' % service['id'] dispatcher.mount(ServiceEndpoint(self, service, path=path, shared_path='/spire.service')) body = {'id': service['id'], 'pid': self.pid, 'required': service['required'], 'endpoint': 'http://%s%s' % (host, path)} if 'dependencies' in service: body['dependencies'] = service['dependencies'] connection.request('POST', body=body, mimetype='application/json', serialize=True)