You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ol...@apache.org on 2019/01/07 13:46:39 UTC
[ambari-logsearch] branch master updated: AMBARI-23456. Make rest
api doc generation configureable & doc fixes (#69)
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 <ol...@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: