diff options
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 { |