This is an automated email from the ASF dual-hosted git repository.

cdmikechen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/submarine.git


The following commit(s) were added to refs/heads/master by this push:
     new 18451408 SUBMARINE-1371. fix unsafe deserialization via SnakeYaml in 
YamlEntityProvider
18451408 is described below

commit 1845140883b4bd3228385a556982cbadc19595b6
Author: cdmikechen <cdmikec...@apache.org>
AuthorDate: Sat Mar 11 16:53:25 2023 +0800

    SUBMARINE-1371. fix unsafe deserialization via SnakeYaml in 
YamlEntityProvider
    
    ### What is this PR for?
    Use SnakeYaml's SafeConstructor to replace default Yaml no arguments 
constructor to void unsafe deserialization.
    Link url: https://nvd.nist.gov/vuln/detail/CVE-2022-1471
    
    ### What type of PR is it?
    Bug Fix
    
    ### Todos
    * [x] - Add SafeConstructor
    
    ### What is the Jira issue?
    https://issues.apache.org/jira/browse/SUBMARINE-1371
    
    ### How should this be tested?
    NA
    
    ### Screenshots (if appropriate)
    
    ### Questions:
    * Do the license files need updating? Yes
    * Are there breaking changes for older versions? No
    * Does this need new documentation? No
    
    Author: cdmikechen <cdmikec...@apache.org>
    
    Signed-off-by: cdmikechen <cdmikec...@apache.org>
    
    Closes #1054 from cdmikechen/SUBMARINE-1371 and squashes the following 
commits:
    
    5703a238 [cdmikechen] Update jackson version in LICENSE-binary
    ed5ad3b8 [cdmikechen] Replace snakyaml to jackson yaml
    88e59027 [cdmikechen] fix unsafe deserialization via SnakeYaml in 
YamlEntityProvider
---
 LICENSE-binary                                        | 13 ++++++++-----
 pom.xml                                               | 10 +++++-----
 submarine-server/server-core/pom.xml                  |  7 ++++++-
 .../server/rest/provider/YamlEntityProvider.java      | 18 +++++++++---------
 .../org/apache/submarine/server/utils}/YamlUtils.java | 19 +++++++++++++++++--
 .../server-submitter/submitter-k8s/pom.xml            |  6 ------
 .../server/submitter/k8s/model/AgentPod.java          |  2 +-
 .../server/submitter/k8s/model/common/Configmap.java  |  2 +-
 .../k8s/model/common/PersistentVolumeClaim.java       |  2 +-
 .../k8s/model/istio/IstioVirtualService.java          |  2 +-
 .../submitter/k8s/model/notebook/NotebookCR.java      |  2 +-
 .../submitter/k8s/model/pytorchjob/PyTorchJob.java    |  8 ++++----
 .../model/seldon/SeldonDeploymentPytorchServing.java  |  2 +-
 .../k8s/model/seldon/SeldonDeploymentTFServing.java   |  2 +-
 .../server/submitter/k8s/model/tfjob/TFJob.java       |  4 ++--
 .../submitter/k8s/model/xgboostjob/XGBoostJob.java    |  8 ++++----
 .../k8s/seldon/SeldonDeploymentResourceTest.java      |  2 +-
 17 files changed, 63 insertions(+), 46 deletions(-)

diff --git a/LICENSE-binary b/LICENSE-binary
index 77585881..83c13a99 100644
--- a/LICENSE-binary
+++ b/LICENSE-binary
@@ -206,10 +206,13 @@
 This project bundles some components that are also licensed under the Apache
 License Version 2.0:
 cglib:cglib:2.2.2
-com.fasterxml.jackson.core:jackson-annotations:2.13.4
-com.fasterxml.jackson.core:jackson-databind:2.13.4
-com.fasterxml.jackson.core:jackson-core:2.13.4
-com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.13.4
+com.fasterxml.jackson.core:jackson-annotations:2.14.1
+com.fasterxml.jackson.core:jackson-databind:2.14.1
+com.fasterxml.jackson.core:jackson-core:2.14.1
+com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.10.1
+com.fasterxml.jackson.datatype:jackson-datatype-joda:2.14.1
+com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.1
+com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.12.2
 com.fasterxml.woodstox:woodstox-core:5.0.3
 com.github.stephenc.jcip:jcip-annotations:1.0-1
 com.google.code.findbugs:jsr305:3.0.0
@@ -301,7 +304,7 @@ org.mortbay.jetty:jetty:6.1.26
 org.mybatis:mybatis:3.2.8
 org.xerial.snappy:snappy-java:1.0.5
 org.xerial.snappy:snappy-java:1.1.1.3
-org.yaml:snakeyaml:1.16
+org.yaml:snakeyaml:1.33
 xerces:xercesImpl:2.9.1
 xml-apis:xml-apis:1.3.04
 
diff --git a/pom.xml b/pom.xml
index 63f3cadc..2624524e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -74,10 +74,10 @@
     <pagehelper.version>5.1.10</pagehelper.version>
 
     <gson.version>2.8.9</gson.version>
-    <jackson-databind.version>2.13.4</jackson-databind.version>
-    <jackson-annotations.version>2.13.4</jackson-annotations.version>
-    <jackson-core.version>2.13.4</jackson-core.version>
-    
<jackson-module-jaxb-annotations.version>2.13.4</jackson-module-jaxb-annotations.version>
+    <jackson-databind.version>2.14.1</jackson-databind.version>
+    <jackson-annotations.version>2.14.1</jackson-annotations.version>
+    <jackson-core.version>2.14.1</jackson-core.version>
+    
<jackson-module-jaxb-annotations.version>2.14.1</jackson-module-jaxb-annotations.version>
     <commons-configuration.version>1.10</commons-configuration.version>
     <commons-httpclient.version>3.1</commons-httpclient.version>
 
@@ -102,7 +102,7 @@
     <log4j.version>1.2.17</log4j.version>
     <commons.logging.version>1.1.3</commons.logging.version>
     <commons.cli.version>1.2</commons.cli.version>
-    <snakeyaml.version>1.32</snakeyaml.version>
+    <snakeyaml.version>1.33</snakeyaml.version>
     <httpcore.version>4.4.4</httpcore.version>
     <httpclient.version>4.5.2</httpclient.version>
     <commons-lang.version>2.6</commons-lang.version>
diff --git a/submarine-server/server-core/pom.xml 
b/submarine-server/server-core/pom.xml
index ebe8cb44..4ef4a71e 100644
--- a/submarine-server/server-core/pom.xml
+++ b/submarine-server/server-core/pom.xml
@@ -293,6 +293,11 @@
       <artifactId>jackson-core</artifactId>
       <version>${jackson-core.version}</version>
     </dependency>
+    <dependency>
+      <groupId>com.fasterxml.jackson.datatype</groupId>
+      <artifactId>jackson-datatype-joda</artifactId>
+      <version>${jackson-databind.version}</version>
+    </dependency>
 
     <dependency>
       <groupId>com.google.code.gson</groupId>
@@ -391,7 +396,7 @@
     <dependency>
       <groupId>com.github.wnameless.json</groupId>
       <artifactId>json-flattener</artifactId>
-      <version>0.9.0</version>
+      <version>0.16.1</version>
       <exclusions>
         <exclusion>
           <groupId>org.apache.commons</groupId>
diff --git 
a/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/provider/YamlEntityProvider.java
 
b/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/provider/YamlEntityProvider.java
index bce9b7b9..c6bde30d 100644
--- 
a/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/provider/YamlEntityProvider.java
+++ 
b/submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/provider/YamlEntityProvider.java
@@ -19,7 +19,7 @@
 
 package org.apache.submarine.server.rest.provider;
 
-import org.yaml.snakeyaml.Yaml;
+import org.apache.submarine.server.utils.YamlUtils;
 
 import javax.ws.rs.Consumes;
 import javax.ws.rs.Produces;
@@ -35,6 +35,7 @@ import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
+import java.nio.charset.StandardCharsets;
 import java.util.Scanner;
 
 @Provider
@@ -54,14 +55,14 @@ public class YamlEntityProvider<T> implements 
MessageBodyWriter<T>, MessageBodyR
       MediaType mediaType,
       MultivaluedMap<String, String> httpHeaders, InputStream entityStream)
       throws WebApplicationException {
-    Yaml yaml = new Yaml();
-    T t = yaml.loadAs(toString(entityStream), type);
+    T t = YamlUtils.readValue(toString(entityStream), type);
     return t;
   }
 
   public static String toString(InputStream inputStream) {
-    return new Scanner(inputStream, "UTF-8")
-        .useDelimiter("\\A").next();
+    try (Scanner scanner = new Scanner(inputStream, StandardCharsets.UTF_8)) {
+      return scanner.useDelimiter("\\A").next();
+    }
   }
 
   @Override
@@ -83,9 +84,8 @@ public class YamlEntityProvider<T> implements 
MessageBodyWriter<T>, MessageBodyR
       Annotation[] annotations,
       MediaType mediaType, MultivaluedMap<String, Object> httpHeaders,
       OutputStream entityStream) throws IOException, WebApplicationException {
-    Yaml yaml = new Yaml();
-    OutputStreamWriter writer = new OutputStreamWriter(entityStream);
-    yaml.dump(t, writer);
-    writer.close();
+    try (OutputStreamWriter writer = new OutputStreamWriter(entityStream)) {
+      YamlUtils.writeValue(writer, t);
+    }
   }
 }
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/util/YamlUtils.java
 
b/submarine-server/server-core/src/main/java/org/apache/submarine/server/utils/YamlUtils.java
similarity index 84%
rename from 
submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/util/YamlUtils.java
rename to 
submarine-server/server-core/src/main/java/org/apache/submarine/server/utils/YamlUtils.java
index 06d0ea1c..a31debf0 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/util/YamlUtils.java
+++ 
b/submarine-server/server-core/src/main/java/org/apache/submarine/server/utils/YamlUtils.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.submarine.server.submitter.k8s.util;
+package org.apache.submarine.server.utils;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -29,9 +29,13 @@ import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
 import com.fasterxml.jackson.datatype.joda.JodaModule;
 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 
+import java.io.IOException;
+import java.io.Writer;
+
 /**
  * Support the conversion of objects to yaml format,
- * so that the resource information can be displayed on the log in a more k8s 
declarative and readable manner
+ * so that the resource information can be displayed on the log in a more k8s 
declarative and readable manner,
+ * or used for {@link 
org.apache.submarine.server.rest.provider.YamlEntityProvider}
  */
 public class YamlUtils {
 
@@ -71,4 +75,15 @@ public class YamlUtils {
       throw new RuntimeException("Read yaml failed! " + tClass.getName(), ex);
     }
   }
+
+  /**
+   * Write object to writer
+   */
+  public static void writeValue(Writer writer, Object value) {
+    try {
+      YAML_MAPPER.writeValue(writer, value);
+    } catch (IOException ex) {
+      throw new RuntimeException("Write yaml failed! " + 
value.getClass().getName(), ex);
+    }
+  }
 }
diff --git a/submarine-server/server-submitter/submitter-k8s/pom.xml 
b/submarine-server/server-submitter/submitter-k8s/pom.xml
index d04b3096..77218fe7 100644
--- a/submarine-server/server-submitter/submitter-k8s/pom.xml
+++ b/submarine-server/server-submitter/submitter-k8s/pom.xml
@@ -115,12 +115,6 @@
       <scope>test</scope>
     </dependency>
 
-    <dependency>
-      <groupId>com.fasterxml.jackson.datatype</groupId>
-      <artifactId>jackson-datatype-joda</artifactId>
-      <version>${jackson-databind.version}</version>
-    </dependency>
-
     <dependency>
       <groupId>com.h2database</groupId>
       <artifactId>h2</artifactId>
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/AgentPod.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/AgentPod.java
index 9f4937bd..65d5ba17 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/AgentPod.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/AgentPod.java
@@ -33,7 +33,7 @@ import 
io.kubernetes.client.openapi.models.V1ObjectMetaBuilder;
 import io.kubernetes.client.openapi.models.V1Pod;
 import io.kubernetes.client.openapi.models.V1PodSpec;
 import org.apache.submarine.server.submitter.k8s.client.K8sClient;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/common/Configmap.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/common/Configmap.java
index b5a703eb..35676b41 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/common/Configmap.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/common/Configmap.java
@@ -31,7 +31,7 @@ import org.apache.submarine.server.submitter.k8s.K8sSubmitter;
 import org.apache.submarine.server.submitter.k8s.model.K8sResource;
 import org.apache.submarine.server.submitter.k8s.util.JsonUtils;
 import org.apache.submarine.server.submitter.k8s.util.OwnerReferenceUtils;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/common/PersistentVolumeClaim.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/common/PersistentVolumeClaim.java
index 7770075c..b0771643 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/common/PersistentVolumeClaim.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/common/PersistentVolumeClaim.java
@@ -33,7 +33,7 @@ import org.apache.submarine.server.submitter.k8s.K8sSubmitter;
 import org.apache.submarine.server.submitter.k8s.model.K8sResource;
 import org.apache.submarine.server.submitter.k8s.util.NotebookUtils;
 import org.apache.submarine.server.submitter.k8s.util.OwnerReferenceUtils;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/istio/IstioVirtualService.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/istio/IstioVirtualService.java
index 6a35cffd..ddcd6b3b 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/istio/IstioVirtualService.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/istio/IstioVirtualService.java
@@ -29,7 +29,7 @@ import org.apache.submarine.serve.utils.IstioConstants;
 import org.apache.submarine.server.submitter.k8s.client.K8sClient;
 import org.apache.submarine.server.submitter.k8s.K8sSubmitter;
 import org.apache.submarine.server.submitter.k8s.model.K8sResource;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/notebook/NotebookCR.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/notebook/NotebookCR.java
index 6dcd0a75..fe08419f 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/notebook/NotebookCR.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/notebook/NotebookCR.java
@@ -34,7 +34,7 @@ import 
org.apache.submarine.server.submitter.k8s.model.K8sResource;
 import org.apache.submarine.server.submitter.k8s.parser.NotebookSpecParser;
 import org.apache.submarine.server.submitter.k8s.util.NotebookUtils;
 import org.apache.submarine.server.submitter.k8s.util.OwnerReferenceUtils;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 import org.joda.time.DateTime;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/pytorchjob/PyTorchJob.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/pytorchjob/PyTorchJob.java
index 7d38ed59..c279e542 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/pytorchjob/PyTorchJob.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/pytorchjob/PyTorchJob.java
@@ -39,7 +39,7 @@ import 
org.apache.submarine.server.submitter.k8s.model.mljob.MLJobReplicaSpec;
 import org.apache.submarine.server.submitter.k8s.parser.ExperimentSpecParser;
 import org.apache.submarine.server.submitter.k8s.util.JsonUtils;
 import org.apache.submarine.server.submitter.k8s.util.MLJobConverter;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -88,11 +88,11 @@ public class PyTorchJob extends MLJob {
         MLJobReplicaSpec replicaSpec = new MLJobReplicaSpec();
         replicaSpec.setReplicas(taskSpec.getReplicas());
         V1PodTemplateSpec podTemplateSpec = 
ExperimentSpecParser.parseTemplateSpec(taskSpec, experimentSpec);
-        
+
         if (initContainer != null && replicaType.equals("Master")) {
-          podTemplateSpec.getSpec().addInitContainersItem(initContainer);  
+          podTemplateSpec.getSpec().addInitContainersItem(initContainer);
         }
-        
+
         replicaSpec.setTemplate(podTemplateSpec);
         replicaSpecMap.put(PyTorchJobReplicaType.valueOf(replicaType), 
replicaSpec);
       } else {
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentPytorchServing.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentPytorchServing.java
index 4082cc3c..328f1c23 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentPytorchServing.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentPytorchServing.java
@@ -27,7 +27,7 @@ import org.apache.submarine.serve.seldon.SeldonDeployment;
 import org.apache.submarine.server.submitter.k8s.client.K8sClient;
 import 
org.apache.submarine.server.submitter.k8s.model.istio.IstioVirtualService;
 import org.apache.submarine.server.submitter.k8s.util.OwnerReferenceUtils;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentTFServing.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentTFServing.java
index 44518f25..fe4c01e0 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentTFServing.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/seldon/SeldonDeploymentTFServing.java
@@ -26,7 +26,7 @@ import 
org.apache.submarine.serve.seldon.tensorflow.SeldonTFServing;
 import org.apache.submarine.server.submitter.k8s.client.K8sClient;
 import 
org.apache.submarine.server.submitter.k8s.model.istio.IstioVirtualService;
 import org.apache.submarine.server.submitter.k8s.util.OwnerReferenceUtils;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/tfjob/TFJob.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/tfjob/TFJob.java
index 1b9fe5a3..1eb96669 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/tfjob/TFJob.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/tfjob/TFJob.java
@@ -40,7 +40,7 @@ import 
org.apache.submarine.server.submitter.k8s.model.mljob.MLJobReplicaSpec;
 import org.apache.submarine.server.submitter.k8s.parser.ExperimentSpecParser;
 import org.apache.submarine.server.submitter.k8s.util.JsonUtils;
 import org.apache.submarine.server.submitter.k8s.util.MLJobConverter;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -69,7 +69,7 @@ public class TFJob extends MLJob {
     setGroup(CRD_TF_GROUP_V1);
     // set spec
     setSpec(parseTFJobSpec(experimentSpec));
-    
+
     V1Container initContainer = 
this.getExperimentHandlerContainer(experimentSpec);
     if (initContainer != null) {
       Map<TFJobReplicaType, MLJobReplicaSpec> replicaSet = 
this.getSpec().getReplicaSpecs();
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/xgboostjob/XGBoostJob.java
 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/xgboostjob/XGBoostJob.java
index 740b868c..f46060ad 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/xgboostjob/XGBoostJob.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/xgboostjob/XGBoostJob.java
@@ -39,7 +39,7 @@ import 
org.apache.submarine.server.submitter.k8s.model.mljob.MLJobReplicaSpec;
 import org.apache.submarine.server.submitter.k8s.parser.ExperimentSpecParser;
 import org.apache.submarine.server.submitter.k8s.util.JsonUtils;
 import org.apache.submarine.server.submitter.k8s.util.MLJobConverter;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -81,11 +81,11 @@ public class XGBoostJob extends MLJob {
         MLJobReplicaSpec replicaSpec = new MLJobReplicaSpec();
         replicaSpec.setReplicas(taskSpec.getReplicas());
         V1PodTemplateSpec podTemplateSpec = 
ExperimentSpecParser.parseTemplateSpec(taskSpec, experimentSpec);
-        
+
         if (initContainer != null && replicaType.equals("Master")) {
-          podTemplateSpec.getSpec().addInitContainersItem(initContainer);  
+          podTemplateSpec.getSpec().addInitContainersItem(initContainer);
         }
-        
+
         replicaSpec.setTemplate(podTemplateSpec);
         replicaSpecMap.put(XGBoostJobReplicaType.valueOf(replicaType), 
replicaSpec);
       } else {
diff --git 
a/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/seldon/SeldonDeploymentResourceTest.java
 
b/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/seldon/SeldonDeploymentResourceTest.java
index a18697ae..91d53b0b 100644
--- 
a/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/seldon/SeldonDeploymentResourceTest.java
+++ 
b/submarine-server/server-submitter/submitter-k8s/src/test/java/org/apache/submarine/server/submitter/k8s/seldon/SeldonDeploymentResourceTest.java
@@ -24,7 +24,7 @@ import 
org.apache.submarine.server.submitter.k8s.model.seldon.SeldonDeploymentFa
 import 
org.apache.submarine.server.submitter.k8s.model.seldon.SeldonDeploymentPytorchServing;
 import 
org.apache.submarine.server.submitter.k8s.model.seldon.SeldonDeploymentTFServing;
 import org.apache.submarine.server.submitter.k8s.model.seldon.SeldonResource;
-import org.apache.submarine.server.submitter.k8s.util.YamlUtils;
+import org.apache.submarine.server.utils.YamlUtils;
 import org.junit.Assert;
 import org.junit.Test;
 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@submarine.apache.org
For additional commands, e-mail: dev-h...@submarine.apache.org

Reply via email to