Пример #1
0
    def update_cluster_app(self, cluster_id, app_id, **kwargs):
        """Updated app configuration"""

        if 'method' in kwargs:
            return self.http.patch(url_maker("/clusters", cluster_id,
                                             "apps", app_id),
                                   data=kwargs)
        return self.http.put(url_maker("/clusters", cluster_id, "apps",
                                       app_id), data=kwargs)
Пример #2
0
    def update_cluster_app(self, cluster_id, app_id, http_method, **kwargs):
        """Updated app configuration"""

        if not http_method or http_method.lower() == 'patch':
            resp = self.http.patch(url_maker("/clusters", cluster_id, "apps",
                                             app_id),
                                   data=kwargs)
        else:
            resp = self.http.put(url_maker("/clusters", cluster_id, "apps",
                                           app_id),
                                 data=kwargs)

        return self.process_data(resp)
Пример #3
0
    def get_app_nodes(self, cluster_id, app_id):
        """List all app instances."""

        resp = self.http.get(url_maker("/clusters", cluster_id, "apps", app_id,
                                       "appnodes"))

        return self.process_data(resp)
Пример #4
0
    def get_app_events(self, cluster_id, app_id):
        """List all app events"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "apps", app_id,
                                       "events"))

        return self.process_data(resp)
Пример #5
0
    def get_app_versions(self, cluster_id, app_id):
        """List all history versions for app"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "apps", app_id,
                                       "versions"))

        return self.process_data(resp)
Пример #6
0
    def get_cluster_apps(self, cluster_id, **kwargs):
        """List all apps for speicified cluster"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "apps"),
                             **kwargs)

        return self.process_data(resp)
Пример #7
0
    def get_cluster_app(self, cluster_id, app_id):
        """List specified app information under specified cluster"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "apps",
                                       app_id))

        return self.process_data(resp)
Пример #8
0
    def get_cluster_app(self, cluster_id, app_id):
        """List specified app information under specified cluster"""

        resp = self.http.get(url_maker("/clusters", cluster_id,
                                       "apps", app_id))

        return self.process_data(resp)
Пример #9
0
    def get_app_live_metrics(self, cluster_id, app_alias):
        """List all living metrics"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "apps",
                                       app_alias, "metrics"))

        return self.process_data(resp)
Пример #10
0
    def get_node_metrics(self, cluster_id, node_id):
        """Retrive node metrics"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "nodes",
                                       node_id))

        return self.process_data(resp)
Пример #11
0
    def get_app_requests(self, cluster_id, app_alias):
        """List app's requests for per second"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "apps",
                                       app_alias, "session"))

        return self.process_data(resp)
Пример #12
0
    def update_project(self, project_id, **kwargs):
        """Update specified project information."""

        schema = {
            "type": "object",
            "properties": {
                "uid": {
                    "type": "number"
                },
                "active": {
                    "type": "boolean"
                },
                "period": {
                    "type": "number"
                },
                "triggerType": {
                    "type": "number"
                },
            },
            "required": ["uid", "active", "period", "triggerType"]
        }

        try:
            validate(kwargs, schema)
        except (SchemaError, ValidationError) as e:
            return e

        return self.http.put(url_maker("/projects", project_id), data=kwargs)
Пример #13
0
    def get_app_versions(self, cluster_id, app_id):
        """List all history versions for app"""

        resp = self.http.get(
            url_maker("/clusters", cluster_id, "apps", app_id, "versions"))

        return self.process_data(resp)
Пример #14
0
    def delete_app_version(self, cluster_id, app_id, version_id):
        """Delete app version"""

        resp = self.http.delete(
            url_maker("/clusters", cluster_id, "apps", app_id, "versions",
                      version_id))
        return self.process_data(resp)
Пример #15
0
    def get_app_history_metrics(self, cluster_id, app_alias):
        """List app history metrics"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "apps",
                                       app_alias, "monitor"))

        return self.process_data(resp)
Пример #16
0
    def get_cluster_node(self, cluster_id, node_id):
        """List node information"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "nodes",
                                       node_id))

        return self.process_data(resp)
Пример #17
0
    def get_cluster_node(self, cluster_id, node_id):
        """List node information"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "nodes",
                                       node_id))

        return self.process_data(resp)
Пример #18
0
    def get_app_events(self, cluster_id, app_id):
        """List all app events"""

        resp = self.http.get(
            url_maker("/clusters", cluster_id, "apps", app_id, "events"))

        return self.process_data(resp)
Пример #19
0
    def get_cluster_apps(self, cluster_id, **kwargs):
        """List all apps for speicified cluster"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "apps"),
                             **kwargs)

        return self.process_data(resp)
Пример #20
0
    def get_app_scale_log(self, cluster_id, app_id, strategy_id):
        """get the auto scale history when provided a strategy id"""

        resp = self.http.get(
            url_maker("/clusters", cluster_id, "apps", app_id, "scale",
                      strategy_id))
        return self.process_data(resp)
Пример #21
0
    def get_app_nodes(self, cluster_id, app_id):
        """List all app instances."""

        resp = self.http.get(
            url_maker("/clusters", cluster_id, "apps", app_id, "appnodes"))

        return self.process_data(resp)
Пример #22
0
    def get_node_metrics(self, cluster_id, node_id):
        """Retrive node metrics"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "nodes",
                                       node_id))

        return self.process_data(resp)
Пример #23
0
    def get_build_logs(self, project_id, build_num, job_id):
        """List all build logs for project"""

        resp = self.http.get(url_maker("/projects", project_id, "builds",
                                       build_num, job_id, "logs"))

        return self.process_data(resp)
Пример #24
0
    def get_build_stream(self, project_id, build_num, job_id):
        """List all build text stream for project"""

        resp = self.http.get(url_maker("/projects", project_id, "builds",
                                       build_num, job_id, "stream"))

        return self.process_data(resp)
Пример #25
0
    def get_node_identifier(self, cluster_id):
        """Generated new node identifier. this identifier will be
        used for add new node."""

        resp = self.http.get(url_maker("/clusters", cluster_id,
                                       "new_node_identifier"))

        return self.process_data(resp)
Пример #26
0
    def get_build_stream(self, project_id, build_num, job_id):
        """List all build text stream for project"""

        resp = self.http.get(
            url_maker("/projects", project_id, "builds", build_num, job_id,
                      "stream"))

        return self.process_data(resp)
Пример #27
0
    def get_build_logs(self, project_id, build_num, job_id):
        """List all build logs for project"""

        resp = self.http.get(
            url_maker("/projects", project_id, "builds", build_num, job_id,
                      "logs"))

        return self.process_data(resp)
Пример #28
0
    def get_node_identifier(self, cluster_id):
        """Generated new node identifier. this identifier will be
        used for add new node."""

        resp = self.http.get(url_maker("/clusters", cluster_id,
                                       "new_node_identifier"))

        return self.process_data(resp)
Пример #29
0
    def build_project(self, project_id, uid, image_name):
        """Build project."""

        data = {
            "uid": uid,
            "imageName": image_name,
        }

        resp = self.http.post(url_maker("/projects", project_id, "hook"),
                              data=data)

        return self.process_data(resp)
Пример #30
0
    def build_project(self, project_id, uid, image_name):
        """Build project."""

        data = {
            "uid": uid,
            "imageName": image_name,
        }

        resp = self.http.post(url_maker("/projects", project_id, "hook"),
                              data=data)

        return self.process_data(resp)
Пример #31
0
    def update_project(self, project_id, **kwargs):
        """Update specified project information."""

        schema = {
            "type": "object",
            "properties": {
                "uid": {"type": "number"},
                "active": {"type": "boolean"},
                "period": {"type": "number"},
                "triggerType": {"type": "number"},
            },
            "required": ["uid", "active", "period", "triggerType"]
        }

        try:
            validate(kwargs, schema)
        except (SchemaError, ValidationError):
            raise webob.exc.HTTPBadRequest(explanation="Bad Paramaters")

        return self.http.put(url_maker("/projects", project_id), data=kwargs)
Пример #32
0
    def delete_cluster_app(self, cluster_id, app_id):
        """Delete specified app under specified cluster"""

        resp = self.http.delete(
            url_maker("/clusters", cluster_id, "apps", app_id))
        return self.process_data(resp)
Пример #33
0
    def update_cluster(self, cluster_id, **kwargs):
        """Updated cluster information."""

        return self.http.patch(url_maker("/clusters", cluster_id), data=kwargs)
Пример #34
0
    def get_cluster(self, cluster_id):
        """List single cluster's information"""

        resp = self.http.get(url_maker("/clusters", cluster_id))

        return self.process_data(resp)
Пример #35
0
 def create_node(self, cluster_id, **kwargs):
     """Add new node for cluster identified by `cluster_id`"""
     return self.http.post(url_maker("/clusters", cluster_id, "nodes"),
                           data=kwargs)
Пример #36
0
    def get_cluster_resource_metrics(self, cluster_id):
        """List cluster metrics"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "metrics"))

        return self.process_data(resp)
Пример #37
0
 def create_node(self, cluster_id, **kwargs):
     """Add new node for cluster identified by `cluster_id`"""
     return self.http.post(url_maker("/clusters", cluster_id, "nodes"),
                           data=kwargs)
Пример #38
0
 def delete_nodes(self, cluster_id, *args):
     """Delete nodes for cluster identified by `cluster_id`"""
     return self.http.delete(url_maker("/clusters", cluster_id, "node"),
                             data=args)
Пример #39
0
    def get_cluster(self, cluster_id):
        """List single cluster's information"""

        resp = self.http.get(url_maker("/clusters", cluster_id))

        return self.process_data(resp)
Пример #40
0
    def delete_cluster(self, cluster_id):
        """Delete cluster"""

        return self.http.delete(url_maker("/clusters", cluster_id))
Пример #41
0
    def update_cluster(self, cluster_id, **kwargs):
        """Updated cluster information."""

        return self.http.patch(url_maker("/clusters", cluster_id), data=kwargs)
Пример #42
0
    def update_cluster_node(self, cluster_id, node_id, **kwargs):
        """Updated node information"""

        return self.http.patch(url_maker("/clusters", cluster_id,
                                         "nodes", node_id), **kwargs)
Пример #43
0
    def get_project(self, project_id):
        """show project details."""

        resp = self.http.get(url_maker("/projects", project_id))

        return self.process_data(resp)
Пример #44
0
    def get_project(self, project_id):
        """show project details."""

        resp = self.http.get(url_maker("/projects", project_id))

        return self.process_data(resp)
Пример #45
0
    def get_cluster_ports(self, cluster_id):
        """list the inner ports and outer ports for a specific cluster"""

        resp = self.http.get(url_maker("/clusters", cluster_id, "ports"))
        return self.process_data(resp)
Пример #46
0
    def update_node_service(self, cluster_id, node_id, service_name, **kwargs):
        """Reset or restart service on node"""

        return self.http.patch(url_maker("/clusters", cluster_id, "nodes",
                                         node_id, "services", service_name),
                               **kwargs)
Пример #47
0
    def get_user_scale_log(self):
        """get all the auto scale history owned by this loggin user """

        resp = self.http.get(url_maker("/scales"))
        return self.process_data(resp)
Пример #48
0
    def update_node_service(self, cluster_id, node_id, service_name, **kwargs):
        """Reset or restart service on node"""

        return self.http.patch(url_maker("/clusters", cluster_id, "nodes",
                                         node_id, "services", service_name),
                               **kwargs)
Пример #49
0
    def create_cluster_apps(self, cluster_id, **kwargs):
        """Create app under speicified cluster

        :param cluster_id: Cluster identifier
        :param data: Dictionary to send in the body of the request.

        """

        # NOTE(mgniu): `deep copy or shallow copy? i'm confused.
        data = copy.deepcopy(kwargs)

        schema = {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "instances": {
                    "type": "number"
                },
                "volumes": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "hostPath": {
                                "type": "string"
                            },
                            "containerPath": {
                                "type": "string"
                            },
                        },
                    },
                },
                "portMappings": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "appPort": {
                                "type": "number"
                            },
                            "protocol": {
                                "type": "number"
                            },
                            "isUri": {
                                "type": "number"
                            },
                            "type": {
                                "type": "number"
                            },
                            "mapPort": {
                                "type": "number"
                            },
                            "uri": {
                                "type": "string"
                            },
                        },
                    },
                },
                "cpus": {
                    "type": "number"
                },
                "mem": {
                    "type": "number"
                },
                "cmd": {
                    "type": "string"
                },
                "envs": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string"
                            },
                            "value": {
                                "type": "string"
                            },
                        },
                    },
                },
                "imageName": {
                    "type": "string"
                },
                "imageVersion": {
                    "type": "string"
                },
                "forceImage": {
                    "type": "boolean"
                },
                "network": {
                    "type": "string"
                },
                "constraints": {
                    "type": "array",
                    "items": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                    },
                },
                "parameters": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "key": {
                                "type": "string"
                            },
                            "value": {
                                "type": "string"
                            },
                        },
                    },
                }
            }
        }
        try:
            validate(data, schema)
        except (SchemaError, ValidationError) as e:
            return e

        resp = self.http.post(url_maker("/clusters", cluster_id, "apps"),
                              data=data)

        return self.process_data(resp)
Пример #50
0
 def delete_nodes(self, cluster_id, *args):
     """Delete nodes for cluster identified by `cluster_id`"""
     return self.http.delete(url_maker("/clusters", cluster_id, "node"),
                             data=args)
Пример #51
0
    def delete_project(self, project_id):
        """Delete specified project."""

        return self.http.delete(url_maker("/projects", project_id))
Пример #52
0
    def delete_cluster(self, cluster_id):
        """Delete cluster"""

        return self.http.delete(url_maker("/clusters", cluster_id))
Пример #53
0
    def get_project_builds(self, project_id):
        """list all builds for project"""

        resp = self.http.get(url_maker("/projects", project_id, "builds"))

        return self.process_data(resp)
Пример #54
0
    def delete_app_version(self, cluster_id, app_id, version_id):
        """Delete app version"""

        return self.http.delete(url_maker("/clusters", cluster_id,
                                          "apps", app_id, "versions",
                                          version_id))
Пример #55
0
    def delete_cluster_app(self, cluster_id, app_id):
        """Delete speicified app under specified cluster"""

        return self.http.delete(url_maker("/clusters", cluster_id,
                                          "apps", app_id))
Пример #56
0
    def update_cluster_node(self, cluster_id, node_id, **kwargs):
        """Updated node information"""

        return self.http.patch(url_maker("/clusters", cluster_id,
                                         "nodes", node_id), **kwargs)
Пример #57
0
    def create_cluster_apps(self, cluster_id, **kwargs):
        """Create app under speicified cluster

        :param cluster_id: Cluster identifier
        :param data: Dictionary to send in the body of the request.

        """

        # NOTE(mgniu): `deep copy or shallow copy? i'm confused.
        data = copy.deepcopy(kwargs)

        schema = {
            "type": "object",
            "properties": {
                "name": {"type": "string"},
                "instances": {"type": "number"},
                "volumes": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "hostPath": {"type": "string"},
                            "containerPath": {"type": "string"},
                         },
                     },
                 },
                "portMappings": {
                     "type": "array",
                     "items": {
                         "type": "object",
                         "properties": {
                             "appPort": {"type": "number"},
                             "protocol": {"type": "number"},
                             "isUri": {"type": "number"},
                             "type": {"type": "number"},
                             "mapPort": {"type": "number"},
                             "uri": {"type": "string"},
                          },
                      },
                   },
                "cpus": {"type": "number"},
                "mem": {"type": "number"},
                "cmd": {"type": "string"},
                "envs": {
                       "type": "array",
                       "items": {
                           "type": "object",
                           "properties": {
                               "key": {"type": "string"},
                               "value": {"type": "string"},
                            },
                        },
                   },
                "imageName": {"type": "string"},
                "imageVersion": {"type": "string"},
                "forceImage": {"type": "boolean"},
                "network": {"type": "string"},
                "constraints": {
                       "type": "array",
                       "items": {
                           "type": "array",
                           "items": {"type": "string"},
                       },
                   },
                "parameters": {
                       "type": "array",
                       "items": {
                           "type": "object",
                           "properties": {
                               "key": {"type": "string"},
                               "value": {"type": "string"},
                           },
                       },
                   }
            }
        }
        try:
            validate(data, schema)
        except (SchemaError, ValidationError):
            raise webob.exc.HTTPBadRequest(explanation="Bad Paramaters")

        resp = self.http.post(url_maker("/clusters", cluster_id, "apps"),
                              data=data)

        return self.process_data(resp)