Commit d04c9fa1 authored by Ivan Tyagov's avatar Ivan Tyagov

Scalability tests for Wendelin

Tests passing locally thus safe to merge/

/reviewed-on !37
parents 996d84ef cc4511bf
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
</item> </item>
<item> <item>
<key> <string>configuration_after_script_id</string> </key> <key> <string>configuration_after_script_id</string> </key>
<value> <string>BusinessConfiguration_afterCASConfiguration</string> </value> <value> <string>BusinessConfiguration_afterConfiguration</string> </value>
</item> </item>
<item> <item>
<key> <string>description</string> </key> <key> <string>description</string> </key>
......
""" """
This script will be called to apply the customization. This script will be called to apply the customization.
""" """
from Products.ERP5Type.Log import log
# Activate the knowledge pads on portal home to enable later the Wendelin # Activate the knowledge pads on portal home to enable later the Wendelin
# Information gadget. # Information gadget.
# portal = context.getPortalObject()
configuration = self.portal.portal_preferences.getActivePreference() configuration = portal.portal_preferences.getActivePreference()
configuration.setPreferredHtmlStyleAccessTab(True) configuration.setPreferredHtmlStyleAccessTab(True)
# updata local roles (if any)
business_template = context.getSpecialiseValue()
if business_template is not None:
# update role settings for modules which exists already
for portal_type in business_template.getTemplatePortalTypeRoleList():
module_list = portal.contentValues(
filter=dict(portal_type=portal_type))
for module in module_list:
module.updateLocalRolesOnSecurityGroups()
print "Updated Role Mappings for: %s(%s) " % (module.getTitle(), module.getPortalType())
log("%s" % printed)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Business Configuration" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Author</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Author</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Author</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignee</string>
<string>Assignor</string>
<string>Associate</string>
<string>Auditor</string>
<string>Author</string>
<string>Manager</string>
<string>Owner</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>modification_date</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>date</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>creation_date</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>date</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_server_buffer</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>resource/workflow_module/erp5_wendelin_workflow</string>
<string>current_state/workflow_module/erp5_wendelin_workflow/63</string>
<string>specialise/portal_templates/47</string>
</tuple>
</value>
</item>
<item>
<key> <string>comment</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>configuration_after_script_id</string> </key>
<value> <string>BusinessConfiguration_afterUNGConfiguration</string> </value>
</item>
<item>
<key> <string>creation_date</string> </key>
<value>
<object>
<klass>
<global id="1.1" name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1302490800.0</float>
<string>GMT-3</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>The Wendelin Configuration will allow you to have quickly the Wendelin analytics platform inside ERP5.</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_wendelin_configuration</string> </value>
</item>
<item>
<key> <string>language</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass> <reference id="1.1"/> </klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1302577200.0</float>
<string>GMT-3</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Business Configuration</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Default Wendelin Configuration</string> </value>
</item>
<item>
<key> <string>user_interface_description_file_id</string> </key>
<value> <string>ung_configuration_ui_description.ods</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</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="Configuration Save" 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>id</string> </key>
<value> <string>1</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Configuration Save</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 BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_full_text_mroonga_catalog</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>1</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_full_text_mroonga_catalog</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_knowledge_pad</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>10</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_knowledge_pad</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_trade</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>11</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_trade</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_project</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>12</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_project</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_simulation</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>13</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_simulation</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_ods_style</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>14</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_ods_style</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_odt_style</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>15</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_odt_style</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_rss_style</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>16</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_rss_style</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_trade</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>17</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_trade</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_code_mirror</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>18</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_code_mirror</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_forge</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>19</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_forge</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_base</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>2</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_base</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_development_wizard</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>20</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_development_wizard</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_dhtml_style</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>21</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_dhtml_style</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_hal_json_style</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>22</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_hal_json_style</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_web_renderjs_ui</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>23</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_web_renderjs_ui</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_wendelin</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>24</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_wendelin</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_wendelin_examples</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>25</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_wendelin_examples</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_wendelin_data</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>26</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_wendelin_data</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_wendelin_development</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>27</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_wendelin_development</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_jquery_ui</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>3</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_jquery_ui</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Portal Type Roles Spreadsheet Configurator Item" 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>id</string> </key>
<value> <string>30</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Portal Type Roles Spreadsheet Configurator Item</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="Embedded File" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts69568811.48</string> </value>
</item>
<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>content_md5</string> </key>
<value> <string>f66ab3d086f9e8398fa9b2d32f618a6f</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/unknown</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">UEsDBBQAAAgAAC46O0+FbDmKLgAAAC4AAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz
aXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0UEsDBBQAAAgAAC46O0+Xa57LbQEAAG0BAAAYAAAA
VGh1bWJuYWlscy90aHVtYm5haWwucG5niVBORw0KGgoAAAANSUhEUgAAAL0AAAD/CAMAAACTmSdl
AAAAOVBMVEUuMzk9QEJBNzBBPDdCPT5bSj5AQUFvXEx2ZFanop6/u7ibsMO0xNbK0NXe6vT9+/T+
/v4AAAD///9JvZrxAAAA70lEQVR42u3T2w2AIBAAwRMh+Jb+q7UKQy6ZrWB+Nkbmgn6ifqvx5NUf
e7nS6t9697z60Zb1dC09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09/X994jPESFHhzCUAAAAASUVORK5CYIJQSwMEFAAICAgA
Ljo7TwAAAAAAAAAAAAAAAAwAAABzZXR0aW5ncy54bWztWl1zqjoUfb+/osPrnVbEtvfotJ5Bq7Uf
tgqKH28RouQ0JEwSivrrb4B6buuRU4twpnemPqiQZO3NzsrKztaL70sPHz1DxhEll0r5RFWOILGp
g8jiUhkO2sfflO/1vy7ofI5sWHOoHXiQiGMOhZBd+JEcTngtab5UAkZqFHDEawR4kNeEXaM+JJth
tde9a7Gx5M4SI/J0qbhC+LVSKQzDk7ByQtmiVK5Wq6W4ddPVpmSOFvuaSnq/NkUp/WkoGpA4ExvT
VPW0lFwrRy9OvgqNptQ3cdg8fv3ixUDycYwE9KLYHL3cjly7VKTJ2jOC4c+oKbvGvR1jIY5mGOoM
ggH1lU2jWPmyERGh1NWL0q8gHwK+h3NRDPIIOcLdBa1p5+cHo3cgWrg7PT89K++LfuwB/xgRBy6h
s20JhrunKB4jycVW+/gLwxtny0kumJx/pR6x4WOeRqBbfg6AjMd7jr4dYtC0EW/7NQPGKetRjoQk
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
OwDqm6qux7AtL+Mx8DHhyftjpDaw5+Oh3FlLOIegnoRRNetNHZo53F2WdSgzLFIgMZIAwe8uCgM/
Wb3nUqrb9/OZvzSTGRo3qbblC5gJc+SAjV17UC8KE6I3/y9FT1HuuYjV+7z57BKWHN3mnQtff2lA
gWPzxtifXQUNE44+qCM+j5vOfhH56tt6p4WAASIlvUTp7fRfkEn/TH89nNVotFvVhAyXVkR5HJn0
opJ0bqhp18FAkzPmr2/06/mi/l1uCDHo9e3t7Q06XaxXihMnnEReRdE29hJG1EPvGDS+sdrfqr3U
D8psM86tg0Zfa61nQiOq4/SzJqCeHx9y7V39KvKMZ+c9zzbzQKqOMGXQRzrbeWpwkkrWhpjnZz1H
dDR1lnQFnWiH8YqMTlowv1mQp6dxKCw/WHr+0ps/d9e+j/TH92srFHD9tdMYnD0sWoEa0YEf+tdh
cDW7vPKvr64XVwulItQfu+mh9Ovu74vlpIPaQH0FWi+XbaBZ+5tyFw13CzT8D8T1X1BLBwiOUi9l
WgYAAIAcAABQSwMEFAAACAAALjo7TwAAAAAAAAAAAAAAAB8AAABDb25maWd1cmF0aW9uczIvaW1h
Z2VzL0JpdG1hcHMvUEsDBBQAAAgAAC46O08AAAAAAAAAAAAAAAAaAAAAQ29uZmlndXJhdGlvbnMy
L3BvcHVwbWVudS9QSwMEFAAACAAALjo7TwAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIv
c3RhdHVzYmFyL1BLAwQUAAAIAAAuOjtPAAAAAAAAAAAAAAAAGgAAAENvbmZpZ3VyYXRpb25zMi90
b29scGFuZWwvUEsDBBQACAgIAC46O08AAAAAAAAAAAAAAAAnAAAAQ29uZmlndXJhdGlvbnMyL2Fj
Y2VsZXJhdG9yL2N1cnJlbnQueG1sAwBQSwcIAAAAAAIAAAAAAAAAUEsDBBQAAAgAAC46O08AAAAA
AAAAAAAAAAAYAAAAQ29uZmlndXJhdGlvbnMyL2Zsb2F0ZXIvUEsDBBQAAAgAAC46O08AAAAAAAAA
AAAAAAAYAAAAQ29uZmlndXJhdGlvbnMyL21lbnViYXIvUEsDBBQAAAgAAC46O08AAAAAAAAAAAAA
AAAYAAAAQ29uZmlndXJhdGlvbnMyL3Rvb2xiYXIvUEsDBBQAAAgAAC46O08AAAAAAAAAAAAAAAAc
AAAAQ29uZmlndXJhdGlvbnMyL3Byb2dyZXNzYmFyL1BLAwQUAAgICAAuOjtPAAAAAAAAAAAAAAAA
DAAAAG1hbmlmZXN0LnJkZs2TzW6DMBCE7zyFZc7YQC8FBXIoyrlqn8A1hlgFL/KaEt6+jpNWUaSq
6p/U465GM9+OtJvtYRzIi7KowVQ0YyklykhotekrOrsuuaXbOtrYtisfmh3xaoOlnyq6d24qOV+W
hS03DGzPs6IoeJrzPE+8IsHVOHFIDMa0jggJHo1CafXkfBo5zuIJZldRdOugkHn3ID2L3TqpoLIK
YbZSvYe2IJGBQI0JTMqEdIMcuk5LxTOW81E5waHt4sdgvdODojxg8CuOz9jeiAym5V7gvbDuXIPf
fJVoeu5jenXTxfHfI5RgnDLuT+q7O3n/5/4uz/8Z4q+0dkRsQM6jZ/qQ57TyH1VHr1BLBwi092jS
BQEAAIMDAABQSwMEFAAICAgALjo7TwAAAAAAAAAAAAAAABUAAABNRVRBLUlORi9tYW5pZmVzdC54
bWytVEtqwzAQ3ecURttiqc2qiDhZBHqC9ACqPHYE0khoRiG5fe2QXykpMc1uvu89zQxarPbBVzvI
5CI24k2+igrQxtZh34jPzUf9LlbL2SIYdB0Q67NRDX1IF7cRJaOOhhxpNAFIs9UxAbbRlgDI+me9
PjJdvBsBc7GcVVe+znmoh/58uFZ3xfs6Gd42Qt0DuYYDtM7UfEjQCJOSd9bwUKZ22MqjYHmrU1LK
YFraArBQU6RstiV8oXGeFJ9NmbC/I8UF04Ma85NYCJiH3ZAc5nkHmWHPakxPArYReXz/s3EDsHk6
KPHBw/NnsI7Yub7k44HQXBlrwcPgxqxsyfnv+fyP68GLpYKjBFmctLcIE5dyisncdg8QD1Uvp2Eu
1K+vYPkNUEsHCEvGFtkhAQAARQQAAFBLAQIUABQAAAgAAC46O0+FbDmKLgAAAC4AAAAIAAAAAAAA
AAAAAAAAAAAAAABtaW1ldHlwZVBLAQIUABQAAAgAAC46O0+Xa57LbQEAAG0BAAAYAAAAAAAAAAAA
AAAAAFQAAABUaHVtYm5haWxzL3RodW1ibmFpbC5wbmdQSwECFAAUAAgICAAuOjtP5ODPbiYFAABK
JQAADAAAAAAAAAAAAAAAAAD3AQAAc2V0dGluZ3MueG1sUEsBAhQAFAAICAgALjo7TzsBjJLkBgAA
RCkAAAsAAAAAAAAAAAAAAAAAVwcAAGNvbnRlbnQueG1sUEsBAhQAFAAICAgALjo7T2WHtoa7AQAA
4QMAAAgAAAAAAAAAAAAAAAAAdA4AAG1ldGEueG1sUEsBAhQAFAAICAgALjo7T45SL2VaBgAAgBwA
AAoAAAAAAAAAAAAAAAAAZRAAAHN0eWxlcy54bWxQSwECFAAUAAAIAAAuOjtPAAAAAAAAAAAAAAAA
HwAAAAAAAAAAAAAAAAD3FgAAQ29uZmlndXJhdGlvbnMyL2ltYWdlcy9CaXRtYXBzL1BLAQIUABQA
AAgAAC46O08AAAAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAADQXAABDb25maWd1cmF0aW9uczIvcG9w
dXBtZW51L1BLAQIUABQAAAgAAC46O08AAAAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAAGwXAABDb25m
aWd1cmF0aW9uczIvc3RhdHVzYmFyL1BLAQIUABQAAAgAAC46O08AAAAAAAAAAAAAAAAaAAAAAAAA
AAAAAAAAAKQXAABDb25maWd1cmF0aW9uczIvdG9vbHBhbmVsL1BLAQIUABQACAgIAC46O08AAAAA
AgAAAAAAAAAnAAAAAAAAAAAAAAAAANwXAABDb25maWd1cmF0aW9uczIvYWNjZWxlcmF0b3IvY3Vy
cmVudC54bWxQSwECFAAUAAAIAAAuOjtPAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAzGAAAQ29u
ZmlndXJhdGlvbnMyL2Zsb2F0ZXIvUEsBAhQAFAAACAAALjo7TwAAAAAAAAAAAAAAABgAAAAAAAAA
AAAAAAAAaRgAAENvbmZpZ3VyYXRpb25zMi9tZW51YmFyL1BLAQIUABQAAAgAAC46O08AAAAAAAAA
AAAAAAAYAAAAAAAAAAAAAAAAAJ8YAABDb25maWd1cmF0aW9uczIvdG9vbGJhci9QSwECFAAUAAAI
AAAuOjtPAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAADVGAAAQ29uZmlndXJhdGlvbnMyL3Byb2dy
ZXNzYmFyL1BLAQIUABQACAgIAC46O0+092jSBQEAAIMDAAAMAAAAAAAAAAAAAAAAAA8ZAABtYW5p
ZmVzdC5yZGZQSwECFAAUAAgICAAuOjtPS8YW2SEBAABFBAAAFQAAAAAAAAAAAAAAAABOGgAATUVU
QS1JTkYvbWFuaWZlc3QueG1sUEsFBgAAAAARABEAcAQAALIbAAAAAA==</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>-1</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_configuration_spreadsheet</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Embedded File</string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>8248</int> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>-1</int> </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="Security Category Mapping Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>31</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Security Category Mapping Configurator Item</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Categories Spreadsheet Configurator Item" 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>id</string> </key>
<value> <string>32</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Categories Spreadsheet Configurator Item</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="Embedded File" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts69588959.71</string> </value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value> <string>bd0229f669d3aea4eb138071ea04dbe4</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">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
qUfiz06Lzk6QeSH+rM0dvGifyfkYc6RSZbC4026fNWzgcs4ckEWiXRpHO5gEsvg8ZJCJ//nbCE0o
NjsxpJedH2FCYkgvOz9CdET1c8xOXpFIt2jrGLSjY9BuSdkm0nQlEswg20R43r0eHykfkk0EiUKy
iY5kE76t/JxITjGobjT5zUO9uS2W9+efEhoX87j4TSFExJfDNWwxHAp8SrDy5ubd+go38tC0kJ27
uSyEjPB6+IRbrEtInsmrLvuosWwTWsy2XV8XI9ui6+EalH4sSLTxNCCUfd0gAW8ZLOC782WXIj4r
0wvcOChEH1/cF0JFfD1cF+znj2IX1RzTN8pmaWV4v/tF+2X34jCDYF+387uVa0EZzu8SCiBlmCzk
/E4IeSf4VxhhSpM3Erd/ESF/vO0bR6OIuGjJqidE55M6QZ6XDPHP337/ktScfvx98Pvqgpp+IR1q
42v3eMzoffz99veNtP6DVKc4IUuV0u30OQhTonaxZ81mNlV28gQhVku338qmG7gY+YoX3Gi3N8Tx
oLx5iP2b0EtHOvDx1mQfHwd+4L9Ngxl9HD5jHD9efHp8XLmIYxSNcfx+Yt9SjxyakPjt47ezfveP
rQ8aG+EtGkTx5v+fJO3U0p9GBE+8kzn+kmoXZz3VhTZBsziYsoHdjZXPx/vHvmUd+Jgx4R8LVUUZ
v5BHk1WuP3wKvLf1T8yAmCW16CdJL3T277/+H1BLBwg+DCf5IJAAALwXDwBQSwMEFAAICAgAFmGU
QQAAAAAAAAAAAAAAAAoAAABzdHlsZXMueG1s7V3rkuO2sf5/nkIlxym7yhqJpG6c7IzLjjO263gd
n911qs4vF5eiNDymSBVJzezkZ14lf/MUeZQ8yQF40VAUL02gSYIUnZSTEUEQffkajUaj8ebrT3tr
9GS4nunYd2PpZjYeGbbubEx7dzf+9cPDZD3++v6/3jjbrakbtxtHP+4N2594/otleCPysu3dhg/v
xkfXvnU0z/RubW1veLe+fuscDDt+6TbZ+jb4VPhL0Bn09aBx8m3f+ORDX6Ztz97VPsK/HDROvr1x
tWfoy7Qt4Wny9a0DffmTZ022zkR39gfNN1Oj+GSZ9u9340ffP9xOp8/PzzfPyo3j7qaSqqrT4Olp
wPqp3eHoWkGrjT41LIN+zJtKN9I0brs3fA06Pto2OST7uP9ouGDWaL52IdWDa3ikCSGX6iWso+Q7
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
Dn9TDH14OZTPQ1H7UbLxAKIBRNcMogfT1uw4IQGY3HN6Z0jtGcA0gOkVTH+2NM+jNZU1CIyyWw8Y
GjB0zRj6VvMMOhd9s6e+WhmGaOvRedMBQAOArhpAR8+0Dc8LQHQ4WMDZKH5tlPHOAKkBUtcMqf85
arZv+kHE+1fbLJ2V4vajZOMBRAOIrhlEbw3fNXVosC5sPYTqBgANAIoA9FcXkGx61mhAzICY3iFm
ml2BO/554+jH/enmIe/+/wFQSwcIZ6xRdHceAACAMAIAUEsDBBQAAAgAABZhlEHAQl0L8QUAAPEF
AAAIAAAAbWV0YS54bWw8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8b2Zm
aWNlOmRvY3VtZW50LW1ldGEgeG1sbnM6b2ZmaWNlPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRv
Y3VtZW50OnhtbG5zOm9mZmljZToxLjAiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hsaW5rIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHht
bG5zOm1ldGE9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6bWV0YToxLjAi
IHhtbG5zOm9vbz0iaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDQvb2ZmaWNlIiB4bWxuczpncmRk
bD0iaHR0cDovL3d3dy53My5vcmcvMjAwMy9nL2RhdGEtdmlldyMiIG9mZmljZTp2ZXJzaW9uPSIx
LjIiIGdyZGRsOnRyYW5zZm9ybWF0aW9uPSJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy9vZmZp
Y2UvMS4yL3hzbHQvb2RmMnJkZi54c2wiPjxvZmZpY2U6bWV0YT4KICAKICA8ZGM6dGl0bGU+RGVm
YXVsdCBFeHByZXNzIFN0YW5kYXJkIENhdGVnb3JpZXM8L2RjOnRpdGxlPgogIAogIDxkYzpkZXNj
cmlwdGlvbj5NZXJnZSB0aGllcnJ5JmFwb3M7cyAwMDYgKCAgaHR0cDovL2VycDUubmV4ZWRpLmNv
bS9kb2N1bWVudF9tb2R1bGUvMTA5NS92aWV3ICkgd2l0aCB5dXNlaSZhcG9zO3MgMDA2ICggaHR0
cDovL2VycDUubmV4ZWRpLmNvbS9kb2N1bWVudF9tb2R1bGUvNjIyL3ZpZXcgKTwvZGM6ZGVzY3Jp
cHRpb24+CiAgCiAgPG1ldGE6Y3JlYXRpb24tZGF0ZT4yMDA2LTEwLTEzVDEyOjMyOjUyPC9tZXRh
OmNyZWF0aW9uLWRhdGU+CiAgCiAgPGRjOmRhdGU+MjAxMi0xMi0yMFQxMzowODo0MzwvZGM6ZGF0
ZT4KICAKICA8bWV0YTplZGl0aW5nLWN5Y2xlcz41Mjg8L21ldGE6ZWRpdGluZy1jeWNsZXM+CiAg
CiAgPG1ldGE6ZWRpdGluZy1kdXJhdGlvbj5QOURUMjNIMThNNDNTPC9tZXRhOmVkaXRpbmctZHVy
YXRpb24+CiAgCiAgCiAgCiAgPG1ldGE6Z2VuZXJhdG9yPk9wZW5PZmZpY2Uub3JnLzMuMyRVbml4
IE9wZW5PZmZpY2Uub3JnX3Byb2plY3QvMzMwbTIwJEJ1aWxkLTk1Njc8L21ldGE6Z2VuZXJhdG9y
PgogIAogIAogIAogIAogIAogIAogIAogIAogIAogIDxkYzpjcmVhdG9yPkrDqXJvbWUgUGVycmlu
PC9kYzpjcmVhdG9yPjxtZXRhOmRvY3VtZW50LXN0YXRpc3RpYyBtZXRhOnRhYmxlLWNvdW50PSIz
MSIgbWV0YTpjZWxsLWNvdW50PSI1MzMwIiBtZXRhOm9iamVjdC1jb3VudD0iMCIvPjxtZXRhOnVz
ZXItZGVmaW5lZCBtZXRhOm5hbWU9IkluZm8gNCIvPjxtZXRhOnVzZXItZGVmaW5lZCBtZXRhOm5h
bWU9Ikxhbmd1YWdlIj5lbjwvbWV0YTp1c2VyLWRlZmluZWQ+PG1ldGE6dXNlci1kZWZpbmVkIG1l
dGE6bmFtZT0iUmVmZXJlbmNlIj5QLUVSUDVFWC1TdGFuZGFyZC5DYXRlZ29yaWVzPC9tZXRhOnVz
ZXItZGVmaW5lZD48bWV0YTp1c2VyLWRlZmluZWQgbWV0YTpuYW1lPSJWZXJzaW9uIj4wMTA8L21l
dGE6dXNlci1kZWZpbmVkPjwvb2ZmaWNlOm1ldGE+PC9vZmZpY2U6ZG9jdW1lbnQtbWV0YT5QSwME
FAAICAgAFmGUQQAAAAAAAAAAAAAAABgAAABUaHVtYm5haWxzL3RodW1ibmFpbC5wbmdVVnkg0/8b
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
EAAQADYEAABjzAAAAAA=</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>default_configuration_spreadsheet</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Embedded File</string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>53423</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_ingestion_mysql_innodb_catalog</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>4</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_ingestion_mysql_innodb_catalog</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_ingestion</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>5</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_ingestion</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_stock_cache</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>6</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_stock_cache</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_web</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>7</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_web</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_dms</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>8</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_dms</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Standard BT5 Configurator Item" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>bt5_id</string> </key>
<value> <string>erp5_pdm</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>9</string> </value>
</item>
<item>
<key> <string>install_dependency</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Standard BT5 Configurator Item</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>erp5_pdm</string> </value>
</item>
<item>
<key> <string>update_catalog</string> </key>
<value> <int>0</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>business_template_skin_layer_priority</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>float</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>100.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>erp5_wendelin_scalability_test</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
"""
This script creates a Business Configuration as if user selected it during configuration process.
"""
configuration_save = context.restrictedTraverse(configuration_save_url)
# bt5 setup
bt5_installation_list = ('erp5_full_text_mroonga_catalog',
'erp5_base',
'erp5_jquery_ui',
'erp5_ingestion_mysql_innodb_catalog',
'erp5_ingestion',
'erp5_stock_cache',
'erp5_web',
'erp5_dms',
'erp5_pdm',
'erp5_knowledge_pad',
'erp5_trade',
'erp5_project',
'erp5_simulation',
'erp5_ods_style',
'erp5_odt_style',
'erp5_rss_style',
'erp5_trade',
# to develop faster
'erp5_code_mirror',
'erp5_forge',
'erp5_development_wizard',
'erp5_dhtml_style',
# install later UI bt5s as broken now
#'erp5_wendelin_renderjs_ui',
'erp5_hal_json_style',
'erp5_web_renderjs_ui',
'erp5_wendelin',
'erp5_wendelin_examples',
'erp5_wendelin_data',
'erp5_wendelin_development'
)
bt5_update_catalog = ('erp5_ingestion_mysql_innodb_catalog', 'erp5_wendelin',)
for name in bt5_installation_list:
configuration_save.addConfigurationItem("Standard BT5 Configurator Item",
title=name, bt5_id=name,
update_catalog=(name in bt5_update_catalog),
install_dependency=True,
)
# categories setup
configuration_save.addConfigurationItem("Categories Spreadsheet Configurator Item",
configuration_spreadsheet_data = getattr(context, "standard_wendelin_category.ods").data)
# security setup
configuration_save.addConfigurationItem("Portal Type Roles Spreadsheet Configurator Item",
configuration_spreadsheet_data = getattr(context, "standard_wendelin_portal_types_roles.ods").data)
# Create ERP5Site_getSecurityCategoryMapping
configuration_save.addConfigurationItem("Security Category Mapping Configurator Item")
<?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>configuration_save_url=None, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>BusinessConfiguration_setupWendelinConfigurationSave</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
# Script that installs the configurator for scalabiility tests
import random
import string
import json
request = context.REQUEST
portal = context.getPortalObject()
portal_catalog = portal.portal_catalog
status_code = 0
error_message = "No error."
context.ERP5Site_setUpActivityTool()
if user_quantity is None:
return json.dumps({"status_code" : 1,
"error_message": "Parameter 'user_quantity' is required.",
"password" : None })
password = ''.join(random.choice(string.digits + string.letters) for i in xrange(10))
# check erp5_scalability_test business template is present
configurator = portal.business_configuration_module.default_wendelin_configuration
if configurator == None or not configurator.contentValues(portal_type='Configuration Save'):
error_message = "Could not find the scalability business configuration object. Be sure to have erp5_scalability_test business template installed."
return json.dumps({"status_code" : 1,
"error_message": error_message })
# install configurator if not intalled
if configurator.getSimulationState() == "draft":
person = portal_catalog.getResultValue(portal_type="Person", title = 'Scalability company')
organisation = portal_catalog.getResultValue(portal_type="Organisation", title = 'Scalability company')
if person is None or organisation is None:
try:
configurator.buildConfiguration()
except Exception as e:
status_code = 1
error_message = "Error during installation: " + str(e)
return json.dumps({"status_code" : 1,
"error_message": error_message })
# create users if installation is done
try:
context.portal_categories.activate(after_method_id = ('ERP5Site_afterConfigurationSetup',
'immediateReindexObject')
).ERP5Site_createTestData(user_quantity, password)
context.portal_categories.activate(after_method_id = ('ERP5Site_afterConfigurationSetup',
'immediateReindexObject')
).ERP5Site_setIdGenerator()
except Exception as e:
status_code = 1
error_message = "Error calling ERP5Site_createTestData script: " + str(e)
return json.dumps({"status_code" : 1,
"error_message": error_message })
return json.dumps({"status_code" : status_code,
"error_message": error_message,
"password" : password,
"quantity" : user_quantity })
<?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>user_quantity=None</string> </value>
</item>
<item>
<key> <string>guard</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ERP5Site_bootstrapScalabilityTest</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Guard" module="Products.DCWorkflow.Guard"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>roles</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
# Script that creates "user_quantity" users for scalabiility tests:
# creates and validates persons
# adds assignment and starts it
# creates user (login credentials)
# random password is given by parameter
import json
from DateTime import DateTime
now = DateTime()
portal = context.getPortalObject()
portal_catalog = portal.portal_catalog
try:
organisation = context.organisation_module.newContent(
portal_type="Organisation",
title = 'Scalability company')
organisation = organisation.getRelativeUrl()
for i in xrange(0, int(user_quantity)):
user_id = "scalability_user_%i" % i
person = portal_catalog.getResultValue(
portal_type="Person",
id = user_id)
if person is None:
person = portal.person_module.newContent(
portal_type = "Person",
id = user_id,
first_name = "scalability",
last_name = "user %i" % i,
function_list = ["company/manager"],
)
person.validate()
assignment_id_list = [x.getId() for x in person.objectValues(portal_type="Assignment")]
if assignment_id_list: person.manage_delObjects(ids=assignment_id_list)
assignment = person.newContent(
portal_type = "Assignment",
id = "assignment_%s" % user_id,
title = "user assignment",
function_list = ["company/manager"],
destination_relative_url = organisation,
destination = organisation,
group_list = ["my_group"],
start_date = now,
stop_date = DateTime(3000, 1, 1)
)
assignment.open()
user_id_list = [x.getId() for x in person.objectValues(portal_type="ERP5 Login")]
if user_id_list: person.manage_delObjects(ids=user_id_list)
user = person.newContent(
portal_type = "ERP5 Login",
id = "login_%s" % user_id,
default_reference = user_id,
password = password,
)
user.validate()
except Exception as e:
status_code = 1
error_message = str(e)
raise e
<?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>user_quantity, password</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ERP5Site_createTestData</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
import json
from DateTime import DateTime
portal = context.getPortalObject()
portal_catalog = portal.portal_catalog
now = DateTime()
now_minus_6 = now - 1.0/24/60*6
now_minus_1 = now - 1.0/24/60*1
catalog_kw = {'creation_date': {'query': (now_minus_6, now_minus_1), 'range': 'minmax'},
#'validation_state': 'validated'
}
data_stream_count = len(portal_catalog(portal_type="Data Stream", **catalog_kw))
data_stream_per_hour = 60 * data_stream_count / 5
return json.dumps({"data_stream_per_hour" : data_stream_per_hour})
<?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></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ERP5Site_getScalabilityTestMetric</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>standard_wendelin_category.ods</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/vnd.oasis.opendocument.spreadsheet</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Standard Workflow Categories.ods</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>standard_wendelin_portal_types_roles.ods</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/vnd.oasis.opendocument.spreadsheet</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>standard_portal_types_roles.ods</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
2019-09-19 Ivan
* Initial commit
\ No newline at end of file
Contains needed data nd code for running Wendelin scalability tests.
\ No newline at end of file
business_configuration_module/default_wendelin_configuration
business_configuration_module/default_wendelin_configuration/**
\ No newline at end of file
erp5_wendelin_scalability_test
\ No newline at end of file
erp5_wendelin
\ No newline at end of file
erp5_wendelin_scalability_test
\ No newline at end of file
import os.path
import json
ZOPE_USER_FAMILY = "user"
ZOPE_ACTIVITIES_FAMILIY = "activities"
DATA_STREAM_KEY = "data_stream_per_hour"
class Wendelin_scalability():
def getTestList(self):
return ['createDataStream']
def getTestPath(self):
return 'example/'
def getUsersFilePath(self):
return 'example/scalabilityUsers'
def getUserQuantity(self, test_number):
"""
Return number of users for a given test run.
"""
users_per_zope_process = 8
max_tests = 100
return [x * users_per_zope_process for x in range(1, max_tests)][test_number]
def getTestDuration(self, test_number):
return 60*10
def getTestRepetition(self, test_number):
return 3
def getScalabilityTestUrl(self, instance_information_dict):
for frontend in instance_information_dict['frontend-url-list']:
if frontend[0] == ZOPE_USER_FAMILY:
frontend_address = frontend[1]
break
return "%s/erp5" % (frontend_address)
def getScalabilityTestMetricUrl(self, instance_information_dict, **kw):
frontend_address = self.getScalabilityTestUrl(instance_information_dict)
metrics_url = frontend_address.replace("://",
"://%s:%s@" % (instance_information_dict['user'],
instance_information_dict['password']))
return metrics_url + "/ERP5Site_getScalabilityTestMetric"
def getBootstrapScalabilityTestUrl(self, instance_information_dict, count=0, **kw):
frontend_address = self.getScalabilityTestUrl(instance_information_dict)
bootstrap_url = frontend_address.replace("://",
"://%s:%s@" % (instance_information_dict['user'],
instance_information_dict['password']))
bootstrap_url += "/ERP5Site_bootstrapScalabilityTest"
bootstrap_url += "?user_quantity=%i" % self.getUserQuantity(count)
return bootstrap_url
def getSiteAvailabilityUrl(self, instance_information_dict, **kw):
frontend_address = self.getScalabilityTestUrl(instance_information_dict)
site_url = frontend_address.replace("://",
"://%s:%s@" % (instance_information_dict['user'],
instance_information_dict['password']))
return site_url + "/ERP5Site_isReady"
def getScalabilityTestOutput(self, metric_list):
"""
From the list of metrics taken during a test run, select the best metric
for the test output by a specific criteria
"""
if not metric_list: return None
output_json = json.loads(metric_list[0])
for metric in metric_list:
metric_json = json.loads(metric)
if metric_json[DATA_STREAM_KEY] > output_json[DATA_STREAM_KEY]:
output_json[DATA_STREAM_KEY] = metric_json[DATA_STREAM_KEY]
return "DataStream: %s doc/hour;" % str(output_json[DATA_STREAM_KEY])
# -*- coding: utf-8 -*-
import io
import datetime
import random
import time
import string
from utils import *
TMIN_SLEEP = 2
TMAX_SLEEP = 6
PREFIX_TITLE = ""
MAX_PRODUCT = 5
def createDataStream(result, browser):
"""
Create a Data Stream and upload some data.
"""
# Open ERP5 homepage and log in
result('Open', browser.open())
# Log in unless already logged in by a previous test suite
result('Login', browser.mainForm.submitLogin(
sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Go to sale Order module
result('GotoModule',
browser.mainForm.submitSelectModule(value='/data_stream_module',
sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Create a newData Stream
result('Create',
browser.mainForm.submitNew(sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Check whether it has been successfully created
assert browser.getTransitionMessage() == 'Object created.'
my_order_sale_url = browser.url.split("?")[0]
# Fill the title
my_title = PREFIX_TITLE + generateString(6)
browser.mainForm.getControl(name='field_my_title').value = my_title
browser.mainForm.getControl(name='field_my_reference').value = generateString(6)
my_str = generateString(random.randint(1,100))
browser.mainForm.getControl(name='field_my_description').value = my_str
result('Save',
browser.mainForm.submitSave(sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# tests upload data from file of 1Mb size
ctrl = browser.mainForm.getControl(name='field_my_file')
ctrl.add_file(io.BytesIO(generateString(1024)*1024), 'text/plain', 'test.txt')
# Submit the changes, record the time elapsed in seconds
result('Save',
browser.mainForm.submitSave(sleep=(TMIN_SLEEP, TMAX_SLEEP)))
# Check whether the changes have been successfully updated
assert browser.getTransitionMessage() == 'Data updated.'
# Validate the Data Stream
#browser.mainForm.submitSelectWorkflow(value='validate_action')
#result('Validate',
# browser.mainForm.submitDialogConfirm(sleep=(TMIN_SLEEP, TMAX_SLEEP)))
#assert browser.getTransitionMessage() == 'Status changed.'
# Specify user login/password used to run the tests.
# <password> and <user_quantity> will be automatically replaced by testnode for each configuration
user_tuple = tuple([('scalability_user_%i' % x, "<password>") for x in range(0, <user_quantity>)])
\ No newline at end of file
import random
import string
def selectRandomOption(browser, select_name):
"""
Function to select randomly an option
@param browser: Browser
@type browser: Browser
@param select_name: Name of the input
@type select_name: string
"""
# Get the option values
options = browser.mainForm.getControl(name=select_name).options[1:]
if len(options) > 0:
# Select randomly one value
browser.mainForm.getControl(name=select_name).value = [random.choice(options)]
def generateString(size) :
"""
Function to generate a string randomly (a-z)
@param size: Size of the string
@type size: int
"""
new_string = random.choice(string.ascii_uppercase)
new_string = new_string + ''.join(random.choice(string.ascii_lowercase) for x in range(size))
return new_string
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