Search in sources :

Example 6 with DefaultJobState

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);
}
Also used : JobObserver(com.baidu.hugegraph.computer.driver.JobObserver) HashMap(java.util.HashMap) DefaultJobState(com.baidu.hugegraph.computer.driver.DefaultJobState) HugeGraphComputerJob(com.baidu.hugegraph.computer.k8s.crd.model.HugeGraphComputerJob) Test(org.junit.Test)

Example 7 with DefaultJobState

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);
}
Also used : JobObserver(com.baidu.hugegraph.computer.driver.JobObserver) HashMap(java.util.HashMap) DefaultJobState(com.baidu.hugegraph.computer.driver.DefaultJobState) Test(org.junit.Test)

Example 8 with DefaultJobState

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);
}
Also used : JobObserver(com.baidu.hugegraph.computer.driver.JobObserver) HashMap(java.util.HashMap) DefaultJobState(com.baidu.hugegraph.computer.driver.DefaultJobState) Test(org.junit.Test)

Example 9 with DefaultJobState

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);
}
Also used : JobObserver(com.baidu.hugegraph.computer.driver.JobObserver) HashMap(java.util.HashMap) DefaultJobState(com.baidu.hugegraph.computer.driver.DefaultJobState) Test(org.junit.Test)

Example 10 with DefaultJobState

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);
}
Also used : Pod(io.fabric8.kubernetes.api.model.Pod) HashMap(java.util.HashMap) DefaultJobState(com.baidu.hugegraph.computer.driver.DefaultJobState) AbstractController(com.baidu.hugegraph.computer.k8s.operator.common.AbstractController) JobObserver(com.baidu.hugegraph.computer.driver.JobObserver) Test(org.junit.Test)

Aggregations

DefaultJobState (com.baidu.hugegraph.computer.driver.DefaultJobState)11 JobObserver (com.baidu.hugegraph.computer.driver.JobObserver)10 HashMap (java.util.HashMap)10 Test (org.junit.Test)10 JobStatus (com.baidu.hugegraph.computer.driver.JobStatus)1 ComputerJobStatus (com.baidu.hugegraph.computer.k8s.crd.model.ComputerJobStatus)1 HugeGraphComputerJob (com.baidu.hugegraph.computer.k8s.crd.model.HugeGraphComputerJob)1 AbstractController (com.baidu.hugegraph.computer.k8s.operator.common.AbstractController)1 ConfigMap (io.fabric8.kubernetes.api.model.ConfigMap)1 ConfigMapBuilder (io.fabric8.kubernetes.api.model.ConfigMapBuilder)1 Pod (io.fabric8.kubernetes.api.model.Pod)1 Secret (io.fabric8.kubernetes.api.model.Secret)1 SecretBuilder (io.fabric8.kubernetes.api.model.SecretBuilder)1