diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index 77c27f4c..b482ea8c 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -5135,6 +5135,105 @@ class LibvirtDriverTestCase(test.TestCase): self.libvirtconnection.get_instance_disk_info, instance_name) + def test_get_cpuset_ids(self): + # correct syntax + self.flags(vcpu_pin_set="1") + cpuset_ids = self.libvirtconnection._get_cpuset_ids() + self.assertEqual([1], cpuset_ids) + + self.flags(vcpu_pin_set="1,2") + cpuset_ids = self.libvirtconnection._get_cpuset_ids() + self.assertEqual([1, 2], cpuset_ids) + + self.flags(vcpu_pin_set=", , 1 , ,, 2, ,") + cpuset_ids = self.libvirtconnection._get_cpuset_ids() + self.assertEqual([1, 2], cpuset_ids) + + self.flags(vcpu_pin_set="1-1") + cpuset_ids = self.libvirtconnection._get_cpuset_ids() + self.assertEqual([1], cpuset_ids) + + self.flags(vcpu_pin_set=" 1 - 1, 1 - 2 , 1 -3") + cpuset_ids = self.libvirtconnection._get_cpuset_ids() + self.assertEqual([1, 2, 3], cpuset_ids) + + self.flags(vcpu_pin_set="1,^2") + cpuset_ids = self.libvirtconnection._get_cpuset_ids() + self.assertEqual([1], cpuset_ids) + + self.flags(vcpu_pin_set="1-2, ^1") + cpuset_ids = self.libvirtconnection._get_cpuset_ids() + self.assertEqual([2], cpuset_ids) + + self.flags(vcpu_pin_set="1-3,5,^2") + cpuset_ids = self.libvirtconnection._get_cpuset_ids() + self.assertEqual([1, 3, 5], cpuset_ids) + + self.flags(vcpu_pin_set=" 1 - 3 , ^2, 5") + cpuset_ids = self.libvirtconnection._get_cpuset_ids() + self.assertEqual([1, 3, 5], cpuset_ids) + + # invalid syntax + self.flags(vcpu_pin_set=" -1-3,5,^2") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="1-3-,5,^2") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="-3,5,^2") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="1-,5,^2") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="1-3,5,^2^") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="1-3,5,^2-") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="--13,^^5,^2") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="a-3,5,^2") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="1-a,5,^2") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="1-3,b,^2") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="1-3,5,^c") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="3 - 1, 5 , ^ 2 ") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set=" 1,1, ^1") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set=" 1,^1,^1,2, ^2") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + + self.flags(vcpu_pin_set="^2") + self.assertRaises(exception.Invalid, + self.libvirtconnection._get_cpuset_ids) + class LibvirtVolumeUsageTestCase(test.TestCase): """Test for nova.virt.libvirt.libvirt_driver.LibvirtDriver diff --git a/nova/tests/test_libvirt_config.py b/nova/tests/test_libvirt_config.py index f98e6dd5..8eed7136 100644 --- a/nova/tests/test_libvirt_config.py +++ b/nova/tests/test_libvirt_config.py @@ -699,6 +699,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest): obj.virt_type = "lxc" obj.memory = 1024 * 1024 * 100 obj.vcpus = 2 + obj.cpuset = "0-3,^2,4-5" obj.name = "demo" obj.uuid = "b38a3f43-4be2-4046-897f-b67c2f5e0147" obj.os_type = "exe" @@ -716,7 +717,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest): b38a3f43-4be2-4046-897f-b67c2f5e0147 demo 104857600 - 2 + 2 exe /sbin/init @@ -734,6 +735,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest): obj.virt_type = "xen" obj.memory = 1024 * 1024 * 100 obj.vcpus = 2 + obj.cpuset = "0-3,^2,4-5" obj.name = "demo" obj.uuid = "b38a3f43-4be2-4046-897f-b67c2f5e0147" obj.os_type = "linux" @@ -756,7 +758,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest): b38a3f43-4be2-4046-897f-b67c2f5e0147 demo 104857600 - 2 + 2 linux /tmp/vmlinuz @@ -777,6 +779,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest): obj.virt_type = "xen" obj.memory = 1024 * 1024 * 100 obj.vcpus = 2 + obj.cpuset = "0-3,^2,4-5" obj.name = "demo" obj.uuid = "b38a3f43-4be2-4046-897f-b67c2f5e0147" obj.os_type = "hvm" @@ -800,7 +803,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest): b38a3f43-4be2-4046-897f-b67c2f5e0147 demo 104857600 - 2 + 2 hvm /usr/lib/xen/boot/hvmloader @@ -824,6 +827,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest): obj.virt_type = "kvm" obj.memory = 1024 * 1024 * 100 obj.vcpus = 2 + obj.cpuset = "0-3,^2,4-5" obj.cpu_shares = 100 obj.cpu_quota = 50000 obj.cpu_period = 25000 @@ -853,7 +857,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest): b38a3f43-4be2-4046-897f-b67c2f5e0147 demo 104857600 - 2 + 2 Acme