summaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'vid-app-common/src/main/java')
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/controller/open/RoleGeneratorController.java48
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/services/RoleGenaratorServiceImpl.java191
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/services/RoleGeneratorService.java25
3 files changed, 0 insertions, 264 deletions
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<String> 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<SubscriberList> 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<String,String> servicesNames = new HashMap<>();
- for (Subscriber subscriber: subscribers.customer) {
- AaiResponse<Services> 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<String,String> 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> 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);
-}