Skip to content

Commit 0ba6f9a

Browse files
committed
checked convoluted exit
Signed-off-by: Katharina Trentau <[email protected]>
1 parent 6e079ed commit 0ba6f9a

File tree

2 files changed

+29
-16
lines changed

2 files changed

+29
-16
lines changed

Tests/iaas/key-manager/check-for-key-manager.py

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,23 @@ def check_key_manager_permissions(conn: openstack.connection.Connection) -> None
7777
has sufficient access to the Key Manager API functionality.
7878
"""
7979
secret_name = "scs-member-role-test-secret"
80+
if not check_for_member_role(conn):
81+
logger.warning("Cannot test key-manager permissions. " "User has wrong roles")
82+
return None
83+
84+
def _find_secret(secret_name_or_id: str):
85+
"""Replacement method for finding secrets.
86+
87+
Mimicks the behavior of Connection.key_manager.find_secret()
88+
but fixes an issue with the internal implementation raising an
89+
exception due to an unexpected microversion parameter.
90+
"""
91+
secrets = conn.key_manager.secrets()
92+
for s in secrets:
93+
if s.name == secret_name_or_id or s.id == secret_name_or_id:
94+
return s
95+
return None
96+
8097
try:
8198
existing_secret = _find_secret(conn, secret_name)
8299
if existing_secret:
@@ -88,25 +105,21 @@ def check_key_manager_permissions(conn: openstack.connection.Connection) -> None
88105
secret_type="opaque",
89106
payload="foo",
90107
)
91-
try:
92-
new_secret = _find_secret(conn, secret_name)
93-
if not new_secret:
94-
raise ValueError(f"Secret '{secret_name}' was not discoverable by the user")
95-
finally:
96-
conn.key_manager.delete_secret(new_secret)
97-
except openstack.exceptions.ForbiddenException:
98-
logger.debug('exception details', exc_info=True)
99-
logger.error(
100-
"Users with the 'member' role can use Key Manager API: FAIL"
108+
109+
new_secret = _find_secret(secret_name)
110+
assert new_secret, (
111+
f"Secret created with name '{secret_name}' was not discoverable by "
112+
f"the user"
101113
)
102-
return 1
103-
logger.info(
104-
"Users with the 'member' role can use Key Manager API: PASS"
105-
)
114+
conn.key_manager.delete_secret(new_secret)
115+
except openstack.exceptions.ForbiddenException as e:
116+
print("Users of the 'member' role can use Key Manager API: FAIL")
117+
print(f"ERROR: {str(e)}")
118+
exit(1)
119+
print("Users of the 'member' role can use Key Manager API: PASS")
106120

107121

108122
def main():
109-
initialize_logging()
110123
parser = argparse.ArgumentParser(description="SCS Mandatory IaaS Service Checker")
111124
parser.add_argument(
112125
"--os-cloud",

Tests/requirements.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ aiohttp
22
click
33
kubernetes
44
kubernetes_asyncio
5+
openstacksdk
56
python-dateutil
67
PyYAML
7-
openstacksdk
88
requests
99
tomli
1010

0 commit comments

Comments
 (0)