Esempio n. 1
0
class ApiHostHandler(BaseHandler):
    """
        Handler for /apis/by_host
    """

    #noinspection PyMethodOverriding
    def initialize(self, riak_host, riak_pb_port, bucket_name, riak_rq, riak_wq, app_secrets):
        super(ApiHostHandler, self).initialize()
        self.api_service = ApiService(
            riak_host=riak_host,
            riak_pb_port=riak_pb_port,
            bucket_name=bucket_name,
            riak_rq=riak_rq,
            riak_wq=riak_wq
        )
        self.app_secrets = app_secrets
        self.api_key = app_secrets['X-API-KEY']

    def get(self):
        """
            GET /apis                       -> get a map of APIs by app_host
            GET /apis?app_host=<app_host>   -> get a map of APIs for a single app host
        """
        self.require_accept_header()
        self.matches_api_key(self.api_key)
        app_host = self.get_argument('app_host', None)
        if app_host is None:
            # No app_host provided -> Get all entries, sorted by host
            payload = self.api_service.fetch_all_by_app_host()
        else:
            payload = self.api_service.fetch_by_app_host(app_host=app_host)

        self.respond(payload=payload)
Esempio n. 2
0
class ApiStatsHandler(BaseHandler):
    """
        Handler for /apis/by_host
    """

    #noinspection PyMethodOverriding
    def initialize(self, riak_host, riak_pb_port, bucket_name, riak_rq, riak_wq, app_secrets):
        super(ApiStatsHandler, self).initialize()
        self.api_service = ApiService(
            riak_host=riak_host,
            riak_pb_port=riak_pb_port,
            bucket_name=bucket_name,
            riak_rq=riak_rq,
            riak_wq=riak_wq
        )
        self.app_secrets = app_secrets
        self.api_key = app_secrets['X-API-KEY']

    def get(self, bucket_name):
        """
            GET /apis/stats
        """
        self.require_accept_header()
        self.matches_api_key(self.api_key)
        resp = self.api_service.fetch_bucket_size(bucket_name=bucket_name)
        resp['api_id'] = bucket_name
        self.respond(payload=resp)
Esempio n. 3
0
 def initialize(self, riak_host, riak_pb_port, bucket_name, riak_rq, riak_wq, app_secrets):
     super(ApiHostHandler, self).initialize()
     self.api_service = ApiService(
         riak_host=riak_host,
         riak_pb_port=riak_pb_port,
         bucket_name=bucket_name,
         riak_rq=riak_rq,
         riak_wq=riak_wq
     )
     self.app_secrets = app_secrets
     self.api_key = app_secrets['X-API-KEY']
Esempio n. 4
0
class ApiHandler(BaseHandler):
    """
        Handler for /apis
    """

    #noinspection PyMethodOverriding
    def initialize(self, riak_host, riak_pb_port, bucket_name, riak_rq, riak_wq, app_secrets):
        super(ApiHandler, self).initialize()
        self.api_service = ApiService(
            riak_host=riak_host,
            riak_pb_port=riak_pb_port,
            bucket_name=bucket_name,
            riak_rq=riak_rq,
            riak_wq=riak_wq
        )
        self.app_secrets = app_secrets
        self.api_key = app_secrets['X-API-KEY']

    def get(self, object_id=None):
        """
            GET /apis

            No object_id provided -> Get a list of all deployed APIs
            object_id provided -> Get information about API with given api_id
        """
        self.require_accept_header()
        self.matches_api_key(self.api_key)
        if object_id is None:
            # No object_id provided -> Get all entries
            payload = self.api_service.fetch_all()
        else:
            payload = self.api_service.fetch_by_api_id(api_id=object_id)

        self.respond(payload=payload)

    def post(self, *args, **kwargs):
        """
            POST /apis

            Deploy an API
        """
        self.require_accept_header()
        self.require_content_type()
        self.matches_api_key(self.api_key)
        self.respond(payload=self.api_service.deploy(request_body=self.request.body))

    def put(self, *args, **kwargs):
        """
            PUT /apis

            Re-deploy an API
        """
        self.require_accept_header()
        self.require_content_type()
        self.matches_api_key(self.api_key)
        self.respond(payload=self.api_service.redeploy(request_body=self.request.body))

    def delete(self, api_id):
        """
            DELETE /apis

            Undeploy an API
        """
        self.require_accept_header()
        self.matches_api_key(self.api_key)
        self.respond(payload=self.api_service.undeploy(api_id=api_id))