Prevent the migration of VM with 'optimize' False in VM metadata

This patch adds the functionality to filter out VMs which have
metadata field 'optimize' set to False. This patch implements the
functionality for basic_consolidation strategy.

Change-Id: Iaf7b63e09534e4a67406e7f092242558b78c0bde
Partially-Implements: BP audit-tag-vm-metadata
This commit is contained in:
Pradeep Kumar Singh
2017-03-27 08:05:18 +00:00
parent a644600a18
commit a2cb02a861
17 changed files with 131 additions and 91 deletions

View File

@@ -17,6 +17,7 @@
import ast
import six
from oslo_serialization import jsonutils
from oslo_versionedobjects import fields
@@ -96,8 +97,26 @@ class FlexibleListOfDictField(fields.AutoTypedField):
super(FlexibleListOfDictField, self)._null(obj, attr)
class Json(fields.FieldType):
def coerce(self, obj, attr, value):
if isinstance(value, six.string_types):
loaded = jsonutils.loads(value)
return loaded
return value
def from_primitive(self, obj, attr, value):
return self.coerce(obj, attr, value)
def to_primitive(self, obj, attr, value):
return jsonutils.dumps(value)
class JsonField(fields.AutoTypedField):
AUTO_TYPE = Json()
# ### Notification fields ### #
class BaseWatcherEnum(Enum):
ALL = ()