From 0a07999ae3b27154249de5744c4b20fbb627dcdb Mon Sep 17 00:00:00 2001 From: lapentafd Date: Tue, 7 Feb 2023 15:48:03 +0000 Subject: Removing Drools-pdp swagger annotations Added swagger extracted documentation in openapi.yaml for lifecycle, legacy, management and healthcheck. Added new endpoint to retrieve the generated swagger.json Modified endpoint in telemetry tool Issue-ID: POLICY-3465 Change-Id: I003aaf128b1a4991ffe6b79f0659d1bd0137b52d Signed-off-by: lapentafd --- feature-healthcheck/pom.xml | 43 ++++++ .../policy/drools/healthcheck/RestHealthCheck.java | 66 ++------- .../src/main/resources/openapi/openapi.yaml | 152 +++++++++++++++++++++ 3 files changed, 205 insertions(+), 56 deletions(-) create mode 100644 feature-healthcheck/src/main/resources/openapi/openapi.yaml (limited to 'feature-healthcheck') 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 @@ + + + io.swagger.codegen.v3 + swagger-codegen-maven-plugin + 3.0.27 + + + code-gen + + generate + + + ${project.basedir}/src/main/resources/openapi/openapi.yaml + org.onap.policy.drools.healthcheck + org.onap.policy.drools.healthcheck.model + org.onap.policy.drools.healthcheck + jaxrs-spec + false + false + false + + Response=javax.ws.rs.core.Response + + + boolean=boolean + + + src/gen/java + java11 + true + true + false + + + + + @@ -116,6 +153,12 @@ org.awaitility awaitility test + + + + io.swagger.core.v3 + swagger-annotations + ${version.swagger.core.v3} 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 -- cgit 1.2.3-korg