use of com.baidu.hugegraph.computer.driver.DefaultJobState in project hugegraph-computer by hugegraph.
the class MiniKubeTest method testTwiceCreate.
@Test
public void testTwiceCreate() {
super.updateOptions(KubeSpecOptions.MASTER_ARGS.name(), Lists.newArrayList("pwd && sleep 60"));
super.updateOptions(KubeSpecOptions.WORKER_ARGS.name(), Lists.newArrayList("pwd && sleep 60"));
Object defaultSpec = Whitebox.invoke(KubernetesDriver.class, "defaultSpec", this.driver);
Whitebox.setInternalState(this.driver, "defaultSpec", defaultSpec);
Map<String, String> params = new HashMap<>();
params.put(KubeSpecOptions.WORKER_INSTANCES.name(), "1");
String jobId = this.driver.submitJob(ALGORITHM_NAME, params);
JobObserver jobObserver = Mockito.mock(JobObserver.class);
CompletableFuture<Void> future = this.driver.waitJobAsync(jobId, params, jobObserver);
DefaultJobState jobState = new DefaultJobState();
jobState.jobStatus(JobStatus.RUNNING);
Mockito.verify(jobObserver, Mockito.timeout(20000L).atLeast(1)).onJobStateChanged(Mockito.eq(jobState));
HugeGraphComputerJob computerJob = this.operation.withName(KubeUtil.crName(jobId)).get();
computerJob.getSpec().setMasterCpu(Quantity.parse("2"));
this.operation.createOrReplace(computerJob);
UnitTestBase.sleep(1000L);
this.driver.cancelJob(jobId, params);
UnitTestBase.sleep(1000L);
future.cancel(true);
}
use of com.baidu.hugegraph.computer.driver.DefaultJobState in project hugegraph-computer by hugegraph.
the class MiniKubeTest method testJobFailed.
@Test
public void testJobFailed() {
super.updateOptions(KubeSpecOptions.MASTER_ARGS.name(), Lists.newArrayList("cat xxx"));
super.updateOptions(KubeSpecOptions.WORKER_ARGS.name(), Lists.newArrayList("cat xxx"));
Object defaultSpec = Whitebox.invoke(KubernetesDriver.class, "defaultSpec", this.driver);
Whitebox.setInternalState(this.driver, "defaultSpec", defaultSpec);
Map<String, String> params = new HashMap<>();
params.put(KubeSpecOptions.WORKER_INSTANCES.name(), "1");
String jobId = this.driver.submitJob(ALGORITHM_NAME, params);
JobObserver jobObserver = Mockito.mock(JobObserver.class);
CompletableFuture<Void> future = this.driver.waitJobAsync(jobId, params, jobObserver);
DefaultJobState jobState = new DefaultJobState();
jobState.jobStatus(JobStatus.INITIALIZING);
Mockito.verify(jobObserver, Mockito.timeout(15000L).atLeast(1)).onJobStateChanged(Mockito.eq(jobState));
DefaultJobState jobState2 = new DefaultJobState();
jobState2.jobStatus(JobStatus.FAILED);
Mockito.verify(jobObserver, Mockito.timeout(150000L).atLeast(1)).onJobStateChanged(Mockito.eq(jobState2));
UnitTestBase.sleep(500L);
String diagnostics = this.driver.diagnostics(jobId, params);
Assert.assertContains("No such file or directory", diagnostics);
future.cancel(true);
}
use of com.baidu.hugegraph.computer.driver.DefaultJobState in project hugegraph-computer by hugegraph.
the class MiniKubeTest method testJobCancelled.
@Test
public void testJobCancelled() {
super.updateOptions(KubeSpecOptions.MASTER_ARGS.name(), Lists.newArrayList("pwd && sleep 60"));
super.updateOptions(KubeSpecOptions.WORKER_ARGS.name(), Lists.newArrayList("pwd && sleep 60"));
Object defaultSpec = Whitebox.invoke(KubernetesDriver.class, "defaultSpec", this.driver);
Whitebox.setInternalState(this.driver, "defaultSpec", defaultSpec);
Map<String, String> params = new HashMap<>();
params.put(KubeSpecOptions.WORKER_INSTANCES.name(), "1");
String jobId = this.driver.submitJob(ALGORITHM_NAME, params);
JobObserver jobObserver = Mockito.mock(JobObserver.class);
CompletableFuture<Void> future = this.driver.waitJobAsync(jobId, params, jobObserver);
DefaultJobState jobState = new DefaultJobState();
jobState.jobStatus(JobStatus.INITIALIZING);
Mockito.verify(jobObserver, Mockito.timeout(15000L).atLeast(1)).onJobStateChanged(Mockito.eq(jobState));
this.driver.cancelJob(jobId, params);
DefaultJobState jobState2 = new DefaultJobState();
jobState2.jobStatus(JobStatus.CANCELLED);
Mockito.verify(jobObserver, Mockito.timeout(15000L).atLeast(1)).onJobStateChanged(Mockito.eq(jobState2));
future.cancel(true);
}
use of com.baidu.hugegraph.computer.driver.DefaultJobState in project hugegraph-computer by hugegraph.
the class MiniKubeTest method testJobSucceed.
@Test
public void testJobSucceed() {
Map<String, String> params = new HashMap<>();
params.put(KubeSpecOptions.WORKER_INSTANCES.name(), "1");
params.put(ComputerOptions.TRANSPORT_SERVER_PORT.name(), "0");
params.put(ComputerOptions.RPC_SERVER_PORT.name(), "0");
String jobId = this.driver.submitJob(ALGORITHM_NAME, params);
JobObserver jobObserver = Mockito.mock(JobObserver.class);
CompletableFuture<Void> future = this.driver.waitJobAsync(jobId, params, jobObserver);
DefaultJobState jobState = new DefaultJobState();
jobState.jobStatus(JobStatus.INITIALIZING);
Mockito.verify(jobObserver, Mockito.timeout(15000L).atLeast(1)).onJobStateChanged(Mockito.eq(jobState));
DefaultJobState jobState2 = new DefaultJobState();
jobState2.jobStatus(JobStatus.SUCCEEDED);
Mockito.verify(jobObserver, Mockito.timeout(15000L).atLeast(1)).onJobStateChanged(Mockito.eq(jobState2));
future.cancel(true);
}
use of com.baidu.hugegraph.computer.driver.DefaultJobState in project hugegraph-computer by hugegraph.
the class MiniKubeTest method testGetResourceListWithLabels.
@Test
public void testGetResourceListWithLabels() {
Map<String, String> params = new HashMap<>();
params.put(KubeSpecOptions.WORKER_INSTANCES.name(), "1");
params.put(ComputerOptions.TRANSPORT_SERVER_PORT.name(), "0");
params.put(ComputerOptions.RPC_SERVER_PORT.name(), "0");
String jobId = this.driver.submitJob(ALGORITHM_NAME, params);
JobObserver jobObserver = Mockito.mock(JobObserver.class);
CompletableFuture<Void> future = this.driver.waitJobAsync(jobId, params, jobObserver);
DefaultJobState jobState = new DefaultJobState();
jobState.jobStatus(JobStatus.INITIALIZING);
Mockito.verify(jobObserver, Mockito.timeout(15000L).atLeast(1)).onJobStateChanged(Mockito.eq(jobState));
List<AbstractController<?>> controllers = Whitebox.getInternalState(this.entrypoint, "controllers");
AbstractController<?> abstractController = controllers.get(0);
List<Pod> pods = Whitebox.invoke(AbstractController.class, new Class[] { String.class, Class.class, Map.class }, "getResourceListWithLabels", abstractController, this.namespace, Pod.class, new HashMap<String, String>());
Assert.assertNotEquals(0, pods.size());
future.cancel(true);
}
Aggregations