Skip to content

Commit 1f97a21

Browse files
author
do-gyun
committed
Implement method in openstack metadata service
- Implement `get_kms_host` method Change-Id: I62fdfbd3f99bdcad096911bd34bb363cfc15d4ef
1 parent e17488c commit 1f97a21

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

cloudbaseinit/metadata/services/baseopenstackservice.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,3 +308,16 @@ def get_client_auth_certs(self):
308308
LOG.debug("user_data metadata not present")
309309

310310
return list(set((cert.strip() for cert in certs)))
311+
312+
def get_kms_host(self):
313+
meta_data = self._get_meta_data()
314+
meta = meta_data.get("meta")
315+
316+
if meta and "kms_host" in meta:
317+
kms_host = meta["kms_host"]
318+
elif "kms_host" in meta_data:
319+
kms_host = meta_data["kms_host"]
320+
else:
321+
kms_host = None
322+
323+
return kms_host

cloudbaseinit/tests/metadata/services/test_baseopenstackservice.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,3 +528,26 @@ def test_get_network_details_v2_no_metadata(self, mock_log_exception,
528528

529529
self.assertIsNone(network_details)
530530
self.assertTrue(mock_log_exception.called)
531+
532+
@mock.patch(MODPATH +
533+
".BaseOpenStackService._get_meta_data")
534+
def _test_get_kms_host(self, mock_get_meta_data, meta_data):
535+
mock_get_meta_data.return_value = meta_data
536+
response = self._service.get_kms_host()
537+
mock_get_meta_data.assert_called_once_with()
538+
if meta_data and 'kms_host' in meta_data:
539+
self.assertEqual(meta_data['kms_host'], response)
540+
elif meta_data and 'kms_host' in meta_data.get('meta'):
541+
self.assertEqual(meta_data.get('meta')['kms_host'], response)
542+
else:
543+
self.assertIsNone(response)
544+
545+
def test_get_kms_host(self):
546+
self._test_get_kms_host(meta_data={'kms_host': 'fake host'})
547+
548+
def test_get_kms_host_in_meta(self):
549+
self._test_get_kms_host(
550+
meta_data={'meta': {'kms_host': 'fake host'}})
551+
552+
def test_get_kms_host_no_pass(self):
553+
self._test_get_kms_host(meta_data={})

doc/source/services.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ Capabilities:
5353
* admin user password
5454
* post admin user password (only once)
5555
* user data
56+
* kms host
5657

5758
Config options for `openstack` section:
5859

@@ -105,6 +106,7 @@ Capabilities:
105106
* admin user name
106107
* admin user password
107108
* user data
109+
* kms host
108110

109111
Config options for `config_drive` section:
110112

0 commit comments

Comments
 (0)