コード例 #1
0
 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)
コード例 #2
0
ファイル: api.py プロジェクト: PlatonaM/lopco-job-manager
 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)
コード例 #3
0
 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
コード例 #4
0
 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)
コード例 #5
0
ファイル: healthcheck.py プロジェクト: amirzhan/awokado
 def on_get(
     self,
     req: falcon.request.Request,
     resp: falcon.response.Response,
     resource_id: int = None,
 ):
     resp.body = "OK"
コード例 #6
0
 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
コード例 #7
0
 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)
コード例 #8
0
    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 = "{}"
コード例 #9
0
 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
コード例 #10
0
 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
コード例 #11
0
 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
コード例 #12
0
    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)
コード例 #13
0
ファイル: api.py プロジェクト: y-du/device-management-service
 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)
コード例 #14
0
 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)
コード例 #15
0
 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
     )
コード例 #16
0
 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)
コード例 #17
0
 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)
コード例 #18
0
 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
     )
コード例 #19
0
 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
コード例 #20
0
 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)
コード例 #21
0
 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)
コード例 #22
0
ファイル: api.py プロジェクト: y-du/module-registry-service
 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)
コード例 #23
0
 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)
コード例 #24
0
    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)
コード例 #25
0
 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)
コード例 #26
0
 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)
コード例 #27
0
ファイル: api.py プロジェクト: PlatonaM/lopco-job-manager
 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)
コード例 #28
0
 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)
コード例 #29
0
 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)
コード例 #30
0
 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)