예제 #1
0
def cleanup_eng(config, mskengname, username, password, protocol,
                includeadmin):
    """This module will complete cleanup engine for fresh start"""

    print_banner()
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        print(" mskengname    = {0}".format(mskengname))
        print(" username      = {0}".format(username))
        print(" protocol      = {0}".format(protocol))
        print(" includeadmin  = {0}".format(includeadmin))

    try:
        mskai = masking(
            config,
            mskengname=mskengname,
            username=username,
            password=password,
            protocol=protocol,
            includeadmin=includeadmin,
        )
        mskai.cleanup_eng()
        sys.exit(0)
    except Exception as e:
        print_exception_exit1()
예제 #2
0
def pull_currjoblist(config, jobname, envname, username, password, protocol,
                     poolname):
    """This module will pull current job execution list from all engines"""

    print_banner()
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        print(" jobname  = {0}".format(jobname))
        print(" envname  = {0}".format(envname))
        print(" username = {0}".format(username))
        print(" protocol = {0}".format(protocol))

    try:
        mskai = masking(
            config,
            jobname=jobname,
            envname=envname,
            username=username,
            password=password,
            protocol=protocol,
            poolname=poolname,
        )
        mskai.pull_currjoblist()
        sys.exit(0)
    except Exception as e:
        print_exception_exit1()
예제 #3
0
def sync_globalobj(
    config,
    srcmskengname,
    tgtmskengname,
    globalobjsync,
    username,
    password,
    protocol,
):
    """This module will sync global objects between 2 engines"""

    print_banner()
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        print(" srcmskengname = {0}".format(srcmskengname))
        print(" tgtmskengname = {0}".format(tgtmskengname))
        print(" globalobjsync = {0}".format(globalobjsync))
        print(" username      = {0}".format(username))
        print(" protocol      = {0}".format(protocol))

    try:
        mskai = masking(
            config,
            srcmskengname=srcmskengname,
            tgtmskengname=tgtmskengname,
            globalobjsync=globalobjsync,
            username=username,
            password=password,
            protocol=protocol,
        )
        mskai.sync_globalobj()
        sys.exit(0)
    except Exception as e:
        print_exception_exit1()
예제 #4
0
def compare_revhash(
    config,
    srcmskengname,
    tgtmskengname,
    showmatched,
    username,
    password,
    protocol,
):
    """This module will compare revhash between 2 engines"""

    print_banner()
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        print(" srcmskengname = {0}".format(srcmskengname))
        print(" tgtmskengname = {0}".format(tgtmskengname))
        print(" showmatched   = {0}".format(showmatched))
        print(" username      = {0}".format(username))
        print(" protocol      = {0}".format(protocol))

    try:
        mskai = masking(
            config,
            srcmskengname=srcmskengname,
            tgtmskengname=tgtmskengname,
            username=username,
            password=password,
            protocol=protocol,
            showmatched=showmatched,
        )
        mskai.compare_obj_revhash()
        sys.exit(0)
    except Exception as e:
        print_exception_exit1()
예제 #5
0
def duplicate_mskjobs(config, mskengname, username, password, protocol,
                      action):
    """This module will list/resolve duplicate masking job names in engine"""

    print_banner()
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        print(" mskengname    = {0}".format(mskengname))
        print(" username      = {0}".format(username))
        print(" protocol      = {0}".format(protocol))
        print(" action        = {0}".format(action))
        print(" ")

    try:
        mskai = masking(
            config,
            mskengname=mskengname,
            username=username,
            password=password,
            protocol=protocol,
            action=action,
        )
        mskai.duplicate_mskjobs()
        sys.exit(0)
    except Exception as e:
        print_exception_exit1()
    sys.exit(0)
예제 #6
0
def offline_restore_env(config, mskengname, envname, username, password,
                        protocol, backup_dir):
    """This module will offline restore engine from backups"""

    print_banner()
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        print(" mskengname    = {0}".format(mskengname))
        print(" envname       = {0}".format(envname))
        print(" username      = {0}".format(username))
        print(" protocol      = {0}".format(protocol))
        print(" backup_dir    = {0}".format(backup_dir))

    try:
        mskai = masking(
            config,
            mskengname=mskengname,
            envname=envname,
            username=username,
            password=password,
            protocol=protocol,
            backup_dir=backup_dir,
        )
        mskai.offline_restore_env()
    except Exception as e:
        print_exception_exit1()
    sys.exit(0)
예제 #7
0
def del_engine(config, mskengname):
    """This module will remove engine from pool"""
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        click.echo("mskengname = {0}".format(mskengname))
    mskai = masking(config, mskengname=mskengname)
    mskai.del_engine()
    sys.exit(0)
예제 #8
0
def gen_dxtools_conf(config, protocol):
    """This module will generate dxtools conf file for engine"""
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")

    print_banner()
    mskai = masking(config, protocol=protocol)
    mskai.gen_dxtools_conf()
    sys.exit(0)
예제 #9
0
def list_engine(config):
    """This module will list engine from pool"""
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")

    try:
        mskai = masking(config, noparam="noparam")
        mskai.list_engine()
        sys.exit(0)
    except Exception as e:
        print_exception_exit1()
예제 #10
0
def pull_joblist(config, mskengname, username, password, protocol):
    """This module will pull joblist from engine"""
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        click.echo("mskengname = {0}".format(mskengname))
        click.echo("username   = {0}".format(username))
        click.echo("protocol   = {0}".format(protocol))

    print_banner()
    mskai = masking(
        config,
        mskengname=mskengname,
        username=username,
        password=password,
        protocol=protocol,
    )
    mskai.pull_joblist()
    sys.exit(0)
예제 #11
0
def sync_eng(
    config,
    srcmskengname,
    tgtmskengname,
    globalobjsync,
    username,
    password,
    protocol,
    delextra,
    excludenonadmin,
):
    """This module will complete sync 2 engines"""

    print_banner()
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        print(" srcmskengname   = {0}".format(srcmskengname))
        print(" tgtmskengname   = {0}".format(tgtmskengname))
        print(" globalobjsync   = {0}".format(globalobjsync))
        print(" username        = {0}".format(username))
        print(" protocol        = {0}".format(protocol))
        print(" delextra        = {0}".format(delextra))
        print(" excludenonadmin = {0}".format(excludenonadmin))
        print(" ")
    globalobjsync = True
    try:
        mskai = masking(
            config,
            srcmskengname=srcmskengname,
            tgtmskengname=tgtmskengname,
            globalobjsync=globalobjsync,
            username=username,
            password=password,
            protocol=protocol,
            delextra=delextra,
            excludenonadmin=excludenonadmin,
        )
        mskai.sync_eng()
        sys.exit(0)
    except Exception as e:
        print_exception_exit1()
예제 #12
0
def add_engine(config, mskengname, totalgb, systemgb, poolname):
    """This module will add engine to pool"""

    print_banner()
    scriptdir = os.path.dirname(os.path.abspath(__file__))
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")

    globals.arguments["--debug"] = config.debug
    globals.arguments["--config"] = "{}/dxtools.conf".format(scriptdir)

    mskai = masking(
        config,
        mskengname=mskengname,
        totalgb=totalgb,
        systemgb=systemgb,
        poolname=poolname,
    )
    mskai.add_engine()
    sys.exit(0)
예제 #13
0
def test_connectors(config, mskengname, username, password, protocol):
    """This module will help to test all connectors"""

    print_banner()
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        print(" mskengname = {0}".format(mskengname))
        print(" username      = {0}".format(username))
        print(" protocol      = {0}".format(protocol))

    try:
        mskai = masking(
            config,
            mskengname=mskengname,
            username=username,
            password=password,
            protocol=protocol,
        )
        mskai.test_all_connectors()
    except Exception as e:
        print_exception_exit1()
    sys.exit(0)
예제 #14
0
def run_job(
    config,
    jobname,
    envname,
    run,
    mock,
    username,
    password,
    protocol,
    dxtoolkit_path,
    poolname,
):
    """This module will execute masking job on best candidate engine"""

    print_banner()
    scriptdir = os.path.dirname(os.path.abspath(__file__))
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        print(" jobname        = {0}".format(jobname))
        print(" envname        = {0}".format(envname))
        print(" run            = {0}".format(run))
        print(" mock           = {0}".format(mock))
        print(" username       = {0}".format(username))
        print(" protocol       = {0}".format(protocol))
        print(" dxtoolkit_path = {0}".format(dxtoolkit_path))
        print(" poolname       = {0}".format(poolname))

    globals.arguments["--debug"] = config.debug
    globals.arguments["--config"] = "{}/dxtools.conf".format(scriptdir)
    globals.arguments["--all"] = True
    globals.arguments["--engine"] = None
    globals.arguments["--logdir"] = "./dx_skel.log"
    globals.arguments["--parallel"] = None
    globals.arguments["--poll"] = "10"
    globals.arguments["--version"] = False
    globals.arguments["--single_thread"] = True
    globals.arguments["--dxtoolkit_path"] = dxtoolkit_path

    try:
        mskai = masking(
            config,
            jobname=jobname,
            envname=envname,
            run=run,
            mock=mock,
            username=username,
            password=password,
            protocol=protocol,
            poolname=poolname,
        )
        if not mock:
            mskai.pull_jobexeclist()
        chk_status = mskai.chk_job_running()
        # print("chk_status={}".format(chk_status))
        if chk_status != 0:
            # print(
            #     " Job {} on Env {} is already running on engine {}. Please retry later".format(
            #         jobname, envname, chk_status
            #     )
            # )
            # sys.exit(1)
            chk_status_arr = chk_status.split(":")
            job_status = chk_status_arr[1]
            job_engine_name = chk_status_arr[0]
            raise Exception(
                "ERROR: Job {} on Env {} is already {} on engine {}. Please retry later"
                .format(jobname, envname, job_status, job_engine_name))

    except Exception as e:
        print_exception_exit1()

    try:
        print_debug(" ")
        print_debug(" ")
        print_debug(" ")
        print_debug(" ")
        print_debug_banner("Capture CPU usage data...")
        scriptdir = os.path.dirname(os.path.abspath(__file__))
        outputdir = os.path.join(scriptdir, "output")
        print_debug("dxtoolkit_path: {}".format(dxtoolkit_path))
        aive = virtualization(
            config,
            config_file_path="{}/dxtools.conf".format(scriptdir),
            scriptdir=scriptdir,
            outputdir=outputdir,
            protocol=protocol,
            dxtoolkit_path=dxtoolkit_path,
        )
        print_debug("dxtoolkit_path: {}".format(dxtoolkit_path))
        aive.gen_cpu_file()
        print_debug("Capture CPU usage data : done")
        print_debug(" ")
        print_debug(" ")
        print_debug(" ")
        print_debug(" ")
    except Exception as e:
        print_exception_exit1()

    print_debug_banner("Execute Job run module...")
    try:
        mskai = masking(
            config,
            jobname=jobname,
            envname=envname,
            run=run,
            mock=mock,
            username=username,
            password=password,
            protocol=protocol,
            poolname=poolname,
        )
        mskai.run_job()
    except Exception as e:
        print_exception_exit1()
    sys.exit(0)
예제 #15
0
def list_eng_usage(config, username, password, protocol, mock, dxtoolkit_path):
    """This module will find green engines"""

    print_banner()
    globals.initialize(config.debug, config.verbose, script_dir)
    if config.verbose or config.debug:
        click.echo("Verbose mode enabled")
        print(" mock     = {0}".format(mock))
        print(" username = {0}".format(username))
        print(" protocol      = {0}".format(protocol))
        print(" dxtoolkit_path = {0}".format(dxtoolkit_path))

    globals.arguments["--debug"] = config.debug
    globals.arguments["--config"] = "{}/dxtools.conf".format(script_dir)
    globals.arguments["--all"] = True
    globals.arguments["--engine"] = None
    globals.arguments["--logdir"] = "{}/dx_skel.log".format(output_dir)
    globals.arguments["--parallel"] = None
    globals.arguments["--poll"] = "10"
    globals.arguments["--version"] = False
    globals.arguments["--single_thread"] = True
    globals.arguments["--dxtoolkit_path"] = dxtoolkit_path

    try:
        mskai = masking(
            config,
            mock=mock,
            username=username,
            password=password,
            protocol=protocol,
        )
        if not mock:
            mskai.pull_jobexeclist()

    except Exception as e:
        print_exception_exit1()

    try:
        print_debug(" ")
        print_debug("Capture CPU usage data...")
        scriptdir = os.path.dirname(os.path.abspath(__file__))
        outputdir = os.path.join(scriptdir, "output")
        print_debug("dxtoolkit_path: {}".format(dxtoolkit_path))
        aive = virtualization(
            config,
            config_file_path="{}/dxtools.conf".format(script_dir),
            scriptdir=scriptdir,
            outputdir=outputdir,
            protocol=protocol,
            dxtoolkit_path=dxtoolkit_path,
        )
        print_debug("dxtoolkit_path: {}".format(dxtoolkit_path))
        aive.gen_cpu_file()
        print_debug("Capture CPU usage data : done")
        print_debug(" ")
    except Exception as e:
        print("Error in VE module")
        # sys.exit(1)
        # raise Exception("ERROR: Error in VE module")
        print_exception_exit1()

    try:
        mskai = masking(
            config,
            mock=mock,
            username=username,
            password=password,
            protocol=protocol,
        )
        mskai.list_eng_usage()
    except Exception as e:
        print_exception_exit1()
    sys.exit(0)