Merge "Add DiskFormat as Enum in fields"
This commit is contained in:
@@ -465,6 +465,24 @@ class PciDeviceType(Enum):
|
||||
valid_values=PciDeviceType.ALL)
|
||||
|
||||
|
||||
class DiskFormat(Enum):
|
||||
RBD = "rbd"
|
||||
LVM = "lvm"
|
||||
QCOW2 = "qcow2"
|
||||
RAW = "raw"
|
||||
PLOOP = "ploop"
|
||||
VHD = "vhd"
|
||||
VMDK = "vmdk"
|
||||
VDI = "vdi"
|
||||
ISO = "iso"
|
||||
|
||||
ALL = (RBD, LVM, QCOW2, RAW, PLOOP, VHD, VMDK, VDI, ISO)
|
||||
|
||||
def __init__(self):
|
||||
super(DiskFormat, self).__init__(
|
||||
valid_values=DiskFormat.ALL)
|
||||
|
||||
|
||||
class IPAddress(FieldType):
|
||||
@staticmethod
|
||||
def coerce(obj, attr, value):
|
||||
@@ -715,6 +733,10 @@ class PciDeviceTypeField(BaseEnumField):
|
||||
AUTO_TYPE = PciDeviceType()
|
||||
|
||||
|
||||
class DiskFormatField(BaseEnumField):
|
||||
AUTO_TYPE = DiskFormat()
|
||||
|
||||
|
||||
class IPAddressField(AutoTypedField):
|
||||
AUTO_TYPE = IPAddress()
|
||||
|
||||
|
@@ -600,6 +600,31 @@ class TestMonitorMetricType(TestField):
|
||||
self.assertRaises(ValueError, self.field.stringify, 'cpufrequency')
|
||||
|
||||
|
||||
class TestDiskFormat(TestField):
|
||||
def setUp(self):
|
||||
super(TestDiskFormat, self).setUp()
|
||||
self.field = fields.DiskFormatField()
|
||||
self.coerce_good_values = [('qcow2', 'qcow2'),
|
||||
('raw', 'raw'),
|
||||
('lvm', 'lvm'),
|
||||
('rbd', 'rbd'),
|
||||
('ploop', 'ploop'),
|
||||
('vhd', 'vhd'),
|
||||
('vmdk', 'vmdk'),
|
||||
('vdi', 'vdi'),
|
||||
('iso', 'iso')]
|
||||
|
||||
self.coerce_bad_values = ['acme']
|
||||
self.to_primitive_values = self.coerce_good_values[0:1]
|
||||
self.from_primitive_values = self.coerce_good_values[0:1]
|
||||
|
||||
def test_stringify(self):
|
||||
self.assertEqual("'rbd'", self.field.stringify('rbd'))
|
||||
|
||||
def test_stringify_invalid(self):
|
||||
self.assertRaises(ValueError, self.field.stringify, 'acme')
|
||||
|
||||
|
||||
class TestInteger(TestField):
|
||||
def setUp(self):
|
||||
super(TestInteger, self).setUp()
|
||||
|
Reference in New Issue
Block a user