From e398f422a8a90ece0b105553356ee55be02e6105 Mon Sep 17 00:00:00 2001 From: kexuesheng Date: Wed, 8 Feb 2023 20:05:37 +0900 Subject: [PATCH] Extra param for OpenStack type when register vim This patch changes to allow setting the `extra` parameter in the VIM configuration for openstack vim type. Implements: blueprint enhance-api-policy Change-Id: I37a3e21afced0aae6e0fd3c0cbb28ab16f2b7df8 --- tackerclient/tacker/v1_0/nfvo/vim_utils.py | 5 ++--- tackerclient/tests/unit/vm/test_vim_utils.py | 22 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/tackerclient/tacker/v1_0/nfvo/vim_utils.py b/tackerclient/tacker/v1_0/nfvo/vim_utils.py index 1fd019df..b71f0380 100644 --- a/tackerclient/tacker/v1_0/nfvo/vim_utils.py +++ b/tackerclient/tacker/v1_0/nfvo/vim_utils.py @@ -96,9 +96,8 @@ def args2body_vim(config_param, vim): ssl_ca_cert = config_param.pop('ssl_ca_cert', '') if ssl_ca_cert: vim['auth_cred']['ssl_ca_cert'] = ssl_ca_cert - extra = config_param.pop('extra', {}) - if extra: - vim['extra'] = extra + if 'extra' in config_param: + vim['extra'] = config_param.pop('extra') def validate_auth_url(url): diff --git a/tackerclient/tests/unit/vm/test_vim_utils.py b/tackerclient/tests/unit/vm/test_vim_utils.py index eb85700e..fef14c9a 100644 --- a/tackerclient/tests/unit/vm/test_vim_utils.py +++ b/tackerclient/tests/unit/vm/test_vim_utils.py @@ -43,6 +43,28 @@ class TestVIMUtils(testtools.TestCase): vim_utils.args2body_vim(config_param.copy(), vim) self.assertEqual(expected_vim, vim) + def test_args2body_vim_extra(self): + auth_cred = {'username': sentinel.usrname1, + 'password': sentinel.password1, + 'user_domain_name': sentinel.user_domain.name, + 'cert_verify': 'True'} + config_param = {'project_name': sentinel.prj_name, + 'project_domain_name': sentinel.prj_domain_name1, + 'type': 'openstack', + 'extra': {'area': 'area_A@region_A'}, + **auth_cred} + vim = {} + + expected_vim = {'auth_cred': auth_cred, + 'vim_project': + {'name': sentinel.prj_name, + 'project_domain_name': sentinel.prj_domain_name1}, + 'type': 'openstack', + 'extra': {'area': 'area_A@region_A'}} + + vim_utils.args2body_vim(config_param.copy(), vim) + self.assertEqual(expected_vim, vim) + def test_args2body_kubernetes_vim(self): config_param = {'username': sentinel.usrname1, 'password': sentinel.password1,