示例#1
0
 def test_start_worker(self):
     client.initialize_server_files("dist_job_mgr.json_model.ModelAdapter",
                                    config_dir=self.dir)
     c = client.get_local_connection(self.dir)
     n = c.create_node(getpass.getuser(), 20000, "localhost",
                       public_ip="127.0.0.1")
     j = c.start_job("test", JobType.ONE_TIME_JOB, 1,
                     "test of start worker",
                     requested_nodes=["localhost"])
     (s, r) = c.run_task_on_all_nodes_of_job(j, "StartWorker", "StartWorker")
     self.assertEqual(s, TaskStatus.TASK_SUCCESSFUL)
     tr = c.run_command_task(j, n, "ls", ["/bin/ls"])
     self.assertEqual(tr.status, TaskStatus.TASK_SUCCESSFUL)
     (s, r) = c.run_task_on_all_nodes_of_job(j, "Command", "ls",
                                             ["/bin/ls"], cwd=None)
     self.assertEqual(s, TaskStatus.TASK_SUCCESSFUL)
     (s, r) = c.run_task_on_all_nodes_of_job(j, "StopWorker", "StopWorker")
     self.assertEqual(s, TaskStatus.TASK_SUCCESSFUL)
     dest = os.path.join(self.dir, os.path.basename(__file__))
     tr = c.run_copy_task(j, n, "copy files",
                          __file__, dest)
     self.assertEqual(tr.status, TaskStatus.TASK_SUCCESSFUL)
     self.assertTrue(os.path.exists(dest))
     c.stop_job(j, JobStatus.JOB_SUCCESSFUL, comment="done")
     c.delete_job(j)
     c.delete_node("localhost")
示例#2
0
 def test_bootstrap(self):
     djm_path = os.path.abspath(os.path.expanduser(WORKER_DIR))
     if os.path.exists(djm_path): # there is an existing worker
         worker_exe = os.path.join(djm_path, "python/bin/djm-worker")
         if os.path.exists(worker_exe):
             subprocess.check_call([worker_exe, "stop"], shell=True)
         shutil.rmtree(djm_path)
     client.initialize_server_files("dist_job_mgr.json_model.ModelAdapter",
                                    config_dir=self.dir,
                                    djm_package=self.djm_package)
     c = client.get_local_connection(self.dir)
     n = c.create_node(getpass.getuser(), 20000, "localhost",
                       public_ip="127.0.0.1")
     j = c.start_job("test", JobType.ONE_TIME_JOB, 1,
                     "test of start worker",
                     requested_nodes=["localhost"])
     tr = c.run_task(j, "BootstrapWorker", "bootstrap test", "localhost")
     self.assertEqual(tr.status, TaskStatus.TASK_SUCCESSFUL)
     tr = c.run_task(j, "BootstrapWorker", "bootstrap test with worker already present", "localhost")
     self.assertEqual(tr.status, TaskStatus.TASK_SUCCESSFUL)
     worker_script = os.path.join(djm_path, "python/bin/djm-worker")
     self.assertTrue(os.path.exists(worker_script),
                     "Worker script %s does not exist" % worker_script)
     tr = c.run_task(j, "StartWorker", "check that bootstrapped worker is startable",
                     "localhost")
     self.assertEqual(tr.status, TaskStatus.TASK_SUCCESSFUL)
     tr = c.run_task(j, "StopWorker", "cleanup",
                     "localhost")
     self.assertEqual(tr.status, TaskStatus.TASK_SUCCESSFUL)
     c.stop_job(j, JobStatus.JOB_SUCCESSFUL, comment="done")
示例#3
0
 def test_local_client(self):
     client.initialize_server_files("dist_job_mgr.mem_model.ModelAdapter",
                                    config_dir=self.dir)
     c = client.get_local_connection(self.dir)
     c.create_static_pool("p1")
     c.create_node("joe", 20000, "n1",
                   hostname="localhost", pool_name="p1")
     c.create_node("joe", 20001, "n2",
                   private_ip="127.0.0.1", pool_name="p1")
     j = c.start_job("test", JobType.ONE_TIME_JOB, 2, "this is a test job",
                     node_pool_name="p1")
     t = c.run_task(j, "Test", "test task", "n1", "arg1", kwarg1=1)
     c.stop_job(j, JobStatus.JOB_SUCCESSFUL, comment="testing")
     c.delete_job(j)
     c.delete_node("n1")
     c.delete_static_pool("p1")
示例#4
0
 def run(self, options, args):
     client.initialize_server_files(
         options.model_class, config_dir=options.server_config_dir, djm_package=options.djm_package
     )
     print "Initialized server at %s" % options.server_config_dir
     return 0