[Erp5-report] r44309 rafael - /erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Mar 15 17:13:44 CET 2011
Author: rafael
Date: Tue Mar 15 17:13:43 2011
New Revision: 44309
URL: http://svn.erp5.org?rev=44309&view=rev
Log:
Small refactor : Do not set memcache or preferences for now, until a better specification be defined.
Guatantee the site and business templates are really setupped.
Modified:
erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/erp5.py
Modified: erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/erp5.py
URL: http://svn.erp5.org/erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/erp5.py?rev=44309&r1=44308&r2=44309&view=diff
==============================================================================
--- erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/erp5.py [utf8] (original)
+++ erp5/trunk/utils/slapos.recipe.erp5/src/slapos/recipe/erp5/erp5.py [utf8] Tue Mar 15 17:13:43 2011
@@ -30,6 +30,7 @@ import xmlrpclib
import socket
def updateERP5(args):
+ # FIXME Use a dict
site_id = args[0]
mysql_string = args[1]
base_url = args[2]
@@ -40,7 +41,12 @@ def updateERP5(args):
bt5_repository_list = []
if len(args) > 7:
bt5_repository_list = args[7]
+
+ if len(bt5_list) > 0 and len(bt5_repository_list) == 0:
+ bt5_repository_list = ["http://www.erp5.org/dists/snapshot/bt5"]
erp5_catalog_storage = "erp5_mysql_innodb_catalog"
+ erp5_site_creation = 0
+ business_templates_setup_finished = 0
sleep = 60
while True:
try:
@@ -53,53 +59,39 @@ def updateERP5(args):
"erp5_catalog_storage": erp5_catalog_storage,
"erp5_sql_connection_string": mysql_string,
"cmf_activity_sql_connection_string": mysql_string, }))
- print result.read()
-
+ erp5_site_creation = 1
print "ERP5 Site creation output: %s" % result.read()
+ # The site MUST be fresh
+ if erp5_site_creation and business_templates_setup_finished:
if proxy.isERP5SitePresent() == True:
- print "Site was created successfuly!"
-
# Update URL to ERP5 Site
erp5 = xmlrpclib.ServerProxy("%s/%s" % (base_url, site_id),
allow_none=1)
- # Update Cache Coordinates
- erp5.portal_memcached.default_memcached_plugin.\
- setUrlString(memcached_provider)
-
- # Update and enable System preferrence with ERP5 Site Coordinates.
- # XXX NO SYSTEM PREFERENCE AS DEFAULT so it is used Default
- # Preference instead as object creation is not possible by
- # xmlrpc or post.
- preference = erp5.portal_preferences.default_site_preference
- preference.setPreferredOoodocServerAddress(conversion_server_address)
- preference.setPreferredOoodocServerPortNumber(conversion_server_port)
- preference.enable()
-
- if len(bt5_repository_list) > 0:
+ repository_list = erp5.portal_templates.getRepositoryList()
+ if len(bt5_repository_list) > 0 and \
+ set(bt5_repository_list) != set(repository_list):
erp5.portal_templates.\
updateRepositoryBusinessTemplateList(bt5_repository_list, None)
- if len(bt5_list) > 0:
- # XXX If no repository is provided, use just trunk.
- if len(erp5.portal_templates.getRepositoryList()) == 0:
- bt5_repository_list = ["http://www.erp5.org/dists/snapshot/bt5"]
- erp5.portal_templates.\
- updateRepositoryBusinessTemplateList(bt5_repository_list, None)
-
- erp5.portal_templates.\
- installBusinessTemplatesFromRepositories(bt5_list)
-
- # The persistent cache is only configurable after install \
- # erp5_dms.
- #erp5.portal_memcached.persistent_memcached_plugin.\
- # setUrlString(kumo_address)
+ installed_bt5_list = erp5.portal_templates.getInstalledBusinessTemplateTitleList()
+ for bt5 in bt5_list:
+ if bt5 not in installed_bt5_list:
+ erp5.portal_templates.installBusinessTemplatesFromRepositories([bt5])
+
+ repository_set = set(erp5.portal_templates.getRepositoryList())
+ installed_bt5_list = erp5.portal_templates.getInstalledBusinessTemplateTitleList()
+
+ if (set(repository_set) == set(bt5_repository_list)) and :
+ len([i for i in bt5_list not in installed_bt5_list])
+ print "Repositories updated and business templates installed."
+ business_templates_setup_finished = 1
else:
print "ERP5 site is already present, ignore."
except IOError:
print "Unable to create the ERP5 Site!"
except socket.error, e:
- print "Unable to connect to ZOPE!"
+ print "Unable to connect to ZOPE! %s" % e
time.sleep(sleep)
More information about the Erp5-report
mailing list