Handle container list command correctly
The "barbican secret container list" command fails if container secret don't have a name. Co-Authored-By: Juan Antonio Osorio Robles <jaosorior@redhat.com> Change-Id: I5465fc38473d27b94bea96e3be3f5728417f1649 Closes-Bug: #1531403
This commit is contained in:
committed by
ChangBo Guo(gcb)
parent
091d823712
commit
0ba51384c1
@@ -53,7 +53,7 @@ class ContainerFormatter(formatter.EntityFormatter):
|
||||
formatted_consumers = None
|
||||
if self.secrets:
|
||||
formatted_secrets = '\n'.join((
|
||||
'='.join((name, secret_ref))
|
||||
'='.join((name, secret_ref)) if name else secret_ref
|
||||
for name, secret_ref in six.iteritems(self.secret_refs)
|
||||
))
|
||||
if self.consumers:
|
||||
@@ -114,7 +114,8 @@ class Container(ContainerFormatter):
|
||||
def _fill_secrets_from_secret_refs(self):
|
||||
if self._secret_refs:
|
||||
self._cached_secrets = dict(
|
||||
(name.lower(), self._secret_manager.get(secret_ref=secret_ref))
|
||||
(name.lower() if name else "",
|
||||
self._secret_manager.get(secret_ref=secret_ref))
|
||||
for name, secret_ref in six.iteritems(self._secret_refs)
|
||||
)
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import json
|
||||
|
||||
import mock
|
||||
from oslo_utils import timeutils
|
||||
import six
|
||||
|
||||
from barbicanclient import acls
|
||||
from barbicanclient.tests import test_client
|
||||
@@ -465,7 +466,6 @@ class WhenTestingContainers(test_client.BaseEntityResource):
|
||||
container_resp = self.container.get_dict(self.entity_href)
|
||||
data = {"containers": [container_resp for v in range(3)]}
|
||||
self.responses.get(self.entity_base, json=data)
|
||||
|
||||
containers_list = self.manager.list(limit=10, offset=5)
|
||||
self.assertTrue(len(containers_list) == 3)
|
||||
self.assertIsInstance(containers_list[0], containers.Container)
|
||||
@@ -474,11 +474,30 @@ class WhenTestingContainers(test_client.BaseEntityResource):
|
||||
# Verify the correct URL was used to make the call.
|
||||
self.assertEqual(self.entity_base,
|
||||
self.responses.last_request.url.split('?')[0])
|
||||
|
||||
# Verify that correct information was sent in the call.
|
||||
self.assertEqual(['10'], self.responses.last_request.qs['limit'])
|
||||
self.assertEqual(['5'], self.responses.last_request.qs['offset'])
|
||||
|
||||
def test_should_get_list_when_secret_ref_without_name(self):
|
||||
container_resp = self.container.get_dict(self.entity_href)
|
||||
del container_resp.get("secret_refs")[0]["name"]
|
||||
data = {"containers": [container_resp for v in range(3)]}
|
||||
self.responses.get(self.entity_base, json=data)
|
||||
containers_list = self.manager.list(limit=10, offset=5)
|
||||
|
||||
self.assertTrue(len(containers_list) == 3)
|
||||
self.assertIsInstance(containers_list[0], containers.Container)
|
||||
self.assertEqual(self.entity_href, containers_list[0].container_ref)
|
||||
|
||||
# Verify the correct URL was used to make the call.
|
||||
self.assertEqual(self.entity_base,
|
||||
self.responses.last_request.url.split('?')[0])
|
||||
|
||||
# Verify that the names of the secret_refs in the containers are None
|
||||
for container in containers_list:
|
||||
for name in six.iterkeys(container._secret_refs):
|
||||
self.assertIsNone(name)
|
||||
|
||||
def test_should_fail_get_invalid_container(self):
|
||||
self.assertRaises(ValueError, self.manager.get,
|
||||
**{'container_ref': '12345'})
|
||||
|
||||
Reference in New Issue
Block a user