def test_job_submit(self): HEADING() xmkdir(self.manager, "~/scripts/test") self.pbs.jobid_incr() banner('qsub') jobname = "job-" + self.pbs.jobid + ".pbs" print(jobname) print (self.host) script_template = self.pbs.read_script("etc/job.pbs") r = self.pbs.qsub(jobname, self.host, 'echo "Hello"', template=script_template) pprint(r) #banner('variable list') #pprint(self.pbs.variable_list(r)) assert len(r.keys()) == 1 banner('status') jobid = self.pbs.getid(r) print (jobid) r = self.pbs.jobstatus(self.host, jobid) print(r)
def qsub(self, name, host, script, template=None, kind="dict"): """ Executes the qsub command on a given host. NOTE this method may not yet be fully implemented :param name: name of the script :param host: host on which the script is to be run :param script: The name of the script :param template: The script is wrapped into a template :param kind: The return is passed as dict, yaml, xml :return: """ self.jobid_incr() jobscript = self.create_script(name, script, template) # copy the script to the remote host self._write_to_file(jobscript, name) # copy script to remote host remote_path = self.data.get("cloudmesh", "pbs", host, "scripts") print(remote_path) xmkdir(host, remote_path) manager_host = self.manager(host) # call qsub on the remot host r = Shell.scp(name, manager_host + ":" + remote_path) jobid = Shell.ssh(manager_host, "qsub {0}/{1}".format(remote_path, name)).rstrip() return self.jobstatus(host, jobid, kind=kind)
def test_job_submit(self): HEADING() xmkdir(self.manager, "~/scripts/test") self.pbs.jobid_incr() banner('qsub') jobname = "job-" + self.pbs.jobid + ".pbs" print(jobname) print(self.host) script_template = self.pbs.read_script("etc/job.pbs") r = self.pbs.qsub(jobname, self.host, 'echo "Hello"', template=script_template) pprint(r) #banner('variable list') #pprint(self.pbs.variable_list(r)) assert len(r.keys()) == 1 banner('status') jobid = self.pbs.getid(r) print(jobid) r = self.pbs.jobstatus(self.host, jobid) print(r)
def test_generate_script(self): HEADING() banner("Create Dir") xmkdir(self.manager, "~/scripts/test") assert self.pbs.data.get("cloudmesh.pbs.{0}.manager".format(self.host)) script_template = self.pbs.read_script("etc/job.pbs") jobname = "job-" + self.pbs.jobid job_script = self.pbs.create_script(jobname, self.script, script_template) print(job_script) assert "uname" in job_script
pbs = OpenPBS(deploy=True) manager = pbs.manager(host) pprint(pbs.nodes(host)) pprint(pbs.nodes_distribution(host)) pprint(pbs.nodes_sum(host)) sys.exit() pbs.info() manager = pbs.manager(host) xmkdir(manager, "~/scripts/test") print(pbs) script_template = pbs.read_script("etc/job.pbs") print(script_template) script = """ uname -a """ jobname = "job-" + pbs.jobid job_script = pbs.create_script(jobname, script, script_template) print(job_script)