Merge "Add DiskFormat as Enum in fields"

This commit is contained in:
Jenkins
2016-01-19 06:49:11 +00:00
committed by Gerrit Code Review
2 changed files with 47 additions and 0 deletions

View File

@@ -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()

View File

@@ -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()