
Closes-Bug: #1506700 This is the 4th change list of a series of changes that will eventually convert chef installer as a plugin. It moves chef installer related tests to plugins directory extract a method get_plugins_config_files from load_config in util.py, this function might be used directly, add a unit test for this function Change-Id: Idbd54ce11ab4489b356b402d176c9df2f688acc2
480 lines
14 KiB
Python
480 lines
14 KiB
Python
# Copyright 2014 Huawei Technologies Co. Ltd
|
|
#
|
|
# 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.
|
|
|
|
__author__ = "Grace Yu (grace.yu@huawei.com)"
|
|
|
|
import os
|
|
os.environ['COMPASS_IGNORE_SETTING'] = 'true'
|
|
|
|
|
|
from compass.utils import setting_wrapper as compass_setting
|
|
reload(compass_setting)
|
|
|
|
|
|
curr_dir = os.path.dirname(os.path.realpath(__file__))
|
|
test_tmpl_dir = os.path.join(curr_dir, 'templates')
|
|
test_plugins_dir = curr_dir
|
|
|
|
|
|
adapter_test_config = {
|
|
"name": "openstack_icehouse",
|
|
"flavors": [
|
|
{
|
|
"falvor_name": "test_flavor",
|
|
"roles": ["os-controller", "os-compute-worker", "os-network"],
|
|
"template": "multinodes.tmpl"
|
|
}
|
|
],
|
|
"os_installer": {
|
|
"name": "cobbler",
|
|
"settings": {
|
|
"cobbler_url": "http://127.0.0.1/cobbler_api",
|
|
"credentials": {
|
|
"username": "cobbler",
|
|
"password": "cobbler"
|
|
}
|
|
}
|
|
},
|
|
"package_installer": {
|
|
"name": "chef_installer",
|
|
"settings": {
|
|
"chef_url": "https://127.0.0.1",
|
|
"chef_server_ip": "127.0.0.1",
|
|
"chef_server_dns": "test_chef",
|
|
"key_dir": "xxx",
|
|
"client_name": "xxx",
|
|
"databags": ["user_passwords", "db_passwords"]
|
|
}
|
|
},
|
|
"metadata": {
|
|
"os_config": {
|
|
"_self": {},
|
|
"general": {
|
|
"_self": {"mapping_to": ""},
|
|
"language": {
|
|
"_self": {
|
|
"mapping_to": "language",
|
|
},
|
|
},
|
|
"timezone": {
|
|
"_self": {
|
|
"mapping_to": "timezone"
|
|
}
|
|
},
|
|
"default_gateway": {
|
|
"_self": {
|
|
"mapping_to": "gateway"
|
|
}
|
|
},
|
|
"domain": {
|
|
"_self": {"mapping_to": ""}
|
|
},
|
|
"http_proxy": {
|
|
"_self": {
|
|
"mapping_to": "http_proxy"
|
|
}
|
|
},
|
|
"ntp_server": {
|
|
"_self": {"mapping_to": "ntp_server"}
|
|
},
|
|
"dns_servers": {
|
|
"_self": {"mapping_to": "nameservers"}
|
|
},
|
|
"search_path": {
|
|
"_self": {"mapping_to": "search_path"}
|
|
},
|
|
"https_proxy": {
|
|
"_self": {"mapping_to": "https_proxy"}
|
|
}
|
|
},
|
|
"partition": {
|
|
"_self": {
|
|
"mapping_to": "partition"
|
|
},
|
|
"$path": {
|
|
"_self": {"mapping_to": ""},
|
|
"max_size": {
|
|
"_self": {"mapping_to": "vol_size"}
|
|
},
|
|
"size_percentage": {
|
|
"_self": {"mapping_to": "vol_percentage"}
|
|
}
|
|
}
|
|
},
|
|
"server_credentials": {
|
|
"_self": {
|
|
"mapping_to": "server_credentials"
|
|
},
|
|
"username": {
|
|
"_self": {"mapping_to": "username"}
|
|
},
|
|
"password": {
|
|
"_self": {"mapping_to": "password"}
|
|
}
|
|
}
|
|
},
|
|
"package_config": {
|
|
"_self": {},
|
|
"security": {
|
|
"_self": {},
|
|
"service_credentials": {
|
|
"_self": {
|
|
"mapping_to": "service_credentials"
|
|
},
|
|
"rabbit_mq": {
|
|
"_self": {
|
|
"mapping_to": "mq"
|
|
},
|
|
"username": {
|
|
"_self": {
|
|
"mapping_to": "username"
|
|
}
|
|
},
|
|
"password": {
|
|
"_self": {
|
|
"mapping_to": "password"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"network_mapping": {
|
|
"_self": {},
|
|
"management": {
|
|
"_self": {},
|
|
"interface": {
|
|
"_self": {}
|
|
}
|
|
},
|
|
"public": {
|
|
"_self": {},
|
|
"interface": {
|
|
"_self": {}
|
|
}
|
|
},
|
|
"tenant": {
|
|
"_self": {},
|
|
"interface": {
|
|
"_self": {}
|
|
}
|
|
}
|
|
},
|
|
"roles": {
|
|
"_self": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
cluster_test_config = {
|
|
"id": 1,
|
|
"os_name": "Ubuntu-12.04-x86_64",
|
|
"name": "test",
|
|
"flavor": {
|
|
"falvor_name": "test_flavor",
|
|
"roles": ["os-controller", "os-compute-worker", "os-network"],
|
|
"template": "multinodes.tmpl"
|
|
},
|
|
"os_config": {
|
|
"general": {
|
|
"language": "EN",
|
|
"timezone": "UTC",
|
|
"default_gateway": "12.234.32.1",
|
|
"domain": "ods.com",
|
|
"http_proxy": "http://127.0.0.1:3128",
|
|
"https_proxy": "",
|
|
"ntp_server": "127.0.0.1",
|
|
"dns_servers": ["127.0.0.1"],
|
|
"search_path": ["ods.com"]
|
|
},
|
|
"partition": {
|
|
"/var": {
|
|
"max_size": 20,
|
|
"size_percentage": 20
|
|
},
|
|
"/home": {
|
|
"max_size": 50,
|
|
"size_percentage": 40
|
|
}
|
|
},
|
|
"server_credentials": {
|
|
"username": "root",
|
|
"password": "huawei"
|
|
}
|
|
},
|
|
"package_config": {
|
|
"security": {
|
|
"service_credentials": {
|
|
"rabbit_mq": {
|
|
"username": "guest",
|
|
"password": "test"
|
|
}
|
|
}
|
|
},
|
|
"network_mapping": {
|
|
"management": {
|
|
"interface": "eth0"
|
|
},
|
|
"public": {
|
|
"interface": "eth2"
|
|
},
|
|
"tenant": {
|
|
"interface": "eth1"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
hosts_test_config = {
|
|
1: {
|
|
"host_id": 1,
|
|
"reinstall_os": True,
|
|
"mac": "00:0c:29:3e:60:e9",
|
|
"name": "server01.test",
|
|
"hostname": "server01",
|
|
"roles": ["os-controller"],
|
|
"networks": {
|
|
"vnet0": {
|
|
"ip": "12.234.32.100",
|
|
"netmask": "255.255.255.0",
|
|
"is_mgmt": True,
|
|
"is_promiscuous": False,
|
|
"subnet": "12.234.32.0/24"
|
|
},
|
|
"vnet1": {
|
|
"ip": "172.16.1.1",
|
|
"netmask": "255.255.255.0",
|
|
"is_mgmt": False,
|
|
"is_promiscuous": False,
|
|
"subnet": "172.16.1.0/24"
|
|
}
|
|
},
|
|
"os_config": {
|
|
"general": {
|
|
"default_gateway": "10.145.88.1",
|
|
},
|
|
"partition": {
|
|
"/var": {
|
|
"max_size": 30,
|
|
"size_percentage": 30
|
|
},
|
|
"/test": {
|
|
"max_size": 10,
|
|
"size_percentage": 10
|
|
}
|
|
}
|
|
},
|
|
"package_config": {
|
|
"network_mapping": {
|
|
"management": {
|
|
"interface": "vnet0"
|
|
},
|
|
"tenant": {
|
|
"interface": "vnet1"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
2: {
|
|
"host_id": 2,
|
|
"reinstall_os": True,
|
|
"mac": "00:0c:29:3e:60:a1",
|
|
"name": "server02.test",
|
|
"hostname": "server02",
|
|
"roles": ["os-compute-worker"],
|
|
"networks": {
|
|
"eth0": {
|
|
"ip": "12.234.32.101",
|
|
"netmask": "255.255.255.0",
|
|
"is_mgmt": True,
|
|
"is_promiscuous": False,
|
|
"subnet": "12.234.32.0/24"
|
|
},
|
|
"eth1": {
|
|
"ip": "172.16.1.2",
|
|
"netmask": "255.255.255.0",
|
|
"is_mgmt": False,
|
|
"is_promiscuous": False,
|
|
"subnet": "172.16.1.0/24"
|
|
}
|
|
},
|
|
"os_config": {
|
|
"general": {
|
|
"language": "EN",
|
|
"timezone": "UTC",
|
|
"domain": "ods.com"
|
|
},
|
|
"partition": {
|
|
"/test": {
|
|
"max_size": 10,
|
|
"size_percentage": 20
|
|
}
|
|
}
|
|
},
|
|
"package_config": {
|
|
}
|
|
},
|
|
3: {
|
|
"host_id": 10,
|
|
"reinstall_os": False,
|
|
"mac": "00:0c:29:3e:60:a2",
|
|
"name": "server03.test",
|
|
"hostname": "server03",
|
|
"roles": ["os-network", "os-compute-worker"],
|
|
"networks": {
|
|
"eth0": {
|
|
"ip": "12.234.32.103",
|
|
"netmask": "255.255.255.0",
|
|
"is_mgmt": True,
|
|
"is_promiscuous": False,
|
|
"subnet": "12.234.32.0/24"
|
|
},
|
|
"eth1": {
|
|
"ip": "172.16.1.3",
|
|
"netmask": "255.255.255.0",
|
|
"is_mgmt": False,
|
|
"is_promiscuous": False,
|
|
"subnet": "172.16.1.0/24"
|
|
},
|
|
"eth2": {
|
|
"ip": "10.0.0.1",
|
|
"netmask": "255.255.255.0",
|
|
"is_mgmt": False,
|
|
"is_promiscuous": True,
|
|
"subnet": "10.0.0.0/24"
|
|
}
|
|
},
|
|
"ipmi_credentials": {
|
|
"ip": "172.16.100.104",
|
|
"username": "admin",
|
|
"password": "admin"
|
|
},
|
|
"os_config": {
|
|
"general": {
|
|
"language": "EN",
|
|
"timezone": "UTC",
|
|
"default_gateway": "12.234.32.1",
|
|
"domain": "ods.com",
|
|
"http_proxy": "http://10.145.88.211:3128",
|
|
"https_proxy": "",
|
|
"ntp_server": "10.145.88.211",
|
|
"dns_servers": "10.145.88.211",
|
|
"search_path": "ods.com"
|
|
},
|
|
"partition": {
|
|
"/var": {
|
|
"max_size": 20,
|
|
"size_percentage": 20
|
|
},
|
|
"/home": {
|
|
"max_size": 50,
|
|
"size_percentage": 40
|
|
}
|
|
}
|
|
},
|
|
"package_config": {
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
metadata_test_cases = [
|
|
{
|
|
"metadata": {
|
|
"general": {
|
|
"_self": {},
|
|
"language": {
|
|
"_self": {"mapping_to": "lan"}
|
|
},
|
|
"timezone": {
|
|
"_self": {"mapping_to": "timezone"}
|
|
}
|
|
}
|
|
},
|
|
"config": {
|
|
"general": {
|
|
"language": "EN",
|
|
"timezone": "UTC"
|
|
}
|
|
},
|
|
"expected_output": {
|
|
"lan": "EN",
|
|
"timezone": "UTC"
|
|
}
|
|
},
|
|
{
|
|
"metadata": {
|
|
"security": {
|
|
"_self": {"mapping_to": "security"},
|
|
"$credentials": {
|
|
"_self": {},
|
|
"$service": {
|
|
"username": {
|
|
"_self": {"mapping_to": "user"}
|
|
},
|
|
"password": {
|
|
"_self": {"mapping_to": "pass"}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"test": {
|
|
"_self": {"mapping_to": "test_section"},
|
|
"item1": {
|
|
"_self": {"mapping_to": "itema"}
|
|
},
|
|
"item2": {
|
|
"_self": {"mapping_to": "itemb"}
|
|
}
|
|
}
|
|
},
|
|
"config": {
|
|
"security": {
|
|
"service_credentials": {
|
|
"glance": {"username": "glance", "password": "glance"},
|
|
"identity": {"username": "keystone",
|
|
"password": "keystone"},
|
|
"dash": {"username": "dash", "password": "dash"}
|
|
},
|
|
"db_credentials": {
|
|
"mysql": {"username": "root", "password": "root"},
|
|
"rabbit_mq": {"username": "guest", "password": "guest"}
|
|
}
|
|
},
|
|
"test": {
|
|
"item1": "a",
|
|
"item2": "b"
|
|
}
|
|
},
|
|
"expected_output": {
|
|
"security": {
|
|
"service_credentials": {
|
|
"glance": {"user": "glance", "pass": "glance"},
|
|
"identity": {"user": "keystone", "pass": "keystone"},
|
|
"dash": {"user": "dash", "pass": "dash"}
|
|
},
|
|
"db_credentials": {
|
|
"mysql": {"user": "root", "pass": "root"},
|
|
"rabbit_mq": {"user": "guest", "pass": "guest"}
|
|
}
|
|
},
|
|
"test_section": {
|
|
"itema": "a",
|
|
"itemb": "b"
|
|
}
|
|
}
|
|
}
|
|
]
|