diff --git a/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/JobClusterActor.java b/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/JobClusterActor.java index 33516839e..5353b0611 100644 --- a/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/JobClusterActor.java +++ b/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/JobClusterActor.java @@ -2178,7 +2178,7 @@ public void onJobClusterUpdateArtifact(UpdateJobClusterArtifactRequest artifactR return; } JobClusterConfig newConfig = new JobClusterConfig.Builder().from(jobClusterMetadata.getJobClusterDefinition().getJobClusterConfig()) - // TODO(swada): do we need to add jobJarURL to UpdateJobClusterArtifactRequest as well? + .withJobJarUrl(artifactReq.getjobJarUrl()) .withArtifactName(artifactReq.getArtifactName()) .withVersion(artifactReq.getVersion()) .withUploadedAt(System.currentTimeMillis()) diff --git a/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/proto/JobClusterManagerProto.java b/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/proto/JobClusterManagerProto.java index b4ca6bfdf..5dda906d9 100644 --- a/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/proto/JobClusterManagerProto.java +++ b/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/proto/JobClusterManagerProto.java @@ -525,6 +525,7 @@ public UpdateSchedulingInfoRequest( public static final class UpdateJobClusterArtifactRequest extends BaseRequest { private final String artifactName; + private final String jobJarUrl; private final String version; private final boolean skipSubmit; private final String user; @@ -535,6 +536,7 @@ public static final class UpdateJobClusterArtifactRequest extends BaseRequest { public UpdateJobClusterArtifactRequest( @JsonProperty("name") final String clusterName, @JsonProperty("url") final String artifact, + @JsonProperty("jobJarUrl") final String jobJarUrl, @JsonProperty("version") final String version, @JsonProperty("skipsubmit") final boolean skipSubmit, @JsonProperty("user") final String user) { @@ -551,6 +553,7 @@ public UpdateJobClusterArtifactRequest( this.clusterName = clusterName; this.artifactName = artifact; + this.jobJarUrl = jobJarUrl != null ? jobJarUrl : "http://" + artifact; this.version = version; this.skipSubmit = skipSubmit; this.user = user; @@ -560,6 +563,10 @@ public String getArtifactName() { return artifactName; } + public String getjobJarUrl() { + return jobJarUrl; + } + public String getVersion() { return version; } @@ -580,6 +587,7 @@ public String getClusterName() { public String toString() { return "UpdateJobClusterArtifactRequest{" + "artifactName='" + artifactName + '\'' + + "jobJarUrl='" + jobJarUrl + '\'' + ", version='" + version + '\'' + ", skipSubmit=" + skipSubmit + ", user='" + user + '\'' + diff --git a/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/domain/JobClusterConfig.java b/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/domain/JobClusterConfig.java index aa1204a74..0d5d63679 100644 --- a/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/domain/JobClusterConfig.java +++ b/mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/domain/JobClusterConfig.java @@ -109,8 +109,8 @@ public static class Builder { public Builder() {} public Builder withJobJarUrl(String jobJarUrl) { - Preconditions.checkNotNull(jobJarUrl, "artifactName cannot be null"); - Preconditions.checkArgument(!jobJarUrl.isEmpty(), "ArtifactName cannot be empty"); + Preconditions.checkNotNull(jobJarUrl, "jobJarUrl cannot be null"); + Preconditions.checkArgument(!jobJarUrl.isEmpty(), "jobJarUrl cannot be empty"); this.jobJarUrl = jobJarUrl; return this; } diff --git a/mantis-control-plane/mantis-control-plane-server/src/test/java/io/mantisrx/master/jobcluster/JobClusterAkkaTest.java b/mantis-control-plane/mantis-control-plane-server/src/test/java/io/mantisrx/master/jobcluster/JobClusterAkkaTest.java index 0a0bdbbad..49bb56c8b 100644 --- a/mantis-control-plane/mantis-control-plane-server/src/test/java/io/mantisrx/master/jobcluster/JobClusterAkkaTest.java +++ b/mantis-control-plane/mantis-control-plane-server/src/test/java/io/mantisrx/master/jobcluster/JobClusterAkkaTest.java @@ -775,7 +775,7 @@ public void testJobClusterArtifactUpdate() throws Exception { JobClusterProto.InitializeJobClusterResponse createResp = probe.expectMsgClass(JobClusterProto.InitializeJobClusterResponse.class); assertEquals(SUCCESS, createResp.responseCode); - UpdateJobClusterArtifactRequest req = new UpdateJobClusterArtifactRequest(clusterName, "a1", "1.0.1", true, "user"); + UpdateJobClusterArtifactRequest req = new UpdateJobClusterArtifactRequest(clusterName, "a1", "http://a1", "1.0.1", true, "user"); jobClusterActor.tell(req, probe.getRef()); UpdateJobClusterArtifactResponse resp = probe.expectMsgClass(UpdateJobClusterArtifactResponse.class); @@ -814,7 +814,7 @@ public void testJobClusterArtifactUpdateNotUniqueFails() throws Exception { JobClusterProto.InitializeJobClusterResponse createResp = probe.expectMsgClass(JobClusterProto.InitializeJobClusterResponse.class); assertEquals(SUCCESS, createResp.responseCode); - UpdateJobClusterArtifactRequest req = new UpdateJobClusterArtifactRequest(clusterName, "a1", "0.0.1", true, "user"); + UpdateJobClusterArtifactRequest req = new UpdateJobClusterArtifactRequest(clusterName, "a1", "http://a1", "0.0.1", true, "user"); jobClusterActor.tell(req, probe.getRef()); UpdateJobClusterArtifactResponse resp = probe.expectMsgClass(UpdateJobClusterArtifactResponse.class); @@ -851,7 +851,7 @@ public void testJobClusterArtifactUpdateMultipleTimes() throws Exception { JobClusterProto.InitializeJobClusterResponse createResp = probe.expectMsgClass(JobClusterProto.InitializeJobClusterResponse.class); assertEquals(SUCCESS, createResp.responseCode); - UpdateJobClusterArtifactRequest req = new UpdateJobClusterArtifactRequest(clusterName, "a1", "1.0.1", true, "user"); + UpdateJobClusterArtifactRequest req = new UpdateJobClusterArtifactRequest(clusterName, "a1", "http://a1", "1.0.1", true, "user"); jobClusterActor.tell(req, probe.getRef()); UpdateJobClusterArtifactResponse resp = probe.expectMsgClass(UpdateJobClusterArtifactResponse.class); @@ -875,7 +875,7 @@ public void testJobClusterArtifactUpdateMultipleTimes() throws Exception { // Update again - req = new UpdateJobClusterArtifactRequest(clusterName, "a2", "1.0.3", true, "user"); + req = new UpdateJobClusterArtifactRequest(clusterName, "a2", "http:/a2", "1.0.3", true, "user"); jobClusterActor.tell(req, probe.getRef()); resp = probe.expectMsgClass(UpdateJobClusterArtifactResponse.class); @@ -2058,7 +2058,7 @@ public void testUpdateJobClusterArtifactWithAutoSubmit() { // Update artifact with skip submit = false String artifact = "newartifact.zip"; String version = "0.0.2"; - jobClusterActor.tell(new UpdateJobClusterArtifactRequest(clusterName, artifact, version,false, user), probe.getRef()); + jobClusterActor.tell(new UpdateJobClusterArtifactRequest(clusterName, artifact, "http://" + artifact, version,false, user), probe.getRef()); UpdateJobClusterArtifactResponse resp = probe.expectMsgClass(UpdateJobClusterArtifactResponse.class); // ensure new job was launched diff --git a/mantis-control-plane/mantis-control-plane-server/src/test/java/io/mantisrx/master/jobcluster/job/JobClusterManagerAkkaTest.java b/mantis-control-plane/mantis-control-plane-server/src/test/java/io/mantisrx/master/jobcluster/job/JobClusterManagerAkkaTest.java index df284720e..a2b7c0453 100644 --- a/mantis-control-plane/mantis-control-plane-server/src/test/java/io/mantisrx/master/jobcluster/job/JobClusterManagerAkkaTest.java +++ b/mantis-control-plane/mantis-control-plane-server/src/test/java/io/mantisrx/master/jobcluster/job/JobClusterManagerAkkaTest.java @@ -1147,6 +1147,7 @@ public void testJobClusterArtifactUpdate() throws MalformedURLException { UpdateJobClusterArtifactRequest req = new JobClusterManagerProto.UpdateJobClusterArtifactRequest( clusterName, "myjar", + "http://myjar", "1.0.1", true, "user");