Commit d57b8d5a authored by Alain Takoudjou's avatar Alain Takoudjou

include instance and hosting_subscription title in instance parameter_dict

parent 298b13f0
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>def compareAndUpdateAddressList(document, address_list, additional_dict=None):\n
if additional_dict is None:\n
additional_dict = {}\n
to_delete_ip_id_list = []\n
to_add_ip_dict_list = address_list[:]\n
existing_address_list = document.contentValues(portal_type=\'Internet Protocol Address\')\n
existing_address_list.sort(key=lambda x: {0: 1, 1: 2}[int(x.id == \'default_network_interface\')])\n
for address in existing_address_list:\n
current_dict = {\n
\'addr\': address.getIpAddress(),\n
\'netmask\': address.getNetmask()\n
}\n
if current_dict in to_add_ip_dict_list:\n
to_add_ip_dict_list.remove(current_dict)\n
else:\n
# XXX - Only delete if Network interface are supposed to be the same\n
if additional_dict.has_key(\'network_interface\'):\n
if address.getNetworkInterface(\'\') and additional_dict[\'network_interface\'] != address.getNetworkInterface():\n
continue\n
to_delete_ip_id_list.append(address.getId())\n
\n
for address in to_add_ip_dict_list:\n
if to_delete_ip_id_list:\n
id = to_delete_ip_id_list.pop()\n
address_document = document.restrictedTraverse(id)\n
else:\n
kw = {\'portal_type\': \'Internet Protocol Address\'}\n
if not len(document.objectIds(portal_type=\'Internet Protocol Address\')):\n
kw.update(id=\'default_network_address\')\n
address_document = document.newContent(**kw)\n
address_document.edit(\n
ip_address=address[\'addr\'],\n
netmask=address[\'netmask\'],\n
**additional_dict\n
)\n
if to_delete_ip_id_list:\n
document.deleteContent(to_delete_ip_id_list)\n
\n
\n
# Getting existing partitions\n
existing_partition_dict = {}\n
for c in context.contentValues(portal_type="Computer Partition"):\n
existing_partition_dict[c.getReference()] = c\n
\n
# update computer data\n
quantity = len(computer_dict[\'partition_list\'])\n
if context.getQuantity() != quantity:\n
context.edit(quantity=quantity)\n
\n
compareAndUpdateAddressList(context, [{\'addr\': computer_dict[\'address\'], \'netmask\': computer_dict[\'netmask\']}])\n
expected_partition_dict = {}\n
for send_partition in computer_dict[\'partition_list\']:\n
partition = existing_partition_dict.get(send_partition[\'reference\'], None)\n
expected_partition_dict[send_partition[\'reference\']] = True\n
if partition is None:\n
partition = context.newContent(portal_type=\'Computer Partition\')\n
partition.validate()\n
partition.markFree()\n
elif partition.getSlapState() == \'inactive\':\n
# Reactivate partition\n
partition.markFree(comment="Reactivated by slapformat")\n
\n
if partition.getValidationState() == "invalidated":\n
partition.validate(comment="Reactivated by slapformat")\n
if partition.getReference() != send_partition[\'reference\']:\n
partition.edit(reference=send_partition[\'reference\'])\n
network_interface = send_partition[\'tap\'][\'name\']\n
compareAndUpdateAddressList(partition, send_partition[\'address_list\'], {\'network_interface\': network_interface})\n
tap_addr_list = []\n
additional_dict = {\'network_interface\': \'route_\' + network_interface}\n
if send_partition[\'tap\'].has_key(\'ipv4_addr\') and send_partition[\'tap\'][\'ipv4_addr\']:\n
tap_addr_list.append({\n
\'addr\': send_partition[\'tap\'][\'ipv4_addr\'],\n
\'netmask\': send_partition[\'tap\'][\'ipv4_netmask\']\n
})\n
additional_dict[\'gateway_ip_address\'] = send_partition[\'tap\'][\'ipv4_gateway\']\n
additional_dict[\'network_address\'] = send_partition[\'tap\'][\'ipv4_network\']\n
compareAndUpdateAddressList(partition, tap_addr_list, additional_dict)\n
\n
# Desactivate all other partitions\n
for key, value in existing_partition_dict.items():\n
if key not in expected_partition_dict:\n
if value.getSlapState() == "free":\n
value.markInactive(comment="Desactivated by slapformat")\n
if value.getValidationState() == "validated":\n
value.invalidate(comment="Desactivated by slapformat")\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>computer_dict</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Computer_updateFromDict</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -6,10 +6,22 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>testSlapOSSlapTool</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>test.erp5.testSlapOSSlapTool</string> </value>
......@@ -35,23 +47,23 @@
<value>
<tuple>
<string>W: 29, 10: Use of eval (eval-used)</string>
<string>W: 38, 2: Arguments number differs from overridden method (arguments-differ)</string>
<string>W:467, 13: Use of eval (eval-used)</string>
<string>W:518, 13: Use of eval (eval-used)</string>
<string>W:743, 13: Use of eval (eval-used)</string>
<string>W:1307, 13: Use of eval (eval-used)</string>
<string>W:1420, 13: Use of eval (eval-used)</string>
<string>W:1474, 13: Use of eval (eval-used)</string>
<string>W:1514, 13: Use of eval (eval-used)</string>
<string>W:1921, 2: Arguments number differs from overridden method (arguments-differ)</string>
<string>W:2017, 13: Use of eval (eval-used)</string>
<string>W:2372, 13: Use of eval (eval-used)</string>
<string>W:2426, 13: Use of eval (eval-used)</string>
<string>W:2453, 13: Use of eval (eval-used)</string>
<string>W:2598, 13: Use of eval (eval-used)</string>
<string>W:2626, 13: Use of eval (eval-used)</string>
<string>W:2675, 13: Use of eval (eval-used)</string>
<string>W:2722, 13: Use of eval (eval-used)</string>
<string>W: 38, 2: Arguments number differs from overridden \'afterSetUp\' method (arguments-differ)</string>
<string>W:517, 13: Use of eval (eval-used)</string>
<string>W:568, 13: Use of eval (eval-used)</string>
<string>W:793, 13: Use of eval (eval-used)</string>
<string>W:1399, 13: Use of eval (eval-used)</string>
<string>W:1512, 13: Use of eval (eval-used)</string>
<string>W:1566, 13: Use of eval (eval-used)</string>
<string>W:1606, 13: Use of eval (eval-used)</string>
<string>W:2013, 2: Arguments number differs from overridden \'afterSetUp\' method (arguments-differ)</string>
<string>W:2109, 13: Use of eval (eval-used)</string>
<string>W:2492, 13: Use of eval (eval-used)</string>
<string>W:2546, 13: Use of eval (eval-used)</string>
<string>W:2573, 13: Use of eval (eval-used)</string>
<string>W:2728, 13: Use of eval (eval-used)</string>
<string>W:2756, 13: Use of eval (eval-used)</string>
<string>W:2805, 13: Use of eval (eval-used)</string>
<string>W:2852, 13: Use of eval (eval-used)</string>
</tuple>
</value>
</item>
......@@ -62,13 +74,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -81,7 +108,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -90,7 +117,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
</pickle>
......
......@@ -1476,6 +1476,8 @@ class SlapTool(BaseTool):
if (newtimestamp > timestamp):
timestamp = newtimestamp
hosting_subscription = software_instance.getSpecialiseValue()
ip_list = []
full_ip_list = []
for internet_protocol_address in computer_partition.contentValues(portal_type='Internet Protocol Address'):
......@@ -1519,6 +1521,8 @@ class SlapTool(BaseTool):
timestamp = newtimestamp
return {
'instance_guid': software_instance.getReference().decode("UTF-8"),
'instance_title': software_instance.getTitle().decode("UTF-8"),
'root_instance_title': hosting_subscription.getTitle().decode("UTF-8"),
'xml': software_instance.getTextContent(),
'connection_xml': software_instance.getConnectionXml(),
'filter_xml': software_instance.getSlaXml(),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment