aboutsummaryrefslogtreecommitdiffstats
path: root/feature-healthcheck
diff options
context:
space:
mode:
Diffstat (limited to 'feature-healthcheck')
-rw-r--r--feature-healthcheck/pom.xml43
-rw-r--r--feature-healthcheck/src/main/java/org/onap/policy/drools/healthcheck/RestHealthCheck.java66
-rw-r--r--feature-healthcheck/src/main/resources/openapi/openapi.yaml152
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