diff options
Diffstat (limited to 'feature-healthcheck')
3 files changed, 205 insertions, 56 deletions
diff --git a/feature-healthcheck/pom.xml b/feature-healthcheck/pom.xml index 7c9efa1d..669f5ba2 100644 --- a/feature-healthcheck/pom.xml +++ b/feature-healthcheck/pom.xml @@ -80,6 +80,43 @@ </execution> </executions> </plugin> + <!-- Controllers interfaces generation --> + <plugin> + <groupId>io.swagger.codegen.v3</groupId> + <artifactId>swagger-codegen-maven-plugin</artifactId> + <version>3.0.27</version> + <executions> + <execution> + <id>code-gen</id> + <goals> + <goal>generate</goal> + </goals> + <configuration> + <inputSpec>${project.basedir}/src/main/resources/openapi/openapi.yaml</inputSpec> + <invokerPackage>org.onap.policy.drools.healthcheck</invokerPackage> + <modelPackage>org.onap.policy.drools.healthcheck.model</modelPackage> + <apiPackage>org.onap.policy.drools.healthcheck</apiPackage> + <language>jaxrs-spec</language> + <generateModels>false</generateModels> + <generateSupportingFiles>false</generateSupportingFiles> + <sortParamsByRequiredFlag>false</sortParamsByRequiredFlag> + <importMappings> + Response=javax.ws.rs.core.Response + </importMappings> + <typeMappings> + <typeMapping>boolean=boolean</typeMapping> + </typeMappings> + <configOptions> + <sourceFolder>src/gen/java</sourceFolder> + <dateLibrary>java11</dateLibrary> + <interfaceOnly>true</interfaceOnly> + <useTags>true</useTags> + <skipIfSpecIsUnchanged>false</skipIfSpecIsUnchanged> + </configOptions> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> @@ -117,6 +154,12 @@ <artifactId>awaitility</artifactId> <scope>test</scope> </dependency> + <!-- Swagger v3 annotations --> + <dependency> + <groupId>io.swagger.core.v3</groupId> + <artifactId>swagger-annotations</artifactId> + <version>${version.swagger.core.v3}</version> + </dependency> </dependencies> </project> diff --git a/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java b/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java index 5b36c5a3..64cea621 100644 --- a/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java +++ b/feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java @@ -3,6 +3,7 @@ * ONAP * ================================================================================ * Copyright (C) 2017-2019, 2022 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,12 +21,6 @@ package org.onap.policy.drools.healthcheck; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.Info; -import io.swagger.annotations.SwaggerDefinition; -import io.swagger.annotations.Tag; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @@ -43,35 +38,16 @@ import org.onap.policy.drools.system.PolicyControllerFactory; * REST Healthcheck JAX-RS. */ @Path("/") -@Api @Produces({MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}) -@SwaggerDefinition( - info = @Info( - description = "PDP-D Healthcheck Service", - version = "v1.0", - title = "PDP-D Healthcheck" - ), - consumes = {MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}, - produces = {MediaType.APPLICATION_JSON, YamlMessageBodyHandler.APPLICATION_YAML}, - schemes = {SwaggerDefinition.Scheme.HTTP}, - tags = { - @Tag(name = "pdp-d-healthcheck", description = "Drools PDP Healthcheck Operations") - } - ) -public class RestHealthCheck { +public class RestHealthCheck implements HealthcheckApi { /** * System healthcheck per configuration. */ + @Override @GET @Path("healthcheck") - @ApiOperation( - value = "Perform a system healthcheck", - notes = "Provides healthy status of the PDP-D plus the components defined in its " - + "configuration by using a REST interface", - response = Reports.class - ) public Response healthcheck() { var summary = getHealthcheckManager().healthCheck(); return getResponse(summary); @@ -81,13 +57,9 @@ public class RestHealthCheck { * Engine Healthcheck. */ + @Override @GET @Path("healthcheck/engine") - @ApiOperation( - value = "Engine Healthcheck", - notes = "Provides a Healthcheck on the engine", - response = HealthCheck.class - ) public Response engine() { var summary = getHealthcheckManager().engineHealthcheck(); return getResponse(summary); @@ -97,13 +69,9 @@ public class RestHealthCheck { * Healthcheck on the controllers. */ + @Override @GET @Path("healthcheck/controllers") - @ApiOperation( - value = "Controllers Healthcheck", - notes = "Provides a Healthcheck on the configured controllers", - response = Reports.class - ) public Response controllers() { var summary = getHealthcheckManager().controllerHealthcheck(); return getResponse(summary); @@ -113,15 +81,10 @@ public class RestHealthCheck { * Healthcheck a controller. */ + @Override @GET @Path("healthcheck/controllers/{controllerName}") - @ApiOperation( - value = "Controller Healthcheck", - notes = "Provides a Healthcheck on a configured controller", - response = Reports.class - ) - public Response controllers(@ApiParam(value = "Policy Controller Name", - required = true) @PathParam("controllerName") String controllerName) { + public Response controllersName(@PathParam("controllerName") String controllerName) { try { var controller = getControllerFactory().get(controllerName); var summary = getHealthcheckManager().controllerHealthcheck(controller); @@ -137,13 +100,9 @@ public class RestHealthCheck { * Healthcheck on the Http Clients per configuration. */ + @Override @GET @Path("healthcheck/clients") - @ApiOperation( - value = "Http Clients Healthcheck", - notes = "Provides a Healthcheck on the configured HTTP clients", - response = Reports.class - ) public Response clients() { var summary = getHealthcheckManager().clientHealthcheck(); return getResponse(summary); @@ -153,15 +112,10 @@ public class RestHealthCheck { * Healthcheck a on a Http Client. */ + @Override @GET @Path("healthcheck/clients/{clientName}") - @ApiOperation( - value = "Http Client Healthcheck", - notes = "Provides a Healthcheck on a configured HTTP client", - response = Reports.class - ) - public Response clients(@ApiParam(value = "Http Client Name", - required = true) @PathParam("clientName") String clientName) { + public Response clientsName(@PathParam("clientName") String clientName) { try { var client = getClientFactory().get(clientName); var summary = getHealthcheckManager().clientHealthcheck(client); diff --git a/feature-healthcheck/src/main/resources/openapi/openapi.yaml b/feature-healthcheck/src/main/resources/openapi/openapi.yaml new file mode 100644 index 00000000..a16b60b7 --- /dev/null +++ b/feature-healthcheck/src/main/resources/openapi/openapi.yaml @@ -0,0 +1,152 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2023 Nordix Foundation +# ================================================================================ +# Licensed 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + +openapi: 3.0.3 +info: + title: "PDP-D Healthcheck Documentation" + description: PDP-D Healthcheck Services + version: Swagger Server +servers: +- url: http://{drools-ip}:9696 + variables: + drools-ip: + default: 0.0.0.0 +tags: +- name: pdp-d-healthcheck + description: Drools PDP Healthcheck Operations +paths: + /healthcheck: + get: + tags: + - pdp-d-healthcheck + summary: Perform a system healthcheck + description: Provides healthy status of the PDP-D plus the components defined in its configuration by using a REST interface + operationId: healthcheck + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /healthcheck/engine: + get: + tags: + - pdp-d-healthcheck + summary: Healthcheck engine + description: Provides a Healthcheck on the engine + operationId: engine + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /healthcheck/controllers: + get: + tags: + - pdp-d-healthcheck + summary: Controllers Healthcheck + description: Provides a Healthcheck on the configured controllers + operationId: controllers + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /healthcheck/controllers/{controllerName}: + get: + tags: + - pdp-d-healthcheck + summary: Controllers Healthcheck + description: Provides a Healthcheck on the configured controllers + parameters: + - name: controllerName + in: path + description: controller Name + required: true + schema: + type: string + operationId: controllersName + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /healthcheck/clients: + get: + tags: + - pdp-d-healthcheck + summary: Http Clients Healthcheck + description: Provides a Healthcheck on the configured HTTP clients + operationId: clients + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' + /healthcheck/clients/{clientsName}: + get: + tags: + - pdp-d-healthcheck + summary: Http Clients Healthcheck + description: Provides a Healthcheck on the configured HTTP clients + parameters: + - name: clientsName + in: path + description: controller Name + required: true + schema: + type: string + operationId: clientsName + responses: + 200: + description: successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/Response' + application/yaml: + schema: + $ref: '#/components/schemas/Response' +components: + schemas: + Response: + type: object
\ No newline at end of file |