From d4d98f9674093637589fe3780d22756f02e92e1b Mon Sep 17 00:00:00 2001 From: Eylon Malin Date: Mon, 2 Sep 2019 16:13:02 +0300 Subject: remove not used feature RoleGenerator Issue-ID: VID-378 Signed-off-by: Eylon Malin Change-Id: I0eea2c7305f6faabcb1e54a7f4dd9f51fe37586f --- .../controller/open/RoleGeneratorController.java | 48 ------ .../vid/services/RoleGenaratorServiceImpl.java | 191 --------------------- .../onap/vid/services/RoleGeneratorService.java | 25 --- .../src/main/resources/generateRoleScript.sh | 3 - .../open/RoleGeneratorControllerTest.java | 80 --------- .../vid/services/RoleGenaratorServiceImplTest.java | 140 --------------- 6 files changed, 487 deletions(-) delete mode 100644 vid-app-common/src/main/java/org/onap/vid/controller/open/RoleGeneratorController.java delete mode 100644 vid-app-common/src/main/java/org/onap/vid/services/RoleGenaratorServiceImpl.java delete mode 100644 vid-app-common/src/main/java/org/onap/vid/services/RoleGeneratorService.java delete mode 100644 vid-app-common/src/main/resources/generateRoleScript.sh delete mode 100644 vid-app-common/src/test/java/org/onap/vid/controller/open/RoleGeneratorControllerTest.java delete mode 100644 vid-app-common/src/test/java/org/onap/vid/services/RoleGenaratorServiceImplTest.java diff --git a/vid-app-common/src/main/java/org/onap/vid/controller/open/RoleGeneratorController.java b/vid-app-common/src/main/java/org/onap/vid/controller/open/RoleGeneratorController.java deleted file mode 100644 index 7b57df2c7..000000000 --- a/vid-app-common/src/main/java/org/onap/vid/controller/open/RoleGeneratorController.java +++ /dev/null @@ -1,48 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * VID - * ================================================================================ - * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright 2019 Nokia - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.vid.controller.open; - -import static org.springframework.http.HttpStatus.OK; - -import org.onap.portalsdk.core.controller.UnRestrictedBaseController; -import org.onap.vid.services.RoleGeneratorService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class RoleGeneratorController extends UnRestrictedBaseController { - public static final String GENERATE_ROLE_SCRIPT = "generateRoleScript"; - private RoleGeneratorService roleGeneratorService; - - @Autowired - public RoleGeneratorController(RoleGeneratorService roleGeneratorService) { - this.roleGeneratorService = roleGeneratorService; - } - @RequestMapping(value = GENERATE_ROLE_SCRIPT +"/{firstRun}", method = RequestMethod.GET ) - public ResponseEntity generateRoleScript (@PathVariable("firstRun") boolean firstRun) { - return ResponseEntity.status(OK).body(roleGeneratorService.generateRoleScript(firstRun)); - } -} diff --git a/vid-app-common/src/main/java/org/onap/vid/services/RoleGenaratorServiceImpl.java b/vid-app-common/src/main/java/org/onap/vid/services/RoleGenaratorServiceImpl.java deleted file mode 100644 index 815c85d6f..000000000 --- a/vid-app-common/src/main/java/org/onap/vid/services/RoleGenaratorServiceImpl.java +++ /dev/null @@ -1,191 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * VID - * ================================================================================ - * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2018 - 2019 Nokia. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.vid.services; - -import io.joshworks.restclient.http.HttpResponse; -import jline.internal.Log; -import org.onap.vid.aai.*; -import org.onap.vid.model.ModelConstants; -import org.onap.vid.model.Subscriber; -import org.onap.vid.model.SubscriberList; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.HashMap; - -@Service -public class RoleGenaratorServiceImpl implements RoleGeneratorService { - - public static final String ROLE_ID_COLUMN = "ROLE_ID"; - - @Autowired - AaiClientInterface client; - - @Autowired - AaiOverTLSClientInterface aaiOverTLSClient; - - public static final String DB_NAME = "vid_portal"; - public static final String TBL_NAME = "fn_role"; - public static final String TEMP_DELIMITER ="***"; - public static final String OLD_DELIMITER = "_"; - public static final String CrLf = ";\r\n"; - - @Override - public String generateRoleScript(Boolean firstRun) { - String query = "USE " + DB_NAME + CrLf + - "SET SQL_SAFE_UPDATES = 0;\r\n"; - try { - HttpResponse allSubscribers = aaiOverTLSClient.getAllSubscribers(); - if (firstRun) { - query += replaceRolesToTempDelimiter("subscriber",buildSubscribersValuesForMappingsTable(allSubscribers.getBody())); - } - query += addAvailableRolesCombination(firstRun, allSubscribers.getBody()); - - } - catch (Exception e) { - Log.error("There was an error in updating roles ", e); - } - return query; - } - - private String addAvailableRolesCombination(Boolean firstRun, SubscriberList subscribers) { - String query; - String availableRoles=""; - HashMap servicesNames = new HashMap<>(); - for (Subscriber subscriber: subscribers.customer) { - AaiResponse subscriberResponse = client.getSubscriberData(subscriber.globalCustomerId, true); - for(ServiceSubscription service: subscriberResponse.getT().serviceSubscriptions.serviceSubscription) { - servicesNames.put(service.serviceType,""); - String roleName = "'" + subscriber.subscriberName + ModelConstants.ROLE_DELIMITER + service.serviceType + "'"; - availableRoles += "("+roleName+"),"; - - - } - } - availableRoles = availableRoles.substring(0,availableRoles.length()-1); - query = createTemporaryTableAvailableRoles(availableRoles); - if (firstRun){ - query += replaceRolesToTempDelimiter("service",buildServicesValuesForMappingsTable(servicesNames)); - query += replaceToNewDelimiter(); - query += deleteWrongRecords(); - - } - query += insertAvailableRolesToFnRole(); - query += dropTemporaryTable("available_roles"); - return query; - } - - private String buildSubscribersValuesForMappingsTable(SubscriberList subscribers){ - String query=""; - for (Subscriber subscriber : subscribers.customer) { - String subscriberName = subscriber.subscriberName.contains(OLD_DELIMITER) ? subscriber.subscriberName.replace(OLD_DELIMITER, TEMP_DELIMITER) : subscriber.subscriberName; - query = query + "('" + subscriber.globalCustomerId + "','" + subscriberName + "') ,"; - } - if(query.length() > 0) - query = query.substring(0, query.length()-1) + CrLf; - return query; - } - - private String buildServicesValuesForMappingsTable(HashMap servicesNames){ - final String[] query = {""}; - servicesNames.forEach((k,v)->{ - if (k.contains(OLD_DELIMITER)) { - query[0] += "('" + k + "' ,'" + k.replace(OLD_DELIMITER, TEMP_DELIMITER) +"'),"; - } - }); - if(query[0].length() > 0) - query[0] = query[0].substring(0, query[0].length()-1) + CrLf; - return query[0]; - } - - private String replaceRolesToTempDelimiter(String entityName, String valuesForMappingsTable ) { - - AaiResponse services = client.getServices(); - String query = ""; - if (valuesForMappingsTable.length() > 0) { - query = "CREATE TEMPORARY TABLE IF NOT EXISTS " + entityName + "Mappings(mapKey VARCHAR(255),mapValue VARCHAR(255));\r\n" + - "INSERT INTO " + entityName + "Mappings VALUES "; - query += valuesForMappingsTable; - query += "UPDATE " + TBL_NAME + "\r\n" + - "INNER JOIN " + entityName + "Mappings ON role_name LIKE concat('%',mapKey, '%')\r\n" + - "SET ROLE_NAME = REPLACE(ROLE_NAME, mapKey, mapValue) ; \r\n" + - dropTemporaryTable(entityName + "Mappings"); - } - return query; - } - - private String replaceToNewDelimiter(){ - String query = "UPDATE " + TBL_NAME + "\r\n" + - "SET ROLE_NAME = REPLACE(ROLE_NAME, '" + OLD_DELIMITER + "', '" + ModelConstants.ROLE_DELIMITER + "');\r\n" ; - query += "UPDATE fn_role\r\n" + - "SET ROLE_NAME = REPLACE(ROLE_NAME, '" + TEMP_DELIMITER + "', '" + OLD_DELIMITER + "');\r\n" ; - return query; - } - - private String insertAvailableRolesToFnRole(){ - return "INSERT INTO fn_role (ROLE_NAME, ACTIVE_YN, PRIORITY)\r\n" + - "SELECT RNAME, 'Y', 5\r\n" + - "FROM available_roles\r\n" + - "WHERE NOT EXISTS (SELECT ROLE_NAME\r\n" + - "FROM fn_role \r\n" + - "where RNAME = ROLE_NAME);\r\n"; - } - - - - private String createTemporaryTableAvailableRoles(String availableRoles) { - String query = "CREATE TEMPORARY TABLE IF NOT EXISTS available_roles(rname VARCHAR(255));\r\n"; - query += "INSERT INTO available_roles VALUES "+availableRoles+CrLf; - return query; - } - - private String deleteWrongRecords(){ - String query ="CREATE TEMPORARY TABLE IF NOT EXISTS wrong_roles(roleID INT);\r\n" + - "INSERT INTO wrong_roles (roleID)\r\n" + - "SELECT ROLE_ID FROM fn_role LEFT JOIN available_roles ON role_name LIKE concat(rname, '%')\r\n" + - "WHERE available_roles.rname IS NULL AND ROLE_ID NOT IN (1,16);\r\n"; - query += deleteCascade(); - query += dropTemporaryTable("wrong_roles"); - return query; - } - - private String deleteCascade() { - String query = deleteFromTableByRoles("fn_role_composite", "PARENT_ROLE_ID"); - query = query.substring(0, query.length()-1); - query += " OR wrong_roles.ROLEID = fn_role_composite.CHILD_ROLE_ID;\r\n"; - query += deleteFromTableByRoles("fn_role_function", ROLE_ID_COLUMN)+ "\r\n"; - query += deleteFromTableByRoles("fn_user_role", ROLE_ID_COLUMN)+ "\r\n"; - query += deleteFromTableByRoles(TBL_NAME, ROLE_ID_COLUMN)+ "\r\n"; - return query; - } - - private String deleteFromTableByRoles(String table, String column) { - String query = "DELETE FROM " + table + "\r\n"; - query += "using " + table + " inner join wrong_roles\r\n" + - "where wrong_roles.ROLEID = " + table + "." + column + ";"; - return query; - } - - private String dropTemporaryTable(String table) { - return "DROP TEMPORARY TABLE IF EXISTS " + table + CrLf; - } -} diff --git a/vid-app-common/src/main/java/org/onap/vid/services/RoleGeneratorService.java b/vid-app-common/src/main/java/org/onap/vid/services/RoleGeneratorService.java deleted file mode 100644 index ef6fa3ba2..000000000 --- a/vid-app-common/src/main/java/org/onap/vid/services/RoleGeneratorService.java +++ /dev/null @@ -1,25 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * VID - * ================================================================================ - * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.vid.services; - -public interface RoleGeneratorService { - String generateRoleScript(Boolean firstRun); -} diff --git a/vid-app-common/src/main/resources/generateRoleScript.sh b/vid-app-common/src/main/resources/generateRoleScript.sh deleted file mode 100644 index cf73b7412..000000000 --- a/vid-app-common/src/main/resources/generateRoleScript.sh +++ /dev/null @@ -1,3 +0,0 @@ -firstRun=${1-false} -url=http://127.0.0.1:8080/vid/generateRoleScript/$firstRun -wget -O roles.sql $url \ No newline at end of file diff --git a/vid-app-common/src/test/java/org/onap/vid/controller/open/RoleGeneratorControllerTest.java b/vid-app-common/src/test/java/org/onap/vid/controller/open/RoleGeneratorControllerTest.java deleted file mode 100644 index c1509d956..000000000 --- a/vid-app-common/src/test/java/org/onap/vid/controller/open/RoleGeneratorControllerTest.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * VID - * ================================================================================ - * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright 2019 Nokia - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.vid.controller.open; - -import static org.mockito.BDDMockito.given; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import org.apache.log4j.BasicConfigurator; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; -import org.onap.vid.controller.open.RoleGeneratorController; -import org.onap.vid.services.RoleGeneratorService; -import org.springframework.http.MediaType; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.setup.MockMvcBuilders; - -@RunWith(MockitoJUnitRunner.class) -public class RoleGeneratorControllerTest { - - private static final String PATH = "/generateRoleScript/{firstRun}"; - - private static final String FIRST_JSON = "{key1: val1}"; - private static final String SECOND_JSON = "{key2: val2}"; - - private RoleGeneratorController roleGeneratorController; - private MockMvc mockMvc; - - @Mock - private RoleGeneratorService service; - - @Before - public void setUp() { - roleGeneratorController = new RoleGeneratorController(service); - BasicConfigurator.configure(); - mockMvc = MockMvcBuilders.standaloneSetup(roleGeneratorController).build(); - - given(service.generateRoleScript(true)).willReturn(FIRST_JSON); - given(service.generateRoleScript(false)).willReturn(SECOND_JSON); - } - - @Test - public void generateRoleScript_shouldReturnJson_whenFirstRun() throws Exception { - mockMvc.perform(get(PATH, "true") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()) - .andExpect(content().json(FIRST_JSON)); - } - - @Test - public void generateRoleScript_shouldReturnJson_whenNoFirstRun() throws Exception { - mockMvc.perform(get(PATH, "false") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()) - .andExpect(content().json(SECOND_JSON)); - } -} diff --git a/vid-app-common/src/test/java/org/onap/vid/services/RoleGenaratorServiceImplTest.java b/vid-app-common/src/test/java/org/onap/vid/services/RoleGenaratorServiceImplTest.java deleted file mode 100644 index 2bf73eece..000000000 --- a/vid-app-common/src/test/java/org/onap/vid/services/RoleGenaratorServiceImplTest.java +++ /dev/null @@ -1,140 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * VID - * ================================================================================ - * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2018 - 2019 Nokia. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ -package org.onap.vid.services; - -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.doThrow; -import static org.mockito.MockitoAnnotations.initMocks; - -import java.util.ArrayList; -import org.apache.commons.lang.StringUtils; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.onap.vid.aai.AaiClientInterface; -import org.onap.vid.aai.AaiResponse; -import org.onap.vid.aai.ServiceSubscription; -import org.onap.vid.aai.ServiceSubscriptions; -import org.onap.vid.aai.Services; -import org.onap.vid.model.Subscriber; -import org.onap.vid.model.SubscriberList; -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -public class RoleGenaratorServiceImplTest { - - private static final String GLOBAL_CUSTOMER_ID = "997"; - private static final String SUBSCRIBER_NAME = "name"; - private static final String SUBSCRIBER_TYPE = "subscriber_type"; - private static final String RESOURCE_VERSION = "1"; - private static final String SERVICE_TYPE = "service_type"; - - @Mock - private AaiClientInterface aaiClientInterface; - - @InjectMocks - private RoleGenaratorServiceImpl testSubject; - - @BeforeClass - public void beforeClass() { - initMocks(this); - } - - @BeforeMethod - public void resetMocks() { - Mockito.reset(aaiClientInterface); - } - - @Test - public void tenerateRoleScript_firstRun() { - boolean firstRun = true; - - Subscriber subscriber = createSubscriber(); - AaiResponse subscribers = createSubscriberListAaiResponse(subscriber); - doReturn(subscribers).when(aaiClientInterface).getAllSubscribers(); - - ServiceSubscription serviceSubscription = createServiceSubscription(); - AaiResponse subscriberResponse = createServicesAaiResponse(serviceSubscription); - doReturn(subscriberResponse).when(aaiClientInterface).getSubscriberData(subscriber.globalCustomerId,false); - - String result = testSubject.generateRoleScript(firstRun); - Assert.assertTrue(StringUtils.isNotBlank(result)); - } - - @Test - public void tenerateRoleScript_notAFirstRun() { - boolean firstRun = false; - - Subscriber subscriber = createSubscriber(); - AaiResponse subscribers = createSubscriberListAaiResponse(subscriber); - doReturn(subscribers).when(aaiClientInterface).getAllSubscribers(); - - ServiceSubscription serviceSubscription = createServiceSubscription(); - AaiResponse subscriberResponse = createServicesAaiResponse(serviceSubscription); - doReturn(subscriberResponse).when(aaiClientInterface).getSubscriberData(subscriber.globalCustomerId, false); - - String result = testSubject.generateRoleScript(firstRun); - Assert.assertTrue(StringUtils.isNotBlank(result)); - } - - @Test(expectedExceptions = { Exception.class }) - public void tenerateRoleScript_errorGettingDataFromAAIClient() { - boolean firstRun = false; - - doThrow(new Exception("This is expected.")).when(aaiClientInterface).getAllSubscribers(); - - String result = testSubject.generateRoleScript(firstRun); - Assert.fail(); - } - - private ServiceSubscription createServiceSubscription() { - ServiceSubscription serviceSubscription = new ServiceSubscription(); - serviceSubscription.serviceType = SERVICE_TYPE; - return serviceSubscription; - } - - private AaiResponse createSubscriberListAaiResponse(Subscriber subscriber) { - AaiResponse subscribers = new AaiResponse<>(new SubscriberList(new ArrayList<>()), "", 200); - subscribers.getT().customer.add(subscriber); - return subscribers; - } - - private AaiResponse createServicesAaiResponse(ServiceSubscription serviceSubscription) { - AaiResponse subscriberResponse = new AaiResponse<>(new Services(), "", 200); - subscriberResponse.getT().serviceSubscriptions = new ServiceSubscriptions(); - subscriberResponse.getT().serviceSubscriptions.serviceSubscription = new ArrayList<>(); - subscriberResponse.getT().serviceSubscriptions.serviceSubscription.add(serviceSubscription); - return subscriberResponse; - } - - private Subscriber createSubscriber() { - Subscriber subscriber = new Subscriber(); - subscriber.globalCustomerId = GLOBAL_CUSTOMER_ID; - subscriber.subscriberName = SUBSCRIBER_NAME; - subscriber.subscriberType = SUBSCRIBER_TYPE; - subscriber.resourceVersion = RESOURCE_VERSION; - return subscriber; - } - - -} -- cgit 1.2.3-korg