Commit c153fd95 authored by Benjamin Blanc's avatar Benjamin Blanc

erp5_bootstrap: add more connection controls

parent ea791b99
...@@ -6,7 +6,7 @@ import base64 ...@@ -6,7 +6,7 @@ import base64
import time import time
MAX_INSTALLATION_TIME = 60*30 MAX_INSTALLATION_TIME = 60*30
MAX_TESTING_TIME = 60 MAX_TESTING_TIME = 60*2
MAX_GETTING_CONNECTION_TIME = 60*5 MAX_GETTING_CONNECTION_TIME = 60*5
user = "%(user)s" user = "%(user)s"
...@@ -35,20 +35,34 @@ def getConnection(): ...@@ -35,20 +35,34 @@ def getConnection():
raise ValueError("Protocol not implemented") raise ValueError("Protocol not implemented")
except: except:
print "Getting new connection failed, retry" print "Getting new connection failed, retry"
time.sleep(10)
raise ValueError("Cannot get new connection after %%d try (for %%s s)" %%(count, str(time.time()-start_time))) raise ValueError("Cannot get new connection after %%d try (for %%s s)" %%(count, str(time.time()-start_time)))
def testIfExist(page, unexcepted_content="Site Error"): def testIfExist(page, unexcepted_content="Site Error"):
print "Test if %%s exists" %%(page) print "Test if %%s exists" %%(page)
start_time = time.time()
count = 0
while MAX_TESTING_TIME > time.time()-start_time:
try:
count = count + 1
zope_connection = getConnection() zope_connection = getConnection()
zope_connection.request('GET', '/%%s/%%s' %%(site_id, page)) zope_connection.request('GET', '/%%s/%%s' %%(site_id, page))
result = zope_connection.getresponse() result = zope_connection.getresponse()
return not unexcepted_content in result.read() return not unexcepted_content in result.read()
except:
print "Test if exists failed, retry..."
time.sleep(10)
raise ValueError("Cannot testIfExist after %%d try (for %%s s)" %%(count, str(time.time()-start_time)))
def waitFor0PendingActivities(): def waitFor0PendingActivities():
# TODO: tolerate 1 pending activities ? (mail server...) # TODO: tolerate 1 pending activities ? (mail server...)
print "waitFor0PendingActivities.." print "waitFor0PendingActivities.."
start_time = time.time() start_time = time.time()
count = 0
while MAX_INSTALLATION_TIME > time.time()-start_time: while MAX_INSTALLATION_TIME > time.time()-start_time:
try:
count = count + 1
zope_connection = getConnection() zope_connection = getConnection()
zope_connection.request( zope_connection.request(
'GET', '/%%s/portal_activities/getMessageList' %%(site_id), 'GET', '/%%s/portal_activities/getMessageList' %%(site_id),
...@@ -69,6 +83,12 @@ def waitFor0PendingActivities(): ...@@ -69,6 +83,12 @@ def waitFor0PendingActivities():
print "ok." print "ok."
break break
except:
time.sleep(5)
print "Getting activities failed, retry."
raise ValueError("Cannot testIfExist after %%d try (for %%s s)" %%(count, str(time.time()-start_time)))
# Check if an ERP5 site is already created, as ERP5 does support having # Check if an ERP5 site is already created, as ERP5 does support having
# 2 instances in the same zope, and this script should not destroy user data # 2 instances in the same zope, and this script should not destroy user data
......
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