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

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


The following commit(s) were added to refs/heads/master by this push:
     new eeb9da1  AMBARI-23456. Make rest api doc generation configureable & 
doc fixes (#69)
eeb9da1 is described below

commit eeb9da1d5ae1df5cb17bb3294d4c698dd3d86d17
Author: Olivér Sz <oleew...@gmail.com>
AuthorDate: Mon Jan 7 14:46:35 2019 +0100

    AMBARI-23456. Make rest api doc generation configureable & doc fixes (#69)
---
 Makefile                                           |   6 +
 ambari-logsearch-docs/pom.xml                      |   5 +
 .../doc/LogSearchDocumentationGenerator.java       |  19 +-
 .../ambari/logsearch/rest/ServiceLogsResource.java |  12 +-
 docs/api-docs/logsearch-swagger.yaml               | 308 ++++++++++-----------
 5 files changed, 186 insertions(+), 164 deletions(-)

diff --git a/Makefile b/Makefile
index 67f25fe..469651c 100644
--- a/Makefile
+++ b/Makefile
@@ -77,6 +77,12 @@ prop-docs: install
 prop-docs-only:
        $(MAVEN_BINARY) -pl ambari-logsearch-docs clean package exec:java 
-DskipTests -Djdk.version=$(LOGSEARCH_JAVA_VERSION)
 
+update-rest-api-docs: install
+       $(MAVEN_BINARY) -pl ambari-logsearch-docs clean package exec:java 
-DskipTests -Djdk.version=$(LOGSEARCH_JAVA_VERSION) -Dgenerate.swagger.yaml=true
+
+update-rest-api-docs-only:
+       $(MAVEN_BINARY) -pl ambari-logsearch-docs clean package exec:java 
-DskipTests -Djdk.version=$(LOGSEARCH_JAVA_VERSION) -Dgenerate.swagger.yaml=true
+
 update-version:
        $(MAVEN_BINARY) versions:set-property -Dproperty=revision 
-DnewVersion=$(new-version) -DgenerateBackupPoms=false
 
diff --git a/ambari-logsearch-docs/pom.xml b/ambari-logsearch-docs/pom.xml
index 90a19a9..4aded53 100644
--- a/ambari-logsearch-docs/pom.xml
+++ b/ambari-logsearch-docs/pom.xml
@@ -29,6 +29,9 @@
   <url>http://maven.apache.org</url>
   <name>Ambari Logsearch Docs</name>
   <description>Ambari Logsearch Docs</description>
+  <properties>
+    <generate.swagger.yaml>false</generate.swagger.yaml>
+  </properties>
   <build>
     <resources>
       <resource>
@@ -86,6 +89,8 @@
           <arguments>
             <argument>--output-dir</argument>
             <argument>${project.basedir}/../docs</argument>
+            <argument>--generate-rest-api-doc</argument>
+            <argument>${generate.swagger.yaml}</argument>
           </arguments>
         </configuration>
       </plugin>
diff --git 
a/ambari-logsearch-docs/src/main/java/org/apache/ambari/logsearch/doc/LogSearchDocumentationGenerator.java
 
b/ambari-logsearch-docs/src/main/java/org/apache/ambari/logsearch/doc/LogSearchDocumentationGenerator.java
index 41f706a..3841b9f 100644
--- 
a/ambari-logsearch-docs/src/main/java/org/apache/ambari/logsearch/doc/LogSearchDocumentationGenerator.java
+++ 
b/ambari-logsearch-docs/src/main/java/org/apache/ambari/logsearch/doc/LogSearchDocumentationGenerator.java
@@ -65,6 +65,7 @@ public class LogSearchDocumentationGenerator {
   private static final String LOGFEEDER_PROPERTIES_TEMPLATE_KEY = 
"logfeederProperties";
 
   private static final String OUTPUT_DIR_OPTION = "output-dir";
+  private static final String GENERATE_REST_API_DOC = "generate-rest-api-doc";
 
   private static final String LOGSEARCH_PACKAGE = 
"org.apache.ambari.logsearch";
   private static final String LOGFEEDER_PACKAGE = 
"org.apache.ambari.logfeeder";
@@ -96,6 +97,12 @@ public class LogSearchDocumentationGenerator {
         .required()
         .type(String.class)
         .build());
+      options.addOption(Option.builder()
+        .desc("Boolean flag to generate REST API doc")
+        .longOpt(GENERATE_REST_API_DOC)
+        .hasArg()
+        .type(String.class)
+        .build());
       CommandLineParser parser = new DefaultParser();
       CommandLine cmdLine = parser.parse(options, args);
 
@@ -139,10 +146,14 @@ public class LogSearchDocumentationGenerator {
 
       File shipperConfigsOutputFile = Paths.get(outputDir, 
SHIPPER_CONFIGURATIONS_MARKDOWN_OUTPUT).toFile();
       writeMarkdown(freemarkerConfiguration, 
SHIPPER_CONFIGURATIONS_MARKDOWN_TEMPLATE_FILE, shipperConfigModels, 
shipperConfigsOutputFile);
-
-      String swaggerYaml = generateSwaggerYaml();
-      File swaggerYamlFile = Paths.get(outputDir, SWAGGER_API_DOC_FOLDER, 
SWAGGER_YAML_FILE_NAME).toFile();
-      FileUtils.writeStringToFile(swaggerYamlFile, swaggerYaml, 
Charset.defaultCharset());
+      if (options.hasLongOption(GENERATE_REST_API_DOC) && 
"true".equals(cmdLine.getOptionValue(GENERATE_REST_API_DOC))) {
+        System.out.println("REST API DOC re-generation is enabled");
+        String swaggerYaml = generateSwaggerYaml();
+        File swaggerYamlFile = Paths.get(outputDir, SWAGGER_API_DOC_FOLDER, 
SWAGGER_YAML_FILE_NAME).toFile();
+        FileUtils.writeStringToFile(swaggerYamlFile, swaggerYaml, 
Charset.defaultCharset());
+      } else {
+        System.out.println("REST API DOC re-generation is disabled");
+      }
     } catch (Exception e) {
       e.printStackTrace();
       System.exit(1);
diff --git 
a/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsResource.java
 
b/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsResource.java
index 9daf0b3..73ee640 100644
--- 
a/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsResource.java
+++ 
b/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsResource.java
@@ -151,7 +151,7 @@ public class ServiceLogsResource {
   @Path("/components")
   @Produces({MediaType.APPLICATION_JSON})
   @ApiOperation(GET_COMPONENTS_OD)
-  public ServiceComponentMetadataWrapper 
getComponents(@QueryParam(LogSearchConstants.REQUEST_PARAM_CLUSTER_NAMES) 
@Nullable String clusters) {
+  public ServiceComponentMetadataWrapper 
getComponentsByGet(@QueryParam(LogSearchConstants.REQUEST_PARAM_CLUSTER_NAMES) 
@Nullable String clusters) {
     return serviceLogsManager.getComponentMetadata(clusters);
   }
 
@@ -160,7 +160,7 @@ public class ServiceLogsResource {
   @Consumes({MediaType.APPLICATION_JSON})
   @Produces({MediaType.APPLICATION_JSON})
   @ApiOperation(GET_COMPONENTS_OD)
-  public ServiceComponentMetadataWrapper getComponents(@Nullable 
ClusterBodyRequest clusterBodyRequest) {
+  public ServiceComponentMetadataWrapper getComponentsByPost(@Nullable 
ClusterBodyRequest clusterBodyRequest) {
     return serviceLogsManager.getComponentMetadata(clusterBodyRequest != null 
? clusterBodyRequest.getClusters() : null);
   }
 
@@ -356,7 +356,7 @@ public class ServiceLogsResource {
   @Path("/truncated")
   @Produces({MediaType.APPLICATION_JSON})
   @ApiOperation(GET_AFTER_BEFORE_LOGS_OD)
-  public ServiceLogResponse getAfterBeforeLogs(@BeanParam 
ServiceLogTruncatedQueryRequest request) {
+  public ServiceLogResponse getAfterBeforeLogsByGet(@BeanParam 
ServiceLogTruncatedQueryRequest request) {
     return serviceLogsManager.getAfterBeforeLogs(request);
   }
 
@@ -365,7 +365,7 @@ public class ServiceLogsResource {
   @Consumes({MediaType.APPLICATION_JSON})
   @Produces({MediaType.APPLICATION_JSON})
   @ApiOperation(GET_AFTER_BEFORE_LOGS_OD)
-  public ServiceLogResponse getAfterBeforeLogs(ServiceLogTruncatedBodyRequest 
request) {
+  public ServiceLogResponse 
getAfterBeforeLogsByPost(ServiceLogTruncatedBodyRequest request) {
     return serviceLogsManager.getAfterBeforeLogs(request);
   }
 
@@ -393,7 +393,7 @@ public class ServiceLogsResource {
   @Produces({MediaType.APPLICATION_JSON})
   @ApiOperation(GET_HOST_LOGFILES_OD)
   @ValidateOnExecution
-  public HostLogFilesResponse getHostLogFiles(@Valid @BeanParam 
HostLogFilesQueryRequest request) {
+  public HostLogFilesResponse getHostLogFilesByGet(@Valid @BeanParam 
HostLogFilesQueryRequest request) {
     return serviceLogsManager.getHostLogFileData(request);
   }
 
@@ -403,7 +403,7 @@ public class ServiceLogsResource {
   @Produces({MediaType.APPLICATION_JSON})
   @ApiOperation(GET_HOST_LOGFILES_OD)
   @ValidateOnExecution
-  public HostLogFilesResponse getHostLogFiles(@Valid @BeanParam 
HostLogFilesBodyRequest request) {
+  public HostLogFilesResponse getHostLogFilesByPost(@Valid @BeanParam 
HostLogFilesBodyRequest request) {
     return serviceLogsManager.getHostLogFileData(request);
   }
 
diff --git a/docs/api-docs/logsearch-swagger.yaml 
b/docs/api-docs/logsearch-swagger.yaml
index d80182b..2b6cf11 100644
--- a/docs/api-docs/logsearch-swagger.yaml
+++ b/docs/api-docs/logsearch-swagger.yaml
@@ -1033,52 +1033,6 @@ paths:
           description: "successful operation"
       security:
       - basicAuth: []
-  /service/logs/components:
-    get:
-      tags:
-      - "servicelogs"
-      summary: "Get the list of service components currently active or having 
data\
-        \ in Solr"
-      description: ""
-      operationId: "getComponents"
-      produces:
-      - "application/json"
-      parameters:
-      - name: "clusters"
-        in: "query"
-        required: false
-        type: "string"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/ServiceComponentMetadataWrapper"
-      security:
-      - basicAuth: []
-    post:
-      tags:
-      - "servicelogs"
-      summary: "Get the list of service components currently active or having 
data\
-        \ in Solr"
-      description: ""
-      operationId: "getComponents"
-      consumes:
-      - "application/json"
-      produces:
-      - "application/json"
-      parameters:
-      - in: "body"
-        name: "body"
-        required: false
-        schema:
-          $ref: "#/definitions/ClusterBodyRequest"
-      responses:
-        200:
-          description: "successful operation"
-          schema:
-            $ref: "#/definitions/ServiceComponentMetadataWrapper"
-      security:
-      - basicAuth: []
   /service/logs:
     get:
       tags:
@@ -1321,6 +1275,52 @@ paths:
             $ref: "#/definitions/GroupListResponse"
       security:
       - basicAuth: []
+  /service/logs/components:
+    get:
+      tags:
+      - "servicelogs"
+      summary: "Get the list of service components currently active or having 
data\
+        \ in Solr"
+      description: ""
+      operationId: "getComponentsByGet"
+      produces:
+      - "application/json"
+      parameters:
+      - name: "clusters"
+        in: "query"
+        required: false
+        type: "string"
+      responses:
+        200:
+          description: "successful operation"
+          schema:
+            $ref: "#/definitions/ServiceComponentMetadataWrapper"
+      security:
+      - basicAuth: []
+    post:
+      tags:
+      - "servicelogs"
+      summary: "Get the list of service components currently active or having 
data\
+        \ in Solr"
+      description: ""
+      operationId: "getComponentsByPost"
+      consumes:
+      - "application/json"
+      produces:
+      - "application/json"
+      parameters:
+      - in: "body"
+        name: "body"
+        required: false
+        schema:
+          $ref: "#/definitions/ClusterBodyRequest"
+      responses:
+        200:
+          description: "successful operation"
+          schema:
+            $ref: "#/definitions/ServiceComponentMetadataWrapper"
+      security:
+      - basicAuth: []
   /service/logs/aggregated:
     get:
       tags:
@@ -2841,7 +2841,7 @@ paths:
       - "servicelogs"
       summary: "Preview feature data"
       description: ""
-      operationId: "getAfterBeforeLogs"
+      operationId: "getAfterBeforeLogsByGet"
       produces:
       - "application/json"
       parameters:
@@ -3010,7 +3010,7 @@ paths:
       - "servicelogs"
       summary: "Preview feature data"
       description: ""
-      operationId: "getAfterBeforeLogs"
+      operationId: "getAfterBeforeLogsByPost"
       consumes:
       - "application/json"
       produces:
@@ -3069,7 +3069,7 @@ paths:
       - "servicelogs"
       summary: "Get the log files of the components of a host"
       description: ""
-      operationId: "getHostLogFiles"
+      operationId: "getHostLogFilesByGet"
       produces:
       - "application/json"
       parameters:
@@ -3100,7 +3100,7 @@ paths:
       - "servicelogs"
       summary: "Get the log files of the components of a host"
       description: ""
-      operationId: "getHostLogFiles"
+      operationId: "getHostLogFilesByPost"
       consumes:
       - "application/json"
       produces:
@@ -3180,13 +3180,13 @@ paths:
               type: "string"
       security:
       - basicAuth: []
-  /shipper/filters/{clusterName}/level:
+  /shipper/input/{clusterName}/services/{serviceName}:
     get:
       tags:
       - "shipper"
-      summary: "Get log level filter"
+      summary: "Get shipper config"
       description: ""
-      operationId: "getLogLevelFilters"
+      operationId: "getShipperConfig"
       produces:
       - "application/json"
       parameters:
@@ -3194,19 +3194,23 @@ paths:
         in: "path"
         required: true
         type: "string"
+      - name: "serviceName"
+        in: "path"
+        required: true
+        type: "string"
       responses:
         200:
           description: "successful operation"
           schema:
-            $ref: "#/definitions/LSServerLogLevelFilterMap"
+            $ref: "#/definitions/LSServerInputConfig"
       security:
       - basicAuth: []
-    put:
+    post:
       tags:
       - "shipper"
-      summary: "Update log level filter"
+      summary: "Set shipper config"
       description: ""
-      operationId: "setLogLevelFilter"
+      operationId: "createShipperConfig"
       produces:
       - "application/json"
       parameters:
@@ -3214,26 +3218,34 @@ paths:
         name: "body"
         required: false
         schema:
-          $ref: "#/definitions/LSServerLogLevelFilterMap"
+          $ref: "#/definitions/LSServerInputConfig"
       - name: "clusterName"
         in: "path"
         required: true
         type: "string"
+      - name: "serviceName"
+        in: "path"
+        required: true
+        type: "string"
       responses:
         default:
           description: "successful operation"
       security:
       - basicAuth: []
-  /shipper/input/{clusterName}/services/{serviceName}:
-    get:
+    put:
       tags:
       - "shipper"
-      summary: "Get shipper config"
+      summary: "Set shipper config"
       description: ""
-      operationId: "getShipperConfig"
+      operationId: "setShipperConfig"
       produces:
       - "application/json"
       parameters:
+      - in: "body"
+        name: "body"
+        required: false
+        schema:
+          $ref: "#/definitions/LSServerInputConfig"
       - name: "clusterName"
         in: "path"
         required: true
@@ -3243,45 +3255,37 @@ paths:
         required: true
         type: "string"
       responses:
-        200:
+        default:
           description: "successful operation"
-          schema:
-            $ref: "#/definitions/LSServerInputConfig"
       security:
       - basicAuth: []
-    post:
+  /shipper/filters/{clusterName}/level:
+    get:
       tags:
       - "shipper"
-      summary: "Set shipper config"
+      summary: "Get log level filter"
       description: ""
-      operationId: "createShipperConfig"
+      operationId: "getLogLevelFilters"
       produces:
       - "application/json"
       parameters:
-      - in: "body"
-        name: "body"
-        required: false
-        schema:
-          $ref: "#/definitions/LSServerInputConfig"
       - name: "clusterName"
         in: "path"
         required: true
         type: "string"
-      - name: "serviceName"
-        in: "path"
-        required: true
-        type: "string"
       responses:
-        default:
+        200:
           description: "successful operation"
+          schema:
+            $ref: "#/definitions/LSServerLogLevelFilterMap"
       security:
       - basicAuth: []
     put:
       tags:
       - "shipper"
-      summary: "Set shipper config"
+      summary: "Update log level filter"
       description: ""
-      operationId: "setShipperConfig"
+      operationId: "setLogLevelFilter"
       produces:
       - "application/json"
       parameters:
@@ -3289,15 +3293,11 @@ paths:
         name: "body"
         required: false
         schema:
-          $ref: "#/definitions/LSServerInputConfig"
+          $ref: "#/definitions/LSServerLogLevelFilterMap"
       - name: "clusterName"
         in: "path"
         required: true
         type: "string"
-      - name: "serviceName"
-        in: "path"
-        required: true
-        type: "string"
       responses:
         default:
           description: "successful operation"
@@ -3447,24 +3447,28 @@ definitions:
       result:
         type: "integer"
         format: "int32"
-      policy:
-        type: "string"
-      reason:
-        type: "string"
       text:
         type: "string"
-      sess:
+      policy:
+        type: "string"
+      reqContext:
         type: "string"
       access:
         type: "string"
-      reqContext:
+      sess:
         type: "string"
       tags:
         type: "array"
         items:
           type: "string"
+      reason:
+        type: "string"
       logType:
         type: "string"
+      proxyUsers:
+        type: "array"
+        items:
+          type: "string"
       action:
         type: "string"
       agent:
@@ -3493,10 +3497,6 @@ definitions:
         type: "string"
       tags_str:
         type: "string"
-      proxyUsers:
-        type: "array"
-        items:
-          type: "string"
       id:
         type: "string"
       type:
@@ -3506,12 +3506,12 @@ definitions:
       _version_:
         type: "integer"
         format: "int64"
+      log_message:
+        type: "string"
       bundle_id:
         type: "string"
       case_id:
         type: "string"
-      log_message:
-        type: "string"
       logfile_line_number:
         type: "integer"
         format: "int32"
@@ -3814,26 +3814,6 @@ definitions:
         type: "string"
       type:
         type: "string"
-  ComponentMetadata:
-    type: "object"
-    properties:
-      name:
-        type: "string"
-      label:
-        type: "string"
-      group:
-        type: "string"
-  ServiceComponentMetadataWrapper:
-    type: "object"
-    properties:
-      groups:
-        type: "object"
-        additionalProperties:
-          type: "string"
-      metadata:
-        type: "array"
-        items:
-          $ref: "#/definitions/ComponentMetadata"
   ServiceLogData:
     type: "object"
     properties:
@@ -3854,11 +3834,11 @@ definitions:
         type: "string"
       group:
         type: "string"
-      ip:
-        type: "string"
       logtime:
         type: "string"
         format: "date-time"
+      ip:
+        type: "string"
       id:
         type: "string"
       file:
@@ -3866,12 +3846,12 @@ definitions:
       _version_:
         type: "integer"
         format: "int64"
+      log_message:
+        type: "string"
       bundle_id:
         type: "string"
       case_id:
         type: "string"
-      log_message:
-        type: "string"
       logfile_line_number:
         type: "integer"
         format: "int32"
@@ -4015,6 +3995,26 @@ definitions:
         format: "int32"
   LogData:
     type: "object"
+  ComponentMetadata:
+    type: "object"
+    properties:
+      name:
+        type: "string"
+      label:
+        type: "string"
+      group:
+        type: "string"
+  ServiceComponentMetadataWrapper:
+    type: "object"
+    properties:
+      groups:
+        type: "object"
+        additionalProperties:
+          type: "string"
+      metadata:
+        type: "array"
+        items:
+          $ref: "#/definitions/ComponentMetadata"
   GraphData:
     type: "object"
     properties:
@@ -4684,39 +4684,6 @@ definitions:
         type: "string"
       clusters:
         type: "string"
-  LSServerLogLevelFilter:
-    type: "object"
-    required:
-    - "defaultLevels"
-    - "hosts"
-    - "label"
-    properties:
-      label:
-        type: "string"
-      hosts:
-        type: "array"
-        items:
-          type: "string"
-      defaultLevels:
-        type: "array"
-        items:
-          type: "string"
-      overrideLevels:
-        type: "array"
-        items:
-          type: "string"
-      expiryTime:
-        type: "string"
-        format: "date-time"
-  LSServerLogLevelFilterMap:
-    type: "object"
-    required:
-    - "filter"
-    properties:
-      filter:
-        type: "object"
-        additionalProperties:
-          $ref: "#/definitions/LSServerLogLevelFilter"
   LSServerConditions:
     type: "object"
     required:
@@ -4828,6 +4795,39 @@ definitions:
           $ref: "#/definitions/LSServerFilter"
   LSServerPostMapValuesList:
     type: "object"
+  LSServerLogLevelFilter:
+    type: "object"
+    required:
+    - "defaultLevels"
+    - "hosts"
+    - "label"
+    properties:
+      label:
+        type: "string"
+      hosts:
+        type: "array"
+        items:
+          type: "string"
+      defaultLevels:
+        type: "array"
+        items:
+          type: "string"
+      overrideLevels:
+        type: "array"
+        items:
+          type: "string"
+      expiryTime:
+        type: "string"
+        format: "date-time"
+  LSServerLogLevelFilterMap:
+    type: "object"
+    required:
+    - "filter"
+    properties:
+      filter:
+        type: "object"
+        additionalProperties:
+          $ref: "#/definitions/LSServerLogLevelFilter"
   SolrCollectionState:
     type: "object"
     properties:

Reply via email to