diff options
author | SerenaFeng <feng.xiaowei@zte.com.cn> | 2018-04-20 17:41:19 +0800 |
---|---|---|
committer | SerenaFeng <feng.xiaowei@zte.com.cn> | 2018-04-23 09:46:29 +0800 |
commit | 5a6e75ea55a2f9d6ef0ae655139b9b8b0e7e2780 (patch) | |
tree | f788831162000ed25f6a9f0dc1c45d7710fcadb6 /testapi | |
parent | 979f52bde489317e114f493d4b16838dfb28be1f (diff) |
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 <feng.xiaowei@zte.com.cn>
Diffstat (limited to 'testapi')
6 files changed, 43 insertions, 2 deletions
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 --- /dev/null +++ b/testapi/testapi-client/testapiclient/client/__init__.py 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 --- /dev/null +++ b/testapi/testapi-client/testapiclient/models/__init__.py 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 |