def partitiondict2partition(partition): slap_partition = ComputerPartition(app.config['computer_id'], partition['reference']) slap_partition._software_release_document = None slap_partition._requested_state = 'destroyed' slap_partition._need_modification = 0 slap_partition._instance_guid = partition['reference'] if partition['software_release']: slap_partition._need_modification = 1 slap_partition._requested_state = partition['requested_state'] slap_partition._parameter_dict = xml2dict(partition['xml']) address_list = [] for address in execute_db('partition_network', 'SELECT * FROM %s WHERE partition_reference=?', [partition['reference']]): address_list.append((address['reference'], address['address'])) slap_partition._parameter_dict['ip_list'] = address_list slap_partition._parameter_dict['slap_software_type'] = \ partition['software_type'] if partition['slave_instance_list'] is not None: slap_partition._parameter_dict['slave_instance_list'] = \ xml_marshaller.xml_marshaller.loads(partition['slave_instance_list']) slap_partition._connection_dict = xml2dict(partition['connection_xml']) slap_partition._software_release_document = SoftwareRelease( software_release=partition['software_release'], computer_guid=app.config['computer_id']) return slap_partition
def partitiondict2partition(partition): for key, value in partition.iteritems(): if type(value) is unicode: partition[key] = value.encode() slap_partition = ComputerPartition(partition['computer_reference'], partition['reference']) slap_partition._software_release_document = None slap_partition._requested_state = 'destroyed' slap_partition._need_modification = 0 slap_partition._instance_guid = '%s-%s' % (partition['computer_reference'], partition['reference']) root_partition = getRootPartition(partition['reference']) if partition['software_release']: slap_partition._need_modification = 1 slap_partition._requested_state = partition['requested_state'] slap_partition._parameter_dict = xml2dict(partition['xml']) address_list = [] full_address_list = [] for address in execute_db('partition_network', 'SELECT * FROM %s WHERE partition_reference=? AND computer_reference=?', [partition['reference'], partition['computer_reference']]): address_list.append((address['reference'], address['address'])) slap_partition._parameter_dict['ip_list'] = address_list slap_partition._parameter_dict['full_address_list'] = full_address_list slap_partition._parameter_dict['slap_software_type'] = \ partition['software_type'] slap_partition._parameter_dict['instance_title'] = \ partition['partition_reference'] slap_partition._parameter_dict['root_instance_title'] = \ root_partition['partition_reference'] if partition['slave_instance_list'] is not None: slap_partition._parameter_dict['slave_instance_list'] = \ xml_marshaller.xml_marshaller.loads(partition['slave_instance_list']) else: slap_partition._parameter_dict['slave_instance_list'] = [] slap_partition._connection_dict = xml2dict(partition['connection_xml']) slap_partition._software_release_document = SoftwareRelease( software_release=partition['software_release'], computer_guid=partition['computer_reference']) return slap_partition