From 5a6e75ea55a2f9d6ef0ae655139b9b8b0e7e2780 Mon Sep 17 00:00:00 2001 From: SerenaFeng Date: Fri, 20 Apr 2018 17:41:19 +0800 Subject: impl import-testapiclient framework the usage: from testapiclient.client import pods pod_client = pods.PodsClient(user='test', password='pass') pod_client.create({'name': 'test-api', 'mode':'metal', 'role':'community_ci', 'details':''} from testapiclient.client import pods from testapiclient.models import pods as pm pod_client = pods.PodsClient(user='test', password='pass') pod = pm.Pods(name='test') pod_client.create(pod.__dict__) Change-Id: I6a7770d0b54f5570552a6ebbf1c42a638723997c Signed-off-by: SerenaFeng --- testapi/testapi-client/testapiclient/cli/pods.py | 5 +++-- .../testapiclient/client/__init__.py | 0 .../testapi-client/testapiclient/client/base.py | 23 ++++++++++++++++++++++ .../testapi-client/testapiclient/client/pods.py | 11 +++++++++++ .../testapiclient/models/__init__.py | 0 .../testapi-client/testapiclient/models/pods.py | 6 ++++++ 6 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 testapi/testapi-client/testapiclient/client/__init__.py create mode 100644 testapi/testapi-client/testapiclient/client/base.py create mode 100644 testapi/testapi-client/testapiclient/client/pods.py create mode 100644 testapi/testapi-client/testapiclient/models/__init__.py create mode 100644 testapi/testapi-client/testapiclient/models/pods.py diff --git a/testapi/testapi-client/testapiclient/cli/pods.py b/testapi/testapi-client/testapiclient/cli/pods.py index 8d0970b..df63737 100644 --- a/testapi/testapi-client/testapiclient/cli/pods.py +++ b/testapi/testapi-client/testapiclient/cli/pods.py @@ -1,5 +1,6 @@ import json +from testapiclient.client import pods from testapiclient.utils import command from testapiclient.utils import urlparse @@ -67,8 +68,8 @@ class PodCreate(command.ShowOne): return parser def take_action(self, parsed_args): - return self.format_output( - self.app.client_manager.post(pods_url(), parsed_args.pod)) + client = pods.PodsClient(client_manager=self.app.client_manager) + return self.format_output(client.create(parsed_args.pod)) class PodDelete(command.Command): diff --git a/testapi/testapi-client/testapiclient/client/__init__.py b/testapi/testapi-client/testapiclient/client/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/testapi/testapi-client/testapiclient/client/base.py b/testapi/testapi-client/testapiclient/client/base.py new file mode 100644 index 0000000..c45c9b7 --- /dev/null +++ b/testapi/testapi-client/testapiclient/client/base.py @@ -0,0 +1,23 @@ +from testapiclient.utils import clientmanager +from testapiclient.utils import urlparse + + +class AuthOption(object): + def __init__(self, user=None, password=None): + self.u = user + self.p = password + + +class Client(object): + + resource = '' + + def __init__(self, user=None, password=None, client_manager=None): + self.url = urlparse.resource_join(self.resource) + if client_manager: + self.clientmanager = client_manager + else: + self.clientmanager = clientmanager.ClientManager( + AuthOption(user, password)) + if self.clientmanager.auth_required: + self.clientmanager.auth() diff --git a/testapi/testapi-client/testapiclient/client/pods.py b/testapi/testapi-client/testapiclient/client/pods.py new file mode 100644 index 0000000..4254da7 --- /dev/null +++ b/testapi/testapi-client/testapiclient/client/pods.py @@ -0,0 +1,11 @@ +from testapiclient.client import base + + +class PodsClient(base.Client): + resource = 'pods' + + def __init__(self, **kwargs): + super(PodsClient, self).__init__(**kwargs) + + def create(self, pod_req): + return self.clientmanager.post(self.url, pod_req) diff --git a/testapi/testapi-client/testapiclient/models/__init__.py b/testapi/testapi-client/testapiclient/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/testapi/testapi-client/testapiclient/models/pods.py b/testapi/testapi-client/testapiclient/models/pods.py new file mode 100644 index 0000000..27ea311 --- /dev/null +++ b/testapi/testapi-client/testapiclient/models/pods.py @@ -0,0 +1,6 @@ +class PodCreateRequest(object): + def __init__(self, name='', mode='', details='', role=""): + self.name = name + self.mode = mode + self.details = details + self.role = role -- cgit 1.2.3-korg