def __test(self, arch, distroLimit, xsLimit, pcpuLimit, guestMem, expected, tec):
        if distroLimit:
            self.__setupGuestLimit(arch == "x86-64" and "MAX_VM_VCPUS64" or "MAX_VM_VCPUS", distroLimit)
        if xsLimit:
            self.__setupXSLimit(xsLimit)
        if pcpuLimit:
            self.__setupPCPULimit(pcpuLimit, tec)
        if guestMem:
            guestMemLimit = guestMem / 64

        if expected is None:
            expected = min(filter(lambda c: c is not None, [distroLimit, xsLimit, pcpuLimit, guestMemLimit]))
        guest = xenrt.lib.xenserver.guest.TampaGuest("Guest")
        guest.distro = "TestDistro"
        guest.arch = arch
        if guestMem:
            guest.memory = guestMem
        else:
            if pcpuLimit:
                h = tec.return_value.registry.hostGet.return_value
            else:
                tec.return_value.registry = Mock()
                tec.return_value.registry.hostList.return_value = []
                tec.return_value.registry.hostGet.return_value.getTemplateParams.return_value.defaultMemory = None

        tec.return_value.lookup = self.__lookup
        tec.return_value.lookupHost = Mock(return_value = None)

        self.assertEqual(guest.getMaxSupportedVCPUCount(), expected)
Example #2
0
    def __test(self, arch, distroLimit, xsLimit, pcpuLimit, guestMem, expected,
               tec):
        if distroLimit:
            self.__setupGuestLimit(
                arch == "x86-64" and "MAX_VM_VCPUS64" or "MAX_VM_VCPUS",
                distroLimit)
        if xsLimit:
            self.__setupXSLimit(xsLimit)
        if pcpuLimit:
            self.__setupPCPULimit(pcpuLimit, tec)
        if guestMem:
            guestMemLimit = guestMem / 64

        if expected is None:
            expected = min(
                filter(lambda c: c is not None,
                       [distroLimit, xsLimit, pcpuLimit, guestMemLimit]))
        guest = xenrt.lib.xenserver.guest.TampaGuest("Guest")
        guest.distro = "TestDistro"
        guest.arch = arch
        if guestMem:
            guest.memory = guestMem
        else:
            if pcpuLimit:
                h = tec.return_value.registry.hostGet.return_value
            else:
                tec.return_value.registry = Mock()
                tec.return_value.registry.hostList.return_value = []
                tec.return_value.registry.hostGet.return_value.getTemplateParams.return_value.defaultMemory = None

        tec.return_value.lookup = self.__lookup
        tec.return_value.lookupHost = Mock(return_value=None)

        self.assertEqual(guest.getMaxSupportedVCPUCount(), expected)
    def testWarnings(self, tec):
        """Verify warnings are generated when expected"""
        w = Mock()
        tec.return_value.warning = w
        guest = xenrt.lib.xenserver.guest.TampaGuest("Guest")
        guest.distro = "TestDistro"
        guest.arch = "x86"

        tec.return_value.lookup = self.__lookup

        # First try with everything
        self.__setupXSLimit(16)
        self.__setupPCPULimit(16, tec)
        self.__setupGuestLimit("MAX_VM_VCPUS", 16)
        guest.memory = 32768
        guest.getMaxSupportedVCPUCount()
        self.assertFalse(w.called, w.call_args)

        # Now without a distro
        w.reset_mock()
        del self.conf["GUEST_LIMITATIONS"]["TestDistro"]
        guest.getMaxSupportedVCPUCount()
        self.assertTrue(w.called)

        # Now with distro, but without a product version
        w.reset_mock()
        self.__setupGuestLimit("MAX_VM_VCPUS", 16)
        del self.conf["PRODUCT_VERSION"]
        guest.getMaxSupportedVCPUCount()
        self.assertTrue(w.called)

        # Now without memory
        w.reset_mock()
        self.conf["PRODUCT_VERSION"] = "TestPV"
        guest.memory = None
        tec.return_value.registry.hostGet.return_value.getTemplateParams.return_value.defaultMemory = None
        guest.getMaxSupportedVCPUCount()
        self.assertTrue(w.called)

        # Now without PCPUs
        guest.memory = 32768
        w.reset_mock()
        tec.return_value.registry.return_value = []
        guest.getMaxSupportedVCPUCount()
        self.assertFalse(w.called, w.call_args)
Example #4
0
    def testWarnings(self, tec):
        """Verify warnings are generated when expected"""
        w = Mock()
        tec.return_value.warning = w
        guest = xenrt.lib.xenserver.guest.TampaGuest("Guest")
        guest.distro = "TestDistro"
        guest.arch = "x86"

        tec.return_value.lookup = self.__lookup

        # First try with everything
        self.__setupXSLimit(16)
        self.__setupPCPULimit(16, tec)
        self.__setupGuestLimit("MAX_VM_VCPUS", 16)
        guest.memory = 32768
        guest.getMaxSupportedVCPUCount()
        self.assertFalse(w.called, w.call_args)

        # Now without a distro
        w.reset_mock()
        del self.conf["GUEST_LIMITATIONS"]["TestDistro"]
        guest.getMaxSupportedVCPUCount()
        self.assertTrue(w.called)

        # Now with distro, but without a product version
        w.reset_mock()
        self.__setupGuestLimit("MAX_VM_VCPUS", 16)
        del self.conf["PRODUCT_VERSION"]
        guest.getMaxSupportedVCPUCount()
        self.assertTrue(w.called)

        # Now without memory
        w.reset_mock()
        self.conf["PRODUCT_VERSION"] = "TestPV"
        guest.memory = None
        tec.return_value.registry.hostGet.return_value.getTemplateParams.return_value.defaultMemory = None
        guest.getMaxSupportedVCPUCount()
        self.assertTrue(w.called)

        # Now without PCPUs
        guest.memory = 32768
        w.reset_mock()
        tec.return_value.registry.return_value = []
        guest.getMaxSupportedVCPUCount()
        self.assertFalse(w.called, w.call_args)
    def test64BitArch(self, tec):
        """Verify architecture is taken into account properly"""
        guest = xenrt.lib.xenserver.guest.TampaGuest("Guest")
        guest.distro = "TestDistro"
        guest.arch = "x86"

        tec.return_value.lookup = self.__lookup

        # First verify the 32-bit version is used
        self.conf["GUEST_LIMITATIONS"]["TestDistro"] = {}
        self.conf["GUEST_LIMITATIONS"]["TestDistro"]["MAX_VM_VCPUS"] = 8
        self.conf["GUEST_LIMITATIONS"]["TestDistro"]["MAX_VM_VCPUS64"] = 16

        self.assertEqual(guest.getMaxSupportedVCPUCount(), 8)

        # Now go 64-bit
        guest.arch = "x86-64"
        self.assertEqual(guest.getMaxSupportedVCPUCount(), 16)

        # Verify Windows uses the 32-bit one regardless
        guest.windows = True
        self.assertEqual(guest.getMaxSupportedVCPUCount(), 8)
Example #6
0
    def test64BitArch(self, tec):
        """Verify architecture is taken into account properly"""
        guest = xenrt.lib.xenserver.guest.TampaGuest("Guest")
        guest.distro = "TestDistro"
        guest.arch = "x86"

        tec.return_value.lookup = self.__lookup

        # First verify the 32-bit version is used
        self.conf["GUEST_LIMITATIONS"]["TestDistro"] = {}
        self.conf["GUEST_LIMITATIONS"]["TestDistro"]["MAX_VM_VCPUS"] = 8
        self.conf["GUEST_LIMITATIONS"]["TestDistro"]["MAX_VM_VCPUS64"] = 16

        self.assertEqual(guest.getMaxSupportedVCPUCount(), 8)

        # Now go 64-bit
        guest.arch = "x86-64"
        self.assertEqual(guest.getMaxSupportedVCPUCount(), 16)

        # Verify Windows uses the 32-bit one regardless
        guest.windows = True
        self.assertEqual(guest.getMaxSupportedVCPUCount(), 8)