Skip to content

Commit 1d1dd78

Browse files
committed
fixed application credentials usage
1 parent 8522516 commit 1d1dd78

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

simple_vm_client/openstack_connector/openstack_connector.py

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,15 @@ def load_config_yml(self, config_file: str) -> None:
129129
def load_env_config(self) -> None:
130130
logger.info("Load environment config: OpenStack")
131131

132+
self.AUTH_URL = os.environ.get("OS_AUTH_URL")
133+
if not self.AUTH_URL:
134+
logger.error("OS_AUTH_URL not provided in env!")
135+
sys.exit(1)
136+
132137
self.USE_APPLICATION_CREDENTIALS = os.environ.get(
133138
"USE_APPLICATION_CREDENTIALS", False
134139
)
140+
135141
if self.USE_APPLICATION_CREDENTIALS:
136142
logger.info("APPLICATION CREDENTIALS will be used!")
137143
try:
@@ -141,25 +147,34 @@ def load_env_config(self) -> None:
141147
self.APPLICATION_CREDENTIAL_SECRET = os.environ[
142148
"OS_APPLICATION_CREDENTIAL_SECRET"
143149
]
144-
except KeyError:
150+
except KeyError as e:
145151
logger.error(
146-
"Usage of Application Credentials enabled - but no credential id or/and secret provided in env!"
152+
f"Usage of Application Credentials enabled - but {e.args[0]} not provided in env!"
147153
)
148154
sys.exit(1)
149155
else:
150-
try:
156+
required_keys = [
157+
"OS_USERNAME",
158+
"OS_PASSWORD",
159+
"OS_PROJECT_NAME",
160+
"OS_PROJECT_ID",
161+
"OS_USER_DOMAIN_NAME",
162+
"OS_PROJECT_DOMAIN_ID",
163+
]
164+
missing_keys = [key for key in required_keys if key not in os.environ]
165+
if missing_keys:
166+
missing_keys_str = ", ".join(missing_keys)
167+
logger.error(
168+
f"Usage of Username/Password enabled - but keys {missing_keys_str} not provided in env!"
169+
)
170+
sys.exit(1)
171+
else:
151172
self.USERNAME = os.environ["OS_USERNAME"]
152173
self.PASSWORD = os.environ["OS_PASSWORD"]
153174
self.PROJECT_NAME = os.environ["OS_PROJECT_NAME"]
154175
self.PROJECT_ID = os.environ["OS_PROJECT_ID"]
155176
self.USER_DOMAIN_NAME = os.environ["OS_USER_DOMAIN_NAME"]
156-
self.AUTH_URL = os.environ["OS_AUTH_URL"]
157177
self.PROJECT_DOMAIN_ID = os.environ["OS_PROJECT_DOMAIN_ID"]
158-
except KeyError:
159-
logger.error(
160-
"Usage of Username/Password enabled - but some keys not provided in env!"
161-
)
162-
sys.exit(1)
163178

164179
def create_server(
165180
self,

0 commit comments

Comments
 (0)