Commit 7dc2661a authored by Rafael Monnerat's avatar Rafael Monnerat

slapos_erp5: Add an upgrader constraint to reindex documents that has creation date None

This is only applied to the portal types that were in the "non index" list. Now that getCreationDate is fast, we reverted the custom change and index the change.
parent 80ae5b94
<property_sheet_list> <property_sheet_list>
<portal_type id="Catalog Tool">
<item>CatalogToolNoneCreationDateConstraint</item>
</portal_type>
<portal_type id="Certificate Authority Tool"> <portal_type id="Certificate Authority Tool">
<item>CertificateAuthorityToolConsistencyConstraint</item> <item>CertificateAuthorityToolConsistencyConstraint</item>
</portal_type> </portal_type>
......
<?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>CatalogToolNoneCreationDateConstraint</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="Script Constraint" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_identity_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_range_criterion</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>constraint_type/post_upgrade</string>
</tuple>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>NoneCreationDate_existence_constraint</string> </value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Script Constraint</string> </value>
</item>
<item>
<key> <string>script_id</string> </key>
<value> <string>CatalogTool_checkNoneCreationDateConsistency</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
from Products.ZSQLCatalog.SQLCatalog import Query, SimpleQuery, NegatedQuery, ComplexQuery
portal = context.getPortalObject()
error_list = []
catalog_query_kw = {
"creation_date" : None,
"select_list" : {"creation_date": None},
"query": ComplexQuery(
Query(portal_type=('Software Instance', 'Slave Instance', 'Computer', 'Computer Partition'),
validation_state=('validated', 'invalidated'),),
ComplexQuery(
SimpleQuery(portal_type=('Sale Order',)),
NegatedQuery(SimpleQuery(simulation_state='draft')),
logical_operator='AND'),
logical_operator='OR')
}
required_to_reindex = portal.portal_catalog.countResults(**catalog_query_kw)[0][0]
if required_to_reindex:
error_list.append('There are %s documents that require reindex due "None" creation date' % (required_to_reindex))
if fixit:
tag = 'update_none_creation_date_from_large_workflow_histories'
portal.portal_catalog.activate(tag=tag, activity='SQLQueue').searchAndActivate(
activate_kw={'tag': tag, 'priority': 6},
method_id='reindexObject',
**catalog_query_kw
)
return error_list
<?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>fixit=False</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>CatalogTool_checkNoneCreationDateConsistency</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
Catalog Tool | CatalogToolNoneCreationDateConstraint
Certificate Authority Tool | CertificateAuthorityToolConsistencyConstraint Certificate Authority Tool | CertificateAuthorityToolConsistencyConstraint
Id Tool | SlapOSModuleIdGeneratorConstraint Id Tool | SlapOSModuleIdGeneratorConstraint
Invitation Token | Reference Invitation Token | Reference
......
...@@ -6,4 +6,5 @@ MemcachedToolServerConstraint ...@@ -6,4 +6,5 @@ MemcachedToolServerConstraint
GeographicOrganisation GeographicOrganisation
WebSiteModuleShacacheConstraint WebSiteModuleShacacheConstraint
ShacacheSystemPreference ShacacheSystemPreference
OAuthToolDefaultSlapOSConnector OAuthToolDefaultSlapOSConnector
\ No newline at end of file CatalogToolNoneCreationDateConstraint
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment