Commit 07283819 authored by Alain Takoudjou's avatar Alain Takoudjou Committed by Rafael Monnerat

Computer: Get connection parameters for aggregated hosting subscriptions

parent 5f9c9390
<?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>computer = context\n
\n
parameter_list = []\n
item_list = computer.getAggregateRelatedValueList(\n
portal_type=\'Hosting Subscription\'\n
)\n
hosting_subscription_list = sorted(item_list,\n
key=lambda x: x.getCreationDate())\n
\n
for hosting_subscription in hosting_subscription_list:\n
if hosting_subscription.getValidationState() != \'validated\' and \\\n
hosting_subscription.getSlapState() == "destroy_requested":\n
continue\n
\n
# Get the main instance\n
instance = hosting_subscription.getPredecessorValue(\n
portal_type="Software Instance")\n
if not instance or instance.getSlapState() == "destroy_requested" or \\\n
instance.getValidationState() != \'validated\':\n
continue\n
\n
parameter_dict = instance.getConnectionXmlAsDict()\n
if not parameter_dict:\n
parameter_dict = {}\n
parameter_list.append(parameter_dict)\n
\n
return parameter_list\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Computer_getConnectionParameterList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
325 326
\ No newline at end of file \ No newline at end of file
...@@ -424,7 +424,12 @@ class SlapTool(BaseTool): ...@@ -424,7 +424,12 @@ class SlapTool(BaseTool):
[software_release.getUrlString() [software_release.getUrlString()
for software_release in software_release_list for software_release in software_release_list
if software_release.getValidationState() == 'published']) if software_release.getValidationState() == 'published'])
security.declareProtected(Permissions.AccessContentsInformation,
'getComputerConnectionParameterList')
def getComputerConnectionParameterList(self, computer_id):
parameter_list = self._getComputerConnectionParameterList(computer_id)
return xml_marshaller.xml_marshaller.dumps(parameter_list)
#################################################### ####################################################
# Public POST methods # Public POST methods
...@@ -1386,6 +1391,36 @@ class SlapTool(BaseTool): ...@@ -1386,6 +1391,36 @@ class SlapTool(BaseTool):
computer_id, computer_partition_id) computer_id, computer_partition_id)
else: else:
return software_instance return software_instance
def _getComputerConnectionParameterList(self, computer_id):
computer = self._getComputerDocument(computer_id)
parameter_list = []
item_list = computer.getAggregateRelatedValueList(
portal_type='Hosting Subscription'
)
hosting_subscription_list = sorted(item_list,
key=lambda x: x.getCreationDate())
for hosting_subscription in hosting_subscription_list:
if hosting_subscription.getValidationState() != 'validated' and \
hosting_subscription.getSlapState() == "destroy_requested":
continue
# Get the main instance
instance = hosting_subscription.getPredecessorValue(
portal_type="Software Instance")
if not instance or instance.getSlapState() == "destroy_requested" or \
instance.getValidationState() != 'validated':
continue
parameter_dict = instance.getConnectionXmlAsDict()
if not parameter_dict:
parameter_dict = {}
parameter_list.append(parameter_dict)
return xml_marshaller.xml_marshaller.dumps(parameter_list)
@UnrestrictedMethod @UnrestrictedMethod
def _getSoftwareInstanceAsParameterDict(self, software_instance): def _getSoftwareInstanceAsParameterDict(self, software_instance):
......
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