From e5e593c752313d53736e10519370a03a376b6849 Mon Sep 17 00:00:00 2001 From: joamag Date: Thu, 25 Jul 2019 18:45:12 +0100 Subject: [PATCH] Rancher 2.x endpoints added --- src/rancher/__init__.py | 3 ++ src/rancher/base.py | 6 +++- src/rancher/project.py | 50 +++++++++++++++++++++++++++++++++ src/rancher/service.py | 4 +++ src/rancher/stack.py | 4 +++ src/rancher/workload.py | 61 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 src/rancher/project.py create mode 100644 src/rancher/workload.py diff --git a/src/rancher/__init__.py b/src/rancher/__init__.py index ccfdbd6..efd7207 100644 --- a/src/rancher/__init__.py +++ b/src/rancher/__init__.py @@ -37,7 +37,10 @@ from . import base from . import service from . import stack +from . import workload from .base import API +from .project import ProjectAPI from .service import ServiceAPI from .stack import StackAPI +from .workload import WorkloadAPI diff --git a/src/rancher/base.py b/src/rancher/base.py index 82f2574..08c997b 100644 --- a/src/rancher/base.py +++ b/src/rancher/base.py @@ -42,14 +42,18 @@ import appier from . import stack +from . import project from . import service +from . import workload BASE_URL = "http://localhost:8080/v2/" class API( appier.API, stack.StackAPI, - service.ServiceAPI + project.ProjectAPI, + service.ServiceAPI, + workload.WorkloadAPI ): def __init__(self, *args, **kwargs): diff --git a/src/rancher/project.py b/src/rancher/project.py new file mode 100644 index 0000000..5c73353 --- /dev/null +++ b/src/rancher/project.py @@ -0,0 +1,50 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Hive Rancher API +# Copyright (c) 2008-2019 Hive Solutions Lda. +# +# This file is part of Hive Rancher API. +# +# Hive Rancher API is free software: you can redistribute it and/or modify +# it under the terms of the Apache License as published by the Apache +# Foundation, either version 2.0 of the License, or (at your option) any +# later version. +# +# Hive Rancher API is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Apache License for more details. +# +# You should have received a copy of the Apache License along with +# Hive Rancher API. If not, see . + +__author__ = "João Magalhães " +""" The author(s) of the module """ + +__version__ = "1.0.0" +""" The version of the module """ + +__revision__ = "$LastChangedRevision$" +""" The revision number of the module """ + +__date__ = "$LastChangedDate$" +""" The last change date of the module """ + +__copyright__ = "Copyright (c) 2008-2019 Hive Solutions Lda." +""" The copyright for the module """ + +__license__ = "Apache License, Version 2.0" +""" The license for the module """ + +class ProjectAPI(object): + """ + The project API endpoints used by the Rancher 2.x + infra-structure. + """ + + def list_projects(self, *args, **kwargs): + url = self.base_url + "project" + contents = self.get(url, **kwargs) + data = contents["data"] + return data diff --git a/src/rancher/service.py b/src/rancher/service.py index 5af62cd..17b959a 100644 --- a/src/rancher/service.py +++ b/src/rancher/service.py @@ -42,6 +42,10 @@ import appier class ServiceAPI(object): + """ + The service API endpoints used by the Rancher 1.x + infra-structure. + """ def list_services(self, *args, **kwargs): url = self.base_url + "services" diff --git a/src/rancher/stack.py b/src/rancher/stack.py index ff3ea42..36d2e82 100644 --- a/src/rancher/stack.py +++ b/src/rancher/stack.py @@ -38,6 +38,10 @@ """ The license for the module """ class StackAPI(object): + """ + The stack API endpoints used by the Rancher 1.x + infra-structure. + """ def list_stacks(self, *args, **kwargs): url = self.base_url + "stacks" diff --git a/src/rancher/workload.py b/src/rancher/workload.py new file mode 100644 index 0000000..a957f4c --- /dev/null +++ b/src/rancher/workload.py @@ -0,0 +1,61 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Hive Rancher API +# Copyright (c) 2008-2019 Hive Solutions Lda. +# +# This file is part of Hive Rancher API. +# +# Hive Rancher API is free software: you can redistribute it and/or modify +# it under the terms of the Apache License as published by the Apache +# Foundation, either version 2.0 of the License, or (at your option) any +# later version. +# +# Hive Rancher API is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Apache License for more details. +# +# You should have received a copy of the Apache License along with +# Hive Rancher API. If not, see . + +__author__ = "João Magalhães " +""" The author(s) of the module """ + +__version__ = "1.0.0" +""" The version of the module """ + +__revision__ = "$LastChangedRevision$" +""" The revision number of the module """ + +__date__ = "$LastChangedDate$" +""" The last change date of the module """ + +__copyright__ = "Copyright (c) 2008-2019 Hive Solutions Lda." +""" The copyright for the module """ + +__license__ = "Apache License, Version 2.0" +""" The license for the module """ + +class WorkloadAPI(object): + """ + The workload API endpoints used by the Rancher 2.x + infra-structure. + """ + + def list_workloads(self, project, *args, **kwargs): + url = self.base_url + "project/%s/workload" % project + contents = self.get(url, **kwargs) + data = contents["data"] + return data + + def list_workloads_name(self, project, name): + url = self.base_url + "project/%s/workload?name=%s" % (project, name) + contents = self.get(url) + data = contents["data"] + return data + + def get_workload(self, project, id): + url = self.base_url + "project/%s/workload/%s" % (project, id) + contents = self.get(url) + return contents