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

krisztiankasa pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ambari-infra.git


The following commit(s) were added to refs/heads/master by this push:
     new 47f9f74  AMBARI-24777 - Infra Manager: Remove dependencies due to 
security concerns. (#7)
47f9f74 is described below

commit 47f9f7474582ee543aaa0d70bb3699634bc8a7ab
Author: kasakrisz <33458261+kasakr...@users.noreply.github.com>
AuthorDate: Wed Oct 17 15:39:56 2018 +0200

    AMBARI-24777 - Infra Manager: Remove dependencies due to security concerns. 
(#7)
---
 .../ambari/infra/steps/AbstractInfraSteps.java     |   2 +-
 .../test/resources/stories/infra_api_tests.story   |   2 +-
 ambari-infra-manager/pom.xml                       |  72 +++++++--
 .../java/org/apache/ambari/infra/InfraManager.java |   9 +-
 .../conf/InfraManagerJerseyResourceConfig.java     |   9 +-
 .../infra/conf/InfraManagerServletConfig.java      |  35 +----
 .../conf/InfraManagerWebServerCustomizer.java      |  51 +++++++
 .../infra/doc/InfraManagerApiDocStorage.java       |  34 +++--
 .../org/apache/ambari/infra/rest/JobResource.java  |  38 ++---
 .../src/main/resources/infra-manager-env.sh        |   8 +-
 .../src/main/resources/swagger/swagger.html        | 161 +++++++--------------
 pom.xml                                            |   5 +
 12 files changed, 222 insertions(+), 204 deletions(-)

diff --git 
a/ambari-infra-manager-it/src/test/java/org/apache/ambari/infra/steps/AbstractInfraSteps.java
 
b/ambari-infra-manager-it/src/test/java/org/apache/ambari/infra/steps/AbstractInfraSteps.java
index da962b9..24d603b 100644
--- 
a/ambari-infra-manager-it/src/test/java/org/apache/ambari/infra/steps/AbstractInfraSteps.java
+++ 
b/ambari-infra-manager-it/src/test/java/org/apache/ambari/infra/steps/AbstractInfraSteps.java
@@ -137,7 +137,6 @@ public abstract class AbstractInfraSteps {
     solrInputDocument.addField("level", "INFO");
     solrInputDocument.addField("resource", "/ats/active");
     solrInputDocument.addField("ip", "172.18.0.2");
-    solrInputDocument.addField("evtTime", "2017-12-08T10:23:16.452Z");
     solrInputDocument.addField("req_caller_id", 
"HIVE_QUERY_ID:ambari-qa_20160317200111_223b3079-4a2d-431c-920f-6ba37ed63e9f");
     solrInputDocument.addField("repoType", 1);
     solrInputDocument.addField("enforcer", "hadoop-acl");
@@ -145,6 +144,7 @@ public abstract class AbstractInfraSteps {
     solrInputDocument.addField("message_md5", "-6778765776916226588");
     solrInputDocument.addField("event_md5", "5627261521757462732");
     solrInputDocument.addField("logtime", new 
Date(logtime.toInstant().toEpochMilli()));
+    solrInputDocument.addField("evtTime", new 
Date(logtime.toInstant().toEpochMilli()));
     solrInputDocument.addField("_ttl_", "+7DAYS");
     solrInputDocument.addField("_expire_at_", "2017-12-15T10:23:19.106Z");
     solr.add(solrInputDocument);
diff --git 
a/ambari-infra-manager-it/src/test/resources/stories/infra_api_tests.story 
b/ambari-infra-manager-it/src/test/resources/stories/infra_api_tests.story
index 729d609..2330474 100644
--- a/ambari-infra-manager-it/src/test/resources/stories/infra_api_tests.story
+++ b/ambari-infra-manager-it/src/test/resources/stories/infra_api_tests.story
@@ -44,7 +44,7 @@ Then solr does not contain documents between 
2012-10-09T05:00:00.000Z and 2012-1
 Scenario: Archiving documents to hdfs
 
 Given 1000 documents in solr with logtime from 2014-01-04T05:00:00.000Z to 
2014-01-06T20:00:00.000Z
-When start archive_audit_logs job with parameters 
start=2014-01-04T05:00:00.000Z,end=2014-01-06T20:00:00.000Z,destination=HDFS 
after 2 seconds
+When start archive_audit_logs job with parameters 
start=2014-01-04T05:00:00.000Z,end=2014-01-06T20:00:00.000Z,destination=HDFS,hdfsDestinationDirectory=/test_audit_logs
 after 2 seconds
 Then Check 7 files exists on hdfs with filenames containing the text 
audit_logs_-_2014-01-0 in the folder /test_audit_logs after 10 seconds
 And solr does not contain documents between 2014-01-04T05:00:00.000Z and 
2014-01-06T20:00:00.000Z after 10 seconds
 
diff --git a/ambari-infra-manager/pom.xml b/ambari-infra-manager/pom.xml
index f28f59d..3cd9860 100644
--- a/ambari-infra-manager/pom.xml
+++ b/ambari-infra-manager/pom.xml
@@ -30,15 +30,15 @@
   <artifactId>ambari-infra-manager</artifactId>
 
   <properties>
-    <spring.version>4.3.17.RELEASE</spring.version>
-    <spring.security.version>4.2.4.RELEASE</spring.security.version>
-    <spring.ldap.version>2.2.0.RELEASE</spring.ldap.version>
-    <jersey.version>2.25.1</jersey.version>
+    <spring.version>5.1.0.RELEASE</spring.version>
+    <spring.security.version>5.1.0.RELEASE</spring.security.version>
+    <spring.ldap.version>2.3.2.RELEASE</spring.ldap.version>
+    <jersey.version>2.27</jersey.version>
     <jetty.version>9.4.11.v20180605</jetty.version>
     <spring-batch.version>3.0.7.RELEASE</spring-batch.version>
     <sqlite.version>3.8.11.2</sqlite.version>
-    <spring-data-solr.version>2.0.2.RELEASE</spring-data-solr.version>
-    <spring-boot.version>1.5.13.RELEASE</spring-boot.version>
+    <spring-data-solr.version>3.0.10.RELEASE</spring-data-solr.version>
+    <spring-boot.version>2.0.5.RELEASE</spring-boot.version>
     <swagger.version>1.5.16</swagger.version>
     <jjwt.version>0.6.0</jjwt.version>
   </properties>
@@ -121,6 +121,11 @@
 
   <dependencies>
     <dependency>
+      <groupId>javax.validation</groupId>
+      <artifactId>validation-api</artifactId>
+      <version>2.0.1.Final</version>
+    </dependency>
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
@@ -194,26 +199,44 @@
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
       <version>${spring-boot.version}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-starter-tomcat</artifactId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-security</artifactId>
+      <artifactId>spring-boot-starter-jetty</artifactId>
       <version>${spring-boot.version}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-starter-tomcat</artifactId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-actuator</artifactId>
+      <artifactId>spring-boot-starter-security</artifactId>
       <version>${spring-boot.version}</version>
     </dependency>
     <dependency>
       <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-jetty</artifactId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
       <version>${spring-boot.version}</version>
     </dependency>
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-jersey</artifactId>
       <version>${spring-boot.version}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.springframework.boot</groupId>
+          <artifactId>spring-boot-starter-tomcat</artifactId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.springframework.boot</groupId>
@@ -316,9 +339,25 @@
           <groupId>org.eclipse.jetty</groupId>
           <artifactId>jetty-security</artifactId>
         </exclusion>
+        <exclusion>
+          <groupId>com.google.code.gson</groupId>
+          <artifactId>gson</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>jdk.tools</groupId>
+          <artifactId>jdk.tools</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.apache.commons</groupId>
+          <artifactId>commons-compress</artifactId>
+        </exclusion>
       </exclusions>
     </dependency>
     <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-hdfs-client</artifactId>
       <version>${hadoop.version}</version>
@@ -400,7 +439,7 @@
     <dependency>
       <groupId>org.webjars</groupId>
       <artifactId>swagger-ui</artifactId>
-      <version>2.2.2</version>
+      <version>3.19.0</version>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
@@ -436,12 +475,16 @@
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
         </exclusion>
+        <exclusion>
+          <groupId>org.springframework.batch</groupId>
+          <artifactId>spring-batch-admin-resources</artifactId>
+        </exclusion>
       </exclusions>
     </dependency>
     <dependency>
       <artifactId>guava</artifactId>
       <groupId>com.google.guava</groupId>
-      <version>20.0</version>
+      <version>26.0-jre</version>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
@@ -449,10 +492,9 @@
       <version>1.5</version>
     </dependency>
     <dependency>
-      <groupId>org.springframework.boot</groupId>
-      <artifactId>spring-boot-starter-tomcat</artifactId>
-      <version>${spring-boot.version}</version>
-      <scope>provided</scope>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-compress</artifactId>
+      <version>1.18</version>
     </dependency>
     <dependency>
       <groupId>io.minio</groupId>
diff --git 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/InfraManager.java 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/InfraManager.java
index 938cfd0..87622ad 100644
--- 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/InfraManager.java
+++ 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/InfraManager.java
@@ -19,15 +19,16 @@
 package org.apache.ambari.infra;
 
 import org.springframework.boot.Banner;
+import org.springframework.boot.WebApplicationType;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration;
 import 
org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import 
org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration;
+import 
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
 import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
-import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration;
+import 
org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
 import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.system.ApplicationPidFileWriter;
+import org.springframework.boot.context.ApplicationPidFileWriter;
 
 @SpringBootApplication(
   scanBasePackages = {"org.apache.ambari.infra"},
@@ -47,7 +48,7 @@ public class InfraManager {
     new SpringApplicationBuilder(InfraManager.class)
       .bannerMode(Banner.Mode.OFF)
       .listeners(new ApplicationPidFileWriter(pidFile))
-      .web(true)
+      .web(WebApplicationType.SERVLET)
       .run(args);
   }
 }
diff --git 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerJerseyResourceConfig.java
 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerJerseyResourceConfig.java
index 3a4c00f..338fac4 100644
--- 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerJerseyResourceConfig.java
+++ 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerJerseyResourceConfig.java
@@ -18,20 +18,19 @@
  */
 package org.apache.ambari.infra.conf;
 
+import javax.ws.rs.ApplicationPath;
+
 import org.apache.ambari.infra.rest.JobResource;
-import org.glassfish.jersey.jackson.JacksonFeature;
+import 
org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider;
 import org.glassfish.jersey.server.ResourceConfig;
 import org.glassfish.jersey.servlet.ServletProperties;
 
-import javax.ws.rs.ApplicationPath;
-
 @ApplicationPath("/api/v1")
 public class InfraManagerJerseyResourceConfig extends ResourceConfig {
 
   public InfraManagerJerseyResourceConfig() {
     packages(JobResource.class.getPackage().getName());
-    register(JacksonFeature.class);
+    register(JacksonJaxbJsonProvider.class);
     property(ServletProperties.FILTER_FORWARD_ON_404, true);
   }
-
 }
diff --git 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerServletConfig.java
 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerServletConfig.java
index 06aea79..dd101b0 100644
--- 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerServletConfig.java
+++ 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerServletConfig.java
@@ -18,31 +18,19 @@
  */
 package org.apache.ambari.infra.conf;
 
-import org.eclipse.jetty.server.Server;
+import javax.inject.Inject;
+
 import org.eclipse.jetty.servlet.DefaultServlet;
 import org.glassfish.jersey.servlet.ServletContainer;
 import org.glassfish.jersey.servlet.ServletProperties;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.web.ServerProperties;
-import 
org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
-import 
org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer;
-import 
org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory;
 import org.springframework.boot.web.servlet.ServletRegistrationBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
-import javax.inject.Inject;
-
 @Configuration
 public class InfraManagerServletConfig {
 
-  private static final Integer SESSION_TIMEOUT = 60 * 30;
-  private static final String INFRA_MANAGER_SESSIONID = 
"INFRAMANAGER_SESSIONID";
-  private static final String INFRA_MANAGER_APPLICATION_NAME = "infra-manager";
-
-  @Value("${infra-manager.server.port:61890}")
-  private int port;
-
   @Inject
   private ServerProperties serverProperties;
 
@@ -52,32 +40,17 @@ public class InfraManagerServletConfig {
 
   @Bean
   public ServletRegistrationBean jerseyServlet() {
-    ServletRegistrationBean jerseyServletBean = new 
ServletRegistrationBean(new ServletContainer(), "/api/v1/*");
+    ServletRegistrationBean jerseyServletBean = new 
ServletRegistrationBean<>(new ServletContainer(), "/api/v1/*");
     
jerseyServletBean.addInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS, 
InfraManagerJerseyResourceConfig.class.getName());
     return jerseyServletBean;
   }
 
   @Bean
   public ServletRegistrationBean dataServlet() {
-    ServletRegistrationBean dataServletBean = new ServletRegistrationBean(new 
DefaultServlet(), "/files/*");
+    ServletRegistrationBean dataServletBean = new 
ServletRegistrationBean<>(new DefaultServlet(), "/files/*");
     dataServletBean.addInitParameter("dirAllowed","true");
     dataServletBean.addInitParameter("pathInfoOnly","true");
     dataServletBean.addInitParameter("resourceBase", 
infraManagerDataConfig.getDataFolder());
     return dataServletBean;
   }
-
-  @Bean
-  public EmbeddedServletContainerFactory containerFactory() {
-    final JettyEmbeddedServletContainerFactory 
jettyEmbeddedServletContainerFactory = new 
JettyEmbeddedServletContainerFactory() {
-      @Override
-      protected JettyEmbeddedServletContainer 
getJettyEmbeddedServletContainer(Server server) {
-        return new JettyEmbeddedServletContainer(server);
-      }
-    };
-    jettyEmbeddedServletContainerFactory.setSessionTimeout(SESSION_TIMEOUT);
-    serverProperties.getSession().getCookie().setName(INFRA_MANAGER_SESSIONID);
-    serverProperties.setDisplayName(INFRA_MANAGER_APPLICATION_NAME);
-    jettyEmbeddedServletContainerFactory.setPort(port);
-    return jettyEmbeddedServletContainerFactory;
-  }
 }
diff --git 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerWebServerCustomizer.java
 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerWebServerCustomizer.java
new file mode 100644
index 0000000..06174a0
--- /dev/null
+++ 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/conf/InfraManagerWebServerCustomizer.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ambari.infra.conf;
+
+import java.time.Duration;
+
+import javax.inject.Inject;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.web.ServerProperties;
+import 
org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory;
+import org.springframework.boot.web.server.WebServerFactoryCustomizer;
+import org.springframework.stereotype.Component;
+
+@Component
+public class InfraManagerWebServerCustomizer implements 
WebServerFactoryCustomizer<JettyServletWebServerFactory> {
+
+  @Value("${infra-manager.server.port:61890}")
+  private int port;
+
+  @Inject
+  private ServerProperties serverProperties;
+
+  private static final Integer SESSION_TIMEOUT = 60 * 30;
+  private static final String INFRA_MANAGER_SESSIONID = 
"INFRAMANAGER_SESSIONID";
+  private static final String INFRA_MANAGER_APPLICATION_NAME = "infra-manager";
+
+  @Override
+  public void customize(JettyServletWebServerFactory factory) {
+    factory.setPort(port);
+    factory.setDisplayName(INFRA_MANAGER_APPLICATION_NAME);
+    factory.getSession().getCookie().setName(INFRA_MANAGER_SESSIONID);
+    factory.getSession().setTimeout(Duration.ofSeconds(SESSION_TIMEOUT));
+  }
+}
diff --git 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/doc/InfraManagerApiDocStorage.java
 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/doc/InfraManagerApiDocStorage.java
index e536d9a..5d525fa 100644
--- 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/doc/InfraManagerApiDocStorage.java
+++ 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/doc/InfraManagerApiDocStorage.java
@@ -18,17 +18,20 @@
  */
 package org.apache.ambari.infra.doc;
 
-import io.swagger.jaxrs.config.BeanConfig;
-import io.swagger.models.Swagger;
-import io.swagger.util.Yaml;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 import javax.inject.Named;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import io.swagger.jaxrs.config.BeanConfig;
+import io.swagger.models.Swagger;
+import io.swagger.models.auth.BasicAuthDefinition;
+import io.swagger.util.Yaml;
 
 @Named
 public class InfraManagerApiDocStorage {
@@ -47,20 +50,19 @@ public class InfraManagerApiDocStorage {
       public void run() {
         LOG.info("Start thread to scan REST API doc from endpoints.");
         Swagger swagger = beanConfig.getSwagger();
+        swagger.addSecurityDefinition("basicAuth", new BasicAuthDefinition());
         beanConfig.configure(swagger);
         beanConfig.scanAndRead();
         setSwagger(swagger);
         try {
-          if (swagger != null) {
-            String yaml = Yaml.mapper().writeValueAsString(swagger);
-            StringBuilder b = new StringBuilder();
-            String[] parts = yaml.split("\n");
-            for (String part : parts) {
-              b.append(part);
-              b.append("\n");
-            }
-            setSwaggerYaml(b.toString());
+          String yaml = Yaml.mapper().writeValueAsString(swagger);
+          StringBuilder b = new StringBuilder();
+          String[] parts = yaml.split("\n");
+          for (String part : parts) {
+            b.append(part);
+            b.append("\n");
           }
+          setSwaggerYaml(b.toString());
         } catch (Exception e) {
           e.printStackTrace();
         }
diff --git 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/rest/JobResource.java
 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/rest/JobResource.java
index 502057e..7e353fb 100644
--- 
a/ambari-infra-manager/src/main/java/org/apache/ambari/infra/rest/JobResource.java
+++ 
b/ambari-infra-manager/src/main/java/org/apache/ambari/infra/rest/JobResource.java
@@ -18,9 +18,21 @@
  */
 package org.apache.ambari.infra.rest;
 
-import com.google.common.base.Splitter;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import java.util.List;
+import java.util.Set;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.ws.rs.BeanParam;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+
 import org.apache.ambari.infra.manager.JobManager;
 import org.apache.ambari.infra.model.ExecutionContextResponse;
 import org.apache.ambari.infra.model.JobDetailsResponse;
@@ -51,21 +63,13 @@ import 
org.springframework.batch.core.repository.JobInstanceAlreadyCompleteExcep
 import org.springframework.batch.core.repository.JobRestartException;
 import org.springframework.context.annotation.Scope;
 
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
-import javax.ws.rs.BeanParam;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import java.util.List;
-import java.util.Set;
+import com.google.common.base.Splitter;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.Authorization;
 
-@Api(value = "jobs", description = "Job operations")
+@Api(value = "jobs", description = "Job operations", authorizations = 
{@Authorization(value = "basicAuth")})
 @Path("jobs")
 @Named
 @Scope("request")
diff --git a/ambari-infra-manager/src/main/resources/infra-manager-env.sh 
b/ambari-infra-manager/src/main/resources/infra-manager-env.sh
index 9a371fd..4aae179 100644
--- a/ambari-infra-manager/src/main/resources/infra-manager-env.sh
+++ b/ambari-infra-manager/src/main/resources/infra-manager-env.sh
@@ -17,12 +17,12 @@
 # Extend with java options or system properties. e.g.: 
INFRA_MANAGER_OPTS="-Xdebug 
-Xrunjdwp:transport=dt_socket,address=5007,server=y,suspend=n"
 export INFRA_MANAGER_OPTS=""
 
-# Log Search debug options
-# export INFRA_MANAGER_DEBUG=true
-# export INFRA_MANAGER_DEBUG_SUSPEND=n
+# Infra Manager debug options
+#export INFRA_MANAGER_DEBUG=true
+#export INFRA_MANAGER_DEBUG_SUSPEND=n
 export INFRA_MANAGER_DEBUG_PORT=5005
 
-# Log Search memory
+# Infra Manager memory
 # export INFRA_MANAGER_JAVA_MEM="--Xmx1024m"
 
 # export LOG_PATH=/var/log/ambari-logsearch-logfeeder/
diff --git a/ambari-infra-manager/src/main/resources/swagger/swagger.html 
b/ambari-infra-manager/src/main/resources/swagger/swagger.html
index 4d261e7..b24dd25 100644
--- a/ambari-infra-manager/src/main/resources/swagger/swagger.html
+++ b/ambari-infra-manager/src/main/resources/swagger/swagger.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!-- HTML for static distribution bundle build -->
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
@@ -15,122 +15,63 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<html>
+<!DOCTYPE html>
+<html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Infra Manager REST API</title>
-    <link rel="icon" type="image/png" 
href="swagger-ui/2.2.2/images/favicon-32x32.png" sizes="32x32" />
-    <link rel="icon" type="image/png" 
href="swagger-ui/2.2.2/images/favicon-16x16.png" sizes="16x16" />
-    <link href='swagger-ui/2.2.2/css/typography.css' media='screen' 
rel='stylesheet' type='text/css'/>
-    <link href='swagger-ui/2.2.2/css/reset.css' media='screen' 
rel='stylesheet' type='text/css'/>
-    <link href='swagger-ui/2.2.2/css/screen.css' media='screen' 
rel='stylesheet' type='text/css'/>
-    <link href='swagger-ui/2.2.2/css/reset.css' media='print' rel='stylesheet' 
type='text/css'/>
-    <link href='swagger-ui/2.2.2/css/print.css' media='print' rel='stylesheet' 
type='text/css'/>
-
-    <script src='swagger-ui/2.2.2/lib/object-assign-pollyfill.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/jquery-1.8.0.min.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/jquery.slideto.min.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/jquery.wiggle.min.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/jquery.ba-bbq.min.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/handlebars-4.0.5.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/lodash.min.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/backbone-min.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/swagger-ui.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/highlight.9.1.0.pack.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/highlight.9.1.0.pack_extended.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/jsoneditor.min.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/marked.js' 
type='text/javascript'></script>
-    <script src='swagger-ui/2.2.2/lib/swagger-oauth.js' 
type='text/javascript'></script>
-
-    <!-- Some basic translations -->
-    <!-- <script src='lang/translator.js' type='text/javascript'></script> -->
-    <!-- <script src='lang/ru.js' type='text/javascript'></script> -->
-    <!-- <script src='lang/en.js' type='text/javascript'></script> -->
-
-    <script type="text/javascript">
-        $(function () {
-            var url = window.location.search.match(/url=([^&]+)/);
-            if (url && url.length > 1) {
-                url = decodeURIComponent(url[1]);
-            } else {
-                var urlPrefix = location.protocol +'//'+ 
location.hostname+(location.port ? ':'+location.port: '');
-                url = urlPrefix + "/api/v1/swagger.yaml";
-            }
+    <link rel="stylesheet" type="text/css" 
href="swagger-ui/3.19.0/swagger-ui.css" >
+    <link rel="icon" type="image/png" 
href="swagger-ui/3.19.0/images/favicon-32x32.png" sizes="32x32" />
+    <link rel="icon" type="image/png" 
href="swagger-ui/3.19.0/images/favicon-16x16.png" sizes="16x16" />
+    <style>
+      html
+      {
+        box-sizing: border-box;
+        overflow: -moz-scrollbars-vertical;
+        overflow-y: scroll;
+      }
 
-            hljs.configure({
-                highlightSizeThreshold: 5000
-            });
+      *,
+      *:before,
+      *:after
+      {
+        box-sizing: inherit;
+      }
 
-            // Pre load translate...
-            if(window.SwaggerTranslator) {
-                window.SwaggerTranslator.translate();
-            }
-            window.swaggerUi = new SwaggerUi({
-                url: url,
-                dom_id: "swagger-ui-container",
-                supportedSubmitMethods: ['get', 'post', 'put', 'delete', 
'patch'],
-                onComplete: function(swaggerApi, swaggerUi){
-                    if(typeof initOAuth == "function") {
-                        initOAuth({
-                            clientId: "your-client-id",
-                            clientSecret: "your-client-secret-if-required",
-                            realm: "your-realms",
-                            appName: "your-app-name",
-                            scopeSeparator: " ",
-                            additionalQueryStringParams: {}
-                        });
-                    }
-
-                    if(window.SwaggerTranslator) {
-                        window.SwaggerTranslator.translate();
-                    }
-                },
-                onFailure: function(data) {
-                    log("Unable to Load SwaggerUI");
-                },
-                docExpansion: "none",
-                jsonEditor: false,
-                defaultModelRendering: 'schema',
-                showRequestHeaders: false
-            });
-
-            function addApiKeyAuthorization(){
-                var username = 
encodeURIComponent($('#input_username')[0].value);
-                var password = 
encodeURIComponent($('#input_password')[0].value);
-                if (username && username.trim() != "" && password && password 
!= "") {
-                    var apiKeyAuth = new 
SwaggerClient.PasswordAuthorization("Authorization", username, password);
-                    window.swaggerUi.api.clientAuthorizations.add("key", 
apiKeyAuth);
-                    log("added authorization header: " + 'Basic ' + 
btoa(username + ':' + password));
-                }
-            }
-
-            $('#input_username, 
#input_password').change(addApiKeyAuthorization);
+      body
+      {
+        margin:0;
+        background: #fafafa;
+      }
+    </style>
+</head>
 
-            window.swaggerUi.load();
+<body>
+<div id="swagger-ui"></div>
 
-            function log() {
-                if ('console' in window) {
-                    console.log.apply(console, arguments);
-                }
-            }
-        });
-    </script>
-</head>
+<script src="swagger-ui/3.19.0/swagger-ui-bundle.js"> </script>
+<script src="swagger-ui/3.19.0/swagger-ui-standalone-preset.js"> </script>
+<script>
+    window.onload = function() {
 
-<body class="swagger-section">
-<div id='header'>
-    <div class="swagger-ui-wrap">
-        <a id="logo" href="http://swagger.io";>swagger</a>
-        <form id='api_selector'>
-            <div class='input'><input placeholder="http://example.com/api"; 
id="input_baseUrl" name="baseUrl" type="text"/></div>
-            <div class="input"><input placeholder="username" 
id="input_username" name="username" type="text" size="10"></div>
-            <div class="input"><input placeholder="password" 
id="input_password" name="password" type="password" size="10"></div>
-            <div class='input'><a id="explore" href="#">Explore</a></div>
-        </form>
-    </div>
-</div>
+      var urlPrefix = location.protocol +'//'+ 
location.hostname+(location.port ? ':'+location.port: '');
+      // Build a system
+      const ui = SwaggerUIBundle({
+        url: urlPrefix + "/api/v1/swagger.yaml",
+        dom_id: '#swagger-ui',
+        deepLinking: true,
+        presets: [
+          SwaggerUIBundle.presets.apis,
+          SwaggerUIStandalonePreset
+        ],
+        plugins: [
+          SwaggerUIBundle.plugins.DownloadUrl
+        ],
+        layout: "StandaloneLayout"
+      })
 
-<div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
-<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
+      window.ui = ui
+    }
+  </script>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/pom.xml b/pom.xml
index ab82c4b..29271c1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -368,6 +368,11 @@
         <artifactId>hamcrest-all</artifactId>
         <version>1.3</version>
       </dependency>
+      <dependency>
+        <groupId>com.google.code.gson</groupId>
+        <artifactId>gson</artifactId>
+        <version>2.6.2</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 

Reply via email to