197 lines
6.2 KiB
Python
197 lines
6.2 KiB
Python
# Copyright 2016 Mirantis, Inc.
|
|
#
|
|
# 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 pytest
|
|
|
|
from fuelweb_test import logger
|
|
from fuelweb_test import settings
|
|
from fuelweb_test.helpers import checkers
|
|
from fuelweb_test.helpers import os_actions
|
|
from fuelweb_test.helpers.ssh_manager import SSHManager
|
|
|
|
|
|
ssh_manager = SSHManager()
|
|
|
|
|
|
@pytest.mark.get_logs
|
|
@pytest.mark.fail_snapshot
|
|
@pytest.mark.need_ready_cluster
|
|
@pytest.mark.ha_neutron
|
|
class TestNeutronTunHa(object):
|
|
"""NeutronTunHa.
|
|
|
|
Old groups: ha_neutron, neutron, ha, classic_provisioning
|
|
""" # TODO documentation
|
|
|
|
cluster_config = {
|
|
"name": "NeutronTunHa",
|
|
"mode": settings.DEPLOYMENT_MODE,
|
|
"settings": {
|
|
'net_provider': settings.NEUTRON,
|
|
'net_segment_type': settings.NEUTRON_SEGMENT['tun'],
|
|
'tenant': 'haTun',
|
|
'user': 'haTun',
|
|
'password': 'haTun'
|
|
},
|
|
"nodes": {
|
|
'slave-01': ['controller'],
|
|
'slave-02': ['controller'],
|
|
'slave-03': ['controller'],
|
|
'slave-04': ['compute'],
|
|
'slave-05': ['compute']
|
|
}
|
|
}
|
|
|
|
@pytest.mark.deploy_neutron_gre_ha
|
|
@pytest.mark.ha_neutron_gre
|
|
def test_deploy_neutron_gre_ha(self):
|
|
"""Deploy cluster in HA mode with Neutron TUN
|
|
|
|
Scenario:
|
|
1. Create cluster
|
|
2. Add 3 nodes with controller role
|
|
3. Add 2 nodes with compute role
|
|
4. Deploy the cluster
|
|
5. Run network verification
|
|
6. Run OSTF
|
|
|
|
Duration 80m
|
|
Snapshot deploy_neutron_gre_ha
|
|
|
|
"""
|
|
self.manager.show_step(1)
|
|
self.manager.show_step(2)
|
|
self.manager.show_step(3)
|
|
self.manager.show_step(4)
|
|
self.manager.show_step(5)
|
|
|
|
cluster_id = self._storage['cluster_id']
|
|
fuel_web = self.manager.fuel_web
|
|
cluster = fuel_web.client.get_cluster(cluster_id)
|
|
assert str(cluster['net_provider']) == settings.NEUTRON
|
|
|
|
devops_node = fuel_web.get_nailgun_primary_node(
|
|
self.env.d_env.nodes().slaves[0])
|
|
logger.debug("devops node name is {0}".format(devops_node.name))
|
|
|
|
_ip = fuel_web.get_nailgun_node_by_name(devops_node.name)['ip']
|
|
for _ in range(5):
|
|
try:
|
|
checkers.check_swift_ring(_ip)
|
|
break
|
|
except AssertionError:
|
|
cmd = "/usr/local/bin/swift-rings-rebalance.sh"
|
|
result = ssh_manager.execute(ip=_ip, cmd=cmd)
|
|
logger.debug("command execution result is {0}"
|
|
.format(result['exit_code']))
|
|
else:
|
|
checkers.check_swift_ring(_ip)
|
|
|
|
self.manager.show_step(6)
|
|
fuel_web.run_ostf(
|
|
cluster_id=cluster_id,
|
|
test_sets=['ha', 'smoke', 'sanity'])
|
|
|
|
|
|
@pytest.mark.get_logs
|
|
@pytest.mark.fail_snapshot
|
|
@pytest.mark.need_ready_cluster
|
|
@pytest.mark.ha_neutron
|
|
class TestNeutronVlanHa(object):
|
|
"""NeutronVlanHa.
|
|
|
|
|
|
Old groups: neutron, ha, ha_neutron
|
|
|
|
""" # TODO documentation
|
|
|
|
cluster_config = {
|
|
"name": "NeutronVlanHa",
|
|
"mode": settings.DEPLOYMENT_MODE,
|
|
"settings": {
|
|
"net_provider": settings.NEUTRON,
|
|
"net_segment_type": settings.NEUTRON_SEGMENT['vlan'],
|
|
'tenant': 'haVlan',
|
|
'user': 'haVlan',
|
|
'password': 'haVlan'
|
|
},
|
|
"nodes": {
|
|
'slave-01': ['controller'],
|
|
'slave-02': ['controller'],
|
|
'slave-03': ['controller'],
|
|
'slave-04': ['compute'],
|
|
'slave-05': ['compute']
|
|
}
|
|
}
|
|
|
|
@pytest.mark.deploy_neutron_vlan_ha
|
|
@pytest.mark.neutron_vlan_ha
|
|
def test_deploy_neutron_vlan_ha(self):
|
|
"""Deploy cluster in HA mode with Neutron VLAN
|
|
|
|
Scenario:
|
|
1. Create cluster
|
|
2. Add 3 nodes with controller role
|
|
3. Add 2 nodes with compute role
|
|
4. Deploy the cluster
|
|
5. Run network verification
|
|
6. Run OSTF
|
|
|
|
Duration 80m
|
|
Snapshot deploy_neutron_vlan_ha
|
|
|
|
"""
|
|
self.manager.show_step(1)
|
|
self.manager.show_step(2)
|
|
self.manager.show_step(3)
|
|
self.manager.show_step(4)
|
|
self.manager.show_step(5)
|
|
|
|
cluster_id = self._storage['cluster_id']
|
|
fuel_web = self.manager.fuel_web
|
|
|
|
cluster = fuel_web.client.get_cluster(cluster_id)
|
|
assert str(cluster['net_provider']) == settings.NEUTRON
|
|
|
|
os_conn = os_actions.OpenStackActions(
|
|
fuel_web.get_public_vip(cluster_id),
|
|
user=self.cluster_config['settings']['user'],
|
|
passwd=self.cluster_config['settings']['password'],
|
|
tenant=self.cluster_config['settings']['tenant'])
|
|
|
|
fuel_web.check_fixed_network_cidr(
|
|
cluster_id, os_conn)
|
|
|
|
fuel_web.verify_network(cluster_id)
|
|
devops_node = fuel_web.get_nailgun_primary_node(
|
|
self.env.d_env.nodes().slaves[0])
|
|
logger.debug("devops node name is {0}".format(devops_node.name))
|
|
|
|
_ip = fuel_web.get_nailgun_node_by_name(devops_node.name)['ip']
|
|
for _ in range(5):
|
|
try:
|
|
checkers.check_swift_ring(_ip)
|
|
break
|
|
except AssertionError:
|
|
cmd = "/usr/local/bin/swift-rings-rebalance.sh"
|
|
result = ssh_manager.execute(ip=_ip, cmd=cmd)
|
|
logger.debug("command execution result is {0}"
|
|
.format(result['exit_code']))
|
|
else:
|
|
checkers.check_swift_ring(_ip)
|
|
|
|
self.manager.show_step(6)
|
|
fuel_web.run_ostf(
|
|
cluster_id=cluster_id, test_sets=['ha', 'smoke', 'sanity'])
|