diff options
author | 2017-02-21 18:38:25 -0800 | |
---|---|---|
committer | 2017-02-21 19:24:35 -0800 | |
commit | 79ab09be1ad73061f28d6a40ac680f55b7595cd6 (patch) | |
tree | 3d7cee2654a3b5aef0b631383bfaa054ea4548fe /vio/pub/vim/vimapi/baseclient.py | |
parent | 2e37e33fef3a547276ff532685f3c1050874f3cd (diff) |
Create code base for vmware vio driver
This patch is to create code base for vio driver.
Issue-ids: MULTIVIM-37
Change-Id: I81a9a5b178ad4a177e4635d5e7caee831dc1dde2
Signed-off-by: xinhuili <lxinhui@vmware.com>
Diffstat (limited to 'vio/pub/vim/vimapi/baseclient.py')
-rw-r--r-- | vio/pub/vim/vimapi/baseclient.py | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/vio/pub/vim/vimapi/baseclient.py b/vio/pub/vim/vimapi/baseclient.py new file mode 100644 index 0000000..902e887 --- /dev/null +++ b/vio/pub/vim/vimapi/baseclient.py @@ -0,0 +1,85 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import copy + +import logging + +from vio.pub.vim.drivers import vimdriver as driver_base + +LOG = logging.getLogger(__name__) + + +class baseclient(object): + + + def __init__(self, **kwargs): + + # initialize clients + self._computeclient = None + self._networkclient = None + self._orchestrationclient = None + self._identityclient = None + + + def identity(self, data): + '''Construct compute client based on object. + + :param obj: Object for which the client is created. It is expected to + be None when retrieving an existing client. When creating + a client, it contains the user and project to be used. + ''' + + if self._identityclient is not None: + return self._identityclient + self._identityclient = driver_base.VimDriver().identity(data) + return self._identityclient + + def compute(self, data): + '''Construct compute client based on object. + + :param obj: Object for which the client is created. It is expected to + be None when retrieving an existing client. When creating + a client, it contains the user and project to be used. + ''' + + if self._computeclient is not None: + return self._computeclient + self._computeclient = driver_base.VimDriver().compute(data) + return self._computeclient + + def network(self, obj): + """Construct network client based on object. + + :param obj: Object for which the client is created. It is expected to + be None when retrieving an existing client. When creating + a client, it contains the user and project to be used. + """ + if self._networkclient is not None: + return self._networkclient + params = self._build_conn_params(obj.user, obj.project) + self._networkclient = driver_base.VimDriver().network(params) + return self._networkclient + + def orchestration(self, obj): + """Construct orchestration client based on object. + + :param obj: Object for which the client is created. It is expected to + be None when retrieving an existing client. When creating + a client, it contains the user and project to be used. + """ + if self._orchestrationclient is not None: + return self._orchestrationclient + params = self._build_conn_params(obj.user, obj.project) + oc = driver_base.VimDriver().orchestration(params) + self._orchestrationclient = oc + return oc |