@@ -77,23 +77,6 @@ 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-
9780 try :
9881 existing_secret = _find_secret (conn , secret_name )
9982 if existing_secret :
@@ -105,21 +88,25 @@ def _find_secret(secret_name_or_id: str):
10588 secret_type = "opaque" ,
10689 payload = "foo" ,
10790 )
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"
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"
113101 )
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" )
102+ return 1
103+ logger .info (
104+ "Users with the 'member' role can use Key Manager API: PASS"
105+ )
120106
121107
122108def main ():
109+ initialize_logging ()
123110 parser = argparse .ArgumentParser (description = "SCS Mandatory IaaS Service Checker" )
124111 parser .add_argument (
125112 "--os-cloud" ,
0 commit comments