AVCommon/commands/server/RELOG.py
__author__ = 'fabrizio'
import os
import sys
from AVCommon.logger import logging
from time import sleep
from AVCommon import mq
def execute(vm, protocol, args):
""" server side """
from AVMaster import vm_manager
#logging.debug(" CS Execute")
assert vm, "null vm"
mq = protocol.mq
timeout = 9 #9 = 90 sec; 30 = 300 sec
if args:
timeout = args / 10
mq.reset_connection(vm)
cmd = "/Windows/System32/logoff.exe"
ret = vm_manager.execute(vm, "executeCmd", cmd, [] , 10, True, True)
logging.debug("logoff ret: %s" % ret)
started = False
if ret:
for i in range(6):
if vm_manager.execute(vm, "is_powered_on"):
logging.debug("%s: powered on" % vm)
for i in range(timeout):
if mq.check_connection(vm):
logging.debug("got connection from %s" % vm)
return True, "Login VM"
sleep(10)
logging.debug("%s: try to reboot" % vm)
ret = vm_manager.execute(vm, "reboot")
else:
sleep(10)
return False, "Cannot relogin"