From 1a506214e5779e068c1d2b7b34dbf3d1c2e8c637 Mon Sep 17 00:00:00 2001 From: Oleg Mitsura Date: Tue, 27 Jul 2021 16:24:23 -0400 Subject: SO-3720 BuildingBlockRollback lookup table Issue-ID: SO-3720 BuildingBlockRollback lookup table will indicate the rollback BB to take; this is the first part for simplifying WorkflowActionBBTasks logic: instead of doing string matching, we just do a lookup of a block to call to perform the rollback operation. In some cases, the Action is set as well - this would be needed for certain BBs, in that case, there is a corresponding rollbackAction as well. Change-Id: I072a2ada894cf4672f5a1cdce762605757cb1d14 Signed-off-by: Oleg Mitsura --- .../so/adapters/catalogdb/JerseyConfiguration.java | 2 + .../rest/BuildingBlockRollbackRestImpl.java | 67 ++++++++++++++++++++++ .../migration/V8.9.1__AddBuildingBlockRollback.sql | 10 ++++ 3 files changed, 79 insertions(+) create mode 100644 adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/rest/BuildingBlockRollbackRestImpl.java create mode 100644 adapters/mso-catalog-db-adapter/src/main/resources/db/migration/V8.9.1__AddBuildingBlockRollback.sql (limited to 'adapters/mso-catalog-db-adapter/src/main') diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/JerseyConfiguration.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/JerseyConfiguration.java index 359c8cd46e..e276faf5d0 100644 --- a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/JerseyConfiguration.java +++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/JerseyConfiguration.java @@ -27,6 +27,7 @@ import javax.ws.rs.ApplicationPath; import org.glassfish.jersey.server.ResourceConfig; import org.onap.logging.filter.base.Constants; import org.onap.logging.filter.base.ONAPComponents; +import org.onap.so.adapters.catalogdb.rest.BuildingBlockRollbackRestImpl; import org.onap.so.adapters.catalogdb.rest.CatalogDbAdapterRest; import org.onap.so.adapters.catalogdb.rest.ServiceRestImpl; import org.onap.so.adapters.catalogdb.rest.VnfRestImpl; @@ -53,6 +54,7 @@ public class JerseyConfiguration extends ResourceConfig { register(AcceptHeaderOpenApiResource.class); register(ServiceRestImpl.class); register(VnfRestImpl.class); + register(BuildingBlockRollbackRestImpl.class); OpenAPI oas = new OpenAPI(); Info info = new Info(); diff --git a/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/rest/BuildingBlockRollbackRestImpl.java b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/rest/BuildingBlockRollbackRestImpl.java new file mode 100644 index 0000000000..bd247e1a4f --- /dev/null +++ b/adapters/mso-catalog-db-adapter/src/main/java/org/onap/so/adapters/catalogdb/rest/BuildingBlockRollbackRestImpl.java @@ -0,0 +1,67 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2021 Bell Canada + * ================================================================================ + * 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========================================================= + */ + +package org.onap.so.adapters.catalogdb.rest; + +import io.swagger.v3.oas.annotations.OpenAPIDefinition; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.info.Info; +import io.swagger.v3.oas.annotations.media.ArraySchema; +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 java.util.List; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import org.onap.so.db.catalog.beans.BuildingBlockRollback; +import org.onap.so.db.catalog.data.repository.BuildingBlockRollbackRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +@OpenAPIDefinition(info = @Info(title = "/v1", description = "model")) +@Path("/v1/buildingBlockRollback") +@Component +public class BuildingBlockRollbackRestImpl { + + @Autowired + private BuildingBlockRollbackRepository bbRollbackRepo; + + @GET + @Path("/{id}") + @Produces({MediaType.APPLICATION_JSON}) + @Transactional(readOnly = true) + public BuildingBlockRollback findService(@PathParam("id") Integer id) { + return bbRollbackRepo.findOneById(id); + } + + @GET + @Operation(description = "Look up BuildingBlock Rollback List", responses = @ApiResponse( + content = @Content(array = @ArraySchema(schema = @Schema(implementation = BuildingBlockRollback.class))))) + @Produces({MediaType.APPLICATION_JSON}) + @Transactional(readOnly = true) + public List getBBRollbackList() { + return bbRollbackRepo.findAll(); + } +} diff --git a/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/V8.9.1__AddBuildingBlockRollback.sql b/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/V8.9.1__AddBuildingBlockRollback.sql new file mode 100644 index 0000000000..11dd1ecfb3 --- /dev/null +++ b/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/V8.9.1__AddBuildingBlockRollback.sql @@ -0,0 +1,10 @@ +use catalogdb; + +CREATE TABLE IF NOT EXISTS `building_block_rollback` ( + `ID` INT NOT NULL AUTO_INCREMENT, + `BUILDING_BLOCK_NAME` varchar(200) NOT NULL, + `ACTION` varchar(200) null, + `ROLLBACK_BUILDING_BLOCK_NAME` varchar(200) NOT NULL, + `ROLLBACK_ACTION` varchar(200) NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- cgit 1.2.3-korg