Merge "Add test for mcollective package version"

This commit is contained in:
Jenkins 2016-07-05 11:01:57 +00:00 committed by Gerrit Code Review
commit 512cf8fdc2
2 changed files with 74 additions and 0 deletions

View File

@ -1470,3 +1470,33 @@ def check_free_space_slave(env, min_disk_slave=150):
"The minimal vm-nova storage size should be {0}, "
"current {1}".format(
vm_storage_free_space, 4 * small_flavor_disk))
@logwrap
def check_package_version(ip, package_name, expected_version, condition='ge'):
"""Check that package version equal/not equal/greater/less than expected
:param ip: ip
:param package_name: package name to check
:param expected_version: expected version of package
:param condition: predicate can be on of eq, ne, lt, le, ge, gt
:return None: or raise UnexpectedExitCode
"""
cmd = "dpkg -s {0} " \
"| awk -F': ' '/Version/ {{print \$2}}'".format(package_name)
logger.debug(cmd)
result = ssh_manager.execute_on_remote(
ip,
cmd=cmd,
assert_ec_equal=[0]
)
version = result['stdout_str']
logger.info('{} ver is {}'.format(package_name, version))
err_msg = 'Package {} version is {} and not {} {}'.format(package_name,
version,
condition,
expected_version)
cmd = 'dpkg --compare-versions {0} {1} {2}'.format(version, condition,
expected_version)
ssh_manager.execute_on_remote(ip, cmd, assert_ec_equal=[0],
err_msg=err_msg)

View File

@ -15,6 +15,7 @@
from proboscis import test
from proboscis.asserts import assert_true
from fuelweb_test.helpers.checkers import check_package_version
from fuelweb_test.helpers.decorators import log_snapshot_after_test
from fuelweb_test import logger
from fuelweb_test.tests.base_test_case import SetupEnvironment
@ -39,6 +40,49 @@ class IBPTest(TestBasic):
' Missing packages: {}'.format(pkg_list - node_pkgs)
)
@test(depends_on=[SetupEnvironment.prepare_slaves_1],
groups=["check_mcollective_version"])
@log_snapshot_after_test
def check_mcollective_version(self):
"""Check mcollective package version on bootstrap and provisioned node
Scenario:
1. Check mcollective version on bootstrap
2. Create cluster
3. Add one node to cluster
4. Provision nodes
5. Check mcollective version on node
Duration 5m
"""
self.env.revert_snapshot("ready_with_1_slaves", skip_timesync=True)
self.show_step(1)
node = self.env.d_env.get_node(name__in=["slave-01"])
_ip = self.fuel_web.get_nailgun_node_by_devops_node(node)['ip']
check_package_version(_ip, 'mcollective', '2.3.3', 'ge')
self.show_step(2)
cluster_id = self.fuel_web.create_cluster(
name=self.__class__.__name__
)
pkg_list = self.fuel_web.get_cluster_ibp_packages(cluster_id)
logger.debug('Cluster IBP packages: {}'.format(pkg_list))
self.show_step(3)
self.fuel_web.update_nodes(
cluster_id,
{
'slave-01': ['controller'],
}
)
self.show_step(4)
self.fuel_web.provisioning_cluster_wait(cluster_id)
self.show_step(5)
check_package_version(_ip, 'mcollective', '2.3.3', 'ge')
@test(depends_on=[SetupEnvironment.prepare_slaves_1],
groups=["check_ibp_default_package_list"])
@log_snapshot_after_test