Merge "VMware: Support for paraVirtual image adapter type"

This commit is contained in:
Jenkins 2016-05-05 19:18:20 +00:00 committed by Gerrit Code Review
commit 8091e9f737
3 changed files with 33 additions and 10 deletions

View File

@ -1958,6 +1958,8 @@ class VirtualDiskAdapterTypeTest(test.TestCase):
self.assertTrue(volumeops.VirtualDiskAdapterType.is_valid("busLogic")) self.assertTrue(volumeops.VirtualDiskAdapterType.is_valid("busLogic"))
self.assertTrue(volumeops.VirtualDiskAdapterType.is_valid( self.assertTrue(volumeops.VirtualDiskAdapterType.is_valid(
"lsiLogicsas")) "lsiLogicsas"))
self.assertTrue(
volumeops.VirtualDiskAdapterType.is_valid("paraVirtual"))
self.assertTrue(volumeops.VirtualDiskAdapterType.is_valid("ide")) self.assertTrue(volumeops.VirtualDiskAdapterType.is_valid("ide"))
self.assertFalse(volumeops.VirtualDiskAdapterType.is_valid("pvscsi")) self.assertFalse(volumeops.VirtualDiskAdapterType.is_valid("pvscsi"))
@ -1965,6 +1967,7 @@ class VirtualDiskAdapterTypeTest(test.TestCase):
volumeops.VirtualDiskAdapterType.validate("lsiLogic") volumeops.VirtualDiskAdapterType.validate("lsiLogic")
volumeops.VirtualDiskAdapterType.validate("busLogic") volumeops.VirtualDiskAdapterType.validate("busLogic")
volumeops.VirtualDiskAdapterType.validate("lsiLogicsas") volumeops.VirtualDiskAdapterType.validate("lsiLogicsas")
volumeops.VirtualDiskAdapterType.validate("paraVirtual")
volumeops.VirtualDiskAdapterType.validate("ide") volumeops.VirtualDiskAdapterType.validate("ide")
self.assertRaises(vmdk_exceptions.InvalidAdapterTypeException, self.assertRaises(vmdk_exceptions.InvalidAdapterTypeException,
volumeops.VirtualDiskAdapterType.validate, volumeops.VirtualDiskAdapterType.validate,
@ -1980,6 +1983,9 @@ class VirtualDiskAdapterTypeTest(test.TestCase):
self.assertEqual("lsiLogic", self.assertEqual("lsiLogic",
volumeops.VirtualDiskAdapterType.get_adapter_type( volumeops.VirtualDiskAdapterType.get_adapter_type(
"lsiLogicsas")) "lsiLogicsas"))
self.assertEqual("lsiLogic",
volumeops.VirtualDiskAdapterType.get_adapter_type(
"paraVirtual"))
self.assertEqual("ide", self.assertEqual("ide",
volumeops.VirtualDiskAdapterType.get_adapter_type( volumeops.VirtualDiskAdapterType.get_adapter_type(
"ide")) "ide"))
@ -2001,6 +2007,9 @@ class ControllerTypeTest(test.TestCase):
self.assertEqual(volumeops.ControllerType.LSI_LOGIC_SAS, self.assertEqual(volumeops.ControllerType.LSI_LOGIC_SAS,
volumeops.ControllerType.get_controller_type( volumeops.ControllerType.get_controller_type(
'lsiLogicsas')) 'lsiLogicsas'))
self.assertEqual(volumeops.ControllerType.PARA_VIRTUAL,
volumeops.ControllerType.get_controller_type(
'paraVirtual'))
self.assertEqual(volumeops.ControllerType.IDE, self.assertEqual(volumeops.ControllerType.IDE,
volumeops.ControllerType.get_controller_type( volumeops.ControllerType.get_controller_type(
'ide')) 'ide'))
@ -2015,5 +2024,7 @@ class ControllerTypeTest(test.TestCase):
volumeops.ControllerType.BUS_LOGIC)) volumeops.ControllerType.BUS_LOGIC))
self.assertTrue(volumeops.ControllerType.is_scsi_controller( self.assertTrue(volumeops.ControllerType.is_scsi_controller(
volumeops.ControllerType.LSI_LOGIC_SAS)) volumeops.ControllerType.LSI_LOGIC_SAS))
self.assertTrue(volumeops.ControllerType.is_scsi_controller(
volumeops.ControllerType.PARA_VIRTUAL))
self.assertFalse(volumeops.ControllerType.is_scsi_controller( self.assertFalse(volumeops.ControllerType.is_scsi_controller(
volumeops.ControllerType.IDE)) volumeops.ControllerType.IDE))

View File

@ -183,6 +183,7 @@ class VirtualDiskAdapterType(object):
LSI_LOGIC = "lsiLogic" LSI_LOGIC = "lsiLogic"
BUS_LOGIC = "busLogic" BUS_LOGIC = "busLogic"
LSI_LOGIC_SAS = "lsiLogicsas" LSI_LOGIC_SAS = "lsiLogicsas"
PARA_VIRTUAL = "paraVirtual"
IDE = "ide" IDE = "ide"
@staticmethod @staticmethod
@ -195,6 +196,7 @@ class VirtualDiskAdapterType(object):
return adapter_type in [VirtualDiskAdapterType.LSI_LOGIC, return adapter_type in [VirtualDiskAdapterType.LSI_LOGIC,
VirtualDiskAdapterType.BUS_LOGIC, VirtualDiskAdapterType.BUS_LOGIC,
VirtualDiskAdapterType.LSI_LOGIC_SAS, VirtualDiskAdapterType.LSI_LOGIC_SAS,
VirtualDiskAdapterType.PARA_VIRTUAL,
VirtualDiskAdapterType.IDE] VirtualDiskAdapterType.IDE]
@staticmethod @staticmethod
@ -212,20 +214,23 @@ class VirtualDiskAdapterType(object):
invalid_type=extra_spec_adapter_type) invalid_type=extra_spec_adapter_type)
@staticmethod @staticmethod
def get_adapter_type(extra_spec_adapter_type): def get_adapter_type(extra_spec_adapter):
"""Get the adapter type to be used in VirtualDiskSpec. """Get the adapter type to be used in VirtualDiskSpec.
:param extra_spec_adapter_type: adapter type in the extra_spec :param extra_spec_adapter: adapter type in the extra_spec
:return: adapter type to be used in VirtualDiskSpec :return: adapter type to be used in VirtualDiskSpec
""" """
VirtualDiskAdapterType.validate(extra_spec_adapter_type) VirtualDiskAdapterType.validate(extra_spec_adapter)
# We set the adapter type as lsiLogic for lsiLogicsas since it is not # We set the adapter type as lsiLogic for lsiLogicsas/paraVirtual
# supported by VirtualDiskManager APIs. This won't be a problem because # since it is not supported by VirtualDiskManager APIs. This won't
# we attach the virtual disk to the correct controller type and the # be a problem because we attach the virtual disk to the correct
# disk adapter type is always resolved using its controller key. # controller type and the disk adapter type is always resolved using
if extra_spec_adapter_type == VirtualDiskAdapterType.LSI_LOGIC_SAS: # its controller key.
if (extra_spec_adapter == VirtualDiskAdapterType.LSI_LOGIC_SAS or
extra_spec_adapter == VirtualDiskAdapterType.PARA_VIRTUAL):
return VirtualDiskAdapterType.LSI_LOGIC return VirtualDiskAdapterType.LSI_LOGIC
return extra_spec_adapter_type else:
return extra_spec_adapter
class ControllerType(object): class ControllerType(object):
@ -234,12 +239,14 @@ class ControllerType(object):
LSI_LOGIC = 'VirtualLsiLogicController' LSI_LOGIC = 'VirtualLsiLogicController'
BUS_LOGIC = 'VirtualBusLogicController' BUS_LOGIC = 'VirtualBusLogicController'
LSI_LOGIC_SAS = 'VirtualLsiLogicSASController' LSI_LOGIC_SAS = 'VirtualLsiLogicSASController'
PARA_VIRTUAL = 'ParaVirtualSCSIController'
IDE = 'VirtualIDEController' IDE = 'VirtualIDEController'
CONTROLLER_TYPE_DICT = { CONTROLLER_TYPE_DICT = {
VirtualDiskAdapterType.LSI_LOGIC: LSI_LOGIC, VirtualDiskAdapterType.LSI_LOGIC: LSI_LOGIC,
VirtualDiskAdapterType.BUS_LOGIC: BUS_LOGIC, VirtualDiskAdapterType.BUS_LOGIC: BUS_LOGIC,
VirtualDiskAdapterType.LSI_LOGIC_SAS: LSI_LOGIC_SAS, VirtualDiskAdapterType.LSI_LOGIC_SAS: LSI_LOGIC_SAS,
VirtualDiskAdapterType.PARA_VIRTUAL: PARA_VIRTUAL,
VirtualDiskAdapterType.IDE: IDE} VirtualDiskAdapterType.IDE: IDE}
@staticmethod @staticmethod
@ -264,7 +271,8 @@ class ControllerType(object):
""" """
return controller_type in [ControllerType.LSI_LOGIC, return controller_type in [ControllerType.LSI_LOGIC,
ControllerType.BUS_LOGIC, ControllerType.BUS_LOGIC,
ControllerType.LSI_LOGIC_SAS] ControllerType.LSI_LOGIC_SAS,
ControllerType.PARA_VIRTUAL]
class VMwareVolumeOps(object): class VMwareVolumeOps(object):

View File

@ -0,0 +1,4 @@
---
fixes:
- Added support for images with vmware_adaptertype set to
paraVirtual in the VMDK driver.