Add tests for redeploy env with unpinned CPUs

This testgroup should be run with this parameters:

export KVM_USE=True
export SLAVE_NODE_CPU=6
export DRIVER_ENABLE_ACPI=true
export NUMA_NODES=2

Change-Id: I3c4ada622efdf8a49926c7c2533de7542231373d
Implements: blueprint test-numa-cpu-pinning
(cherry picked from commit dbf92d90ea)
This commit is contained in:
Ksenia Demina 2016-05-11 14:31:01 +03:00
parent 7a815f91df
commit 58b037531c

View File

@ -581,3 +581,78 @@ class NumaCpuPinning(TestBasic):
.format(compute['ip'], compute_cpu * 2)) .format(compute['ip'], compute_cpu * 2))
self.env.make_snapshot('cpu_pinning_allocation') self.env.make_snapshot('cpu_pinning_allocation')
@test(depends_on_groups=['cpu_pinning_on_two_compute'],
groups=["change_pinned_cpu_and_redeploy"])
@log_snapshot_after_test
def change_pinned_cpu_and_redeploy(self):
"""Unpinned CPU and redeploy cluster
Scenario:
1. Revert snapshot "cpu_pinning_on_two_compute"
2. Unpinned CPU on the first compute
3. Deploy changes
4. Verify changes were applied
5. Check nova.conf doesn't contain pinned CPU at the first compute
6. Run OSTF
7. Boot VM with pinned CPU on the second compute
Snapshot: change_pinned_cpu_and_redeploy
"""
self.show_step(1)
self.env.revert_snapshot("cpu_pinning_on_two_compute")
cluster_id = self.fuel_web.get_last_created_cluster()
self.show_step(2)
first_compute = self.fuel_web.get_nailgun_node_by_name('slave-01')
first_config = self.fuel_web.client.get_node_attributes(
first_compute['id'])
first_config['cpu_pinning']['nova']['value'] = 0
self.fuel_web.client.upload_node_attributes(
first_config, first_compute['id'])
self.show_step(3)
self.fuel_web.deploy_cluster_wait(cluster_id)
self.show_step(4)
compute_config = self.fuel_web.client.get_node_attributes(
first_compute['id'])
asserts.assert_equal(
compute_config['cpu_pinning']['nova']['value'],
0,
"CPU wasn't unpinned on '{0}': "
"Expected value 0, actual '{1}'"
.format(first_compute['ip'],
compute_config['cpu_pinning']['nova']['value']))
self.show_step(5)
nova_conf_path = "/etc/nova/nova.conf"
with self.ssh_manager.open_on_remote(
ip=first_compute['ip'],
path=nova_conf_path) as f:
nova_conf = utils.get_ini_config(f)
utils.check_config(nova_conf,
nova_conf_path,
"DEFAULT",
"vcpu_pin_set",
None)
self.show_step(6)
self.fuel_web.run_ostf(cluster_id=cluster_id)
self.show_step(7)
os_conn = os_actions.OpenStackActions(
self.fuel_web.get_public_vip(cluster_id))
second_compute = self.fuel_web.get_nailgun_node_by_name('slave-02')
meta = {'pinned': 'true'}
self.create_pinned_instance(os_conn=os_conn,
cluster_id=cluster_id,
name='cpu_1_',
vcpus=1,
hostname=second_compute['fqdn'],
meta=meta)
self.env.make_snapshot('change_pinned_cpu_and_redeploy')