Implement client to support Kubernetes as VIM
This patch will add changes to support Kubernetes as VIM feature in python-tackerclient. After this change, user have to provide VIM type in VIM config file when creating or updating VIM. The default VIM type is openstack. Partially Implements: blueprint kubernetes-as-vim Change-Id: I1b1610cb89a78a2a8fe134265b83dd469d72fdcd
This commit is contained in:
parent
bab4900db2
commit
6f1792b490
tackerclient
tacker/v1_0/nfvo
tests/unit/vm
@ -80,7 +80,6 @@ class CreateVIM(tackerV10.CreateCommand):
|
||||
'specified',
|
||||
status_code=404)
|
||||
vim_obj['auth_url'] = vim_utils.validate_auth_url(auth_url).geturl()
|
||||
vim_obj['type'] = config_param.pop('type', 'openstack')
|
||||
vim_utils.args2body_vim(config_param, vim_obj)
|
||||
tackerV10.update_dict(parsed_args, body[self.resource],
|
||||
['tenant_id', 'name', 'description',
|
||||
@ -127,6 +126,9 @@ class UpdateVIM(tackerV10.UpdateCommand):
|
||||
tackerV10.update_dict(parsed_args, body[self.resource],
|
||||
['tenant_id', 'name', 'description',
|
||||
'is_default'])
|
||||
# type attribute is read-only, it can't be updated, so remove it
|
||||
# in update method
|
||||
body['vim'].pop('type')
|
||||
return body
|
||||
|
||||
|
||||
|
@ -24,17 +24,58 @@ def args2body_vim(config_param, vim):
|
||||
:param vim: vim request object
|
||||
:return: vim body with args populated
|
||||
"""
|
||||
vim['vim_project'] = {'name': config_param.pop('project_name', ''),
|
||||
'project_domain_name':
|
||||
config_param.pop('project_domain_name', '')}
|
||||
if not vim['vim_project']['name']:
|
||||
raise exceptions.TackerClientException(message='Project name '
|
||||
'must be specified',
|
||||
status_code=404)
|
||||
vim['auth_cred'] = {'username': config_param.pop('username', ''),
|
||||
'password': config_param.pop('password', ''),
|
||||
'user_domain_name':
|
||||
config_param.pop('user_domain_name', '')}
|
||||
vim_type = ['openstack', 'kubernetes']
|
||||
if 'type' in config_param:
|
||||
vim['type'] = config_param.pop('type', '')
|
||||
if not vim['type'] in vim_type:
|
||||
raise exceptions.TackerClientException(
|
||||
message='Supported VIM types: openstack, kubernetes',
|
||||
status_code=400)
|
||||
else:
|
||||
vim['type'] = 'openstack'
|
||||
if vim['type'] == 'openstack':
|
||||
vim['vim_project'] = {
|
||||
'name': config_param.pop('project_name', ''),
|
||||
'project_domain_name':
|
||||
config_param.pop('project_domain_name', '')}
|
||||
if not vim['vim_project']['name']:
|
||||
raise exceptions.TackerClientException(
|
||||
message='Project name must be specified',
|
||||
status_code=404)
|
||||
vim['auth_cred'] = {'username': config_param.pop('username', ''),
|
||||
'password': config_param.pop('password', ''),
|
||||
'user_domain_name':
|
||||
config_param.pop('user_domain_name', '')}
|
||||
elif vim['type'] == 'kubernetes':
|
||||
vim['vim_project'] = {
|
||||
'name': config_param.pop('project_name', '')}
|
||||
if not vim['vim_project']['name']:
|
||||
raise exceptions.TackerClientException(
|
||||
message='Project name must be specified in Kubernetes VIM,'
|
||||
'it is namespace in Kubernetes environment',
|
||||
status_code=404)
|
||||
if ('username' in config_param) and ('password' in config_param):
|
||||
vim['auth_cred'] = {
|
||||
'username': config_param.pop('username', ''),
|
||||
'password': config_param.pop('password', '')}
|
||||
elif 'bearer_token' in config_param:
|
||||
vim['auth_cred'] = {
|
||||
'bearer_token': config_param.pop('bearer_token', '')}
|
||||
else:
|
||||
raise exceptions.TackerClientException(
|
||||
message='username and password or bearer_token must be'
|
||||
'provided',
|
||||
status_code=404)
|
||||
if 'ssl_ca_cert' in config_param:
|
||||
ssl_ca_cert = config_param.pop('ssl_ca_cert', '')
|
||||
if ssl_ca_cert == 'None':
|
||||
vim['auth_cred']['ssl_ca_cert'] = None
|
||||
else:
|
||||
vim['auth_cred']['ssl_ca_cert'] = ssl_ca_cert
|
||||
else:
|
||||
raise exceptions.TackerClientException(
|
||||
message='ssl_ca_cert must be provided or leave it with None',
|
||||
status_code=404)
|
||||
|
||||
|
||||
def validate_auth_url(url):
|
||||
|
@ -4,3 +4,4 @@ password: '12345'
|
||||
project_name: 'abc'
|
||||
project_domain_name: 'prj_domain_name'
|
||||
user_domain_name: 'user_domain_name'
|
||||
type: 'openstack'
|
@ -3,3 +3,4 @@ password: '12345'
|
||||
project_name: 'abc'
|
||||
project_domain_name: 'prj_domain_name'
|
||||
user_domain_name: 'user_domain_name'
|
||||
type: 'openstack'
|
||||
|
@ -0,0 +1,5 @@
|
||||
auth_url: 'https://1.2.3.4:6443'
|
||||
bearer_token: 'xyz'
|
||||
ssl_ca_cert: None
|
||||
project_name: 'default'
|
||||
type: 'kubernetes'
|
@ -0,0 +1,4 @@
|
||||
bearer_token: 'xyz'
|
||||
ssl_ca_cert: None
|
||||
project_name: 'default'
|
||||
type: 'kubernetes'
|
6
tackerclient/tests/unit/vm/samples/vim_k8s_config.yaml
Normal file
6
tackerclient/tests/unit/vm/samples/vim_k8s_config.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
auth_url: 'https://1.2.3.4:6443'
|
||||
username: 'xyz'
|
||||
password: '12345'
|
||||
ssl_ca_cert: 'abcxyz'
|
||||
project_name: 'default'
|
||||
type: 'kubernetes'
|
@ -0,0 +1,5 @@
|
||||
username: 'xyz'
|
||||
password: '12345'
|
||||
ssl_ca_cert: 'abcxyz'
|
||||
project_name: 'default'
|
||||
type: 'kubernetes'
|
@ -40,6 +40,7 @@ class CLITestV10VIMJSON(test_cli10.CLITestV10Base):
|
||||
self.auth_cred = {'username': 'xyz', 'password': '12345',
|
||||
'user_domain_name': 'user_domain_name'}
|
||||
self.auth_url = 'http://1.2.3.4:5000'
|
||||
self.type = 'openstack'
|
||||
|
||||
def test_register_vim_all_params(self):
|
||||
cmd = vim.CreateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
@ -52,9 +53,9 @@ class CLITestV10VIMJSON(test_cli10.CLITestV10Base):
|
||||
name,
|
||||
'--config-file', vim_config,
|
||||
'--description', description]
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url']
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url', 'type']
|
||||
position_values = [self.auth_cred, self.vim_project,
|
||||
self.auth_url]
|
||||
self.auth_url, self.type]
|
||||
extra_body = {'type': 'openstack', 'name': name,
|
||||
'description': description, 'is_default': False}
|
||||
self._test_create_resource(self._RESOURCE, cmd, None, my_id,
|
||||
@ -72,9 +73,9 @@ class CLITestV10VIMJSON(test_cli10.CLITestV10Base):
|
||||
name,
|
||||
'--config-file', vim_config,
|
||||
'--description', description]
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url']
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url', 'type']
|
||||
position_values = [self.auth_cred, self.vim_project,
|
||||
self.auth_url]
|
||||
self.auth_url, self.type]
|
||||
extra_body = {'type': 'openstack', 'name': name,
|
||||
'description': description, 'is_default': False}
|
||||
message = 'Auth URL must be specified'
|
||||
@ -97,11 +98,12 @@ class CLITestV10VIMJSON(test_cli10.CLITestV10Base):
|
||||
name,
|
||||
'--config-file', vim_config,
|
||||
]
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url']
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url', 'type']
|
||||
position_values = [
|
||||
self.auth_cred,
|
||||
self.vim_project,
|
||||
self.auth_url
|
||||
self.auth_url,
|
||||
self.type
|
||||
]
|
||||
extra_body = {'type': 'openstack', 'name': name, 'is_default': False}
|
||||
self._test_create_resource(self._RESOURCE, cmd, name, my_id, args,
|
||||
@ -138,8 +140,9 @@ class CLITestV10VIMJSON(test_cli10.CLITestV10Base):
|
||||
'--name', name,
|
||||
'--description', description,
|
||||
'--is_default', is_default]
|
||||
extra_fields = {'vim_project': self.vim_project, 'auth_cred':
|
||||
self.auth_cred, 'is_default': 'True',
|
||||
extra_fields = {'vim_project': self.vim_project,
|
||||
'auth_cred': self.auth_cred,
|
||||
'is_default': 'True',
|
||||
'name': name, 'description': description}
|
||||
self._test_update_resource(self._RESOURCE, cmd, my_id, args,
|
||||
extra_fields)
|
||||
|
172
tackerclient/tests/unit/vm/test_cli10_vim_k8s.py
Normal file
172
tackerclient/tests/unit/vm/test_cli10_vim_k8s.py
Normal file
@ -0,0 +1,172 @@
|
||||
# Copyright 2015-2016 Brocade Communications Systems Inc
|
||||
# All Rights Reserved.
|
||||
#
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import sys
|
||||
|
||||
from tackerclient.common import exceptions
|
||||
from tackerclient.common import utils
|
||||
from tackerclient.tacker.v1_0.nfvo import vim
|
||||
from tackerclient.tests.unit import test_cli10
|
||||
|
||||
API_VERSION = "1.0"
|
||||
FORMAT = 'json'
|
||||
TOKEN = 'testtoken'
|
||||
ENDURL = 'localurl'
|
||||
|
||||
|
||||
class CLITestV10VIMJSON(test_cli10.CLITestV10Base):
|
||||
_RESOURCE = 'vim'
|
||||
_RESOURCES = 'vims'
|
||||
|
||||
def setUp(self):
|
||||
plurals = {'vims': 'vim'}
|
||||
super(CLITestV10VIMJSON, self).setUp(plurals=plurals)
|
||||
self.vim_project = {'name': 'default'}
|
||||
self.auth_cred = {'username': 'xyz', 'password': '12345',
|
||||
'ssl_ca_cert': 'abcxyz'}
|
||||
self.auth_url = 'https://1.2.3.4:6443'
|
||||
self.type = 'kubernetes'
|
||||
|
||||
def test_register_vim_all_params(self):
|
||||
cmd = vim.CreateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
name = 'my-name'
|
||||
my_id = 'my-id'
|
||||
description = 'Vim Description'
|
||||
vim_config = utils.get_file_path(
|
||||
'tests/unit/vm/samples/vim_k8s_config.yaml')
|
||||
args = [
|
||||
name,
|
||||
'--config-file', vim_config,
|
||||
'--description', description]
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url', 'type']
|
||||
position_values = [self.auth_cred, self.vim_project,
|
||||
self.auth_url, self.type]
|
||||
extra_body = {'type': 'kubernetes', 'name': name,
|
||||
'description': description, 'is_default': False}
|
||||
self._test_create_resource(self._RESOURCE, cmd, None, my_id,
|
||||
args, position_names, position_values,
|
||||
extra_body=extra_body)
|
||||
|
||||
def test_register_vim_with_no_auth_url(self):
|
||||
cmd = vim.CreateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
my_id = 'my-id'
|
||||
name = 'test_vim'
|
||||
description = 'Vim Description'
|
||||
vim_config = utils.get_file_path(
|
||||
'tests/unit/vm/samples/vim_k8s_config_without_auth_url.yaml')
|
||||
args = [
|
||||
name,
|
||||
'--config-file', vim_config,
|
||||
'--description', description]
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url', 'type']
|
||||
position_values = [self.auth_cred, self.vim_project,
|
||||
self.auth_url, self.type]
|
||||
extra_body = {'type': 'kubernetes', 'name': name,
|
||||
'description': description, 'is_default': False}
|
||||
message = 'Auth URL must be specified'
|
||||
ex = self.assertRaises(exceptions.TackerClientException,
|
||||
self._test_create_resource,
|
||||
self._RESOURCE, cmd, None, my_id, args,
|
||||
position_names, position_values,
|
||||
extra_body=extra_body)
|
||||
self.assertEqual(message, ex.message)
|
||||
self.assertEqual(404, ex.status_code)
|
||||
|
||||
def test_register_vim_with_mandatory_params(self):
|
||||
cmd = vim.CreateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
name = 'my-name'
|
||||
my_id = 'my-id'
|
||||
|
||||
vim_config = utils.get_file_path(
|
||||
'tests/unit/vm/samples/vim_k8s_config.yaml')
|
||||
args = [
|
||||
name,
|
||||
'--config-file', vim_config,
|
||||
]
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url', 'type']
|
||||
position_values = [
|
||||
self.auth_cred,
|
||||
self.vim_project,
|
||||
self.auth_url,
|
||||
self.type
|
||||
]
|
||||
extra_body = {'type': 'kubernetes', 'name': name, 'is_default': False}
|
||||
self._test_create_resource(self._RESOURCE, cmd, name, my_id, args,
|
||||
position_names, position_values,
|
||||
extra_body=extra_body)
|
||||
|
||||
def test_list_vims(self):
|
||||
cmd = vim.ListVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
self._test_list_resources(self._RESOURCES, cmd, True)
|
||||
|
||||
def test_show_vim_id(self):
|
||||
cmd = vim.ShowVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
args = ['--fields', 'id', self.test_id]
|
||||
self._test_show_resource(self._RESOURCE, cmd, self.test_id, args,
|
||||
['id'])
|
||||
|
||||
def test_show_vim_id_name(self):
|
||||
cmd = vim.ShowVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
args = ['--fields', 'id', '--fields', 'name', self.test_id]
|
||||
self._test_show_resource(self._RESOURCE, cmd, self.test_id,
|
||||
args, ['id', 'name'])
|
||||
|
||||
def test_update_vim_all_params(self):
|
||||
cmd = vim.UpdateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
update_config = utils.get_file_path(
|
||||
'tests/unit/vm/samples/vim_k8s_config_without_auth_url.yaml')
|
||||
my_id = 'my-id'
|
||||
name = 'new_name'
|
||||
name = 'new_name'
|
||||
description = 'new_description'
|
||||
is_default = 'True'
|
||||
args = [
|
||||
my_id,
|
||||
'--config-file', str(update_config),
|
||||
'--name', name,
|
||||
'--description', description,
|
||||
'--is_default', is_default]
|
||||
extra_fields = {'vim_project': self.vim_project,
|
||||
'auth_cred': self.auth_cred,
|
||||
'is_default': 'True',
|
||||
'name': name, 'description': description}
|
||||
self._test_update_resource(self._RESOURCE, cmd, my_id, args,
|
||||
extra_fields)
|
||||
|
||||
def test_update_vim_with_mandatory_params(self):
|
||||
cmd = vim.UpdateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
update_config = utils.get_file_path(
|
||||
'tests/unit/vm/samples/vim_k8s_config_without_auth_url.yaml')
|
||||
my_id = 'my-id'
|
||||
args = [
|
||||
my_id,
|
||||
'--config-file', str(update_config)]
|
||||
extra_fields = {'vim_project': self.vim_project,
|
||||
'auth_cred': self.auth_cred}
|
||||
self._test_update_resource(self._RESOURCE, cmd, my_id, args,
|
||||
extra_fields)
|
||||
|
||||
def test_delete_vim(self):
|
||||
cmd = vim.DeleteVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
my_id = 'my-id'
|
||||
args = [my_id]
|
||||
self._test_delete_resource(self._RESOURCE, cmd, my_id, args)
|
||||
|
||||
def test_multi_delete_vim(self):
|
||||
cmd = vim.DeleteVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
vim_ids = 'my-id1 my-id2 my-id3'
|
||||
args = [vim_ids]
|
||||
self._test_delete_resource(self._RESOURCE, cmd, vim_ids, args)
|
@ -0,0 +1,170 @@
|
||||
# Copyright 2015-2016 Brocade Communications Systems Inc
|
||||
# All Rights Reserved.
|
||||
#
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import sys
|
||||
|
||||
from tackerclient.common import exceptions
|
||||
from tackerclient.common import utils
|
||||
from tackerclient.tacker.v1_0.nfvo import vim
|
||||
from tackerclient.tests.unit import test_cli10
|
||||
|
||||
API_VERSION = "1.0"
|
||||
FORMAT = 'json'
|
||||
TOKEN = 'testtoken'
|
||||
ENDURL = 'localurl'
|
||||
|
||||
|
||||
class CLITestV10VIMJSON(test_cli10.CLITestV10Base):
|
||||
_RESOURCE = 'vim'
|
||||
_RESOURCES = 'vims'
|
||||
|
||||
def setUp(self):
|
||||
plurals = {'vims': 'vim'}
|
||||
super(CLITestV10VIMJSON, self).setUp(plurals=plurals)
|
||||
self.vim_project = {'name': 'default'}
|
||||
self.auth_cred = {'bearer_token': 'xyz', 'ssl_ca_cert': None}
|
||||
self.auth_url = 'https://1.2.3.4:6443'
|
||||
self.type = 'kubernetes'
|
||||
|
||||
def test_register_vim_all_params(self):
|
||||
cmd = vim.CreateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
name = 'my-name'
|
||||
my_id = 'my-id'
|
||||
description = 'Vim Description'
|
||||
vim_config = utils.get_file_path(
|
||||
'tests/unit/vm/samples/vim_k8s_bearer_token.yaml')
|
||||
args = [
|
||||
name,
|
||||
'--config-file', vim_config,
|
||||
'--description', description]
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url', 'type']
|
||||
position_values = [self.auth_cred, self.vim_project,
|
||||
self.auth_url, self.type]
|
||||
extra_body = {'type': 'kubernetes', 'name': name,
|
||||
'description': description, 'is_default': False}
|
||||
self._test_create_resource(self._RESOURCE, cmd, None, my_id,
|
||||
args, position_names, position_values,
|
||||
extra_body=extra_body)
|
||||
|
||||
def test_register_vim_with_no_auth_url(self):
|
||||
cmd = vim.CreateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
my_id = 'my-id'
|
||||
name = 'test_vim'
|
||||
description = 'Vim Description'
|
||||
vim_config = utils.get_file_path(
|
||||
'tests/unit/vm/samples/vim_k8s_bearer_token_without_auth_url.yaml')
|
||||
args = [
|
||||
name,
|
||||
'--config-file', vim_config,
|
||||
'--description', description]
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url', 'type']
|
||||
position_values = [self.auth_cred, self.vim_project,
|
||||
self.auth_url, self.type]
|
||||
extra_body = {'type': 'kubernetes', 'name': name,
|
||||
'description': description, 'is_default': False}
|
||||
message = 'Auth URL must be specified'
|
||||
ex = self.assertRaises(exceptions.TackerClientException,
|
||||
self._test_create_resource,
|
||||
self._RESOURCE, cmd, None, my_id, args,
|
||||
position_names, position_values,
|
||||
extra_body=extra_body)
|
||||
self.assertEqual(message, ex.message)
|
||||
self.assertEqual(404, ex.status_code)
|
||||
|
||||
def test_register_vim_with_mandatory_params(self):
|
||||
cmd = vim.CreateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
name = 'my-name'
|
||||
my_id = 'my-id'
|
||||
|
||||
vim_config = utils.get_file_path(
|
||||
'tests/unit/vm/samples/vim_k8s_bearer_token.yaml')
|
||||
args = [
|
||||
name,
|
||||
'--config-file', vim_config,
|
||||
]
|
||||
position_names = ['auth_cred', 'vim_project', 'auth_url', 'type']
|
||||
position_values = [
|
||||
self.auth_cred,
|
||||
self.vim_project,
|
||||
self.auth_url,
|
||||
self.type
|
||||
]
|
||||
extra_body = {'type': 'kubernetes', 'name': name, 'is_default': False}
|
||||
self._test_create_resource(self._RESOURCE, cmd, name, my_id, args,
|
||||
position_names, position_values,
|
||||
extra_body=extra_body)
|
||||
|
||||
def test_list_vims(self):
|
||||
cmd = vim.ListVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
self._test_list_resources(self._RESOURCES, cmd, True)
|
||||
|
||||
def test_show_vim_id(self):
|
||||
cmd = vim.ShowVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
args = ['--fields', 'id', self.test_id]
|
||||
self._test_show_resource(self._RESOURCE, cmd, self.test_id, args,
|
||||
['id'])
|
||||
|
||||
def test_show_vim_id_name(self):
|
||||
cmd = vim.ShowVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
args = ['--fields', 'id', '--fields', 'name', self.test_id]
|
||||
self._test_show_resource(self._RESOURCE, cmd, self.test_id,
|
||||
args, ['id', 'name'])
|
||||
|
||||
def test_update_vim_all_params(self):
|
||||
cmd = vim.UpdateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
update_config = utils.get_file_path(
|
||||
'tests/unit/vm/samples/vim_k8s_bearer_token_without_auth_url.yaml')
|
||||
my_id = 'my-id'
|
||||
name = 'new_name'
|
||||
description = 'new_description'
|
||||
is_default = 'True'
|
||||
args = [
|
||||
my_id,
|
||||
'--config-file', str(update_config),
|
||||
'--name', name,
|
||||
'--description', description,
|
||||
'--is_default', is_default]
|
||||
extra_fields = {'vim_project': self.vim_project,
|
||||
'auth_cred': self.auth_cred,
|
||||
'is_default': 'True',
|
||||
'name': name, 'description': description}
|
||||
self._test_update_resource(self._RESOURCE, cmd, my_id, args,
|
||||
extra_fields)
|
||||
|
||||
def test_update_vim_with_mandatory_params(self):
|
||||
cmd = vim.UpdateVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
update_config = utils.get_file_path(
|
||||
'tests/unit/vm/samples/vim_k8s_bearer_token_without_auth_url.yaml')
|
||||
my_id = 'my-id'
|
||||
args = [
|
||||
my_id,
|
||||
'--config-file', str(update_config)]
|
||||
extra_fields = {'vim_project': self.vim_project,
|
||||
'auth_cred': self.auth_cred}
|
||||
self._test_update_resource(self._RESOURCE, cmd, my_id, args,
|
||||
extra_fields)
|
||||
|
||||
def test_delete_vim(self):
|
||||
cmd = vim.DeleteVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
my_id = 'my-id'
|
||||
args = [my_id]
|
||||
self._test_delete_resource(self._RESOURCE, cmd, my_id, args)
|
||||
|
||||
def test_multi_delete_vim(self):
|
||||
cmd = vim.DeleteVIM(test_cli10.MyApp(sys.stdout), None)
|
||||
vim_ids = 'my-id1 my-id2 my-id3'
|
||||
args = [vim_ids]
|
||||
self._test_delete_resource(self._RESOURCE, cmd, vim_ids, args)
|
@ -28,22 +28,59 @@ class TestVIMUtils(testtools.TestCase):
|
||||
'username': sentinel.usrname1,
|
||||
'password': sentinel.password1,
|
||||
'project_domain_name': sentinel.prj_domain_name1,
|
||||
'user_domain_name': sentinel.user_domain.name, }
|
||||
'user_domain_name': sentinel.user_domain.name,
|
||||
'type': 'openstack'}
|
||||
vim = {}
|
||||
auth_cred = config_param.copy()
|
||||
auth_cred.pop('project_name')
|
||||
auth_cred.pop('project_domain_name')
|
||||
auth_cred.pop('type')
|
||||
expected_vim = {'auth_cred': auth_cred,
|
||||
'vim_project':
|
||||
{'name': sentinel.prj_name,
|
||||
'project_domain_name': sentinel.prj_domain_name1}}
|
||||
'project_domain_name': sentinel.prj_domain_name1},
|
||||
'type': 'openstack'}
|
||||
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,
|
||||
'ssl_ca_cert': 'abcxyz',
|
||||
'project_name': sentinel.prj_name,
|
||||
'type': 'kubernetes'}
|
||||
vim = {}
|
||||
auth_cred = config_param.copy()
|
||||
auth_cred.pop('project_name')
|
||||
auth_cred.pop('type')
|
||||
expected_vim = {'auth_cred': auth_cred,
|
||||
'vim_project':
|
||||
{'name': sentinel.prj_name},
|
||||
'type': 'kubernetes'}
|
||||
vim_utils.args2body_vim(config_param.copy(), vim)
|
||||
self.assertEqual(expected_vim, vim)
|
||||
|
||||
def test_args2body_kubernetes_vim_bearer(self):
|
||||
config_param = {'bearer_token': sentinel.bearer_token,
|
||||
'ssl_ca_cert': None,
|
||||
'project_name': sentinel.prj_name,
|
||||
'type': 'kubernetes'}
|
||||
vim = {}
|
||||
auth_cred = config_param.copy()
|
||||
auth_cred.pop('project_name')
|
||||
auth_cred.pop('type')
|
||||
expected_vim = {'auth_cred': auth_cred,
|
||||
'vim_project':
|
||||
{'name': sentinel.prj_name},
|
||||
'type': 'kubernetes'}
|
||||
vim_utils.args2body_vim(config_param.copy(), vim)
|
||||
self.assertEqual(expected_vim, vim)
|
||||
|
||||
def test_args2body_vim_no_project(self):
|
||||
config_param = {'username': sentinel.usrname1,
|
||||
'password': sentinel.password1,
|
||||
'user_domain_name': sentinel.user_domain.name, }
|
||||
'user_domain_name': sentinel.user_domain.name,
|
||||
'type': 'openstack'}
|
||||
vim = {}
|
||||
self.assertRaises(exceptions.TackerClientException,
|
||||
vim_utils.args2body_vim,
|
||||
|
Loading…
x
Reference in New Issue
Block a user