Commit 5d93ca43 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

2011-02-08 Kazuhiko

* remove upgrading MySQL charset part, that should be handled by buildout MySQL setup and reindexing with clear_catalog=1.
* remove handling zope version and python version, that should be handled by instance creation in buildout.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@43177 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent fe263d5b
...@@ -103,53 +103,6 @@ def ERP5Site_clearActivities(self): ...@@ -103,53 +103,6 @@ def ERP5Site_clearActivities(self):
os.remove(flag_fs_path) os.remove(flag_fs_path)
return return
def ERP5Site_upgradeMySQLCharset(self, upgrade=0):
"""
Update the catalog charset running a external command.
"""
from subprocess import Popen, PIPE
portal = self.getPortalObject()
message_list = []
database = portal.erp5_sql_connection.connection_string.split(' ')[0]
connection_string = ''
if '@' in database:
# This means the format database@hostname:port was used.
connection_string += ' -u root '
database_name , hostname = database.split("@")
if ":" in hostname:
new_hostname, port = hostname.split(":")
hostname = new_hostname
connection_string += ' --port=%s ' % port
connection_string += ' --host=%s ' % hostname
database = database_name
message = "ERP5Site_verifyMySQLCharset: Invalid configuration for: %s (%s)"
command = "echo \"show variables like '%%char%%'\" | mysql %s %s -Ns" % (connection_string, database)
stdout, stderr = Popen(command, stderr=PIPE, stdout=PIPE,
close_fds=True, shell=True).communicate()
for line in stdout.split("\n"):
if not line.strip(" ") == "" and \
not ('character_set_filesystem' in line and 'binary' in line) and \
not ('character_sets_dir' in line) and \
not ('utf8' in line and 'character_set_filesystem' not in line):
message_list.append(message % (database, line.replace("\t", " = ")))
if not upgrade:
return message_list
if len(message_list) > 0:
message_list = ["Upgrade was required to ERP5Site_verifyMySQLCharset."]
SQL = portal.ERP5Site_getUpgradeCatalogCharsetSQL(context=portal)
command = "echo '%s' | mysql %s " % (SQL, connection_string)
stdout, stderr = Popen(command, stderr=PIPE, stdout=PIPE,
close_fds=True, shell=True).communicate()
message_list.append("Upgrade Executed required to ERP5Site_upgradeMySQLCharset.")
message_list.append("ERP5Site_upgraadeMySQLCharset STDERR: %s" % stderr)
message_list.append("ERP5Site_upgradeMySQLCharset STDOUT: %s" % stdout)
return message_list
def ERP5Site_runVerificationScript(self, method_id): def ERP5Site_runVerificationScript(self, method_id):
""" Run a Python Script return the method. This should avoid raise error, """ Run a Python Script return the method. This should avoid raise error,
even one intergrity verification script raise error, and provide good even one intergrity verification script raise error, and provide good
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_body</string> </key>
<value> <string>database = context.erp5_sql_connection.connection_string.split(\' \')[0]\n
database_name = database.split("@")[0]\n
\n
alter_table_str = "ALTER TABLE %s CHARSET=%s;"\n
alter_database_str = "ALTER DATABASE %s %s=%s;"\n
default_encode = \'utf8\'\n
\n
sql_list = []\n
\n
database_set_list = [\'CHARSET\']\n
\n
table_set_list = [\'catalog\',\'alarm\',\'catalog\',\'category\',\'delivery\',\'email\',\n
\'full_text\',\'inventory\',\'inventory_stock\',\'item\',\'measure\',\n
\'message\',\'message_queue\',\'movement\',\'portal_ids\',\'predicate\',\n
\'predicate_category\',\'record\',\'roles_and_users\',\'stock\',\n
\'subject\',\'translation\',\'versioning\']\n
\n
for data_set in database_set_list:\n
sql_list.append(alter_database_str % (database_name, data_set, default_encode))\n
\n
sql_list.append("USE %s;" % database_name)\n
\n
for table_set in table_set_list:\n
sql_list.append(alter_table_str % (table_set, default_encode))\n
\n
return \'\\n\'.join(sql_list)\n
</string> </value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ERP5Site_getUpgradeCatalogCharsetSQL</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -285,7 +285,6 @@ FINALIZE_ALARM_SCRIPT = ( \'ERP5Site_upgradeGlobalPropertyList\',\n ...@@ -285,7 +285,6 @@ FINALIZE_ALARM_SCRIPT = ( \'ERP5Site_upgradeGlobalPropertyList\',\n
\'ERP5Site_upgradeObjectClass\',\n \'ERP5Site_upgradeObjectClass\',\n
\'ERP5Site_upgradeSQLCatalogFilter\',\n \'ERP5Site_upgradeSQLCatalogFilter\',\n
\'ERP5Site_upgradeAlarmToolConfiguration\',\n \'ERP5Site_upgradeAlarmToolConfiguration\',\n
#\'ERP5Site_upgradeMySQLCharset\',\n
)\n )\n
\n \n
# \n # \n
......
<?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>ERP5Site_upgradeMySQLCharset</string> </value>
</item>
<item>
<key> <string>_module</string> </key>
<value> <string>ERP5UpgraderUtils</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>ERP5Site_upgradeMySQLCharset</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
...@@ -69,8 +69,6 @@ message_list.extend(context.ERP5Site_upgradeWorkflowChain())\n ...@@ -69,8 +69,6 @@ message_list.extend(context.ERP5Site_upgradeWorkflowChain())\n
\n \n
message_list.extend(context.ERP5Site_upgradeSQLCatalog())\n message_list.extend(context.ERP5Site_upgradeSQLCatalog())\n
\n \n
message_list.extend(context.ERP5Site_upgradeMySQLCharset())\n
\n
if getattr(context, \'WizardTool_isPersonReferenceGloballyUnique\', None) is not None:\n if getattr(context, \'WizardTool_isPersonReferenceGloballyUnique\', None) is not None:\n
if len(context.PersonModule_getUserAccountList(\'occupied\')) == 0 and \\\n if len(context.PersonModule_getUserAccountList(\'occupied\')) == 0 and \\\n
getattr(portal.acl_users, \'nexedi_authentication\', None) is not None:\n getattr(portal.acl_users, \'nexedi_authentication\', None) is not None:\n
......
2011-02-08 Kazuhiko 2011-02-08 Kazuhiko
* remove upgrading MySQL charset part, that should be handled by buildout MySQL setup and reindexing with clear_catalog=1.
* remove handling zope version and python version, that should be handled by instance creation in buildout. * remove handling zope version and python version, that should be handled by instance creation in buildout.
2011-02-07 Kazuhiko 2011-02-07 Kazuhiko
......
570 571
\ No newline at end of file \ 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