aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancescoFioraEst <francesco.fiora@est.tech>2022-11-16 15:28:44 +0000
committerFrancesco Fiora <francesco.fiora@est.tech>2022-11-17 16:21:27 +0000
commit5f72a385593d3ca906c8f3a6c382db213fce206c (patch)
tree0f6f24087c444623057a51405a0482292705ec13
parentaf8ef619877bfe7ab17b8e3f1d9cacc6a3f9ca67 (diff)
Update participans to swagger v3
Participant Kubernetes Rest Controller is enabled only for testing and ACM Element is an application for testing, so they not need yaml endpoints definition and Contract testing. Issue-ID: POLICY-4459 Change-Id: Ibdab1b1fb6522e615eba182e8e3a332dec5b96fc Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
-rw-r--r--participant/participant-impl/participant-impl-acelement/src/main/java/org/onap/policy/clamp/acm/element/main/rest/AbstractRestController.java43
-rw-r--r--participant/participant-impl/participant-impl-acelement/src/main/java/org/onap/policy/clamp/acm/element/main/rest/AcElementController.java157
-rw-r--r--participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/controller/ChartController.java52
3 files changed, 80 insertions, 172 deletions
diff --git a/participant/participant-impl/participant-impl-acelement/src/main/java/org/onap/policy/clamp/acm/element/main/rest/AbstractRestController.java b/participant/participant-impl/participant-impl-acelement/src/main/java/org/onap/policy/clamp/acm/element/main/rest/AbstractRestController.java
index 7c963b6da..369342b11 100644
--- a/participant/participant-impl/participant-impl-acelement/src/main/java/org/onap/policy/clamp/acm/element/main/rest/AbstractRestController.java
+++ b/participant/participant-impl/participant-impl-acelement/src/main/java/org/onap/policy/clamp/acm/element/main/rest/AbstractRestController.java
@@ -20,13 +20,6 @@
package org.onap.policy.clamp.acm.element.main.rest;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.BasicAuthDefinition;
-import io.swagger.annotations.Info;
-import io.swagger.annotations.SecurityDefinition;
-import io.swagger.annotations.SwaggerDefinition;
-import io.swagger.annotations.Tag;
-import java.net.HttpURLConnection;
import javax.ws.rs.core.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -41,32 +34,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
AbstractRestController.APPLICATION_YAML
}
)
-@Api(value = "AC Element API")
-@SwaggerDefinition(
- info = @Info(
- description = "AC Element",
- version = "v1.0",
- title = "AC Element"
- ),
- consumes = {MediaType.APPLICATION_JSON, AbstractRestController.APPLICATION_YAML},
- produces = {MediaType.APPLICATION_JSON, AbstractRestController.APPLICATION_YAML},
- schemes = {SwaggerDefinition.Scheme.HTTP, SwaggerDefinition.Scheme.HTTPS},
- tags = {
- @Tag(name = "acelement", description = "Ac element implementation")
- },
- securityDefinition = @SecurityDefinition(basicAuthDefinitions = {@BasicAuthDefinition(key = "basicAuth")})
-)
// @formatter:on
public abstract class AbstractRestController {
public static final String APPLICATION_YAML = "application/yaml";
- public static final String EXTENSION_NAME = "interface info";
-
public static final String API_VERSION_NAME = "api-version";
- public static final String API_VERSION = "1.0.0";
-
- public static final String LAST_MOD_NAME = "last-mod-release";
- public static final String LAST_MOD_RELEASE = "Dublin";
public static final String VERSION_MINOR_NAME = "X-MinorVersion";
public static final String VERSION_MINOR_DESCRIPTION =
@@ -83,14 +55,13 @@ public abstract class AbstractRestController {
public static final String REQUEST_ID_NAME = "X-ONAP-RequestID";
public static final String REQUEST_ID_HDR_DESCRIPTION = "Used to track REST transactions for logging purpose";
- public static final String AUTHORIZATION_TYPE = "basicAuth";
-
- public static final int AUTHENTICATION_ERROR_CODE = HttpURLConnection.HTTP_UNAUTHORIZED;
- public static final int AUTHORIZATION_ERROR_CODE = HttpURLConnection.HTTP_FORBIDDEN;
- public static final int SERVER_ERROR_CODE = HttpURLConnection.HTTP_INTERNAL_ERROR;
+ public static final String OK_CODE = "200";
+ public static final String CREATED_CODE = "201";
+ public static final String NO_CONTENT_CODE = "204";
+ public static final String AUTHENTICATION_ERROR_CODE = "401";
+ public static final String BAD_REQUEST_ERROR_CODE = "400";
public static final String AUTHENTICATION_ERROR_MESSAGE = "Authentication Error";
- public static final String AUTHORIZATION_ERROR_MESSAGE = "Authorization Error";
- public static final String SERVER_ERROR_MESSAGE = "Internal Server Error";
-
+ public static final String BAD_REQUEST_ERROR_MESSAGE = "Bad request";
+ public static final String SERVER_OK_MESSAGE = "Success";
} \ No newline at end of file
diff --git a/participant/participant-impl/participant-impl-acelement/src/main/java/org/onap/policy/clamp/acm/element/main/rest/AcElementController.java b/participant/participant-impl/participant-impl-acelement/src/main/java/org/onap/policy/clamp/acm/element/main/rest/AcElementController.java
index 7a8662c34..afe864edc 100644
--- a/participant/participant-impl/participant-impl-acelement/src/main/java/org/onap/policy/clamp/acm/element/main/rest/AcElementController.java
+++ b/participant/participant-impl/participant-impl-acelement/src/main/java/org/onap/policy/clamp/acm/element/main/rest/AcElementController.java
@@ -20,14 +20,12 @@
package org.onap.policy.clamp.acm.element.main.rest;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import io.swagger.annotations.Authorization;
-import io.swagger.annotations.Extension;
-import io.swagger.annotations.ExtensionProperty;
-import io.swagger.annotations.ResponseHeader;
-import java.util.UUID;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.headers.Header;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
import lombok.RequiredArgsConstructor;
import org.onap.policy.clamp.acm.element.service.ConfigService;
import org.onap.policy.clamp.models.acm.messages.rest.element.ElementConfig;
@@ -46,7 +44,6 @@ public class AcElementController extends AbstractRestController {
private final ConfigService configService;
-
/**
* REST endpoint to get the existing element config.
*
@@ -54,40 +51,21 @@ public class AcElementController extends AbstractRestController {
*/
// @formatter:off
@GetMapping(path = "/config", produces = MediaType.APPLICATION_JSON_VALUE)
- @ApiOperation(
- value = "Return the element config",
- response = ElementConfig.class,
- tags = {
- "Clamp Automation Composition AC Element Impl API"
- },
- authorizations = @Authorization(value = AUTHORIZATION_TYPE),
- responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)},
- extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
- })
+ @Operation(summary = "Return the element config",
+ tags = { "Clamp Automation Composition AC Element Impl API" })
@ApiResponses(
value = {
- @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
- @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
- @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
+ @ApiResponse(responseCode = OK_CODE, description = SERVER_OK_MESSAGE,
+ content = @Content(schema = @Schema(implementation = ElementConfig.class)),
+ headers = {
+ @Header(name = API_VERSION_NAME),
+ @Header(name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION),
+ @Header(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION),
+ @Header(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION),
+ @Header(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION),
+ @Header(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION)
+ }),
+ @ApiResponse(responseCode = AUTHENTICATION_ERROR_CODE, description = AUTHENTICATION_ERROR_MESSAGE)
}
)
// @formatter:on
@@ -102,43 +80,23 @@ public class AcElementController extends AbstractRestController {
*/
// @formatter:off
@PostMapping(path = "/activate", consumes = MediaType.APPLICATION_JSON_VALUE,
- produces = MediaType.APPLICATION_JSON_VALUE)
- @ApiOperation(
- value = "Activates the element config",
- response = ElementConfig.class,
- tags = {
- "Clamp Automation Composition AC Element Impl API"
- },
- authorizations = @Authorization(value = AUTHORIZATION_TYPE),
- responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)
- },
- extensions = {
- @Extension (
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
- }
+ produces = MediaType.APPLICATION_JSON_VALUE)
+ @Operation(summary = "Activates the element config",
+ tags = { "Clamp Automation Composition AC Element Impl API" }
)
@ApiResponses(
value = {
- @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
- @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
- @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
+ @ApiResponse(responseCode = CREATED_CODE, description = SERVER_OK_MESSAGE,
+ headers = {
+ @Header(name = API_VERSION_NAME),
+ @Header(name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION),
+ @Header(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION),
+ @Header(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION),
+ @Header(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION),
+ @Header(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION)
+ }),
+ @ApiResponse(responseCode = AUTHENTICATION_ERROR_CODE, description = AUTHENTICATION_ERROR_MESSAGE),
+ @ApiResponse(responseCode = BAD_REQUEST_ERROR_CODE, description = BAD_REQUEST_ERROR_MESSAGE)
}
)
// formatter:on
@@ -154,47 +112,26 @@ public class AcElementController extends AbstractRestController {
*/
// @formatter:off
@DeleteMapping(path = "/deactivate")
- @ApiOperation(
- value = "Delete the element config",
- response = ElementConfig.class,
- tags = {
- "Clamp Automation Composition AC Element Impl API"
- },
- authorizations = @Authorization(value = AUTHORIZATION_TYPE),
- responseHeaders = {
- @ResponseHeader(
- name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,
- response = String.class),
- @ResponseHeader(
- name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION,
- response = UUID.class)},
- extensions = {
- @Extension(
- name = EXTENSION_NAME,
- properties = {
- @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),
- @ExtensionProperty(name = LAST_MOD_NAME, value = LAST_MOD_RELEASE)
- }
- )
- }
+ @Operation(summary = "Delete the element config",
+ tags = { "Clamp Automation Composition AC Element Impl API" }
)
@ApiResponses(
value = {
- @ApiResponse(code = AUTHENTICATION_ERROR_CODE, message = AUTHENTICATION_ERROR_MESSAGE),
- @ApiResponse(code = AUTHORIZATION_ERROR_CODE, message = AUTHORIZATION_ERROR_MESSAGE),
- @ApiResponse(code = SERVER_ERROR_CODE, message = SERVER_ERROR_MESSAGE)
+ @ApiResponse(responseCode = NO_CONTENT_CODE, description = SERVER_OK_MESSAGE,
+ headers = {
+ @Header(name = API_VERSION_NAME),
+ @Header(name = VERSION_MINOR_NAME, description = VERSION_MINOR_DESCRIPTION),
+ @Header(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION),
+ @Header(name = VERSION_PATCH_NAME, description = VERSION_PATCH_DESCRIPTION),
+ @Header(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION),
+ @Header(name = REQUEST_ID_NAME, description = REQUEST_ID_HDR_DESCRIPTION)
+ }),
+ @ApiResponse(responseCode = AUTHENTICATION_ERROR_CODE, description = AUTHENTICATION_ERROR_MESSAGE)
}
)
// @formatter:on
- public ResponseEntity<Object> deleteConfig() {
+ public ResponseEntity<Void> deleteConfig() {
configService.deleteConfig();
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
-
}
-} \ No newline at end of file
+}
diff --git a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/controller/ChartController.java b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/controller/ChartController.java
index 7d0c6c0d8..1186b7bf5 100644
--- a/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/controller/ChartController.java
+++ b/participant/participant-impl/participant-impl-kubernetes/src/main/java/org/onap/policy/clamp/acm/participant/kubernetes/controller/ChartController.java
@@ -18,13 +18,14 @@
package org.onap.policy.clamp.acm.participant.kubernetes.controller;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
+import lombok.RequiredArgsConstructor;
import org.onap.policy.clamp.acm.participant.kubernetes.exception.ServiceException;
import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartInfo;
import org.onap.policy.clamp.acm.participant.kubernetes.models.ChartList;
@@ -35,7 +36,6 @@ import org.onap.policy.common.utils.coder.CoderException;
import org.onap.policy.common.utils.coder.StandardCoder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
@@ -51,15 +51,15 @@ import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
+@RequiredArgsConstructor
@RestController("chartController")
@ConditionalOnExpression("${chart.api.enabled:false}")
@RequestMapping("helm")
-@Api(tags = {"k8s-participant"})
+@Tag(name = "k8s-participant")
public class ChartController {
private final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- @Autowired
- private ChartService chartService;
+ private final ChartService chartService;
private static final StandardCoder CODER = new StandardCoder();
@@ -69,8 +69,8 @@ public class ChartController {
* @return List of charts installed
*/
@GetMapping(path = "/charts", produces = MediaType.APPLICATION_JSON_VALUE)
- @ApiOperation(value = "Return all Charts")
- @ApiResponses(value = {@ApiResponse(code = 200, message = "chart List")})
+ @Operation(summary = "Return all Charts")
+ @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "chart List")})
public ResponseEntity<ChartList> getAllCharts() {
return new ResponseEntity<>(ChartList.builder().charts(new ArrayList<>(chartService.getAllCharts())).build(),
HttpStatus.OK);
@@ -86,9 +86,9 @@ public class ChartController {
*/
@PostMapping(path = "/install", consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
- @ApiOperation(value = "Install the chart")
- @ApiResponses(value = {@ApiResponse(code = 201, message = "chart Installed")})
- public ResponseEntity<Object> installChart(@RequestBody InstallationInfo info)
+ @Operation(summary = "Install the chart")
+ @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "chart Installed")})
+ public ResponseEntity<Void> installChart(@RequestBody InstallationInfo info)
throws ServiceException, IOException {
ChartInfo chart = chartService.getChart(info.getName(), info.getVersion());
if (chart == null) {
@@ -108,9 +108,9 @@ public class ChartController {
* @throws ServiceException in case of error.
*/
@DeleteMapping(path = "/uninstall/{name}/{version}", produces = MediaType.APPLICATION_JSON_VALUE)
- @ApiOperation(value = "Uninstall the Chart")
- @ApiResponses(value = {@ApiResponse(code = 201, message = "chart Uninstalled")})
- public ResponseEntity<Object> uninstallChart(@PathVariable("name") String name,
+ @Operation(summary = "Uninstall the Chart")
+ @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "chart Uninstalled")})
+ public ResponseEntity<Void> uninstallChart(@PathVariable("name") String name,
@PathVariable("version") String version) throws ServiceException {
ChartInfo chart = chartService.getChart(name, version);
if (chart == null) {
@@ -133,9 +133,9 @@ public class ChartController {
*/
@PostMapping(path = "/onboard/chart", consumes = MediaType.MULTIPART_FORM_DATA_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
- @ApiOperation(value = "Onboard the Chart")
- @ApiResponses(value = {@ApiResponse(code = 201, message = "Chart Onboarded")})
- public ResponseEntity<String> onboardChart(@RequestPart("chart") MultipartFile chartFile,
+ @Operation(summary = "Onboard the Chart")
+ @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Chart Onboarded")})
+ public ResponseEntity<Void> onboardChart(@RequestPart("chart") MultipartFile chartFile,
@RequestParam(name = "values", required = false) MultipartFile overrideFile,
@RequestParam("info") String infoJson) throws ServiceException, IOException {
@@ -158,9 +158,9 @@ public class ChartController {
* @return Status of operation
*/
@DeleteMapping(path = "/chart/{name}/{version}")
- @ApiOperation(value = "Delete the chart")
- @ApiResponses(value = {@ApiResponse(code = 204, message = "Chart Deleted")})
- public ResponseEntity<Object> deleteChart(@PathVariable("name") String name,
+ @Operation(summary = "Delete the chart")
+ @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Chart Deleted")})
+ public ResponseEntity<Void> deleteChart(@PathVariable("name") String name,
@PathVariable("version") String version) {
ChartInfo chart = chartService.getChart(name, version);
@@ -182,10 +182,10 @@ public class ChartController {
*/
@PostMapping(path = "/repo", consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
- @ApiOperation(value = "Configure helm repository")
- @ApiResponses(value = {@ApiResponse(code = 201, message = "Repository added"),
- @ApiResponse(code = 409, message = "Repository already Exist")})
- public ResponseEntity<Object> configureRepo(@RequestBody String repo)
+ @ApiResponses(
+ value = {@ApiResponse(responseCode = "201", description = "Repository added"),
+ @ApiResponse(responseCode = "409", description = "Repository already Exist")})
+ public ResponseEntity<String> configureRepo(@RequestBody String repo)
throws ServiceException, IOException {
HelmRepository repository;
try {