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()
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()
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()
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()
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)
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)
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)
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)
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()
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)
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()
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)
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)
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)
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)