Skip to content

Commit c299c78

Browse files
authored
Merge pull request #24 from reecetech/bugfix/FC-3427-reduce-vault-credential-requests
Reuse Vault credentials in calls to get_connection_params
2 parents 15ebe54 + f4bd9fc commit c299c78

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

django_informixdb_vault/base.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -160,30 +160,31 @@ def get_credentials_from_vault(self):
160160

161161
def get_connection_params(self):
162162
"""Returns connection parameters for Informix, with credentials from Vault"""
163-
# django_informixdb expects USER and PASSWORD, so fake them for now
164-
self.settings_dict['USER'] = ''
165-
self.settings_dict['PASSWORD'] = ''
163+
# django_informixdb expects USER and PASSWORD, so fake them if missing
164+
if 'USER' not in self.settings_dict:
165+
self.settings_dict['USER'] = ''
166+
if 'PASSWORD' not in self.settings_dict:
167+
self.settings_dict['PASSWORD'] = ''
166168

167169
# parse/get conn_params from django_informixdb
168170
conn_params = super().get_connection_params()
169171

170-
# We don't actually use USER and PASSWORD, so delete them.
171-
try:
172-
del self.settings_dict['USER']
173-
except KeyError:
174-
# Another thread may have already deleted it
175-
pass
176-
try:
177-
del self.settings_dict['PASSWORD']
178-
except KeyError:
179-
# Another thread may have already deleted it
180-
pass
172+
username = self.settings_dict['USER']
173+
password = self.settings_dict['PASSWORD']
174+
175+
if (username and password):
176+
conn_params['USER'] = username
177+
conn_params['PASSWORD'] = password
178+
179+
return conn_params
181180

182181
username, password = self.get_credentials_from_vault()
183182
logger.info(
184183
f"Retrieved username ({username}) and password from Vault"
185184
f" for database server {self.settings_dict['SERVER']}"
186185
)
186+
self.settings_dict['USER'] = username
187+
self.settings_dict['PASSWORD'] = password
187188

188189
conn_params['USER'] = username
189190
conn_params['PASSWORD'] = password

0 commit comments

Comments
 (0)