diff options
author | Jeremy Liu <liujiong@gohighsec.com> | 2016-11-28 10:32:42 +0800 |
---|---|---|
committer | Jeremy Liu <liujiong@gohighsec.com> | 2017-06-20 10:59:08 +0800 |
commit | 97906c853ee7e431b2684c37a0724d42e1c6a245 (patch) | |
tree | 58059994d46a0bbb1466c0bf54fb6069913f657b | |
parent | 83eb7b3b3a80873b6f33e89b885e6af1f931717c (diff) | |
download | python-barbicanclient-97906c853ee7e431b2684c37a0724d42e1c6a245.tar.gz |
Refactor barbicanclient
Add v1 directory for APIs, CLIs and API testcases.
Currently, v1 is supported and the default api version. If version is not
specified when constructing barbicanclient, default api version will be used.
Implements: blueprint refactor-barbicanclient
Change-Id: Ib91e7049de007f4d4254abcd4c125b4dc7e03c55
-rw-r--r-- | barbicanclient/barbican_cli/v1/__init__.py | 0 | ||||
-rw-r--r-- | barbicanclient/barbican_cli/v1/acls.py (renamed from barbicanclient/barbican_cli/acls.py) | 2 | ||||
-rw-r--r-- | barbicanclient/barbican_cli/v1/cas.py (renamed from barbicanclient/barbican_cli/cas.py) | 2 | ||||
-rw-r--r-- | barbicanclient/barbican_cli/v1/containers.py (renamed from barbicanclient/barbican_cli/containers.py) | 6 | ||||
-rw-r--r-- | barbicanclient/barbican_cli/v1/orders.py (renamed from barbicanclient/barbican_cli/orders.py) | 0 | ||||
-rw-r--r-- | barbicanclient/barbican_cli/v1/secrets.py (renamed from barbicanclient/barbican_cli/secrets.py) | 2 | ||||
-rw-r--r-- | barbicanclient/client.py | 35 | ||||
-rw-r--r-- | barbicanclient/exceptions.py | 5 | ||||
-rw-r--r-- | barbicanclient/osc_plugin.py | 3 | ||||
-rw-r--r-- | barbicanclient/tests/test_barbican.py | 22 | ||||
-rw-r--r-- | barbicanclient/tests/v1/__init__.py | 0 | ||||
-rw-r--r-- | barbicanclient/tests/v1/test_acls.py (renamed from barbicanclient/tests/test_acls.py) | 2 | ||||
-rw-r--r-- | barbicanclient/tests/v1/test_cas.py (renamed from barbicanclient/tests/test_cas.py) | 2 | ||||
-rw-r--r-- | barbicanclient/tests/v1/test_containers.py (renamed from barbicanclient/tests/test_containers.py) | 6 | ||||
-rw-r--r-- | barbicanclient/tests/v1/test_orders.py (renamed from barbicanclient/tests/test_orders.py) | 2 | ||||
-rw-r--r-- | barbicanclient/tests/v1/test_secrets.py (renamed from barbicanclient/tests/test_secrets.py) | 4 | ||||
-rw-r--r-- | barbicanclient/v1/__init__.py | 0 | ||||
-rw-r--r-- | barbicanclient/v1/acls.py (renamed from barbicanclient/acls.py) | 0 | ||||
-rw-r--r-- | barbicanclient/v1/cas.py (renamed from barbicanclient/cas.py) | 0 | ||||
-rw-r--r-- | barbicanclient/v1/client.py | 69 | ||||
-rw-r--r-- | barbicanclient/v1/containers.py (renamed from barbicanclient/containers.py) | 5 | ||||
-rw-r--r-- | barbicanclient/v1/orders.py (renamed from barbicanclient/orders.py) | 0 | ||||
-rw-r--r-- | barbicanclient/v1/secrets.py (renamed from barbicanclient/secrets.py) | 23 | ||||
-rw-r--r-- | functionaltests/client/test_client_connectivity.py | 33 | ||||
-rw-r--r-- | setup.cfg | 40 |
25 files changed, 179 insertions, 84 deletions
diff --git a/barbicanclient/barbican_cli/v1/__init__.py b/barbicanclient/barbican_cli/v1/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/barbicanclient/barbican_cli/v1/__init__.py diff --git a/barbicanclient/barbican_cli/acls.py b/barbicanclient/barbican_cli/v1/acls.py index 5a1272a..80faf01 100644 --- a/barbicanclient/barbican_cli/acls.py +++ b/barbicanclient/barbican_cli/v1/acls.py @@ -18,7 +18,7 @@ Command-line interface sub-commands related to ACLs. from cliff import command from cliff import lister -from barbicanclient import acls +from barbicanclient.v1 import acls class ArgMixin(object): diff --git a/barbicanclient/barbican_cli/cas.py b/barbicanclient/barbican_cli/v1/cas.py index 79459a6..8572044 100644 --- a/barbicanclient/barbican_cli/cas.py +++ b/barbicanclient/barbican_cli/v1/cas.py @@ -16,7 +16,7 @@ Command-line interface sub-commands related to cas. from cliff import lister from cliff import show -from barbicanclient import cas +from barbicanclient.v1 import cas class GetCA(show.ShowOne): diff --git a/barbicanclient/barbican_cli/containers.py b/barbicanclient/barbican_cli/v1/containers.py index 5c4d946..1da349b 100644 --- a/barbicanclient/barbican_cli/containers.py +++ b/barbicanclient/barbican_cli/v1/containers.py @@ -17,9 +17,9 @@ from cliff import command from cliff import lister from cliff import show -from barbicanclient.containers import CertificateContainer -from barbicanclient.containers import Container -from barbicanclient.containers import RSAContainer +from barbicanclient.v1.containers import CertificateContainer +from barbicanclient.v1.containers import Container +from barbicanclient.v1.containers import RSAContainer class DeleteContainer(command.Command): diff --git a/barbicanclient/barbican_cli/orders.py b/barbicanclient/barbican_cli/v1/orders.py index 713f907..713f907 100644 --- a/barbicanclient/barbican_cli/orders.py +++ b/barbicanclient/barbican_cli/v1/orders.py diff --git a/barbicanclient/barbican_cli/secrets.py b/barbicanclient/barbican_cli/v1/secrets.py index 8c23117..ddaaf18 100644 --- a/barbicanclient/barbican_cli/secrets.py +++ b/barbicanclient/barbican_cli/v1/secrets.py @@ -17,7 +17,7 @@ from cliff import command from cliff import lister from cliff import show -from barbicanclient import secrets +from barbicanclient.v1 import secrets class DeleteSecret(command.Command): diff --git a/barbicanclient/client.py b/barbicanclient/client.py index c42386b..c715315 100644 --- a/barbicanclient/client.py +++ b/barbicanclient/client.py @@ -18,19 +18,16 @@ import os from keystoneauth1 import adapter from keystoneauth1 import session as ks_session +from oslo_utils import importutils -from barbicanclient import acls -from barbicanclient import cas -from barbicanclient import containers from barbicanclient import exceptions -from barbicanclient import orders -from barbicanclient import secrets LOG = logging.getLogger(__name__) _DEFAULT_SERVICE_TYPE = 'key-manager' _DEFAULT_SERVICE_INTERFACE = 'public' _DEFAULT_API_VERSION = 'v1' +_SUPPORTED_API_VERSION_MAP = {'v1': 'barbicanclient.v1.client.Client'} class _HTTPClient(adapter.Adapter): @@ -119,11 +116,10 @@ class _HTTPClient(adapter.Adapter): return message -class Client(object): - - def __init__(self, session=None, *args, **kwargs): - """Barbican client object used to interact with barbican service. +def Client(version=None, session=None, *args, **kwargs): + """Barbican client used to interact with barbican service. + :param version: The API version to use. :param session: An instance of keystoneclient.session.Session that can be either authenticated, or not authenticated. When using a non-authenticated Session, you must provide some additional @@ -146,7 +142,7 @@ class Client(object): certificate authorities. WARNING: This option should be used with caution. :param service_type: Used as an endpoint filter when using an - authenticated keystone session. Defaults to 'key-management'. + authenticated keystone session. Defaults to 'key-manager'. :param service_name: Used as an endpoint filter when using an authenticated keystone session. :param interface: Used as an endpoint filter when using an @@ -167,14 +163,19 @@ class Client(object): if kwargs.get('project_id') is None: raise ValueError('Project ID must be provided when not using ' 'auth in the Keystone Session') + if not version: + version = _DEFAULT_API_VERSION - httpclient = _HTTPClient(session=session, *args, **kwargs) - - self.secrets = secrets.SecretManager(httpclient) - self.orders = orders.OrderManager(httpclient) - self.containers = containers.ContainerManager(httpclient) - self.cas = cas.CAManager(httpclient) - self.acls = acls.ACLManager(httpclient) + try: + client_path = _SUPPORTED_API_VERSION_MAP[version] + client_class = importutils.import_class(client_path) + return client_class(session=session, *args, **kwargs) + except (KeyError, ValueError): + supported_versions = ', '.join(_SUPPORTED_API_VERSION_MAP.keys()) + msg = ("Invalid client version %(version)s; must be one of: " + "%(versions)s") % {'version': version, + 'versions': supported_versions} + raise exceptions.UnsupportedVersion(msg) def env(*vars, **kwargs): diff --git a/barbicanclient/exceptions.py b/barbicanclient/exceptions.py index 90dbf97..6990671 100644 --- a/barbicanclient/exceptions.py +++ b/barbicanclient/exceptions.py @@ -22,6 +22,11 @@ class PayloadException(BarbicanException): pass +class UnsupportedVersion(BarbicanException): + """User is trying to use an unsupported version of the API.""" + pass + + class HTTPError(Exception): """Base exception for HTTP errors.""" diff --git a/barbicanclient/osc_plugin.py b/barbicanclient/osc_plugin.py index 1d0e0e5..943c9bf 100644 --- a/barbicanclient/osc_plugin.py +++ b/barbicanclient/osc_plugin.py @@ -25,7 +25,8 @@ API_VERSIONS = { def make_client(instance): """Returns a Barbican service client.""" - return client.Client(session=instance.session, + return client.Client(version=DEFAULT_API_VERSION, + session=instance.session, region_name=instance._region_name) diff --git a/barbicanclient/tests/test_barbican.py b/barbicanclient/tests/test_barbican.py index 6f4e966..4c6a39c 100644 --- a/barbicanclient/tests/test_barbican.py +++ b/barbicanclient/tests/test_barbican.py @@ -17,6 +17,7 @@ import six from barbicanclient import barbican as barb from barbicanclient.barbican import Barbican from barbicanclient import client +from barbicanclient import exceptions from barbicanclient.tests import keystone_client_fixtures from barbicanclient.tests import test_client @@ -171,13 +172,13 @@ class WhenTestingBarbicanCLI(test_client.BaseEntityResource): self.assertIsNone(httpclient.service_name) def test_endpoint_filter_kwargs_set_correctly(self): - auth_args = ('--no-auth --endpoint http://barbican_endpoint:9311/v1 ' + auth_args = ('--no-auth --endpoint http://barbican_endpoint:9311 ' '--os-project-id project1') endpoint_filter_args = ('--interface private ' '--service-type custom-type ' '--service-name Burrbican ' '--region-name RegionTwo ' - '--barbican-api-version v2') + '--barbican-api-version v1') args = auth_args + ' ' + endpoint_filter_args argv, remainder = self.parser.parse_known_args(args.split()) barbican_client = self.barbican.create_client(argv) @@ -187,7 +188,22 @@ class WhenTestingBarbicanCLI(test_client.BaseEntityResource): self.assertEqual('custom-type', httpclient.service_type) self.assertEqual('Burrbican', httpclient.service_name) self.assertEqual('RegionTwo', httpclient.region_name) - self.assertEqual('v2', httpclient.version) + self.assertEqual('v1', httpclient.version) + + def test_should_fail_if_provide_unsupported_api_version(self): + auth_args = ('--no-auth --endpoint http://barbican_endpoint:9311/v1 ' + '--os-project-id project1') + endpoint_filter_args = ('--interface private ' + '--service-type custom-type ' + '--service-name Burrbican ' + '--region-name RegionTwo ' + '--barbican-api-version v2') + args = auth_args + ' ' + endpoint_filter_args + argv, remainder = self.parser.parse_known_args(args.split()) + + self.assertRaises(exceptions.UnsupportedVersion, + self.barbican.create_client, + argv) class TestBarbicanWithKeystonePasswordAuth( diff --git a/barbicanclient/tests/v1/__init__.py b/barbicanclient/tests/v1/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/barbicanclient/tests/v1/__init__.py diff --git a/barbicanclient/tests/test_acls.py b/barbicanclient/tests/v1/test_acls.py index 21b4394..b930c57 100644 --- a/barbicanclient/tests/test_acls.py +++ b/barbicanclient/tests/v1/test_acls.py @@ -16,8 +16,8 @@ from oslo_utils import timeutils import requests_mock -from barbicanclient import acls from barbicanclient.tests import test_client +from barbicanclient.v1 import acls class ACLTestCase(test_client.BaseEntityResource): diff --git a/barbicanclient/tests/test_cas.py b/barbicanclient/tests/v1/test_cas.py index c28f38f..c97d46e 100644 --- a/barbicanclient/tests/test_cas.py +++ b/barbicanclient/tests/v1/test_cas.py @@ -14,8 +14,8 @@ # limitations under the License. from oslo_utils import timeutils -from barbicanclient import cas from barbicanclient.tests import test_client +from barbicanclient.v1 import cas class CAData(object): diff --git a/barbicanclient/tests/test_containers.py b/barbicanclient/tests/v1/test_containers.py index 6d967c7..dbe7547 100644 --- a/barbicanclient/tests/test_containers.py +++ b/barbicanclient/tests/v1/test_containers.py @@ -19,11 +19,11 @@ import mock from oslo_utils import timeutils import six -from barbicanclient import acls from barbicanclient import base -from barbicanclient import containers -from barbicanclient import secrets from barbicanclient.tests import test_client +from barbicanclient.v1 import acls +from barbicanclient.v1 import containers +from barbicanclient.v1 import secrets class ContainerData(object): diff --git a/barbicanclient/tests/test_orders.py b/barbicanclient/tests/v1/test_orders.py index 2ae4913..0923aa8 100644 --- a/barbicanclient/tests/test_orders.py +++ b/barbicanclient/tests/v1/test_orders.py @@ -18,8 +18,8 @@ from oslo_utils import timeutils import uuid from barbicanclient import base -from barbicanclient import orders from barbicanclient.tests import test_client +from barbicanclient.v1 import orders class OrdersTestCase(test_client.BaseEntityResource): diff --git a/barbicanclient/tests/test_secrets.py b/barbicanclient/tests/v1/test_secrets.py index 0cd981c..94299f5 100644 --- a/barbicanclient/tests/test_secrets.py +++ b/barbicanclient/tests/v1/test_secrets.py @@ -17,11 +17,11 @@ import json from oslo_utils import timeutils -from barbicanclient import acls from barbicanclient import base from barbicanclient import exceptions -from barbicanclient import secrets from barbicanclient.tests import test_client +from barbicanclient.v1 import acls +from barbicanclient.v1 import secrets class SecretData(object): diff --git a/barbicanclient/v1/__init__.py b/barbicanclient/v1/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/barbicanclient/v1/__init__.py diff --git a/barbicanclient/acls.py b/barbicanclient/v1/acls.py index 9292d12..9292d12 100644 --- a/barbicanclient/acls.py +++ b/barbicanclient/v1/acls.py diff --git a/barbicanclient/cas.py b/barbicanclient/v1/cas.py index 8c46346..8c46346 100644 --- a/barbicanclient/cas.py +++ b/barbicanclient/v1/cas.py diff --git a/barbicanclient/v1/client.py b/barbicanclient/v1/client.py new file mode 100644 index 0000000..2679f7d --- /dev/null +++ b/barbicanclient/v1/client.py @@ -0,0 +1,69 @@ +# Copyright (c) 2016 GohighSec, Inc. +# +# 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 logging + +from barbicanclient import client as base_client +from barbicanclient.v1 import acls +from barbicanclient.v1 import cas +from barbicanclient.v1 import containers +from barbicanclient.v1 import orders +from barbicanclient.v1 import secrets + +LOG = logging.getLogger(__name__) + + +class Client(object): + + def __init__(self, session=None, *args, **kwargs): + """Barbican client object used to interact with barbican service. + + :param session: An instance of keystoneclient.session.Session that + can be either authenticated, or not authenticated. When using + a non-authenticated Session, you must provide some additional + parameters. When no session is provided it will default to a + non-authenticated Session. + :param endpoint: Barbican endpoint url. Required when a session is not + given, or when using a non-authenticated session. + When using an authenticated session, the client will attempt + to get an endpoint from the session. + :param project_id: The project ID used for context in Barbican. + Required when a session is not given, or when using a + non-authenticated session. + When using an authenticated session, the project ID will be + provided by the authentication mechanism. + :param verify: When a session is not given, the client will create + a non-authenticated session. This parameter is passed to the + session that is created. If set to False, it allows + barbicanclient to perform "insecure" TLS (https) requests. + The server's certificate will not be verified against any + certificate authorities. + WARNING: This option should be used with caution. + :param service_type: Used as an endpoint filter when using an + authenticated keystone session. Defaults to 'key-management'. + :param service_name: Used as an endpoint filter when using an + authenticated keystone session. + :param interface: Used as an endpoint filter when using an + authenticated keystone session. Defaults to 'public'. + :param region_name: Used as an endpoint filter when using an + authenticated keystone session. + """ + self.client = base_client._HTTPClient(session=session, *args, **kwargs) + + self.secrets = secrets.SecretManager(self.client) + self.orders = orders.OrderManager(self.client) + self.containers = containers.ContainerManager(self.client) + self.cas = cas.CAManager(self.client) + self.acls = acls.ACLManager(self.client) diff --git a/barbicanclient/containers.py b/barbicanclient/v1/containers.py index d5df64c..fad01f7 100644 --- a/barbicanclient/containers.py +++ b/barbicanclient/v1/containers.py @@ -17,11 +17,10 @@ import logging from oslo_utils.timeutils import parse_isotime -from barbicanclient import acls as acl_manager from barbicanclient import base from barbicanclient import formatter - -from barbicanclient import secrets as secret_manager +from barbicanclient.v1 import acls as acl_manager +from barbicanclient.v1 import secrets as secret_manager LOG = logging.getLogger(__name__) diff --git a/barbicanclient/orders.py b/barbicanclient/v1/orders.py index 056d742..056d742 100644 --- a/barbicanclient/orders.py +++ b/barbicanclient/v1/orders.py diff --git a/barbicanclient/secrets.py b/barbicanclient/v1/secrets.py index 0f9de79..d721ce2 100644 --- a/barbicanclient/secrets.py +++ b/barbicanclient/v1/secrets.py @@ -19,11 +19,10 @@ import logging from oslo_utils.timeutils import parse_isotime import six -from barbicanclient._i18n import _LW -from barbicanclient import acls as acl_manager from barbicanclient import base from barbicanclient import exceptions from barbicanclient import formatter +from barbicanclient.v1 import acls as acl_manager LOG = logging.getLogger(__name__) @@ -193,7 +192,7 @@ class Secret(SecretFormatter): try: self._fetch_payload() except ValueError: - LOG.warning(_LW("Secret does not contain a payload")) + LOG.warning("Secret does not contain a payload") return None return self._payload @@ -242,22 +241,20 @@ class Secret(SecretFormatter): @immutable_after_save def payload_content_type(self, value): LOG.warning( - _LW('DEPRECATION WARNING: Manually setting the ' - 'payload_content_type can lead to unexpected ' - 'results. It will be removed in a future release. ' - 'See Launchpad Bug #1419166.') - ) + 'DEPRECATION WARNING: Manually setting the ' + 'payload_content_type can lead to unexpected ' + 'results. It will be removed in a future release. ' + 'See Launchpad Bug #1419166.') self._payload_content_type = value @payload_content_encoding.setter @immutable_after_save def payload_content_encoding(self, value): LOG.warning( - _LW('DEPRECATION WARNING: Manually setting the ' - 'payload_content_encoding can lead to unexpected ' - 'results. It will be removed in a future release. ' - 'See Launchpad Bug #1419166.') - ) + 'DEPRECATION WARNING: Manually setting the ' + 'payload_content_encoding can lead to unexpected ' + 'results. It will be removed in a future release. ' + 'See Launchpad Bug #1419166.') self._payload_content_encoding = value def _fetch_payload(self): diff --git a/functionaltests/client/test_client_connectivity.py b/functionaltests/client/test_client_connectivity.py index 5f3df4f..482db57 100644 --- a/functionaltests/client/test_client_connectivity.py +++ b/functionaltests/client/test_client_connectivity.py @@ -150,20 +150,27 @@ class WhenTestingClientConnectivity(BaseTestCase): self.assert_client_cannot_get_endpoint(barbicanclient) - def test_client_cannot_access_server_if_nonexistent_version_specified(self): # noqa - barbicanclient_1 = client.Client( + def test_cannot_create_client_if_nonexistent_version_specified(self): + self.assertRaises(exceptions.UnsupportedVersion, + client.Client, + **{"project_id": CONF.keymanager.project_id, + "auth": self.auth, + "interface": client._DEFAULT_SERVICE_INTERFACE, + "service_type": client._DEFAULT_SERVICE_TYPE, + "version": 'wrong-version'}) + + self.assertRaises(exceptions.UnsupportedVersion, + client.Client, + **{"endpoint": CONF.keymanager.url, + "project_id": CONF.keymanager.project_id, + "auth": self.auth, + "version": 'nonexistent_version'}) + + def test_client_can_access_server_if_no_version_is_specified(self): + barbicanclient = client.Client( project_id=CONF.keymanager.project_id, auth=self.auth, interface=client._DEFAULT_SERVICE_INTERFACE, - service_type=client._DEFAULT_SERVICE_TYPE, - version='wrong-version') - - self.assertRaises(TypeError, barbicanclient_1.containers.list) - - barbicanclient_2 = client.Client( - endpoint=CONF.keymanager.url, - project_id=CONF.keymanager.project_id, - auth=self.auth, - version='nonexistent_version') + service_type=client._DEFAULT_SERVICE_TYPE) - self.assert_client_cannot_contact_barbican(barbicanclient_2) + self.assert_client_can_contact_barbican(barbicanclient) @@ -31,30 +31,30 @@ openstack.cli.extension = openstack.key_manager.v1 = - secret_order_create = barbicanclient.barbican_cli.orders:CreateOrder - secret_order_delete = barbicanclient.barbican_cli.orders:DeleteOrder - secret_order_get = barbicanclient.barbican_cli.orders:GetOrder - secret_order_list = barbicanclient.barbican_cli.orders:ListOrder + secret_order_create = barbicanclient.barbican_cli.v1.orders:CreateOrder + secret_order_delete = barbicanclient.barbican_cli.v1.orders:DeleteOrder + secret_order_get = barbicanclient.barbican_cli.v1.orders:GetOrder + secret_order_list = barbicanclient.barbican_cli.v1.orders:ListOrder - secret_delete = barbicanclient.barbican_cli.secrets:DeleteSecret - secret_get = barbicanclient.barbican_cli.secrets:GetSecret - secret_list = barbicanclient.barbican_cli.secrets:ListSecret - secret_store = barbicanclient.barbican_cli.secrets:StoreSecret - secret_update = barbicanclient.barbican_cli.secrets:UpdateSecret + secret_delete = barbicanclient.barbican_cli.v1.secrets:DeleteSecret + secret_get = barbicanclient.barbican_cli.v1.secrets:GetSecret + secret_list = barbicanclient.barbican_cli.v1.secrets:ListSecret + secret_store = barbicanclient.barbican_cli.v1.secrets:StoreSecret + secret_update = barbicanclient.barbican_cli.v1.secrets:UpdateSecret - secret_container_delete = barbicanclient.barbican_cli.containers:DeleteContainer - secret_container_get = barbicanclient.barbican_cli.containers:GetContainer - secret_container_list = barbicanclient.barbican_cli.containers:ListContainer - secret_container_create = barbicanclient.barbican_cli.containers:CreateContainer + secret_container_delete = barbicanclient.barbican_cli.v1.containers:DeleteContainer + secret_container_get = barbicanclient.barbican_cli.v1.containers:GetContainer + secret_container_list = barbicanclient.barbican_cli.v1.containers:ListContainer + secret_container_create = barbicanclient.barbican_cli.v1.containers:CreateContainer - ca_get = barbicanclient.barbican_cli.cas:GetCA - ca_list = barbicanclient.barbican_cli.cas:ListCA + ca_get = barbicanclient.barbican_cli.v1.cas:GetCA + ca_list = barbicanclient.barbican_cli.v1.cas:ListCA - acl_delete = barbicanclient.barbican_cli.acls:DeleteACLs - acl_get = barbicanclient.barbican_cli.acls:GetACLs - acl_submit = barbicanclient.barbican_cli.acls:SubmitACL - acl_user_add = barbicanclient.barbican_cli.acls:AddACLUsers - acl_user_remove = barbicanclient.barbican_cli.acls:RemoveACLUsers + acl_delete = barbicanclient.barbican_cli.v1.acls:DeleteACLs + acl_get = barbicanclient.barbican_cli.v1.acls:GetACLs + acl_submit = barbicanclient.barbican_cli.v1.acls:SubmitACL + acl_user_add = barbicanclient.barbican_cli.v1.acls:AddACLUsers + acl_user_remove = barbicanclient.barbican_cli.v1.acls:RemoveACLUsers [build_sphinx] source-dir = doc/source |