[Erp5-report] r42750 luke - in /erp5/trunk/bt5/vifib_slap: SkinTemplateItem/portal_skins/vi...
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Jan 28 16:40:42 CET 2011
Author: luke
Date: Fri Jan 28 16:40:42 2011
New Revision: 42750
URL: http://svn.erp5.org?rev=42750&view=rev
Log:
- reuse same logic to update information about Computer address too
- be cool: if no address is defined yet use nice id to expose some address as default one (meaningless, on CP, but possibly useful in case of computer)
Modified:
erp5/trunk/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/Computer_updateFromDict.xml
erp5/trunk/bt5/vifib_slap/bt/revision
Modified: erp5/trunk/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/Computer_updateFromDict.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/Computer_updateFromDict.xml?rev=42750&r1=42749&r2=42750&view=diff
==============================================================================
--- erp5/trunk/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/Computer_updateFromDict.xml [utf8] (original)
+++ erp5/trunk/bt5/vifib_slap/SkinTemplateItem/portal_skins/vifib_slap/Computer_updateFromDict.xml [utf8] Fri Jan 28 16:40:42 2011
@@ -50,29 +50,12 @@
</item>
<item>
<key> <string>_body</string> </key>
- <value> <string># Getting existing partitions\n
-existing_partition_dict = {}\n
-for c in context.contentValues():\n
- existing_partition_dict[c.getReference()] = c\n
-\n
-# update computer data\n
-context.edit(\n
- default_network_address_ip_address = computer_dict[\'address\'],\n
- default_network_address_netmask = computer_dict[\'netmask\'],\n
- quantity = len(computer_dict[\'partition_list\']),\n
-)\n
-\n
-for send_partition in computer_dict[\'partition_list\']:\n
- partition = existing_partition_dict.get(send_partition[\'reference\'], None)\n
- if partition is None:\n
- partition = context.newContent(portal_type=\'Computer Partition\')\n
- partition.validate()\n
- partition.markFree()\n
- partition.edit(reference=send_partition[\'reference\'])\n
- network_interface = send_partition[\'tap\'][\'name\']\n
+ <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 = send_partition[\'address_list\'][:]\n
- for address in partition.contentValues(portal_type=\'Internet Protocol Address\'):\n
+ to_add_ip_dict_list = address_list[:]\n
+ for address in document.contentValues(portal_type=\'Internet Protocol Address\'):\n
current_dict = {\n
\'addr\': address.getIpAddress(),\n
\'netmask\': address.getNetmask()\n
@@ -87,14 +70,39 @@ for send_partition in computer_dict[\'pa
id = to_delete_ip_id_list.pop()\n
address_document = getattr(partition, id)\n
else:\n
- address_document = partition.newContent(portal_type=\'Internet Protocol Address\')\n
+ kw = {\'portal_type\': \'Internet Protocol Address\'}\n
+ if 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
- network_interface=network_interface,\n
ip_address=address[\'addr\'],\n
netmask=address[\'netmask\'],\n
+ **additional_dict\n
)\n
if to_delete_ip_id_list:\n
- partition.deleteContent(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():\n
+ existing_partition_dict[c.getReference()] = c\n
+\n
+# update computer data\n
+context.edit(\n
+ quantity = len(computer_dict[\'partition_list\']),\n
+)\n
+\n
+compareAndUpdateAddressList(context, [{\'addr\': computer_dict[\'address\'], \'netmask\': computer_dict[\'netmask\']}])\n
+for send_partition in computer_dict[\'partition_list\']:\n
+ partition = existing_partition_dict.get(send_partition[\'reference\'], None)\n
+ if partition is None:\n
+ partition = context.newContent(portal_type=\'Computer Partition\')\n
+ partition.validate()\n
+ partition.markFree()\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
</string> </value>
</item>
<item>
@@ -138,25 +146,19 @@ for send_partition in computer_dict[\'pa
<value>
<tuple>
<string>computer_dict</string>
+ <string>None</string>
+ <string>partition</string>
+ <string>compareAndUpdateAddressList</string>
<string>existing_partition_dict</string>
<string>_getiter_</string>
<string>_getattr_</string>
<string>context</string>
<string>c</string>
<string>_write_</string>
- <string>_getitem_</string>
<string>len</string>
+ <string>_getitem_</string>
<string>send_partition</string>
- <string>None</string>
- <string>partition</string>
<string>network_interface</string>
- <string>to_delete_ip_id_list</string>
- <string>to_add_ip_dict_list</string>
- <string>address</string>
- <string>current_dict</string>
- <string>id</string>
- <string>getattr</string>
- <string>address_document</string>
</tuple>
</value>
</item>
Modified: erp5/trunk/bt5/vifib_slap/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/vifib_slap/bt/revision?rev=42750&r1=42749&r2=42750&view=diff
==============================================================================
--- erp5/trunk/bt5/vifib_slap/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/vifib_slap/bt/revision [utf8] Fri Jan 28 16:40:42 2011
@@ -1 +1 @@
-333
\ No newline at end of file
+334
\ No newline at end of file
More information about the Erp5-report
mailing list