hackedteam/test-av2

View on GitHub
AVCommon/commands/server/RELOG.py

Summary

Maintainability
A
3 hrs
Test Coverage
__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"