563 lines
28 KiB
Python
Executable File
563 lines
28 KiB
Python
Executable File
import mock
|
|
import webob
|
|
from daisy import test
|
|
from daisy.api.backends.kolla import install
|
|
from daisy.context import RequestContext
|
|
import subprocess
|
|
from oslo_serialization import jsonutils
|
|
|
|
mgnt_ip_list = ['192.168.1.21', '192.168.1.20', '192.168.1.22']
|
|
dns_name_ip = [{'host-192-168-1-21': '192.168.1.21'},
|
|
{'host-192-168-1-20': '192.168.1.20'},
|
|
{'lb-vip': '192.168.1.50'},
|
|
{'host-192-168-1-22': '192.168.1.22'},
|
|
{'ha-vip': '192.168.1.50'},
|
|
{'public-vip': '10.43.203.114'},
|
|
{'glance-vip': '192.168.1.50'},
|
|
{'db-vip': '192.168.1.50'}]
|
|
ha_nodes_ip = ['192.168.1.21', '192.168.1.20']
|
|
roles = [{u'db_vip': None,
|
|
u'status': u'init',
|
|
u'outband_vip': None,
|
|
u'mongodb_vip': None,
|
|
u'vip': None,
|
|
u'cluster_id': u'8ad27e36-f3e2-48b4-84b8-5b676c6fabde',
|
|
u'ntp_server': None,
|
|
u'deleted_at': None,
|
|
u'id': u'9994269b-376c-49df-a698-24ade6edb7f1',
|
|
u'glance_lv_size': 0,
|
|
u'provider_public_vip': None,
|
|
u'db_lv_size': 0,
|
|
u'progress': 0,
|
|
u'type': u'default',
|
|
u'nova_lv_size': 0,
|
|
u'glance_vip': None,
|
|
u'config_set_id': u'055d7ea7-13ab-4b3c-8b8f-f26cd1640ac4',
|
|
u'description': u'Computer Role for kolla.',
|
|
u'deleted': False,
|
|
u'updated_at': u'2016-12-28T07:52:25.000000',
|
|
u'role_type': u'COMPUTER',
|
|
u'deployment_backend': u'kolla',
|
|
u'name': u'COMPUTER',
|
|
u'created_at': u'2016-12-28T07:51:15.000000',
|
|
u'messages': None,
|
|
u'public_vip': None,
|
|
u'disk_location': u'local',
|
|
u'config_set_update_progress': 0},
|
|
{u'db_vip': None,
|
|
u'status': u'init',
|
|
u'outband_vip': None, u'mongodb_vip': None,
|
|
u'vip': u'10.20.11.11',
|
|
u'cluster_id': u'8ad27e36-f3e2-48b4-84b8-5b676c6fabde',
|
|
u'ntp_server': None,
|
|
u'deleted_at': None,
|
|
u'id': u'008dec06-f9fc-4ce1-be77-681e7c252c2d',
|
|
u'glance_lv_size': 0, u'provider_public_vip': None,
|
|
u'db_lv_size': 0, u'progress': 0, u'type': u'default',
|
|
u'nova_lv_size': 0, u'glance_vip': None,
|
|
u'config_set_id': u'1749523e-f7f4-4d18-843c-9e32cf8a9997',
|
|
u'description': u'Controller Role for kolla.',
|
|
u'deleted': False, u'updated_at': u'2016-12-28T07:52:25.000000',
|
|
u'role_type': u'CONTROLLER_LB', u'deployment_backend': u'kolla',
|
|
u'name': u'CONTROLLER_LB',
|
|
u'created_at': u'2016-12-28T07:51:15.000000',
|
|
u'messages': None, u'public_vip': None, u'disk_location': u'local',
|
|
u'config_set_update_progress': 0}]
|
|
role_hosts = [{u'status': u'installing', u'deleted': False,
|
|
u'created_at': u'2016-12-28T07:52:25.000000',
|
|
u'messages': u'begin deploy openstack',
|
|
u'updated_at': u'2016-12-28T07:52:25.000000',
|
|
u'role_id': u'008dec06-f9fc-4ce1-be77-681e7c252c2d',
|
|
u'progress': 60,
|
|
u'host_id': u'9423980b-ec76-475a-b45f-558eb4b7dfed',
|
|
u'deleted_at': None,
|
|
u'id': u'4ae8c321-b053-49b1-ac36-e3fd24753ccb'}]
|
|
deploy_host_cfg = {'mgtip': u'10.20.11.3', 'pub_macname': u'ens3',
|
|
'sto_macname': u'ens3', 'mgt_macname': u'ens3',
|
|
'host_name': u'host-10-20-11-3'}
|
|
cluster_roles = [{'cluster_id': '8ad27e36-f3e2-48b4-84b8-5b676c6fabde',
|
|
'db_vip': '196.168.1.4', 'deployment_backend': 'kolla',
|
|
'glance_vip': '196.168.1.3', 'vip': '196.168.1.2',
|
|
'id': 'ae166ec5-61fe-4997-900d-8bb86b988fa2',
|
|
'name': 'CONTROLLER_HA', 'ntp_server': None,
|
|
'public_vip': '10.43.177.100', 'status': 'init',
|
|
'outband_vip': ''},
|
|
{'cluster_id': '8ad27e36-f3e2-48b4-84b8-5b676c6fabde',
|
|
'db_vip': None, 'deployment_backend': 'kolla',
|
|
'glance_vip': None, 'vip': None,
|
|
'id': '96406e44-0e4d-4a82-a0d4-3eec01859026',
|
|
'name': 'COMPUTER', 'ntp_server': None,
|
|
'public_vip': None, 'status': 'init'},
|
|
{'cluster_id': '8ad27e36-f3e2-48b4-84b8-5b676c6fabde',
|
|
'db_vip': None, 'deployment_backend': 'kolla',
|
|
'glance_vip': None, 'vip': '196.168.1.5',
|
|
'id': '065ccf12-9cda-4e09-a5f7-27359f24c33e',
|
|
'name': 'CONTROLLER_LB', 'ntp_server': None,
|
|
'public_vip': None, 'status': 'init'}]
|
|
cluster_networks = [{'capability': 'high',
|
|
'cluster_id': '8ad27e36-f3e2-48b4-84b8-5b676c6fabde',
|
|
'id': 'ee027d1b-f6f8-482b-b1d3-3d6f5aab0d8f',
|
|
'ip': None, 'ip_ranges': [],
|
|
'ml2_type': None, 'name': 'MANAGEMENT',
|
|
'network_type': 'MANAGEMENT',
|
|
'physnet_name': 'physnet_enp132s0f0',
|
|
'segmentation_type': None, 'vlan_end': 4094,
|
|
'vlan_id': None, 'vlan_start': 1, 'vni_end': None,
|
|
'vni_start': None},
|
|
{'capability': 'high',
|
|
'cluster_id': '8ad27e36-f3e2-48b4-84b8-5b676c6fabde',
|
|
'id': 'a27748a7-2c84-409a-8f34-b8c1f00bb3a4',
|
|
'ip': None, 'ip_ranges': [], 'ml2_type': None,
|
|
'name': 'PUBLICAPI', 'network_type': 'PUBLICAPI',
|
|
'physnet_name': 'physnet_enp132s0f1',
|
|
'segmentation_type': None, 'vlan_end': 4094,
|
|
'vlan_id': None, 'vlan_start': 1, 'vni_end': None,
|
|
'vni_start': None},
|
|
{'capability': 'high',
|
|
'cluster_id': '8ad27e36-f3e2-48b4-84b8-5b676c6fabde',
|
|
'id': '9388ed37-d8bf-4f44-ad22-1a1525c2b056',
|
|
'ip': None, 'ip_ranges': [{'end': '199.168.1.100',
|
|
'start': '199.168.1.1'}],
|
|
'ml2_type': 'ovs', 'name': 'physnet1',
|
|
'network_type': 'DATAPLANE',
|
|
'physnet_name': 'physnet_enp132s0f3',
|
|
'segmentation_type': 'vxlan', 'vlan_end': 4094,
|
|
'vlan_id': None, 'vlan_start': 1, 'vni_end': 20000,
|
|
'vni_start': 1}]
|
|
cluster_meta = {'name': 'test', 'use_dns': 1,
|
|
'networks': ['ee027d1b-f6f8-482b-b1d3-3d6f5aab0d8f',
|
|
'a27748a7-2c84-409a-8f34-b8c1f00bb3a4',
|
|
'9388ed37-d8bf-4f44-ad22-1a1525c2b056',
|
|
'84ff9a2a-9c99-4dee-b10e-6f5ee66737da',
|
|
'5059cd00-78cd-4d0a-acc6-5143a1692f47',
|
|
'460dbbc8-63c8-458c-a386-556b35b159ee'],
|
|
'nodes': ['4e33c650-ab91-4564-ada5-e939bece23a5',
|
|
'e4801a04-7aa2-4966-8eed-38650b188a17',
|
|
'07278e9a-1bd5-4ae2-b1cf-38bbc0bd0d29',
|
|
'7739d9d9-93ca-480f-bde4-3b4c1052e63a']}
|
|
host1_meta = {'cluster': 'test', 'dvs_cps': '', 'dvs_high_cpset': '',
|
|
'id': '7739d9d9-93ca-480f-bde4-3b4c1052e63a',
|
|
'dvs_config_type': '',
|
|
'interfaces': [{'assigned_networks': [{'ip': '196.168.1.7',
|
|
'name': 'MANAGEMENT',
|
|
'type': 'MANAGEMENT'}],
|
|
'host_id':
|
|
'7739d9d9-93ca-480f-bde4-3b4c1052e63a',
|
|
'id': '293494b6-dfef-494d-968d-7a2fabe26dab',
|
|
'ip': '192.168.1.13', 'is_deployment': True,
|
|
'mac': '4c:09:b4:b2:81:8a', 'mode': None,
|
|
'name': 'enp132s0f0', 'netmask': '255.255.255.0',
|
|
'pci': '0000:84:00.0', 'slave1': None,
|
|
'slave2': None, 'type': 'ether',
|
|
'vswitch_type': ''},
|
|
{'assigned_networks': [{'ip': '192.168.1.3',
|
|
'name': 'PUBLICAPI',
|
|
'type': 'PUBLICAPI'}],
|
|
'host_id':
|
|
'7739d9d9-93ca-480f-bde4-3b4c1052e63a',
|
|
'id': '5c9df2e4-7d9c-4e95-9648-eda314ddb8e1',
|
|
'ip': None, 'is_deployment': False,
|
|
'mac': '4c:09:b4:b2:81:8b', 'mode': None,
|
|
'name': 'enp132s0f1', 'netmask': None,
|
|
'pci': '0000:84:00.1', 'slave1': None,
|
|
'slave2': None, 'type': 'ether',
|
|
'vswitch_type': ''}],
|
|
'isolcpus': None, 'name': 'host-196-168-1-7', 'os_cpus': '',
|
|
'os_status': 'active', 'pci_high_cpset': '', 'position': '',
|
|
'role': ['CONTROLLER_LB', 'CONTROLLER_HA'], 'vcp_pin_set': ''}
|
|
|
|
|
|
host2_meta = {'cluster': 'test', 'dvs_cps': '', 'dvs_high_cpset': '',
|
|
'id': '4e33c650-ab91-4564-ada5-e939bece23a5',
|
|
'dvs_config_type': '',
|
|
'interfaces': [{'assigned_networks': [{'ip': '192.168.1.2',
|
|
'name': 'PUBLICAPI',
|
|
'type': 'PUBLICAPI'}],
|
|
'host_id':
|
|
'4e33c650-ab91-4564-ada5-e939bece23a5',
|
|
'id': '83c2a3f5-05c7-4757-b057-e2f25466f43a',
|
|
'ip': None, 'is_deployment': False,
|
|
'mac': '4c:09:b4:b2:80:8b', 'mode': None,
|
|
'name': 'enp132s0f1', 'netmask': None,
|
|
'pci': '0000:84:00.1', 'slave1': None,
|
|
'slave2': None, 'type': 'ether',
|
|
'vswitch_type': ''},
|
|
{'assigned_networks': [{'ip': '196.168.1.6',
|
|
'name': 'MANAGEMENT',
|
|
'type': 'MANAGEMENT'}],
|
|
'host_id':
|
|
'4e33c650-ab91-4564-ada5-e939bece23a5',
|
|
'id': 'e59e585a-49e6-4e81-83a2-b22dffd50a0d',
|
|
'ip': '192.168.1.12', 'is_deployment': True,
|
|
'mac': '4c:09:b4:b2:80:8a', 'mode': None,
|
|
'name': 'enp132s0f0', 'netmask': '255.255.255.0',
|
|
'pci': '0000:84:00.0', 'slave1': None,
|
|
'slave2': None, 'type': 'ether',
|
|
'vswitch_type': ''}],
|
|
'isolcpus': None, 'name': 'host-196-168-1-6', 'os_cpus': '',
|
|
'os_status': 'active', 'pci_high_cpset': '', 'position': '',
|
|
'role': ['CONTROLLER_LB', 'CONTROLLER_HA'], 'vcpu_pin_set': ''}
|
|
|
|
host3_meta = {'cluster': 'test', 'dvs_cps': '', 'dvs_high_cpset': '',
|
|
'id': '07278e9a-1bd5-4ae2-b1cf-38bbc0bd0d29',
|
|
'dvs_config_type': '',
|
|
'interfaces': [{'assigned_networks': [{'ip': '',
|
|
'name': 'physnet1',
|
|
'type': 'DATAPLANE'}],
|
|
'host_id':
|
|
'07278e9a-1bd5-4ae2-b1cf-38bbc0bd0d29',
|
|
'id': '497acce0-3403-4ac6-8cd2-ebc21bcce49e',
|
|
'ip': None, 'is_deployment': False,
|
|
'mac': '4c:09:b4:b2:78:8d', 'mode': None,
|
|
'name': 'enp132s0f3', 'netmask': None,
|
|
'pci': '0000:84:00.3', 'slave1': None,
|
|
'slave2': None, 'type': 'ether',
|
|
'vswitch_type': 'dvs'},
|
|
{'assigned_networks': [{'ip': '196.168.1.8',
|
|
'name': 'MANAGEMENT',
|
|
'type': 'MANAGEMENT'}],
|
|
'host_id':
|
|
'07278e9a-1bd5-4ae2-b1cf-38bbc0bd0d29',
|
|
'id': '6eb121ef-ae89-487d-96b9-eb7789103d51',
|
|
'ip': '192.168.1.10', 'is_deployment': True,
|
|
'mac': '4c:09:b4:b2:78:8a', 'mode': None,
|
|
'name': 'enp132s0f0', 'netmask': '255.255.255.0',
|
|
'pci': '0000:84:00.0', 'slave1': None,
|
|
'slave2': None, 'type': 'ether',
|
|
'vswitch_type': ''}],
|
|
'isolcpus': None, 'name': 'host-196-168-1-8',
|
|
'os_cpus': '', 'os_status': 'active', 'pci_high_cpset': '',
|
|
'position': '', 'role': ['COMPUTER'], 'vcpu_pin_set': ''}
|
|
host4_meta = {'cluster': 'test', 'dvs_cps': '', 'dvs_high_cpset': '',
|
|
'dvs_config_type': '',
|
|
'id': 'e4801a04-7aa2-4966-8eed-38650b188a17',
|
|
'interfaces': [{'assigned_networks': [{'ip': '',
|
|
'name': 'physnet1',
|
|
'type': 'DATAPLANE'}],
|
|
'host_id':
|
|
'e4801a04-7aa2-4966-8eed-38650b188a17',
|
|
'id': '2131ebdd-5ac8-49e0-852e-90c223d01cce',
|
|
'ip': None, 'is_deployment': False,
|
|
'mac': '4c:09:b4:b2:79:8b', 'mode': None,
|
|
'name': 'enp132s0f1', 'netmask': None,
|
|
'pci': '0000:84:00.1', 'slave1': None,
|
|
'slave2': None, 'type': 'ether',
|
|
'vswitch_type': 'dvs'},
|
|
{'assigned_networks': [{'ip': '196.168.1.9',
|
|
'name': 'MANAGEMENT',
|
|
'type': 'MANAGEMENT'}],
|
|
'host_id':
|
|
'e4801a04-7aa2-4966-8eed-38650b188a17',
|
|
'id': '299fc41d-dde5-45ca-be3b-c94693d2b9ce',
|
|
'ip': '192.168.1.11', 'is_deployment': True,
|
|
'mac': '4c:09:b4:b2:79:8a',
|
|
'mode': None, 'name': 'enp132s0f0',
|
|
'netmask': '255.255.255.0',
|
|
'pci': '0000:84:00.0', 'slave1': None,
|
|
'slave2': None, 'type': 'ether',
|
|
'vswitch_type': ''}],
|
|
'isolcpus': None, 'name': 'host-196-168-1-9',
|
|
'os_cpus': '', 'os_status': 'active', 'pci_high_cpset': '',
|
|
'position': '', 'role': ['COMPUTER'], 'vcpu_pin_set': ''}
|
|
|
|
host5_meta = {u'os_version_id': None,
|
|
u'config_set_id': None,
|
|
u'root_disk': u'sda',
|
|
u'os_status': u'active',
|
|
u'discover_mode': u'PXE',
|
|
u'updated_at': u'2016-12-28T08:00:03.000000',
|
|
u'group_list': None, u'cluster': u'clustertest',
|
|
u'hugepages': 0,
|
|
u'dvsp_cpus': None,
|
|
u'deleted_at': None,
|
|
u'id': u'9423980b-ec76-475a-b45f-558eb4b7dfed',
|
|
u'vcpu_pin_set': None,
|
|
u'dvsv_cpus': None,
|
|
u'hwm_ip': None,
|
|
u'role': [u'CONTROLLER_LB', u'COMPUTER'],
|
|
u'virtio_queue_size': None,
|
|
u'dvs_config_desc': None,
|
|
u'hwm_id': None,
|
|
u'pci_high_cpuset': u'',
|
|
u'status': u'with-role',
|
|
u'description': u'default',
|
|
u'dvsc_cpus': None,
|
|
u'dmi_uuid': u'020BFFB8-7FF2-4147-88C1-2B6305A4E1C8',
|
|
u'ipmi_passwd': None,
|
|
u'dvs_config_type': None,
|
|
u'resource_type': u'baremetal',
|
|
u'position': u'',
|
|
u'version_patch_id': None,
|
|
u'tecs_version_id': None,
|
|
u'flow_mode': None,
|
|
u'ipmi_user': None,
|
|
u'hugepagesize': u'1G',
|
|
u'name': u'host-10-20-11-3',
|
|
u'dvsblank_cpus': None,
|
|
u'ipmi_addr': u'',
|
|
u'root_pwd': u'ossdbg1',
|
|
u'dvs_high_cpuset': None,
|
|
u'dvs_cpus': None,
|
|
u'root_lv_size': 102400}
|
|
|
|
host6_meta = {u'os_version_id': None,
|
|
u'config_set_id': None,
|
|
u'root_disk': u'sda',
|
|
u'os_status': u'active',
|
|
u'discover_mode': u'PXE',
|
|
u'updated_at': u'2016-12-28T08:00:03.000000',
|
|
u'group_list': None, u'cluster': u'clustertest',
|
|
u'hugepages': 0,
|
|
u'dvsp_cpus': None,
|
|
u'deleted_at': None,
|
|
u'id': u'9423980b-ec76-475a-b45f-558eb4b7dfed',
|
|
u'interfaces': [{u'assigned_networks':
|
|
[{u'ip': u'127.0.0.1',
|
|
u'name': u'MANAGEMENT',
|
|
u'type': u'MANAGEMENT'}],
|
|
u'host_id':
|
|
u'9423980b-ec76-475a-b45f-558eb4b7dfed',
|
|
u'id': u'299fc41d-dde5-45ca-be3b-c94693d2b9ce',
|
|
u'ip': u'192.168.1.11', u'is_deployment': True,
|
|
u'mac': u'4c:09:b4:b2:79:8a',
|
|
u'mode': None, u'name': u'enp132s0f0',
|
|
u'netmask': u'255.255.255.0',
|
|
u'pci': u'0000:84:00.0', u'slave1': None,
|
|
u'slave2': None, u'type': u'ether',
|
|
u'vswitch_type': ''}],
|
|
u'vcpu_pin_set': None,
|
|
u'dvsv_cpus': None,
|
|
u'hwm_ip': None,
|
|
u'role': [u'CONTROLLER_LB', u'COMPUTER'],
|
|
u'virtio_queue_size': None,
|
|
u'dvs_config_desc': None,
|
|
u'hwm_id': None,
|
|
u'pci_high_cpuset': u'',
|
|
u'status': u'with-role',
|
|
u'description': u'default',
|
|
u'dvsc_cpus': None,
|
|
u'dmi_uuid': u'020BFFB8-7FF2-4147-88C1-2B6305A4E1C8',
|
|
u'ipmi_passwd': None,
|
|
u'dvs_config_type': None,
|
|
u'resource_type': u'baremetal',
|
|
u'position': u'',
|
|
u'version_patch_id': None,
|
|
u'tecs_version_id': None,
|
|
u'flow_mode': None,
|
|
u'ipmi_user': None,
|
|
u'hugepagesize': u'1G',
|
|
u'name': u'host-10-20-11-3',
|
|
u'dvsblank_cpus': None,
|
|
u'ipmi_addr': u'',
|
|
u'root_pwd': u'ossdbg1',
|
|
u'dvs_high_cpuset': None,
|
|
u'dvs_cpus': None,
|
|
u'root_lv_size': 102400}
|
|
|
|
assigned_network = {u'network_id': u'ee027d1b-f6f8-482b-b1d3-3d6f5aab0d8f',
|
|
u'ip': u'196.168.1.9',
|
|
u'created_at': u'2017-01-04T12:03:41.000000',
|
|
u'deleted': False,
|
|
u'updated_at': u'2017-01-04T12:03:41.000000',
|
|
u'interface_id': u'299fc41d-dde5-45ca-be3b-c94693d2b9ce',
|
|
u'vswitch_type': None,
|
|
u'mac': u'52:54:00:ac:ed:70',
|
|
u'deleted_at': None,
|
|
u'id': u'54079edb-4dff-4b1c-bd2d-695c2ae3ebd1'}
|
|
|
|
|
|
def subprocesscall(cmd):
|
|
subprocess.call(cmd, shell=True,
|
|
stdout=open('/dev/null', 'w'),
|
|
stderr=subprocess.STDOUT)
|
|
|
|
|
|
class MockLoggingHandler(object):
|
|
"""Mock logging handler to check for expected logs.
|
|
Messages are available from an instance's ``messages`` dict, in order,
|
|
indexed by a lowercase log level string (e.g., 'debug', 'info', etc.).
|
|
"""
|
|
|
|
def __init__(self):
|
|
self.messages = {'debug': [], 'info': [], 'warning': [], 'error': []}
|
|
|
|
def info(self, message, *args, **kwargs):
|
|
self.messages['info'].append(message)
|
|
|
|
def error(self, message, *args, **kwargs):
|
|
self.messages['error'].append(message)
|
|
|
|
def reset(self):
|
|
for message in self.messages:
|
|
del self.messages[message][:]
|
|
|
|
|
|
class ConfigBackend():
|
|
def __init__(self, type, req):
|
|
pass
|
|
|
|
def push_config_by_hosts(self, par1, par2):
|
|
pass
|
|
|
|
|
|
class Version():
|
|
def __init__(self, filename):
|
|
self.filename = filename
|
|
pass
|
|
|
|
def cached_version_string(self):
|
|
return '3.0.2'
|
|
|
|
|
|
class TestInstall(test.TestCase):
|
|
|
|
_log_handler = MockLoggingHandler()
|
|
|
|
def setUp(self):
|
|
super(TestInstall, self).setUp()
|
|
self.req = webob.Request.blank('/')
|
|
self.req.context = RequestContext(is_admin=True, user='fake user',
|
|
tenant='fake tenant')
|
|
self.installer = install.KOLLAInstallTask(
|
|
self.req, '8ad27e36-f3e2-48b4-84b8-5b676c6fabde')
|
|
|
|
@mock.patch('daisy.api.backends.kolla.common.get_computer_node_cfg')
|
|
@mock.patch('daisy.api.backends.kolla.common.get_controller_node_cfg')
|
|
@mock.patch('daisy.api.backends.kolla.common.get_host_detail')
|
|
@mock.patch('daisy.api.backends.kolla.common.get_hosts_of_role')
|
|
@mock.patch('daisy.api.backends.kolla.common.get_roles_detail')
|
|
@mock.patch('daisy.api.backends.common.get_cluster_networks_detail')
|
|
@mock.patch('daisy.api.backends.kolla.install._get_local_ip')
|
|
def test_get_cluster_kolla_config(
|
|
self, mock_do__get_local_ip,
|
|
mock_do_get_cluster_networks_detail,
|
|
mock_do_get_roles_detail,
|
|
mock_do_get_hosts_of_role, mock_do_get_host_detail,
|
|
mock_do_get_controller_node_cfg, mock_do_get_computer_node_cfg):
|
|
daisy_kolla_ver_path = '/var/lib/daisy/versionfile/kolla/'
|
|
cmd = 'mkdir -p %s' % daisy_kolla_ver_path
|
|
subprocesscall(cmd)
|
|
cmd1 = 'rm -rf %s/test.version' % daisy_kolla_ver_path
|
|
subprocesscall(cmd1)
|
|
cmd2 = 'touch %s/test.version' % daisy_kolla_ver_path
|
|
subprocesscall(cmd2)
|
|
f1 = open('%s/test.version' % daisy_kolla_ver_path, 'a')
|
|
f1.write('tag = 3.0.2')
|
|
f1.close()
|
|
cmd3 = 'rm -rf %s/all.yml' % daisy_kolla_ver_path
|
|
subprocesscall(cmd3)
|
|
cmd4 = 'touch %s/all.yml' % daisy_kolla_ver_path
|
|
subprocesscall(cmd4)
|
|
f2 = open('%s/all.yml' % daisy_kolla_ver_path, 'a')
|
|
f2.write('openstack_release : 3.0.2')
|
|
f2.close()
|
|
mock_do__get_local_ip.return_value = '127.0.0.1'
|
|
mock_do_get_cluster_networks_detail.return_value = cluster_networks
|
|
mock_do_get_roles_detail.return_value = roles
|
|
mock_do_get_hosts_of_role.return_value = role_hosts
|
|
mock_do_get_host_detail.return_value = host5_meta
|
|
mock_do_get_controller_node_cfg.return_value = deploy_host_cfg
|
|
mock_do_get_computer_node_cfg.return_value = {'mgtip': u'',
|
|
'pub_macname': u'',
|
|
'sto_macname': u'',
|
|
'mgt_macname': u'',
|
|
'host_name': u'',
|
|
'dat_macname': u'',
|
|
'ext_macname': u''}
|
|
|
|
(kolla_config, mgt_ip_list, host_name_ip_list) =\
|
|
install.get_cluster_kolla_config(
|
|
self.req,
|
|
'8ad27e36-f3e2-48b4-84b8-5b676c6fabde')
|
|
cmd_end1 = 'rm -rf %s/test.version' % daisy_kolla_ver_path
|
|
subprocesscall(cmd_end1)
|
|
cmd_end2 = 'rm -rf %s/all.yml' % daisy_kolla_ver_path
|
|
subprocesscall(cmd_end2)
|
|
self.assertEqual('3.0.2', kolla_config['Version'])
|
|
|
|
@mock.patch('daisy.api.backends.common.update_db_host_status')
|
|
@mock.patch("daisy.registry.client.v1.api.get_version_metadata")
|
|
@mock.patch('daisy.api.backends.kolla.common.version_load')
|
|
@mock.patch('daisy.api.backends.kolla.common.check_and_get_kolla_version')
|
|
@mock.patch("daisy.registry.client.v1.api.get_cluster_metadata")
|
|
@mock.patch('daisy.api.backends.kolla.install._get_local_ip')
|
|
@mock.patch('daisy.api.common.config_network_new')
|
|
@mock.patch('daisy.registry.client.v1.client.RegistryClient.do_request')
|
|
@mock.patch('daisy.api.backends.kolla.install.update_progress_to_db')
|
|
@mock.patch('daisy.api.backends.kolla.install.update_host_progress_to_db')
|
|
@mock.patch('daisy.api.backends.kolla.install.config_nodes_hosts')
|
|
@mock.patch(
|
|
'daisy.api.backends.kolla.install.update_all_host_progress_to_db')
|
|
@mock.patch('daisy.api.backends.common.get_assigned_network')
|
|
@mock.patch('daisy.api.backends.common.get_host_detail')
|
|
@mock.patch('daisy.api.backends.common.get_cluster_roles_detail')
|
|
@mock.patch('daisy.api.backends.common.get_cluster_networks_detail')
|
|
@mock.patch('daisy.api.backends.common.get_hosts_of_role')
|
|
@mock.patch('daisy.api.backends.kolla.install.generate_kolla_config_file')
|
|
@mock.patch('daisy.api.backends.kolla.install.get_cluster_kolla_config')
|
|
@mock.patch('subprocess.Popen.poll')
|
|
@mock.patch('subprocess.check_output')
|
|
@mock.patch('daisy.api.backends.common.subprocess_call')
|
|
def test__run(
|
|
self, mock_subprocess_call, mock_do_check_output,
|
|
mock_do_Popen, mock_do_get_cluster_kolla_config,
|
|
mock_do_generate_kolla_config_file, mock_do_get_hosts_of_role,
|
|
mock_do_get_cluster_networks_detail,
|
|
mock_do_get_cluster_roles_detail,
|
|
mock_do_get_host_detail, mock_do_get_assigned_network,
|
|
mock_do_update_all_host_progress_to_db, mock_do_config_nodes_hosts,
|
|
mock_do_update_host_progress_to_db, mock_do_update_progress_to_db,
|
|
mock_do_request, mock_do_config_network_new,
|
|
mock_do_get_local_ip, mock_do_get_clusters_detail,
|
|
mock_do_check_and_get_kolla_version, mock_do_version_load,
|
|
mock_do_get_version_metadata, mock_do_update_db_host_status):
|
|
|
|
def mock_get_cluster_kolla_config(*args, **kwargs):
|
|
return (kolla_config, mgt_ip_list, host_name_ip_list)
|
|
|
|
def fake_do_request(method, path, **params):
|
|
res = mock.Mock()
|
|
host_id = "9423980b-ec76-475a-b45f-558eb4b7dfed"
|
|
if method == "GET" and path == "/nodes":
|
|
list_result = {'nodes': [host6_meta]}
|
|
res.read.return_value = jsonutils.dumps(list_result)
|
|
return res
|
|
if method == "GET" and path == "/nodes/%s" % host_id:
|
|
get_result = {'host': host6_meta}
|
|
res.read.return_value = jsonutils.dumps(get_result)
|
|
return res
|
|
|
|
def mock_get_clusters_detail(*args, **kwargs):
|
|
return {
|
|
"id": "93ca3165-1a82-4c4a-914f-65279827e46e",
|
|
"name": "test",
|
|
"tecs_version_id": "1111111"}
|
|
|
|
cmd = 'mkdir -p /var/log/daisy'
|
|
subprocesscall(cmd)
|
|
mock_do_request.side_effect = fake_do_request
|
|
mock_do_check_output.return_value = 'ok'
|
|
mock_do_Popen.return_value = 0
|
|
mock_do_get_hosts_of_role.return_value = role_hosts
|
|
mock_do_get_cluster_networks_detail.return_value = cluster_networks
|
|
mock_do_get_cluster_roles_detail.return_value = cluster_roles
|
|
mock_do_get_host_detail.return_value = host6_meta
|
|
mock_do_get_assigned_network.return_value = assigned_network
|
|
mock_do_get_local_ip.return_value = '127.0.0.1'
|
|
mock_do_get_clusters_detail.side_effect = mock_get_clusters_detail
|
|
mock_do_check_and_get_kolla_version.return_value = \
|
|
"/var/lib/daisy/versionfile/kolla/test_version"
|
|
mock_do_get_version_metadata.return_value = {"name": "test_version"}
|
|
kolla_config = {}
|
|
mgt_ip_list = ['127.0.0.1']
|
|
host_name_ip_list = [{'localhost': '127.0.0.1'}]
|
|
mock_do_get_cluster_kolla_config.side_effect = \
|
|
mock_get_cluster_kolla_config
|
|
self.installer._run()
|
|
log_file = '/var/log/daisy/'\
|
|
'kolla_8ad27e36-f3e2-48b4-84b8-5b676c6fabde_deploy.log'
|
|
all_the_text = open('%s' % log_file).read()
|
|
self.assertIn('okokok', all_the_text)
|
|
cmd = 'rm -rf /var/log/daisy'
|
|
subprocesscall(cmd)
|