Commit fce6d6c0 authored by Benjamin Blanc's avatar Benjamin Blanc Committed by Cédric de Saint Martin

erp5_test_result: scalability (1)

Conflicts:
	bt5/erp5_test_result/bt/revision
	bt5/erp5_test_result/bt/template_document_id_list
	bt5/erp5_test_result/bt/template_extension_id_list
(cherry picked from commit 63c1fc096663f6c96ab61e5acebe2dcbe801dfa5)

Conflicts:

	bt5/erp5_test_result/TestTemplateItem/portal_components/test.erp5.testTaskDistribution.py
	bt5/erp5_test_result/bt/revision
parent 96758b6b
<?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></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}/ERP5ScalabilityDistribution_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>generatedConfigurationView</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>2.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Generated Configuration</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}/ScalabilityTestSuite_viewGeneratedConfiguration</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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_action</string>
</tuple>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_action</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>vcs_repository</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>Add Documents, Images, and Files</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>VCS-Repository</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}</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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}/ScalabilityTestSuite_view</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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_graph</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>3.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Graph</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}/TestResult_viewGraph</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
##############################################################################
# Copyright (c) 2013 Nexedi SA and Contributors. All Rights Reserved.
# Sebastien Robin <seb@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly advised to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
from Products.ERP5.Document.ERP5ProjectUnitTestDistributor import ERP5ProjectUnitTestDistributor
import string
import erp5.util.taskdistribution
from Products.ERP5Type.Log import log
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions
import json
import random
from Products.ERP5.Tool.TaskDistributionTool import TaskDistributionTool
class ERP5ScalabilityDistributor(ERP5ProjectUnitTestDistributor):
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
security.declareProtected(Permissions.ManagePortal, "optimizeConfiguration")
def optimizeConfiguration(self):
"""
Do master testnode selection and associate testsuites.
"""
# Get modules
portal = self.getPortalObject()
test_node_module = self._getTestNodeModule()
test_suite_module = self._getTestSuiteModule()
# Get lists of test node wich belong to the current distributor
all_test_node_list = test_node_module.searchFolder(
portal_type="Test Node", specialise_uid=self.getUid())
test_node_list = [ x.getObject() for x in all_test_node_list if x.getValidationState() == 'validated' ]
invalid_test_node_list = [ x.getObject() for x in all_test_node_list if x.getValidationState() != 'validated' ]
# Set master property to False for all invalid testnode
for node in invalid_test_node_list:
node.setMaster(False)
# Get all valid slave testnodes
slave_test_node_list = [ x.getObject() for x in test_node_list if x.getMaster()!=True ]
master_test_node_list = [ x.getObject() for x in test_node_list if x.getMaster()==True ]
# Set to 'False' slaves
for node in slave_test_node_list:
node.setMaster(False)
# if there is validated testnodes
if len(test_node_list) > 0:
# Only one testnode must be the master
# if there is no or more than 1 master
if len(master_test_node_list) != 1:
# No master: elect the first testnode as master
if len(master_test_node_list) == 0:
test_node_list[0].setMaster(True)
else:
# Too many master: keep as master only the the first of list
for node in master_test_node_list[1:]:
node.setMaster(False)
# Update testnode lists
slave_test_node_list = [ x.getObject() for x in test_node_list if x.getMaster()!=True ]
master_test_node_list = [ x.getObject() for x in test_node_list if x.getMaster()==True ]
# Get test suites and aggregate them to all valid testnode
test_suite_list = [ x.getRelativeUrl() for x in test_suite_module.searchFolder(
portal_type="Scalability Test Suite",
validation_state="validated", specialise_uid=self.getUid())]
for test_node in test_node_list:
test_node.setAggregateList(test_suite_list)
security.declarePublic("getInvolvedNodeList")
def getInvolvedNodeList(self):
"""
getInvolvedNodeList doc
"""
test_node_module = self._getTestNodeModule()
distributor_title = self.getTitle()
involved_nodes = []
involved_nodes = involved_nodes + [ x.getObject() for x in test_node_module.searchFolder(validation_state='validated') if ( x.getSpecialiseTitle() == distributor_title ) ]
return involved_nodes
security.declarePublic("getTestNode")
def getTestNode(self,title,batch_mode=0):
"""
getTestNode doc
"""
test_node_module = self._getTestNodeModule()
portal = self.getPortalObject()
tag = "%s_%s" % (self.getRelativeUrl(), title)
if portal.portal_activities.countMessageWithTag(tag) == 0:
test_node_list = test_node_module.searchFolder(portal_type="Test Node",title=title)
assert len(test_node_list) in (0, 1), "Unable to find testnode : %s" % title
test_node = None
if len(test_node_list) == 1:
test_node = test_node_list[0].getObject()
if test_node.getValidationState() != 'validated':
try:
test_node.validate()
except e:
LOG('Test Node Validate',ERROR,'%s' %e)
return test_node
return None
security.declarePublic("isMasterTestnode")
def isMasterTestnode(self,title, batch_mode=0):
"""
isMasterTestnode : return True if the node given in parameter exists and is a validated master
"""
test_node_module = self._getTestNodeModule()
test_node_master = [ node for node in test_node_module.searchFolder(portal_type="Test Node", title=title,
specialise=self.getRelativeUrl(),
validation_state="validated") if node.getMaster() == 1 ]
if len(test_node_master) == 1:
return True
else:
return False
security.declarePublic("getTestType")
def getTestType(self, batch_mode=0):
"""
getTestType : return a string defining the type of tests
"""
return 'ScalabilityTest'
security.declarePublic("startTestSuite")
def startTestSuite(self,title, computer_guid='unknown', batch_mode=0):
"""
startTestSuite : subscribe node + return testsuite list to the master
"""
config_list = []
super(ERP5ScalabilityDistributor,
self).subscribeNode(title=title, computer_guid=computer_guid, batch_mode=batch_mode)
test_node = self.getTestNode(title,batch_mode)
test_suite_module = self._getTestSuiteModule()
test_node_module = self._getTestNodeModule()
portal = self.getPortalObject()
# If the testnode wich request testsuites is not the master
# he does not have to receive any testsuites
master_test_node_title_list = [x.getTitle() for x in test_node_module.searchFolder(
validatation_state = 'validated') if (x.getMaster() == True) ]
if len(master_test_node_title_list) == 1 and title == master_test_node_title_list[0]:
return super(ERP5ScalabilityDistributor,
self).startTestSuite(title=title,
batch_mode=batch_mode,
computer_guid=computer_guid)
else:
if batch_mode:
return []
return json.dumps([])
security.declarePublic("generateConfiguration")
def generateConfiguration(self, test_suite_title, batch_mode=0):
"""
generateConfiguration : this is just a proxy to an external method
"""
generated_configuration = self.ScalabilityTestSuiteUtils_generateConfigurationList(self, test_suite_title)
if batch_mode:
return generated_configuration
return json.dumps(generated_configuration)
def getRunningTestCase(self, test_result_path, batch_mode=0):
"""
getRunningTestCase : return informations about the running test case,
if no running test_case, return None
"""
portal = self.getPortalObject()
test_result = portal.restrictedTraverse(test_result_path)
test_result_lines = test_result.objectValues(portal_type="Test Result Line",
sort_on='int_index')
count = 0
for test_result_line in test_result_lines:
count += 1
state = test_result_line.getSimulationState()
if state == "started":
relative_path = test_result_line.getRelativeUrl()
title = test_result_line.getTitle()
break;
else:
return None
next_test = {"relative_path": relative_path,
"title": title, "count" : count,
}
if batch_mode:
return next_test
return json.dumps(next_test)
security.declarePublic("isTestCaseAlive")
def isTestCaseAlive(self, test_result_line_path, batch_mode=0):
"""
Is a test result line alive or not.
"""
portal = self.getPortalObject()
test_result_line = portal.restrictedTraverse(test_result_line_path)
return test_result_line.getSimulationState() == "started"
\ No newline at end of file
##############################################################################
#
# Copyright (c) 2002-2013 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company return "OK"
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
##############################################################################
import jinja2
import json
def getGeneratedConfigurationList(self, *args, **kw):
document_list = []
template = jinja2.Template(self.getClusterConfiguration())
max = len(self.getGraphCoordinate())
max_comp = 100
#max = self.getNumberConfiguration()
comp_list_view = [ "COMP-%i" %(x) for x in range(0,max_comp) ]
for count in xrange(1, max+1):
template_vars = { "count" : count, "comp" : comp_list_view }
output_text = template.render(template_vars)
description = json.dumps(json.loads(output_text), sort_keys=True, indent=4, separators=(',', ': '))
# Create a temp object
document_list.append(self.newContent(
temp_object=1,
title="%i" % count,
description="%s" %(description)))
return document_list
def generateConfigurationList(self, test_suite_title):
"""
generateConfigurationList : generate a dict wich contains a list
of cluster configurations for testnodes, using a test_suite and
available testnodes.
If it is not possible to generate a configuration, the 'launchable'
entry is False, otherwise it is True.
"""
def _unvalidateConfig(my_dict):
my_dict['launchable'] = False
if 'launcher_nodes_computer_guid' in my_dict:
my_dict['launcher_nodes_computer_guid'] = {}
if 'involved_nodes_computer_guid' in my_dict:
my_dict['involved_nodes_computer_guid'] = {}
if 'configuration_list' in my_dict:
my_dict['configuration_list'] = []
def _isInMyDictOrListRec(my_container, my_value):
def _isInMyDictOrList(current_container):
if current_container == my_value :
return True
elif type(current_container) == type({}):
for k,v in current_container.items():
if _isInMyDictOrList(current_container[k]) :
return True
elif type(current_container) == type([]):
for sub_container in current_container:
if _isInMyDictOrList(sub_container) :
return True
# Not found at this level and below
return False
return _isInMyDictOrList(my_container)
portal = self.getPortalObject()
test_suite_module = portal.test_suite_module
test_node_module = portal.test_node_module
portal_task_distribution = portal.portal_task_distribution
# Get test_suite informations from his title given in parameter
test_suite = test_suite_module.searchFolder(title=test_suite_title)[0]
lll = portal_task_distribution.searchFolder(title=test_suite.getSpecialiseTitle())
distributor_uid = lll[0].getUid()
cluster_configuration = test_suite.getClusterConfiguration()
cluster_constraint = test_suite.getClusterConstraint()
#number_configuration = test_suite.getNumberConfiguration()
number_configuration = len(test_suite.getGraphCoordinate())
randomized_path = test_suite.getRandomizedPath()
# Get testnodes available for this distributor
unvalid_node = "_my_unvalidated_dummy_node"
# Validated nodes wich are available to run test
available_nodes = test_node_module.searchFolder(
portal_type="Test Node", validation_state="validated",
specialise_uid=distributor_uid)
# Remaining node are nodes that can be insert in the template (so, excluded launcher nodes)
remaining_nodes = list(available_nodes)
launcher_nodes = []
launcher_nodes.append( remaining_nodes.pop() )
# Make list with only the computer_guid property of each node (to be used directly by template)
remaining_nodes_computer_guid = [unvalid_node] + [ node.getReference() for node in remaining_nodes ] + [unvalid_node]
launcher_nodes_computer_guid = [ node.getReference() for node in launcher_nodes ]
configuration_list_json = []
return_dict = {}
return_dict['error_message'] = 'No error.'
return_dict['randomized_path'] = randomized_path
# Will be modified after
return_dict['launchable'] = False
# source of possible error :
# bad json configuration
try:
template = jinja2.Template(cluster_configuration)
for count in xrange(1, number_configuration+1):
template_vars = { "count" : count, "comp" : remaining_nodes_computer_guid }
configuration_list_json.append( json.loads( template.render( template_vars ) ) )
return_dict['launchable'] = True
return_dict['configuration_list'] = configuration_list_json
return_dict['launcher_nodes_computer_guid'] = launcher_nodes_computer_guid
except:
return_dict['error_message'] = 'Bad json cluster_configuration ?'
_unvalidateConfig(return_dict)
# If the number of available nodes is lower than
# the number of nodes required by the template
if _isInMyDictOrListRec(return_dict, unvalid_node):
_unvalidateConfig(return_dict)
return_dict['error_message'] = 'The number of testnodes available for running\
the current test (%s) is insufficient.' %(test_suite_title)
# Get the list of all nodes wich will are involved in the test
involved_nodes_computer_guid = []
for node in available_nodes:
computer_guid = node.getReference()
if _isInMyDictOrListRec(return_dict, computer_guid):
involved_nodes_computer_guid.append(computer_guid)
return_dict['involved_nodes_computer_guid'] = involved_nodes_computer_guid
return return_dict
\ No newline at end of file
...@@ -2,9 +2,13 @@ ...@@ -2,9 +2,13 @@
<portal_type id="Benchmark Result"> <portal_type id="Benchmark Result">
<item>Benchmark Result Line</item> <item>Benchmark Result Line</item>
</portal_type> </portal_type>
<portal_type id="Scalability Test Suite">
<item>Test Suite Repository</item>
</portal_type>
<portal_type id="Task Distribution Tool"> <portal_type id="Task Distribution Tool">
<item>Cloud Performance Unit Test Distributor</item> <item>Cloud Performance Unit Test Distributor</item>
<item>ERP5 Project Unit Test Distributor</item> <item>ERP5 Project Unit Test Distributor</item>
<item>ERP5 Scalability Distributor</item>
</portal_type> </portal_type>
<portal_type id="Test Node Module"> <portal_type id="Test Node Module">
<item>Test Node</item> <item>Test Node</item>
...@@ -21,6 +25,7 @@ ...@@ -21,6 +25,7 @@
<item>Test Suite Repository</item> <item>Test Suite Repository</item>
</portal_type> </portal_type>
<portal_type id="Test Suite Module"> <portal_type id="Test Suite Module">
<item>Scalability Test Suite</item>
<item>Test Suite</item> <item>Test Suite</item>
</portal_type> </portal_type>
</allowed_content_type_list> </allowed_content_type_list>
\ No newline at end of file
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
<portal_type id="Benchmark Result"> <portal_type id="Benchmark Result">
<item>source_project</item> <item>source_project</item>
</portal_type> </portal_type>
<portal_type id="Scalability Test Suite">
<item>specialise</item>
</portal_type>
<portal_type id="Test Node"> <portal_type id="Test Node">
<item>aggregate</item> <item>aggregate</item>
<item>specialise</item> <item>specialise</item>
......
...@@ -7,8 +7,17 @@ ...@@ -7,8 +7,17 @@
<portal_type id="Benchmark Result Line"> <portal_type id="Benchmark Result Line">
<item>Task</item> <item>Task</item>
</portal_type> </portal_type>
<portal_type id="ERP5 Scalability Distributor">
<item>ScalabilityDistributor</item>
</portal_type>
<portal_type id="Scalability Test Suite">
<item>Arrow</item>
<item>ScalabilityTestSuite</item>
<item>TestSuite</item>
</portal_type>
<portal_type id="Test Node"> <portal_type id="Test Node">
<item>DublinCore</item> <item>DublinCore</item>
<item>TestNode</item>
</portal_type> </portal_type>
<portal_type id="Test Result"> <portal_type id="Test Result">
<item>Comment</item> <item>Comment</item>
......
<type_roles>
<role id='Assignor; Assignee; Associate; Auditor; Author; Owner'>
<property id='title'>Default</property>
<property id='description'>Configured by Ben.</property>
<multi_property id='category'>group/my_group</multi_property>
</role>
</type_roles>
\ No newline at end of file
<type_roles>
<role id='Assignor; Assignee; Associate; Auditor; Author'>
<property id='title'>Default</property>
<property id='description'>Configured by Ben</property>
<multi_property id='category'>group/my_group</multi_property>
</role>
</type_roles>
\ No newline at end of file
<type_roles>
<role id='Assignor; Assignee; Associate; Auditor; Author'>
<property id='title'>Default</property>
<property id='description'>Configured by Ben</property>
<multi_property id='category'>group/my_group</multi_property>
</role>
</type_roles>
\ No newline at end of file
<type_roles>
<role id='Assignor; Assignee; Associate; Auditor; Author'>
<property id='title'>Default</property>
<property id='description'>Configured by Ben.</property>
<multi_property id='category'>group/my_group</multi_property>
</role>
</type_roles>
\ No newline at end of file
<type_roles>
<role id='Assignor; Assignee; Associate; Auditor; Author'>
<property id='title'>Default</property>
<property id='description'>Configured by Ben.</property>
<multi_property id='category'>group/my_group</multi_property>
</role>
</type_roles>
\ No newline at end of file
<?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>id</string> </key>
<value> <string>ERP5 Scalability Distributor</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
<none/>
</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>ERP5ScalabilityDistributor</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>
<?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>acquire_local_roles</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>content_icon</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<tuple>
<string>embedded_document</string>
</tuple>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Scalability Test Suite</string> </value>
</item>
<item>
<key> <string>init_script</string> </key>
<value>
<none/>
</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>TextDocument</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>
...@@ -7,6 +7,10 @@ ...@@ -7,6 +7,10 @@
<type>Benchmark Result Line</type> <type>Benchmark Result Line</type>
<workflow>edit_workflow, test_result_workflow</workflow> <workflow>edit_workflow, test_result_workflow</workflow>
</chain> </chain>
<chain>
<type>Scalability Test Suite</type>
<workflow>edit_workflow, test_suite_workflow</workflow>
</chain>
<chain> <chain>
<type>Test Node</type> <type>Test Node</type>
<workflow>edit_workflow, test_node_workflow</workflow> <workflow>edit_workflow, test_node_workflow</workflow>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Property Sheet" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ScalabilityDistributor</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Sheet</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The certificate of the slapos account (may be found at ~/.slapos/certificate) used to subscribe SlapOSNode to SlapOS Master.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_account_certificate_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The key of the slapos account (may be found at ~/.slapos/key) used to subscribe SlapOSNode to SlapOS Master.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_account_key_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_hateoas_url_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>slapos_url_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Property Sheet" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ScalabilityTestSuite</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Sheet</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The configuration of the cluster.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>cluster_configuration_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
<item>
<key> <string>property_default</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The hardaware constrains used for the selection of cluster-nodes.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>cluster_constraint_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
<item>
<key> <string>property_default</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/object</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The list of abscissa coordinate of each test. The size of the list determinates the number of configuration to test.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>graph_coordinate_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>A random string wich defines a relative path to acces to the software.cfg file.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>randomized_path_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Property Sheet" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>TestNode</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Property Sheet</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/boolean</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Boolean derterminating if the testnode is the master or not.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>master_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
<item>
<key> <string>property_default</string> </key>
<value>
<none/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard Property" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>elementary_type/string</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>reference_property</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard Property</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5Form" module="Products.ERP5Form.Form"/>
</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>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/>
</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_description</string>
<string>my_slapos_account_key</string>
<string>my_slapos_account_certificate</string>
<string>my_slapos_url</string>
<string>my_slapos_hateoas_url</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list>
<string>my_id</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ERP5ScalabilityDistribution_view</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>TestCloud_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>Test Node Cloud</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="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_function</string> </key>
<value> <string>generateConfigurationList</string> </value>
</item>
<item>
<key> <string>_module</string> </key>
<value> <string>ScalabilityTestSuiteUtils</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ScalabilityTestSuiteUtils_generateConfigurationList</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ScalabilityTestSuiteUtils_generateConfigurationList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_function</string> </key>
<value> <string>getGeneratedConfigurationList</string> </value>
</item>
<item>
<key> <string>_module</string> </key>
<value> <string>ScalabilityTestSuiteUtils</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ScalabilityTestSuite_getGeneratedConfigurationList</string> </value>
</item>
<item>
<key> <string>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="ERP5Form" module="Products.ERP5Form.Form"/>
</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>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>hidden</string>
<string>bottom</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>bottom</string> </key>
<value>
<list>
<string>listbox</string>
</list>
</value>
</item>
<item>
<key> <string>center</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<list>
<string>my_cluster_constraint</string>
</list>
</value>
</item>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>my_title</string>
<string>my_test_suite</string>
<string>my_additional_bt5_repository_id</string>
<string>my_source_project_title</string>
<string>my_specialise_title</string>
<string>my_cluster_configuration</string>
<string>my_graph_coordinate</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list>
<string>my_reference</string>
<string>my_int_index</string>
<string>last_check</string>
<string>test_node_list</string>
<string>my_validation_state_title</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ScalabilityTestSuite_view</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>TestSuite_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>Scalability Test Suite</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>
<string>columns</string>
<string>portal_types</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>listbox</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>columns</string> </key>
<value>
<list>
<tuple>
<string>git_url</string>
<string>URL</string>
</tuple>
<tuple>
<string>profile_path</string>
<string>Profile Path</string>
</tuple>
<tuple>
<string>buildout_section_id</string>
<string>Buildout</string>
</tuple>
<tuple>
<string>branch</string>
<string>Branch</string>
</tuple>
</list>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_contact_listbox</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewBaseFieldLibrary</string> </value>
</item>
<item>
<key> <string>portal_types</string> </key>
<value>
<list>
<tuple>
<string>Test Suite Repository</string>
<string>Test Suite Repository</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>Repository</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_source_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>
<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_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>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Project Title</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -122,6 +122,10 @@ ...@@ -122,6 +122,10 @@
<string>specialise_title</string> <string>specialise_title</string>
<string>Distributor</string> <string>Distributor</string>
</tuple> </tuple>
<tuple>
<string>master</string>
<string>Is Master</string>
</tuple>
</list> </list>
</value> </value>
</item> </item>
......
...@@ -27,6 +27,12 @@ ...@@ -27,6 +27,12 @@
</object> </object>
</value> </value>
</item> </item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple/>
</value>
</item>
<item> <item>
<key> <string>_objects</string> </key> <key> <string>_objects</string> </key>
<value> <value>
...@@ -96,6 +102,8 @@ ...@@ -96,6 +102,8 @@
<string>my_title</string> <string>my_title</string>
<string>my_aggregate_title</string> <string>my_aggregate_title</string>
<string>my_specialise_title</string> <string>my_specialise_title</string>
<string>my_master</string>
<string>my_reference</string>
</list> </list>
</value> </value>
</item> </item>
......
...@@ -88,6 +88,14 @@ ...@@ -88,6 +88,14 @@
<string>ERP5 Project Unit Test Distributor</string> <string>ERP5 Project Unit Test Distributor</string>
<string>ERP5 Project Unit Test Distributor</string> <string>ERP5 Project Unit Test Distributor</string>
</tuple> </tuple>
<tuple>
<string>ERP5 Scalability Distributor</string>
<string></string>
</tuple>
<tuple>
<string>ERP5 Scalability Distributor</string>
<string></string>
</tuple>
</list> </list>
</value> </value>
</item> </item>
......
...@@ -220,7 +220,9 @@ ...@@ -220,7 +220,9 @@
<item> <item>
<key> <string>default</string> </key> <key> <string>default</string> </key>
<value> <value>
<list/> <list>
<string>Bonjour</string>
</list>
</value> </value>
</item> </item>
<item> <item>
......
...@@ -2,6 +2,10 @@ Benchmark Result Line | view ...@@ -2,6 +2,10 @@ Benchmark Result Line | view
Benchmark Result | view Benchmark Result | view
Cloud Performance Unit Test Distributor | view Cloud Performance Unit Test Distributor | view
ERP5 Project Unit Test Distributor | view ERP5 Project Unit Test Distributor | view
ERP5 Scalability Distributor | view
Scalability Test Suite | generatedConfigurationView
Scalability Test Suite | vcs_repository
Scalability Test Suite | view
Task Distribution Tool | view Task Distribution Tool | view
Test Node Module | view Test Node Module | view
Test Node | view Test Node | view
...@@ -16,6 +20,7 @@ Test Result Node | view ...@@ -16,6 +20,7 @@ Test Result Node | view
Test Result | jump_previous_test_result Test Result | jump_previous_test_result
Test Result | jump_viewvc_revision Test Result | jump_viewvc_revision
Test Result | view Test Result | view
Test Result | view_graph
Test Result | view_node_list Test Result | view_node_list
Test Suite Module | view Test Suite Module | view
Test Suite Repository | view Test Suite Repository | view
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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