def save_service_state(self, service_id): """Save service state.""" service = self.services[service_id] self.bootstrap[str(service.service_id)] = { "name": service.name, "params": serialize.serialize(service.params), "callbacks": serialize.serialize(service.callbacks), "configuration": serialize.serialize(service.configuration) } self.save()
def save_service_state(self, service_id): """Save service state.""" service = self.services[service_id] self.bootstrap[str(service.service_id)] = { "name": service.name, "params": serialize.serialize(service.params) } self.storage[str(service.service_id)] = \ serialize.serialize(service.storage) self.save()
def connect(gargs, cmd, expected=200, request=None, headers=None): """ Run command. """ if not headers: headers = get_headers(gargs) url = "%s://%s:%s" % (gargs.transport, gargs.host, gargs.port) method = getattr(requests, cmd[0].lower()) response = method(url + cmd[1], headers=headers, json=serialize(request)) try: data = json.loads(response.text) except json.decoder.JSONDecodeError: data = {} if response.status_code != expected: msg = "%u: %s (%s)" % \ (data['status_code'], data['title'], data['detail']) print(msg) sys.exit() return response, data
def to_mongo(self, value): try: return serialize.serialize(value) except ValueError as ex: raise ValidationError(ex)
def __write_points_worker(self, points): try: self.influxdb_client.write_points(points=serialize(points)) except Exception as ex: self.log.exception(ex) return True return False
def write_error(self, status_code, **kwargs): """Write error as JSON message.""" self.set_header('Content-Type', 'application/json') value = { "title": self._reason, "status_code": status_code, "detail": kwargs.get("message"), } self.finish(json.dumps(serialize(value), indent=4))
def register_service(self, service_id, name, params): """Register new service.""" if str(service_id) in self.bootstrap: raise ValueError("Worker %s already registered" % service_id) params['service_id'] = service_id params['project_id'] = self.project_id service = self._start_service(service_id, name, params) self.bootstrap[str(service_id)] = { "name": service.name, "params": serialize.serialize(service.params) } self.save() return self.services[service_id]
def handle_callbacks(self, params=None, name="default"): """Invoke registered callbacks.""" if name not in self.callbacks: return callback_type = self.callbacks[name]['callback_type'] argument = params if params else self callback = self.callbacks[name]['callback'] self.log.info("Handling callback %s (%s)", name, callback_type) # if type is native just invoke it with the specified params if self.callbacks[name]['callback_type'] == CALLBACK_NATIVE: callback(params) return # if type is REST make a post with the serialized params if self.callbacks[name]['callback_type'] == CALLBACK_REST: response = requests.post(url=callback, json=serialize(argument)) self.log.info("POST %s - %u", callback, response.status_code)
def write_as_json(self, value): """Return reply as a json document.""" self.write(json.dumps(serialize(value), indent=4))