Commit 30302390 authored by Romain Courteaud's avatar Romain Courteaud

slapos_cloud:

* check Allocation Supply to filter where allocation can be done
* improve Allocation Supply form
* add Instance Node portal type
parent 3274edbf
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>action_type/object_view</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>view</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Action Information</string> </value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>1.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>View</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/InstanceNode_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
<portal_type id="Compute Node"> <portal_type id="Compute Node">
<item>Certificate Login</item> <item>Certificate Login</item>
</portal_type> </portal_type>
<portal_type id="Compute Node Module">
<item>Instance Node</item>
</portal_type>
<portal_type id="Hosting Subscription Module"> <portal_type id="Hosting Subscription Module">
<item>Hosting Subscription</item> <item>Hosting Subscription</item>
</portal_type> </portal_type>
......
...@@ -17,6 +17,9 @@ ...@@ -17,6 +17,9 @@
<portal_type id="Hosting Subscription Module"> <portal_type id="Hosting Subscription Module">
<item>business_application</item> <item>business_application</item>
</portal_type> </portal_type>
<portal_type id="Instance Node">
<item>specialise</item>
</portal_type>
<portal_type id="Instance Tree"> <portal_type id="Instance Tree">
<item>destination_section</item> <item>destination_section</item>
</portal_type> </portal_type>
......
...@@ -49,6 +49,11 @@ ...@@ -49,6 +49,11 @@
<portal_type id="Hosting Subscription"> <portal_type id="Hosting Subscription">
<item>HostingSubscriptionUpgradeConstraint</item> <item>HostingSubscriptionUpgradeConstraint</item>
</portal_type> </portal_type>
<portal_type id="Instance Node">
<item>SlapOSReferenceConstraint</item>
<item>SlapOSVirtualMasterConstraint</item>
<item>SlaposComputeNodeConstraint</item>
</portal_type>
<portal_type id="Instance Tree"> <portal_type id="Instance Tree">
<item>HostingSubscriptionUpgradeConstraint</item> <item>HostingSubscriptionUpgradeConstraint</item>
<item>InstanceTree</item> <item>InstanceTree</item>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Base Type" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>content_icon</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>factory</string> </key>
<value> <string>addXMLObject</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>item</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Instance Node</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value> <string>InstanceNode_init</string> </value>
</item>
<item>
<key> <string>permission</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Base Type</string> </value>
</item>
<item>
<key> <string>type_class</string> </key>
<value> <string>Item</string> </value>
</item>
<item>
<key> <string>type_interface</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>type_mixin</string> </key>
<value>
<tuple/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -27,6 +27,10 @@ ...@@ -27,6 +27,10 @@
<type>Hosting Subscription</type> <type>Hosting Subscription</type>
<workflow>edit_workflow, hosting_subscription_workflow</workflow> <workflow>edit_workflow, hosting_subscription_workflow</workflow>
</chain> </chain>
<chain>
<type>Instance Node</type>
<workflow>edit_workflow, validation_workflow</workflow>
</chain>
<chain> <chain>
<type>Instance Tree</type> <type>Instance Tree</type>
<workflow>edit_workflow, instance_slap_interface_workflow, instance_tree_workflow</workflow> <workflow>edit_workflow, instance_slap_interface_workflow, instance_tree_workflow</workflow>
......
...@@ -235,7 +235,7 @@ ...@@ -235,7 +235,7 @@
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
<value> <string>Base Price Variation Axes</string> </value> <value> <string>Base Variation Axes</string> </value>
</item> </item>
<item> <item>
<key> <string>unicode</string> </key> <key> <string>unicode</string> </key>
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<key> <string>delegated_list</string> </key> <key> <string>delegated_list</string> </key>
<value> <value>
<list> <list>
<string>portal_type</string> <string>columns</string>
<string>selection_name</string> <string>selection_name</string>
<string>title</string> <string>title</string>
</list> </list>
...@@ -65,6 +65,21 @@ ...@@ -65,6 +65,21 @@
<key> <string>values</string> </key> <key> <string>values</string> </key>
<value> <value>
<dictionary> <dictionary>
<item>
<key> <string>columns</string> </key>
<value>
<list>
<tuple>
<string>title</string>
<string>Title</string>
</tuple>
<tuple>
<string>translated_validation_state_title</string>
<string>State</string>
</tuple>
</list>
</value>
</item>
<item> <item>
<key> <string>field_id</string> </key> <key> <string>field_id</string> </key>
<value> <string>my_list_mode_listbox</string> </value> <value> <string>my_list_mode_listbox</string> </value>
......
...@@ -88,6 +88,8 @@ ...@@ -88,6 +88,8 @@
<key> <string>right</string> </key> <key> <string>right</string> </key>
<value> <value>
<list> <list>
<string>my_aggregate_title_list</string>
<string>my_destination_project_title</string>
<string>my_translated_validation_state_title</string> <string>my_translated_validation_state_title</string>
</list> </list>
</value> </value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>portal_type</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_aggregate_title_list</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_multi_relation_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<tuple>
<string>Compute Node</string>
<string>Compute Node</string>
</tuple>
<tuple>
<string>Instance Node</string>
<string>Instance Node</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Compute Node</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>portal_type</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_destination_project_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_relation_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<tuple>
<string>Project</string>
<string>Project</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Current Project</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
portal = context.getPortalObject()
reference = "SHARED-%s" % portal.portal_ids.generateNewId(
id_group='slap_instance_node_reference',
id_generator='uid', default=1)
context.edit(reference=reference)
<?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>_params</string> </key>
<value> <string>**kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>InstanceNode_init</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<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/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>Base_edit</string> </value>
</item>
<item>
<key> <string>action_title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
<string>center</string>
<string>bottom</string>
<string>hidden</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list>
<string>my_description</string>
</list>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>my_title</string>
<string>my_reference</string>
<string>my_specialise_title</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list>
<string>my_translated_validation_state_title</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>InstanceNode_view</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>InstanceNode_view</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_view</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Instance Node</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_description</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_description</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>editable</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_reference</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_reference</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>allow_creation</string>
<string>portal_type</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_specialise_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>allow_creation</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_relation_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value>
<list>
<tuple>
<string>Software Instance</string>
<string>Software Instance</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Software Instance</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_title</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_translated_validation_state_title</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_translated_workflow_state_title</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -6,22 +6,90 @@ portal = person.getPortalObject() ...@@ -6,22 +6,90 @@ portal = person.getPortalObject()
assert project_uid assert project_uid
compute_partition = None compute_partition = None
filter_kw_copy = filter_kw.copy()
query_kw = { query_kw = {
'portal_type': 'Compute Partition',
'parent__follow_up__uid': project_uid, 'parent__follow_up__uid': project_uid,
'allocation_scope__uid': portal.restrictedTraverse("portal_categories/allocation_scope/open").getUid(), 'allocation_scope__uid': portal.restrictedTraverse("portal_categories/allocation_scope/open").getUid(),
'software_release_url': software_release_url,
'portal_type': 'Compute Partition',
} }
if software_instance_portal_type == "Slave Instance": if software_instance_portal_type == "Slave Instance":
query_kw['free_for_request'] = 0 query_kw['free_for_request'] = 0
query_kw['software_type'] = software_type compute_node_portal_type = 'Instance Node'
elif software_instance_portal_type == "Software Instance": elif software_instance_portal_type == "Software Instance":
query_kw['free_for_request'] = 1 query_kw['free_for_request'] = 1
query_kw['software_release_url'] = software_release_url
compute_node_portal_type = 'Compute Node'
else: else:
raise NotImplementedError("Unknown portal type %s"% raise NotImplementedError("Unknown portal type %s"%
software_instance_portal_type) software_instance_portal_type)
### Step 1, check where the allocation is allowed
from Products.CMFCore.utils import getToolByName
domain_tool = getToolByName(portal, 'portal_domains')
# XXX prototype for now
tmp_instance = portal.portal_trash.newContent(
portal_type='Instance Tree',
temp_object=1,
url_string=software_release_url,
source_reference=software_type,
follow_up_uid=project_uid
)
software_product, release_variation, type_variation = tmp_instance.InstanceTree_getSoftwareProduct()
if software_product is None:
raise ValueError('No Software Product matching')
tmp_context = portal.portal_trash.newContent(
portal_type='Movement',
temp_object=1,
resource_value=software_product,
software_type_value=type_variation,
software_release_value=release_variation,
)
allocation_cell_list = [x.getObject() for x in \
domain_tool.searchPredicateList(
tmp_context, portal_type=['Allocation Supply Cell'],
validation_state='validated',
destination_project__uid=project_uid,
tested_base_category_list=['resource', 'software_type', 'software_release']) if x.isAllocable()]
#context.log('allocation_cell_list %s' % str(allocation_cell_list))
if not allocation_cell_list:
raise ValueError('No Allocation Supply allowing this operation')
# Get the list of allowed Compute Node, Instance Node
compute_node_list_list = [x.getParentValue().getParentValue().getAggregateValueList(portal_type=compute_node_portal_type) for x in allocation_cell_list]
parent_uid_list = []
partition_uid_list = []
for compute_node_list in compute_node_list_list:
for compute_node in compute_node_list:
if compute_node.getPortalType() == 'Compute Node':
parent_uid_list.append(compute_node.getUid())
elif compute_node.getPortalType() == 'Instance Node':
shared_instance = compute_node.getSpecialiseValue(portal_type='Software Instance')
if shared_instance is not None:
# No need to search for original software type/url
#query_kw['software_release_url'] = software_release_url
#query_kw['software_type'] = software_type
shared_partition = shared_instance.getAggregateValue(portal_type='Compute Partition')
if shared_partition is not None:
partition_uid_list.append(shared_partition.getUid())
else:
raise NotImplementedError('Unsupported Node type: %s' % compute_node.getPortalType())
if len(parent_uid_list) == 0:
# Ensure nothing will be found
parent_uid_list.append(-1)
if len(partition_uid_list) == 0:
# Ensure nothing will be found
partition_uid_list.append(-1)
if software_instance_portal_type == "Slave Instance":
query_kw['uid'] = partition_uid_list
elif software_instance_portal_type == "Software Instance":
query_kw['parent_uid'] = parent_uid_list
# Explicit location # Explicit location
if "computer_guid" in filter_kw: if "computer_guid" in filter_kw:
query_kw["parent_reference"] = SimpleQuery(parent_reference=filter_kw.pop("computer_guid")) query_kw["parent_reference"] = SimpleQuery(parent_reference=filter_kw.pop("computer_guid"))
...@@ -111,7 +179,6 @@ if offset >= SQL_WINDOW_SIZE: ...@@ -111,7 +179,6 @@ if offset >= SQL_WINDOW_SIZE:
else: else:
limit = (0, SQL_WINDOW_SIZE) limit = (0, SQL_WINDOW_SIZE)
for compute_partition_candidate in portal.portal_catalog( for compute_partition_candidate in portal.portal_catalog(
limit=limit, **query_kw): limit=limit, **query_kw):
compute_partition_candidate = compute_partition_candidate.getObject() compute_partition_candidate = compute_partition_candidate.getObject()
......
...@@ -11,6 +11,7 @@ Computer Network | view_compute_node_list ...@@ -11,6 +11,7 @@ Computer Network | view_compute_node_list
Computer Network | view_software_release Computer Network | view_software_release
Hosting Subscription Module | view Hosting Subscription Module | view
Hosting Subscription | view Hosting Subscription | view
Instance Node | view
Instance Tree Module | view Instance Tree Module | view
Instance Tree | create_hs_upgrade Instance Tree | create_hs_upgrade
Instance Tree | view Instance Tree | view
......
Allocation Supply Line | Allocation Supply Cell Allocation Supply Line | Allocation Supply Cell
Allocation Supply Module | Allocation Supply Allocation Supply Module | Allocation Supply
Allocation Supply | Allocation Supply Line Allocation Supply | Allocation Supply Line
Compute Node Module | Instance Node
Compute Node | Certificate Login Compute Node | Certificate Login
Hosting Subscription Module | Hosting Subscription Hosting Subscription Module | Hosting Subscription
Instance Tree Module | Instance Tree Instance Tree Module | Instance Tree
......
...@@ -4,6 +4,7 @@ Compute Node | destination_section ...@@ -4,6 +4,7 @@ Compute Node | destination_section
Computer Model | source_administration Computer Model | source_administration
Computer Network | source_administration Computer Network | source_administration
Hosting Subscription Module | business_application Hosting Subscription Module | business_application
Instance Node | specialise
Instance Tree Module | business_application Instance Tree Module | business_application
Instance Tree | destination_section Instance Tree | destination_section
Slave Instance | aggregate Slave Instance | aggregate
......
...@@ -4,6 +4,7 @@ Allocation Supply Line ...@@ -4,6 +4,7 @@ Allocation Supply Line
Allocation Supply Module Allocation Supply Module
Hosting Subscription Hosting Subscription
Hosting Subscription Module Hosting Subscription Module
Instance Node
Instance Tree Instance Tree
Instance Tree Module Instance Tree Module
Slave Instance Slave Instance
......
...@@ -22,6 +22,9 @@ Computer | ComputerUpgradeConstraint ...@@ -22,6 +22,9 @@ Computer | ComputerUpgradeConstraint
Computer | SlapOSVirtualMasterConstraint Computer | SlapOSVirtualMasterConstraint
Email | SlaposEmailConstraint Email | SlaposEmailConstraint
Hosting Subscription | HostingSubscriptionUpgradeConstraint Hosting Subscription | HostingSubscriptionUpgradeConstraint
Instance Node | SlapOSReferenceConstraint
Instance Node | SlapOSVirtualMasterConstraint
Instance Node | SlaposComputeNodeConstraint
Instance Tree | HostingSubscriptionUpgradeConstraint Instance Tree | HostingSubscriptionUpgradeConstraint
Instance Tree | InstanceTree Instance Tree | InstanceTree
Instance Tree | SlapOSVirtualMasterConstraint Instance Tree | SlapOSVirtualMasterConstraint
......
...@@ -10,6 +10,8 @@ Compute Partition | compute_partition_slap_interface_workflow ...@@ -10,6 +10,8 @@ Compute Partition | compute_partition_slap_interface_workflow
Computer Network | network_slap_interface_workflow Computer Network | network_slap_interface_workflow
Hosting Subscription | edit_workflow Hosting Subscription | edit_workflow
Hosting Subscription | hosting_subscription_workflow Hosting Subscription | hosting_subscription_workflow
Instance Node | edit_workflow
Instance Node | validation_workflow
Instance Tree | edit_workflow Instance Tree | edit_workflow
Instance Tree | instance_slap_interface_workflow Instance Tree | instance_slap_interface_workflow
Instance Tree | instance_tree_workflow Instance Tree | instance_tree_workflow
......
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