def _xml_ele_to_obj(cls, element): kwargs = {} for local_kw, deserialized_obj_kw in cls.kwarg_map.iteritems(): kwargs[local_kw] = element.get(deserialized_obj_kw) volume_type_obj = cls(**kwargs) volume_type_obj.extra_specs = _XMLDictionary._xml_ele_to_obj( element, 'extra_specs') return volume_type_obj
def _xml_to_obj(cls, serialized_str): element = ElementTree.fromstring(serialized_str) kwargs = {} for local_kw, deserialized_obj_kw in cls.kwarg_map.iteritems(): kwargs[local_kw] = element.get(deserialized_obj_kw) snapshot = cls(**kwargs) snapshot.metadata = _XMLDictionary._xml_ele_to_obj(element) return snapshot
def _xml_to_obj(cls, serialized_str): element = ElementTree.fromstring(serialized_str) kwargs = {} for local_kw, deserialized_obj_kw in cls.kwarg_map.iteritems(): kwargs[local_kw] = element.get(deserialized_obj_kw) volume = cls(**kwargs) volume.metadata = _XMLDictionary._xml_ele_to_obj(element) volume.attachments = _VolumeAttachmentsList._xml_ele_to_obj(element) volume.links = _LinksList._xml_ele_to_obj(element) return volume
def _xml_ele_to_obj(cls, element): kwargs = {} for local_kw, deserialized_obj_kw in cls.kwarg_map.iteritems(): kwargs[local_kw] = element.get(deserialized_obj_kw) namespace_kwargs = {} namespace_kwargs["os_vol_host_attr_host"] = "host" namespace_kwargs["os_vol_tenant_attr_tenant_id"] = "tenant_id" namespace_kwargs["os_vol_mig_status_attr_migstat"] = "migstat" namespace_kwargs["os_vol_mig_status_attr_name_id"] = "name_id" for local_kw, expected_stripped_name in namespace_kwargs.iteritems(): for element_name, element_value in element.items(): _, _, stripped_element_name = str(element_name).rpartition('}') if expected_stripped_name == stripped_element_name: kwargs[local_kw] = element_value volume = cls(**kwargs) volume.metadata = _XMLDictionary._xml_ele_to_obj(element) volume.volume_image_metadata = _XMLDictionary._xml_ele_to_obj( element, 'volume_image_metadata') volume.attachments = _VolumeAttachmentsList._xml_ele_to_obj(element) volume.links = _LinksList._xml_ele_to_obj(element) return volume
def _xml_ele_to_obj(cls, element): kwargs = {} for local_kw, deserialized_obj_kw in cls.kwarg_map.iteritems(): kwargs[local_kw] = element.get(deserialized_obj_kw) namespace_kwargs = {} namespace_kwargs[ "os_extended_snapshot_attributes_project_id"] = "project_id" namespace_kwargs[ "os_extended_snapshot_attributes_progress"] = "progress" for local_kw, expected_stripped_name in namespace_kwargs.iteritems(): for element_name, element_value in element.items(): _, _, stripped_element_name = str(element_name).rpartition('}') if expected_stripped_name == stripped_element_name: kwargs[local_kw] = element_value snapshot = cls(**kwargs) snapshot.metadata = _XMLDictionary._xml_ele_to_obj(element) return snapshot