def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, name): reqDebugLog(req) try: if req.params: params = req.params.copy() if set(params).issubset(self.__rel_parameters): utc_tstp_format = "%Y-%m-%dT%H:%M:%SZ" for key in params: params[key] = int(datetime.datetime.strptime(params[key], utc_tstp_format).replace(tzinfo=datetime.timezone.utc).timestamp()) resp.body = self.__ce_adapter.getRelative(name, **params) elif set(params).issubset(self.__abs_parameters): for key in params: params[key] = int(params[key]) resp.body = self.__ce_adapter.getAbsolut(name, **params) else: raise TypeError("unknown arguments") else: resp.body = self.__ce_adapter.getRelative(name) resp.content_type = falcon.MEDIA_TEXT resp.status = falcon.HTTP_200 except TypeError as ex: resp.status = falcon.HTTP_400 reqErrorLog(req, ex) except ValueError as ex: resp.status = falcon.HTTP_400 reqErrorLog(req, ex) except NotFound as ex: resp.status = falcon.HTTP_404 reqErrorLog(req, ex) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_post(self, req: falcon.request.Request, resp: falcon.response.Response): reqDebugLog(req) try: data = json.load(req.bounded_stream) job_id = base64.urlsafe_b64encode( hashlib.md5("{}{}".format(data[model.NewJobRequest.ds_id], data[model.NewJobRequest.hash]). encode()).digest()).decode().rstrip('=') if job_id.encode() not in self.__kvs.keys(): logger.info("new job '{}'".format(job_id)) job_data = dict() job_data[model.Job.ds_id] = data[model.NewJobRequest.ds_id] job_data[model.Job.init_sources] = [{ "init_source": data[model.NewJobRequest.file_name] }] job_data[model.Job.status] = model.JobStatus.pending job_data[model.Job.stages] = dict() job_data[model.Job.pipeline_id] = None job_data[model.Job.created] = '{}Z'.format( datetime.datetime.utcnow().isoformat()) self.__kvs.set(job_id, json.dumps(job_data)) self.__job_queue.put_nowait(job_id) resp.content_type = falcon.MEDIA_TEXT resp.body = job_id resp.status = falcon.HTTP_200 else: resp.content_type = falcon.MEDIA_TEXT resp.body = job_id resp.status = falcon.HTTP_409 except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): if req.params and set(req.params).issubset(self.__parameters): if len(req.params) == 3: try: resp.body = json.dumps(list(self.__kubectl_manager.operationWorkload(req.path.rsplit("/", 1)[-1], **req.params))) resp.status = falcon.HTTP_200 except Exception: resp.status = falcon.HTTP_400 elif len(req.params) == 2: try: resp.body = json.dumps(self.__kubectl_manager.operationNamespaceWorkloads(req.path.rsplit("/", 1)[-1], **req.params)) resp.status = falcon.HTTP_200 except Exception: resp.status = falcon.HTTP_400 elif len(req.params) == 1: try: if "*" in req.params.values(): resp.body = json.dumps(self.__kubectl_manager.operationAllWorkloads(req.path.rsplit("/", 1)[-1])) else: resp.body = json.dumps(self.__kubectl_manager.operationProjectWorkloads(req.path.rsplit("/", 1)[-1], **req.params)) resp.status = falcon.HTTP_200 except Exception: resp.status = falcon.HTTP_400 else: resp.status = falcon.HTTP_400
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, job_id): reqDebugLog(req) try: resp.content_type = falcon.MEDIA_JSON try: resp.body = json.dumps(dict(self.__jobs_handler.get_job(job_id))) except KeyError: resp.body = self.__db_handler.get(b"jobs-", job_id.encode()) resp.status = falcon.HTTP_200 except KeyError as ex: resp.status = falcon.HTTP_404 reqErrorLog(req, ex) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get( self, req: falcon.request.Request, resp: falcon.response.Response, resource_id: int = None, ): resp.body = "OK"
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): if req.params and set(req.params).issubset(self.__parameters): if len(req.params) == 2: try: resp.body = json.dumps(list(self.__rancher_manager.operationNamespace(req.path.rsplit("/", 1)[-1], **req.params))) resp.status = falcon.HTTP_200 except Exception: resp.status = falcon.HTTP_400 elif len(req.params) == 1: try: resp.body = json.dumps(list(self.__rancher_manager.operationProject(req.path.rsplit("/", 1)[-1], **req.params))) resp.status = falcon.HTTP_200 except Exception: resp.status = falcon.HTTP_400 else: resp.status = falcon.HTTP_400
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, service, api, resource=None): reqDebugLog(req) try: if service not in self.__srv_map: raise RuntimeError(falcon.HTTP_404) url = self.__srv_map[service] + "/" + api if resource: url = url + "/" + resource response = requests.get(url=url, params=req.params) if not response.status_code == 200: raise RuntimeError("{} {}".format(response.status_code, response.reason)) resp.body = response.content resp.content_type = response.headers.get("content-type") except RuntimeError as ex: resp.status = str(ex) reqErrorLog(req, ex) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_post(self, req: falcon.request.Request, resp: falcon.response.Response, task_name: str) -> None: try: (task, validation), preprocessors = self._tasks[task_name] except KeyError: raise falcon.HTTPBadRequest( "Undefined task", "{} is undefined task".format(task_name)) payload = self._validate_payload(req) logger.info("Received message for Queue %s, Task %s, %s", self._queue_name, task_name, payload) try: message = payload['message'] except KeyError: raise falcon.HTTPBadRequest("Invalid JSON", "JSON must have message field") task.apply_async(kwargs=_validate( self._recurse(message, preprocessors), validation), serializer='json', compression='zlib', countdown=payload.get('delay', 0)) if self._enable_database: parsely.database.MessageLog.create(self._queue_name, task_name, json.dumps(message)) parsely.database.MessageLog.eliminate(self._queue_name, task_name) resp.status = falcon.HTTP_202 resp.body = "{}"
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): version = self.__rancher_manager.getVersion() if version: resp.body = version resp.status = falcon.HTTP_200 else: resp.status = falcon.HTTP_404
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): try: resp.status = falcon.HTTP_200 resp.content_type = falcon.MEDIA_TEXT resp.body = yaml.dump(self.__workload_configs.list()) except Exception as ex: logger.error("can't list workload configs - {}".format(ex)) resp.status = falcon.HTTP_500
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, project, namespace): try: items = self.__browser.listWorkloads(project, namespace) resp.status = falcon.HTTP_200 resp.content_type = falcon.MEDIA_JSON resp.body = json.dumps(items) except Exception: resp.status = falcon.HTTP_404
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, filename: str) -> None: resp.content_type = { '.css': "text/css", '.js': "application/javascript", }[os.path.splitext(filename)[1]] resp.body = self._read_resource(filename)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): reqDebugLog(req) try: resp.content_type = falcon.MEDIA_JSON resp.body = json.dumps(self.__dm.devices()) resp.status = falcon.HTTP_200 except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): reqDebugLog(req) try: resp.content_type = falcon.MEDIA_JSON resp.body = json.dumps(self.__db_handler.list_keys(b"models-")) resp.status = falcon.HTTP_200 except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): resp.status = falcon.HTTP_200 resp.content_type = falcon.MEDIA_TEXT resp.body = json.dumps( { "name": config.Assistant.name, }, indent=4 )
def on_post(self, req: falcon.request.Request, resp: falcon.response.Response): reqDebugLog(req) try: req_body = json.load(req.bounded_stream) resp.body = self.__jobs_handler.create(req_body["model_id"]) resp.content_type = falcon.MEDIA_TEXT resp.status = falcon.HTTP_200 except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get( self, req: falcon.request.Request, resp: falcon.response.Response, ) -> None: task_names = self._tasks.keys() resp.content_type = 'text/html' resp.body = self._rendler.render("task_list.html", queue_name=self._queue_name, task_names=task_names)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): resp.status = falcon.HTTP_200 resp.content_type = falcon.MEDIA_TEXT resp.body = json.dumps( { "server": config.Rancher.server, "default_context_name": config.Rancher.default_context_name, "default_context": config.Rancher.default_context, "bearer_token": config.Rancher.bearer_token }, indent=4 )
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): try: kubeconfig = getKubeconfig("{}/{}".format(config.Kubeconfig.path, config.Kubeconfig.file)) if kubeconfig: resp.status = falcon.HTTP_200 resp.content_type = falcon.MEDIA_TEXT resp.body = kubeconfig else: resp.status = falcon.HTTP_404 except Exception as ex: logger.error("can't get kubeconfig at '{}/{}' - {}".format(config.Kubeconfig.path, config.Kubeconfig.file, ex)) resp.status = falcon.HTTP_500
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): reqDebugLog(req) try: data = dict() for key in self.__kvs.keys(): data[key.decode()] = json.loads(self.__kvs.get(key)) resp.status = falcon.HTTP_200 resp.content_type = falcon.MEDIA_JSON resp.body = json.dumps(data) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, model_id: str): reqDebugLog(req) try: resp.content_type = falcon.MEDIA_JSON resp.body = self.__db_handler.get(b"models-", model_id.encode()) resp.status = falcon.HTTP_200 except KeyError as ex: resp.status = falcon.HTTP_404 reqErrorLog(req, ex) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, module): reqDebugLog(req) try: resp.body = self.__kvs.get(module) resp.status = falcon.HTTP_200 resp.content_type = falcon.MEDIA_JSON except snorkels.GetError as ex: resp.status = falcon.HTTP_404 reqErrorLog(req, ex) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_post(self, req: falcon.request.Request, resp: falcon.response.Response, ds_id): reqDebugLog(req) try: f_name, hash = self.__stg_handler.save(req.stream) event = self.__notif_handler.add(hash, ds_id, f_name) event.wait() resp.content_type = falcon.MEDIA_JSON resp.body = json.dumps({"checksum": hash, "job_id": event.job_id}) resp.status = falcon.HTTP_200 except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, task_name: str) -> None: if self._enable_database: messages = parsely.database.MessageLog.iter_by_queue_name_and_task_name( self._queue_name, task_name) else: messages = iter([]) resp.content_type = 'text/html' resp.body = self._rendler.render("enqueue.html", queue_name=self._queue_name, task_name=task_name, messages=messages)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): reqDebugLog(req) try: items = self.__ce_adapter.listContainers() resp.content_type = falcon.MEDIA_JSON resp.body = json.dumps(items) resp.status = falcon.HTTP_200 except NotFound as ex: resp.status = falcon.HTTP_404 reqErrorLog(req, ex) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, job): reqDebugLog(req) try: resp.content_type = falcon.MEDIA_JSON data = dict(self.__job_handler.get_job(job)) data["models"] = [model.id for model in data["models"]] resp.body = json.dumps(data) resp.status = falcon.HTTP_200 except KeyError as ex: resp.status = falcon.HTTP_404 reqErrorLog(req, ex) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, job): reqDebugLog(req) try: data = self.__kvs.get(job) resp.content_type = falcon.MEDIA_JSON resp.body = data.decode() resp.status = falcon.HTTP_200 except snorkels.GetError as ex: resp.status = falcon.HTTP_404 reqErrorLog(req, ex) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response, resource): reqDebugLog(req) try: data = self.__kvs.get(resource) resp.content_type = crud_conf.Endpoint.content_type resp.body = data.decode() resp.status = falcon.HTTP_200 except snorkels.GetError as ex: resp.status = falcon.HTTP_404 reqErrorLog(req, ex) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): reqDebugLog(req) try: if req.params: if "refresh" in req.params and req.params["refresh"] == "true": resp.body = json.dumps( self.__updater.getAvailableUpdates(refresh=True)) else: raise BadRequest( "unknown parameters or values - {}".format(req.params)) else: resp.body = json.dumps(self.__updater.getAvailableUpdates()) resp.content_type = falcon.MEDIA_JSON resp.status = falcon.HTTP_200 except BadRequest as ex: resp.status = falcon.HTTP_400 reqErrorLog(req, ex) except UpdateCheckInProgress as ex: resp.status = falcon.HTTP_503 reqErrorLog(req, ex) except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response): reqDebugLog(req) try: if crud_conf.Endpoint.full_collection: data = dict() for key in self.__kvs.keys(): data[key.decode()] = self.__kvs.get(key).decode() else: data = [key.decode() for key in self.__kvs.keys()] resp.content_type = falcon.MEDIA_JSON resp.body = json.dumps(data) resp.status = falcon.HTTP_200 except Exception as ex: resp.status = falcon.HTTP_500 reqErrorLog(req, ex)