diff -r 4bde1604fc17 scripts/poweron/power-on.py --- a/scripts/poweron/power-on.py Thu Apr 29 10:22:35 2010 +0100 +++ b/scripts/poweron/power-on.py Tue May 11 17:23:17 2010 +0100 @@ -15,6 +15,20 @@ Exception.__init__(self, *args) +def waitForXapi(session,host): + attempts = 0 + finished = False + metrics = None + while not finished and (attempts < 120): + attempts = attempts + 1 + time.sleep(5) + metrics = session.xenapi.host.get_metrics(host) + try: + finished = session.xenapi.host_metrics.get_live(metrics) + except: + pass + return str(finished) + def main(session, args): remote_host_uuid = args['remote_host_uuid'] @@ -33,20 +47,21 @@ secret = power_on_config['power_on_password_secret'] secretref=session.xenapi.secret.get_by_uuid(secret) password = session.xenapi.secret.get_value(secretref) - if mode == "iLO": modu= __import__('iLO') - return modu.iLO( ip, user, password) + modu.iLO( ip, user, password) else: modu= __import__('DRAC') - return modu.DRAC(ip, user, password) + modu.DRAC( ip, user, password) + return waitForXapi(session,remote_host) elif mode=="wake-on-lan": modu= __import__('wlan') return modu.wake_on_lan(session, remote_host, remote_host_uuid) # Custom script elif mode!="": modu= __import__(mode) - return modu.custom(session,remote_host,power_on_config) + modu.custom(session,remote_host,power_on_config) + return waitForXapi(session,remote_host) # Disabled else: raise HOST_POWER_ON_NOT_CONFIGURED()