Commit 60154d71 authored by Gabriel Monnerat's avatar Gabriel Monnerat

fix bug to select the computer partition correctly to install a Slave Instance

parent 688547f6
...@@ -50,7 +50,22 @@ ...@@ -50,7 +50,22 @@
</item> </item>
<item> <item>
<key> <string>_body</string> </key> <key> <string>_body</string> </key>
<value> <string>order = state_change[\'object\']\n <value> <string>def checkSoftwareInstanceIsInstalledOnComputerPartition(software_release,\n
computer_partition):\n
from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery\n
portal = context.getPortalObject()\n
query = ComplexQuery(Query(aggregate_relative_url=software_release.getRelativeUrl()),\n
Query(aggregate_relative_url=computer_partition.getRelativeUrl()),\n
operator="AND",\n
)\n
sale_packing_list_line = portal.portal_catalog.getResultValue(\n
portal_type=\'Sale Packing List Line\', aggregate_relative_url=query)\n
if sale_packing_list_line is not None:\n
return True\n
return False\n
\n
\n
order = state_change[\'object\']\n
portal = order.getPortalObject()\n portal = order.getPortalObject()\n
\n \n
setup_service_relative_url = order.portal_preferences.getPreferredInstanceSetupResource()\n setup_service_relative_url = order.portal_preferences.getPreferredInstanceSetupResource()\n
...@@ -86,10 +101,15 @@ for order_line in order.getMovementList():\n ...@@ -86,10 +101,15 @@ for order_line in order.getMovementList():\n
limit=(random.randint(0, offset), 50), **query_kw):\n limit=(random.randint(0, offset), 50), **query_kw):\n
computer_partition_candidate = computer_partition_candidate.getObject() \n computer_partition_candidate = computer_partition_candidate.getObject() \n
# Check if the computer partition can be marked as busy (done by an interaction workflow on sale packing list level)\n # Check if the computer partition can be marked as busy (done by an interaction workflow on sale packing list level)\n
if isTransitionPossible(computer_partition_candidate, \'mark_busy\') or software_instance.getPortalType() == "Slave Instance":\n software_instance_portal_type = software_instance.getPortalType()\n
if isTransitionPossible(computer_partition_candidate, \'mark_busy\') and \\\n
software_instance_portal_type == "Software Instance":\n
computer_partition = computer_partition_candidate\n
break\n
elif software_instance_portal_type == "Slave Instance" and \\\n
checkSoftwareInstanceIsInstalledOnComputerPartition(software_release, computer_partition_candidate):\n
computer_partition = computer_partition_candidate\n computer_partition = computer_partition_candidate\n
break \n break \n
\n
if computer_partition is None:\n if computer_partition is None:\n
raise ValueError(\'It was not possible to find free Computer Partition\')\n raise ValueError(\'It was not possible to find free Computer Partition\')\n
\n \n
......
90 91
\ No newline at end of file \ No newline at end of file
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