utils/manager/lib/command.py
import subprocess
import sys
import os
class Command:
def __init__(self, path, host=None, user=None, passwd=None):
if not host and not user and not passwd:
self.path = path
else:
self.path = path
self.host = host
self.user = user
self.passwd = passwd
def startup(self, vmx):
sys.stdout.write("\r\nStartup %s!\r\n" % vmx)
subprocess.call([self.path,
"-h", self.host,
"-u", self.user, "-p", self.passwd,
"start", vmx])
def shutdown(self, vmx):
sys.stdout.write("\r\nShutdown %s!\r\n" % vmx)
subprocess.call([self.path,
"-h", self.host,
"-u", self.user, "-p", self.passwd,
"stop", vmx])
def reboot(self, vmx):
sys.stdout.write("\r\nRebooting %s!\r\n" % vmx)
subprocess.call([self.path,
"-h", self.host,
"-u", self.user, "-p", self.passwd,
"reset", vmx, "soft"])
def suspend(self, vmx):
sys.stdout.write("\r\nSuspending %s!\r\n" % vmx)
subprocess.call([self.path,
"-h", self.host,
"-u", self.user, "-p", self.passwd,
"suspend", vmx, "soft"])
def executeCmd(self, vmx, cmd, script=None):
sys.stdout.write("Executing %s %s.\n" % (cmd, script))
if script is not None:
subprocess.call([self.path,
"-h", self.host,
"-u", self.user, "-p", self.passwd,
"-gu", "avtest", "-gp", "avtest",
"runProgramInGuest", vmx, cmd, script])
else:
subprocess.call([self.path,
"-h", self.host,
"-u", self.user, "-p", self.passwd,
"-gu", "avtest", "-gp", "avtest",
"runProgramInGuest", vmx, cmd])
def update(self, vmx):
cscriptPath="c:/windows/system32/cscript.exe"
scriptPath="z:/WUA_SearchDownloadInstall.vbs"
subprocess.call([self.path,
"-h", self.host,
"-u", self.user, "-p", self.passwd,
"-gu", "avtest", "-gp", "avtest",
"runProgramInGuest", vmx, "c:/windows/system32/cscript.exe","c:/Users/avtest/WUA_SearchDownloadInstall.vbs"])
def refreshSnapshot(self, vmx, snapshot):
sys.stdout.write("Deleting current snapshot.\n")
subprocess.call([self.path,
"-h", self.host,
"-u", self.user, "-p", self.passwd,
"deleteSnapshot", vmx, snapshot])
sys.stdout.write("Creating new current snapshot.\n")
subprocess.call([self.path,
"-h", self.host,
"-u", self.user, "-p", self.passwd,
"snapshot", vmx, snapshot])
def revertSnapshot(self, vmx, snapshot):
sys.stdout.write("Reverting to current snapshot.\n")
subprocess.call([self.path,
"-h", self.host,
"-u", self.user, "-p", self.passwd,
"revertToSnapshot", vmx, snapshot])