hackedteam/test-av

View on GitHub
utils/manager/lib/command.py

Summary

Maintainability
C
1 day
Test Coverage
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])