Astute deployment in minimal, simple, full
This commit is contained in:
parent
92f9e6d9e7
commit
6d3de54e55
@ -1,11 +1,20 @@
|
||||
import unittest
|
||||
from fuel_test.cobbler.vm_test_case import CobblerTestCase
|
||||
from fuel_test.config import Config
|
||||
from fuel_test.helpers import write_config
|
||||
from fuel_test.manifest import Manifest, Template
|
||||
from fuel_test.settings import CREATE_SNAPSHOTS
|
||||
from fuel_test.settings import CREATE_SNAPSHOTS, ASTUTE_USE
|
||||
|
||||
|
||||
class FullTestCase(CobblerTestCase):
|
||||
def test_full(self):
|
||||
def deploy(self):
|
||||
if ASTUTE_USE:
|
||||
self.prepare_astute()
|
||||
self.deploy_by_astute()
|
||||
else:
|
||||
self.deploy_one_by_one()
|
||||
|
||||
def deploy_one_by_one(self):
|
||||
manifest = Manifest().generate_openstack_manifest(
|
||||
template=Template.full(),
|
||||
ci=self.ci(),
|
||||
@ -26,6 +35,30 @@ class FullTestCase(CobblerTestCase):
|
||||
self.validate(self.nodes().controllers[:1], 'puppet agent --test 2>&1')
|
||||
self.validate(self.nodes().computes, 'puppet agent --test 2>&1')
|
||||
|
||||
def deploy_by_astute(self):
|
||||
self.remote().check_stderr("astute -f /root/astute.yaml")
|
||||
|
||||
def prepare_astute(self):
|
||||
config = Config().generate(
|
||||
ci=self.ci(),
|
||||
nodes=self.nodes(),
|
||||
template=Template.full(),
|
||||
quantums=self.nodes().quantums,
|
||||
swift=False,
|
||||
loopback=False,
|
||||
use_syslog=False,
|
||||
quantum=True
|
||||
)
|
||||
|
||||
config_path = "/root/config.yaml"
|
||||
write_config(self.remote(), config_path, str(config))
|
||||
self.remote().check_call("cobbler_system -f %s" % config_path)
|
||||
self.remote().check_stderr("openstack_system -c %s -o /etc/puppet/manifests/site.pp -a /root/astute.yaml" % config_path)
|
||||
|
||||
|
||||
def test_full(self):
|
||||
self.deploy()
|
||||
|
||||
if CREATE_SNAPSHOTS:
|
||||
self.environment().snapshot('full', force=True)
|
||||
|
||||
|
@ -3,7 +3,7 @@ from fuel_test.ci.ci_vm import CiVM
|
||||
from fuel_test.cobbler.vm_test_case import CobblerTestCase
|
||||
from fuel_test.config import Config
|
||||
from fuel_test.helpers import write_config
|
||||
from fuel_test.manifest import Template
|
||||
from fuel_test.manifest import Template, Manifest
|
||||
from fuel_test.settings import CREATE_SNAPSHOTS, ASTUTE_USE
|
||||
|
||||
|
||||
@ -13,30 +13,39 @@ class MinimalTestCase(CobblerTestCase):
|
||||
self.prepare_astute()
|
||||
self.deploy_by_astute()
|
||||
else:
|
||||
pass
|
||||
#self.deploy_one_by_one()
|
||||
self.deploy_one_by_one()
|
||||
|
||||
def deploy_one_by_one(self):
|
||||
manifest = Manifest().generate_openstack_manifest(
|
||||
template=Template.minimal(),
|
||||
ci=self.ci(),
|
||||
controllers=self.nodes().controllers,
|
||||
quantums=self.nodes().quantums,
|
||||
quantum=True
|
||||
)
|
||||
Manifest().write_manifest(remote=self.remote(), manifest=manifest)
|
||||
|
||||
self.validate(self.nodes().controllers[:1], 'puppet agent --test')
|
||||
self.validate(self.nodes().controllers[1:], 'puppet agent --test')
|
||||
self.validate(self.nodes().controllers[:1], 'puppet agent --test')
|
||||
self.validate(self.nodes().computes, 'puppet agent --test')
|
||||
|
||||
def deploy_by_astute(self):
|
||||
self.remote().check_stderr("astute -f astute.yaml")
|
||||
self.remote().check_stderr("astute -f /root/astute.yaml")
|
||||
|
||||
def prepare_astute(self):
|
||||
config = Config().generate(
|
||||
template=Template.minimal(),
|
||||
ci=self.ci(),
|
||||
nodes = self.ci().nodes(),
|
||||
nodes = self.nodes().controllers + self.nodes().computes,
|
||||
quantums=self.nodes().quantums,
|
||||
quantum=True,
|
||||
cinder_nodes=['controller']
|
||||
)
|
||||
config_path = "/root/config.yaml"
|
||||
write_config(self.remote(), config_path, str(config))
|
||||
self.remote().check_stderr("openstack_system -c config.yaml -o /etc/puppet/manifests/site.pp -a astute.yaml")
|
||||
self.remote().check_call("cobbler_system -f %s" % config_path)
|
||||
self.remote().check_stderr("openstack_system -c %s -o /etc/puppet/manifests/site.pp -a /root/astute.yaml" % config_path)
|
||||
|
||||
def test_minimal(self):
|
||||
self.deploy()
|
||||
|
@ -37,13 +37,14 @@ class SimpleTestCase(CobblerTestCase):
|
||||
config = Config().generate(
|
||||
template=Template.simple(),
|
||||
ci=self.ci(),
|
||||
nodes = self.ci().nodes(),
|
||||
nodes = self.ci().nodes().computes + [self.ci().nodes().controllers[0]],
|
||||
quantum=True,
|
||||
cinder_nodes=['controller']
|
||||
)
|
||||
config_path = "/root/config.yaml"
|
||||
write_config(self.remote(), config_path, str(config))
|
||||
self.remote().check_stderr("openstack_system -c config.yaml -o /etc/puppet/manifests/site.pp -a astute.yaml")
|
||||
self.remote().check_call("cobbler_system -f %s" % config_path)
|
||||
self.remote().check_stderr("openstack_system -c %s -o /etc/puppet/manifests/site.pp -a /root/astute.yaml" % config_path)
|
||||
|
||||
def test_simple(self):
|
||||
self.deploy()
|
||||
|
@ -9,7 +9,7 @@ from fuel_test.cobbler.cobbler_client import CobblerClient
|
||||
from fuel_test.config import Config
|
||||
from fuel_test.helpers import tcp_ping, udp_ping, add_to_hosts, await_node_deploy, write_config
|
||||
from fuel_test.manifest import Manifest
|
||||
from fuel_test.settings import OS_FAMILY, CLEAN, USE_ISO, INTERFACES, PARENT_PROXY
|
||||
from fuel_test.settings import OS_FAMILY, CLEAN, USE_ISO, INTERFACES, PARENT_PROXY, DOMAIN_NAME
|
||||
|
||||
|
||||
class CobblerTestCase(BaseTestCase):
|
||||
@ -53,11 +53,8 @@ class CobblerTestCase(BaseTestCase):
|
||||
|
||||
def prepare_cobbler_environment(self):
|
||||
self.deploy_cobbler()
|
||||
if USE_ISO:
|
||||
self.configure_cobbler(self.ci().nodes().masters[0])
|
||||
else:
|
||||
if not USE_ISO:
|
||||
self.configure_cobbler(self.ci().nodes().cobblers[0])
|
||||
#self.deploy_stomp_node()
|
||||
self.deploy_nodes()
|
||||
|
||||
def deploy_cobbler(self):
|
||||
@ -123,7 +120,7 @@ class CobblerTestCase(BaseTestCase):
|
||||
ks_meta=Config().get_ks_meta('master.your-domain-name.com',
|
||||
stomp_name),
|
||||
name=node_name,
|
||||
hostname=node_name + ".your-domain-name.com",
|
||||
hostname=node_name,
|
||||
name_servers=cobbler.get_ip_address_by_network_name('internal'),
|
||||
name_servers_search="your-domain-name.com",
|
||||
profile=profile,
|
||||
@ -135,7 +132,7 @@ class CobblerTestCase(BaseTestCase):
|
||||
"macaddress-eth1": str(node_mac1),
|
||||
"ipaddress-eth1": str(node_ip),
|
||||
"netmask-eth1": str(net_mask),
|
||||
"dnsname-eth1": node_name + ".your-domain-name.com",
|
||||
"dnsname-eth1": node_name + DOMAIN_NAME,
|
||||
"static-eth1": "1",
|
||||
"macaddress-eth2": str(node_mac2),
|
||||
"static-eth2": "1"
|
||||
@ -178,7 +175,7 @@ class CobblerTestCase(BaseTestCase):
|
||||
remote,
|
||||
master.get_ip_address_by_network_name('internal'),
|
||||
master.name,
|
||||
master.name + ".your-domain-name.com")
|
||||
master.name + DOMAIN_NAME)
|
||||
|
||||
self.environment().snapshot('cobbler-configured', force=True)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import yaml
|
||||
from fuel_test.manifest import Manifest
|
||||
from fuel_test.settings import CURRENT_PROFILE, PUPPET_VERSION, INTERFACE_ORDER, INTERFACES
|
||||
from fuel_test.settings import CURRENT_PROFILE, PUPPET_VERSION, INTERFACE_ORDER, INTERFACES, DOMAIN_NAME
|
||||
|
||||
|
||||
class Config():
|
||||
@ -38,7 +38,7 @@ class Config():
|
||||
quantum, swift, loopback, use_syslog, cinder_nodes):
|
||||
if not quantums: quantums = []
|
||||
|
||||
node_configs = Manifest().generate_node_configs_list(nodes)
|
||||
node_configs = Manifest().generate_node_configs_list(ci, nodes)
|
||||
|
||||
master = ci.nodes().masters[0]
|
||||
|
||||
@ -54,7 +54,7 @@ class Config():
|
||||
"internal_netmask": ci.internal_net_mask(),
|
||||
"internal_virtual_ip": ci.internal_virtual_ip(),
|
||||
"mirror_type": Manifest().mirror_type(),
|
||||
"nagios_master": "%s.your-domain-name.com" % nodes.controllers[0].name,
|
||||
"nagios_master": ci.nodes().controllers[0].name + DOMAIN_NAME,
|
||||
"network_manager": "nova.network.manager.FlatDHCPManager",
|
||||
"nv_physical_volumes": ["/dev/sdb"],
|
||||
"private_interface": Manifest().private_interface(),
|
||||
@ -84,7 +84,7 @@ class Config():
|
||||
"name-servers-search": "your-domain-name.com",
|
||||
"profile": CURRENT_PROFILE}
|
||||
|
||||
ksmeta = self.get_ks_meta("%s.your-domain-name.com" % ci.nodes().masters[0].name, ci.nodes().masters[0].name)
|
||||
ksmeta = self.get_ks_meta(ci.nodes().masters[0].name + DOMAIN_NAME, ci.nodes().masters[0].name)
|
||||
|
||||
config.update({"ksmeta": ksmeta})
|
||||
|
||||
@ -123,7 +123,7 @@ class Config():
|
||||
"static": 1,
|
||||
"ip-address": str(node.get_ip_address_by_network_name('internal')),
|
||||
"netmask": ci.internal_net_mask(),
|
||||
"dns-name": "%s.your-domain-name.com" % node.name,
|
||||
"dns-name": node.name + DOMAIN_NAME,
|
||||
"management": "1"
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ from ipaddr import IPNetwork
|
||||
import re
|
||||
from fuel_test.helpers import load, write_config
|
||||
from fuel_test.root import root
|
||||
from fuel_test.settings import INTERFACES, TEST_REPO
|
||||
from fuel_test.settings import INTERFACES, TEST_REPO, DOMAIN_NAME
|
||||
|
||||
|
||||
class Template(object):
|
||||
@ -149,21 +149,21 @@ class Manifest(object):
|
||||
node_dict.update({'mountpoints': '1 2\n 2 1'})
|
||||
return node_dict
|
||||
|
||||
def generate_node_configs_list(self, nodes):
|
||||
def generate_node_configs_list(self, ci, nodes):
|
||||
zones = range(1, 50)
|
||||
node_configs = []
|
||||
|
||||
for node in nodes.computes: node_configs.append(self.describe_node(node, 'compute'))
|
||||
for node in nodes.controllers[:1]: node_configs.append(
|
||||
self.describe_swift_node(node, 'primary-controller', zones.pop()))
|
||||
for node in nodes.controllers[1:]: node_configs.append(self.describe_swift_node(node, 'controller', zones.pop()))
|
||||
for node in nodes.storages: node_configs.append(self.describe_swift_node(node, 'storage', zones.pop()))
|
||||
for node in nodes.proxies[:1]: node_configs.append(self.describe_node(node, 'primary-swift-proxy'))
|
||||
for node in nodes.proxies[1:]: node_configs.append(self.describe_node(node, 'swift-proxy'))
|
||||
for node in nodes.quantums: node_configs.append(self.describe_node(node, 'quantum'))
|
||||
for node in nodes.masters: node_configs.append(self.describe_node(node, 'master'))
|
||||
for node in nodes.cobblers: node_configs.append(self.describe_node(node, 'cobbler'))
|
||||
for node in nodes.stomps: node_configs.append(self.describe_node(node, 'stomp'))
|
||||
for node in nodes:
|
||||
if node in ci.nodes().computes: node_configs.append(self.describe_node(node, 'compute'))
|
||||
elif node in ci.nodes().controllers[:1]: node_configs.append(self.describe_swift_node(node, 'primary-controller', zones.pop()))
|
||||
elif node in ci.nodes().controllers[1:]: node_configs.append(self.describe_swift_node(node, 'controller', zones.pop()))
|
||||
elif node in ci.nodes().storages: node_configs.append(self.describe_swift_node(node, 'storage', zones.pop()))
|
||||
elif node in ci.nodes().proxies[:1]: node_configs.append(self.describe_node(node, 'primary-swift-proxy'))
|
||||
elif node in ci.nodes().proxies[1:]: node_configs.append(self.describe_node(node, 'swift-proxy'))
|
||||
elif node in ci.nodes().quantums: node_configs.append(self.describe_node(node, 'quantum'))
|
||||
elif node in ci.nodes().masters: node_configs.append(self.describe_node(node, 'master'))
|
||||
elif node in ci.nodes().cobblers: node_configs.append(self.describe_node(node, 'cobbler'))
|
||||
elif node in ci.nodes().stomps: node_configs.append(self.describe_node(node, 'stomp'))
|
||||
|
||||
return node_configs
|
||||
|
||||
@ -228,10 +228,15 @@ class Manifest(object):
|
||||
enable_test_repo=TEST_REPO,
|
||||
)
|
||||
|
||||
def generate_openstack_manifest(self, template, ci,
|
||||
controllers, quantums, proxies=None,
|
||||
use_syslog=True, quantum=True,
|
||||
loopback=True, cinder=True,
|
||||
def generate_openstack_manifest(self, template,
|
||||
ci,
|
||||
controllers,
|
||||
quantums,
|
||||
proxies=None,
|
||||
use_syslog=True,
|
||||
quantum=True,
|
||||
loopback=True,
|
||||
cinder=True,
|
||||
cinder_nodes=None,
|
||||
quantum_netnode_on_cnt=True,
|
||||
swift=True,
|
||||
@ -252,10 +257,10 @@ class Manifest(object):
|
||||
use_syslog=use_syslog,
|
||||
cinder=cinder,
|
||||
ntp_servers=['pool.ntp.org', ci.internal_router()],
|
||||
nagios_master=controllers[0].name + '.your-domain-name.com',
|
||||
nagios_master=controllers[0].name + DOMAIN_NAME,
|
||||
cinder_nodes=cinder_nodes,
|
||||
external_ipinfo=self.external_ip_info(ci, quantums),
|
||||
nodes=self.generate_node_configs_list(ci),
|
||||
nodes=self.generate_node_configs_list(ci, ci.nodes()),
|
||||
dns_nameservers=self.generate_dns_nameservers_list(ci),
|
||||
default_gateway=ci.public_router(),
|
||||
enable_test_repo=TEST_REPO,
|
||||
|
@ -122,3 +122,4 @@ PROFILES_COBBLER_COMMON = {
|
||||
|
||||
ASTUTE_USE = os.environ.get('ASTUTE_USE', 'true') == 'true'
|
||||
CURRENT_PROFILE = PROFILES_COBBLER_COMMON.get(OS_FAMILY)
|
||||
DOMAIN_NAME = os.environ.get('DOMAIN_NAME', '.your-domain-name.com')
|
||||
|
@ -15,7 +15,7 @@ class TestConfig(BaseTestCase):
|
||||
def test_generate_minimal(self):
|
||||
print Config().generate(
|
||||
ci=self.ci(),
|
||||
nodes = self.ci().nodes().controllers + self.ci().nodes().computes,
|
||||
nodes = self.nodes().controllers + self.nodes().computes,
|
||||
template=Template.minimal(),
|
||||
quantums=self.nodes().quantums,
|
||||
swift=False,
|
||||
@ -37,6 +37,7 @@ class TestConfig(BaseTestCase):
|
||||
def test_generate_full(self):
|
||||
print Config().generate(
|
||||
ci=self.ci(),
|
||||
nodes=self.nodes().controllers,
|
||||
template=Template.full(),
|
||||
quantums=self.nodes().quantums,
|
||||
swift=False,
|
||||
@ -47,21 +48,26 @@ class TestConfig(BaseTestCase):
|
||||
def test_generate_simple(self):
|
||||
print Config().generate(
|
||||
ci=self.ci(),
|
||||
nodes=self.nodes().storages + self.nodes().proxies + [self.nodes().controllers[0]],
|
||||
template=Template.simple())
|
||||
|
||||
|
||||
def test_generate_single(self):
|
||||
print Config().generate(
|
||||
ci=self.ci(),
|
||||
nodes=[self.nodes().computes[0]],
|
||||
template=Template.single())
|
||||
|
||||
|
||||
def test_generate_stomp(self):
|
||||
print Config().generate(
|
||||
ci=self.ci(),
|
||||
nodes=[self.nodes().computes[0]],
|
||||
template=Template.stomp())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
|
||||
|
||||
|
@ -41,7 +41,9 @@ class TestManifest(BaseTestCase):
|
||||
def test_generate_simple(self):
|
||||
Manifest().generate_openstack_manifest(
|
||||
ci=self.ci(), template=Template.simple(),
|
||||
controllers=self.nodes().controllers, ha=False, quantums=self.nodes().quantums)
|
||||
controllers=self.nodes().controllers,
|
||||
ha=False,
|
||||
quantums=self.nodes().quantums)
|
||||
|
||||
def test_generate_single(self):
|
||||
Manifest().generate_openstack_single_manifest(
|
||||
|
Loading…
Reference in New Issue
Block a user