Read stack output to get AdminPassword

We are currently using environment API to obtain AdminPassword but
the API no longer shows the secret informations.
This updates the logic to use the stack output instead.

Conflicts:
	tripleo_common/tests/test_inventory.py

Closes-Bug: #2006125
Change-Id: I788f7b52cad8008e1a1fbd1329d51606cee262fe
(cherry picked from commit 010c9aeb56)
This commit is contained in:
Takashi Kajinami 2023-03-15 15:07:21 +09:00
parent d447618dd8
commit 6f3b270a31
2 changed files with 10 additions and 5 deletions

View File

@ -719,8 +719,7 @@ class TripleoInventory(object):
_vars.setdefault('plan', self.plan_name)
admin_password = self.get_overcloud_environment().get(
'parameter_defaults', {}).get('AdminPassword')
admin_password = self.stack_outputs.get('AdminPassword')
if admin_password:
_vars.setdefault('overcloud_admin_password', admin_password)

View File

@ -73,6 +73,10 @@ class TestInventory(base.TestCase):
'output_key': 'KeystoneURL',
'output_value': 'xyz://keystone'
},
{
'output_key': 'AdminPassword',
'output_value': 'theadminpw'
},
{
'output_key': 'ServerIdData',
'output_value': {
@ -150,10 +154,9 @@ class TestInventory(base.TestCase):
self.hclient = mock.MagicMock()
self.hclient.stacks.environment.return_value = {
'parameter_defaults': {
'AdminPassword': 'theadminpw',
'ContainerCli': 'podman'
}
}
}
self.mock_stack = mock.MagicMock()
self.mock_stack.outputs = self.outputs_data['outputs']
self.hclient.stacks.get.return_value = self.mock_stack
@ -233,6 +236,7 @@ class TestInventory(base.TestCase):
def test_outputs_iterating_returns_list_of_output_keys(self):
self.assertEqual({
'AdminPassword',
'EnabledServices',
'KeystoneURL',
'ServerIdData',
@ -328,6 +332,8 @@ class TestInventory(base.TestCase):
'output_value': {'Undercloud': ['sa', 'sb']}},
{'output_key': 'KeystoneURL',
'output_value': 'xyz://keystone'},
{'output_key': 'AdminPassword',
'output_value': 'theadminpw'},
{'output_key': 'ServerIdData',
'output_value': {'server_ids': {'Undercloud': ['a']},
'bootstrap_server_id': 'a'}},
@ -348,7 +354,7 @@ class TestInventory(base.TestCase):
plan_name = 'overcloud'
hclient = mock.MagicMock()
hclient.stacks.environment.return_value = {'parameter_defaults': {
'AdminPassword': 'theadminpw', 'ContainerCli': 'podman'}}
'ContainerCli': 'podman'}}
mock_stack = mock.MagicMock()
mock_stack.outputs = outputs_data['outputs']
hclient.stacks.get.return_value = mock_stack