aboutsummaryrefslogtreecommitdiffstats
path: root/POLICY-SDK-APP/src
diff options
context:
space:
mode:
Diffstat (limited to 'POLICY-SDK-APP/src')
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/admin/CheckPdpProperties.java (renamed from POLICY-SDK-APP/src/main/java/org/onap/policy/admin/CheckPDP.java)58
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyAdapter.java49
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java442
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyNotificationMail.java145
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyRestController.java158
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyUserInfoController.java20
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/admin/RESTfulPAPEngine.java190
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/components/HumanPolicyComponent.java377
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/conf/HibernateSession.java67
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ActionPolicyController.java250
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AdminTabController.java71
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java127
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java289
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java117
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopFaultController.java255
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopPMController.java151
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateDcaeMicroServiceController.java711
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateFirewallController.java1726
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java383
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreatePolicyController.java203
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DashboardController.java182
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java528
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntries.java44
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java732
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java165
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java167
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyNotificationController.java169
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java109
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyValidationController.java70
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/dao/SystemLogDbDao.java12
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/daoImp/CommonClassDaoImpl.java662
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/daoImp/SystemLogDbDaoImpl.java126
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/model/PDPGroupContainer.java80
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/model/Roles.java131
-rw-r--r--POLICY-SDK-APP/src/main/java/org/onap/policy/utils/UserUtils.java25
-rw-r--r--POLICY-SDK-APP/src/main/webapp/WEB-INF/conf/system.properties4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/CSS/bootstrap/dist/js/bootstrap-modalmanager.min.js341
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/AutoPushController.js135
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/AutoPushTabController/RemovePDPGroupPoliciesController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/PolicyAddScopeRoleController.js6
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dashboardCRUDController.js185
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSControllerDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSDependencyDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSParamDictController.js5
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLPepOptionsDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLServiceDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLSiteDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVarbindDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVnfTypeDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVsclActionDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DecisionRainyDayDictController.js14
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DecisionSettingsDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DescriptiveSearchDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/EnforcerDictController.js22
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWActionListDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWAddressGroupDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWParentListDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWPortListDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWPrefixListDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWProtocolListDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWSecurityZoneDictController.js72
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWServiceGroupDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWServiceListDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTagListDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTagPickerListDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTermListDictController.js28
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWZoneDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSConfigNameDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSDcaeUUIDDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSDictionaryController.js2
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSHeaderDefaultValuesDictController.js195
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSLocationDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/ModelAttributeDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSClosedLoopDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSGroupPolicyScopeDictController.js156
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSResourceDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSServiceDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSTypeDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/RiskTypeDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/SafePolicyWarningDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/actionPolicyDictController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/attributeDictController.js7
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/onapNameEditorController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/BRMSParamDictGridController.js6
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLPepOptionsDictGridController.js6
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLServiceDictGridController.js6
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLSiteDictGridController.js6
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVarbindDictGridController.js4
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVnfTypeDictGridController.js6
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVsclActionDictGridController.js6
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/MSHeaderDefaultValuesDictGridController.js27
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/attributeDictGridController.js6
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/onapNameDictGridController.js8
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/policyAdminTabController.js84
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/main/modalPopupController.js22
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/main/policyEditor.html529
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js15
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js233
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js218
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js6
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js1521
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js6
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js3126
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js848
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js270
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js2370
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policyManager.js576
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js330
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js5
-rw-r--r--POLICY-SDK-APP/src/main/webapp/app/policyApp/service/modalService.js12
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPDPTest.java95
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPdpPropertiesTest.java82
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java686
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyNotificationMailTest.java28
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyRestControllerTest.java295
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyUserInfoControllerTest.java22
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/admin/RESTfulPAPEngineTest.java204
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/components/HumanPolicyComponentTest.java839
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/conf/HibernateSessionTest.java7
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/ActionPolicyControllerTest.java205
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/AdminTabControllerTest.java44
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/AutoPushControllerTest.java142
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateDcaeMicroServiceControllerTest.java34
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateOptimizationControllerTest.java109
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreatePolicyControllerTest.java139
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/DashboardControllerTest.java19
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntriesTest.java4
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PDPControllerTest.java34
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyControllerTest.java16
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyExportAndImportControllerTest.java25
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyNotificationControllerTest.java23
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyRolesControllerTest.java23
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyValidationControllerTest.java11
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/daoImp/CommonClassDaoImplTest.java162
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/daoImp/SystemLogDbDaoImplTest.java77
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/model/PDPGroupContainerTest.java165
-rw-r--r--POLICY-SDK-APP/src/test/java/org/onap/policy/model/RolesTest.java38
-rw-r--r--POLICY-SDK-APP/src/test/resources/logback.xml124
-rw-r--r--POLICY-SDK-APP/src/test/resources/xacml.admin.properties8
139 files changed, 13147 insertions, 11064 deletions
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/CheckPDP.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/CheckPdpProperties.java
index 26b9798ac..925344191 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/CheckPDP.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/CheckPdpProperties.java
@@ -22,8 +22,8 @@
package org.onap.policy.admin;
-
import com.att.research.xacml.util.XACMLProperties;
+
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -39,9 +39,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.rest.XACMLRestProperties;
+import org.onap.policy.rest.XacmlRestProperties;
import org.onap.policy.utils.PeCryptoUtils;
import org.onap.policy.xacml.api.XACMLErrorConstants;
@@ -50,20 +51,20 @@ import org.onap.policy.xacml.api.XACMLErrorConstants;
* may be ok for a highly controlled production environment in which nothing changes, but not a very good
* implementation.
*
- * The reset() method has been added to assist with the above problem in order to acquire >80% JUnit code coverage.
+ * <p>The reset() method has been added to assist with the above problem in order to acquire >80% JUnit code coverage.
*
- * This static class doesn't really check a PDP, it simply loads a properties file and tried to ensure that a valid URL
- * exists for a PDP along with user/password.
+ * <p>This static class doesn't really check a PDP, it simply loads a properties file and tried to ensure
+ * that a valid URL exists for a PDP along with user/password.
*/
-public class CheckPDP {
+public class CheckPdpProperties {
private static Path pdpPath = null;
private static Long oldModified = null;
private static HashMap<String, String> pdpMap = null;
- private static final Logger LOGGER = FlexLogger.getLogger(CheckPDP.class);
+ private static final Logger LOGGER = FlexLogger.getLogger(CheckPdpProperties.class);
- private CheckPDP() {
- //default constructor
+ private CheckPdpProperties() {
+ // default constructor
}
public static Map<String, String> getPdpMap() {
@@ -76,7 +77,13 @@ public class CheckPDP {
pdpMap = null;
}
- public static boolean validateID(String id) {
+ /**
+ * validateId - validates that the ID is in the properties.
+ *
+ * @param id Input ID
+ * @return true it is in the properties
+ */
+ public static boolean validateId(String id) {
// ReadFile
try {
readFile();
@@ -94,7 +101,7 @@ public class CheckPDP {
private static void readFile() {
String pdpFile;
try {
- pdpFile = XACMLProperties.getProperty(XACMLRestProperties.PROP_PDP_IDFILE);
+ pdpFile = XACMLProperties.getProperty(XacmlRestProperties.PROP_PDP_IDFILE);
} catch (Exception e) {
LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot read the PDP ID File" + e);
return;
@@ -104,10 +111,9 @@ public class CheckPDP {
} else if (pdpPath == null) {
pdpPath = Paths.get(pdpFile);
if (!pdpPath.toString().endsWith(".properties") || !pdpPath.toFile().exists()) {
- LOGGER.error(
- XACMLErrorConstants.ERROR_SYSTEM_ERROR + "File doesn't exist in the specified Path : " + pdpPath
- .toString());
- CheckPDP.reset();
+ LOGGER.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "File doesn't exist in the specified Path : "
+ + pdpPath.toString());
+ CheckPdpProperties.reset();
return;
}
readProps();
@@ -134,18 +140,18 @@ public class CheckPDP {
List<String> sorted = new ArrayList(unsorted);
Collections.sort(sorted);
for (String propKey : sorted) {
- loadPDPProperties(propKey, pdpProp);
+ loadPdpProperties(propKey, pdpProp);
}
} catch (IOException e) {
LOGGER.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e);
}
if (pdpMap == null || pdpMap.isEmpty()) {
LOGGER.debug(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Cannot Proceed without PDP_URLs");
- CheckPDP.reset();
+ CheckPdpProperties.reset();
}
}
- private static void loadPDPProperties(String propKey, Properties pdpProp) {
+ private static void loadPdpProperties(String propKey, Properties pdpProp) {
if (propKey.startsWith("PDP_URL")) {
String checkVal = pdpProp.getProperty(propKey);
if (checkVal == null) {
@@ -156,14 +162,14 @@ public class CheckPDP {
int pdpCount = 0;
while (pdpCount < pdpDefault.size()) {
String pdpVal = pdpDefault.get(pdpCount);
- readPDPParam(pdpVal);
+ readPdpParam(pdpVal);
pdpCount++;
}
}
}
}
- private static void readPDPParam(String pdpVal) {
+ private static void readPdpParam(String pdpVal) {
if (pdpVal.contains(",")) {
List<String> pdpValues = new ArrayList<>(Arrays.asList(pdpVal.split("\\s*,\\s*")));
if (pdpValues.size() == 3) {
@@ -173,7 +179,7 @@ public class CheckPDP {
Base64.Encoder encoder = Base64.getEncoder();
// 0 - PDPURL
pdpMap.put(pdpValues.get(0),
- encoder.encodeToString((userID + ":" + pass).getBytes(StandardCharsets.UTF_8)));
+ encoder.encodeToString((userID + ":" + pass).getBytes(StandardCharsets.UTF_8)));
} else {
LOGGER.error(XACMLErrorConstants.ERROR_PERMISSIONS + "No Credentials to send Request: " + pdpValues);
}
@@ -182,6 +188,13 @@ public class CheckPDP {
}
}
+ /**
+ * getEncoding reads in the PDP properties and returns an encoding
+ * for the given pdp.
+ *
+ * @param pdpID Input PDP Id
+ * @return String encoding
+ */
public static String getEncoding(String pdpID) {
try {
readFile();
@@ -196,8 +209,7 @@ public class CheckPDP {
LOGGER.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + e);
}
return encoding;
- } else {
- return null;
}
+ return null;
}
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyAdapter.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyAdapter.java
index 6aa40dacf..343a19f1a 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyAdapter.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyAdapter.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* Modified Copyright (C) 2018 Samsung Electronics Co., Ltd.
* Modifications Copyright (C) 2019 Bell Canada
* ================================================================================
@@ -22,6 +22,8 @@
package org.onap.policy.admin;
+import com.att.research.xacml.util.XACMLProperties;
+
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.controller.ActionPolicyController;
@@ -37,12 +39,16 @@ import org.onap.policy.controller.DecisionPolicyController;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
import org.onap.policy.rest.jpa.PolicyEntity;
-import com.att.research.xacml.util.XACMLProperties;
-
public class PolicyAdapter {
private static final Logger LOGGER = FlexLogger.getLogger(PolicyAdapter.class);
+ /**
+ * configure.
+ *
+ * @param policyAdapter PolicyRestAdapter object
+ * @param entity PolicyEntity object
+ */
public void configure(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
String policyNameValue = policyAdapter.getPolicyName().substring(0, policyAdapter.getPolicyName().indexOf('_'));
String configPolicyName = getConfigPolicyName(policyAdapter);
@@ -63,28 +69,25 @@ public class PolicyAdapter {
}
private String getConfigPolicyName(PolicyRestAdapter policyAdapter) {
- String configPolicyName = null;
if (policyAdapter.getPolicyName().startsWith("Config_PM")) {
- configPolicyName = "ClosedLoop_PM";
+ return "ClosedLoop_PM";
} else if (policyAdapter.getPolicyName().startsWith("Config_Fault")) {
- configPolicyName = "ClosedLoop_Fault";
+ return "ClosedLoop_Fault";
} else if (policyAdapter.getPolicyName().startsWith("Config_FW")) {
- configPolicyName = "Firewall Config";
+ return "Firewall Config";
} else if (policyAdapter.getPolicyName().startsWith("Config_BRMS_Raw")) {
- configPolicyName = "BRMS_Raw";
+ return "BRMS_Raw";
} else if (policyAdapter.getPolicyName().startsWith("Config_BRMS_Param")) {
- configPolicyName = "BRMS_Param";
+ return "BRMS_Param";
} else if (policyAdapter.getPolicyName().startsWith("Config_MS")) {
- configPolicyName = "Micro Service";
+ return "Micro Service";
} else if (policyAdapter.getPolicyName().startsWith("Config_OOF")) {
- configPolicyName = "Optimization";
- } else if (policyAdapter.getPolicyName().startsWith("Action") || policyAdapter.getPolicyName()
- .startsWith("Decision")) {
- // No configPolicyName is applicable
- } else {
- configPolicyName = "Base";
+ return "Optimization";
+ } else if (policyAdapter.getPolicyName().startsWith("Action")
+ || policyAdapter.getPolicyName().startsWith("Decision")) {
+ return null;
}
- return configPolicyName;
+ return "Base";
}
private void prePopulatePolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
@@ -107,12 +110,18 @@ public class PolicyAdapter {
}
}
+ /**
+ * getInstance.
+ *
+ * @return Returns a PolicyAdapter instance
+ */
public static PolicyAdapter getInstance() {
try {
- Class<?> policyAdapter = Class
- .forName(XACMLProperties.getProperty("policyAdapter.impl.className", PolicyAdapter.class.getName()));
+ Class<?> policyAdapter = Class.forName(
+ XACMLProperties.getProperty("policyAdapter.impl.className", PolicyAdapter.class.getName()));
return (PolicyAdapter) policyAdapter.newInstance();
- } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException e) {
+ } catch (ClassNotFoundException | InstantiationException | IllegalAccessException
+ | IllegalArgumentException e) {
LOGGER.error("Exception Occurred" + e);
}
return null;
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java
index 513fc5795..a23a0e821 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
* Modified Copyright (C) 2018 Samsung Electronics Co., Ltd.
* Modifications Copyright (C) 2019 Bell Canada
* ================================================================================
@@ -63,6 +63,7 @@ import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
+import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpStatus;
import org.elasticsearch.common.Strings;
import org.json.JSONArray;
@@ -73,8 +74,8 @@ import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.components.HumanPolicyComponent;
import org.onap.policy.controller.PolicyController;
import org.onap.policy.controller.PolicyExportAndImportController;
-import org.onap.policy.rest.XACMLRest;
-import org.onap.policy.rest.XACMLRestProperties;
+import org.onap.policy.rest.XacmlRest;
+import org.onap.policy.rest.XacmlRestProperties;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
import org.onap.policy.rest.jpa.ActionBodyEntity;
import org.onap.policy.rest.jpa.ConfigurationDataEntity;
@@ -87,11 +88,16 @@ import org.onap.policy.utils.PolicyUtils;
import org.onap.policy.utils.UserUtils.Pair;
import org.onap.policy.xacml.api.XACMLErrorConstants;
import org.onap.policy.xacml.util.XACMLPolicyScanner;
+import org.onap.portalsdk.core.domain.User;
import org.onap.portalsdk.core.web.support.UserUtils;
-
-@WebServlet(value = "/fm/*", loadOnStartup = 1, initParams = {
- @WebInitParam(name = "XACML_PROPERTIES_NAME", value = "xacml.admin.properties", description = "The location of the properties file holding configuration information.") })
+@WebServlet(
+ value = "/fm/*",
+ loadOnStartup = 1,
+ initParams = {@WebInitParam(
+ name = "XACML_PROPERTIES_NAME",
+ value = "xacml.admin.properties",
+ description = "The location of the properties file holding configuration information.")})
public class PolicyManagerServlet extends HttpServlet {
private static final Logger LOGGER = FlexLogger.getLogger(PolicyManagerServlet.class);
private static final long serialVersionUID = -8453502699403909016L;
@@ -126,11 +132,13 @@ public class PolicyManagerServlet extends HttpServlet {
private static final String BACKSLASH = "\\";
private static final String ESCAPE_BACKSLASH = "\\\\";
private static final String BACKSLASH_8TIMES = "\\\\\\\\";
- private static final String DELETE_POLICY_VERSION_WHERE_POLICY_NAME = "delete from PolicyVersion where policy_name ='";
+ private static final String DELETE_POLICY_VERSION_WHERE_POLICY_NAME =
+ "delete from PolicyVersion where policy_name ='";
private static final String UPDATE_POLICY_VERSION_SET_ACTIVE_VERSION = "update PolicyVersion set active_version='";
private static final String SPLIT_1 = "split_1";
private static final String SPLIT_0 = "split_0";
- private static final String FROM_POLICY_EDITOR_SCOPES_WHERE_SCOPENAME_LIKE_SCOPE_NAME = "from PolicyEditorScopes where SCOPENAME like :scopeName";
+ private static final String FROM_POLICY_EDITOR_SCOPES_WHERE_SCOPENAME_LIKE_SCOPE_NAME =
+ "from PolicyEditorScopes where SCOPENAME like :scopeName";
private static final String SCOPE_NAME = "scopeName";
private static final String SUCCESS = "success";
private static final String SUB_SCOPENAME = "subScopename";
@@ -141,8 +149,18 @@ public class PolicyManagerServlet extends HttpServlet {
private static String testUserId = null;
private enum Mode {
- LIST, RENAME, COPY, DELETE, EDITFILE, ADDFOLDER, DESCRIBEPOLICYFILE, VIEWPOLICY, ADDSUBSCOPE, SWITCHVERSION,
- EXPORT, SEARCHLIST
+ LIST,
+ RENAME,
+ COPY,
+ DELETE,
+ EDITFILE,
+ ADDFOLDER,
+ DESCRIBEPOLICYFILE,
+ VIEWPOLICY,
+ ADDSUBSCOPE,
+ SWITCHVERSION,
+ EXPORT,
+ SEARCHLIST
}
private static PolicyController policyController;
@@ -173,17 +191,17 @@ public class PolicyManagerServlet extends HttpServlet {
//
// Common initialization
//
- XACMLRest.xacmlInit(servletConfig);
+ XacmlRest.xacmlInit(servletConfig);
// init aes key from prop or env
- PeCryptoUtils.initAesKey(XACMLProperties.getProperty(XACMLRestProperties.PROP_AES_KEY));
+ PeCryptoUtils.initAesKey(XACMLProperties.getProperty(XacmlRestProperties.PROP_AES_KEY));
//
// Initialize ClosedLoop JSON
//
- PolicyManagerServlet.initializeJSONLoad();
+ PolicyManagerServlet.initializeJsonLoad();
}
- private static void initializeJSONLoad() {
- Path closedLoopJsonLocation = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_CLOSEDLOOP));
+ private static void initializeJsonLoad() {
+ Path closedLoopJsonLocation = Paths.get(XACMLProperties.getProperty(XacmlRestProperties.PROP_ADMIN_CLOSEDLOOP));
String location = closedLoopJsonLocation.toString();
if (!location.endsWith("json")) {
LOGGER.warn("JSONConfig file does not end with extension .json");
@@ -208,7 +226,7 @@ public class PolicyManagerServlet extends HttpServlet {
LOGGER.debug("doPost");
try {
// if request contains multipart-form-data
- if (ServletFileUpload.isMultipartContent(request)) {
+ if (isMultipartContent(request)) {
uploadFile(request, response);
}
// all other post request has json params in body
@@ -224,10 +242,14 @@ public class PolicyManagerServlet extends HttpServlet {
}
}
+ protected boolean isMultipartContent(HttpServletRequest request) {
+ return ServletFileUpload.isMultipartContent(request);
+ }
+
// Set Error Message for Exception
- private void setError(Exception t, HttpServletResponse response) throws IOException {
+ private void setError(Exception exception, HttpServletResponse response) throws IOException {
try {
- JSONObject responseJsonObject = error(t.getMessage());
+ JSONObject responseJsonObject = error(exception.getMessage());
response.setContentType(CONTENTTYPE);
PrintWriter out = response.getWriter();
out.print(responseJsonObject);
@@ -242,20 +264,24 @@ public class PolicyManagerServlet extends HttpServlet {
private void uploadFile(HttpServletRequest request, HttpServletResponse response) throws ServletException {
try {
Map<String, InputStream> files = new HashMap<>();
-
+ String resp = null;
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
// Process form file field (input type="file").
files.put(item.getName(), item.getInputStream());
- processFormFile(request, item);
+ resp = processFormFile(request, item, response);
}
}
- JSONObject responseJsonObject;
- responseJsonObject = this.success();
response.setContentType(CONTENTTYPE);
PrintWriter out = response.getWriter();
+ JSONObject responseJsonObject;
+ if (!StringUtils.isBlank(resp)) {
+ responseJsonObject = this.error("Import Issue " + resp);
+ } else {
+ responseJsonObject = this.success();
+ }
out.print(responseJsonObject);
out.flush();
} catch (Exception e) {
@@ -264,23 +290,35 @@ public class PolicyManagerServlet extends HttpServlet {
}
}
- private void processFormFile(HttpServletRequest request, FileItem item) {
+ private String processFormFile(HttpServletRequest request, FileItem item, HttpServletResponse response) {
String newFile;
- if (item.getName().endsWith(".xls") && item.getSize() <= PolicyController.getFileSizeLimit()) {
+ String outPutResp = null;
+ if (item.getName().endsWith(".xls") && item.getSize() <= getFileSizeLimit()) {
File file = new File(item.getName());
try (OutputStream outputStream = new FileOutputStream(file)) {
IOUtils.copy(item.getInputStream(), outputStream);
newFile = file.toString();
PolicyExportAndImportController importController = new PolicyExportAndImportController();
- importController.importRepositoryFile(newFile, request);
+ return importController.importRepositoryFile(newFile, request);
} catch (Exception e) {
LOGGER.error("Upload error : " + e);
}
} else if (!item.getName().endsWith(".xls")) {
- LOGGER.error("Non .xls filetype uploaded: " + item.getName());
+ outPutResp = "Non .xls filetype uploaded: " + item.getName();
+ LOGGER.error(outPutResp);
} else { // uploaded file size is greater than allowed
- LOGGER.error("Upload file size limit exceeded! File size (Bytes) is: " + item.getSize());
+ outPutResp = "Upload file size limit exceeded! File size (Bytes) is: " + item.getSize();
+ LOGGER.error(outPutResp);
}
+ return outPutResp;
+ }
+
+ protected long copyStream(InputStream inputStream, OutputStream outputStream) throws IOException {
+ return IOUtils.copy(inputStream, outputStream);
+ }
+
+ protected long getFileSizeLimit() {
+ return PolicyController.getFileSizeLimit();
}
// File Operation Functionality
@@ -299,17 +337,17 @@ public class PolicyManagerServlet extends HttpServlet {
return;
}
try {
- JSONObject jObj = new JSONObject(sb.toString());
- JSONObject params = jObj.getJSONObject("params");
+ JSONObject jsonObject = new JSONObject(sb.toString());
+ JSONObject params = jsonObject.getJSONObject("params");
Mode mode = Mode.valueOf(params.getString("mode"));
- String userId = UserUtils.getUserSession(request).getOrgUserId();
+ String userId = getUserSession(request).getOrgUserId();
LOGGER.info(
- "****************************************Logging UserID while doing actions on Editor tab*******************************************");
+ "********************Logging UserID while doing actions on Editor tab****************************");
LOGGER.info(
"UserId: " + userId + "Action Mode: " + mode.toString() + "Action Params: " + params.toString());
LOGGER.info(
- "***********************************************************************************************************************************");
+ "************************************************************************************************");
responseJsonObject = operateBasedOnMode(mode, params, request);
} catch (Exception e) {
LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Exception Occured While Processing Json" + e);
@@ -318,6 +356,10 @@ public class PolicyManagerServlet extends HttpServlet {
setResponse(response, responseJsonObject);
}
+ protected User getUserSession(HttpServletRequest request) {
+ return UserUtils.getUserSession(request);
+ }
+
private void setResponse(HttpServletResponse response, JSONObject responseJsonObject) {
response.setContentType(CONTENTTYPE);
try (PrintWriter out = response.getWriter()) {
@@ -371,7 +413,6 @@ public class PolicyManagerServlet extends HttpServlet {
}
private JSONObject searchPolicyList(JSONObject params, HttpServletRequest request) {
- List<Object> policyData = new ArrayList<>();
JSONArray policyList = null;
if (params.has("policyList")) {
policyList = (JSONArray) params.get("policyList");
@@ -379,9 +420,9 @@ public class PolicyManagerServlet extends HttpServlet {
PolicyController controller = getPolicyControllerInstance();
List<JSONObject> resultList = new ArrayList<>();
try {
- if (!lookupPolicyData(request, policyData, policyList, controller, resultList))
+ if (!lookupPolicyData(request, new ArrayList<>(), policyList, controller, resultList)) {
return error("No Scopes has been Assigned to the User. Please, Contact Super-Admin");
-
+ }
} catch (Exception e) {
LOGGER.error(
"Exception occured while reading policy Data from Policy Version table for Policy Search Data" + e);
@@ -392,13 +433,11 @@ public class PolicyManagerServlet extends HttpServlet {
private boolean lookupPolicyData(HttpServletRequest request, List<Object> policyData, JSONArray policyList,
PolicyController controller, List<JSONObject> resultList) {
- List<String> roles;
- Set<String> scopes;// Get the Login Id of the User from Request
- String userId = UserUtils.getUserSession(request).getOrgUserId();
+ String userId = getUserSession(request).getOrgUserId();
List<Object> userRoles = controller.getRoles(userId);
- Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles);
- roles = pair.u;
- scopes = pair.t;
+ Pair<Set<String>, List<String>> pair = checkRoleAndScope(userRoles);
+ List<String> roles = pair.second;
+ Set<String> scopes = pair.first;
if (roles.contains(ADMIN) || roles.contains(EDITOR) || roles.contains(GUEST)) {
if (scopes.isEmpty()) {
return false;
@@ -415,12 +454,16 @@ public class PolicyManagerServlet extends HttpServlet {
parsePolicyList(resultList, controller, policyName, version);
}
} else {
- getPolicyDataForSUPERRoles(policyData, controller, resultList, roles, scopes);
+ getPolicyDataForSuperRoles(policyData, controller, resultList, roles, scopes);
}
return true;
}
- private void getPolicyDataForSUPERRoles(List<Object> policyData, PolicyController controller,
+ protected Pair<Set<String>, List<String>> checkRoleAndScope(List<Object> userRoles) {
+ return org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles);
+ }
+
+ private void getPolicyDataForSuperRoles(List<Object> policyData, PolicyController controller,
List<JSONObject> resultList, List<String> roles, Set<String> scopes) {
if (roles.contains(SUPERADMIN) || roles.contains(SUPEREDITOR) || roles.contains(SUPERGUEST)) {
policyData = controller.getData(PolicyVersion.class);
@@ -448,8 +491,8 @@ public class PolicyManagerServlet extends HttpServlet {
}
private void updateResultList(List<Object> policyData, List<JSONObject> resultList) {
- for (Object aPolicyData : policyData) {
- PolicyVersion policy = (PolicyVersion) aPolicyData;
+ for (Object data : policyData) {
+ PolicyVersion policy = (PolicyVersion) data;
JSONObject el = new JSONObject();
el.put(NAME, policy.getPolicyName().replace(File.separator, FORWARD_SLASH));
el.put(DATE, policy.getModifiedDate());
@@ -467,7 +510,8 @@ public class PolicyManagerServlet extends HttpServlet {
if (policyName.contains(BACKSLASH)) {
policyName = policyName.replace(BACKSLASH, ESCAPE_BACKSLASH);
}
- String policyVersionQuery = "From PolicyVersion where policy_name = :policyName and active_version = :version and id >0";
+ String policyVersionQuery =
+ "From PolicyVersion where policy_name = :policyName and active_version = :version and id >0";
SimpleBindings pvParams = new SimpleBindings();
pvParams.put("policyName", policyName);
pvParams.put(VERSION, version);
@@ -489,8 +533,8 @@ public class PolicyManagerServlet extends HttpServlet {
private void addScope(Set<String> scopes, String scope) {
List<Object> scopesList = queryPolicyEditorScopes(scope);
if (!scopesList.isEmpty()) {
- for (Object aScopesList : scopesList) {
- PolicyEditorScopes tempScope = (PolicyEditorScopes) aScopesList;
+ for (Object scopeItem : scopesList) {
+ PolicyEditorScopes tempScope = (PolicyEditorScopes) scopeItem;
scopes.add(tempScope.getScopeName());
}
}
@@ -501,7 +545,7 @@ public class PolicyManagerServlet extends HttpServlet {
String path = params.getString("path");
String userId = null;
try {
- userId = UserUtils.getUserSession(request).getOrgUserId();
+ userId = getUserSession(request).getOrgUserId();
} catch (Exception e) {
LOGGER.error("Exception Occured while reading userid from cookie" + e);
}
@@ -524,11 +568,11 @@ public class PolicyManagerServlet extends HttpServlet {
return error("The Version shouldn't be greater than Highest Value");
}
activePolicy = policyName + "." + activeVersion + ".xml";
- String[] splitDBCheckName = modifyPolicyName(activePolicy);
+ String[] splitDbCheckName = modifyPolicyName(activePolicy);
String peQuery = "FROM PolicyEntity where policyName = :splitDBCheckName_1 and scope = :splitDBCheckName_0";
SimpleBindings policyParams = new SimpleBindings();
- policyParams.put("splitDBCheckName_1", splitDBCheckName[1]);
- policyParams.put("splitDBCheckName_0", splitDBCheckName[0]);
+ policyParams.put("splitDBCheckName_1", splitDbCheckName[1]);
+ policyParams.put("splitDBCheckName_0", splitDbCheckName[0]);
List<Object> policyEntity = controller.getDataByQuery(peQuery, policyParams);
PolicyEntity pentity = (PolicyEntity) policyEntity.get(0);
if (pentity.isDeleted()) {
@@ -541,8 +585,8 @@ public class PolicyManagerServlet extends HttpServlet {
if (policyName.contains(BACKSLASH)) {
policyName = policyName.replace(File.separator, BACKSLASH);
}
- policyName = splitDBCheckName[0].replace(".", File.separator) + File.separator + policyName;
- String watchPolicyName = policyName;
+ policyName = splitDbCheckName[0].replace(".", File.separator) + File.separator + policyName;
+ final String watchPolicyName = policyName;
if (policyName.contains(FORWARD_SLASH)) {
policyName = policyName.replace(FORWARD_SLASH, File.separator);
}
@@ -564,7 +608,6 @@ public class PolicyManagerServlet extends HttpServlet {
// Describe Policy
private JSONObject describePolicy(JSONObject params) throws ServletException {
- JSONObject object;
String path = params.getString("path");
String policyName;
if (path.startsWith(FORWARD_SLASH)) {
@@ -582,13 +625,12 @@ public class PolicyManagerServlet extends HttpServlet {
} else if (path.contains(DECISION2)) {
path = path.replace(DECISION, DECISION1);
}
- PolicyController controller = getPolicyControllerInstance();
String[] split = path.split(":");
String query = "FROM PolicyEntity where policyName = :split_1 and scope = :split_0";
SimpleBindings peParams = new SimpleBindings();
peParams.put(SPLIT_1, split[1]);
peParams.put(SPLIT_0, split[0]);
- List<Object> queryData = getDataByQueryFromController(controller, query, peParams);
+ List<Object> queryData = getDataByQueryFromController(getPolicyControllerInstance(), query, peParams);
if (queryData.isEmpty()) {
return error("Error Occured while Describing the Policy - query is empty");
}
@@ -606,7 +648,7 @@ public class PolicyManagerServlet extends HttpServlet {
} catch (IOException e) {
LOGGER.error("Exception Occured while Describing the Policy" + e);
}
- object = HumanPolicyComponent.DescribePolicy(temp);
+ JSONObject object = HumanPolicyComponent.DescribePolicy(temp);
try {
Files.delete(temp.toPath());
} catch (IOException e) {
@@ -626,14 +668,13 @@ public class PolicyManagerServlet extends HttpServlet {
}
private JSONObject processPolicyList(JSONObject params, HttpServletRequest request) throws ServletException {
- PolicyController controller = getPolicyControllerInstance();
// Get the Login Id of the User from Request
String testUserID = getTestUserId();
- String userId = testUserID != null ? testUserID : UserUtils.getUserSession(request).getOrgUserId();
- List<Object> userRoles = controller.getRoles(userId);
- Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles);
- List<String> roles = pair.u;
- Set<String> scopes = pair.t;
+ String userId = testUserID != null ? testUserID : getUserSession(request).getOrgUserId();
+ List<Object> userRoles = getPolicyControllerInstance().getRoles(userId);
+ Pair<Set<String>, List<String>> pair = checkRoleAndScope(userRoles);
+ List<String> roles = pair.second;
+ Set<String> scopes = pair.first;
Map<String, String> roleByScope = org.onap.policy.utils.UserUtils.getRoleByScope(userRoles);
List<JSONObject> resultList = new ArrayList<>();
@@ -672,39 +713,37 @@ public class PolicyManagerServlet extends HttpServlet {
Map<String, String> roleByScope) {
if (roles.contains(SUPERADMIN) || roles.contains(SUPEREDITOR) || roles.contains(SUPERGUEST)) {
List<Object> scopesList = queryPolicyEditorScopes(null);
- scopesList.stream()
- .map(list -> (PolicyEditorScopes) list)
- .filter(scope -> !(scope.getScopeName().contains(File.separator))
- && !scopes.contains(scope.getScopeName()))
- .forEach(scope -> {
- JSONObject el = new JSONObject();
- el.put(NAME, scope.getScopeName());
- el.put(DATE, scope.getModifiedDate());
- el.put(SIZE, "");
- el.put(TYPE, "dir");
- el.put(CREATED_BY, scope.getUserCreatedBy().getUserName());
- el.put(MODIFIED_BY, scope.getUserModifiedBy().getUserName());
- el.put(ROLETYPE, roleByScope.get(ALLSCOPES));
- resultList.add(el);
- });
+ scopesList.stream().map(list -> (PolicyEditorScopes) list).filter(
+ scope -> !(scope.getScopeName().contains(File.separator)) && !scopes.contains(scope.getScopeName()))
+ .forEach(scope -> {
+ JSONObject el = new JSONObject();
+ el.put(NAME, scope.getScopeName());
+ el.put(DATE, scope.getModifiedDate());
+ el.put(SIZE, "");
+ el.put(TYPE, "dir");
+ el.put(CREATED_BY, scope.getUserCreatedBy().getUserName());
+ el.put(MODIFIED_BY, scope.getUserModifiedBy().getUserName());
+ el.put(ROLETYPE, roleByScope.get(ALLSCOPES));
+ resultList.add(el);
+ });
}
if (roles.contains(ADMIN) || roles.contains(EDITOR) || roles.contains(GUEST)) {
- scopes.stream().map(this::queryPolicyEditorScopes)
- .filter(scopesList -> !scopesList.isEmpty())
- .forEach(scopesList -> {
- JSONObject el = new JSONObject();
- PolicyEditorScopes scopeById = (PolicyEditorScopes) scopesList.get(0);
- el.put(NAME, scopeById.getScopeName());
- el.put(DATE, scopeById.getModifiedDate());
- el.put(SIZE, "");
- el.put(TYPE, "dir");
- el.put(CREATED_BY, scopeById.getUserCreatedBy().getUserName());
- el.put(MODIFIED_BY, scopeById.getUserModifiedBy().getUserName());
- if ((resultList).stream().noneMatch(item -> item.get("name").equals(scopeById.getScopeName()))) {
- el.put(ROLETYPE, roleByScope.get(scopeById.getScopeName()));
- resultList.add(el);
- }
- });
+ scopes.stream().map(this::queryPolicyEditorScopes).filter(scopesList -> !scopesList.isEmpty())
+ .forEach(scopesList -> {
+ JSONObject el = new JSONObject();
+ PolicyEditorScopes scopeById = (PolicyEditorScopes) scopesList.get(0);
+ el.put(NAME, scopeById.getScopeName());
+ el.put(DATE, scopeById.getModifiedDate());
+ el.put(SIZE, "");
+ el.put(TYPE, "dir");
+ el.put(CREATED_BY, scopeById.getUserCreatedBy().getUserName());
+ el.put(MODIFIED_BY, scopeById.getUserModifiedBy().getUserName());
+ if ((resultList).stream()
+ .noneMatch(item -> item.get("name").equals(scopeById.getScopeName()))) {
+ el.put(ROLETYPE, roleByScope.get(scopeById.getScopeName()));
+ resultList.add(el);
+ }
+ });
}
}
@@ -724,7 +763,6 @@ public class PolicyManagerServlet extends HttpServlet {
// Get Active Policy List based on Scope Selection from Policy Version table
private void activePolicyList(String inScopeName, List<JSONObject> resultList, List<String> roles,
Set<String> scopes, Map<String, String> roleByScope) {
- PolicyController controller = getPolicyControllerInstance();
String scopeName = inScopeName;
if (scopeName.contains(FORWARD_SLASH)) {
scopeName = scopeName.replace(FORWARD_SLASH, File.separator);
@@ -737,20 +775,20 @@ public class PolicyManagerServlet extends HttpServlet {
SimpleBindings params = new SimpleBindings();
params.put(SCOPE_NAME, scopeName + "%");
- List<Object> activePolicies = getDataByQueryFromController(controller, query, params);
- List<Object> scopesList = getDataByQueryFromController(controller,
- FROM_POLICY_EDITOR_SCOPES_WHERE_SCOPENAME_LIKE_SCOPE_NAME, params);
+ List<Object> activePolicies = getDataByQueryFromController(getPolicyControllerInstance(), query, params);
+ List<Object> scopesList = getDataByQueryFromController(getPolicyControllerInstance(),
+ FROM_POLICY_EDITOR_SCOPES_WHERE_SCOPENAME_LIKE_SCOPE_NAME, params);
for (Object list : scopesList) {
scopeName = checkScope(resultList, scopeName, (PolicyEditorScopes) list, roleByScope);
}
for (Object list : activePolicies) {
PolicyVersion policy = (PolicyVersion) list;
- String scopeNameValue = policy.getPolicyName().substring(0,
- policy.getPolicyName().lastIndexOf(File.separator));
+ String scopeNameValue =
+ policy.getPolicyName().substring(0, policy.getPolicyName().lastIndexOf(File.separator));
if (roles.contains(SUPERADMIN) || roles.contains(SUPEREDITOR) || roles.contains(SUPERGUEST)) {
String scopeNameCheck =
- scopeName.contains(ESCAPE_BACKSLASH) ? scopeName.replace(ESCAPE_BACKSLASH, File.separator) :
- scopeName;
+ scopeName.contains(ESCAPE_BACKSLASH) ? scopeName.replace(ESCAPE_BACKSLASH, File.separator)
+ : scopeName;
if (!scopeNameValue.equals(scopeNameCheck)) {
continue;
}
@@ -762,8 +800,8 @@ public class PolicyManagerServlet extends HttpServlet {
el.put(TYPE, "file");
el.put(CREATED_BY, getUserName(policy.getCreatedBy()));
el.put(MODIFIED_BY, getUserName(policy.getModifiedBy()));
- String roleType = Strings.isNullOrEmpty(roleByScope.get(scopeNameValue)) ?
- roleByScope.get(ALLSCOPES) : roleByScope.get(scopeNameValue);
+ String roleType = Strings.isNullOrEmpty(roleByScope.get(scopeNameValue)) ? roleByScope.get(ALLSCOPES)
+ : roleByScope.get(scopeNameValue);
el.put(ROLETYPE, roleType);
resultList.add(el);
} else if (!scopes.isEmpty() && scopes.contains(scopeNameValue)) {
@@ -781,7 +819,7 @@ public class PolicyManagerServlet extends HttpServlet {
}
private List<Object> getDataByQueryFromController(final PolicyController controller, final String query,
- final SimpleBindings params) {
+ final SimpleBindings params) {
final List<Object> activePolicies;
if (PolicyController.isjUnit()) {
activePolicies = controller.getDataByQuery(query, null);
@@ -828,8 +866,8 @@ public class PolicyManagerServlet extends HttpServlet {
}
private String getUserName(String loginId) {
- PolicyController controller = getPolicyControllerInstance();
- UserInfo userInfo = (UserInfo) controller.getEntityItem(UserInfo.class, "userLoginId", loginId);
+ UserInfo userInfo = (UserInfo) getPolicyControllerInstance().getEntityItem(UserInfo.class, "userLoginId",
+ loginId);
if (userInfo == null) {
return SUPERADMIN;
}
@@ -848,9 +886,9 @@ public class PolicyManagerServlet extends HttpServlet {
private JSONObject handlePolicyRename(JSONObject params, HttpServletRequest request) throws ServletException {
boolean isActive = false;
- List<String> policyActiveInPDP = new ArrayList<>();
- Set<String> scopeOfPolicyActiveInPDP = new HashSet<>();
- String userId = UserUtils.getUserSession(request).getOrgUserId();
+ List<String> policyActiveInPdp = new ArrayList<>();
+ Set<String> scopeOfPolicyActiveInPdp = new HashSet<>();
+ String userId = getUserSession(request).getOrgUserId();
String oldPath = params.getString("path");
String newPath = params.getString("newPath");
oldPath = oldPath.substring(oldPath.indexOf('/') + 1);
@@ -858,8 +896,8 @@ public class PolicyManagerServlet extends HttpServlet {
String checkValidation;
if (oldPath.endsWith(".xml")) {
checkValidation = newPath.replace(".xml", "");
- checkValidation = checkValidation.substring(checkValidation.indexOf('_') + 1,
- checkValidation.lastIndexOf('.'));
+ checkValidation =
+ checkValidation.substring(checkValidation.indexOf('_') + 1, checkValidation.lastIndexOf('.'));
checkValidation = checkValidation.substring(checkValidation.lastIndexOf(FORWARD_SLASH) + 1);
if (!PolicyUtils.policySpecialCharValidator(checkValidation).contains(SUCCESS)) {
return error("Policy Rename Failed. The Name contains special characters.");
@@ -888,7 +926,8 @@ public class PolicyManagerServlet extends HttpServlet {
SimpleBindings pvParams = new SimpleBindings();
pvParams.put(SCOPE_NAME, scopeName + "%");
List<Object> activePolicies = controller.getDataByQuery(query, pvParams);
- List<Object> scopesList = controller.getDataByQuery(FROM_POLICY_EDITOR_SCOPES_WHERE_SCOPENAME_LIKE_SCOPE_NAME, pvParams);
+ List<Object> scopesList =
+ controller.getDataByQuery(FROM_POLICY_EDITOR_SCOPES_WHERE_SCOPENAME_LIKE_SCOPE_NAME, pvParams);
for (Object object : activePolicies) {
PolicyVersion activeVersion = (PolicyVersion) object;
String policyOldPath = activeVersion.getPolicyName().replace(File.separator, FORWARD_SLASH) + "."
@@ -897,19 +936,19 @@ public class PolicyManagerServlet extends HttpServlet {
JSONObject result = policyRename(policyOldPath, policyNewPath, userId);
if (!(Boolean) (result.getJSONObject("result").get(SUCCESS))) {
isActive = true;
- policyActiveInPDP.add(policyOldPath);
+ policyActiveInPdp.add(policyOldPath);
String scope = policyOldPath.substring(0, policyOldPath.lastIndexOf('/'));
- scopeOfPolicyActiveInPDP.add(scope.replace(FORWARD_SLASH, File.separator));
+ scopeOfPolicyActiveInPdp.add(scope.replace(FORWARD_SLASH, File.separator));
}
}
- boolean rename = activePolicies.size() != policyActiveInPDP.size();
- if (policyActiveInPDP.isEmpty()) {
+ boolean rename = activePolicies.size() != policyActiveInPdp.size();
+ if (policyActiveInPdp.isEmpty()) {
renameScope(scopesList, scopeName, newScopeName, controller);
} else if (rename) {
renameScope(scopesList, scopeName, newScopeName, controller);
UserInfo userInfo = new UserInfo();
userInfo.setUserLoginId(userId);
- scopeOfPolicyActiveInPDP.forEach(scope -> {
+ scopeOfPolicyActiveInPdp.forEach(scope -> {
PolicyEditorScopes editorScopeEntity = new PolicyEditorScopes();
editorScopeEntity.setScopeName(scope.replace(BACKSLASH, BACKSLASH_8TIMES));
editorScopeEntity.setUserCreatedBy(userInfo);
@@ -919,7 +958,7 @@ public class PolicyManagerServlet extends HttpServlet {
}
if (isActive) {
return error("The Following policies rename failed. Since they are active in PDP Groups"
- + policyActiveInPDP);
+ + policyActiveInPdp);
}
}
return success();
@@ -955,10 +994,11 @@ public class PolicyManagerServlet extends HttpServlet {
String newpolicyName = newPath.replace("/", ".");
String[] newPolicySplit = modifyPolicyName(newPath);
- String[] oldPolicySplit = modifyPolicyName(oldPath);
+ final String[] oldPolicySplit = modifyPolicyName(oldPath);
// Check PolicyEntity table with newPolicy Name
- String policyEntityquery = "FROM PolicyEntity where policyName = :newPolicySplit_1 and scope = :newPolicySplit_0";
+ String policyEntityquery =
+ "FROM PolicyEntity where policyName = :newPolicySplit_1 and scope = :newPolicySplit_0";
SimpleBindings policyParams = new SimpleBindings();
policyParams.put("newPolicySplit_1", newPolicySplit[1]);
policyParams.put("newPolicySplit_0", newPolicySplit[0]);
@@ -969,15 +1009,15 @@ public class PolicyManagerServlet extends HttpServlet {
// Query the Policy Entity with oldPolicy Name
String policyEntityCheck = oldPolicySplit[1].substring(0, oldPolicySplit[1].indexOf('.'));
- String oldPolicyEntityQuery = "FROM PolicyEntity where policyName like :policyEntityCheck and scope = "
- + ":oldPolicySplit_0";
+ String oldPolicyEntityQuery =
+ "FROM PolicyEntity where policyName like :policyEntityCheck and scope = " + ":oldPolicySplit_0";
SimpleBindings params = new SimpleBindings();
params.put("policyEntityCheck", policyEntityCheck + "%");
params.put("oldPolicySplit_0", oldPolicySplit[0]);
List<Object> oldEntityData = controller.getDataByQuery(oldPolicyEntityQuery, params);
if (oldEntityData.isEmpty()) {
return error(
- "Policy rename failed due to policy not able to retrieve from database. Please, contact super-admin.");
+ "Policy rename failed due to policy not able to retrieve from database. Contact super-admin.");
}
StringBuilder groupQuery = new StringBuilder();
@@ -1042,10 +1082,10 @@ public class PolicyManagerServlet extends HttpServlet {
String oldPolicyNameWithoutExtension = removeOldPolicyExtension;
String newPolicyNameWithoutExtension = removeNewPolicyExtension;
if (removeOldPolicyExtension.endsWith(".xml")) {
- oldPolicyNameWithoutExtension = oldPolicyNameWithoutExtension.substring(0,
- oldPolicyNameWithoutExtension.indexOf('.'));
- newPolicyNameWithoutExtension = newPolicyNameWithoutExtension.substring(0,
- newPolicyNameWithoutExtension.indexOf('.'));
+ oldPolicyNameWithoutExtension =
+ oldPolicyNameWithoutExtension.substring(0, oldPolicyNameWithoutExtension.indexOf('.'));
+ newPolicyNameWithoutExtension =
+ newPolicyNameWithoutExtension.substring(0, newPolicyNameWithoutExtension.indexOf('.'));
}
entity.setPolicyName(
entity.getPolicyName().replace(oldPolicyNameWithoutExtension, newPolicyNameWithoutExtension));
@@ -1065,8 +1105,8 @@ public class PolicyManagerServlet extends HttpServlet {
newConfigurationName = configEntity.getConfigurationName();
File file = new File(PolicyController.getConfigHome() + File.separator + oldConfigurationName);
if (file.exists()) {
- File renameFile = new File(
- PolicyController.getConfigHome() + File.separator + newConfigurationName);
+ File renameFile =
+ new File(PolicyController.getConfigHome() + File.separator + newConfigurationName);
file.renameTo(renameFile);
}
} else if (newPolicyName.contains(ACTION2)) {
@@ -1078,17 +1118,17 @@ public class PolicyManagerServlet extends HttpServlet {
newConfigurationName = actionEntity.getActionBodyName();
File file = new File(PolicyController.getActionHome() + File.separator + oldConfigurationName);
if (file.exists()) {
- File renameFile = new File(
- PolicyController.getActionHome() + File.separator + newConfigurationName);
+ File renameFile =
+ new File(PolicyController.getActionHome() + File.separator + newConfigurationName);
file.renameTo(renameFile);
}
}
controller.updateData(entity);
PolicyRestController restController = new PolicyRestController();
- restController.notifyOtherPAPSToUpdateConfigurations("rename", newConfigurationName, oldConfigurationName);
- PolicyVersion versionEntity = (PolicyVersion) controller.getEntityItem(PolicyVersion.class, "policyName",
- oldPolicyName);
+ restController.notifyOtherPapsToUpdateConfigurations("rename", newConfigurationName, oldConfigurationName);
+ PolicyVersion versionEntity =
+ (PolicyVersion) controller.getEntityItem(PolicyVersion.class, "policyName", oldPolicyName);
versionEntity.setPolicyName(policyName);
versionEntity.setModifiedBy(userId);
controller.updateData(versionEntity);
@@ -1136,8 +1176,8 @@ public class PolicyManagerServlet extends HttpServlet {
.getEntityItem(ConfigurationDataEntity.class, "configurationName", queryEntityName);
cloneEntity.setConfigurationData(configEntiy);
newConfigurationName = configEntiy.getConfigurationName();
- try (FileWriter fw = new FileWriter(
- PolicyController.getConfigHome() + File.separator + newConfigurationName);
+ try (FileWriter fw =
+ new FileWriter(PolicyController.getConfigHome() + File.separator + newConfigurationName);
BufferedWriter bw = new BufferedWriter(fw)) {
bw.write(configEntiy.getConfigBody());
} catch (IOException e) {
@@ -1158,8 +1198,8 @@ public class PolicyManagerServlet extends HttpServlet {
"actionBodyName", queryEntityName);
cloneEntity.setActionBodyEntity(actionEntiy);
newConfigurationName = actionEntiy.getActionBodyName();
- try (FileWriter fw = new FileWriter(
- PolicyController.getActionHome() + File.separator + newConfigurationName);
+ try (FileWriter fw =
+ new FileWriter(PolicyController.getActionHome() + File.separator + newConfigurationName);
BufferedWriter bw = new BufferedWriter(fw)) {
bw.write(actionEntiy.getActionBody());
} catch (IOException e) {
@@ -1175,13 +1215,13 @@ public class PolicyManagerServlet extends HttpServlet {
// Notify others paps regarding clone policy.
PolicyRestController restController = new PolicyRestController();
- restController.notifyOtherPAPSToUpdateConfigurations("clonePolicy", newConfigurationName, null);
+ restController.notifyOtherPapsToUpdateConfigurations("clonePolicy", newConfigurationName, null);
}
// Clone the Policy
private JSONObject copy(JSONObject params, HttpServletRequest request) throws ServletException {
try {
- String userId = UserUtils.getUserSession(request).getOrgUserId();
+ String userId = getUserSession(request).getOrgUserId();
String oldPath = params.getString("path");
String newPath = params.getString("newPath");
oldPath = oldPath.substring(oldPath.indexOf('/') + 1);
@@ -1194,8 +1234,6 @@ public class PolicyManagerServlet extends HttpServlet {
String newPolicyName = newPath.replace(FORWARD_SLASH, ".");
- String originalPolicyName = oldPath.replace(FORWARD_SLASH, ".");
-
String newPolicyCheck = newPolicyName;
if (newPolicyCheck.contains(CONFIG2)) {
newPolicyCheck = newPolicyCheck.replace(CONFIG, CONFIG1);
@@ -1210,13 +1248,15 @@ public class PolicyManagerServlet extends HttpServlet {
String[] newPolicySplit = newPolicyCheck.split(":");
String checkValidation = newPolicySplit[1].replace(".xml", "");
- checkValidation = checkValidation.substring(checkValidation.indexOf('_') + 1,
- checkValidation.lastIndexOf('.'));
+ checkValidation =
+ checkValidation.substring(checkValidation.indexOf('_') + 1, checkValidation.lastIndexOf('.'));
if (!PolicyUtils.policySpecialCharValidator(checkValidation).contains(SUCCESS)) {
return error("Policy Clone Failed. The Name contains special characters.");
}
- String[] oldPolicySplit = modifyPolicyName(originalPolicyName);
+ String originalPolicyName = oldPath.replace(FORWARD_SLASH, ".");
+
+ final String[] oldPolicySplit = modifyPolicyName(originalPolicyName);
PolicyController controller = getPolicyControllerInstance();
@@ -1224,7 +1264,8 @@ public class PolicyManagerServlet extends HttpServlet {
boolean success = false;
// Check PolicyEntity table with newPolicy Name
- String policyEntityquery = "FROM PolicyEntity where policyName = :newPolicySplit_1 and scope = :newPolicySplit_0";
+ String policyEntityquery =
+ "FROM PolicyEntity where policyName = :newPolicySplit_1 and scope = :newPolicySplit_0";
SimpleBindings policyParams = new SimpleBindings();
policyParams.put("newPolicySplit_1", newPolicySplit[1]);
policyParams.put("newPolicySplit_0", newPolicySplit[0]);
@@ -1272,7 +1313,7 @@ public class PolicyManagerServlet extends HttpServlet {
PolicyEntity policyEntity = null;
String policyNamewithoutExtension;
try {
- String userId = UserUtils.getUserSession(request).getOrgUserId();
+ String userId = getUserSession(request).getOrgUserId();
String deleteVersion = "";
String path = params.getString("path");
LOGGER.debug("delete {}" + path);
@@ -1307,8 +1348,8 @@ public class PolicyManagerServlet extends HttpServlet {
if (!policyEntityObjects.isEmpty()) {
for (Object object : policyEntityObjects) {
policyEntity = (PolicyEntity) object;
- String groupEntityquery = "from PolicyGroupEntity where policyid ='"
- + policyEntity.getPolicyId() + "'";
+ String groupEntityquery =
+ "from PolicyGroupEntity where policyid ='" + policyEntity.getPolicyId() + "'";
SimpleBindings pgeParams = new SimpleBindings();
List<Object> groupobject = controller.getDataByQuery(groupEntityquery, pgeParams);
if (!groupobject.isEmpty()) {
@@ -1316,7 +1357,7 @@ public class PolicyManagerServlet extends HttpServlet {
activePolicyName = policyEntity.getScope() + "." + policyEntity.getPolicyName();
} else {
deleteEntityFromEsAndPolicyEntityTable(controller, restController, policyEntity,
- policyNamewithoutExtension);
+ policyNamewithoutExtension);
}
}
}
@@ -1327,15 +1368,15 @@ public class PolicyManagerServlet extends HttpServlet {
controller.watchPolicyFunction(versionEntity, policyNamewithExtension, "DeleteAll");
if (pdpCheck) {
// Delete from policyVersion table
- String getActivePDPPolicyVersion = activePolicyName.replace(".xml", "");
- getActivePDPPolicyVersion = getActivePDPPolicyVersion
- .substring(getActivePDPPolicyVersion.lastIndexOf('.') + 1);
- String policyVersionQuery = UPDATE_POLICY_VERSION_SET_ACTIVE_VERSION + getActivePDPPolicyVersion
- + "' , highest_version='" + getActivePDPPolicyVersion + "' where policy_name ='"
+ String getActivePdpPolicyVersion = activePolicyName.replace(".xml", "");
+ getActivePdpPolicyVersion =
+ getActivePdpPolicyVersion.substring(getActivePdpPolicyVersion.lastIndexOf('.') + 1);
+ String policyVersionQuery = UPDATE_POLICY_VERSION_SET_ACTIVE_VERSION + getActivePdpPolicyVersion
+ + "' , highest_version='" + getActivePdpPolicyVersion + "' where policy_name ='"
+ policyNamewithoutExtension.replace(BACKSLASH, ESCAPE_BACKSLASH) + "' and id >0";
controller.executeQuery(policyVersionQuery);
return error(
- "Policies with Same name has been deleted. Except the Active Policy in PDP. PolicyName: "
+ "Policies with Same name has been deleted. Except the Active Policy in PDP. PolicyName: "
+ activePolicyName);
} else {
// No Active Policy in PDP. So, deleting all entries from policyVersion table
@@ -1344,12 +1385,13 @@ public class PolicyManagerServlet extends HttpServlet {
controller.executeQuery(policyVersionQuery);
}
} else if ("CURRENT".equals(deleteVersion)) {
- String currentVersionPolicyName = policyNamewithExtension
- .substring(policyNamewithExtension.lastIndexOf(File.separator) + 1);
- String currentVersionScope = policyNamewithExtension
- .substring(0, policyNamewithExtension.lastIndexOf(File.separator))
- .replace(File.separator, ".");
- query = "FROM PolicyEntity where policyName = :currentVersionPolicyName and scope = :currentVersionScope";
+ String currentVersionPolicyName =
+ policyNamewithExtension.substring(policyNamewithExtension.lastIndexOf(File.separator) + 1);
+ String currentVersionScope =
+ policyNamewithExtension.substring(0, policyNamewithExtension.lastIndexOf(File.separator))
+ .replace(File.separator, ".");
+ query = "FROM PolicyEntity where policyName = :currentVersionPolicyName and "
+ + "scope = :currentVersionScope";
SimpleBindings peParams = new SimpleBindings();
peParams.put("currentVersionPolicyName", currentVersionPolicyName);
@@ -1363,7 +1405,8 @@ public class PolicyManagerServlet extends HttpServlet {
return success();
}
- String groupEntityquery = "from PolicyGroupEntity where policyid = :policyEntityId and policyid > 0";
+ String groupEntityquery =
+ "from PolicyGroupEntity where policyid = :policyEntityId and policyid > 0";
SimpleBindings geParams = new SimpleBindings();
geParams.put("policyEntityId", policyEntity.getPolicyId());
List<Object> groupobject = controller.getDataByQuery(groupEntityquery, geParams);
@@ -1374,7 +1417,7 @@ public class PolicyManagerServlet extends HttpServlet {
// Delete the entity from Elastic Search Database
deleteEntityFromEsAndPolicyEntityTable(controller, restController, policyEntity,
- policyNamewithoutExtension);
+ policyNamewithoutExtension);
if (version > 1) {
int highestVersion = 0;
@@ -1414,7 +1457,7 @@ public class PolicyManagerServlet extends HttpServlet {
}
}
} else {
- List<String> activePoliciesInPDP = new ArrayList<>();
+ List<String> activePoliciesInPdp = new ArrayList<>();
if (policyEntityObjects.isEmpty()) {
String policyScopeQuery = "delete PolicyEditorScopes where SCOPENAME like '"
+ path.replace(BACKSLASH, ESCAPE_BACKSLASH) + PERCENT_AND_ID_GT_0;
@@ -1429,7 +1472,7 @@ public class PolicyManagerServlet extends HttpServlet {
List<Object> groupobject = controller.getDataByQuery(groupEntityQuery, geParams);
if (!groupobject.isEmpty()) {
pdpCheck = true;
- activePoliciesInPDP.add(policyEntity.getScope() + "." + policyEntity.getPolicyName());
+ activePoliciesInPdp.add(policyEntity.getScope() + "." + policyEntity.getPolicyName());
} else {
// Delete the entity from Elastic Search Database
String searchFileName = policyEntity.getScope() + "." + policyEntity.getPolicyName();
@@ -1441,13 +1484,13 @@ public class PolicyManagerServlet extends HttpServlet {
Files.deleteIfExists(Paths.get(PolicyController.getConfigHome() + File.separator
+ policyEntity.getConfigurationData().getConfigurationName()));
controller.deleteData(policyEntity.getConfigurationData());
- restController.notifyOtherPAPSToUpdateConfigurations(DELETE, null,
+ restController.notifyOtherPapsToUpdateConfigurations(DELETE, null,
policyEntity.getConfigurationData().getConfigurationName());
} else if (policyNamewithoutExtension.contains(ACTION2)) {
Files.deleteIfExists(Paths.get(PolicyController.getActionHome() + File.separator
+ policyEntity.getActionBodyEntity().getActionBodyName()));
controller.deleteData(policyEntity.getActionBodyEntity());
- restController.notifyOtherPAPSToUpdateConfigurations(DELETE, null,
+ restController.notifyOtherPapsToUpdateConfigurations(DELETE, null,
policyEntity.getActionBodyEntity().getActionBodyName());
}
}
@@ -1464,22 +1507,22 @@ public class PolicyManagerServlet extends HttpServlet {
controller.watchPolicyFunction(entity, path, "DeleteScope");
if (pdpCheck) {
// Add Active Policies List to PolicyVersionTable
- for (String anActivePoliciesInPDP : activePoliciesInPDP) {
- String activePDPPolicyName = anActivePoliciesInPDP.replace(".xml", "");
- int activePDPPolicyVersion = Integer
- .parseInt(activePDPPolicyName.substring(activePDPPolicyName.lastIndexOf('.') + 1));
- activePDPPolicyName = activePDPPolicyName.substring(0, activePDPPolicyName.lastIndexOf('.'))
+ for (String anActivePoliciesInPdp : activePoliciesInPdp) {
+ String activePdpPolicyName = anActivePoliciesInPdp.replace(".xml", "");
+ int activePdpPolicyVersion = Integer
+ .parseInt(activePdpPolicyName.substring(activePdpPolicyName.lastIndexOf('.') + 1));
+ activePdpPolicyName = activePdpPolicyName.substring(0, activePdpPolicyName.lastIndexOf('.'))
.replace(".", File.separator);
- PolicyVersion insertActivePDPVersion = new PolicyVersion();
- insertActivePDPVersion.setPolicyName(activePDPPolicyName);
- insertActivePDPVersion.setHigherVersion(activePDPPolicyVersion);
- insertActivePDPVersion.setActiveVersion(activePDPPolicyVersion);
- insertActivePDPVersion.setCreatedBy(userId);
- insertActivePDPVersion.setModifiedBy(userId);
- controller.saveData(insertActivePDPVersion);
+ PolicyVersion insertActivePdpVersion = new PolicyVersion();
+ insertActivePdpVersion.setPolicyName(activePdpPolicyName);
+ insertActivePdpVersion.setHigherVersion(activePdpPolicyVersion);
+ insertActivePdpVersion.setActiveVersion(activePdpPolicyVersion);
+ insertActivePdpVersion.setCreatedBy(userId);
+ insertActivePdpVersion.setModifiedBy(userId);
+ controller.saveData(insertActivePdpVersion);
}
return error("All the Policies has been deleted in Scope. Except the following list of Policies:"
- + activePoliciesInPDP);
+ + activePoliciesInPdp);
} else {
String policyScopeQuery = "delete PolicyEditorScopes where SCOPENAME like '"
+ path.replace(BACKSLASH, ESCAPE_BACKSLASH) + PERCENT_AND_ID_GT_0;
@@ -1495,8 +1538,8 @@ public class PolicyManagerServlet extends HttpServlet {
}
private void deleteEntityFromEsAndPolicyEntityTable(final PolicyController controller,
- final PolicyRestController restController, final PolicyEntity policyEntity,
- final String policyNamewithoutExtension) throws IOException {
+ final PolicyRestController restController, final PolicyEntity policyEntity,
+ final String policyNamewithoutExtension) throws IOException {
// Delete the entity from Elastic Search Database
String searchFileName = policyEntity.getScope() + "." + policyEntity.getPolicyName();
restController.deleteElasticData(searchFileName);
@@ -1504,16 +1547,16 @@ public class PolicyManagerServlet extends HttpServlet {
controller.deleteData(policyEntity);
if (policyNamewithoutExtension.contains(CONFIG2)) {
Files.deleteIfExists(Paths.get(PolicyController.getConfigHome() + File.separator
- + policyEntity.getConfigurationData().getConfigurationName()));
+ + policyEntity.getConfigurationData().getConfigurationName()));
controller.deleteData(policyEntity.getConfigurationData());
- restController.notifyOtherPAPSToUpdateConfigurations(DELETE, null,
- policyEntity.getConfigurationData().getConfigurationName());
+ restController.notifyOtherPapsToUpdateConfigurations(DELETE, null,
+ policyEntity.getConfigurationData().getConfigurationName());
} else if (policyNamewithoutExtension.contains(ACTION2)) {
Files.deleteIfExists(Paths.get(PolicyController.getActionHome() + File.separator
- + policyEntity.getActionBodyEntity().getActionBodyName()));
+ + policyEntity.getActionBodyEntity().getActionBodyName()));
controller.deleteData(policyEntity.getActionBodyEntity());
- restController.notifyOtherPAPSToUpdateConfigurations(DELETE, null,
- policyEntity.getActionBodyEntity().getActionBodyName());
+ restController.notifyOtherPapsToUpdateConfigurations(DELETE, null,
+ policyEntity.getActionBodyEntity().getActionBodyName());
}
}
@@ -1521,8 +1564,7 @@ public class PolicyManagerServlet extends HttpServlet {
private JSONObject editFile(JSONObject params) throws ServletException {
// get content
try {
- PolicyController controller = getPolicyControllerInstance();
- String mode = params.getString("mode");
+ final String mode = params.getString("mode");
String path = params.getString("path");
LOGGER.debug("editFile path: {}" + path);
@@ -1538,7 +1580,7 @@ public class PolicyManagerServlet extends HttpServlet {
SimpleBindings peParams = new SimpleBindings();
peParams.put(SPLIT_1, split[1]);
peParams.put(SPLIT_0, split[0]);
- List<Object> queryData = getDataByQueryFromController(controller, query, peParams);
+ List<Object> queryData = getDataByQueryFromController(getPolicyControllerInstance(), query, peParams);
PolicyEntity entity = (PolicyEntity) queryData.get(0);
InputStream stream = new ByteArrayInputStream(entity.getPolicyData().getBytes(StandardCharsets.UTF_8));
@@ -1577,11 +1619,10 @@ public class PolicyManagerServlet extends HttpServlet {
// Add Scopes
private JSONObject addFolder(JSONObject params, HttpServletRequest request) throws ServletException {
- PolicyController controller = getPolicyControllerInstance();
try {
String name = getNameFromParams(params);
String validateName =
- name.contains(File.separator) ? name.substring(name.lastIndexOf(File.separator) + 1) : name;
+ name.contains(File.separator) ? name.substring(name.lastIndexOf(File.separator) + 1) : name;
if (!name.isEmpty()) {
String validate = PolicyUtils.policySpecialCharValidator(validateName);
if (!validate.contains(SUCCESS)) {
@@ -1591,19 +1632,20 @@ public class PolicyManagerServlet extends HttpServlet {
if (name.startsWith(File.separator)) {
name = name.substring(1);
}
- PolicyEditorScopes entity = (PolicyEditorScopes) controller.getEntityItem(PolicyEditorScopes.class,
- SCOPE_NAME, name);
+ PolicyEditorScopes entity =
+ (PolicyEditorScopes) getPolicyControllerInstance().getEntityItem(
+ PolicyEditorScopes.class, SCOPE_NAME, name);
if (entity != null) {
return error("Scope Already Exists");
}
- String userId = UserUtils.getUserSession(request).getOrgUserId();
+ String userId = getUserSession(request).getOrgUserId();
UserInfo userInfo = new UserInfo();
userInfo.setUserLoginId(userId);
PolicyEditorScopes newScope = new PolicyEditorScopes();
newScope.setScopeName(name);
newScope.setUserCreatedBy(userInfo);
newScope.setUserModifiedBy(userInfo);
- controller.saveData(newScope);
+ getPolicyControllerInstance().saveData(newScope);
}
return success();
} catch (Exception e) {
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyNotificationMail.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyNotificationMail.java
index 1fccfda78..34a95d98b 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyNotificationMail.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyNotificationMail.java
@@ -2,16 +2,16 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* Modified Copyright (C) 2018 Samsung Electronics Co., Ltd.
* Modifications Copyright (C) 2019 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.
@@ -48,20 +48,26 @@ import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
/**
- * Send policy notification mail depending on the mode for every policy being watched
+ * Send policy notification mail depending on the mode for every policy being watched.
*/
@Configurable
-public class PolicyNotificationMail{
+public class PolicyNotificationMail {
private static final String POLICY_WATCHING_MESSAGE = "The Policy Which you are watching in ";
- private static final String EMAIL_MESSAGE_POSTSCRIPT = "Policy Notification System (please don't respond to this email)";
+ private static final String EMAIL_MESSAGE_POSTSCRIPT =
+ "Policy Notification System (please don't respond to this email)";
private static final String ACTIVE_VERSION = "Active Version : ";
private static final String SCOPE_POLICY_NAME = "Scope + Policy Name : ";
private static final String DELETED_TIME = "Deleted Time : ";
private static final String DELETED_BY = "Deleted By : ";
- private static Logger policyLogger = FlexLogger.getLogger(PolicyNotificationMail.class);
+ private static Logger policyLogger = FlexLogger.getLogger(PolicyNotificationMail.class);
+ /**
+ * javaMailSenderImpl.
+ *
+ * @return JavaMailSenderImpl object
+ */
@Bean
- public JavaMailSenderImpl javaMailSenderImpl(){
+ public JavaMailSenderImpl javaMailSenderImpl() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(PolicyController.getSmtpHost());
mailSender.setPort(Integer.parseInt(PolicyController.getSmtpPort()));
@@ -79,51 +85,71 @@ public class PolicyNotificationMail{
* Depending on the mode of operation on the policy, compose the subject and message.
* Invoke another internal method to actual send the mail. If the watch list is empty , then
* this method returns without sending notification mail
+ *
* @param entityItem Database item from which policy name could be extracted
* @param policyName Name of the policy for which notification is to be sent
* @param mode kind of operation done on the policy
* @param policyNotificationDao database access object for policy
*/
- public void sendMail(PolicyVersion entityItem, String policyName, String mode, CommonClassDao policyNotificationDao) {
+ public void sendMail(PolicyVersion entityItem, String policyName, String mode,
+ CommonClassDao policyNotificationDao) {
String subject = "";
String message = "";
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
- if("EditPolicy".equalsIgnoreCase(mode)){
- subject = "Policy has been Updated : "+entityItem.getPolicyName();
- message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Updated" + '\n' + '\n' + '\n'+ SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION +entityItem.getActiveVersion()
- + '\n' + '\n' + "Modified By : " +entityItem.getModifiedBy() + '\n' + "Modified Time : " +dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
+ if ("EditPolicy".equalsIgnoreCase(mode)) {
+ subject = "Policy has been Updated : " + entityItem.getPolicyName();
+ message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Updated" + '\n'
+ + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION
+ + entityItem.getActiveVersion() + '\n' + '\n' + "Modified By : " + entityItem.getModifiedBy() + '\n'
+ + "Modified Time : " + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n'
+ + EMAIL_MESSAGE_POSTSCRIPT;
}
- if("Rename".equalsIgnoreCase(mode)){
- subject = "Policy has been Renamed : "+entityItem.getPolicyName();
- message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Renamed" + '\n' + '\n' + '\n'+ SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION +entityItem.getActiveVersion()
- + '\n' + '\n' + "Renamed By : " +entityItem.getModifiedBy() + '\n' + "Renamed Time : " +dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
+ if ("Rename".equalsIgnoreCase(mode)) {
+ subject = "Policy has been Renamed : " + entityItem.getPolicyName();
+ message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Renamed" + '\n'
+ + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION
+ + entityItem.getActiveVersion() + '\n' + '\n' + "Renamed By : " + entityItem.getModifiedBy() + '\n'
+ + "Renamed Time : " + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n'
+ + EMAIL_MESSAGE_POSTSCRIPT;
}
- if("DeleteAll".equalsIgnoreCase(mode)){
- subject = "Policy has been Deleted : "+entityItem.getPolicyName();
- message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Deleted with All Versions" + '\n' + '\n' + '\n'+ SCOPE_POLICY_NAME + policyName + '\n'
- + '\n' + '\n' + DELETED_BY +entityItem.getModifiedBy() + '\n' + DELETED_TIME +dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
+ if ("DeleteAll".equalsIgnoreCase(mode)) {
+ subject = "Policy has been Deleted : " + entityItem.getPolicyName();
+ message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName()
+ + " has been Deleted with All Versions" + '\n' + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n'
+ + '\n' + '\n' + DELETED_BY + entityItem.getModifiedBy() + '\n' + DELETED_TIME
+ + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
}
- if("DeleteOne".equalsIgnoreCase(mode)){
- subject = "Policy has been Deleted : "+entityItem.getPolicyName();
- message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Deleted" + '\n' + '\n' + '\n'+ SCOPE_POLICY_NAME + policyName + '\n' +"Policy Version : " +entityItem.getActiveVersion()
- + '\n' + '\n' + DELETED_BY +entityItem.getModifiedBy() + '\n' + DELETED_TIME +dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
+ if ("DeleteOne".equalsIgnoreCase(mode)) {
+ subject = "Policy has been Deleted : " + entityItem.getPolicyName();
+ message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Deleted" + '\n'
+ + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n' + "Policy Version : "
+ + entityItem.getActiveVersion() + '\n' + '\n' + DELETED_BY + entityItem.getModifiedBy() + '\n'
+ + DELETED_TIME + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
}
- if("DeleteScope".equalsIgnoreCase(mode)){
- subject = "Scope has been Deleted : "+entityItem.getPolicyName();
- message = "The Scope Which you are watching in " + PolicyController.getSmtpApplicationName() + " has been Deleted" + '\n' + '\n' + '\n'+ "Scope + Scope Name : " + policyName + '\n'
- + '\n' + '\n' + DELETED_BY +entityItem.getModifiedBy() + '\n' + DELETED_TIME +dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
+ if ("DeleteScope".equalsIgnoreCase(mode)) {
+ subject = "Scope has been Deleted : " + entityItem.getPolicyName();
+ message = "The Scope Which you are watching in " + PolicyController.getSmtpApplicationName()
+ + " has been Deleted" + '\n' + '\n' + '\n' + "Scope + Scope Name : " + policyName + '\n' + '\n'
+ + '\n' + DELETED_BY + entityItem.getModifiedBy() + '\n' + DELETED_TIME + dateFormat.format(date)
+ + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
}
- if("SwitchVersion".equalsIgnoreCase(mode)){
- subject = "Policy has been SwitchedVersion : "+entityItem.getPolicyName();
- message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been SwitchedVersion" + '\n' + '\n' + '\n'+ SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION +entityItem.getActiveVersion()
- + '\n' + '\n' + "Switched By : " +entityItem.getModifiedBy() + '\n' + "Switched Time : " +dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
+ if ("SwitchVersion".equalsIgnoreCase(mode)) {
+ subject = "Policy has been SwitchedVersion : " + entityItem.getPolicyName();
+ message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been SwitchedVersion"
+ + '\n' + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION
+ + entityItem.getActiveVersion() + '\n' + '\n' + "Switched By : " + entityItem.getModifiedBy() + '\n'
+ + "Switched Time : " + dateFormat.format(date) + '\n' + '\n' + '\n' + '\n'
+ + EMAIL_MESSAGE_POSTSCRIPT;
}
- if("Move".equalsIgnoreCase(mode)){
- subject = "Policy has been Moved to Other Scope : "+entityItem.getPolicyName();
- message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName() + " has been Moved to Other Scope" + '\n' + '\n' + '\n'+ SCOPE_POLICY_NAME + policyName + '\n' + ACTIVE_VERSION +entityItem.getActiveVersion()
- + '\n' + '\n' + "Moved By : " +entityItem.getModifiedBy() + '\n' + "Moved Time : " +dateFormat.format(date) + '\n' + '\n' + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
+ if ("Move".equalsIgnoreCase(mode)) {
+ subject = "Policy has been Moved to Other Scope : " + entityItem.getPolicyName();
+ message = POLICY_WATCHING_MESSAGE + PolicyController.getSmtpApplicationName()
+ + " has been Moved to Other Scope" + '\n' + '\n' + '\n' + SCOPE_POLICY_NAME + policyName + '\n'
+ + ACTIVE_VERSION + entityItem.getActiveVersion() + '\n' + '\n' + "Moved By : "
+ + entityItem.getModifiedBy() + '\n' + "Moved Time : " + dateFormat.format(date) + '\n' + '\n'
+ + '\n' + '\n' + EMAIL_MESSAGE_POSTSCRIPT;
}
String checkPolicyName = findCheckPolicyName(policyName);
@@ -147,7 +173,7 @@ public class PolicyNotificationMail{
if (watchList == null || watchList.isEmpty()) {
policyLogger
- .debug("List of policy being watched is either null or empty, hence return without sending mail");
+ .debug("List of policy being watched is either null or empty, hence return without sending mail");
watchList = new ArrayList<>();
}
return watchList;
@@ -155,11 +181,11 @@ public class PolicyNotificationMail{
private String findPolicyFileName(PolicyVersion entityItem) {
String policyFileName = entityItem.getPolicyName();
- if(policyFileName.contains("/")){
+ if (policyFileName.contains("/")) {
policyFileName = policyFileName.substring(0, policyFileName.indexOf('/'));
policyFileName = policyFileName.replace("/", File.separator);
}
- if(policyFileName.contains("\\")){
+ if (policyFileName.contains("\\")) {
policyFileName = policyFileName.substring(0, policyFileName.indexOf('\\'));
policyFileName = policyFileName.replace("\\", "\\\\");
}
@@ -170,7 +196,7 @@ public class PolicyNotificationMail{
private String findCheckPolicyName(String policyName) {
String checkPolicyName = policyName;
- if(checkPolicyName.endsWith(".xml") || checkPolicyName.contains(".")){
+ if (checkPolicyName.endsWith(".xml") || checkPolicyName.contains(".")) {
checkPolicyName = checkPolicyName.substring(0, checkPolicyName.indexOf('.'));
}
return checkPolicyName;
@@ -178,29 +204,31 @@ public class PolicyNotificationMail{
/**
* For every policy being watched and when the policy name is one of the Config_, Action_ or Decision_,
- * send the notification
- * @param mode
- * @param policyNotificationDao
- * @param subject
- * @param message
- * @param checkPolicyName
- * @param watchList
+ * send the notification.
+ *
+ * @param mode String for the mode
+ * @param policyNotificationDao CommonClassDao
+ * @param subject String subject
+ * @param message String message
+ * @param checkPolicyName String check policy name
+ * @param watchList List of watch objects
*/
- private void composeAndSendMail(String mode, CommonClassDao policyNotificationDao, String subject, String message, String checkPolicyName, List<Object> watchList) {
+ private void composeAndSendMail(String mode, CommonClassDao policyNotificationDao, String subject, String message,
+ String checkPolicyName, List<Object> watchList) {
String from = PolicyController.getSmtpUsername();
String to;
- for(Object watch : watchList){
+ for (Object watch : watchList) {
WatchPolicyNotificationTable list = (WatchPolicyNotificationTable) watch;
String watchPolicyName = list.getPolicyName();
- //this conditino check for specific stringin policy name being watched and
- //also if the policy being checked is different from the watched ones,
- //then there is no need to send mail, hence continue with next policy in the loop
- if((watchPolicyName.contains("Config_") || watchPolicyName.contains("Action_") || watchPolicyName.contains("Decision_"))
- && !watchPolicyName.equals(checkPolicyName)){
+ // this condition check for specific stringin policy name being watched and
+ // also if the policy being checked is different from the watched ones,
+ // then there is no need to send mail, hence continue with next policy in the loop
+ if ((watchPolicyName.contains("Config_") || watchPolicyName.contains("Action_")
+ || watchPolicyName.contains("Decision_")) && !watchPolicyName.equals(checkPolicyName)) {
continue;
}
try (AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext()) {
- to = list.getLoginIds()+"@"+PolicyController.getSmtpEmailExtension();
+ to = list.getLoginIds() + "@" + PolicyController.getSmtpEmailExtension();
to = to.trim();
ctx.register(PolicyNotificationMail.class);
ctx.refresh();
@@ -212,11 +240,12 @@ public class PolicyNotificationMail{
mailMsg.setSubject(subject);
mailMsg.setText(message);
mailSender.send(mimeMessage);
- if("Rename".equalsIgnoreCase(mode) || mode.contains("Delete") || mode.contains("Move")){
+ if ("Rename".equalsIgnoreCase(mode) || mode.contains("Delete") || mode.contains("Move")) {
policyNotificationDao.delete(watch);
}
} catch (Exception e) {
- policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW+"Exception Occured in Policy Notification" +e);
+ policyLogger
+ .error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Exception Occured in Policy Notification" + e);
}
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyRestController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyRestController.java
index 03dbccfd9..76bb04945 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyRestController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyRestController.java
@@ -27,6 +27,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
+
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
@@ -39,8 +40,10 @@ import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@@ -53,7 +56,7 @@ import org.onap.policy.controller.CreateDcaeMicroServiceController;
import org.onap.policy.controller.CreateFirewallController;
import org.onap.policy.controller.CreateOptimizationController;
import org.onap.policy.controller.PolicyController;
-import org.onap.policy.rest.XACMLRestProperties;
+import org.onap.policy.rest.XacmlRestProperties;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.PolicyVersion;
@@ -121,29 +124,32 @@ public class PolicyRestController extends RestrictedBaseController {
PolicyRestController.commonClassDao = commonClassDao;
}
-
-
+ /**
+ * policyCreationController.
+ *
+ * @param request Request
+ * @param response Response
+ */
@RequestMapping(value = {"/policycreation/save_policy"}, method = {RequestMethod.POST})
public void policyCreationController(HttpServletRequest request, HttpServletResponse response) {
- String userId = UserUtils.getUserSession(request).getOrgUserId();
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
try {
- updateAndSendToPAP(request, response, userId, mapper);
+ updateAndSendToPap(request, response, UserUtils.getUserSession(request).getOrgUserId(), mapper);
} catch (Exception e) {
policyLogger.error("Exception Occured while saving policy", e);
}
}
- private void updateAndSendToPAP(HttpServletRequest request, HttpServletResponse response, String userId,
+ private void updateAndSendToPap(HttpServletRequest request, HttpServletResponse response, String userId,
ObjectMapper mapper) throws IOException {
JsonNode root = mapper.readTree(request.getReader());
policyLogger.info(
- "****************************************Logging UserID while Create/Update Policy**************************************************");
+ "********************Logging UserID while Create/Update Policy***********************************");
policyLogger.info(USER_ID + userId + "Policy Data Object: "
+ root.get(PolicyController.getPolicydata()).get("policy").toString());
policyLogger.info(
- "***********************************************************************************************************************************");
+ "************************************************************************************************");
PolicyRestAdapter policyData = mapper.readValue(
root.get(PolicyController.getPolicydata()).get("policy").toString(), PolicyRestAdapter.class);
@@ -164,17 +170,16 @@ public class PolicyRestController extends RestrictedBaseController {
policyData.setUserId(userId);
String result;
- String body = PolicyUtils.objectToJsonString(policyData);
- String uri = request.getRequestURI();
- ResponseEntity<?> responseEntity = sendToPAP(body, uri, HttpMethod.POST);
+ ResponseEntity<?> responseEntity = sendToPap(PolicyUtils.objectToJsonString(policyData),
+ request.getRequestURI(), HttpMethod.POST);
if (responseEntity != null && responseEntity.getBody().equals(HttpServletResponse.SC_CONFLICT)) {
result = "PolicyExists";
} else if (responseEntity != null) {
result = responseEntity.getBody().toString();
String policyName = responseEntity.getHeaders().get(POLICY_NAME).get(0);
if (policyData.isEditPolicy() && SUCCESS.equalsIgnoreCase(result)) {
- PolicyNotificationMail email = new PolicyNotificationMail();
- String mode = "EditPolicy";
+ final PolicyNotificationMail email = new PolicyNotificationMail();
+ final String mode = "EditPolicy";
String watchPolicyName = policyName.replace(XML, "");
String version = watchPolicyName.substring(watchPolicyName.lastIndexOf('.') + 1);
watchPolicyName =
@@ -197,8 +202,8 @@ public class PolicyRestController extends RestrictedBaseController {
PrintWriter out = response.getWriter();
String responseString = mapper.writeValueAsString(result);
- JSONObject j = new JSONObject("{policyData: " + responseString + "}");
- out.write(j.toString());
+ JSONObject json = new JSONObject("{policyData: " + responseString + "}");
+ out.write(json.toString());
}
private void modifyPolicyData(JsonNode root, PolicyRestAdapter policyData) {
@@ -227,13 +232,12 @@ public class PolicyRestController extends RestrictedBaseController {
}
}
-
- private ResponseEntity<?> sendToPAP(String body, String requestURI, HttpMethod method) {
+ private ResponseEntity<?> sendToPap(String body, String requestUri, HttpMethod method) {
String papUrl = PolicyController.getPapUrl();
- String papID = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_USERID);
- String papPass = PeCryptoUtils.decrypt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_PASS));
- Base64.Encoder encoder = Base64.getEncoder();
- String encoding = encoder.encodeToString((papID + ":" + papPass).getBytes(StandardCharsets.UTF_8));
+ String papPass = PeCryptoUtils.decrypt(XACMLProperties.getProperty(XacmlRestProperties.PROP_PAP_PASS));
+ String encoding = Base64.getEncoder().encodeToString(
+ (XACMLProperties.getProperty(XacmlRestProperties.PROP_PAP_USERID)
+ + ":" + papPass).getBytes(StandardCharsets.UTF_8));
HttpHeaders headers = new HttpHeaders();
headers.set(AUTHORIZATION, BASIC + encoding);
headers.set(CONTENT_TYPE, PolicyController.getContenttype());
@@ -242,7 +246,7 @@ public class PolicyRestController extends RestrictedBaseController {
HttpEntity<?> requestEntity = new HttpEntity<>(body, headers);
ResponseEntity<?> result = null;
HttpClientErrorException exception = null;
- String uri = requestURI;
+ String uri = requestUri;
if (uri.startsWith("/")) {
uri = uri.substring(uri.indexOf('/') + 1);
}
@@ -279,27 +283,24 @@ public class PolicyRestController extends RestrictedBaseController {
return result;
}
- private String callPAP(HttpServletRequest request, String method, String uriValue) {
- String uri = uriValue;
- String papUrl = PolicyController.getPapUrl();
- String papID = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_USERID);
- PeCryptoUtils.initAesKey(XACMLProperties.getProperty(XACMLRestProperties.PROP_AES_KEY));
- String papPass = PeCryptoUtils.decrypt((XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_PASS)));
+ private String callPap(HttpServletRequest request, String method, String uriValue) {
+ PeCryptoUtils.initAesKey(XACMLProperties.getProperty(XacmlRestProperties.PROP_AES_KEY));
+ String papPass = PeCryptoUtils.decrypt((XACMLProperties.getProperty(XacmlRestProperties.PROP_PAP_PASS)));
Base64.Encoder encoder = Base64.getEncoder();
- String encoding = encoder.encodeToString((papID + ":" + papPass).getBytes(StandardCharsets.UTF_8));
+ String encoding = encoder.encodeToString((XACMLProperties.getProperty(XacmlRestProperties.PROP_PAP_USERID)
+ + ":" + papPass).getBytes(StandardCharsets.UTF_8));
HttpHeaders headers = new HttpHeaders();
headers.set(AUTHORIZATION, BASIC + encoding);
headers.set(CONTENT_TYPE, PolicyController.getContenttype());
-
HttpURLConnection connection = null;
- List<FileItem> items;
FileItem item = null;
File file = null;
+ String uri = uriValue;
if (uri.contains(IMPORT_DICTIONARY)) {
try {
- items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
+ List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
item = items.get(0);
file = new File(item.getName());
String newFile = file.toString();
@@ -310,7 +311,7 @@ public class PolicyRestController extends RestrictedBaseController {
}
try {
- URL url = new URL(papUrl + uri);
+ URL url = new URL(PolicyController.getPapUrl() + uri);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(method);
connection.setUseCaches(false);
@@ -324,7 +325,7 @@ public class PolicyRestController extends RestrictedBaseController {
return doConnect(connection);
}
- checkURI(request, uri, connection, item);
+ checkUri(request, uri, connection, item);
return doConnect(connection);
} catch (Exception e) {
@@ -351,9 +352,8 @@ public class PolicyRestController extends RestrictedBaseController {
return null;
}
- private void checkURI(HttpServletRequest request, String uri, HttpURLConnection connection, FileItem item)
+ private void checkUri(HttpServletRequest request, String uri, HttpURLConnection connection, FileItem item)
throws IOException {
- String boundary;
if (!(uri.endsWith("set_BRMSParamData") || uri.contains(IMPORT_DICTIONARY))) {
connection.setRequestProperty(CONTENT_TYPE, PolicyController.getContenttype());
ObjectMapper mapper = new ObjectMapper();
@@ -380,7 +380,7 @@ public class PolicyRestController extends RestrictedBaseController {
IOUtils.copy(request.getInputStream(), os);
}
} else {
- boundary = "===" + System.currentTimeMillis() + "===";
+ String boundary = "===" + System.currentTimeMillis() + "===";
connection.setRequestProperty(CONTENT_TYPE, "multipart/form-data; boundary=" + boundary);
try (OutputStream os = connection.getOutputStream()) {
if (item != null) {
@@ -402,8 +402,7 @@ public class PolicyRestController extends RestrictedBaseController {
private String doConnect(final HttpURLConnection connection) throws IOException {
connection.connect();
- int responseCode = connection.getResponseCode();
- if (responseCode == 200) {
+ if (connection.getResponseCode() == 200) {
// get the response content into a String
String responseJson = null;
// read the inputStream into a buffer (trick found online scans entire input looking for end-of-file)
@@ -425,11 +424,17 @@ public class PolicyRestController extends RestrictedBaseController {
return null;
}
+ /**
+ * getDictionaryController.
+ *
+ * @param request Request
+ * @param response Response
+ */
@RequestMapping(value = {"/getDictionary/*"}, method = {RequestMethod.GET})
public void getDictionaryController(HttpServletRequest request, HttpServletResponse response) {
- String uri = request.getRequestURI().replace("/getDictionary", "");
String body;
- ResponseEntity<?> responseEntity = sendToPAP(null, uri, HttpMethod.GET);
+ ResponseEntity<?> responseEntity = sendToPap(null, request.getRequestURI().replace("/getDictionary", ""),
+ HttpMethod.GET);
if (responseEntity != null) {
body = responseEntity.getBody().toString();
} else {
@@ -442,6 +447,13 @@ public class PolicyRestController extends RestrictedBaseController {
}
}
+ /**
+ * saveDictionaryController.
+ *
+ * @param request Request
+ * @param response Response
+ * @throws IOException IO Exception
+ */
@RequestMapping(value = {"/saveDictionary/*/*"}, method = {RequestMethod.POST})
public void saveDictionaryController(HttpServletRequest request, HttpServletResponse response) throws IOException {
String userId = "";
@@ -456,12 +468,12 @@ public class PolicyRestController extends RestrictedBaseController {
}
policyLogger.info(
- "****************************************Logging UserID while Saving Dictionary*****************************************************");
+ "********************Logging UserID while Saving Dictionary**************************************");
policyLogger.info(USER_ID + userId);
policyLogger.info(
- "***********************************************************************************************************************************");
+ "************************************************************************************************");
- String body = callPAP(request, "POST", uri.replaceFirst("/", "").trim());
+ String body = callPap(request, "POST", uri.replaceFirst("/", "").trim());
if (body != null && !body.isEmpty()) {
response.getWriter().write(body);
} else {
@@ -469,6 +481,13 @@ public class PolicyRestController extends RestrictedBaseController {
}
}
+ /**
+ * deletetDictionaryController.
+ *
+ * @param request Request
+ * @param response Response
+ * @throws IOException IO Exception
+ */
@RequestMapping(value = {"/deleteDictionary/*/*"}, method = {RequestMethod.POST})
public void deletetDictionaryController(HttpServletRequest request, HttpServletResponse response)
throws IOException {
@@ -480,12 +499,12 @@ public class PolicyRestController extends RestrictedBaseController {
String userId = UserUtils.getUserSession(request).getOrgUserId();
policyLogger.info(
- "****************************************Logging UserID while Deleting Dictionary*****************************************************");
+ "**********************Logging UserID while Deleting Dictionary*************************************");
policyLogger.info(USER_ID + userId);
policyLogger.info(
- "*************************************************************************************************************************************");
+ "***************************************************************************************************");
- String body = callPAP(request, "POST", uri.replaceFirst("/", "").trim());
+ String body = callPap(request, "POST", uri.replaceFirst("/", "").trim());
if (body != null && !body.isEmpty()) {
response.getWriter().write(body);
} else {
@@ -493,6 +512,14 @@ public class PolicyRestController extends RestrictedBaseController {
}
}
+ /**
+ * searchDictionaryController.
+ *
+ * @param request Request
+ * @param response Response
+ * @return ModelAndView object
+ * @throws IOException IO Exception
+ */
@RequestMapping(value = {"/searchDictionary"}, method = {RequestMethod.POST})
public ModelAndView searchDictionaryController(HttpServletRequest request, HttpServletResponse response)
throws IOException {
@@ -503,14 +530,13 @@ public class PolicyRestController extends RestrictedBaseController {
}
uri = ONAP + uri.substring(uri.indexOf('/'));
try {
- String body = callPAP(request, "POST", uri.replaceFirst("/", "").trim());
+ String body = callPap(request, "POST", uri.replaceFirst("/", "").trim());
if (body.contains("CouldNotConnectException")) {
List<String> data = new ArrayList<>();
data.add("Elastic Search Server is down");
resultList = data;
} else {
- JSONObject json = new JSONObject(body);
- resultList = json.get("policyresult");
+ resultList = new JSONObject(body).get("policyresult");
}
} catch (Exception e) {
policyLogger.error(
@@ -522,12 +548,18 @@ public class PolicyRestController extends RestrictedBaseController {
response.setCharacterEncoding(PolicyController.getCharacterencoding());
response.setContentType(PolicyController.getContenttype());
- PrintWriter out = response.getWriter();
- JSONObject j = new JSONObject("{result: " + resultList + "}");
- out.write(j.toString());
+ response.getWriter().write(new JSONObject("{result: " + resultList + "}").toString());
return null;
}
+ /**
+ * searchPolicy.
+ *
+ * @param request request
+ * @param response response
+ * @return ModelAndView object
+ * @throws IOException IO exception
+ */
@RequestMapping(value = {"/searchPolicy"}, method = {RequestMethod.POST})
public ModelAndView searchPolicy(HttpServletRequest request, HttpServletResponse response) throws IOException {
Object resultList;
@@ -536,7 +568,7 @@ public class PolicyRestController extends RestrictedBaseController {
uri = uri.substring(uri.indexOf('/') + 1);
}
uri = ONAP + uri.substring(uri.indexOf('/'));
- String body = callPAP(request, "POST", uri.replaceFirst("/", "").trim());
+ String body = callPap(request, "POST", uri.replaceFirst("/", "").trim());
JSONObject json = new JSONObject(body);
try {
@@ -554,21 +586,27 @@ public class PolicyRestController extends RestrictedBaseController {
response.setContentType("application / json");
request.setCharacterEncoding(UTF_8);
- PrintWriter out = response.getWriter();
- JSONObject j = new JSONObject("{result: " + resultList + "}");
- out.write(j.toString());
+ response.getWriter().write(new JSONObject("{result: " + resultList + "}").toString());
return null;
}
public void deleteElasticData(String fileName) {
String uri = "searchPolicy?action=delete&policyName='" + fileName + "'";
- callPAP(null, "POST", uri.trim());
+ callPap(null, "POST", uri.trim());
}
- public String notifyOtherPAPSToUpdateConfigurations(String mode, String newName, String oldName) {
+ /**
+ * notifyOtherPAPSToUpdateConfigurations.
+ *
+ * @param mode Mode
+ * @param newName New Name
+ * @param oldName Old Name
+ * @return String
+ */
+ public String notifyOtherPapsToUpdateConfigurations(String mode, String newName, String oldName) {
String uri =
"onap/notifyOtherPAPs?action=" + mode + "&newPolicyName=" + newName + "&oldPolicyName=" + oldName + "";
- return callPAP(null, "POST", uri.trim());
+ return callPap(null, "POST", uri.trim());
}
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyUserInfoController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyUserInfoController.java
index 7e0aef2e9..9cf647954 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyUserInfoController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyUserInfoController.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2019 Bell Canada
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,8 +18,11 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.admin;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.util.HashMap;
import java.util.Map;
@@ -36,25 +39,26 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
@Controller
@RequestMapping("/")
public class PolicyUserInfoController extends RestrictedBaseController {
private static final Logger LOGGER = FlexLogger.getLogger(PolicyUserInfoController.class);
+ /**
+ * getPolicyUserInfo - fills the HTTP response with user information.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
@RequestMapping(value = "/get_PolicyUserInfo", method = RequestMethod.GET)
public void getPolicyUserInfo(HttpServletRequest request, HttpServletResponse response) {
- JsonMessage msg;
try {
String userId = UserUtils.getUserSession(request).getOrgUserId();
Map<String, Object> model = new HashMap<>();
- ObjectMapper mapper = new ObjectMapper();
model.put("userid", userId);
- msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(
+ new ObjectMapper().writeValueAsString(model))).toString());
} catch (Exception e) {
LOGGER.error("Exception Occurred" + e);
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/RESTfulPAPEngine.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/RESTfulPAPEngine.java
index a500c1dbe..d89dd2784 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/RESTfulPAPEngine.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/RESTfulPAPEngine.java
@@ -29,6 +29,7 @@ import com.att.research.xacml.util.XACMLProperties;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.CollectionType;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
@@ -37,6 +38,7 @@ import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
+import java.net.URLConnection;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
@@ -45,10 +47,12 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.rest.XACMLRestProperties;
+import org.onap.policy.rest.XacmlRestProperties;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
import org.onap.policy.utils.PeCryptoUtils;
import org.onap.policy.xacml.api.XACMLErrorConstants;
@@ -64,7 +68,7 @@ import org.onap.policy.xacml.std.pap.StdPDPStatus;
/**
* Implementation of the PAPEngine interface that communicates with a PAP engine in a remote servlet through a RESTful
- * interface
+ * interface.
*
*
*/
@@ -72,25 +76,29 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
private static final Logger LOGGER = FlexLogger.getLogger(RESTfulPAPEngine.class);
private static final String GROUP_ID = "groupId=";
+ private static final String UNABLE_MSG = "Unable to PUT policy '";
+ private static final String EXCEPTION_MSG = "', e:";
+ private static final String ERROR_MSG = "error";
+ private static final String PDPID_MSG = "pdpId=";
//
// URL of the PAP Servlet that this Admin Console talks to
//
- private String papServletURLString;
+ private String papServletUrlString;
/**
- * Set up link with PAP Servlet and get our initial set of Groups
+ * Set up link with PAP Servlet and get our initial set of Groups.
*
* @throws PAPException When failing to register with PAP
*/
- public RESTfulPAPEngine(String myURLString) throws PAPException {
+ public RESTfulPAPEngine(String myUrlString) throws PAPException {
//
// Get our URL to the PAP servlet
//
- this.papServletURLString = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_URL);
- if (this.papServletURLString == null || this.papServletURLString.length() == 0) {
- String message =
- "The property 'POLICYENGINE_ADMIN_ACTIVE' was not set during installation. Admin Console cannot call PAP.";
+ this.papServletUrlString = XACMLProperties.getProperty(XacmlRestProperties.PROP_PAP_URL);
+ if (StringUtils.isBlank(this.papServletUrlString)) {
+ String message = "The property 'POLICYENGINE_ADMIN_ACTIVE' was not set during installation. "
+ + "Admin Console cannot call PAP.";
LOGGER.error(message);
throw new PAPException(message);
}
@@ -98,14 +106,14 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
//
// register this Admin Console with the PAP Servlet to get updates
//
- Object newURL = sendToPAP("PUT", null, null, null, "adminConsoleURL=" + myURLString);
- if (newURL != null) {
+ Object newUrl = sendToPap("PUT", null, null, null, "adminConsoleURL=" + myUrlString);
+ if (newUrl != null) {
// assume this was a re-direct and try again
- LOGGER.warn("Redirecting to '" + newURL + "'");
- this.papServletURLString = (String) newURL;
- newURL = sendToPAP("PUT", null, null, null, "adminConsoleURL=" + myURLString);
- if (newURL != null) {
- LOGGER.error("Failed to redirect to " + this.papServletURLString);
+ LOGGER.warn("Redirecting to '" + newUrl + "'");
+ this.papServletUrlString = (String) newUrl;
+ newUrl = sendToPap("PUT", null, null, null, "adminConsoleURL=" + myUrlString);
+ if (newUrl != null) {
+ LOGGER.error("Failed to redirect to " + this.papServletUrlString);
throw new PAPException("Failed to register with PAP");
}
}
@@ -117,25 +125,25 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
@Override
public OnapPDPGroup getDefaultGroup() throws PAPException {
- return (OnapPDPGroup) sendToPAP("GET", null, null, StdPDPGroup.class, GROUP_ID, "default=");
+ return (OnapPDPGroup) sendToPap("GET", null, null, StdPDPGroup.class, GROUP_ID, "default=");
}
@Override
public void setDefaultGroup(OnapPDPGroup group) throws PAPException {
- sendToPAP("POST", null, null, null, GROUP_ID + group.getId(), "default=true");
+ sendToPap("POST", null, null, null, GROUP_ID + group.getId(), "default=true");
}
@SuppressWarnings("unchecked")
@Override
public Set<OnapPDPGroup> getOnapPDPGroups() throws PAPException {
Set<OnapPDPGroup> newGroupSet;
- newGroupSet = (Set<OnapPDPGroup>) this.sendToPAP("GET", null, Set.class, StdPDPGroup.class, GROUP_ID);
+ newGroupSet = (Set<OnapPDPGroup>) this.sendToPap("GET", null, Set.class, StdPDPGroup.class, GROUP_ID);
return Collections.unmodifiableSet(newGroupSet);
}
@Override
public OnapPDPGroup getGroup(String id) throws PAPException {
- return (OnapPDPGroup) sendToPAP("GET", null, null, StdPDPGroup.class, GROUP_ID + id);
+ return (OnapPDPGroup) sendToPap("GET", null, null, StdPDPGroup.class, GROUP_ID + id);
}
@Override
@@ -149,17 +157,10 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
throw new PAPException("Unable to send name or description to PAP: " + e.getMessage() + e);
}
- this.sendToPAP("POST", null, null, null, GROUP_ID, "groupName=" + escapedName,
+ this.sendToPap("POST", null, null, null, GROUP_ID, "groupName=" + escapedName,
"groupDescription=" + escapedDescription);
}
- /**
- * Update the configuration on the PAP for a single Group.
- *
- * @param group
- * @return
- * @throws PAPException
- */
@Override
public void updateGroup(OnapPDPGroup group) throws PAPException {
try {
@@ -175,9 +176,9 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
// However, the policy files are (probably!) not too huge, and this is a good way to ensure that any
// corrupted files on the PAP get refreshed.
// now update the group object on the PAP
- sendToPAP("PUT", group, null, null, GROUP_ID + group.getId());
+ sendToPap("PUT", group, null, null, GROUP_ID + group.getId());
} catch (Exception e) {
- String message = "Unable to PUT policy '" + group.getId() + "', e:" + e;
+ String message = UNABLE_MSG + group.getId() + EXCEPTION_MSG + e;
LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + message, e);
throw new PAPException(message);
}
@@ -192,9 +193,9 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
@Override
public void updateGroup(OnapPDPGroup group, String userName) throws PAPException {
try {
- sendToPAP("PUT", group, null, null, GROUP_ID + group.getId(), "userId=" + userName);
+ sendToPap("PUT", group, null, null, GROUP_ID + group.getId(), "userId=" + userName);
} catch (Exception e) {
- String message = "Unable to PUT policy '" + group.getId() + "', e:" + e;
+ String message = UNABLE_MSG + group.getId() + EXCEPTION_MSG + e;
LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + message, e);
throw new PAPException(message);
}
@@ -206,7 +207,7 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
if (newGroup != null) {
moveToGroupString = "movePDPsToGroupId=" + newGroup.getId();
}
- sendToPAP("DELETE", null, null, null, GROUP_ID + group.getId(), moveToGroupString);
+ sendToPap("DELETE", null, null, null, GROUP_ID + group.getId(), moveToGroupString);
}
@Override
@@ -215,56 +216,61 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
}
public OnapPDPGroup getPDPGroup(String pdpId) throws PAPException {
- return (OnapPDPGroup) sendToPAP("GET", null, null, StdPDPGroup.class, GROUP_ID, "pdpId=" + pdpId,
+ return (OnapPDPGroup) sendToPap("GET", null, null, StdPDPGroup.class, GROUP_ID, PDPID_MSG + pdpId,
"getPDPGroup=");
}
@Override
public OnapPDP getPDP(String pdpId) throws PAPException {
- return (OnapPDP) sendToPAP("GET", null, null, StdPDP.class, GROUP_ID, "pdpId=" + pdpId);
+ return (OnapPDP) sendToPap("GET", null, null, StdPDP.class, GROUP_ID, PDPID_MSG + pdpId);
}
@Override
public void newPDP(String id, OnapPDPGroup group, String name, String description, int jmxport)
throws PAPException {
- StdPDP newPDP = new StdPDP(id, name, description, jmxport);
- sendToPAP("PUT", newPDP, null, null, GROUP_ID + group.getId(), "pdpId=" + id);
+ StdPDP newPdp = new StdPDP(id, name, description, jmxport);
+ sendToPap("PUT", newPdp, null, null, GROUP_ID + group.getId(), PDPID_MSG + id);
}
@Override
public void movePDP(OnapPDP pdp, OnapPDPGroup newGroup) throws PAPException {
- sendToPAP("POST", null, null, null, GROUP_ID + newGroup.getId(), "pdpId=" + pdp.getId());
+ sendToPap("POST", null, null, null, GROUP_ID + newGroup.getId(), PDPID_MSG + pdp.getId());
}
@Override
public void updatePDP(OnapPDP pdp) throws PAPException {
OnapPDPGroup group = getPDPGroup(pdp);
- sendToPAP("PUT", pdp, null, null, GROUP_ID + group.getId(), "pdpId=" + pdp.getId());
+ sendToPap("PUT", pdp, null, null, GROUP_ID + group.getId(), PDPID_MSG + pdp.getId());
}
@Override
public void removePDP(OnapPDP pdp) throws PAPException {
OnapPDPGroup group = getPDPGroup(pdp);
- sendToPAP("DELETE", null, null, null, GROUP_ID + group.getId(), "pdpId=" + pdp.getId());
+ sendToPap("DELETE", null, null, null, GROUP_ID + group.getId(), PDPID_MSG + pdp.getId());
}
- // Validate the Policy Data
+ /**
+ * validatePolicyRequest Creates a pap policy and then send to pap.
+ *
+ * @param policyAdapter Input Adapter
+ * @param policyType Type of Policy
+ * @return true if validated
+ * @throws PAPException exception if invalid
+ */
public boolean validatePolicyRequest(PolicyRestAdapter policyAdapter, String policyType) throws PAPException {
- StdPAPPolicy newPAPPolicy = new StdPAPPolicy(policyAdapter.getPolicyName(), policyAdapter.getConfigBodyData(),
+ StdPAPPolicy newPapPolicy = new StdPAPPolicy(policyAdapter.getPolicyName(), policyAdapter.getConfigBodyData(),
policyAdapter.getConfigType(), "Base");
// send JSON object to PAP
- return (Boolean) sendToPAP("PUT", newPAPPolicy, null, null, "operation=validate", "apiflag=admin",
+ return (Boolean) sendToPap("PUT", newPapPolicy, null, null, "operation=validate", "apiflag=admin",
"policyType=" + policyType);
}
-
-
@Override
public void publishPolicy(String id, String name, boolean isRoot, InputStream policy, OnapPDPGroup group)
throws PAPException {
// copy the (one) file into the target directory on the PAP servlet
- copyFile(id, group, policy);
+ copyFile(id, group, policy, null);
// adjust the local copy of the group to include the new policy
PDPPolicy pdpPolicy = new StdPDPPolicy(id, isRoot, name);
@@ -278,32 +284,31 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
* Copy a single Policy file from the input stream to the PAP Servlet. Either this works (silently) or it throws an
* exception.
*
- * @param policyId
- * @param group
- * @param policy
- * @return
- * @throws PAPException
+ * @param policyId ID of policy
+ * @param group PDP Group
+ * @param policy Input stream of policy
+ * @throws PAPException exception
*/
- public void copyFile(String policyId, OnapPDPGroup group, InputStream policy) throws PAPException {
+ public void copyFile(String policyId, OnapPDPGroup group, InputStream policy, String usrId) throws PAPException {
// send the policy file to the PAP Servlet
try {
- sendToPAP("POST", policy, null, null, GROUP_ID + group.getId(), "policyId=" + policyId);
+ sendToPap("POST", policy, null, null, GROUP_ID + group.getId(), "policyId=" + policyId, "userId=" + usrId );
} catch (Exception e) {
- String message = "Unable to PUT policy '" + policyId + "', e:" + e;
+ String message = UNABLE_MSG + policyId + EXCEPTION_MSG + e;
LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + message, e);
throw new PAPException(message);
}
}
@Override
- public void copyPolicy(PDPPolicy policy, OnapPDPGroup group) throws PAPException {
+ public void copyPolicy(PDPPolicy policy, OnapPDPGroup group, String userId) throws PAPException {
if (policy == null || group == null) {
throw new PAPException("Null input policy=" + policy + " group=" + group);
}
try (InputStream is = new FileInputStream(new File(policy.getLocation()))) {
- copyFile(policy.getId(), group, is);
+ copyFile(policy.getId(), group, is, userId);
} catch (Exception e) {
- String message = "Unable to PUT policy '" + policy.getId() + "', e:" + e;
+ String message = UNABLE_MSG + policy.getId() + EXCEPTION_MSG + e;
LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + message, e);
throw new PAPException(message);
}
@@ -318,13 +323,13 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
* Special operation - Similar to the normal PAP operations but this one contacts the PDP directly to get detailed
* status info.
*
- * @param pdp
- * @return
- * @throws PAPException
+ * @param pdp PDP to get status
+ * @return PDPStatus object
+ * @throws PAPException Exception
*/
@Override
public PDPStatus getStatus(OnapPDP pdp) throws PAPException {
- return (StdPDPStatus) sendToPAP("GET", pdp, null, StdPDPStatus.class);
+ return (StdPDPStatus) sendToPap("GET", pdp, null, StdPDPStatus.class);
}
//
@@ -334,57 +339,56 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
/**
* Send a request to the PAP Servlet and get the response.
*
- * The content is either an InputStream to be copied to the Request OutputStream OR it is an object that is to be
+ * <p>The content is either an InputStream to be copied to the Request OutputStream OR it is an object that is to be
* encoded into JSON and pushed into the Request OutputStream.
*
- * The Request parameters may be encoded in multiple "name=value" sets, or parameters may be combined by the caller.
+ * <p>The Request parameters may be encoded in multiple "name=value" sets, or parameters may be
+ * combined by the caller.
*
- * @param method
+ * @param method method
* @param content - EITHER an InputStream OR an Object to be encoded in JSON
- * @param collectionTypeClass
- * @param responseContentClass
- * @param parameters
- * @return
- * @throws PAPException
+ * @param collectionTypeClass Collection
+ * @param responseContentClass Response Content
+ * @param parameters List of parameters
+ * @return Object
+ * @throws PAPException exception
*/
@SuppressWarnings({"rawtypes", "unchecked"})
- private Object sendToPAP(String method, Object content, Class collectionTypeClass, Class responseContentClass,
+ private Object sendToPap(String method, Object content, Class collectionTypeClass, Class responseContentClass,
String... parameters) throws PAPException {
HttpURLConnection connection = null;
- String papID = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_USERID);
+ String papID = XACMLProperties.getProperty(XacmlRestProperties.PROP_PAP_USERID);
LOGGER.info("User Id is " + papID);
- PeCryptoUtils.initAesKey(XACMLProperties.getProperty(XACMLRestProperties.PROP_AES_KEY));
+ PeCryptoUtils.initAesKey(XACMLProperties.getProperty(XacmlRestProperties.PROP_AES_KEY));
String papPass = PeCryptoUtils
- .decrypt(PeCryptoUtils.decrypt(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_PASS)));
+ .decrypt(PeCryptoUtils.decrypt(XACMLProperties.getProperty(XacmlRestProperties.PROP_PAP_PASS)));
Base64.Encoder encoder = Base64.getEncoder();
String encoding = encoder.encodeToString((papID + ":" + papPass).getBytes(StandardCharsets.UTF_8));
Object contentObj = content;
LOGGER.info("Encoding for the PAP is: " + encoding);
try {
- String fullURL = papServletURLString;
+ String fullUrl = papServletUrlString;
if (parameters != null && parameters.length > 0) {
StringBuilder queryString = new StringBuilder();
Arrays.stream(parameters).map(p -> "&" + p).forEach(queryString::append);
- fullURL += "?" + queryString.substring(1);
+ fullUrl += "?" + queryString.substring(1);
}
// special case - Status (actually the detailed status) comes from the PDP directly, not the PAP
if ("GET".equals(method) && (contentObj instanceof OnapPDP) && responseContentClass == StdPDPStatus.class) {
// Adjust the url and properties appropriately
String pdpID = ((OnapPDP) contentObj).getId();
- fullURL = pdpID + "?type=Status";
+ fullUrl = pdpID + "?type=Status";
contentObj = null;
- if (CheckPDP.validateID(pdpID)) {
- encoding = CheckPDP.getEncoding(pdpID);
+ if (CheckPdpProperties.validateId(pdpID)) {
+ encoding = CheckPdpProperties.getEncoding(pdpID);
}
}
- URL url = new URL(fullURL);
-
//
// Open up the connection
//
- connection = (HttpURLConnection) url.openConnection();
+ connection = (HttpURLConnection) makeConnection(fullUrl);
//
// Setup our method and headers
//
@@ -434,9 +438,9 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
String finalPolicyPath = connection.getHeaderField("finalPolicyPath");
successMap.put("success", finalPolicyPath);
return successMap;
- } else if ("error".equalsIgnoreCase(isSuccess)) {
+ } else if (ERROR_MSG.equalsIgnoreCase(isSuccess)) {
LOGGER.info("There was an error while creating the policy!");
- successMap.put("error", "error");
+ successMap.put(ERROR_MSG, ERROR_MSG);
return successMap;
} else {
// get the response content into a String
@@ -457,19 +461,19 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
}
} else if (connection.getResponseCode() >= 300 && connection.getResponseCode() <= 399) {
// redirection
- String newURL = connection.getHeaderField("Location");
- if (newURL == null) {
+ String newUrl = connection.getHeaderField("Location");
+ if (newUrl == null) {
LOGGER.error(
"No Location header to redirect to when response code=" + connection.getResponseCode());
throw new IOException(
"No redirect Location header when response code=" + connection.getResponseCode());
}
- int qIndex = newURL.indexOf('?');
- if (qIndex > 0) {
- newURL = newURL.substring(0, qIndex);
+ int qindex = newUrl.indexOf('?');
+ if (qindex > 0) {
+ newUrl = newUrl.substring(0, qindex);
}
- LOGGER.info("Redirect seen. Redirecting " + fullURL + " to " + newURL);
- return newURL;
+ LOGGER.info("Redirect seen. Redirecting " + fullUrl + " to " + newUrl);
+ return newUrl;
} else {
LOGGER.warn("Unexpected response code: " + connection.getResponseCode() + " message: "
+ connection.getResponseMessage());
@@ -527,4 +531,10 @@ public class RESTfulPAPEngine extends StdPDPItemSetChangeNotifier implements PAP
LOGGER.info("JSON response from PAP: " + json);
return json;
}
+
+ // these may be overridden by junit tests
+
+ protected URLConnection makeConnection(String fullUrl) throws IOException {
+ return new URL(fullUrl).openConnection();
+ }
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/components/HumanPolicyComponent.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/components/HumanPolicyComponent.java
index b116af6ef..f2c3a5d7a 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/components/HumanPolicyComponent.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/components/HumanPolicyComponent.java
@@ -2,15 +2,15 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2019 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.
@@ -39,7 +39,9 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+
import javax.xml.bind.JAXBElement;
+
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
@@ -57,6 +59,7 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableReferenceType;
+
import org.apache.commons.io.FilenameUtils;
import org.json.JSONObject;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
@@ -95,7 +98,6 @@ public class HumanPolicyComponent {
public static final String EMPTY_STRING = "";
private static final String ENTER = "ENTER";
-
private static HtmlProcessor htmlProcessor;
private static File policyFile;
@@ -104,9 +106,16 @@ public class HumanPolicyComponent {
// Default Constructor
}
+ /**
+ * DescribePolicy.
+ *
+ * @param policyFile File
+ * @return JSONObject
+ */
public static JSONObject DescribePolicy(final File policyFile) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace(ENTER);
+ }
HumanPolicyComponent.policyFile = policyFile;
return humanPolicyLayout();
@@ -114,8 +123,9 @@ public class HumanPolicyComponent {
}
private static JSONObject humanPolicyLayout() {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace(ENTER);
+ }
try {
String html = processPolicy();
@@ -135,8 +145,9 @@ public class HumanPolicyComponent {
}
try (FileInputStream pIS = new FileInputStream(policyFile)) {
Object policy = XACMLPolicyScanner.readPolicy(pIS);
- if (policy == null)
+ if (policy == null) {
throw new IllegalArgumentException("Policy File " + policyFile.getName() + " cannot be unmarshalled");
+ }
HumanPolicyComponent.htmlProcessor = new HtmlProcessor(HumanPolicyComponent.policyFile, policy);
@@ -144,8 +155,9 @@ public class HumanPolicyComponent {
XACMLPolicyScanner xacmlScanner = new XACMLPolicyScanner(policyPath, htmlProcessor);
xacmlScanner.scan();
String html = htmlProcessor.html();
- if (LOGGER.isDebugEnabled())
+ if (LOGGER.isDebugEnabled()) {
LOGGER.debug(policyPath + System.lineSeparator() + html);
+ }
return html;
@@ -165,6 +177,7 @@ class HtmlProcessor extends SimpleCallback {
private static final String ENTER = "ENTER";
private static Map<String, String> function2human;
+
static {
function2human = new HashMap<>();
function2human.put(HumanPolicyComponent.FUNCTION_STRING_EQUAL, "equal");
@@ -175,6 +188,7 @@ class HtmlProcessor extends SimpleCallback {
}
private static Map<String, String> combiningAlgo2human;
+
static {
combiningAlgo2human = new HashMap<>();
combiningAlgo2human.put("deny-overrides", "to deny if any $placeholder$ below evaluates to <i>deny</i>");
@@ -203,8 +217,9 @@ class HtmlProcessor extends SimpleCallback {
private final Object rootPolicyObject;
public HtmlProcessor(File policyFile, Object policyObject) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace(ENTER);
+ }
if (policyFile == null) {
LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Null Policy File");
@@ -259,6 +274,8 @@ class HtmlProcessor extends SimpleCallback {
}
/**
+ * getAttributeIdentifiersMap.
+ *
* @return the attributeIdentifiersMap
*/
public Map<String, AttributeIdentifiers> getAttributeIdentifiersMap() {
@@ -267,8 +284,9 @@ class HtmlProcessor extends SimpleCallback {
@Override
public void onFinishScan(Object root) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace(ENTER);
+ }
if (rootPolicyObject instanceof PolicySetType) {
htmlOut.println("</dl>");
@@ -306,43 +324,52 @@ class HtmlProcessor extends SimpleCallback {
@Override
public CallbackResult onPreVisitPolicySet(PolicySetType parent, PolicySetType policySet) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policySet.getPolicySetId() + " Version: " + policySet.getVersion());
+ }
- if (parent != null && LOGGER.isTraceEnabled())
+ if (parent != null && LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policySet.getPolicySetId() + "Parent PolicySet: " + parent.getPolicySetId()
+ " Version: " + parent.getVersion());
+ }
String description = policySet.getDescription();
- if (description != null && LOGGER.isTraceEnabled())
+ if (description != null && LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policySet.getPolicySetId() + " Description: " + policySet.getDescription());
+ }
- if (parent == null) // root
+ if (parent == null) { // root
policySet(policySet, "dl");
- else
+ } else {
policySet(policySet, "li");
+ }
- if (!policySet.getPolicySetOrPolicyOrPolicySetIdReference().isEmpty())
+ if (!policySet.getPolicySetOrPolicyOrPolicySetIdReference().isEmpty()) {
htmlOut.println("<ol>");
+ }
return super.onPreVisitPolicySet(parent, policySet);
}
@Override
public CallbackResult onPostVisitPolicySet(PolicySetType parent, PolicySetType policySet) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policySet.getPolicySetId() + " Version: " + policySet.getVersion());
+ }
- if (parent != null && LOGGER.isTraceEnabled())
+ if (parent != null && LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policySet.getPolicySetId() + "Parent PolicySet: " + parent.getPolicySetId()
+ " Version: " + parent.getVersion());
+ }
String description = policySet.getDescription();
- if (description != null && LOGGER.isTraceEnabled())
+ if (description != null && LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policySet.getPolicySetId() + " Description: " + policySet.getDescription());
+ }
- if (!policySet.getPolicySetOrPolicyOrPolicySetIdReference().isEmpty())
+ if (!policySet.getPolicySetOrPolicyOrPolicySetIdReference().isEmpty()) {
htmlOut.println("</ol>");
+ }
htmlOut.println("<p></p>");
@@ -350,23 +377,25 @@ class HtmlProcessor extends SimpleCallback {
}
public void policySet(PolicySetType policySet, String htmlListElement) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policySet.getPolicySetId());
+ }
String combiningAlgorithm = "-";
String id = "-";
String version = "-";
-
- if (policySet.getPolicyCombiningAlgId() != null)
+ if (policySet.getPolicyCombiningAlgId() != null) {
combiningAlgorithm = extractLastIdentifier(policySet.getPolicyCombiningAlgId(), ":");
+ }
- if (policySet.getPolicySetId() != null)
+ if (policySet.getPolicySetId() != null) {
id = extractLastIdentifier(policySet.getPolicySetId(), ":");
+ }
- if (policySet.getVersion() != null)
+ if (policySet.getVersion() != null) {
version = policySet.getVersion();
-
+ }
htmlOut.println("<" + htmlListElement + "><b>Policy Set ID</b>: <i>" + id + "</i> (v" + version + ") " + "</"
+ htmlListElement + ">");
@@ -378,8 +407,7 @@ class HtmlProcessor extends SimpleCallback {
htmlOut.print("<p>");
htmlOut.print("This policy set applies to requests with attributes ");
- List<AnyOfType> anyOf_s = policySet.getTarget().getAnyOf();
- target(anyOf_s);
+ target(policySet.getTarget().getAnyOf());
htmlOut.println(".</p>");
}
@@ -398,58 +426,68 @@ class HtmlProcessor extends SimpleCallback {
@Override
public CallbackResult onPreVisitPolicy(PolicySetType parent, PolicyType policy) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policy.getPolicyId() + " Version: " + policy.getVersion());
+ }
- if (parent != null && LOGGER.isTraceEnabled())
+ if (parent != null && LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policy.getPolicyId() + "Parent PolicySet: " + parent.getPolicySetId()
+ " Version: " + parent.getVersion());
+ }
String description = policy.getDescription();
- if (description != null && LOGGER.isTraceEnabled())
+ if (description != null && LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policy.getPolicyId() + " Description: " + policy.getDescription());
+ }
policy(policy);
- if (!policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().isEmpty())
+ if (!policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().isEmpty()) {
htmlOut.println("<ol type=\"i\">");
+ }
return super.onPreVisitPolicy(parent, policy);
}
@Override
public CallbackResult onPostVisitPolicy(PolicySetType parent, PolicyType policy) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policy.getPolicyId() + " Version: " + policy.getVersion());
+ }
- if (parent != null && LOGGER.isTraceEnabled())
+ if (parent != null && LOGGER.isTraceEnabled()) {
LOGGER.trace("PolicySet: " + policy.getPolicyId() + "Parent PolicySet: " + parent.getPolicySetId()
+ " Version: " + parent.getVersion());
+ }
- if (!policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().isEmpty())
+ if (!policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().isEmpty()) {
htmlOut.println("</ol>");
+ }
htmlOut.println("<p></p>");
return super.onPostVisitPolicy(parent, policy);
}
public void policy(PolicyType policy) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace("Policy: " + policy.getPolicyId());
+ }
String combiningAlgorithm = "-";
String id = "-";
String version = "-";
-
- if (policy.getRuleCombiningAlgId() != null)
+ if (policy.getRuleCombiningAlgId() != null) {
combiningAlgorithm = extractLastIdentifier(policy.getRuleCombiningAlgId(), ":");
+ }
- if (policy.getPolicyId() != null)
+ if (policy.getPolicyId() != null) {
id = extractLastIdentifier(policy.getPolicyId(), ":");
+ }
- if (policy.getVersion() != null)
+ if (policy.getVersion() != null) {
version = policy.getVersion();
+ }
htmlOut.println("<li><b>Policy ID</b>: <i>" + id + "</i> (v" + version + ") " + "</li>");
@@ -460,8 +498,7 @@ class HtmlProcessor extends SimpleCallback {
htmlOut.print("<p>");
htmlOut.print("This policy applies to requests with attributes ");
- List<AnyOfType> anyOf_s = policy.getTarget().getAnyOf();
- target(anyOf_s);
+ target(policy.getTarget().getAnyOf());
htmlOut.println(".</p>");
}
@@ -477,14 +514,15 @@ class HtmlProcessor extends SimpleCallback {
}
}
-
@Override
public CallbackResult onPreVisitRule(PolicyType parent, RuleType rule) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace("Rule: " + rule.getRuleId());
+ }
- if (parent != null && LOGGER.isTraceEnabled())
+ if (parent != null && LOGGER.isTraceEnabled()) {
LOGGER.trace("Parent Policy: " + parent.getPolicyId() + " Version: " + parent.getVersion());
+ }
String description = rule.getDescription();
if (description != null && LOGGER.isTraceEnabled()) {
@@ -498,23 +536,21 @@ class HtmlProcessor extends SimpleCallback {
@Override
public CallbackResult onPostVisitRule(PolicyType parent, RuleType rule) {
- if (LOGGER.isTraceEnabled())
- LOGGER.trace("Rule: " + rule.getRuleId());
- if (parent != null && LOGGER.isTraceEnabled())
+ if (parent != null && LOGGER.isTraceEnabled()) {
LOGGER.trace("Parent Policy: " + parent.getPolicyId() + " Version: " + parent.getVersion());
+ }
return super.onPostVisitRule(parent, rule);
}
public void rule(RuleType rule) {
- if (LOGGER.isTraceEnabled())
- LOGGER.trace("Rule: " + rule.getRuleId());
String id = "-";
- if (rule.getRuleId() != null)
+ if (rule.getRuleId() != null) {
id = extractLastIdentifier(rule.getRuleId(), ":");
+ }
htmlOut.println("<li><b>Rule ID</b>: <i>" + id + "</i></li>");
@@ -526,9 +562,8 @@ class HtmlProcessor extends SimpleCallback {
if (rule.getTarget() == null || rule.getTarget().getAnyOf() == null || rule.getTarget().getAnyOf().isEmpty()) {
htmlOut.print(" for all requests");
} else {
- List<AnyOfType> anyOf_s = rule.getTarget().getAnyOf();
htmlOut.print(" for requests with attributes ");
- target(anyOf_s);
+ target(rule.getTarget().getAnyOf());
}
if (rule.getCondition() != null) {
@@ -540,8 +575,9 @@ class HtmlProcessor extends SimpleCallback {
if (rule.getAdviceExpressions() != null) {
advice(rule.getAdviceExpressions());
- if (rule.getObligationExpressions() != null)
+ if (rule.getObligationExpressions() != null) {
htmlOut.println(" and ");
+ }
}
if (rule.getObligationExpressions() != null) {
@@ -552,8 +588,9 @@ class HtmlProcessor extends SimpleCallback {
}
private void advice(AdviceExpressionsType adviceExpressions) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace(ENTER);
+ }
List<AdviceExpressionType> ae = adviceExpressions.getAdviceExpression();
for (AdviceExpressionType expression : ae) {
@@ -569,8 +606,9 @@ class HtmlProcessor extends SimpleCallback {
}
private void obligation(ObligationExpressionsType obligationExpressions) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace(ENTER);
+ }
List<ObligationExpressionType> oe = obligationExpressions.getObligationExpression();
for (ObligationExpressionType expression : oe) {
@@ -586,11 +624,14 @@ class HtmlProcessor extends SimpleCallback {
}
/**
- * @param assignments
+ * processAttributeAssignments.
+ *
+ * @param assignments List of AttributeAssignmentExpressionType
*/
private void processAttributeAssignments(List<AttributeAssignmentExpressionType> assignments) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace(ENTER);
+ }
for (AttributeAssignmentExpressionType assignment : assignments) {
String succintIdentifier = extractLastIdentifier(assignment.getCategory(), ":") + ":"
@@ -620,8 +661,9 @@ class HtmlProcessor extends SimpleCallback {
for (Object c : avt.getContent()) {
countContent++;
htmlOut.print("<i>" + c + "</i>");
- if (countContent < numContent)
+ if (countContent < numContent) {
htmlOut.print(" or ");
+ }
}
htmlOut.println("</li>");
} else if (assignmentObject instanceof AttributeDesignatorType
@@ -634,118 +676,118 @@ class HtmlProcessor extends SimpleCallback {
}
/**
- *
- * @param anyOfList
+ * target.
+ *
+ * @param anyOfList List of AnyOfType's
*/
public void target(List<AnyOfType> anyOfList) {
- if (LOGGER.isTraceEnabled())
+ if (LOGGER.isTraceEnabled()) {
LOGGER.trace(ENTER);
+ }
- if (anyOfList != null) {
- Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
- StringBuilder targetInHuman = new StringBuilder();
- while (iterAnyOf.hasNext()) {
- AnyOfType anyOf = iterAnyOf.next();
- List<AllOfType> allOfList = anyOf.getAllOf();
- if (allOfList != null) {
- Iterator<AllOfType> iterAllOf = allOfList.iterator();
- while (iterAllOf.hasNext()) {
- AllOfType allOf = iterAllOf.next();
- List<MatchType> matchList = allOf.getMatch();
- if (matchList != null) {
- Iterator<MatchType> iterMatch = matchList.iterator();
- if (matchList.size() > 1)
- targetInHuman.append("(");
- while (iterMatch.hasNext()) {
- MatchType match = iterMatch.next();
- //
- // Finally down to the actual attribute
- //
- StdAttribute attribute = null;
- AttributeValueType value = match.getAttributeValue();
- String attributeDataType;
- if (match.getAttributeDesignator() != null && value != null) {
- AttributeDesignatorType designator = match.getAttributeDesignator();
- attribute = new StdAttribute(new IdentifierImpl(designator.getCategory()),
- new IdentifierImpl(designator.getAttributeId()),
- new StdAttributeValue<List<?>>(new IdentifierImpl(value.getDataType()),
- value.getContent()),
- designator.getIssuer(), false);
- attributeDataType = designator.getDataType();
- } else if (match.getAttributeSelector() != null && value != null) {
- AttributeSelectorType selector = match.getAttributeSelector();
- attribute = new StdAttribute(new IdentifierImpl(selector.getCategory()),
- new IdentifierImpl(selector.getContextSelectorId()),
- new StdAttributeValue<List<?>>(new IdentifierImpl(value.getDataType()),
- value.getContent()),
- null, false);
- attributeDataType = selector.getDataType();
- } else {
- LOGGER.warn("NULL designator/selector or value for match.");
- attributeDataType = "NA";
- }
+ if (anyOfList == null) {
+ return;
+ }
+ Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
+ StringBuilder targetInHuman = new StringBuilder();
+ while (iterAnyOf.hasNext()) {
+ AnyOfType anyOf = iterAnyOf.next();
+ List<AllOfType> allOfList = anyOf.getAllOf();
+ Iterator<AllOfType> iterAllOf = allOfList.iterator();
+ while (iterAllOf.hasNext()) {
+ AllOfType allOf = iterAllOf.next();
+ List<MatchType> matchList = allOf.getMatch();
+ Iterator<MatchType> iterMatch = matchList.iterator();
+ if (matchList.size() > 1) {
+ targetInHuman.append("(");
+ }
+ while (iterMatch.hasNext()) {
+ MatchType match = iterMatch.next();
+ //
+ // Finally down to the actual attribute
+ //
+ StdAttribute attribute = null;
+ AttributeValueType value = match.getAttributeValue();
+ String attributeDataType;
+ if (match.getAttributeDesignator() != null && value != null) {
+ AttributeDesignatorType designator = match.getAttributeDesignator();
+ attribute = new StdAttribute(new IdentifierImpl(designator.getCategory()),
+ new IdentifierImpl(designator.getAttributeId()),
+ new StdAttributeValue<List<?>>(new IdentifierImpl(value.getDataType()),
+ value.getContent()),
+ designator.getIssuer(), false);
+ attributeDataType = designator.getDataType();
+ } else if (match.getAttributeSelector() != null && value != null) {
+ AttributeSelectorType selector = match.getAttributeSelector();
+ attribute = new StdAttribute(new IdentifierImpl(selector.getCategory()),
+ new IdentifierImpl(selector.getContextSelectorId()),
+ new StdAttributeValue<List<?>>(new IdentifierImpl(value.getDataType()),
+ value.getContent()),
+ null, false);
+ attributeDataType = selector.getDataType();
+ } else {
+ LOGGER.warn("NULL designator/selector or value for match.");
+ attributeDataType = "NA";
+ }
- String functionName = getHumanFunction(match.getMatchId());
- if (attribute != null) {
- String succintIdentifier = extractLastIdentifier(
- attribute.getCategory().stringValue(), ":") + ":"
- + extractLastIdentifier(attribute.getAttributeId().stringValue(), ":");
- AttributeIdentifiers ai =
- new AttributeIdentifiers(attribute.getCategory().stringValue(),
- attributeDataType, attribute.getAttributeId().stringValue());
- this.attributeIdentifiersMap.put(succintIdentifier, ai);
-
- targetInHuman.append("<i><a href=\"#" + succintIdentifier + "\">"
- + succintIdentifier + "</a></i> " + functionName + " ");
-
- int numAttributes = attribute.getValues().size();
- int count = 0;
- for (AttributeValue<?> v : attribute.getValues()) {
- count++;
- if (v.getValue() instanceof Collection<?>) {
- Collection<?> value_s = (Collection<?>) v.getValue();
- int numValues = value_s.size();
- int countValues = 0;
- for (Object o : value_s) {
- countValues++;
- targetInHuman.append(" <I>" + o + "</I>");
- if (countValues < numValues) {
- targetInHuman.append(", or");
- }
- }
- } else {
- targetInHuman.append(" <I>" + v.getValue() + "</I>");
- if (count < numAttributes) {
- targetInHuman.append(", or ");
- }
- }
+ String functionName = getHumanFunction(match.getMatchId());
+ if (attribute != null) {
+ String succintIdentifier = extractLastIdentifier(
+ attribute.getCategory().stringValue(), ":") + ":"
+ + extractLastIdentifier(attribute.getAttributeId().stringValue(), ":");
+ AttributeIdentifiers ai =
+ new AttributeIdentifiers(attribute.getCategory().stringValue(),
+ attributeDataType, attribute.getAttributeId().stringValue());
+ this.attributeIdentifiersMap.put(succintIdentifier, ai);
+
+ targetInHuman.append("<i><a href=\"#" + succintIdentifier + "\">"
+ + succintIdentifier + "</a></i> " + functionName + " ");
+
+ int numAttributes = attribute.getValues().size();
+ int count = 0;
+ for (AttributeValue<?> v : attribute.getValues()) {
+ count++;
+ if (v.getValue() instanceof Collection<?>) {
+ Collection<?> collectionValues = (Collection<?>) v.getValue();
+ int numValues = collectionValues.size();
+ int countValues = 0;
+ for (Object o : collectionValues) {
+ countValues++;
+ targetInHuman.append(" <I>" + o + "</I>");
+ if (countValues < numValues) {
+ targetInHuman.append(", or");
}
}
-
- if (iterMatch.hasNext()) {
- targetInHuman.append(" and ");
+ } else {
+ targetInHuman.append(" <I>" + v.getValue() + "</I>");
+ if (count < numAttributes) {
+ targetInHuman.append(", or ");
}
- } // end iterMatch
- if (matchList.size() > 1) {
- targetInHuman.append(")");
}
}
- if (iterAllOf.hasNext()) {
- targetInHuman.append(" or ");
- }
- } // end iterAllOf
- }
- if (iterAnyOf.hasNext()) {
- targetInHuman = new StringBuilder();
- targetInHuman.append("(" + targetInHuman + ")" + " or ");
- } else {
- if (anyOfList.size() > 1) {
- targetInHuman.append(")");
}
+
+ if (iterMatch.hasNext()) {
+ targetInHuman.append(" and ");
+ }
+ } // end iterMatch
+ if (matchList.size() > 1) {
+ targetInHuman.append(")");
}
- } // end iterAnyOf
- htmlOut.println(targetInHuman);
+ }
+ if (iterAllOf.hasNext()) {
+ targetInHuman.append(" or ");
+ }
+ } // end iterAllOf
+ if (iterAnyOf.hasNext()) {
+ targetInHuman = new StringBuilder();
+ targetInHuman.append("(" + targetInHuman + ")" + " or ");
+ } else {
+ if (anyOfList.size() > 1) {
+ targetInHuman.append(")");
+ }
}
+ htmlOut.println(targetInHuman);
}
private String getHumanFunction(String matchId) {
@@ -815,12 +857,12 @@ class HtmlProcessor extends SimpleCallback {
} else {
StringBuilder forResult = new StringBuilder();
for (JAXBElement<?> e : exps) {
- Object v = e.getValue();
+ Object theValue = e.getValue();
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("one-and-only children: " + v);
+ LOGGER.debug("one-and-only children: " + theValue);
}
- if (v != null) {
- forResult.append(stringifyExpression(v));
+ if (theValue != null) {
+ forResult.append(stringifyExpression(theValue));
}
}
return forResult.toString();
@@ -840,8 +882,8 @@ class HtmlProcessor extends SimpleCallback {
}
StringBuilder applySubresult = new StringBuilder();
for (JAXBElement<?> e : apply.getExpression()) {
- Object v = e.getValue();
- if (v != null) {
+ Object theValue = e.getValue();
+ if (theValue != null) {
applySubresult.append(this.stringifyExpression(e.getValue()));
}
}
@@ -906,11 +948,12 @@ class HtmlProcessor extends SimpleCallback {
if (expression instanceof AttributeValueType) {
AttributeValueType avt = (AttributeValueType) expression;
List<Object> content = avt.getContent();
- StringBuilder value_s = new StringBuilder();
+ StringBuilder stringValue = new StringBuilder(" ");
for (Object o : content) {
- value_s.append(" " + o.toString());
+ stringValue.append(" ");
+ stringValue.append(o.toString());
}
- return " " + value_s.toString();
+ return stringValue.toString();
}
if (expression instanceof VariableReferenceType) {
//
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/conf/HibernateSession.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/conf/HibernateSession.java
index 0e1be9349..ef6b98803 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/conf/HibernateSession.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/conf/HibernateSession.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -32,44 +32,43 @@ import org.hibernate.cfg.Configuration;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.controller.PolicyController;
-import org.onap.policy.rest.jpa.SystemLogDB;
+import org.onap.policy.rest.jpa.SystemLogDb;
@SuppressWarnings("deprecation")
-public class HibernateSession{
+public class HibernateSession {
- private static final Logger LOGGER = FlexLogger.getLogger(HibernateSession.class);
-
- private static SessionFactory logSessionFactory;
-
- static {
- try {
- Properties prop= new Properties();
- prop.setProperty("hibernate.connection.url", PolicyController.getLogdbUrl());
- prop.setProperty("hibernate.connection.username", PolicyController.getLogdbUserName());
- prop.setProperty("hibernate.connection.password", PolicyController.getLogdbPassword());
- prop.setProperty("dialect", PolicyController.getLogdbDialect());
- prop.setProperty("hibernate.connection.driver_class", PolicyController.getLogdbDriver());
- prop.setProperty("show_sql", "false");
- logSessionFactory = new Configuration().addPackage("org.onap.policy.*").addProperties(prop)
- .addAnnotatedClass(SystemLogDB.class).buildSessionFactory();
- } catch (Exception ex) {
- LOGGER.error("Exception Occured while creating Log database Hibernate session"+ex);
- }
- }
+ private static final Logger LOGGER = FlexLogger.getLogger(HibernateSession.class);
- private HibernateSession(){
- /**
- empty implementation
- */
- }
+ private static SessionFactory logSessionFactory;
- public static Session getSession(){
- return logSessionFactory.openSession();
- }
-
- public static void setSession(SessionFactory logSessionFactory1){
- logSessionFactory = logSessionFactory1;
- }
+ static {
+ try {
+ Properties prop = new Properties();
+ prop.setProperty("hibernate.connection.url", PolicyController.getLogdbUrl());
+ prop.setProperty("hibernate.connection.username", PolicyController.getLogdbUserName());
+ prop.setProperty("hibernate.connection.password", PolicyController.getLogdbPassword());
+ prop.setProperty("dialect", PolicyController.getLogdbDialect());
+ prop.setProperty("hibernate.connection.driver_class", PolicyController.getLogdbDriver());
+ prop.setProperty("show_sql", "false");
+ logSessionFactory = new Configuration().addPackage("org.onap.policy.*").addProperties(prop)
+ .addAnnotatedClass(SystemLogDb.class).buildSessionFactory();
+ } catch (Exception ex) {
+ LOGGER.error("Exception Occured while creating Log database Hibernate session" + ex);
+ }
+ }
+ private HibernateSession() {
+ /**
+ * empty implementation
+ */
+ }
+
+ public static Session getSession() {
+ return logSessionFactory.openSession();
+ }
+
+ public static void setSession(SessionFactory logSessionFactory1) {
+ logSessionFactory = logSessionFactory1;
+ }
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ActionPolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ActionPolicyController.java
index 578258403..666923b43 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ActionPolicyController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ActionPolicyController.java
@@ -2,15 +2,15 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2019 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.
@@ -27,32 +27,28 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-
import javax.xml.bind.JAXBElement;
-
-import org.onap.policy.common.logging.flexlogger.FlexLogger;
-import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.rest.adapter.PolicyRestAdapter;
-import org.onap.portalsdk.core.controller.RestrictedBaseController;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.ApplyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.ConditionType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionsType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+import org.onap.policy.common.logging.flexlogger.FlexLogger;
+import org.onap.policy.common.logging.flexlogger.Logger;
+import org.onap.policy.rest.adapter.PolicyRestAdapter;
+import org.onap.portalsdk.core.controller.RestrictedBaseController;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
@Controller
-@RequestMapping({ "/" })
+@RequestMapping({"/"})
public class ActionPolicyController extends RestrictedBaseController {
private static final Logger LOGGER = FlexLogger.getLogger(ActionPolicyController.class);
private static final String PERFORMER_ATTRIBUTE_ID = "performer";
@@ -66,41 +62,47 @@ public class ActionPolicyController extends RestrictedBaseController {
// Default Constructor
}
+ /**
+ * prePopulateActionPolicyData.
+ *
+ * @param policyAdapter PolicyRestAdapter
+ */
public void prePopulateActionPolicyData(PolicyRestAdapter policyAdapter) {
ruleAlgorithmList = new ArrayList<>();
performer.put("PDP", "PDPAction");
performer.put("PEP", "PEPAction");
- if (policyAdapter.getPolicyData() instanceof PolicyType) {
- PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
+ if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+ return;
+ }
+ PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
- // 1. Set policy-name, policy-filename and description to Policy Adapter
- setPolicyAdapterPolicyNameAndDesc(policyAdapter, policy);
+ // 1. Set policy-name, policy-filename and description to Policy Adapter
+ setPolicyAdapterPolicyNameAndDesc(policyAdapter, policy);
- // 2a. Get the target data under policy for Action.
- TargetType target = policy.getTarget();
- if (target == null) {
- return;
- }
+ // 2a. Get the target data under policy for Action.
+ TargetType target = policy.getTarget();
+ if (target == null) {
+ return;
+ }
- // 2b. Set attributes to Policy Adapter
- setPolicyAdapterAttributes(policyAdapter, target.getAnyOf());
+ // 2b. Set attributes to Policy Adapter
+ setPolicyAdapterAttributes(policyAdapter, target.getAnyOf());
- List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
- // Under rule we have Condition and obligation.
- for (Object o : ruleList) {
- if (!(o instanceof RuleType)) {
- continue;
- }
- // 3. Set rule-algorithm choices to Policy Adapter
- setPolicyAdapterRuleAlgorithmschoices(policyAdapter, (RuleType) o);
+ List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
+ // Under rule we have Condition and obligation.
+ for (Object o : ruleList) {
+ if (!(o instanceof RuleType)) {
+ continue;
+ }
+ // 3. Set rule-algorithm choices to Policy Adapter
+ setPolicyAdapterRuleAlgorithmschoices(policyAdapter, (RuleType) o);
- // 4a. Get the Obligation data under the rule for Form elements.
- ObligationExpressionsType obligations = ((RuleType) o).getObligationExpressions();
+ // 4a. Get the Obligation data under the rule for Form elements.
+ ObligationExpressionsType obligations = ((RuleType) o).getObligationExpressions();
- // 4b. Set action attribute-value and action-performer to Policy Adapter
- setPolicyAdapterActionData(policyAdapter, obligations);
- }
+ // 4b. Set action attribute-value and action-performer to Policy Adapter
+ setPolicyAdapterActionData(policyAdapter, obligations);
}
}
@@ -109,22 +111,23 @@ public class ActionPolicyController extends RestrictedBaseController {
return;
}
// Under the obligationExpressions we have obligationExpression.
- List<ObligationExpressionType> obligationList = obligations.getObligationExpression();
- if (obligationList == null) {
- return;
- }
- for (ObligationExpressionType obligation : obligationList) {
+ // NOTE: getObligationExpression() will never return NULL.
+ //
+ for (ObligationExpressionType obligation : obligations.getObligationExpression()) {
policyAdapter.setActionAttributeValue(obligation.getObligationId());
// Under the obligationExpression we have attributeAssignmentExpression.
- List<AttributeAssignmentExpressionType> attributeAssignmentExpressionList = obligation
- .getAttributeAssignmentExpression();
- if (attributeAssignmentExpressionList == null) {
- continue;
- }
- for (AttributeAssignmentExpressionType attributeAssignmentExpression : attributeAssignmentExpressionList) {
+ //
+ // NOTE: obligation.getAttributeAssignmentExpression() will NEVER be null
+ // It will always return a list.
+ //
+ for (AttributeAssignmentExpressionType attributeAssignmentExpression :
+ obligation.getAttributeAssignmentExpression()) {
+ //
+ //
+ //
String attributeID = attributeAssignmentExpression.getAttributeId();
- AttributeValueType attributeValue = (AttributeValueType) attributeAssignmentExpression
- .getExpression().getValue();
+ AttributeValueType attributeValue =
+ (AttributeValueType) attributeAssignmentExpression.getExpression().getValue();
if (!attributeID.equals(PERFORMER_ATTRIBUTE_ID)) {
continue;
}
@@ -139,8 +142,8 @@ public class ActionPolicyController extends RestrictedBaseController {
private void setPolicyAdapterPolicyNameAndDesc(PolicyRestAdapter policyAdapter, PolicyType policy) {
policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- String policyNameValue = policyAdapter.getPolicyName()
- .substring(policyAdapter.getPolicyName().indexOf('_') + 1);
+ String policyNameValue =
+ policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf('_') + 1);
policyAdapter.setPolicyName(policyNameValue);
String description;
try {
@@ -152,11 +155,10 @@ public class ActionPolicyController extends RestrictedBaseController {
policyAdapter.setPolicyDescription(description);
}
- private void setPolicyAdapterRuleAlgorithmschoices(PolicyRestAdapter policyAdapter, RuleType o) {
- ConditionType condition = o.getCondition();
- if (condition != null) {
+ private void setPolicyAdapterRuleAlgorithmschoices(PolicyRestAdapter policyAdapter, RuleType ruleType) {
+ if (ruleType.getCondition() != null) {
int index = 0;
- ApplyType actionApply = (ApplyType) condition.getExpression().getValue();
+ ApplyType actionApply = (ApplyType) ruleType.getCondition().getExpression().getValue();
ruleAlgorithmTracker = new LinkedList<>();
// Populating Rule Algorithms starting from compound.
prePopulateCompoundRuleAlgorithm(index, actionApply);
@@ -166,36 +168,43 @@ public class ActionPolicyController extends RestrictedBaseController {
private void setPolicyAdapterAttributes(PolicyRestAdapter policyAdapter, List<AnyOfType> anyOfList) {
List<Object> attributeList = new ArrayList<>();
- if (anyOfList == null) {
- return;
- }
+ //
+ // NOTE: If using xacml3 code and doing a getAnyOf(), the anyOfList will
+ // NEVER be null as that code will create it if it is null.
+ //
+ // Remove the null check as its impossible to cover it.
+ //
// under target we have AnyOFType
for (AnyOfType anyOf : anyOfList) {
// Under AntOfType we have AllOfType
+ //
+ // NOTE: This will NEVER be null as the method call in the
+ // previous line getAllOf() will never return a null. It
+ // always creates it if its empty.
+ //
List<AllOfType> allOfList = anyOf.getAllOf();
- if (allOfList == null) {
- continue;
- }
// Under AllOfType we have Match.
for (AllOfType allOfType : allOfList) {
- List<MatchType> matchList = allOfType.getMatch();
- if (matchList != null) {
- //
- // Under the match we have attributeValue and
- // attributeDesignator. So,finally down to the actual attribute.
- //
- // Component attributes are saved under Target here we are fetching them back.
- // One row is default so we are not adding dynamic component at index 0.
- matchList.forEach(match -> {
- AttributeValueType attributeValue = match.getAttributeValue();
- String value = (String) attributeValue.getContent().get(0);
- AttributeDesignatorType designator = match.getAttributeDesignator();
- String attributeId = designator.getAttributeId();
- Map<String, String> attribute = new HashMap<>();
- attribute.put("key", attributeId);
- attribute.put("value", value);
- attributeList.add(attribute);
- });
+ //
+ // NOTE: allOfType.getMatch() will NEVER be null as the method
+ // call getMatch will always return something. If its
+ // not there it will create it.
+ //
+ //
+ // Under the match we have attributeValue and
+ // attributeDesignator. So,finally down to the actual attribute.
+ //
+ // Component attributes are saved under Target here we are fetching them back.
+ // One row is default so we are not adding dynamic component at index 0.
+ for (MatchType match : allOfType.getMatch()) {
+ AttributeValueType attributeValue = match.getAttributeValue();
+ String value = (String) attributeValue.getContent().get(0);
+ AttributeDesignatorType designator = match.getAttributeDesignator();
+ String attributeId = designator.getAttributeId();
+ Map<String, String> attribute = new HashMap<>();
+ attribute.put("key", attributeId);
+ attribute.put("value", value);
+ attributeList.add(attribute);
}
policyAdapter.setAttributes(attributeList);
}
@@ -211,41 +220,41 @@ public class ActionPolicyController extends RestrictedBaseController {
LOGGER.debug("Prepopulating rule algoirthm: " + index);
}
// Check to see if Attribute Value exists, if yes then it is not a compound rule
- if (jaxbElement.getValue() instanceof AttributeValueType) {
+ if (jaxbElement.getValue() instanceof AttributeValueType
+ || jaxbElement.getValue() instanceof AttributeDesignatorType) {
prePopulateRuleAlgorithms(index, actionApply, jaxbActionTypes);
ruleAlgorithmTracker.addLast(index);
isCompoundRule = false;
index++;
}
}
- if (isCompoundRule) {
- // As it's compound rule, Get the Apply types
- for (JAXBElement<?> jaxbElement : jaxbActionTypes) {
- ApplyType innerActionApply = (ApplyType) jaxbElement.getValue();
- index = prePopulateCompoundRuleAlgorithm(index, innerActionApply);
- }
- // Populate combo box
- if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Prepopulating Compound rule algorithm: " + index);
- }
- Map<String, String> rule = new HashMap<>();
- for (String key : PolicyController.getDropDownMap().keySet()) {
- String keyValue = PolicyController.getDropDownMap().get(key);
- if (keyValue.equals(actionApply.getFunctionId())) {
- rule.put("dynamicRuleAlgorithmCombo", key);
- }
+ if (!isCompoundRule) {
+ return index;
+ }
+ // As it's compound rule, Get the Apply types
+ for (JAXBElement<?> jaxbElement : jaxbActionTypes) {
+ ApplyType innerActionApply = (ApplyType) jaxbElement.getValue();
+ index = prePopulateCompoundRuleAlgorithm(index, innerActionApply);
+ }
+ // Populate combo box
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("Prepopulating Compound rule algorithm: " + index);
+ }
+ Map<String, String> rule = new HashMap<>();
+ for ( Entry<String, String> entrySet : PolicyController.getDropDownMap().entrySet()) {
+ if (entrySet.getValue().equals(actionApply.getFunctionId())) {
+ rule.put("dynamicRuleAlgorithmCombo", entrySet.getKey());
}
- rule.put("id", "A" + (index + 1));
- // Populate Key and values for Compound Rule
- rule.put(DYNAMIC_RULE_ALGORITHM_FIELD_1, "A" + (ruleAlgorithmTracker.getLast() + 1));
- ruleAlgorithmTracker.removeLast();
- rule.put(DYNAMIC_RULE_ALGORITHM_FIELD_2, "A" + (ruleAlgorithmTracker.getLast() + 1));
- ruleAlgorithmTracker.removeLast();
- ruleAlgorithmTracker.addLast(index);
- ruleAlgorithmList.add(rule);
- index++;
}
- return index;
+ rule.put("id", "A" + (index + 1));
+ // Populate Key and values for Compound Rule
+ rule.put(DYNAMIC_RULE_ALGORITHM_FIELD_1, "A" + (ruleAlgorithmTracker.getLast() + 1));
+ ruleAlgorithmTracker.removeLast();
+ rule.put(DYNAMIC_RULE_ALGORITHM_FIELD_2, "A" + (ruleAlgorithmTracker.getLast() + 1));
+ ruleAlgorithmTracker.removeLast();
+ ruleAlgorithmTracker.addLast(index);
+ ruleAlgorithmList.add(rule);
+ return ++index;
}
private void prePopulateRuleAlgorithms(int index, ApplyType actionApply, List<JAXBElement<?>> jaxbActionTypes) {
@@ -253,7 +262,7 @@ public class ActionPolicyController extends RestrictedBaseController {
ruleMap.put("id", "A" + (index + 1));
// Populate combo box
Map<String, String> dropDownMap = PolicyController.getDropDownMap();
- for ( Entry<String, String> entry : dropDownMap.entrySet()) {
+ for (Entry<String, String> entry : dropDownMap.entrySet()) {
if (entry.getValue().equals(actionApply.getFunctionId())) {
ruleMap.put("dynamicRuleAlgorithmCombo", entry.getKey());
}
@@ -264,8 +273,8 @@ public class ActionPolicyController extends RestrictedBaseController {
// Get from Attribute Designator
ApplyType innerActionApply = (ApplyType) jaxbActionTypes.get(0).getValue();
List<JAXBElement<?>> jaxbInnerActionTypes = innerActionApply.getExpression();
- AttributeDesignatorType attributeDesignator = (AttributeDesignatorType) jaxbInnerActionTypes.get(0)
- .getValue();
+ AttributeDesignatorType attributeDesignator =
+ (AttributeDesignatorType) jaxbInnerActionTypes.get(0).getValue();
ruleMap.put(DYNAMIC_RULE_ALGORITHM_FIELD_1, attributeDesignator.getAttributeId());
// Get from Attribute Value
@@ -279,11 +288,20 @@ public class ActionPolicyController extends RestrictedBaseController {
String attributeValue = (String) actionConditionAttributeValue.getContent().get(0);
ruleMap.put(DYNAMIC_RULE_ALGORITHM_FIELD_2, attributeValue);
- ApplyType innerActionApply = (ApplyType) jaxbActionTypes.get(1).getValue();
- List<JAXBElement<?>> jaxbInnerActionTypes = innerActionApply.getExpression();
- AttributeDesignatorType attributeDesignator = (AttributeDesignatorType) jaxbInnerActionTypes.get(0)
- .getValue();
- ruleMap.put(DYNAMIC_RULE_ALGORITHM_FIELD_1, attributeDesignator.getAttributeId());
+ //
+ // This is making a BIG assumption here that there exists an innerApply. This IF
+ // statement was added to support JUnit code coverage. For lack of any example of what
+ // this policy should actually look like.
+ //
+ if (jaxbActionTypes.size() > 1) {
+ ApplyType innerActionApply = (ApplyType) jaxbActionTypes.get(1).getValue();
+ List<JAXBElement<?>> jaxbInnerActionTypes = innerActionApply.getExpression();
+ if (! jaxbInnerActionTypes.isEmpty()) {
+ AttributeDesignatorType attributeDesignator =
+ (AttributeDesignatorType) jaxbInnerActionTypes.get(0).getValue();
+ ruleMap.put(DYNAMIC_RULE_ALGORITHM_FIELD_1, attributeDesignator.getAttributeId());
+ }
+ }
}
ruleAlgorithmList.add(ruleMap);
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AdminTabController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AdminTabController.java
index fc25e29f0..139b2b87f 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AdminTabController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AdminTabController.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2019 Bell Canada
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,8 +21,11 @@
package org.onap.policy.controller;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.io.IOException;
-import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
@@ -44,21 +47,16 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
@Controller
@RequestMapping({"/"})
public class AdminTabController extends RestrictedBaseController {
private static final Logger LOGGER = FlexLogger.getLogger(AdminTabController.class);
- private static final String CHARACTER_ENCODING = "UTF-8";
private static CommonClassDao commonClassDao;
public AdminTabController() {
- //default constructor
+ // default constructor
}
@Autowired
@@ -74,57 +72,66 @@ public class AdminTabController extends RestrictedBaseController {
AdminTabController.commonClassDao = commonClassDao;
}
- @RequestMapping(value = {"/get_LockDownData"}, method = {
- org.springframework.web.bind.annotation.RequestMethod.GET}, produces = MediaType.APPLICATION_JSON_VALUE)
+ /**
+ * getAdminTabEntityData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/get_LockDownData"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.GET},
+ produces = MediaType.APPLICATION_JSON_VALUE)
public void getAdminTabEntityData(HttpServletRequest request, HttpServletResponse response) {
try {
Map<String, Object> model = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
model.put("lockdowndata", mapper.writeValueAsString(commonClassDao.getData(GlobalRoleSettings.class)));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
LOGGER.error("Exception Occured" + e);
}
}
- @RequestMapping(value = {"/adminTabController/save_LockDownValue.htm"}, method = {
- org.springframework.web.bind.annotation.RequestMethod.POST})
+ /**
+ * saveAdminTabLockdownValue.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ * @return ModelAndView object
+ * @throws IOException IOException
+ */
+ @RequestMapping(
+ value = {"/adminTabController/save_LockDownValue.htm"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.POST})
public ModelAndView saveAdminTabLockdownValue(HttpServletRequest request, HttpServletResponse response)
- throws IOException {
+ throws IOException {
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
try {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
String userId = UserUtils.getUserSession(request).getOrgUserId();
LOGGER.info(
- "****************************************Logging UserID for Application Lockdown Function*****************************************");
+ "********************Logging UserID for Application Lockdown Function**************************");
LOGGER.info("UserId: " + userId);
LOGGER.info(
- "*********************************************************************************************************************************");
+ "**********************************************************************************************");
JsonNode root = mapper.readTree(request.getReader());
- GlobalRoleSettings globalRole = mapper
- .readValue(root.get("lockdowndata").toString(), GlobalRoleSettings.class);
+ GlobalRoleSettings globalRole =
+ mapper.readValue(root.get("lockdowndata").toString(), GlobalRoleSettings.class);
globalRole.setRole("super-admin");
commonClassDao.update(globalRole);
- response.setCharacterEncoding(CHARACTER_ENCODING);
- response.setContentType("application / json");
- request.setCharacterEncoding(CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
- PrintWriter out = response.getWriter();
String responseString = mapper.writeValueAsString(commonClassDao.getData(GlobalRoleSettings.class));
- JSONObject j = new JSONObject("{descriptiveScopeDictionaryDatas: " + responseString + "}");
-
- out.write(j.toString());
- return null;
+ response.getWriter().write(new JSONObject("{descriptiveScopeDictionaryDatas: " + responseString
+ + "}").toString());
} catch (Exception e) {
LOGGER.error("Exception Occured" + e);
- response.setCharacterEncoding(CHARACTER_ENCODING);
- request.setCharacterEncoding(CHARACTER_ENCODING);
- PrintWriter out = response.getWriter();
- out.write(PolicyUtils.CATCH_EXCEPTION);
+ response.getWriter().write(PolicyUtils.CATCH_EXCEPTION);
}
return null;
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java
index 44a133068..dc342eeed 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java
@@ -26,12 +26,11 @@ import com.att.research.xacml.api.pap.PDPPolicy;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
-import java.io.PrintWriter;
-import java.net.URI;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -45,9 +44,11 @@ import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
+
import javax.script.SimpleBindings;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
import org.json.JSONObject;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
@@ -57,7 +58,7 @@ import org.onap.policy.rest.adapter.AutoPushTabAdapter;
import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.PolicyEntity;
import org.onap.policy.rest.jpa.PolicyVersion;
-import org.onap.policy.rest.util.PDPPolicyContainer;
+import org.onap.policy.rest.util.PdpPolicyContainer;
import org.onap.policy.utils.PolicyUtils;
import org.onap.policy.xacml.api.XACMLErrorConstants;
import org.onap.policy.xacml.api.pap.OnapPDPGroup;
@@ -78,13 +79,12 @@ import org.springframework.web.servlet.ModelAndView;
public class AutoPushController extends RestrictedBaseController {
private static final Logger logger = FlexLogger.getLogger(AutoPushController.class);
- private static final String UTF8 = "UTF-8";
@Autowired
CommonClassDao commonClassDao;
private PDPGroupContainer container;
- private PDPPolicyContainer policyContainer;
+ private PdpPolicyContainer policyContainer;
private PolicyController policyController;
protected List<OnapPDPGroup> groups = Collections.synchronizedList(new ArrayList<>());
@@ -96,6 +96,9 @@ public class AutoPushController extends RestrictedBaseController {
this.policyController = policyController;
}
+ /**
+ * refreshGroups.
+ */
public synchronized void refreshGroups() {
synchronized (this.groups) {
this.groups.clear();
@@ -114,7 +117,22 @@ public class AutoPushController extends RestrictedBaseController {
return policyController != null ? getPolicyController() : new PolicyController();
}
- @RequestMapping(value = {"/get_AutoPushPoliciesContainerData"}, method = {RequestMethod.GET},
+ private Set<String> addAllScopes(Roles userRole, Set<String> scopes) {
+ if (userRole.getScope() != null) {
+ scopes.addAll(Stream.of(userRole.getScope().split(",")).collect(Collectors.toSet()));
+ }
+ return scopes;
+ }
+
+ /**
+ * getPolicyGroupContainerData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/get_AutoPushPoliciesContainerData"},
+ method = {RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void getPolicyGroupContainerData(HttpServletRequest request, HttpServletResponse response) {
try {
@@ -130,8 +148,9 @@ public class AutoPushController extends RestrictedBaseController {
for (Object role : userRoles) {
Roles userRole = (Roles) role;
roles.add(userRole.getRole());
- scopes.addAll(Stream.of(userRole.getScope().split(",")).collect(Collectors.toSet()));
+ addAllScopes(userRole, scopes);
}
+
if (roles.contains("super-admin") || roles.contains("super-editor") || roles.contains("super-guest")) {
data = commonClassDao.getData(PolicyVersion.class);
} else {
@@ -156,18 +175,30 @@ public class AutoPushController extends RestrictedBaseController {
ObjectMapper mapper = new ObjectMapper();
model.put("policydatas", mapper.writeValueAsString(data));
JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(msg).toString());
} catch (Exception e) {
logger.error("Exception Occurred" + e);
}
}
+ /**
+ * pushPolicyToPDPGroup.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ * @return ModelAndView
+ * @throws IOException IOException
+ */
@RequestMapping(value = {"/auto_Push/PushPolicyToPDP.htm"}, method = {RequestMethod.POST})
public ModelAndView pushPolicyToPDPGroup(HttpServletRequest request, HttpServletResponse response)
throws IOException {
try {
- ArrayList<Object> selectedPDPS = new ArrayList<>();
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ //
+ //
+ //
+ ArrayList<Object> selectedPdps = new ArrayList<>();
ArrayList<String> selectedPoliciesInUI = new ArrayList<>();
PolicyController controller = getPolicyControllerInstance();
this.groups.addAll(controller.getPapEngine().getOnapPDPGroups());
@@ -178,17 +209,17 @@ public class AutoPushController extends RestrictedBaseController {
String userId = UserUtils.getUserSession(request).getOrgUserId();
logger.info(
- "****************************************Logging UserID while Pushing Policy to PDP Group*****************************************");
+ "**********************Logging UserID while Pushing Policy to PDP Group***********************");
logger.info("UserId: " + userId + "Push Policy Data: " + root.get("pushTabData").toString());
logger.info(
- "***********************************************************************************************************************************");
+ "**********************************************************************************************");
AutoPushTabAdapter adapter = mapper.readValue(root.get("pushTabData").toString(), AutoPushTabAdapter.class);
for (Object pdpGroupId : adapter.getPdpDatas()) {
- LinkedHashMap<?, ?> selectedPDP = (LinkedHashMap<?, ?>) pdpGroupId;
+ LinkedHashMap<?, ?> selectedPdp = (LinkedHashMap<?, ?>) pdpGroupId;
for (OnapPDPGroup pdpGroup : this.groups) {
- if (pdpGroup.getId().equals(selectedPDP.get("id"))) {
- selectedPDPS.add(pdpGroup);
+ if (pdpGroup.getId().equals(selectedPdp.get("id"))) {
+ selectedPdps.add(pdpGroup);
}
}
}
@@ -200,7 +231,7 @@ public class AutoPushController extends RestrictedBaseController {
selectedPoliciesInUI.add(policyName);
}
- for (Object pdpDestinationGroupId : selectedPDPS) {
+ for (Object pdpDestinationGroupId : selectedPdps) {
Set<PDPPolicy> currentPoliciesInGroup = new HashSet<>();
Set<PDPPolicy> selectedPolicies = new HashSet<>();
for (String policyId : selectedPoliciesInUI) {
@@ -246,10 +277,9 @@ public class AutoPushController extends RestrictedBaseController {
BufferedWriter bw = new BufferedWriter(new FileWriter(temp));
bw.write(policyEntity.getPolicyData());
bw.close();
- URI selectedURI = temp.toURI();
try {
// Create the policy
- selectedPolicy = new StdPDPPolicy(name, true, id, selectedURI);
+ selectedPolicy = new StdPDPPolicy(name, true, id, temp.toURI());
} catch (IOException e) {
logger.error("Unable to create policy '" + name + "': " + e.getMessage(), e);
}
@@ -263,7 +293,7 @@ public class AutoPushController extends RestrictedBaseController {
}
// copy policy to PAP
try {
- controller.getPapEngine().copyPolicy(selectedPolicy, (StdPDPGroup) pdpDestinationGroupId);
+ controller.getPapEngine().copyPolicy(selectedPolicy, (StdPDPGroup) pdpDestinationGroupId, userId);
} catch (PAPException e) {
logger.error("Exception Occured" + e);
return null;
@@ -307,53 +337,47 @@ public class AutoPushController extends RestrictedBaseController {
currentPoliciesInGroup.addAll(selectedPolicies);
updatedGroupObject.setPolicies(currentPoliciesInGroup);
this.container.updateGroup(updatedGroupObject, userId);
-
- response.setCharacterEncoding(UTF8);
- response.setContentType("application / json");
- request.setCharacterEncoding(UTF8);
-
- PrintWriter out = response.getWriter();
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
refreshGroups();
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
- JSONObject j = new JSONObject(msg);
- out.write(j.toString());
- //
- // Why is this here? This defeats the purpose of the loop??
- // Sonar says to remove it or make it conditional
- //
- return null;
+ response.getWriter().write(new JSONObject(
+ new JsonMessage(mapper.writeValueAsString(groups))).toString());
}
} catch (Exception e) {
- response.setCharacterEncoding(UTF8);
- request.setCharacterEncoding(UTF8);
- PrintWriter out = response.getWriter();
logger.error(e);
- out.write(PolicyUtils.CATCH_EXCEPTION);
+ response.getWriter().write(PolicyUtils.CATCH_EXCEPTION);
}
return null;
}
+ /**
+ * removePDPGroup.
+ */
@SuppressWarnings("unchecked")
@RequestMapping(value = {"/auto_Push/remove_GroupPolicies.htm"}, method = {RequestMethod.POST})
public ModelAndView removePDPGroup(HttpServletRequest request, HttpServletResponse response) throws IOException {
try {
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ //
+ //
+ //
PolicyController controller = getPolicyControllerInstance();
this.container = new PDPGroupContainer(controller.getPapEngine());
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
JsonNode root = mapper.readTree(request.getReader());
- StdPDPGroup group = mapper.readValue(root.get("activePdpGroup").toString(), StdPDPGroup.class);
- JsonNode removePolicyData = root.get("data");
+ final StdPDPGroup group = mapper.readValue(root.get("activePdpGroup").toString(), StdPDPGroup.class);
+ final JsonNode removePolicyData = root.get("data");
String userId = UserUtils.getUserSession(request).getOrgUserId();
logger.info(
- "****************************************Logging UserID while Removing Policy from PDP Group*****************************************");
+ "**********************Logging UserID while Removing Policy from PDP Group*********************");
logger.info("UserId: " + userId + "PDP Group Data: " + root.get("activePdpGroup").toString()
+ "Remove Policy Data: " + root.get("data"));
logger.info(
- "***********************************************************************************************************************************");
+ "**********************************************************************************************");
- policyContainer = new PDPPolicyContainer(group);
+ policyContainer = new PdpPolicyContainer(group);
if (removePolicyData.size() > 0) {
IntStream.range(0, removePolicyData.size()).mapToObj(i -> removePolicyData.get(i).toString())
.forEach(polData -> this.policyContainer.removeItem(polData));
@@ -366,27 +390,16 @@ public class AutoPushController extends RestrictedBaseController {
updatedGroupObject.setPipConfigs(group.getPipConfigs());
updatedGroupObject.setStatus(group.getStatus());
updatedGroupObject.setOperation("delete");
- this.container.updateGroup(updatedGroupObject);
+ this.container.updateGroup(updatedGroupObject, userId);
}
- response.setCharacterEncoding(UTF8);
- response.setContentType("application / json");
- request.setCharacterEncoding(UTF8);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
- PrintWriter out = response.getWriter();
refreshGroups();
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
- JSONObject j = new JSONObject(msg);
-
- out.write(j.toString());
-
- return null;
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString());
} catch (Exception e) {
- response.setCharacterEncoding(UTF8);
- request.setCharacterEncoding(UTF8);
- PrintWriter out = response.getWriter();
logger.error(e);
- out.write(PolicyUtils.CATCH_EXCEPTION);
+ response.getWriter().write(PolicyUtils.CATCH_EXCEPTION);
}
return null;
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java
index 8c14048c4..143d675bf 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
* Modified Copyright (C) 2018 Samsung Electronics Co., Ltd.
* Modifications Copyright (C) 2019 Bell Canada
* ================================================================================
@@ -22,7 +22,10 @@
package org.onap.policy.controller;
-import java.io.PrintWriter;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -36,20 +39,32 @@ import java.util.Objects;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-
import java.util.stream.Collectors;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.bind.JAXBElement;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+
import org.apache.commons.collections.CollectionUtils;
import org.json.JSONObject;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
import org.onap.policy.rest.dao.CommonClassDao;
-import org.onap.policy.rest.jpa.BRMSParamTemplate;
+import org.onap.policy.rest.jpa.BrmsParamTemplate;
import org.onap.policy.rest.jpa.PolicyEntity;
+import org.onap.policy.utils.PolicyUtils;
import org.onap.policy.xacml.api.XACMLErrorConstants;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.springframework.beans.factory.annotation.Autowired;
@@ -57,21 +72,6 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
-
@Controller
@RequestMapping("/")
public class CreateBRMSParamController extends RestrictedBaseController {
@@ -104,8 +104,13 @@ public class CreateBRMSParamController extends RestrictedBaseController {
private static String brmsTemplateVlaue = "<$%BRMSParamTemplate=";
private static String string = "String";
-
- @RequestMapping(value = {"/policyController/getBRMSTemplateData.htm"}, method = { RequestMethod.POST})
+ /**
+ * getBRMSParamPolicyRuleData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(value = {"/policyController/getBRMSTemplateData.htm"}, method = {RequestMethod.POST})
public void getBRMSParamPolicyRuleData(HttpServletRequest request, HttpServletResponse response) {
try {
dynamicLayoutMap = new HashMap<>();
@@ -118,20 +123,17 @@ public class CreateBRMSParamController extends RestrictedBaseController {
response.setContentType(PolicyController.getContenttype());
request.setCharacterEncoding(PolicyController.getCharacterencoding());
- PrintWriter out = response.getWriter();
- String responseString = mapper.writeValueAsString(dynamicLayoutMap);
- JSONObject j = new JSONObject("{policyData: " + responseString + "}");
- out.write(j.toString());
+ response.getWriter().write(new JSONObject("{policyData: " + mapper.writeValueAsString(dynamicLayoutMap)
+ + "}").toString());
} catch (Exception e) {
policyLogger.error("Exception Occured while getting BRMS Rule data", e);
}
}
private String findRule(String ruleTemplate) {
- List<Object> datas = commonClassDao.getDataById(BRMSParamTemplate.class, "ruleName", ruleTemplate);
- if(CollectionUtils.isNotEmpty(datas)){
- BRMSParamTemplate bRMSParamTemplate = (BRMSParamTemplate) datas.get(0);
- return bRMSParamTemplate.getRule();
+ List<Object> datas = commonClassDao.getDataById(BrmsParamTemplate.class, "ruleName", ruleTemplate);
+ if (CollectionUtils.isNotEmpty(datas)) {
+ return ((BrmsParamTemplate) datas.get(0)).getRule();
}
return null;
}
@@ -151,7 +153,7 @@ public class CreateBRMSParamController extends RestrictedBaseController {
private void processRule(String rule) {
StringBuilder params = getParamsBuilderFromRule(rule);
params = new StringBuilder(
- params.toString().replace("declare Params", "").replace("end", "").replaceAll("\\s+", ""));
+ params.toString().replace("declare Params", "").replace("end", "").replaceAll("\\s+", ""));
String[] components = params.toString().split(":");
String caption = "";
for (int i = 0; i < components.length; i++) {
@@ -243,79 +245,85 @@ public class CreateBRMSParamController extends RestrictedBaseController {
dynamicLayoutMap.put(caption, type);
}
- /*
- * When the User Click Edit or View Policy the following method will get invoked for setting the data to PolicyRestAdapter.
- * Which is used to bind the data in GUI
+ /**
+ * prePopulateBRMSParamPolicyData.
+ * When the User Click Edit or View Policy the following method will get invoked for setting the data to
+ * PolicyRestAdapter.
+ * Which is used to bind the data in GUI.
+ *
+ * @param policyAdapter PolicyRestAdapter
+ * @param entity PolicyEntity
*/
public void prePopulateBRMSParamPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
dynamicLayoutMap = new HashMap<>();
- if (policyAdapter.getPolicyData() instanceof PolicyType) {
- PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
- policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- // policy name value is the policy name without any prefix and
- // Extensions.
- String policyNameValue = policyAdapter.getPolicyName()
- .substring(policyAdapter.getPolicyName().indexOf("BRMS_Param_") + 11);
- if (policyLogger.isDebugEnabled()) {
- policyLogger
+ if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+ return;
+ }
+ PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
+ policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
+ // policy name value is the policy name without any prefix and
+ // Extensions.
+ String policyNameValue =
+ policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("BRMS_Param_") + 11);
+ if (policyLogger.isDebugEnabled()) {
+ policyLogger
.debug("Prepopulating form data for BRMS RAW Policy selected:" + policyAdapter.getPolicyName());
- }
- policyAdapter.setPolicyName(policyNameValue);
- String description;
- try {
- description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
- } catch (Exception e) {
- policyLogger.info("Error getting description: " + e);
- description = policy.getDescription();
- }
- policyAdapter.setPolicyDescription(description);
- setDataAdapterFromAdviceExpressions(policy, policyAdapter);
+ }
+ policyAdapter.setPolicyName(policyNameValue);
+ String description;
+ try {
+ description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
+ } catch (Exception e) {
+ policyLogger.info("Error getting description: " + e);
+ description = policy.getDescription();
+ }
+ policyAdapter.setPolicyDescription(description);
+ setDataAdapterFromAdviceExpressions(policy, policyAdapter);
- // Generate Param UI
- try {
- paramUIGenerate(policyAdapter, entity);
- } catch (Exception e) {
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e.getMessage() + e);
- }
+ // Generate Param UI
+ try {
+ paramUiGenerate(policyAdapter, entity);
+ } catch (Exception e) {
+ policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e.getMessage() + e);
+ }
- // Get the target data under policy.
- policyAdapter.setDynamicLayoutMap(dynamicLayoutMap);
- if (policyAdapter.getDynamicLayoutMap().size() > 0) {
- LinkedHashMap<String, String> drlRule = policyAdapter.getDynamicLayoutMap()
- .keySet().stream()
- .collect(Collectors
- .toMap(String::toString, keyValue -> policyAdapter.getDynamicLayoutMap().get(keyValue),
- (a, b) -> b, LinkedHashMap::new));
- policyAdapter.setRuleData(drlRule);
- }
- TargetType target = policy.getTarget();
- if (target != null) {
- setDataToAdapterFromTarget(target, policyAdapter);
- }
+ // Get the target data under policy.
+ policyAdapter.setDynamicLayoutMap(dynamicLayoutMap);
+ if (policyAdapter.getDynamicLayoutMap().size() > 0) {
+ LinkedHashMap<String, String> drlRule = policyAdapter.getDynamicLayoutMap().keySet().stream()
+ .collect(Collectors.toMap(String::toString,
+ keyValue -> policyAdapter.getDynamicLayoutMap().get(keyValue), (a, b) -> b,
+ LinkedHashMap::new));
+ policyAdapter.setRuleData(drlRule);
+ }
+ TargetType target = policy.getTarget();
+ if (target != null) {
+ setDataToAdapterFromTarget(target, policyAdapter);
}
}
private void setDataAdapterFromAdviceExpressions(PolicyType policy, PolicyRestAdapter policyAdapter) {
ArrayList<Object> attributeList = new ArrayList<>();
// Set Attributes.
- AdviceExpressionsType expressionTypes = ((RuleType) policy
- .getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().get(0)).getAdviceExpressions();
+ AdviceExpressionsType expressionTypes =
+ ((RuleType) policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().get(0))
+ .getAdviceExpressions();
for (AdviceExpressionType adviceExpression : expressionTypes.getAdviceExpression()) {
for (AttributeAssignmentExpressionType attributeAssignment : adviceExpression
- .getAttributeAssignmentExpression()) {
+ .getAttributeAssignmentExpression()) {
if (attributeAssignment.getAttributeId().startsWith("key:")) {
Map<String, String> attribute = new HashMap<>();
String key = attributeAssignment.getAttributeId().replace("key:", "");
attribute.put("key", key);
@SuppressWarnings("unchecked")
- JAXBElement<AttributeValueType> attributeValue = (JAXBElement<AttributeValueType>) attributeAssignment
- .getExpression();
+ JAXBElement<AttributeValueType> attributeValue =
+ (JAXBElement<AttributeValueType>) attributeAssignment.getExpression();
String value = (String) attributeValue.getValue().getContent().get(0);
attribute.put("value", value);
attributeList.add(attribute);
} else if (attributeAssignment.getAttributeId().startsWith("dependencies:")) {
- ArrayList<String> dependencies = new ArrayList<>(
- Arrays.asList(attributeAssignment.getAttributeId().replace("dependencies:", "").split(",")));
+ ArrayList<String> dependencies = new ArrayList<>(Arrays
+ .asList(attributeAssignment.getAttributeId().replace("dependencies:", "").split(",")));
dependencies.remove("");
policyAdapter.setBrmsDependency(dependencies);
} else if (attributeAssignment.getAttributeId().startsWith("controller:")) {
@@ -328,14 +336,11 @@ public class CreateBRMSParamController extends RestrictedBaseController {
private void setDataToAdapterFromTarget(TargetType target, PolicyRestAdapter policyAdapter) {
// Under target we have AnyOFType
- List<AnyOfType> anyOfList = target.getAnyOf();
- if (anyOfList == null) {
+ if (target.getAnyOf() == null) {
return;
}
- anyOfList.stream().map(AnyOfType::getAllOf)
- .filter(Objects::nonNull)
- .flatMap(Collection::stream)
- .forEach(allOf -> setDataToAdapterFromMatchList(allOf.getMatch(), policyAdapter));
+ target.getAnyOf().stream().map(AnyOfType::getAllOf).filter(Objects::nonNull).flatMap(Collection::stream)
+ .forEach(allOf -> setDataToAdapterFromMatchList(allOf.getMatch(), policyAdapter));
}
private void setDataToAdapterFromMatchList(List<MatchType> matchList, PolicyRestAdapter policyAdapter) {
@@ -351,25 +356,12 @@ public class CreateBRMSParamController extends RestrictedBaseController {
String value = (String) attributeValue.getContent().get(0);
AttributeDesignatorType designator = match.getAttributeDesignator();
String attributeId = designator.getAttributeId();
- if ("RiskType".equals(attributeId)) {
- policyAdapter.setRiskType(value);
- }
- if ("RiskLevel".equals(attributeId)) {
- policyAdapter.setRiskLevel(value);
- }
- if ("guard".equals(attributeId)) {
- policyAdapter.setGuard(value);
- }
- if ("TTLDate".equals(attributeId) && !value.contains("NA")) {
- PolicyController controller = new PolicyController();
- String newDate = controller.convertDate(value);
- policyAdapter.setTtlDate(newDate);
- }
+ policyAdapter.setupUsingAttribute(attributeId, value);
}
}
// This method generates the UI from rule configuration
- private void paramUIGenerate(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
+ private void paramUiGenerate(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
String data = entity.getConfigurationData().getConfigBody();
if (data == null) {
return;
@@ -390,8 +382,8 @@ public class CreateBRMSParamController extends RestrictedBaseController {
String value = line.substring(line.indexOf("<%$"), line.indexOf("$%>"));
value = value.replaceAll("<%\\$Values=", "");
Arrays.stream(value.split(":\\|:")).map(keyValue -> keyValue.split(":-:"))
- .filter(pair -> pair.length > 0)
- .forEach(pair -> dynamicLayoutMap.put(pair[0], (pair.length > 1) ? pair[1] : ""));
+ .filter(pair -> pair.length > 0)
+ .forEach(pair -> dynamicLayoutMap.put(pair[0], (pair.length > 1) ? pair[1] : ""));
return;
}
if (line.startsWith("/*")) {
@@ -429,32 +421,26 @@ public class CreateBRMSParamController extends RestrictedBaseController {
}
}
params = new StringBuilder(params.substring(params.indexOf(".Params\"") + 11));
- params = new StringBuilder(params.toString().replaceAll("\\s+", "")
- .replace("salience1000whenthenParamsparams=newParams();", "")
- .replace("insert(params);end", "")
- .replace("params.set", ""));
+ params = new StringBuilder(
+ params.toString().replaceAll("\\s+", "").replace("salience1000whenthenParamsparams=newParams();", "")
+ .replace("insert(params);end", "").replace("params.set", ""));
updateCaptionToDynamicLayoutMap(params);
}
private void updateCaptionToDynamicLayoutMap(final StringBuilder params) {
String[] components = params.toString().split("\\);");
- if(components.length > 0){
+ if (components.length > 0) {
for (int i = 0; i < components.length; i++) {
String value;
components[i] = components[i] + ")";
- String caption = components[i].substring(0,
- components[i].indexOf('('));
+ String caption = components[i].substring(0, components[i].indexOf('('));
caption = caption.substring(0, 1).toLowerCase() + caption.substring(1);
if (components[i].contains("(\"")) {
- value = components[i]
- .substring(components[i].indexOf("(\""),
- components[i].indexOf("\")"))
- .replace("(\"", "").replace("\")", "");
+ value = components[i].substring(components[i].indexOf("(\""), components[i].indexOf("\")"))
+ .replace("(\"", "").replace("\")", "");
} else {
- value = components[i]
- .substring(components[i].indexOf('('),
- components[i].indexOf(')'))
- .replace("(", "").replace(")", "");
+ value = components[i].substring(components[i].indexOf('('), components[i].indexOf(')'))
+ .replace("(", "").replace(")", "");
}
dynamicLayoutMap.put(caption, value);
}
@@ -473,8 +459,7 @@ public class CreateBRMSParamController extends RestrictedBaseController {
private String processMultiLineFullComment(String line) {
try {
- line = splitMultiLineStartComment(line)
- + splitMultiLineEndComment(line);
+ line = splitMultiLineStartComment(line) + splitMultiLineEndComment(line);
} catch (Exception e) {
policyLogger.info("Just for Logging" + e);
line = splitMultiLineStartComment(line);
@@ -482,28 +467,33 @@ public class CreateBRMSParamController extends RestrictedBaseController {
return line;
}
- // set View Rule
+ /**
+ * setViewRule.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
@SuppressWarnings("unchecked")
- @RequestMapping(value = {"/policyController/ViewBRMSParamPolicyRule.htm"}, method = { RequestMethod.POST})
+ @RequestMapping(value = {"/policyController/ViewBRMSParamPolicyRule.htm"}, method = {RequestMethod.POST})
public void setViewRule(HttpServletRequest request, HttpServletResponse response) {
try {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
JsonNode root = mapper.readTree(request.getReader());
- PolicyRestAdapter policyData = mapper
- .readValue(root.get(PolicyController.getPolicydata()).get("policy").toString(),
- PolicyRestAdapter.class);
+ PolicyRestAdapter policyData = mapper.readValue(
+ root.get(PolicyController.getPolicydata()).get("policy").toString(), PolicyRestAdapter.class);
policyData.setDomainDir(
- root.get(PolicyController.getPolicydata()).get("model").get("name").toString().replace("\"", ""));
+ root.get(PolicyController.getPolicydata()).get("model").get("name").toString().replace("\"", ""));
if (root.get(PolicyController.getPolicydata()).get("model").get("type").toString().replace("\"", "")
- .equals(PolicyController.getFile())) {
+ .equals(PolicyController.getFile())) {
policyData.setEditPolicy(true);
}
String body = findRule(policyData.getRuleName()) + "\n";
StringBuilder generatedMetadata = new StringBuilder().append(
- "/* Autogenerated Code Please Don't change/remove this comment section. This is for the UI purpose. \n\t ")
- .append(brmsTemplateVlaue).append(policyData.getRuleName()).append("%$> \n */ \n");
+ "/* Autogenerated Code Please Don't change/remove this comment section. "
+ + "This is for the UI purpose. \n\t ")
+ .append(brmsTemplateVlaue).append(policyData.getRuleName()).append("%$> \n */ \n");
if (policyData.getDynamicLayoutMap().size() > 0) {
generatedMetadata.append("/* <%$Values=");
@@ -518,36 +508,31 @@ public class CreateBRMSParamController extends RestrictedBaseController {
policyLogger.info("Metadata generated with :" + generatedMetadata.toString());
body = generatedMetadata.toString() + body;
// Expand the body.
- Map<String, String> copyMap = new HashMap<>(
- (Map<? extends String, ? extends String>) policyData.getRuleData());
+ Map<String, String> copyMap =
+ new HashMap<>((Map<? extends String, ? extends String>) policyData.getRuleData());
copyMap.put("policyName",
- policyData.getDomainDir().replace("\\", ".") + ".Config_BRMS_Param_" + policyData.getPolicyName());
+ policyData.getDomainDir().replace("\\", ".") + ".Config_BRMS_Param_" + policyData.getPolicyName());
copyMap.put("policyScope", policyData.getDomainDir().replace("\\", "."));
copyMap.put("policyVersion", "1");
- //Finding all the keys in the Map data-structure.
+ // Finding all the keys in the Map data-structure.
Set<String> keySet = copyMap.keySet();
Iterator<String> iterator = keySet.iterator();
- Pattern p;
- Matcher m;
while (iterator.hasNext()) {
- //Converting the first character of the key into a lower case.
+ // Converting the first character of the key into a lower case.
String input = iterator.next();
- String output = Character.toLowerCase(input.charAt(0)) +
- (input.length() > 1 ? input.substring(1) : "");
- //Searching for a pattern in the String using the key.
- p = Pattern.compile("\\$\\{" + output + "\\}");
- m = p.matcher(body);
- //Replacing the value with the inputs provided by the user in the editor.
- body = m.replaceAll(copyMap.get(input));
- }
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
-
- PrintWriter out = response.getWriter();
- String responseString = mapper.writeValueAsString(body);
- JSONObject j = new JSONObject("{policyData: " + responseString + "}");
- out.write(j.toString());
+ String output = Character.toLowerCase(input.charAt(0)) + (input.length() > 1 ? input.substring(1) : "");
+ // Searching for a pattern in the String using the key.
+ Pattern pattern = Pattern.compile("\\$\\{" + output + "\\}");
+ Matcher matcher = pattern.matcher(body);
+ // Replacing the value with the inputs provided by the user in the editor.
+ body = matcher.replaceAll(copyMap.get(input));
+ }
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+
+ response.getWriter().write(new JSONObject("{policyData: " + mapper.writeValueAsString(body)
+ + "}").toString());
} catch (Exception e) {
policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java
index 93ca28190..487165b56 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2019 Bell Canada
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -27,8 +27,8 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import java.util.Objects;
+
import javax.xml.bind.JAXBElement;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType;
@@ -36,7 +36,6 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
@@ -53,74 +52,65 @@ public class CreateBRMSRawController {
protected PolicyRestAdapter policyAdapter = null;
- @SuppressWarnings("unchecked")
+ /**
+ * prePopulateBRMSRawPolicyData.
+ *
+ * @param policyAdapter PolicyRestAdapter
+ * @param entity PolicyEntity
+ */
public void prePopulateBRMSRawPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
- if (policyAdapter.getPolicyData() instanceof PolicyType) {
- PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
- policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
-
- // Set PolicyAdapter name value
- setPolicyAdapterNameValue(policyAdapter);
+ if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+ return;
+ }
+ PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
+ policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- // Set PolicyAdapter description.
- setPolicyAdapterDescription(policyAdapter, policy);
+ // Set PolicyAdapter name value
+ setPolicyAdapterNameValue(policyAdapter);
- // Set PolicyAdapter attributes.
- setPolicyAdapterAttributes(policyAdapter, policy);
+ // Set PolicyAdapter description.
+ setPolicyAdapterDescription(policyAdapter, policy);
- // Set PolicyAdapter configBodyData
- policyAdapter.setConfigBodyData(entity.getConfigurationData().getConfigBody());
+ // Set PolicyAdapter attributes.
+ setPolicyAdapterAttributes(policyAdapter, policy);
- // Get the target data under policy.
- TargetType target = policy.getTarget();
- if (target == null) {
- return;
- }
- // Under target we have AnyOFType
- List<AnyOfType> anyOfList = target.getAnyOf();
- if (anyOfList == null) {
- return;
- }
+ // Set PolicyAdapter configBodyData
+ policyAdapter.setConfigBodyData(entity.getConfigurationData().getConfigBody());
- // Set PolicyAdapter riskType, riskLevel, guard, ttlDate from match attributes
- setPolicyAdapterMatchAttributes(policyAdapter, policy.getTarget().getAnyOf());
+ // Get the target data under policy.
+ TargetType target = policy.getTarget();
+ if (target == null) {
+ return;
+ }
+ // Under target we have AnyOFType
+ List<AnyOfType> anyOfList = target.getAnyOf();
+ if (anyOfList == null) {
+ return;
}
+
+ // Set PolicyAdapter riskType, riskLevel, guard, ttlDate from match attributes
+ setPolicyAdapterMatchAttributes(policyAdapter, policy.getTarget().getAnyOf());
}
private void setPolicyAdapterMatchAttributes(PolicyRestAdapter policyAdapter, List<AnyOfType> anyOfList) {
anyOfList.stream()
- //Extract nonNull list of AllOfType objs from each AnyOfType obj
- .map(AnyOfType::getAllOf).filter(Objects::nonNull)
- .forEach(allOfList ->
- //Extract nonNull list of MatchType objs from each AllOFType obj
- allOfList.stream().map(AllOfType::getMatch).filter(Objects::nonNull)
- .flatMap(Collection::stream)
- .forEach(match -> {
- // Under the match we have attribute value and
- // attributeDesignator. So,finally down to the actual attribute.
- AttributeValueType attributeValue = match.getAttributeValue();
- String value = (String) attributeValue.getContent().get(0);
- AttributeDesignatorType designator = match.getAttributeDesignator();
- String attributeId = designator.getAttributeId();
- if ("RiskType".equals(attributeId)) {
- policyAdapter.setRiskType(value);
- } else if ("RiskLevel".equals(attributeId)) {
- policyAdapter.setRiskLevel(value);
- } else if ("guard".equals(attributeId)) {
- policyAdapter.setGuard(value);
- } else if ("TTLDate".equals(attributeId) && !value.contains("NA")) {
- PolicyController controller = new PolicyController();
- String newDate = controller.convertDate(value);
- policyAdapter.setTtlDate(newDate);
- }
- }));
+ // Extract nonNull list of AllOfType objs from each AnyOfType obj
+ .map(AnyOfType::getAllOf).filter(Objects::nonNull).forEach(allOfList ->
+ // Extract nonNull list of MatchType objs from each AllOFType obj
+ allOfList.stream().map(AllOfType::getMatch).filter(Objects::nonNull).flatMap(Collection::stream)
+ .forEach(match -> {
+ // Under the match we have attribute value and
+ // attributeDesignator. So,finally down to the actual attribute.
+ policyAdapter.setupUsingAttribute(match.getAttributeDesignator().getAttributeId(),
+ (String) match.getAttributeValue().getContent().get(0));
+ }));
}
private void setPolicyAdapterNameValue(final PolicyRestAdapter policyAdapter) {
// policy name value is the policy name without any prefix and extensions.
- String policyNameValue = policyAdapter.getPolicyName()
- .substring(policyAdapter.getPolicyName().indexOf("BRMS_Raw_") + 9);
+ String policyNameValue =
+ policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("BRMS_Raw_") + 9);
if (logger.isDebugEnabled()) {
logger.debug("Prepopulating form data for BRMS RAW Policy selected:" + policyAdapter.getPolicyName());
}
@@ -138,30 +128,31 @@ public class CreateBRMSRawController {
policyAdapter.setPolicyDescription(description);
}
+ @SuppressWarnings("unchecked")
private void setPolicyAdapterAttributes(final PolicyRestAdapter policyAdapter, final PolicyType policy) {
ArrayList<Object> attributeList = new ArrayList<>();
- AdviceExpressionsType expressionTypes = ((RuleType) policy
- .getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().get(0)).getAdviceExpressions();
+ AdviceExpressionsType expressionTypes =
+ ((RuleType) policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().get(0))
+ .getAdviceExpressions();
for (AdviceExpressionType adviceExpression : expressionTypes.getAdviceExpression()) {
for (AttributeAssignmentExpressionType attributeAssignment : adviceExpression
- .getAttributeAssignmentExpression()) {
+ .getAttributeAssignmentExpression()) {
if (attributeAssignment.getAttributeId().startsWith("key:")) {
Map<String, String> attribute = new HashMap<>();
String key = attributeAssignment.getAttributeId().replace("key:", "");
attribute.put("key", key);
- JAXBElement<AttributeValueType> attributeValue = (JAXBElement<AttributeValueType>) attributeAssignment
- .getExpression();
+ JAXBElement<AttributeValueType> attributeValue =
+ (JAXBElement<AttributeValueType>) attributeAssignment.getExpression();
String value = (String) attributeValue.getValue().getContent().get(0);
attribute.put("value", value);
attributeList.add(attribute);
} else if (attributeAssignment.getAttributeId().startsWith("dependencies:")) {
ArrayList<String> dependencies = new ArrayList<>(Arrays
- .asList(attributeAssignment.getAttributeId().replace("dependencies:", "").split(",")));
+ .asList(attributeAssignment.getAttributeId().replace("dependencies:", "").split(",")));
dependencies.remove("");
policyAdapter.setBrmsDependency(dependencies);
} else if (attributeAssignment.getAttributeId().startsWith("controller:")) {
- policyAdapter
- .setBrmsController(attributeAssignment.getAttributeId().replace("controller:", ""));
+ policyAdapter.setBrmsController(attributeAssignment.getAttributeId().replace("controller:", ""));
}
}
policyAdapter.setAttributes(attributeList);
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopFaultController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopFaultController.java
index 4c3249311..58765ded1 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopFaultController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopFaultController.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2019 Bell Canada
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,6 +21,10 @@
package org.onap.policy.controller;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
@@ -29,9 +33,15 @@ import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-
import java.util.Objects;
import java.util.stream.IntStream;
+import lombok.Getter;
+import lombok.Setter;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.rest.adapter.ClosedLoopFaultBody;
@@ -40,26 +50,14 @@ import org.onap.policy.rest.adapter.ClosedLoopFaultTriggerUISignatures;
import org.onap.policy.rest.adapter.ClosedLoopSignatures;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
import org.onap.policy.rest.dao.CommonClassDao;
-import org.onap.policy.rest.jpa.OnapName;
import org.onap.policy.rest.jpa.PolicyEntity;
import org.onap.policy.rest.jpa.VarbindDictionary;
+import org.onap.policy.utils.PolicyUtils;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectWriter;
-
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
-
@Controller
@RequestMapping("/")
public class CreateClosedLoopFaultController extends RestrictedBaseController {
@@ -74,7 +72,6 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
private static final String CONNECT_TRAP_2 = "connectTrap2";
private static final String TRAP_COUNT_2 = "trapCount2";
private static final String TRIGGER_1 = "trigger1";
- private static final String ENC_UTF_8 = "UTF-8";
private static final String TRIGGER_2 = "trigger2";
protected PolicyRestAdapter policyAdapter = null;
@@ -90,19 +87,25 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
// Empty constructor
}
+ /**
+ * setDataToPolicyRestAdapter.
+ *
+ * @param policyData PolicyRestAdapter
+ * @param root JsonNode
+ * @return PolicyRestAdapter
+ */
public PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter policyData, JsonNode root) {
try {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- ClosedLoopFaultTrapDatas trapDatas = mapper
- .readValue(root.get("trapData").toString(), ClosedLoopFaultTrapDatas.class);
- ClosedLoopFaultTrapDatas faultDatas = mapper
- .readValue(root.get("faultData").toString(), ClosedLoopFaultTrapDatas.class);
- ClosedLoopGridJSONData policyJsonData = mapper
- .readValue(root.get("policyData").get("policy").toString(), ClosedLoopGridJSONData.class);
- ClosedLoopFaultBody jsonBody = mapper
- .readValue(root.get("policyData").get("policy").get("jsonBodyData").toString(),
- ClosedLoopFaultBody.class);
+ final ClosedLoopFaultTrapDatas trapDatas =
+ mapper.readValue(root.get("trapData").toString(), ClosedLoopFaultTrapDatas.class);
+ final ClosedLoopFaultTrapDatas faultDatas =
+ mapper.readValue(root.get("faultData").toString(), ClosedLoopFaultTrapDatas.class);
+ final ClosedLoopGridJsonData policyJsonData =
+ mapper.readValue(root.get("policyData").get("policy").toString(), ClosedLoopGridJsonData.class);
+ final ClosedLoopFaultBody jsonBody = mapper.readValue(
+ root.get("policyData").get("policy").get("jsonBodyData").toString(), ClosedLoopFaultBody.class);
// Build trapSignatureDatas list from faultData
List<Object> trapSignatureDatas = new ArrayList<>();
@@ -118,10 +121,10 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
triggerSignatures.setTrapMaxAge(Integer.parseInt(policyData.getTrapMaxAge()));
ClosedLoopFaultTriggerUISignatures uiTriggerSignatures = new ClosedLoopFaultTriggerUISignatures();
if (!trapSignatureDatas.isEmpty()) {
- uiTriggerSignatures.setSignatures(getUITriggerSignature(TRAP, trapSignatureDatas.get(0)));
+ uiTriggerSignatures.setSignatures(getUiTriggerSignature(TRAP, trapSignatureDatas.get(0)));
if (!policyJsonData.getConnecttriggerSignatures().isEmpty()) {
uiTriggerSignatures
- .setConnectSignatures(getUIConnectTraps(policyJsonData.getConnecttriggerSignatures()));
+ .setConnectSignatures(getUiConnectTraps(policyJsonData.getConnecttriggerSignatures()));
}
}
jsonBody.setTriggerSignaturesUsedForUI(uiTriggerSignatures);
@@ -144,19 +147,17 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
faultSignatures.setTimeWindow(Integer.parseInt(policyData.getVerificationclearTimeOut()));
ClosedLoopFaultTriggerUISignatures uifaultSignatures = new ClosedLoopFaultTriggerUISignatures();
if (!faultSignatureDatas.isEmpty()) {
- uifaultSignatures.setSignatures(getUITriggerSignature(FAULT, faultSignatureDatas.get(0)));
+ uifaultSignatures.setSignatures(getUiTriggerSignature(FAULT, faultSignatureDatas.get(0)));
if (!policyJsonData.getConnectVerificationSignatures().isEmpty()) {
- uifaultSignatures
- .setConnectSignatures(getUIConnectTraps(policyJsonData.getConnectVerificationSignatures()));
+ uifaultSignatures.setConnectSignatures(
+ getUiConnectTraps(policyJsonData.getConnectVerificationSignatures()));
}
}
jsonBody.setVerificationSignaturesUsedForUI(uifaultSignatures);
jsonBody.setVerificationTimeWindowUsedForUI(Integer.parseInt(policyData.getVerificationclearTimeOut()));
}
jsonBody.setVerificationSignatures(faultSignatures);
- ObjectWriter om = new ObjectMapper().writer();
- String json = om.writeValueAsString(jsonBody);
- policyData.setJsonBody(json);
+ policyData.setJsonBody(new ObjectMapper().writer().writeValueAsString(jsonBody));
} catch (Exception e) {
policyLogger.error("Exception Occured while setting data to Adapter", e);
@@ -165,13 +166,14 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
}
// TODO: Can getResultBody() and getFaultBody() be merged?
- private String getResultBody(final ClosedLoopGridJSONData policyJsonData, final List<Object> trapSignatureDatas) {
+ private String getResultBody(final ClosedLoopGridJsonData policyJsonData, final List<Object> trapSignatureDatas) {
StringBuilder resultBody = new StringBuilder();
if (!policyJsonData.getConnecttriggerSignatures().isEmpty()) {
resultBody.append("(");
IntStream.range(0, policyJsonData.getConnecttriggerSignatures().size())
- .mapToObj(i -> connectTriggerSignature(i, policyJsonData.getConnecttriggerSignatures(),
- trapSignatureDatas.get(0))).forEach(resultBody::append);
+ .mapToObj(i -> connectTriggerSignature(i, policyJsonData.getConnecttriggerSignatures(),
+ trapSignatureDatas.get(0)))
+ .forEach(resultBody::append);
resultBody.append(resultBody).append(")");
} else {
if (!trapSignatureDatas.isEmpty()) {
@@ -181,13 +183,14 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
return resultBody.toString();
}
- private String getFaultBody(final ClosedLoopGridJSONData policyJsonData, final List<Object> faultSignatureDatas) {
+ private String getFaultBody(final ClosedLoopGridJsonData policyJsonData, final List<Object> faultSignatureDatas) {
StringBuilder faultBody = new StringBuilder();
if (!policyJsonData.getConnectVerificationSignatures().isEmpty()) {
faultBody.append("(");
IntStream.range(0, policyJsonData.getConnectVerificationSignatures().size())
- .mapToObj(i -> connectTriggerSignature(i, policyJsonData.getConnectVerificationSignatures(),
- faultSignatureDatas.get(0))).forEach(faultBody::append);
+ .mapToObj(i -> connectTriggerSignature(i, policyJsonData.getConnectVerificationSignatures(),
+ faultSignatureDatas.get(0)))
+ .forEach(faultBody::append);
faultBody.append(")");
} else {
if (!faultSignatureDatas.isEmpty()) {
@@ -237,7 +240,7 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
}
private void appendTrapToResultBody(List<Object> triggerSignatures, Object object, StringBuilder resultBody,
- Map<String, String> connectTraps, String connectTrapName) {
+ Map<String, String> connectTraps, String connectTrapName) {
String connectTrap = connectTraps.get(connectTrapName);
if (connectTrap.startsWith(TRAP) || connectTrap.startsWith(FAULT)) {
String trapBody = callTrap(connectTrap, object);
@@ -339,16 +342,18 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
attributesStr = attributesStr + "(" + readAttributes(objectList, iy) + ")";
} catch (NumberFormatException e) {
try {
- trap1Attrib = getVarbindOID(trap1Attrib);
- attributesStr = attributesStr + "(" + URLEncoder.encode(trap1Attrib, ENC_UTF_8) + ")";
+ trap1Attrib = getVarbindOid(trap1Attrib);
+ attributesStr = attributesStr + "(" + URLEncoder.encode(trap1Attrib,
+ PolicyUtils.CHARACTER_ENCODING) + ")";
} catch (UnsupportedEncodingException e1) {
policyLogger.error("Caused Exception while Encoding Varbind Dictionary Values", e1);
}
}
} else {
try {
- trap1Attrib = getVarbindOID(trap1Attrib);
- attributesStr = attributesStr + "(" + URLEncoder.encode(trap1Attrib, ENC_UTF_8) + ")";
+ trap1Attrib = getVarbindOid(trap1Attrib);
+ attributesStr = attributesStr + "(" + URLEncoder.encode(trap1Attrib,
+ PolicyUtils.CHARACTER_ENCODING) + ")";
} catch (UnsupportedEncodingException e) {
policyLogger.error("Caused Exception while Encoding Varbind Dictionary Values", e);
}
@@ -356,21 +361,21 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
return attributesStr;
}
- private String getVarbindOID(String attrib) {
+ private String getVarbindOid(String attrib) {
VarbindDictionary varbindId;
try {
- varbindId = (VarbindDictionary) commonclassdao
- .getEntityItem(VarbindDictionary.class, "varbindName", attrib);
- return varbindId.getVarbindOID();
+ varbindId =
+ (VarbindDictionary) commonclassdao.getEntityItem(VarbindDictionary.class, "varbindName", attrib);
+ return varbindId.getVarbindOid();
} catch (Exception e) {
policyLogger.error("Error during retrieving varbindName " + attrib, e);
return attrib;
}
}
- //connect traps data set to JSON Body as String
+ // connect traps data set to JSON Body as String
@SuppressWarnings({"unchecked", "rawtypes"})
- private String getUIConnectTraps(List<Object> connectTrapSignatures) {
+ private String getUiConnectTraps(List<Object> connectTrapSignatures) {
StringBuilder resultBody = new StringBuilder();
String connectMainBody = "";
for (Object connectTrapSignature : connectTrapSignatures) {
@@ -401,9 +406,8 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
if (((LinkedHashMap) connectTraps).get(TRAP_COUNT_2) != null) {
trapCount2 = ((LinkedHashMap) connectTraps).get(TRAP_COUNT_2).toString();
}
- connectBody =
- notBox + "@!" + connectTrap1 + "@!" + trapCount1 + "@!" + operatorBox + "@!" + connectTrap2 + "@!"
- + trapCount2 + "#!?!";
+ connectBody = notBox + "@!" + connectTrap1 + "@!" + trapCount1 + "@!" + operatorBox + "@!"
+ + connectTrap2 + "@!" + trapCount2 + "#!?!";
}
resultBody.append(connectBody);
}
@@ -412,7 +416,7 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
}
// get Trigger signature from JSON body
- private String getUITriggerSignature(String trap, Object object2) {
+ private String getUiTriggerSignature(String trap, Object object2) {
ClosedLoopFaultTrapDatas trapDatas = (ClosedLoopFaultTrapDatas) object2;
List<Object> attributeList = new ArrayList<>();
// Read the Trap
@@ -473,89 +477,69 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
return triggerBody.toString();
}
+ /**
+ * prePopulateClosedLoopFaultPolicyData.
+ *
+ * @param policyAdapter PolicyRestAdapter
+ * @param entity PolicyEntity
+ */
public void prePopulateClosedLoopFaultPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
- if (policyAdapter.getPolicyData() instanceof PolicyType) {
- PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
-
- // Set PolicyAdapter policyName, description
- setPolicyAdapterPolicyNameAndDescription(policyAdapter, policy);
-
- // Set PolicyAdapter JsonBodyData, timeout settings
- setClosedLoopJSONFile(policyAdapter, entity);
+ if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+ return;
+ }
+ PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
- // Get the target data under policy.
- TargetType target = policy.getTarget();
- if (target == null) {
- return;
- }
+ // Set PolicyAdapter policyName, description
+ setPolicyAdapterPolicyNameAndDescription(policyAdapter, policy);
- // Under target we have AnyOFType
- List<AnyOfType> anyOfList = target.getAnyOf();
- if (anyOfList == null) {
- return;
- }
+ // Set PolicyAdapter JsonBodyData, timeout settings
+ setClosedLoopJsonFile(policyAdapter, entity);
- // Set PolicyAdapter OnapNameField, riskType, riskLevel, guard, ttlDate from match attributes
- setPolicyAdapterMatchAttributes(policyAdapter, anyOfList);
+ // Get the target data under policy.
+ TargetType target = policy.getTarget();
+ if (target == null) {
+ return;
}
+
+ // Set PolicyAdapter OnapNameField, riskType, riskLevel, guard, ttlDate from match attributes
+ setPolicyAdapterMatchAttributes(policyAdapter, target.getAnyOf());
}
private void setPolicyAdapterMatchAttributes(PolicyRestAdapter policyAdapter, List<AnyOfType> anyOfList) {
anyOfList.stream()
- //Extract nonNull list of AllOfType objs from each AnyOfType obj
- .map(AnyOfType::getAllOf).filter(Objects::nonNull)
- .forEach(allOfList ->
- //Extract nonNull list of MatchType objs from each AllOFType obj
- allOfList.stream().map(AllOfType::getMatch).filter(Objects::nonNull)
- .flatMap(Collection::stream)
- .forEach(match -> {
- // Under the match we have attribute value and
- // attributeDesignator. So,finally down to the actual attribute.
- AttributeValueType attributeValue = match.getAttributeValue();
- String value = (String) attributeValue.getContent().get(0);
- AttributeDesignatorType designator = match.getAttributeDesignator();
- String attributeId = designator.getAttributeId();
- // First match in the target is OnapName, so set that value.
- if ("ONAPName".equals(attributeId)) {
- policyAdapter.setOnapName(value);
- OnapName onapName = new OnapName();
- onapName.setOnapName(value);
- policyAdapter.setOnapNameField(onapName);
- } else if ("RiskType".equals(attributeId)) {
- policyAdapter.setRiskType(value);
- } else if ("RiskLevel".equals(attributeId)) {
- policyAdapter.setRiskLevel(value);
- } else if ("guard".equals(attributeId)) {
- policyAdapter.setGuard(value);
- } else if ("TTLDate".equals(attributeId) && !value.contains("NA")) {
- PolicyController controller = new PolicyController();
- String newDate = controller.convertDate(value);
- policyAdapter.setTtlDate(newDate);
- }
- }));
+ // Extract nonNull list of AllOfType objs from each AnyOfType obj
+ .map(AnyOfType::getAllOf).filter(Objects::nonNull).forEach(allOfList ->
+ // Extract nonNull list of MatchType objs from each AllOFType obj
+ allOfList.stream().map(AllOfType::getMatch).filter(Objects::nonNull).flatMap(Collection::stream)
+ .forEach(match -> {
+ // Under the match we have attribute value and
+ // attributeDesignator. So,finally down to the actual attribute.
+ policyAdapter.setupUsingAttribute(match.getAttributeDesignator().getAttributeId(),
+ (String) match.getAttributeValue().getContent().get(0));
+ }));
}
private void setPolicyAdapterPolicyNameAndDescription(PolicyRestAdapter policyAdapter, PolicyType policy) {
policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- String policyNameValue = policyAdapter.getPolicyName()
- .substring(policyAdapter.getPolicyName().indexOf("Fault_") + 6);
+ String policyNameValue =
+ policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("Fault_") + 6);
policyAdapter.setPolicyName(policyNameValue);
String description;
try {
description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
} catch (Exception e) {
policyLogger.error(
- "Error during collecting the description tag info for createClosedLoopFault " + policyNameValue, e);
+ "Error during collecting the description tag info for createClosedLoopFault " + policyNameValue, e);
description = policy.getDescription();
}
policyAdapter.setPolicyDescription(description);
}
- private void setClosedLoopJSONFile(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
- ObjectMapper mapper = new ObjectMapper();
+ private void setClosedLoopJsonFile(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
try {
- ClosedLoopFaultBody closedLoopBody = mapper
- .readValue(entity.getConfigurationData().getConfigBody(), ClosedLoopFaultBody.class);
+ ClosedLoopFaultBody closedLoopBody =
+ new ObjectMapper().readValue(entity.getConfigurationData().getConfigBody(),
+ ClosedLoopFaultBody.class);
if ("ACTIVE".equalsIgnoreCase(closedLoopBody.getClosedLoopPolicyStatus())) {
closedLoopBody.setClosedLoopPolicyStatus("Active");
} else {
@@ -570,7 +554,7 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
}
if (closedLoopBody.getVerificationTimeWindowUsedForUI() != null) {
policyAdapter
- .setVerificationclearTimeOut(closedLoopBody.getVerificationTimeWindowUsedForUI().toString());
+ .setVerificationclearTimeOut(closedLoopBody.getVerificationTimeWindowUsedForUI().toString());
}
} catch (Exception e) {
policyLogger.error("Exception Occured" + e);
@@ -578,7 +562,10 @@ public class CreateClosedLoopFaultController extends RestrictedBaseController {
}
}
-class ClosedLoopGridJSONData {
+
+@Getter
+@Setter
+class ClosedLoopGridJsonData {
private String clearTimeOut;
private String trapMaxAge;
@@ -586,44 +573,4 @@ class ClosedLoopGridJSONData {
private List<Object> connecttriggerSignatures;
private List<Object> connectVerificationSignatures;
- public String getClearTimeOut() {
- return clearTimeOut;
- }
-
- public void setClearTimeOut(String clearTimeOut) {
- this.clearTimeOut = clearTimeOut;
- }
-
- public String getTrapMaxAge() {
- return trapMaxAge;
- }
-
- public void setTrapMaxAge(String trapMaxAge) {
- this.trapMaxAge = trapMaxAge;
- }
-
- public String getVerificationclearTimeOut() {
- return verificationclearTimeOut;
- }
-
- public void setVerificationclearTimeOut(String verificationclearTimeOut) {
- this.verificationclearTimeOut = verificationclearTimeOut;
- }
-
-
- public List<Object> getConnecttriggerSignatures() {
- return connecttriggerSignatures;
- }
-
- public void setConnecttriggerSignatures(List<Object> connecttriggerSignatures) {
- this.connecttriggerSignatures = connecttriggerSignatures;
- }
-
- public List<Object> getConnectVerificationSignatures() {
- return connectVerificationSignatures;
- }
-
- public void setConnectVerificationSignatures(List<Object> connectVerificationSignatures) {
- this.connectVerificationSignatures = connectVerificationSignatures;
- }
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopPMController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopPMController.java
index d2b04e024..058542590 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopPMController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateClosedLoopPMController.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2019 Bell Canada
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,23 +21,16 @@
package org.onap.policy.controller;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.List;
-
import java.util.Objects;
+
import javax.json.JsonArray;
import javax.json.JsonObject;
-import org.onap.policy.admin.PolicyManagerServlet;
-import org.onap.policy.common.logging.flexlogger.FlexLogger;
-import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.rest.adapter.ClosedLoopPMBody;
-import org.onap.policy.rest.adapter.PolicyRestAdapter;
-import org.onap.policy.rest.jpa.PolicyEntity;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
@@ -45,6 +38,13 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+import org.onap.policy.admin.PolicyManagerServlet;
+import org.onap.policy.common.logging.flexlogger.FlexLogger;
+import org.onap.policy.common.logging.flexlogger.Logger;
+import org.onap.policy.rest.adapter.ClosedLoopPMBody;
+import org.onap.policy.rest.adapter.PolicyRestAdapter;
+import org.onap.policy.rest.jpa.PolicyEntity;
+
public class CreateClosedLoopPMController {
private static final Logger LOGGER = FlexLogger.getLogger(CreateClosedLoopPMController.class);
@@ -52,38 +52,40 @@ public class CreateClosedLoopPMController {
protected PolicyRestAdapter policyAdapter = null;
+ /**
+ * prePopulateClosedLoopPMPolicyData.
+ *
+ * @param policyAdapter PolicyRestAdapter
+ * @param entity PolicyEntity
+ */
public void prePopulateClosedLoopPMPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
- if (policyAdapter.getPolicyData() instanceof PolicyType) {
- Object policyData = policyAdapter.getPolicyData();
- PolicyType policy = (PolicyType) policyData;
+ if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+ return;
+ }
+ Object policyData = policyAdapter.getPolicyData();
+ PolicyType policy = (PolicyType) policyData;
- // Set oldPolicyFileName to PolicyAdapter
- policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
+ // Set oldPolicyFileName to PolicyAdapter
+ policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- // Set policyNameValue and description to PolicyAdapter
- setPolicyAdapterNameValueAndDescription(policyAdapter, policy);
+ // Set policyNameValue and description to PolicyAdapter
+ setPolicyAdapterNameValueAndDescription(policyAdapter, policy);
- // Set PolicyAdapter JsonBodyData
- setClosedLoopJSONFile(policyAdapter, entity);
+ // Set PolicyAdapter JsonBodyData
+ setClosedLoopJsonFile(policyAdapter, entity);
- // Get the target data under policy.
- TargetType target = policy.getTarget();
- if (target == null) {
- return;
- }
- // Under target we have AnyOFType
- List<AnyOfType> anyOfList = target.getAnyOf();
- if (anyOfList == null) {
- return;
- }
- // Set PolicyAdapter OnapNameField, riskType, riskLevel, guard, ttlDate, ServiceType from match attributes
- setPolicyAdapterMatchAttributes(policyAdapter, anyOfList);
+ // Get the target data under policy.
+ TargetType target = policy.getTarget();
+ if (target == null) {
+ return;
}
+ // Set PolicyAdapter OnapNameField, riskType, riskLevel, guard, ttlDate, ServiceType from match attributes
+ setPolicyAdapterMatchAttributes(policyAdapter, target.getAnyOf());
}
private void setPolicyAdapterNameValueAndDescription(PolicyRestAdapter policyAdapter, PolicyType policy) {
- String policyNameValue = policyAdapter.getPolicyName()
- .substring(policyAdapter.getPolicyName().indexOf("PM_") + 3);
+ String policyNameValue =
+ policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("PM_") + 3);
policyAdapter.setPolicyName(policyNameValue);
String description;
try {
@@ -95,11 +97,10 @@ public class CreateClosedLoopPMController {
policyAdapter.setPolicyDescription(description);
}
- private void setClosedLoopJSONFile(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
- ObjectMapper mapper = new ObjectMapper();
+ private void setClosedLoopJsonFile(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
try {
- ClosedLoopPMBody closedLoopBody = mapper
- .readValue(entity.getConfigurationData().getConfigBody(), ClosedLoopPMBody.class);
+ ClosedLoopPMBody closedLoopBody =
+ new ObjectMapper().readValue(entity.getConfigurationData().getConfigBody(), ClosedLoopPMBody.class);
policyAdapter.setJsonBodyData(closedLoopBody);
} catch (IOException e) {
LOGGER.error("Exception Occured" + e);
@@ -107,51 +108,39 @@ public class CreateClosedLoopPMController {
}
private void setPolicyAdapterMatchAttributes(final PolicyRestAdapter policyAdapter,
- final List<AnyOfType> anyOfList) {
+ final List<AnyOfType> anyOfList) {
anyOfList.stream()
- //Extract nonNull list of AllOfType objs from each AnyOfType obj
- .map(AnyOfType::getAllOf).filter(Objects::nonNull)
- .forEach(allOfList ->
- //Extract nonNull list of MatchType objs from each AllOFType obj
+ // Extract nonNull list of AllOfType objs from each AnyOfType obj
+ .map(AnyOfType::getAllOf).filter(Objects::nonNull).forEach(allOfList ->
+ // Extract nonNull list of MatchType objs from each AllOFType obj
allOfList.stream().map(AllOfType::getMatch).filter(Objects::nonNull)
- .forEach(matchList -> matchList.forEach(match -> {
- // Under the match we have attribute value and
- // attributeDesignator. So,finally down to the actual attribute.
- AttributeValueType attributeValue = match.getAttributeValue();
- String value = (String) attributeValue.getContent().get(0);
- AttributeDesignatorType designator = match.getAttributeDesignator();
- String attributeId = designator.getAttributeId();
- // First match in the target is OnapName, so set that value.
- if ("ONAPName".equals(attributeId)) {
- policyAdapter.setOnapName(value);
- } else if ("RiskType".equals(attributeId)) {
- policyAdapter.setRiskType(value);
- } else if ("RiskLevel".equals(attributeId)) {
- policyAdapter.setRiskLevel(value);
- } else if ("guard".equals(attributeId)) {
- policyAdapter.setGuard(value);
- } else if ("TTLDate".equals(attributeId) && !value.contains("NA")) {
- PolicyController controller = new PolicyController();
- String newDate = controller.convertDate(value);
- policyAdapter.setTtlDate(newDate);
- } else if ("ServiceType".equals(attributeId)) {
- LinkedHashMap<String, String> serviceTypePolicyName1 = new LinkedHashMap<>();
- serviceTypePolicyName1.put(KEY_SERVICE_TYPE_POLICY_NAME, value);
- policyAdapter.setServiceTypePolicyName(serviceTypePolicyName1);
- LinkedHashMap<String, String> vertica = new LinkedHashMap<>();
- vertica.put("verticaMetrics", getVertica(value));
- policyAdapter.setVerticaMetrics(vertica);
- LinkedHashMap<String, String> desc = new LinkedHashMap<>();
- desc.put("policyDescription", getDescription(value));
- policyAdapter.setDescription(desc);
- LinkedHashMap<String, Object> attributes = new LinkedHashMap<>();
- attributes.put("attributes", getAttributes(value));
- policyAdapter.setAttributeFields(attributes);
- }
- })));
+ .forEach(matchList -> matchList.forEach(match -> {
+ // Under the match we have attribute value and
+ // attributeDesignator. So,finally down to the actual attribute.
+ AttributeValueType attributeValue = match.getAttributeValue();
+ String value = (String) attributeValue.getContent().get(0);
+ AttributeDesignatorType designator = match.getAttributeDesignator();
+ String attributeId = designator.getAttributeId();
+ // First match in the target is OnapName, so set that value.
+ policyAdapter.setupUsingAttribute(attributeId, value);
+ if ("ServiceType".equals(attributeId)) {
+ LinkedHashMap<String, String> serviceTypePolicyName1 = new LinkedHashMap<>();
+ serviceTypePolicyName1.put(KEY_SERVICE_TYPE_POLICY_NAME, value);
+ policyAdapter.setServiceTypePolicyName(serviceTypePolicyName1);
+ LinkedHashMap<String, String> vertica = new LinkedHashMap<>();
+ vertica.put("verticaMetrics", getVertica(value));
+ policyAdapter.setVerticaMetrics(vertica);
+ LinkedHashMap<String, String> desc = new LinkedHashMap<>();
+ desc.put("policyDescription", getDescription(value));
+ policyAdapter.setDescription(desc);
+ LinkedHashMap<String, Object> attributes = new LinkedHashMap<>();
+ attributes.put("attributes", getAttributes(value));
+ policyAdapter.setAttributeFields(attributes);
+ }
+ })));
}
- //get vertica metrics data from the table
+ // get vertica metrics data from the table
private String getVertica(String policyName) {
JsonArray data = PolicyManagerServlet.getPolicyNames();
for (int i = 0; i < data.size(); i++) {
@@ -162,7 +151,7 @@ public class CreateClosedLoopPMController {
return null;
}
- //get policy description from the table
+ // get policy description from the table
private String getDescription(String policyName) {
JsonArray data = PolicyManagerServlet.getPolicyNames();
for (int i = 0; i < data.size(); i++) {
@@ -173,7 +162,7 @@ public class CreateClosedLoopPMController {
return null;
}
- //get Attributes
+ // get Attributes
private JsonObject getAttributes(String policyName) {
JsonArray data = PolicyManagerServlet.getPolicyNames();
for (int i = 0; i < data.size(); i++) {
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateDcaeMicroServiceController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateDcaeMicroServiceController.java
index a8df74add..4be31dd1e 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateDcaeMicroServiceController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateDcaeMicroServiceController.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2020 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.
@@ -20,7 +20,6 @@
package org.onap.policy.controller;
-
import com.att.research.xacml.util.XACMLProperties;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -37,12 +36,13 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
-import java.io.PrintWriter;
import java.io.StringReader;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
+import java.util.Base64;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
@@ -68,10 +68,10 @@ import javax.json.JsonReader;
import javax.json.JsonValue;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import lombok.Getter;
+import lombok.Setter;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
@@ -82,20 +82,22 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringEscapeUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.rest.XACMLRestProperties;
+import org.onap.policy.rest.XacmlRestProperties;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.GroupPolicyScopeList;
import org.onap.policy.rest.jpa.MicroServiceModels;
import org.onap.policy.rest.jpa.MicroserviceHeaderdeFaults;
import org.onap.policy.rest.jpa.PolicyEntity;
-import org.onap.policy.rest.util.MSAttributeObject;
-import org.onap.policy.rest.util.MSModelUtils;
-import org.onap.policy.rest.util.MSModelUtils.MODEL_TYPE;
+import org.onap.policy.rest.util.MsAttributeObject;
+import org.onap.policy.rest.util.MsModelUtils;
+import org.onap.policy.rest.util.MsModelUtils.ModelType;
+import org.onap.policy.utils.PolicyUtils;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.onap.portalsdk.core.web.support.JsonMessage;
import org.springframework.beans.factory.annotation.Autowired;
@@ -124,7 +126,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
private String directory;
private List<String> modelList = new ArrayList<>();
private List<String> dirDependencyList = new ArrayList<>();
- private LinkedHashMap<String, MSAttributeObject> classMap = new LinkedHashMap<>();
+ private LinkedHashMap<String, MsAttributeObject> classMap = new LinkedHashMap<>();
String referenceAttributes;
String attributeString;
Set<String> allManyTrueKeys = null;
@@ -158,6 +160,13 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
private Map<String, LinkedList<String>> arrayTextList = new HashMap<>();
private Map<String, String> jsonStringValues = new HashMap<>();
+ /**
+ * setDataToPolicyRestAdapter.
+ *
+ * @param policyData PolicyRestAdapter
+ * @param root JsonNode
+ * @return PolicyRestAdapter
+ */
public PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter policyData, JsonNode root) {
String jsonContent = null;
@@ -165,10 +174,8 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
LOGGER.info("policyJSON :" + (root.get(POLICYJSON)).toString());
String tempJson = root.get(POLICYJSON).toString();
- JSONObject policyJSON = new JSONObject(root.get(POLICYJSON).toString());
- if (policyJSON != null) {
- tempJson = saveOriginalJsonObject(policyJSON, jsonStringValues).toString();
- }
+ JSONObject policyJson = new JSONObject(root.get(POLICYJSON).toString());
+ tempJson = decodeJsonVal(tempJson, policyJson);
// ---replace empty value with the value below before calling decodeContent method.
String dummyValue = "*empty-value*" + UUID.randomUUID().toString();
LOGGER.info("dummyValue:" + dummyValue);
@@ -189,12 +196,28 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
JSONObject content = contentJson.getJSONObject("content");
content = setOriginalJsonObject(content, jsonStringValues);
contentJson.put("content", content);
- policyData.setJsonBody(contentJson.toString());
+ policyData.setJsonBody(StringEscapeUtils.unescapeJava(contentJson.toString()));
}
return policyData;
}
+ private String decodeJsonVal(String tempJson, JSONObject policyJson) {
+ if (policyJson != null) {
+ for (Object key : policyJson.keySet()) {
+ String keyStr = (String) key;
+ Object keyvalue = policyJson.get(keyStr);
+ String decodedString = keyvalue.toString();//.replace("\"", "");
+ if(!decodedString.equals("true") && !decodedString.equals("false")) {
+ String decodedJson = new String(Base64.getDecoder().decode(decodedString), StandardCharsets.UTF_8).replace("\"", "\\\"");
+ policyJson.put(keyStr, decodedJson);
+ }
+ }
+ tempJson = saveOriginalJsonObject(policyJson, jsonStringValues).toString();
+ }
+ return tempJson;
+ }
+
private JSONObject saveOriginalJsonObject(JSONObject jsonObj, Map<String, String> jsonStringValues) {
for (Object key : jsonObj.keySet()) {
String keyStr = (String) key;
@@ -259,7 +282,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
String json = "";
DCAEMicroServiceObject microServiceObject = new DCAEMicroServiceObject();
MicroServiceModels returnModel = new MicroServiceModels();
- microServiceObject.setTemplateVersion(XACMLProperties.getProperty(XACMLRestProperties.TemplateVersion_MS));
+ microServiceObject.setTemplateVersion(XACMLProperties.getProperty(XacmlRestProperties.TEMPLATE_VERSION_MS));
if (policyAdapter.getServiceType() != null) {
microServiceObject.setService(policyAdapter.getServiceType());
microServiceObject.setVersion(policyAdapter.getVersion());
@@ -309,15 +332,11 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
modelName + ":" + versionName);
MicroServiceModels model = null;
boolean ruleCheck = false;
- boolean SymptomRuleCheck = false;
if (!triggerData.isEmpty()) {
model = (MicroServiceModels) triggerData.get(0);
if (model.getRuleFormation() != null) {
microServiceObject.setUiContent(jsonContent);
ruleCheck = true;
- if (model.getRuleFormation().contains("@")) {
- SymptomRuleCheck = true;
- }
}
}
try {
@@ -327,7 +346,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
LOGGER.info("input json: " + json);
LOGGER.info("input jsonContent: " + jsonContent);
- String cleanJson = cleanUPJson(json);
+ String cleanJson = cleanUpJson(json);
// --- reset empty value back after called cleanUPJson method and before calling removeNullAttributes
String tempJson =
StringUtils.replaceEach(cleanJson, new String[] {"\"" + dummyValue + "\""}, new String[] {"\"\""});
@@ -340,40 +359,39 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
// for Triggers
ObjectMapper mapper = new ObjectMapper();
JsonNode tempJsonNode = mapper.readTree(cleanJson);
- if (ruleCheck) {
- // JsonNode tempJsonNode = mapper.readTree(cleanJson);
- ObjectNode finalJson = (ObjectNode) tempJsonNode;
- JsonNode object = tempJsonNode.get("content");
- String primaryKey1 = model.getRuleFormation();
- String[] primaryKeyForSignatures = primaryKey1.split("@");
- for (String primaryKeyForSignature : primaryKeyForSignatures) {
- String primarykeyAlarm = primaryKeyForSignature.substring(0, primaryKeyForSignature.indexOf('.'));
- JsonNode triggerSig = object.get(primarykeyAlarm);
- sigRules = new HashMap<>();
- String parseKey = primaryKeyForSignature.substring(primaryKeyForSignature.indexOf('.') + 1);
- StringBuilder sb = null;
- if (triggerSig instanceof ArrayNode) {
- for (int i = 0; i < triggerSig.size(); i++) {
- sb = new StringBuilder();
- parseData(triggerSig.get(i), parseKey);
- sb.append("(");
- List<?> keyList = new ArrayList<>(sigRules.keySet());
- for (int j = keyList.size() - 1; j >= 0; j--) {
- String key = (String) keyList.get(j);
- String jsonNode = sigRules.get(key);
- constructRule(sb, jsonNode, sigRules);
- }
- sb.append(")").toString();
- putRuletoJson(tempJsonNode, i, sb, parseKey, primarykeyAlarm);
- sigRules = new HashMap<>();
- }
- } else {
+ if (! ruleCheck) {
+ return policyAdapter;
+ }
+ ObjectNode finalJson = (ObjectNode) tempJsonNode;
+ JsonNode object = tempJsonNode.get("content");
+ String primaryKey1 = model.getRuleFormation();
+ String[] primaryKeyForSignatures = primaryKey1.split("@");
+ for (String primaryKeyForSignature : primaryKeyForSignatures) {
+ String primarykeyAlarm = primaryKeyForSignature.substring(0, primaryKeyForSignature.indexOf('.'));
+ JsonNode triggerSig = object.get(primarykeyAlarm);
+ sigRules = new HashMap<>();
+ String parseKey = primaryKeyForSignature.substring(primaryKeyForSignature.indexOf('.') + 1);
+ StringBuilder sb = null;
+ if (triggerSig instanceof ArrayNode) {
+ for (int i = 0; i < triggerSig.size(); i++) {
sb = new StringBuilder();
- parseData(triggerSig, parseKey);
+ parseData(triggerSig.get(i), parseKey);
+ sb.append("(");
+ List<?> keyList = new ArrayList<>(sigRules.keySet());
+ for (int j = keyList.size() - 1; j >= 0; j--) {
+ String key = (String) keyList.get(j);
+ String jsonNode = sigRules.get(key);
+ constructRule(sb, jsonNode, sigRules);
+ }
+ sb.append(")").toString();
+ putRuletoJson(tempJsonNode, i, sb, parseKey, primarykeyAlarm);
+ sigRules = new HashMap<>();
}
+ } else {
+ parseData(triggerSig, parseKey);
}
- policyAdapter.setJsonBody(finalJson.toString());
}
+ policyAdapter.setJsonBody(finalJson.toString());
return policyAdapter;
}
@@ -486,6 +504,12 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
}
+ /**
+ * removeNullAttributes.
+ *
+ * @param cleanJson String
+ * @returnString
+ */
public String removeNullAttributes(String cleanJson) {
ObjectMapper mapper = new ObjectMapper();
@@ -529,9 +553,9 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
if (contentChanged) {
// set modified content to cleanJson
- JSONObject jObject = new JSONObject(cleanJson);
- jObject.put("content", removed.toString());
- cleanJson = cleanUPJson(jObject.toString());
+ JSONObject jsonObject = new JSONObject(cleanJson);
+ jsonObject.put("content", removed.toString());
+ cleanJson = cleanUpJson(jsonObject.toString());
}
} catch (IOException e) {
@@ -554,90 +578,93 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
if (arrOfKeys[i].contains(".")) {
arrOfKeys[i] = arrOfKeys[i].substring(arrOfKeys[i].indexOf(".") + 1);
if (arrOfKeys[i].equals(key)) {
- return StringUtils.replaceEach(jsonStringValues.get(k), new String[] {"\""},
- new String[] {"\\\""});
+ return jsonStringValues.get(k);
}
}
}
}
if (k.endsWith(key)) {
- return StringUtils.replaceEach(jsonStringValues.get(k), new String[] {"\""}, new String[] {"\\\""});
+ return jsonStringValues.get(k);
}
}
return null;
}
+ /**
+ * removeNull.
+ *
+ * @param array JsonArray
+ * @return JsonArray
+ */
public JsonArray removeNull(JsonArray array) {
JsonArrayBuilder builder = Json.createArrayBuilder();
- int i = 0;
- for (Iterator<JsonValue> it = array.iterator(); it.hasNext(); ++i) {
+ int index = 0;
+ for (Iterator<JsonValue> it = array.iterator(); it.hasNext(); ++index) {
JsonValue value = it.next();
switch (value.getValueType()) {
case ARRAY:
- JsonArray a = removeNull(array.getJsonArray(i));
- if (!a.isEmpty())
- builder.add(a);
+ JsonArray tempArray = removeNull(array.getJsonArray(index));
+ if (!tempArray.isEmpty()) {
+ builder.add(tempArray);
+ }
break;
case OBJECT:
- JsonObject object = removeNull(array.getJsonObject(i));
- if (!object.isEmpty())
+ JsonObject object = removeNull(array.getJsonObject(index));
+ if (!object.isEmpty()) {
builder.add(object);
+ }
break;
case STRING:
- String s = array.getString(i);
- if (s != null && !s.isEmpty())
- builder.add(s);
+ String str = array.getString(index);
+ if (str != null && !str.isEmpty()) {
+ builder.add(str);
+ }
break;
case NUMBER:
- builder.add(array.getJsonNumber(i));
+ builder.add(array.getJsonNumber(index));
break;
case TRUE:
case FALSE:
- builder.add(array.getBoolean(i));
+ builder.add(array.getBoolean(index));
break;
case NULL:
+ default:
break;
}
}
return builder.build();
}
+ /**
+ * removeNull.
+ *
+ * @param obj JsonObject
+ * @return JsonObject
+ */
public JsonObject removeNull(JsonObject obj) {
JsonObjectBuilder builder = Json.createObjectBuilder();
for (Iterator<Entry<String, JsonValue>> it = obj.entrySet().iterator(); it.hasNext();) {
- Entry<String, JsonValue> e = it.next();
- String key = e.getKey();
- JsonValue value = e.getValue();
+ Entry<String, JsonValue> entry = it.next();
+ String key = entry.getKey();
+ JsonValue value = entry.getValue();
switch (value.getValueType()) {
case ARRAY:
JsonArray array = removeNull(obj.getJsonArray(key));
- if (!array.isEmpty())
+ if (!array.isEmpty()) {
builder.add(key, array);
+ }
break;
case OBJECT:
JsonObject object = removeNull(obj.getJsonObject(key));
if (!object.isEmpty()) {
- if (!jsonStringValues.isEmpty()) {
- String originalValue = getOriginalValue(key);
- if (originalValue != null) {
- builder.add(key, object.toString());
- break;
- }
- }
builder.add(key, object);
}
break;
case STRING:
- String s = obj.getString(key);
- if (s != null && !s.isEmpty()) {
- if (!jsonStringValues.isEmpty()) {
- String originalValue = getOriginalValue(key);
- if (originalValue != null) {
- s = getOriginalValue(key);
- }
- }
- builder.add(key, s);
+ String str = obj.getString(key);
+ if (str != null && !str.isEmpty()) {
+ builder.add(key, str);
}
break;
case NUMBER:
@@ -648,13 +675,20 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
builder.add(key, obj.getBoolean(key));
break;
case NULL:
+ default:
break;
}
}
return builder.build();
}
- public String cleanUPJson(String json) {
+ /**
+ * cleanUpJson.
+ *
+ * @param json String
+ * @return String
+ */
+ public String cleanUpJson(String json) {
String cleanJson = StringUtils.replaceEach(json, new String[] {"\\\\", "\\\\\\", "\\\\\\\\"},
new String[] {"\\", "\\", "\\"});
cleanJson = StringUtils.replaceEach(cleanJson, new String[] {"\\\\\\"}, new String[] {"\\"});
@@ -675,6 +709,12 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
return cleanJson;
}
+ /**
+ * decodeContent.
+ *
+ * @param jsonNode JsonNode
+ * @return JsonNode
+ */
public JSONObject decodeContent(JsonNode jsonNode) {
Iterator<JsonNode> jsonElements = jsonNode.elements();
Iterator<String> jsonKeys = jsonNode.fieldNames();
@@ -825,7 +865,8 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
return jsonResult;
}
- @RequestMapping(value = {"/policyController/getDCAEMSTemplateData.htm"},
+ @RequestMapping(
+ value = {"/policyController/getDCAEMSTemplateData.htm"},
method = {org.springframework.web.bind.annotation.RequestMethod.POST})
public ModelAndView getDCAEMSTemplateData(HttpServletRequest request, HttpServletResponse response)
throws IOException {
@@ -862,8 +903,8 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
// Get all keys with "MANY-true" defined in their value from subAttribute
Set<String> allkeys = null;
- if (returnModel.getSub_attributes() != null && !returnModel.getSub_attributes().isEmpty()) {
- JSONObject json = new JSONObject(returnModel.getSub_attributes());
+ if (returnModel.getSubAttributes() != null && !returnModel.getSubAttributes().isEmpty()) {
+ JSONObject json = new JSONObject(returnModel.getSubAttributes());
getAllKeys(json);
allkeys = allManyTrueKeys;
allManyTrueKeys = new TreeSet<>();
@@ -882,7 +923,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
allMnyTrueKeys = allkeys.toString();
}
- String jsonModel = createMicroSeriveJson(returnModel, allkeys);
+ String jsonModel = createMicroSeriveJson(returnModel);
JSONObject jsonObject = new JSONObject(jsonModel);
@@ -901,8 +942,8 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
jsonModel = finalJsonObject.toString();
}
- // get all properties with "MANY-true" defined in Ref_attributes
- Set<String> manyTrueProperties = getManyTrueProperties(returnModel.getRef_attributes());
+ // get all properties with "MANY-true" defined in RefAttributes
+ Set<String> manyTrueProperties = getManyTrueProperties(returnModel.getRefAttributes());
if (manyTrueProperties != null) {
JSONObject jsonObj = new JSONObject(jsonModel);
for (String s : manyTrueProperties) {
@@ -918,37 +959,36 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
}
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
List<Object> list = new ArrayList<>();
- PrintWriter out = response.getWriter();
String responseString = mapper.writeValueAsString(returnModel);
- JSONObject j = null;
+ JSONObject json = null;
if ("".equals(allMnyTrueKeys)) {
- j = new JSONObject("{dcaeModelData: " + responseString + ",jsonValue: " + jsonModel + ",dataOrderInfo:"
+ json = new JSONObject("{dcaeModelData: " + responseString + ",jsonValue: " + jsonModel + ",dataOrderInfo:"
+ dataOrderInfo + ",headDefautlsData:" + headDefautlsData + "}");
} else {
- j = new JSONObject("{dcaeModelData: " + responseString + ",jsonValue: " + jsonModel + ",allManyTrueKeys: "
- + allMnyTrueKeys + ",dataOrderInfo:" + dataOrderInfo + ",headDefautlsData:" + headDefautlsData
- + "}");
+ json = new JSONObject("{dcaeModelData: " + responseString + ",jsonValue: " + jsonModel
+ + ",allManyTrueKeys: " + allMnyTrueKeys + ",dataOrderInfo:" + dataOrderInfo + ",headDefautlsData:"
+ + headDefautlsData + "}");
}
- list.add(j);
- out.write(list.toString());
+ list.add(json);
+ response.getWriter().write(list.toString());
return null;
}
@SuppressWarnings({"unchecked", "rawtypes"})
- private String createMicroSeriveJson(MicroServiceModels returnModel, Set<String> allkeys) {
+ private String createMicroSeriveJson(MicroServiceModels returnModel) {
Map<String, String> attributeMap = new HashMap<>();
Map<String, String> refAttributeMap = new HashMap<>();
String attribute = returnModel.getAttributes();
if (attribute != null) {
attribute = attribute.trim();
}
- String refAttribute = returnModel.getRef_attributes();
+ String refAttribute = returnModel.getRefAttributes();
if (refAttribute != null) {
refAttribute = refAttribute.trim();
}
@@ -965,7 +1005,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
Gson gson = new Gson();
- String subAttributes = returnModel.getSub_attributes();
+ String subAttributes = returnModel.getSubAttributes();
if (subAttributes != null) {
subAttributes = subAttributes.trim();
} else {
@@ -975,10 +1015,9 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
Map gsonObject = (Map) gson.fromJson(subAttributes, Object.class);
JSONObject object = new JSONObject();
- JSONArray array = new JSONArray();
for (Entry<String, String> keySet : attributeMap.entrySet()) {
- array = new JSONArray();
+ JSONArray array = new JSONArray();
String value = keySet.getValue();
if ("true".equalsIgnoreCase(keySet.getValue().split("MANY-")[1])) {
array.put(value);
@@ -989,7 +1028,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
for (Entry<String, String> keySet : refAttributeMap.entrySet()) {
- array = new JSONArray();
+ JSONArray array = new JSONArray();
String value = keySet.getValue().split(":")[0];
if (gsonObject.containsKey(value)) {
if ("true".equalsIgnoreCase(keySet.getValue().split("MANY-")[1])) {
@@ -1042,7 +1081,6 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
return object;
}
-
public JSONObject convertToArrayElement(JSONObject json, String keyValue) {
return convertToArrayElement(json, new HashSet<>(), keyValue);
}
@@ -1070,14 +1108,25 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
if (obj instanceof JSONArray) {
- convertToArrayElement(json.getJSONArray(key).getJSONObject(0), keyValue);
+ try {
+ if (json.getJSONArray(key).length() > 0) {
+ convertToArrayElement(json.getJSONArray(key).getJSONObject(0), keyValue);
+ }
+ } catch (Exception ex) {
+ LOGGER.info("XMI Model load issue : " + ex);
+ }
}
}
return json;
}
- // call this method to get all MANY-true properties
+ /**
+ * getManyTrueProperties.
+ *
+ * @param referAttributes String
+ * @return a Set of String
+ */
public Set<String> getManyTrueProperties(String referAttributes) {
LOGGER.info("referAttributes : " + referAttributes);
Set<String> manyTrueProperties = new HashSet<>();
@@ -1108,10 +1157,12 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
private Set<String> getAllKeys(JSONArray arr, Set<String> keys) {
for (int i = 0; i < arr.length(); i++) {
Object obj = arr.get(i);
- if (obj instanceof JSONObject)
+ if (obj instanceof JSONObject) {
keys.addAll(getAllKeys(arr.getJSONObject(i)));
- if (obj instanceof JSONArray)
+ }
+ if (obj instanceof JSONArray) {
keys.addAll(getAllKeys(arr.getJSONArray(i)));
+ }
}
return keys;
@@ -1126,37 +1177,42 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
LOGGER.info("obj : " + obj);
allManyTrueKeys.add(key);
}
- if (obj instanceof JSONObject)
+ if (obj instanceof JSONObject) {
keys.addAll(getAllKeys(json.getJSONObject(key)));
- if (obj instanceof JSONArray)
+ }
+ if (obj instanceof JSONArray) {
keys.addAll(getAllKeys(json.getJSONArray(key)));
+ }
}
return keys;
}
-
- @RequestMapping(value = {"/policyController/getModelServiceVersioneData.htm"},
+ /**
+ * getModelServiceVersionData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ * @return ModelAndView
+ * @throws IOException IOException
+ */
+ @RequestMapping(
+ value = {"/policyController/getModelServiceVersioneData.htm"},
method = {org.springframework.web.bind.annotation.RequestMethod.POST})
public ModelAndView getModelServiceVersionData(HttpServletRequest request, HttpServletResponse response)
throws IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- String value = root.get("policyData").toString().replaceAll("^\"|\"$", "");
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ List<Object> list = new ArrayList<>();
+ String value = mapper.readTree(request.getReader()).get("policyData").toString().replaceAll("^\"|\"$", "");
String servicename = value.split("-v")[0];
Set<String> returnList = getVersionList(servicename);
-
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
- List<Object> list = new ArrayList<>();
- PrintWriter out = response.getWriter();
- String responseString = mapper.writeValueAsString(returnList);
- JSONObject j = new JSONObject("{dcaeModelVersionData: " + responseString + "}");
- list.add(j);
- out.write(list.toString());
+ list.add(new JSONObject("{dcaeModelVersionData: " + mapper.writeValueAsString(returnList) + "}"));
+ response.getWriter().write(list.toString());
return null;
}
@@ -1201,7 +1257,8 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
modelName);
}
- @RequestMapping(value = {"/get_DCAEPriorityValues"},
+ @RequestMapping(
+ value = {"/get_DCAEPriorityValues"},
method = {org.springframework.web.bind.annotation.RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void getDCAEPriorityValuesData(HttpServletRequest request, HttpServletResponse response) {
@@ -1214,93 +1271,64 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
priorityList.add(String.valueOf(i));
}
model.put("priorityDatas", mapper.writeValueAsString(priorityList));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
LOGGER.error(e);
}
}
+ /**
+ * prePopulateDCAEMSPolicyData.
+ *
+ * @param policyAdapter PolicyRestAdapter
+ * @param entity PolicyEntity
+ */
public void prePopulateDCAEMSPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
- if (policyAdapter.getPolicyData() instanceof PolicyType) {
- Object policyData = policyAdapter.getPolicyData();
- PolicyType policy = (PolicyType) policyData;
- policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- String policyNameValue =
- policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("MS_") + 3);
- policyAdapter.setPolicyName(policyNameValue);
- String description = "";
- try {
- description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
- } catch (Exception e) {
- LOGGER.error("Error while collecting the desciption tag in ActionPolicy " + policyNameValue, e);
- description = policy.getDescription();
- }
- policyAdapter.setPolicyDescription(description);
- // Get the target data under policy.
- TargetType target = policy.getTarget();
- if (target != null) {
- // Under target we have AnyOFType
- List<AnyOfType> anyOfList = target.getAnyOf();
- if (anyOfList != null) {
- Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
- while (iterAnyOf.hasNext()) {
- AnyOfType anyOf = iterAnyOf.next();
- // Under AnyOFType we have AllOFType
- List<AllOfType> allOfList = anyOf.getAllOf();
- if (allOfList != null) {
- Iterator<AllOfType> iterAllOf = allOfList.iterator();
- while (iterAllOf.hasNext()) {
- AllOfType allOf = iterAllOf.next();
- // Under AllOFType we have Match
- List<MatchType> matchList = allOf.getMatch();
- if (matchList != null) {
- Iterator<MatchType> iterMatch = matchList.iterator();
- while (matchList.size() > 1 && iterMatch.hasNext()) {
- MatchType match = iterMatch.next();
- //
- // Under the match we have attribute value and
- // attributeDesignator. So,finally down to the actual attribute.
- //
- AttributeValueType attributeValue = match.getAttributeValue();
- String value = (String) attributeValue.getContent().get(0);
- AttributeDesignatorType designator = match.getAttributeDesignator();
- String attributeId = designator.getAttributeId();
- // First match in the target is OnapName, so set that value.
- if ("ONAPName".equals(attributeId)) {
- policyAdapter.setOnapName(value);
- }
- if ("ConfigName".equals(attributeId)) {
- policyAdapter.setConfigName(value);
- }
- if ("uuid".equals(attributeId)) {
- policyAdapter.setUuid(value);
- }
- if ("location".equals(attributeId)) {
- policyAdapter.setLocation(value);
- }
- if ("RiskType".equals(attributeId)) {
- policyAdapter.setRiskType(value);
- }
- if ("RiskLevel".equals(attributeId)) {
- policyAdapter.setRiskLevel(value);
- }
- if ("guard".equals(attributeId)) {
- policyAdapter.setGuard(value);
- }
- if ("TTLDate".equals(attributeId) && !value.contains("NA")) {
- PolicyController controller = new PolicyController();
- String newDate = controller.convertDate(value);
- policyAdapter.setTtlDate(newDate);
- }
- }
- readFile(policyAdapter, entity);
- }
- }
- }
- }
+ if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+ return;
+ }
+ Object policyData = policyAdapter.getPolicyData();
+ PolicyType policy = (PolicyType) policyData;
+ policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
+ String policyNameValue =
+ policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("MS_") + 3);
+ policyAdapter.setPolicyName(policyNameValue);
+ String description = "";
+ try {
+ description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
+ } catch (Exception e) {
+ LOGGER.error("Error while collecting the desciption tag in ActionPolicy " + policyNameValue, e);
+ description = policy.getDescription();
+ }
+ policyAdapter.setPolicyDescription(description);
+ // Get the target data under policy.
+ TargetType target = policy.getTarget();
+ if (target == null) {
+ return;
+ }
+ for (AnyOfType anyOf : target.getAnyOf()) {
+ for (AllOfType allOf : anyOf.getAllOf()) {
+ // Under AllOFType we have Match
+ List<MatchType> matchList = allOf.getMatch();
+ if (matchList == null) {
+ continue;
}
+ Iterator<MatchType> iterMatch = matchList.iterator();
+ //
+ // Can someone please explain why the matchList MUST have
+ // more than 1 matches???
+ //
+ while (matchList.size() > 1 && iterMatch.hasNext()) {
+ MatchType match = iterMatch.next();
+ //
+ // Under the match we have attribute value and
+ // attributeDesignator. So,finally down to the actual attribute.
+ //
+ // First match in the target is OnapName, so set that value.
+ policyAdapter.setupUsingAttribute(match.getAttributeDesignator().getAttributeId(),
+ (String) match.getAttributeValue().getContent().get(0));
+ }
+ readFile(policyAdapter, entity);
}
}
}
@@ -1321,7 +1349,6 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
return map;
}
-
/**
* Read file.
*
@@ -1330,12 +1357,11 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
*/
@SuppressWarnings("unchecked")
public void readFile(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
- String policyScopeName = null;
- ObjectMapper mapper = new ObjectMapper();
try {
DCAEMicroServiceObject msBody =
- mapper.readValue(entity.getConfigurationData().getConfigBody(), DCAEMicroServiceObject.class);
- policyScopeName = getPolicyScope(msBody.getPolicyScope());
+ new ObjectMapper().readValue(entity.getConfigurationData().getConfigBody(),
+ DCAEMicroServiceObject.class);
+ String policyScopeName = getPolicyScope(msBody.getPolicyScope());
policyAdapter.setPolicyScope(policyScopeName);
policyAdapter.setPriority(msBody.getPriority());
@@ -1364,6 +1390,12 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
+ /**
+ * readRecursivlyJSONContent.
+ *
+ * @param map Map of String to something
+ * @param data Map of String to Object
+ */
@SuppressWarnings({"rawtypes", "unchecked"})
public void readRecursivlyJSONContent(Map<String, ?> map, Map<String, Object> data) {
for (Iterator iterator = map.keySet().iterator(); iterator.hasNext();) {
@@ -1401,16 +1433,27 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
}
+ /**
+ * getPolicyScope.
+ *
+ * @param value String
+ * @return String
+ */
public String getPolicyScope(String value) {
List<Object> groupList = commonClassDao.getDataById(GroupPolicyScopeList.class, "groupList", value);
if (groupList != null && !groupList.isEmpty()) {
- GroupPolicyScopeList pScope = (GroupPolicyScopeList) groupList.get(0);
- return pScope.getGroupName();
+ return ((GroupPolicyScopeList) groupList.get(0)).getGroupName();
}
return null;
}
- // Convert the map values and set into JSON body
+ /**
+ * Convert the map values and set into JSON body.
+ *
+ * @param attributesMap Map of attributes
+ * @param attributesRefMap Map of attribute references
+ * @return Map
+ */
public Map<String, String> convertMap(Map<String, String> attributesMap, Map<String, String> attributesRefMap) {
Map<String, String> attribute = new HashMap<>();
StringBuilder temp;
@@ -1448,7 +1491,8 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
return attribute;
}
- @RequestMapping(value = {"/ms_dictionary/set_MSModelData"},
+ @RequestMapping(
+ value = {"/ms_dictionary/set_MSModelData"},
method = {org.springframework.web.bind.annotation.RequestMethod.POST})
public void SetMSModelData(HttpServletRequest request, HttpServletResponse response)
throws IOException, FileUploadException {
@@ -1490,35 +1534,31 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
if (!errorMsg.isEmpty()) {
-
- PrintWriter out = response.getWriter();
-
response.setCharacterEncoding("UTF-8");
response.setContentType("application / json");
request.setCharacterEncoding("UTF-8");
- JSONObject j = new JSONObject();
- j.put("errorMsg", errorMsg);
- out.write(j.toString());
+ JSONObject json = new JSONObject();
+ json.put("errorMsg", errorMsg);
+ response.getWriter().write(json.toString());
return;
}
List<File> fileList = new ArrayList<>();
- MSModelUtils msMLUtils = new MSModelUtils(commonClassDao);
+ MsModelUtils msModelUtils = new MsModelUtils(commonClassDao);
this.directory = "model";
if (zip) {
extractFolder(this.newFile);
fileList = listModelFiles(this.directory);
} else if (yml) {
- errorMsg = msMLUtils.parseTosca(this.newFile);
+ errorMsg = msModelUtils.parseTosca(this.newFile);
if (errorMsg != null) {
- PrintWriter out = response.getWriter();
response.setCharacterEncoding("UTF-8");
response.setContentType("application / json");
request.setCharacterEncoding("UTF-8");
- JSONObject j = new JSONObject();
- j.put("errorMsg", errorMsg);
- out.write(j.toString());
+ JSONObject json = new JSONObject();
+ json.put("errorMsg", errorMsg);
+ response.getWriter().write(json.toString());
return;
}
@@ -1533,7 +1573,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
classMap = new LinkedHashMap<>();
for (File file : fileList) {
if (!file.isDirectory() && file.getName().endsWith(".xmi")) {
- retreiveDependency(file.toString(), true);
+ retrieveDependency(file.toString());
}
}
@@ -1545,25 +1585,25 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
modelType = "yml";
modelList.add(this.newModel.getModelName());
String className = this.newModel.getModelName();
- MSAttributeObject msAttributes = new MSAttributeObject();
+ MsAttributeObject msAttributes = new MsAttributeObject();
msAttributes.setClassName(className);
LinkedHashMap<String, String> returnAttributeList = new LinkedHashMap<>();
- returnAttributeList.put(className, msMLUtils.getAttributeString());
+ returnAttributeList.put(className, msModelUtils.getAttributeString());
msAttributes.setAttribute(returnAttributeList);
- msAttributes.setSubClass(msMLUtils.getRetmap());
+ msAttributes.setSubClass(msModelUtils.getRetmap());
- msAttributes.setMatchingSet(msMLUtils.getMatchableValues());
+ msAttributes.setMatchingSet(msModelUtils.getMatchableValues());
LinkedHashMap<String, String> returnReferenceList = new LinkedHashMap<>();
- returnReferenceList.put(className, msMLUtils.getReferenceAttributes());
+ returnReferenceList.put(className, msModelUtils.getReferenceAttributes());
msAttributes.setRefAttribute(returnReferenceList);
- if (msMLUtils.getListConstraints() != "") {
+ if (msModelUtils.getListConstraints() != "") {
LinkedHashMap<String, String> enumList = new LinkedHashMap<>();
- String[] listArray = msMLUtils.getListConstraints().split("#");
+ String[] listArray = msModelUtils.getListConstraints().split("#");
for (String str : listArray) {
String[] strArr = str.split("=");
if (strArr.length > 1) {
@@ -1577,22 +1617,19 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
classMap.put(className, msAttributes);
}
-
- PrintWriter out = response.getWriter();
-
response.setCharacterEncoding("UTF-8");
response.setContentType("application / json");
request.setCharacterEncoding("UTF-8");
ObjectMapper mapper = new ObjectMapper();
- JSONObject j = new JSONObject();
- j.put("classListDatas", modelList);
- j.put("modelDatas", mapper.writeValueAsString(classMap));
- j.put("modelType", modelType);
- j.put("dataOrderInfo", msMLUtils.getDataOrderInfo());
- j.put("ruleFormation", msMLUtils.getJsonRuleFormation());
-
- out.write(j.toString());
+ JSONObject json = new JSONObject();
+ json.put("classListDatas", modelList);
+ json.put("modelDatas", mapper.writeValueAsString(classMap));
+ json.put("modelType", modelType);
+ json.put("dataOrderInfo", msModelUtils.getDataOrderInfo());
+ json.put("ruleFormation", msModelUtils.getJsonRuleFormation());
+
+ response.getWriter().write(json.toString());
}
/*
@@ -1600,7 +1637,7 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
*/
@SuppressWarnings("rawtypes")
private void extractFolder(String zipFile) {
- int BUFFER = 2048;
+ final int buffer = 2048;
File file = new File(zipFile);
try (ZipFile zip = new ZipFile(file)) {
@@ -1623,10 +1660,10 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
if (!entry.isDirectory()) {
BufferedInputStream is = new BufferedInputStream(zip.getInputStream(entry));
int currentByte;
- byte[] data = new byte[BUFFER];
+ byte[] data = new byte[buffer];
try (FileOutputStream fos = new FileOutputStream(destFile);
- BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER)) {
- while ((currentByte = is.read(data, 0, BUFFER)) != -1) {
+ BufferedOutputStream dest = new BufferedOutputStream(fos, buffer)) {
+ while ((currentByte = is.read(data, 0, buffer)) != -1) {
dest.write(data, 0, currentByte);
}
dest.flush();
@@ -1648,25 +1685,21 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
}
- private void retreiveDependency(String workingFile, Boolean modelClass) {
+ private void retrieveDependency(String workingFile) {
- MSModelUtils utils = new MSModelUtils(PolicyController.getMsOnapName(), PolicyController.getMsPolicyName());
- Map<String, MSAttributeObject> tempMap;
+ MsModelUtils utils = new MsModelUtils(PolicyController.getMsOnapName(), PolicyController.getMsPolicyName());
+ Map<String, MsAttributeObject> tempMap;
- tempMap = utils.processEpackage(workingFile, MODEL_TYPE.XMI);
+ tempMap = utils.processEpackage(workingFile, ModelType.XMI);
classMap.putAll(tempMap);
LOGGER.info(tempMap);
-
- return;
-
}
private List<File> listModelFiles(String directoryName) {
File fileDirectory = new File(directoryName);
List<File> resultList = new ArrayList<>();
- File[] fList = fileDirectory.listFiles();
- for (File file : fList) {
+ for (File file : fileDirectory.listFiles()) {
if (file.isFile()) {
resultList.add(file);
} else if (file.isDirectory()) {
@@ -1677,6 +1710,11 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
return resultList;
}
+ /**
+ * cleanUp.
+ *
+ * @param path String
+ */
public void cleanUp(String path) {
if (path != null) {
try {
@@ -1687,6 +1725,11 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
}
+ /**
+ * checkZipDirectory.
+ *
+ * @param zipDirectory String
+ */
public void checkZipDirectory(String zipDirectory) {
Path path = Paths.get(zipDirectory);
@@ -1697,9 +1740,9 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
private List<String> createList() {
List<String> list = new ArrayList<>();
- for (Entry<String, MSAttributeObject> cMap : classMap.entrySet()) {
- if (cMap.getValue().isPolicyTempalate()) {
- list.add(cMap.getKey());
+ for (Entry<String, MsAttributeObject> entrySet : classMap.entrySet()) {
+ if (entrySet.getValue().isPolicyTempalate()) {
+ list.add(entrySet.getKey());
}
}
@@ -1732,7 +1775,8 @@ public class CreateDcaeMicroServiceController extends RestrictedBaseController {
}
-
+@Getter
+@Setter
class DCAEMicroServiceObject {
private String service;
@@ -1749,128 +1793,5 @@ class DCAEMicroServiceObject {
private String riskLevel;
private String guard = null;
private Object uiContent;
-
- public String getGuard() {
- return guard;
- }
-
- public void setGuard(String guard) {
- this.guard = guard;
- }
-
- public String getRiskType() {
- return riskType;
- }
-
- public void setRiskType(String riskType) {
- this.riskType = riskType;
- }
-
- public String getRiskLevel() {
- return riskLevel;
- }
-
- public void setRiskLevel(String riskLevel) {
- this.riskLevel = riskLevel;
- }
-
- public String getPolicyScope() {
- return policyScope;
- }
-
- public void setPolicyScope(String policyScope) {
- this.policyScope = policyScope;
- }
-
- public String getPriority() {
- return priority;
- }
-
- public void setPriority(String priority) {
- this.priority = priority;
- }
-
- public String getVersion() {
- return version;
- }
-
- public void setVersion(String version) {
- this.version = version;
- }
-
private Object content;
-
-
- public String getPolicyName() {
- return policyName;
- }
-
- public void setPolicyName(String policyName) {
- this.policyName = policyName;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public String getConfigName() {
- return configName;
- }
-
- public void setConfigName(String configName) {
- this.configName = configName;
- }
-
- public Object getContent() {
- return content;
- }
-
- public void setContent(Object content) {
- this.content = content;
- }
-
- public String getService() {
- return service;
- }
-
- public void setService(String service) {
- this.service = service;
- }
-
- public String getLocation() {
- return location;
- }
-
- public void setLocation(String location) {
- this.location = location;
- }
-
- public String getUuid() {
- return uuid;
- }
-
- public void setUuid(String uuid) {
- this.uuid = uuid;
- }
-
- public String getTemplateVersion() {
- return templateVersion;
- }
-
- public void setTemplateVersion(String templateVersion) {
- this.templateVersion = templateVersion;
- }
-
- public Object getUiContent() {
- return uiContent;
- }
-
- public void setUiContent(Object uiContent) {
- this.uiContent = uiContent;
- }
-
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateFirewallController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateFirewallController.java
index 3e24dc7c4..3da703ab2 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateFirewallController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateFirewallController.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -19,11 +19,16 @@
*/
package org.onap.policy.controller;
-import java.io.PrintWriter;
+
+import com.fasterxml.jackson.core.JsonGenerationException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -32,6 +37,12 @@ import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+import org.apache.commons.lang3.StringUtils;
import org.hibernate.SessionFactory;
import org.json.JSONObject;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
@@ -55,13 +66,14 @@ import org.onap.policy.rest.adapter.TermCollector;
import org.onap.policy.rest.adapter.VendorSpecificData;
import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.AddressGroup;
-import org.onap.policy.rest.jpa.FWTagPicker;
+import org.onap.policy.rest.jpa.FwTagPicker;
import org.onap.policy.rest.jpa.GroupServiceList;
import org.onap.policy.rest.jpa.PolicyEntity;
import org.onap.policy.rest.jpa.PrefixList;
import org.onap.policy.rest.jpa.SecurityZone;
import org.onap.policy.rest.jpa.ServiceList;
import org.onap.policy.rest.jpa.TermList;
+import org.onap.policy.utils.PolicyUtils;
import org.onap.policy.xacml.api.XACMLErrorConstants;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.springframework.beans.factory.annotation.Autowired;
@@ -69,886 +81,832 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
-import com.fasterxml.jackson.core.JsonGenerationException;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectWriter;
-
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
-
@Controller
@RequestMapping("/")
public class CreateFirewallController extends RestrictedBaseController {
- private static Logger policyLogger = FlexLogger.getLogger(CreateFirewallController.class);
- private static final String ANY="ANY";
- private static final String GROUP="Group_";
-
- @Autowired
- SessionFactory sessionFactory;
-
- private static CommonClassDao commonClassDao;
-
- public static CommonClassDao getCommonClassDao() {
- return commonClassDao;
- }
-
- public static void setCommonClassDao(CommonClassDao commonClassDao) {
- CreateFirewallController.commonClassDao = commonClassDao;
- }
-
- private List<String> tagCollectorList;
-
- List<String> expandablePrefixIPList = new ArrayList<>();
- List<String> expandableServicesList= new ArrayList<>();
- @Autowired
- private CreateFirewallController(CommonClassDao commonClassDao){
- CreateFirewallController.commonClassDao = commonClassDao;
- }
-
- public CreateFirewallController(){
- // Empty constructor
- }
- private List<String> termCollectorList;
-
-
-
- public PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter policyData){
- String jsonBody;
- termCollectorList = new ArrayList <>();
- tagCollectorList = new ArrayList <>();
- if(! policyData.getAttributes().isEmpty()){
- for(Object attribute : policyData.getAttributes()){
- if(attribute instanceof LinkedHashMap<?, ?>){
- String key = ((LinkedHashMap<?, ?>) attribute).get("key").toString();
- termCollectorList.add(key);
-
- String tag = ((LinkedHashMap<?, ?>) attribute).get("value").toString();
- tagCollectorList.add(tag);
- }
- }
- }
- jsonBody = constructJson(policyData);
- if (jsonBody != null && ! "".equalsIgnoreCase(jsonBody)) {
- policyData.setJsonBody(jsonBody);
- } else {
- policyData.setJsonBody("{}");
- }
- policyData.setJsonBody(jsonBody);
-
- return policyData;
- }
-
- private List<String> mapping(String expandableList) {
- String value;
- String desc;
- List <String> valueDesc= new ArrayList<>();
- List<Object> prefixListData = commonClassDao.getData(PrefixList.class);
- for (int i = 0; i< prefixListData.size(); i++) {
- PrefixList prefixList = (PrefixList) prefixListData.get(i);
- if (prefixList.getPrefixListName().equals(expandableList)) {
- value = prefixList.getPrefixListValue();
- valueDesc.add(value);
- desc= prefixList.getDescription();
- valueDesc.add(desc);
- break;
- }
- }
- return valueDesc;
- }
-
- private ServiceList mappingServiceList(String expandableList) {
- ServiceList serviceList=null;
- List<Object> serviceListData = commonClassDao.getData(ServiceList.class);
- for (int i = 0; i< serviceListData.size(); i++) {
- serviceList = (ServiceList) serviceListData.get(i);
- if (serviceList.getServiceName().equals(expandableList)) {
- break;
- }
- }
- return serviceList;
- }
-
- private GroupServiceList mappingServiceGroup(String expandableList) {
-
- GroupServiceList serviceGroup=null;
- List<Object> serviceGroupData = commonClassDao.getData(GroupServiceList.class);
- for (int i = 0; i< serviceGroupData.size(); i++) {
- serviceGroup = (GroupServiceList) serviceGroupData.get(i);
- if (serviceGroup.getGroupName().equals(expandableList)) {
- break;
- }
- }
- return serviceGroup;
- }
-
- private AddressGroup mappingAddressGroup(String expandableList) {
-
- AddressGroup addressGroup=null;
- List<Object> addressGroupData = commonClassDao.getData(AddressGroup.class);
- for (int i = 0; i< addressGroupData.size(); i++) {
- addressGroup = (AddressGroup) addressGroupData.get(i);
- if (addressGroup.getGroupName().equals(expandableList)) {
- break;
- }
- }
- return addressGroup;
- }
-
- public void prePopulateFWPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
- ArrayList<Object> attributeList;
- attributeList = new ArrayList<>();
- if (policyAdapter.getPolicyData() instanceof PolicyType) {
- Object policyData = policyAdapter.getPolicyData();
- PolicyType policy = (PolicyType) policyData;
- // policy name value is the policy name without any prefix and Extensions.
- policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- String policyNameValue = policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("FW_") +3);
- if (policyLogger.isDebugEnabled()) {
- policyLogger.debug("Prepopulating form data for Config Policy selected:"+ policyAdapter.getPolicyName());
- }
- policyAdapter.setPolicyName(policyNameValue);
- String description = "";
- try{
- description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
- }catch(Exception e){
- policyLogger.info("General error", e);
- description = policy.getDescription();
- }
- policyAdapter.setPolicyDescription(description);
-
- ObjectMapper mapper = new ObjectMapper();
-
- TermCollector tc1=null;
- try {
- //Json conversion.
- String data;
- SecurityZone jpaSecurityZone;
- data = entity.getConfigurationData().getConfigBody();
- tc1 = mapper.readValue(data, TermCollector.class);
- List<Object> securityZoneData = commonClassDao.getData(SecurityZone.class);
- for (int i = 0; i < securityZoneData.size() ; i++) {
- jpaSecurityZone = (SecurityZone) securityZoneData.get(i);
- if (jpaSecurityZone.getZoneValue().equals(tc1.getSecurityZoneId())){
- policyAdapter.setSecurityZone(jpaSecurityZone.getZoneName());
- break;
- }
- }
- }
- catch(Exception e) {
- policyLogger.error("Exception Caused while Retriving the JSON body data" +e);
- }
-
- Map<String, String> termTagMap;
- if(tc1 != null){
- for(int i=0;i<tc1.getFirewallRuleList().size();i++){
- termTagMap = new HashMap <>();
- String ruleName= tc1.getFirewallRuleList().get(i).getRuleName();
- String tagPickerName=tc1.getRuleToTag().get(i).getTagPickerName();
- termTagMap.put("key", ruleName);
- termTagMap.put("value", tagPickerName);
- attributeList.add(termTagMap);
- }
- }
- policyAdapter.setAttributes(attributeList);
- // Get the target data under policy.
- TargetType target = policy.getTarget();
- if (target != null) {
- // Under target we have AnyOFType
- List<AnyOfType> anyOfList = target.getAnyOf();
- if (anyOfList != null) {
- Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
- while (iterAnyOf.hasNext()) {
- AnyOfType anyOf = iterAnyOf.next();
- // Under AnyOFType we have AllOFType
- List<AllOfType> allOfList = anyOf.getAllOf();
- if (allOfList != null) {
- Iterator<AllOfType> iterAllOf = allOfList.iterator();
- while (iterAllOf.hasNext()) {
- AllOfType allOf = iterAllOf.next();
- // Under AllOFType we have Match
- List<MatchType> matchList = allOf.getMatch();
- if (matchList != null) {
-
- Iterator<MatchType> iterMatch = matchList.iterator();
- while (iterMatch.hasNext()) {
- MatchType match = iterMatch.next();
- //
- // Under the match we have attribute value and
- // attributeDesignator. So,finally down to the actual attribute.
- //
- AttributeValueType attributeValue = match.getAttributeValue();
- String value = (String) attributeValue.getContent().get(0);
- AttributeDesignatorType designator = match.getAttributeDesignator();
- String attributeId = designator.getAttributeId();
- if (("ConfigName").equals(attributeId)) {
- policyAdapter.setConfigName(value);
- }
- if (("RiskType").equals(attributeId)){
- policyAdapter.setRiskType(value);
- }
- if (("RiskLevel").equals(attributeId)){
- policyAdapter.setRiskLevel(value);
- }
- if (("guard").equals(attributeId)){
- policyAdapter.setGuard(value);
- }
- if ("TTLDate".equals(attributeId) && !value.contains("NA")){
- PolicyController controller = new PolicyController();
- String newDate = controller.convertDate(value);
- policyAdapter.setTtlDate(newDate);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
-
- @RequestMapping(value={"/policyController/ViewFWPolicyRule.htm"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
- public ModelAndView setFWViewRule(HttpServletRequest request, HttpServletResponse response){
- try {
- termCollectorList = new ArrayList<>();
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PolicyRestAdapter policyData = mapper.readValue(root.get("policyData").toString(), PolicyRestAdapter.class);
- if(! policyData.getAttributes().isEmpty()){
- for(Object attribute : policyData.getAttributes()){
- if(attribute instanceof LinkedHashMap<?, ?>){
- String key = ((LinkedHashMap<?, ?>) attribute).get("key").toString();
- termCollectorList.add(key);
- }
- }
- }
- TermList jpaTermList;
- String ruleSrcList;
- String ruleDestList;
- String ruleSrcPort;
- String ruleDestPort;
- String ruleAction;
- List <String> valueDesc;
- StringBuilder displayString = new StringBuilder();
- for (String id : termCollectorList) {
- List<Object> tmList = commonClassDao.getDataById(TermList.class, "termName", id);
- jpaTermList = (TermList) tmList.get(0);
- if (jpaTermList != null){
- ruleSrcList= jpaTermList.getSrcIPList();
- if ((ruleSrcList!= null) && (!ruleSrcList.isEmpty()) && !"null".equals(ruleSrcList)){
- displayString.append("Source IP List: " + jpaTermList.getSrcIPList());
- displayString.append(" ; \t\n");
- for(String srcList:ruleSrcList.split(",")){
- if(srcList.startsWith(GROUP)){
- AddressGroup ag;
- ag= mappingAddressGroup(srcList);
- displayString.append("\n\t"+"Group has :"+(ag != null ? ag.getPrefixList() : "") +"\n");
- if (ag != null) {
- for(String groupItems:ag.getPrefixList().split(",")){
- valueDesc=mapping(groupItems);
- displayString.append("\n\t"+"Name: "+groupItems);
- if(!valueDesc.isEmpty()){
- displayString.append("\n\t"+"Description: "+valueDesc.get(1));
- displayString.append("\n\t"+"Value: "+valueDesc.get(0));
- }
- displayString.append("\n");
- }
- }
- }else{
- if(!srcList.equals(ANY)){
- valueDesc=mapping(srcList);
- displayString.append("\n\t"+"Name: "+srcList);
- displayString.append("\n\t"+"Description: "+valueDesc.get(1));
- displayString.append("\n\t"+"Value: "+valueDesc.get(0));
- displayString.append("\n");
- }
- }
- }
- displayString.append("\n");
- }
- ruleDestList= jpaTermList.getDestIPList();
- if ( ruleDestList!= null && (!ruleDestList.isEmpty())&& ! "null".equals(ruleDestList)){
- displayString.append("Destination IP List: " + jpaTermList.getDestIPList());
- displayString.append(" ; \t\n");
- for(String destList:ruleDestList.split(",")){
- if(destList.startsWith(GROUP)){
- AddressGroup ag;
- ag= mappingAddressGroup(destList);
- displayString.append("\n\t"+"Group has :"+ (ag != null ? ag.getPrefixList() : "") +"\n");
- if (ag != null) {
- for(String groupItems:ag.getPrefixList().split(",")){
- valueDesc=mapping(groupItems);
- displayString.append("\n\t"+"Name: "+groupItems);
- displayString.append("\n\t"+"Description: "+valueDesc.get(1));
- displayString.append("\n\t"+"Value: "+valueDesc.get(0));
- displayString.append("\n\t");
- }
- }
- }else{
- if(!destList.equals(ANY)){
- valueDesc=mapping(destList);
- displayString.append("\n\t"+"Name: "+destList);
- displayString.append("\n\t"+"Description: "+valueDesc.get(1));
- displayString.append("\n\t"+"Value: "+valueDesc.get(0));
- displayString.append("\n\t");
- }
- }
- }
- displayString.append("\n");
- }
-
- ruleSrcPort=jpaTermList.getSrcPortList();
- if ( ruleSrcPort!= null && (!ruleSrcPort.isEmpty())&& !"null".equals(ruleSrcPort)) {
- displayString.append("\n"+"Source Port List:"
- + ruleSrcPort);
- displayString.append(" ; \t\n");
- }
-
- ruleDestPort= jpaTermList.getDestPortList();
- if (ruleDestPort != null && (!ruleDestPort.isEmpty())&& !"null".equals(ruleDestPort)) {
- displayString.append("\n"+"Destination Port List:"
- + ruleDestPort);
- displayString.append(" ; \t\n");
- for(String destServices:ruleDestPort.split(",")){
- if(destServices.startsWith(GROUP)){
- GroupServiceList sg;
- sg= mappingServiceGroup(destServices);
- displayString.append("\n\t"+"Service Group has :"+ (sg != null ? sg.getServiceList() : "") +"\n");
- if (sg != null) {
- for(String groupItems:sg.getServiceList().split(",")){
- ServiceList sl;
- sl= mappingServiceList(groupItems);
- displayString.append("\n\t"+"Name: "+
- sl.getServiceName());
- displayString.append("\n\t"+"Description: "+
- sl.getServiceDescription());
- displayString.append("\n\t"+"Transport-Protocol: "+
- sl.getServiceTransProtocol());
- displayString.append("\n\t"+"Ports: "+
- sl.getServicePorts());
- displayString.append("\n");
- }
- }
- }
- else{
- if(!destServices.equals(ANY)){
- ServiceList sl;
- sl= mappingServiceList(destServices);
- displayString.append("\n\t"+"Name: "+
- sl.getServiceName());
- displayString.append("\n\t"+"Description: "+
- sl.getServiceDescription());
- displayString.append("\n\t"+"Transport-Protocol: "+
- sl.getServiceTransProtocol());
- displayString.append("\n\t"+"Ports: "+
- sl.getServicePorts());
- displayString.append("\n");
- }
- }
- }
- displayString.append("\n");
- }
-
- ruleAction=(jpaTermList).getAction();
- if ( ruleAction!= null && (!ruleAction.isEmpty())) {
- displayString.append("\n"+"Action List:"
- + ruleAction);
- displayString.append(" ; \t\n");
- }
- }
- }
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
-
- PrintWriter out = response.getWriter();
- String responseString = mapper.writeValueAsString(displayString);
- JSONObject j = new JSONObject("{policyData: " + responseString + "}");
- out.write(j.toString());
- return null;
- } catch (Exception e) {
- policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
- }
- return null;
- }
-
- private String constructJson(PolicyRestAdapter policyData) {
- int ruleCount=1;
- //Maps to assosciate the values read from the TermList dictionary
- Map<Integer, String> srcIP_map =null;
- Map<Integer, String> destIP_map=null;
- Map<Integer, String> srcPort_map =null;
- Map<Integer, String> destPort_map =null;
- Map<Integer, String> action_map=null;
- Map<Integer, String> fromZone_map=null;
- Map<Integer, String> toZone_map=null;
-
- String ruleDesc=null;
- String ruleFromZone=null;
- String ruleToZone=null;
- String ruleSrcPrefixList=null;
- String ruleDestPrefixList=null;
- String ruleSrcPort=null;
- String ruleDestPort=null;
- String ruleAction=null;
-
- String json = null;
-
-
- List<String> expandableList = new ArrayList<>();
- TermList jpaTermList;
- TermCollector tc = new TermCollector();
- SecurityZone jpaSecurityZone;
- List<Term> termList = new ArrayList<>();
-
- Tags tags=null;
- List<Tags>tagsList= new ArrayList<>();
-
- TagDefines tagDefine= new TagDefines();
- List<TagDefines> tagList=null;
- ServiceListJson targetSl=null;
- AddressMembers addressMembersJson=null;
- int i=0;
- try{
- String networkRole="";
- for(String tag:tagCollectorList){
- tags= new Tags();
- List<Object> tagListData = commonClassDao.getData(FWTagPicker.class);
- for(int tagCounter=0; tagCounter<tagListData.size(); tagCounter++){
- FWTagPicker jpaTagPickerList=(FWTagPicker) tagListData.get(tagCounter);
- if (jpaTagPickerList.getTagPickerName().equals(tag) ){
- String tagValues=jpaTagPickerList.getTagValues();
- tagList= new ArrayList<>();
- for(String val:tagValues.split("#")) {
- int index=val.indexOf(':');
- String keyToStore=val.substring(0,index);
- String valueToStore=val.substring(index+1,val.length());
-
- tagDefine= new TagDefines();
- tagDefine.setKey(keyToStore);
- tagDefine.setValue(valueToStore);
- //Add to the collection.
- tagList.add(tagDefine);
-
- }
- networkRole=jpaTagPickerList.getNetworkRole();
- break;
- }
- }
- tags.setTags(tagList);
- tags.setTagPickerName(tag);
- tags.setRuleName(termCollectorList.get(i));
- tags.setNetworkRole(networkRole);
- tagsList.add(tags);
- i++;
- }
- tc.setRuleToTag(tagsList);
-
- for (int tl = 0 ; tl< termCollectorList.size(); tl++) {
- expandableList.add(termCollectorList.get(tl));
- Term targetTerm = new Term();
- targetTerm.setRuleName(termCollectorList.get(tl));
- List<Object> termListData = commonClassDao.getData(TermList.class);
- for (int j =0; j < termListData.size(); j++) {
- jpaTermList = (TermList) termListData.get(j);
- if (jpaTermList.getTermName().equals(termCollectorList.get(tl))){
- ruleDesc=jpaTermList.getTermDescription();
- if ((ruleDesc!=null)&& (!ruleDesc.isEmpty())){
- targetTerm.setDescription(ruleDesc);
- }
- ruleFromZone=jpaTermList.getFromZone();
-
- if ((ruleFromZone != null) && (!ruleFromZone.isEmpty())){
- fromZone_map = new HashMap<>();
- fromZone_map.put(tl, ruleFromZone);
- }
- ruleToZone=jpaTermList.getToZone();
-
- if ((ruleToZone != null) && (!ruleToZone.isEmpty())){
- toZone_map = new HashMap<>();
- toZone_map.put(tl, ruleToZone);
- }
- ruleSrcPrefixList=jpaTermList.getSrcIPList();
-
- if ((ruleSrcPrefixList != null) && (!ruleSrcPrefixList.isEmpty())){
- srcIP_map = new HashMap<>();
- srcIP_map.put(tl, ruleSrcPrefixList);
- }
-
- ruleDestPrefixList= jpaTermList.getDestIPList();
- if ((ruleDestPrefixList != null) && (!ruleDestPrefixList.isEmpty())){
- destIP_map = new HashMap<>();
- destIP_map.put(tl, ruleDestPrefixList);
- }
-
- ruleSrcPort=jpaTermList.getSrcPortList();
-
- if (ruleSrcPort != null && (!ruleSrcPort.isEmpty())){
- srcPort_map = new HashMap<>();
- srcPort_map.put(tl, ruleSrcPort);
- }
-
- ruleDestPort= jpaTermList.getDestPortList();
-
- if (ruleDestPort!= null && (!jpaTermList.getDestPortList().isEmpty())){
- destPort_map = new HashMap<>();
- destPort_map.put(tl, ruleDestPort);
- }
-
- ruleAction=jpaTermList.getAction();
-
- if (( ruleAction!= null) && (!ruleAction.isEmpty())){
- action_map = new HashMap<>();
- action_map.put(tl, ruleAction);
- }
- }
- }
- targetTerm.setEnabled(true);
- targetTerm.setLog(true);
- targetTerm.setNegateSource(false);
- targetTerm.setNegateDestination(false);
-
- if(action_map!=null){
- targetTerm.setAction(action_map.get(tl));
- }
-
- //FromZone arrays
- if(fromZone_map!=null){
- List<String> fromZone= new ArrayList<>();
- for(String fromZoneStr:fromZone_map.get(tl).split(",") ){
- fromZone.add(fromZoneStr);
- }
- targetTerm.setFromZones(fromZone);
- }
-
- //ToZone arrays
- if(toZone_map!=null){
- List<String> toZone= new ArrayList<>();
- for(String toZoneStr:toZone_map.get(tl).split(",") ){
- toZone.add(toZoneStr);
- }
- targetTerm.setToZones(toZone);
- }
-
- //Destination Services.
- if(destPort_map!=null){
- Set<ServicesJson> destServicesJsonList= new HashSet<>();
- for(String destServices:destPort_map.get(tl).split(",") ){
- ServicesJson destServicesJson= new ServicesJson();
- destServicesJson.setType("REFERENCE");
- if(destServices.equals(ANY)){
- destServicesJson.setName("any");
- destServicesJsonList.add(destServicesJson);
- break;
- }else{
- if(destServices.startsWith(GROUP)){
- destServicesJson.setName(destServices.substring(6,destServices.length()));
- } else{
- destServicesJson.setName(destServices);
- }
- destServicesJsonList.add(destServicesJson);
- }
- }
- targetTerm.setDestServices(destServicesJsonList);
- }
- //ExpandableServicesList
- if((srcPort_map!=null) && (destPort_map!=null)){
- String servicesCollateString = srcPort_map.get(tl) + "," + destPort_map.get(tl);
- expandableServicesList.add(servicesCollateString);
- }else if (srcPort_map!=null){
- expandableServicesList.add(srcPort_map.get(tl));
- }else if (destPort_map!=null){
- expandableServicesList.add(destPort_map.get(tl));
- }
-
- if(srcIP_map!=null){
- //Source List
- List<AddressJson> sourceListArrayJson= new ArrayList<>();
- for(String srcList:srcIP_map.get(tl).split(",") ){
- AddressJson srcListJson= new AddressJson();
- if(srcList.equals(ANY)){
- srcListJson.setType("any");
- sourceListArrayJson.add(srcListJson);
- break;
- }else{
- srcListJson.setType("REFERENCE");
- if(srcList.startsWith(GROUP)){
- srcListJson.setName(srcList.substring(6,srcList.length()));
- }else{
- srcListJson.setName(srcList);
- }
- sourceListArrayJson.add(srcListJson);
- }
- }
- targetTerm.setSourceList(sourceListArrayJson);
- }
- if(destIP_map!=null){
- //Destination List
- List<AddressJson> destListArrayJson= new ArrayList<>();
- for(String destList:destIP_map.get(tl).split(",")){
- AddressJson destListJson= new AddressJson();
- if(destList.equals(ANY)){
- destListJson.setType("any");
- destListArrayJson.add(destListJson);
- break;
- }else{
- destListJson.setType("REFERENCE");
- if(destList.startsWith(GROUP)){
- destListJson.setName(destList.substring(6,destList.length()));
- }else{
- destListJson.setName(destList);
- }
- destListArrayJson.add(destListJson);
- }
- }
- targetTerm.setDestinationList(destListArrayJson);
- }
- //ExpandablePrefixIPList
- if ((srcIP_map!=null) && (destIP_map!=null))
- {
- String collateString = srcIP_map.get(tl) + "," + destIP_map
- .get(tl);
- expandablePrefixIPList.add(collateString);
- }
- else if(srcIP_map!=null){
- expandablePrefixIPList.add(srcIP_map.get(tl));
- }
- else if(destIP_map!=null){
- expandablePrefixIPList.add(destIP_map.get(tl));
- }
- termList.add(targetTerm);
- targetTerm.setPosition(Integer.toString (ruleCount++));
- }
-
- List<Object> securityZoneData = commonClassDao.getData(SecurityZone.class);
- for (int j =0 ; j< securityZoneData.size() ; j++){
- jpaSecurityZone = (SecurityZone) securityZoneData.get(j);
- if (jpaSecurityZone.getZoneName().equals(policyData.getSecurityZone())){
- tc.setSecurityZoneId(jpaSecurityZone.getZoneValue());
- IdMap idMapInstance= new IdMap();
- idMapInstance.setAstraId(jpaSecurityZone.getZoneValue());
- idMapInstance.setVendorId("deviceGroup:dev");
-
- List<IdMap> idMap = new ArrayList <>();
- idMap.add(idMapInstance);
-
- VendorSpecificData vendorStructure= new VendorSpecificData();
- vendorStructure.setIdMap(idMap);
- tc.setVendorSpecificData(vendorStructure);
- break;
- }
- }
-
- tc.setServiceTypeId("/v0/firewall/pan");
- tc.setConfigName(policyData.getConfigName());
- tc.setVendorServiceId("vipr");
-
- DeployNowJson deployNow= new DeployNowJson();
- deployNow.setDeployNow(false);
-
- tc.setDeploymentOption(deployNow);
-
- Set<ServiceListJson> servListArray = new HashSet<>();
- Set<ServiceGroupJson> servGroupArray= new HashSet<>();
- Set<AddressGroupJson> addrGroupArray= new HashSet<>();
- Set<AddressMembers> addrArray= new HashSet<> ();
-
- ServiceGroupJson targetSg;
- AddressGroupJson addressSg;
- ServiceListJson targetAny;
- ServiceListJson targetAnyTcp;
- ServiceListJson targetAnyUdp;
-
- for(String serviceList:expandableServicesList){
- for(String t: serviceList.split(",")){
- if(!t.startsWith(GROUP)){
- if(!t.equals(ANY)){
- ServiceList sl;
- targetSl= new ServiceListJson();
- sl= mappingServiceList(t);
- targetSl.setName(sl.getServiceName());
- targetSl.setDescription(sl.getServiceDescription());
- targetSl.setTransportProtocol(sl.getServiceTransProtocol());
- targetSl.setType(sl.getServiceType());
- targetSl.setPorts(sl.getServicePorts());
- servListArray.add(targetSl);
- }else{
- //Any for destinationServices.
- //Add names any, any-tcp, any-udp to the serviceGroup object.
- targetAny= new ServiceListJson();
- targetAny.setName("any");
- targetAny.setType("SERVICE");
- targetAny.setTransportProtocol("any");
- targetAny.setPorts("any");
-
- servListArray.add(targetAny);
-
- targetAnyTcp= new ServiceListJson();
- targetAnyTcp.setName("any-tcp");
- targetAnyTcp.setType("SERVICE");
- targetAnyTcp.setTransportProtocol("tcp");
- targetAnyTcp.setPorts("any");
-
- servListArray.add(targetAnyTcp);
-
- targetAnyUdp= new ServiceListJson();
- targetAnyUdp.setName("any-udp");
- targetAnyUdp.setType("SERVICE");
- targetAnyUdp.setTransportProtocol("udp");
- targetAnyUdp.setPorts("any");
-
- servListArray.add(targetAnyUdp);
- }
- }else{//This is a group
- GroupServiceList sg;
- targetSg= new ServiceGroupJson();
- sg= mappingServiceGroup(t);
-
- String name=sg.getGroupName();
- //Removing the "Group_" prepending string before packing the JSON
- targetSg.setName(name.substring(6,name.length()));
- List<ServiceMembers> servMembersList= new ArrayList<>();
-
- for(String groupString: sg.getServiceList().split(",")){
- ServiceMembers serviceMembers= new ServiceMembers();
- serviceMembers.setType("REFERENCE");
- serviceMembers.setName(groupString);
- servMembersList.add(serviceMembers);
- //Expand the group Name
- ServiceList expandGroupSl ;
- targetSl= new ServiceListJson();
- expandGroupSl= mappingServiceList(groupString);
-
- targetSl.setName(expandGroupSl.getServiceName());
- targetSl.setDescription(expandGroupSl.getServiceDescription());
- targetSl.setTransportProtocol(expandGroupSl.getServiceTransProtocol());
- targetSl.setType(expandGroupSl.getServiceType());
- targetSl.setPorts(expandGroupSl.getServicePorts());
- servListArray.add(targetSl);
- }
-
- targetSg.setMembers(servMembersList);
- servGroupArray.add(targetSg);
-
- }
- }
- }
-
- Set<PrefixIPList> prefixIPList = new HashSet<>();
- for(String prefixList:expandablePrefixIPList){
- for(String prefixIP: prefixList.split(",")){
- if(!prefixIP.startsWith(GROUP)){
- if(!prefixIP.equals(ANY)){
- List<AddressMembers> addMembersList= new ArrayList<>();
- List<String> valueDesc;
- PrefixIPList targetAddressList = new PrefixIPList();
- AddressMembers addressMembers= new AddressMembers();
- targetAddressList.setName(prefixIP);
- policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "PrefixList value:"+prefixIP);
- valueDesc = mapping(prefixIP);
- if(!valueDesc.isEmpty()){
- policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "PrefixList description:"+valueDesc.get(1));
- targetAddressList.setDescription(valueDesc.get(1));
- }
-
-
- addressMembers.setType("SUBNET");
- if(!valueDesc.isEmpty()) {
- addressMembers.setValue(valueDesc.get(0));
- }
-
- addMembersList.add(addressMembers);
-
- targetAddressList.setMembers(addMembersList);
- prefixIPList.add(targetAddressList);
- }
- }
- else{//This is a group
- AddressGroup ag;
- addressSg= new AddressGroupJson();
- ag= mappingAddressGroup(prefixIP);
-
- String name=ag.getGroupName();
- //Removing the "Group_" prepending string before packing the JSON
- addressSg.setName(name.substring(6,name.length()));
-
- List<AddressMembersJson> addrMembersList= new ArrayList<>();
- for(String groupString: ag.getPrefixList().split(",")){
- List<String> valueDesc;
- AddressMembersJson addressMembers= new AddressMembersJson();
- addressMembers.setType("REFERENCES");
- addressMembers.setName(groupString);
- addrMembersList.add(addressMembers);
- //Expand the group Name
- addressMembersJson= new AddressMembers();
- valueDesc= mapping (groupString);
-
- addressMembersJson.setName(groupString);
- addressMembersJson.setType("SUBNET");
- addressMembersJson.setValue(valueDesc.get(0));
-
- addrArray.add(addressMembersJson);
-
- }
- addressSg.setMembers(addrMembersList);
- addrGroupArray.add(addressSg);
- }
-
- }
- }
-
- Set<Object> serviceGroup= new HashSet<>();
-
- for(Object obj1:servGroupArray){
- serviceGroup.add(obj1);
- }
-
- for(Object obj:servListArray){
- serviceGroup.add(obj);
- }
-
- Set<Object> addressGroup= new HashSet<>();
-
- for(Object addObj:prefixIPList){
- addressGroup.add(addObj);
- }
-
- for(Object addObj1:addrGroupArray){
- addressGroup.add(addObj1);
- }
-
- for(Object addObj2:addrArray){
- addressGroup.add(addObj2);
- }
-
-
- tc.setServiceGroups(serviceGroup);
- tc.setAddressGroups(addressGroup);
- tc.setFirewallRuleList(termList);
-
- ObjectWriter om = new ObjectMapper().writer();
- try {
- json = om.writeValueAsString(tc);
- } catch (JsonGenerationException e) {
- policyLogger.error("JsonGenerationException Ocured",e);
- } catch (JsonMappingException e) {
- policyLogger.error("IOException Occured",e);
- }
-
- }catch (Exception e) {
- policyLogger.error("Exception Occured"+e);
- }
-
- return json;
- }
+ private static Logger policyLogger = FlexLogger.getLogger(CreateFirewallController.class);
+ private static final String ANY = "ANY";
+ private static final String GROUP = "Group_";
+ private static CommonClassDao commonClassDao;
+ private List<String> tagCollectorList;
+ private List<String> termCollectorList;
+
+ List<String> expandablePrefixIpList = new ArrayList<>();
+ List<String> expandableServicesList = new ArrayList<>();
+
+ @Autowired
+ SessionFactory sessionFactory;
+
+ public CreateFirewallController() {
+ // Empty constructor
+ }
+
+ public static CommonClassDao getCommonClassDao() {
+ return commonClassDao;
+ }
+
+ public static void setCommonClassDao(CommonClassDao commonClassDao) {
+ CreateFirewallController.commonClassDao = commonClassDao;
+ }
+
+ @Autowired
+ private CreateFirewallController(CommonClassDao commonClassDao) {
+ CreateFirewallController.commonClassDao = commonClassDao;
+ }
+
+ /**
+ * setDataToPolicyRestAdapter.
+ *
+ * @param policyData PolicyRestAdapter
+ * @return PolicyRestAdapter
+ */
+ public PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter policyData) {
+ termCollectorList = new ArrayList<>();
+ tagCollectorList = new ArrayList<>();
+ if (!policyData.getAttributes().isEmpty()) {
+ for (Object attribute : policyData.getAttributes()) {
+ if (attribute instanceof LinkedHashMap<?, ?>) {
+ String key = ((LinkedHashMap<?, ?>) attribute).get("key").toString();
+ termCollectorList.add(key);
+
+ String tag = ((LinkedHashMap<?, ?>) attribute).get("value").toString();
+ tagCollectorList.add(tag);
+ }
+ }
+ }
+ String jsonBody = constructJson(policyData);
+ if (StringUtils.isBlank(jsonBody)) {
+ policyData.setJsonBody(jsonBody);
+ } else {
+ policyData.setJsonBody("{}");
+ }
+ //
+ // Hmmm - seems to be overriding the previous if statement
+ //
+ policyData.setJsonBody(jsonBody);
+
+ return policyData;
+ }
+
+ private List<String> mapping(String expandableList) {
+ String value;
+ String desc;
+ List<String> valueDesc = new ArrayList<>();
+ List<Object> prefixListData = commonClassDao.getData(PrefixList.class);
+ for (int i = 0; i < prefixListData.size(); i++) {
+ PrefixList prefixList = (PrefixList) prefixListData.get(i);
+ if (prefixList.getPrefixListName().equals(expandableList)) {
+ value = prefixList.getPrefixListValue();
+ valueDesc.add(value);
+ desc = prefixList.getDescription();
+ valueDesc.add(desc);
+ break;
+ }
+ }
+ return valueDesc;
+ }
+
+ private ServiceList mappingServiceList(String expandableList) {
+ ServiceList serviceList = null;
+ List<Object> serviceListData = commonClassDao.getData(ServiceList.class);
+ for (int i = 0; i < serviceListData.size(); i++) {
+ serviceList = (ServiceList) serviceListData.get(i);
+ if (serviceList.getServiceName().equals(expandableList)) {
+ break;
+ }
+ }
+ return serviceList;
+ }
+
+ private GroupServiceList mappingServiceGroup(String expandableList) {
+
+ GroupServiceList serviceGroup = null;
+ List<Object> serviceGroupData = commonClassDao.getData(GroupServiceList.class);
+ for (int i = 0; i < serviceGroupData.size(); i++) {
+ serviceGroup = (GroupServiceList) serviceGroupData.get(i);
+ if (serviceGroup.getGroupName().equals(expandableList)) {
+ break;
+ }
+ }
+ return serviceGroup;
+ }
+
+ private AddressGroup mappingAddressGroup(String expandableList) {
+
+ AddressGroup addressGroup = null;
+ List<Object> addressGroupData = commonClassDao.getData(AddressGroup.class);
+ for (int i = 0; i < addressGroupData.size(); i++) {
+ addressGroup = (AddressGroup) addressGroupData.get(i);
+ if (addressGroup.getGroupName().equals(expandableList)) {
+ break;
+ }
+ }
+ return addressGroup;
+ }
+
+ public void prePopulateFWPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
+ ArrayList<Object> attributeList;
+ attributeList = new ArrayList<>();
+ if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+ return;
+ }
+ Object policyData = policyAdapter.getPolicyData();
+ PolicyType policy = (PolicyType) policyData;
+ // policy name value is the policy name without any prefix and Extensions.
+ policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
+ String policyNameValue =
+ policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("FW_") + 3);
+ if (policyLogger.isDebugEnabled()) {
+ policyLogger
+ .debug("Prepopulating form data for Config Policy selected:" + policyAdapter.getPolicyName());
+ }
+ policyAdapter.setPolicyName(policyNameValue);
+ String description = "";
+ try {
+ description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
+ } catch (Exception e) {
+ policyLogger.info("General error", e);
+ description = policy.getDescription();
+ }
+ policyAdapter.setPolicyDescription(description);
+
+ ObjectMapper mapper = new ObjectMapper();
+
+ TermCollector tc1 = null;
+ try {
+ // Json conversion.
+ String data;
+ SecurityZone jpaSecurityZone;
+ data = entity.getConfigurationData().getConfigBody();
+ tc1 = mapper.readValue(data, TermCollector.class);
+ List<Object> securityZoneData = commonClassDao.getData(SecurityZone.class);
+ for (int i = 0; i < securityZoneData.size(); i++) {
+ jpaSecurityZone = (SecurityZone) securityZoneData.get(i);
+ if (jpaSecurityZone.getZoneValue().equals(tc1.getSecurityZoneId())) {
+ policyAdapter.setSecurityZone(jpaSecurityZone.getZoneName());
+ break;
+ }
+ }
+ } catch (Exception e) {
+ policyLogger.error("Exception Caused while Retriving the JSON body data" + e);
+ }
+
+ Map<String, String> termTagMap;
+ if (tc1 != null) {
+ for (int i = 0; i < tc1.getFirewallRuleList().size(); i++) {
+ termTagMap = new HashMap<>();
+ String ruleName = tc1.getFirewallRuleList().get(i).getRuleName();
+ String tagPickerName = tc1.getRuleToTag().get(i).getTagPickerName();
+ termTagMap.put("key", ruleName);
+ termTagMap.put("value", tagPickerName);
+ attributeList.add(termTagMap);
+ }
+ }
+ policyAdapter.setAttributes(attributeList);
+ // Get the target data under policy.
+ TargetType target = policy.getTarget();
+ if (target == null) {
+ return;
+ }
+ // Under target we have AnyOFType
+ // NOTE: target.getAnyOf() will never be null
+ for (AnyOfType anyOf : target.getAnyOf()) {
+ for (AllOfType allOf : anyOf.getAllOf()) {
+ for (MatchType match : allOf.getMatch()) {
+ //
+ // Under the match we have attribute value and
+ // attributeDesignator. So,finally down to the actual attribute.
+ //
+ policyAdapter.setupUsingAttribute(match.getAttributeDesignator().getAttributeId(),
+ (String) match.getAttributeValue().getContent().get(0));
+ }
+ }
+ }
+ }
+
+ /**
+ * setFWViewRule.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ * @return ModelAndView
+ */
+ @RequestMapping(
+ value = {"/policyController/ViewFWPolicyRule.htm"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.POST})
+ public ModelAndView setFWViewRule(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ termCollectorList = new ArrayList<>();
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PolicyRestAdapter policyData = mapper.readValue(root.get("policyData").toString(), PolicyRestAdapter.class);
+ if (!policyData.getAttributes().isEmpty()) {
+ for (Object attribute : policyData.getAttributes()) {
+ if (attribute instanceof LinkedHashMap<?, ?>) {
+ String key = ((LinkedHashMap<?, ?>) attribute).get("key").toString();
+ termCollectorList.add(key);
+ }
+ }
+ }
+ TermList jpaTermList;
+ String ruleSrcList;
+ String ruleDestList;
+ String ruleSrcPort;
+ String ruleDestPort;
+ String ruleAction;
+ List<String> valueDesc;
+ StringBuilder displayString = new StringBuilder();
+ for (String id : termCollectorList) {
+ List<Object> tmList = commonClassDao.getDataById(TermList.class, "termName", id);
+ jpaTermList = (TermList) tmList.get(0);
+ if (jpaTermList != null) {
+ ruleSrcList = jpaTermList.getSrcIpList();
+ if ((ruleSrcList != null) && (!ruleSrcList.isEmpty()) && !"null".equals(ruleSrcList)) {
+ displayString.append("Source IP List: " + jpaTermList.getSrcIpList());
+ displayString.append(" ; \t\n");
+ for (String srcList : ruleSrcList.split(",")) {
+ if (srcList.startsWith(GROUP)) {
+ AddressGroup ag;
+ ag = mappingAddressGroup(srcList);
+ displayString.append(
+ "\n\t" + "Group has :" + (ag != null ? ag.getPrefixList() : "") + "\n");
+ if (ag != null) {
+ for (String groupItems : ag.getPrefixList().split(",")) {
+ valueDesc = mapping(groupItems);
+ displayString.append("\n\t" + "Name: " + groupItems);
+ if (!valueDesc.isEmpty()) {
+ displayString.append("\n\t" + "Description: " + valueDesc.get(1));
+ displayString.append("\n\t" + "Value: " + valueDesc.get(0));
+ }
+ displayString.append("\n");
+ }
+ }
+ } else {
+ if (!srcList.equals(ANY)) {
+ valueDesc = mapping(srcList);
+ displayString.append("\n\t" + "Name: " + srcList);
+ displayString.append("\n\t" + "Description: " + valueDesc.get(1));
+ displayString.append("\n\t" + "Value: " + valueDesc.get(0));
+ displayString.append("\n");
+ }
+ }
+ }
+ displayString.append("\n");
+ }
+ ruleDestList = jpaTermList.getDestIpList();
+ if (ruleDestList != null && (!ruleDestList.isEmpty()) && !"null".equals(ruleDestList)) {
+ displayString.append("Destination IP List: " + jpaTermList.getDestIpList());
+ displayString.append(" ; \t\n");
+ for (String destList : ruleDestList.split(",")) {
+ if (destList.startsWith(GROUP)) {
+ AddressGroup ag;
+ ag = mappingAddressGroup(destList);
+ displayString.append(
+ "\n\t" + "Group has :" + (ag != null ? ag.getPrefixList() : "") + "\n");
+ if (ag != null) {
+ for (String groupItems : ag.getPrefixList().split(",")) {
+ valueDesc = mapping(groupItems);
+ displayString.append("\n\t" + "Name: " + groupItems);
+ displayString.append("\n\t" + "Description: " + valueDesc.get(1));
+ displayString.append("\n\t" + "Value: " + valueDesc.get(0));
+ displayString.append("\n\t");
+ }
+ }
+ } else {
+ if (!destList.equals(ANY)) {
+ valueDesc = mapping(destList);
+ displayString.append("\n\t" + "Name: " + destList);
+ displayString.append("\n\t" + "Description: " + valueDesc.get(1));
+ displayString.append("\n\t" + "Value: " + valueDesc.get(0));
+ displayString.append("\n\t");
+ }
+ }
+ }
+ displayString.append("\n");
+ }
+
+ ruleSrcPort = jpaTermList.getSrcPortList();
+ if (ruleSrcPort != null && (!ruleSrcPort.isEmpty()) && !"null".equals(ruleSrcPort)) {
+ displayString.append("\n" + "Source Port List:" + ruleSrcPort);
+ displayString.append(" ; \t\n");
+ }
+
+ ruleDestPort = jpaTermList.getDestPortList();
+ if (ruleDestPort != null && (!ruleDestPort.isEmpty()) && !"null".equals(ruleDestPort)) {
+ displayString.append("\n" + "Destination Port List:" + ruleDestPort);
+ displayString.append(" ; \t\n");
+ for (String destServices : ruleDestPort.split(",")) {
+ if (destServices.startsWith(GROUP)) {
+ GroupServiceList sg;
+ sg = mappingServiceGroup(destServices);
+ displayString.append("\n\t" + "Service Group has :"
+ + (sg != null ? sg.getServiceList() : "") + "\n");
+ if (sg != null) {
+ for (String groupItems : sg.getServiceList().split(",")) {
+ ServiceList sl;
+ sl = mappingServiceList(groupItems);
+ displayString.append("\n\t" + "Name: " + sl.getServiceName());
+ displayString.append("\n\t" + "Description: " + sl.getServiceDescription());
+ displayString.append(
+ "\n\t" + "Transport-Protocol: " + sl.getServiceTransportProtocol());
+ displayString.append("\n\t" + "Ports: " + sl.getServicePorts());
+ displayString.append("\n");
+ }
+ }
+ } else {
+ if (!destServices.equals(ANY)) {
+ ServiceList sl;
+ sl = mappingServiceList(destServices);
+ displayString.append("\n\t" + "Name: " + sl.getServiceName());
+ displayString.append("\n\t" + "Description: " + sl.getServiceDescription());
+ displayString
+ .append("\n\t" + "Transport-Protocol: " + sl.getServiceTransportProtocol());
+ displayString.append("\n\t" + "Ports: " + sl.getServicePorts());
+ displayString.append("\n");
+ }
+ }
+ }
+ displayString.append("\n");
+ }
+
+ ruleAction = (jpaTermList).getAction();
+ if (ruleAction != null && (!ruleAction.isEmpty())) {
+ displayString.append("\n" + "Action List:" + ruleAction);
+ displayString.append(" ; \t\n");
+ }
+ }
+ }
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+
+ String responseString = mapper.writeValueAsString(displayString);
+ response.getWriter().write(new JSONObject("{policyData: " + responseString + "}").toString());
+ return null;
+ } catch (Exception e) {
+ policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + e);
+ }
+ return null;
+ }
+
+ private String constructJson(PolicyRestAdapter policyData) {
+ int ruleCount = 1;
+ // Maps to assosciate the values read from the TermList dictionary
+ Map<Integer, String> mapSrcIp = null;
+ Map<Integer, String> mapDestIP = null;
+ Map<Integer, String> mapSrcPort = null;
+ Map<Integer, String> mapDestPort = null;
+ Map<Integer, String> mapAction = null;
+ Map<Integer, String> mapFromZone = null;
+ Map<Integer, String> mapToZone = null;
+
+ String ruleDesc = null;
+ String ruleFromZone = null;
+ String ruleToZone = null;
+ String ruleSrcPrefixList = null;
+ String ruleDestPrefixList = null;
+ String ruleSrcPort = null;
+ String ruleDestPort = null;
+ String ruleAction = null;
+
+ String json = null;
+
+ List<String> expandableList = new ArrayList<>();
+ TermList jpaTermList;
+ TermCollector tc = new TermCollector();
+ SecurityZone jpaSecurityZone;
+ List<Term> termList = new ArrayList<>();
+
+ Tags tags = null;
+ List<Tags> tagsList = new ArrayList<>();
+
+ TagDefines tagDefine = new TagDefines();
+ List<TagDefines> tagList = null;
+ ServiceListJson targetSl = null;
+ AddressMembers addressMembersJson = null;
+ int intCounter = 0;
+ try {
+ String networkRole = "";
+ for (String tag : tagCollectorList) {
+ tags = new Tags();
+ List<Object> tagListData = commonClassDao.getData(FwTagPicker.class);
+ for (int tagCounter = 0; tagCounter < tagListData.size(); tagCounter++) {
+ FwTagPicker jpaTagPickerList = (FwTagPicker) tagListData.get(tagCounter);
+ if (jpaTagPickerList.getTagPickerName().equals(tag)) {
+ String tagValues = jpaTagPickerList.getTagValues();
+ tagList = new ArrayList<>();
+ for (String val : tagValues.split("#")) {
+ int index = val.indexOf(':');
+ String keyToStore = val.substring(0, index);
+ String valueToStore = val.substring(index + 1, val.length());
+
+ tagDefine = new TagDefines();
+ tagDefine.setKey(keyToStore);
+ tagDefine.setValue(valueToStore);
+ // Add to the collection.
+ tagList.add(tagDefine);
+
+ }
+ networkRole = jpaTagPickerList.getNetworkRole();
+ break;
+ }
+ }
+ tags.setTags(tagList);
+ tags.setTagPickerName(tag);
+ tags.setRuleName(termCollectorList.get(intCounter));
+ tags.setNetworkRole(networkRole);
+ tagsList.add(tags);
+ intCounter++;
+ }
+ tc.setRuleToTag(tagsList);
+
+ for (int tl = 0; tl < termCollectorList.size(); tl++) {
+ expandableList.add(termCollectorList.get(tl));
+ Term targetTerm = new Term();
+ targetTerm.setRuleName(termCollectorList.get(tl));
+ List<Object> termListData = commonClassDao.getData(TermList.class);
+ for (int j = 0; j < termListData.size(); j++) {
+ jpaTermList = (TermList) termListData.get(j);
+ if (jpaTermList.getTermName().equals(termCollectorList.get(tl))) {
+ ruleDesc = jpaTermList.getDescription();
+ if ((ruleDesc != null) && (!ruleDesc.isEmpty())) {
+ targetTerm.setDescription(ruleDesc);
+ }
+ ruleFromZone = jpaTermList.getFromZone();
+
+ if ((ruleFromZone != null) && (!ruleFromZone.isEmpty())) {
+ mapFromZone = new HashMap<>();
+ mapFromZone.put(tl, ruleFromZone);
+ }
+ ruleToZone = jpaTermList.getToZone();
+
+ if ((ruleToZone != null) && (!ruleToZone.isEmpty())) {
+ mapToZone = new HashMap<>();
+ mapToZone.put(tl, ruleToZone);
+ }
+ ruleSrcPrefixList = jpaTermList.getSrcIpList();
+
+ if ((ruleSrcPrefixList != null) && (!ruleSrcPrefixList.isEmpty())) {
+ mapSrcIp = new HashMap<>();
+ mapSrcIp.put(tl, ruleSrcPrefixList);
+ }
+
+ ruleDestPrefixList = jpaTermList.getDestIpList();
+ if ((ruleDestPrefixList != null) && (!ruleDestPrefixList.isEmpty())) {
+ mapDestIP = new HashMap<>();
+ mapDestIP.put(tl, ruleDestPrefixList);
+ }
+
+ ruleSrcPort = jpaTermList.getSrcPortList();
+
+ if (ruleSrcPort != null && (!ruleSrcPort.isEmpty())) {
+ mapSrcPort = new HashMap<>();
+ mapSrcPort.put(tl, ruleSrcPort);
+ }
+
+ ruleDestPort = jpaTermList.getDestPortList();
+
+ if (ruleDestPort != null && (!jpaTermList.getDestPortList().isEmpty())) {
+ mapDestPort = new HashMap<>();
+ mapDestPort.put(tl, ruleDestPort);
+ }
+
+ ruleAction = jpaTermList.getAction();
+
+ if ((ruleAction != null) && (!ruleAction.isEmpty())) {
+ mapAction = new HashMap<>();
+ mapAction.put(tl, ruleAction);
+ }
+ }
+ }
+ targetTerm.setEnabled(true);
+ targetTerm.setLog(true);
+ targetTerm.setNegateSource(false);
+ targetTerm.setNegateDestination(false);
+
+ if (mapAction != null) {
+ targetTerm.setAction(mapAction.get(tl));
+ }
+
+ // FromZone arrays
+ if (mapFromZone != null) {
+ List<String> fromZone = new ArrayList<>();
+ for (String fromZoneStr : mapFromZone.get(tl).split(",")) {
+ fromZone.add(fromZoneStr);
+ }
+ targetTerm.setFromZones(fromZone);
+ }
+
+ // ToZone arrays
+ if (mapToZone != null) {
+ List<String> toZone = new ArrayList<>();
+ for (String toZoneStr : mapToZone.get(tl).split(",")) {
+ toZone.add(toZoneStr);
+ }
+ targetTerm.setToZones(toZone);
+ }
+
+ // Destination Services.
+ if (mapDestPort != null) {
+ Set<ServicesJson> destServicesJsonList = new HashSet<>();
+ for (String destServices : mapDestPort.get(tl).split(",")) {
+ ServicesJson destServicesJson = new ServicesJson();
+ destServicesJson.setType("REFERENCE");
+ if (destServices.equals(ANY)) {
+ destServicesJson.setName("any");
+ destServicesJsonList.add(destServicesJson);
+ break;
+ } else {
+ if (destServices.startsWith(GROUP)) {
+ destServicesJson.setName(destServices.substring(6, destServices.length()));
+ } else {
+ destServicesJson.setName(destServices);
+ }
+ destServicesJsonList.add(destServicesJson);
+ }
+ }
+ targetTerm.setDestServices(destServicesJsonList);
+ }
+ // ExpandableServicesList
+ if ((mapSrcPort != null) && (mapDestPort != null)) {
+ String servicesCollateString = mapSrcPort.get(tl) + "," + mapDestPort.get(tl);
+ expandableServicesList.add(servicesCollateString);
+ } else if (mapSrcPort != null) {
+ expandableServicesList.add(mapSrcPort.get(tl));
+ } else if (mapDestPort != null) {
+ expandableServicesList.add(mapDestPort.get(tl));
+ }
+
+ if (mapSrcIp != null) {
+ // Source List
+ List<AddressJson> sourceListArrayJson = new ArrayList<>();
+ for (String srcList : mapSrcIp.get(tl).split(",")) {
+ AddressJson srcListJson = new AddressJson();
+ if (srcList.equals(ANY)) {
+ srcListJson.setType("any");
+ sourceListArrayJson.add(srcListJson);
+ break;
+ } else {
+ srcListJson.setType("REFERENCE");
+ if (srcList.startsWith(GROUP)) {
+ srcListJson.setName(srcList.substring(6, srcList.length()));
+ } else {
+ srcListJson.setName(srcList);
+ }
+ sourceListArrayJson.add(srcListJson);
+ }
+ }
+ targetTerm.setSourceList(sourceListArrayJson);
+ }
+ if (mapDestIP != null) {
+ // Destination List
+ List<AddressJson> destListArrayJson = new ArrayList<>();
+ for (String destList : mapDestIP.get(tl).split(",")) {
+ AddressJson destListJson = new AddressJson();
+ if (destList.equals(ANY)) {
+ destListJson.setType("any");
+ destListArrayJson.add(destListJson);
+ break;
+ } else {
+ destListJson.setType("REFERENCE");
+ if (destList.startsWith(GROUP)) {
+ destListJson.setName(destList.substring(6, destList.length()));
+ } else {
+ destListJson.setName(destList);
+ }
+ destListArrayJson.add(destListJson);
+ }
+ }
+ targetTerm.setDestinationList(destListArrayJson);
+ }
+ // ExpandablePrefixIPList
+ if ((mapSrcIp != null) && (mapDestIP != null)) {
+ String collateString = mapSrcIp.get(tl) + "," + mapDestIP.get(tl);
+ expandablePrefixIpList.add(collateString);
+ } else if (mapSrcIp != null) {
+ expandablePrefixIpList.add(mapSrcIp.get(tl));
+ } else if (mapDestIP != null) {
+ expandablePrefixIpList.add(mapDestIP.get(tl));
+ }
+ termList.add(targetTerm);
+ targetTerm.setPosition(Integer.toString(ruleCount++));
+ }
+
+ List<Object> securityZoneData = commonClassDao.getData(SecurityZone.class);
+ for (int j = 0; j < securityZoneData.size(); j++) {
+ jpaSecurityZone = (SecurityZone) securityZoneData.get(j);
+ if (jpaSecurityZone.getZoneName().equals(policyData.getSecurityZone())) {
+ tc.setSecurityZoneId(jpaSecurityZone.getZoneValue());
+ IdMap idMapInstance = new IdMap();
+ idMapInstance.setAstraId(jpaSecurityZone.getZoneValue());
+ idMapInstance.setVendorId("deviceGroup:dev");
+
+ List<IdMap> idMap = new ArrayList<>();
+ idMap.add(idMapInstance);
+
+ VendorSpecificData vendorStructure = new VendorSpecificData();
+ vendorStructure.setIdMap(idMap);
+ tc.setVendorSpecificData(vendorStructure);
+ break;
+ }
+ }
+
+ tc.setServiceTypeId("/v0/firewall/pan");
+ tc.setConfigName(policyData.getConfigName());
+ tc.setVendorServiceId("vipr");
+
+ DeployNowJson deployNow = new DeployNowJson();
+ deployNow.setDeployNow(false);
+
+ tc.setDeploymentOption(deployNow);
+
+ Set<ServiceListJson> servListArray = new HashSet<>();
+ Set<ServiceGroupJson> servGroupArray = new HashSet<>();
+ Set<AddressGroupJson> addrGroupArray = new HashSet<>();
+ Set<AddressMembers> addrArray = new HashSet<>();
+
+ ServiceGroupJson targetSg;
+ AddressGroupJson addressSg;
+ ServiceListJson targetAny;
+ ServiceListJson targetAnyTcp;
+ ServiceListJson targetAnyUdp;
+
+ for (String serviceList : expandableServicesList) {
+ for (String t : serviceList.split(",")) {
+ if (!t.startsWith(GROUP)) {
+ if (!t.equals(ANY)) {
+ ServiceList sl;
+ targetSl = new ServiceListJson();
+ sl = mappingServiceList(t);
+ targetSl.setName(sl.getServiceName());
+ targetSl.setDescription(sl.getServiceDescription());
+ targetSl.setTransportProtocol(sl.getServiceTransportProtocol());
+ targetSl.setType(sl.getServiceType());
+ targetSl.setPorts(sl.getServicePorts());
+ servListArray.add(targetSl);
+ } else {
+ // Any for destinationServices.
+ // Add names any, any-tcp, any-udp to the serviceGroup object.
+ targetAny = new ServiceListJson();
+ targetAny.setName("any");
+ targetAny.setType("SERVICE");
+ targetAny.setTransportProtocol("any");
+ targetAny.setPorts("any");
+
+ servListArray.add(targetAny);
+
+ targetAnyTcp = new ServiceListJson();
+ targetAnyTcp.setName("any-tcp");
+ targetAnyTcp.setType("SERVICE");
+ targetAnyTcp.setTransportProtocol("tcp");
+ targetAnyTcp.setPorts("any");
+
+ servListArray.add(targetAnyTcp);
+
+ targetAnyUdp = new ServiceListJson();
+ targetAnyUdp.setName("any-udp");
+ targetAnyUdp.setType("SERVICE");
+ targetAnyUdp.setTransportProtocol("udp");
+ targetAnyUdp.setPorts("any");
+
+ servListArray.add(targetAnyUdp);
+ }
+ } else { // This is a group
+ GroupServiceList sg;
+ targetSg = new ServiceGroupJson();
+ sg = mappingServiceGroup(t);
+
+ String name = sg.getGroupName();
+ // Removing the "Group_" prepending string before packing the JSON
+ targetSg.setName(name.substring(6, name.length()));
+ List<ServiceMembers> servMembersList = new ArrayList<>();
+
+ for (String groupString : sg.getServiceList().split(",")) {
+ ServiceMembers serviceMembers = new ServiceMembers();
+ serviceMembers.setType("REFERENCE");
+ serviceMembers.setName(groupString);
+ servMembersList.add(serviceMembers);
+ // Expand the group Name
+ ServiceList expandGroupSl;
+ targetSl = new ServiceListJson();
+ expandGroupSl = mappingServiceList(groupString);
+
+ targetSl.setName(expandGroupSl.getServiceName());
+ targetSl.setDescription(expandGroupSl.getServiceDescription());
+ targetSl.setTransportProtocol(expandGroupSl.getServiceTransportProtocol());
+ targetSl.setType(expandGroupSl.getServiceType());
+ targetSl.setPorts(expandGroupSl.getServicePorts());
+ servListArray.add(targetSl);
+ }
+
+ targetSg.setMembers(servMembersList);
+ servGroupArray.add(targetSg);
+
+ }
+ }
+ }
+
+ Set<PrefixIPList> prefixIpList = new HashSet<>();
+ for (String prefixList : expandablePrefixIpList) {
+ for (String prefixIP : prefixList.split(",")) {
+ if (!prefixIP.startsWith(GROUP)) {
+ if (!prefixIP.equals(ANY)) {
+ List<String> valueDesc;
+ PrefixIPList targetAddressList = new PrefixIPList();
+ targetAddressList.setName(prefixIP);
+ policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "PrefixList value:" + prefixIP);
+ valueDesc = mapping(prefixIP);
+ if (!valueDesc.isEmpty()) {
+ policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "PrefixList description:"
+ + valueDesc.get(1));
+ targetAddressList.setDescription(valueDesc.get(1));
+ }
+ AddressMembers addressMembers = new AddressMembers();
+ addressMembers.setType("SUBNET");
+ if (!valueDesc.isEmpty()) {
+ addressMembers.setValue(valueDesc.get(0));
+ }
+ List<AddressMembers> addMembersList = new ArrayList<>();
+ addMembersList.add(addressMembers);
+
+ targetAddressList.setMembers(addMembersList);
+ prefixIpList.add(targetAddressList);
+ }
+ } else { // This is a group
+ AddressGroup ag;
+ addressSg = new AddressGroupJson();
+ ag = mappingAddressGroup(prefixIP);
+
+ String name = ag.getGroupName();
+ // Removing the "Group_" prepending string before packing the JSON
+ addressSg.setName(name.substring(6, name.length()));
+
+ List<AddressMembersJson> addrMembersList = new ArrayList<>();
+ for (String groupString : ag.getPrefixList().split(",")) {
+ AddressMembersJson addressMembers = new AddressMembersJson();
+ addressMembers.setType("REFERENCES");
+ addressMembers.setName(groupString);
+ addrMembersList.add(addressMembers);
+ // Expand the group Name
+ addressMembersJson = new AddressMembers();
+ List<String> valueDesc = mapping(groupString);
+
+ addressMembersJson.setName(groupString);
+ addressMembersJson.setType("SUBNET");
+ addressMembersJson.setValue(valueDesc.get(0));
+
+ addrArray.add(addressMembersJson);
+
+ }
+ addressSg.setMembers(addrMembersList);
+ addrGroupArray.add(addressSg);
+ }
+
+ }
+ }
+
+ Set<Object> serviceGroup = new HashSet<>();
+
+ for (Object obj1 : servGroupArray) {
+ serviceGroup.add(obj1);
+ }
+
+ for (Object obj : servListArray) {
+ serviceGroup.add(obj);
+ }
+
+ Set<Object> addressGroup = new HashSet<>();
+
+ for (Object addObj : prefixIpList) {
+ addressGroup.add(addObj);
+ }
+
+ for (Object addObj1 : addrGroupArray) {
+ addressGroup.add(addObj1);
+ }
+
+ for (Object addObj2 : addrArray) {
+ addressGroup.add(addObj2);
+ }
+
+ tc.setServiceGroups(serviceGroup);
+ tc.setAddressGroups(addressGroup);
+ tc.setFirewallRuleList(termList);
+
+ try {
+ json = new ObjectMapper().writer().writeValueAsString(tc);
+ } catch (JsonGenerationException e) {
+ policyLogger.error("JsonGenerationException Ocured", e);
+ } catch (JsonMappingException e) {
+ policyLogger.error("IOException Occured", e);
+ }
+
+ } catch (Exception e) {
+ policyLogger.error("Exception Occured" + e);
+ }
+
+ return json;
+ }
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java
index 05fddb50d..37f543f35 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateOptimizationController.java
@@ -20,7 +20,6 @@
package org.onap.policy.controller;
-
import com.att.research.xacml.util.XACMLProperties;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -28,13 +27,13 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.google.gson.Gson;
+
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
-import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
@@ -49,15 +48,17 @@ import java.util.Set;
import java.util.UUID;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import lombok.Getter;
+import lombok.Setter;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+
import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
@@ -68,15 +69,16 @@ import org.json.JSONArray;
import org.json.JSONObject;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.rest.XACMLRestProperties;
+import org.onap.policy.rest.XacmlRestProperties;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.MicroserviceHeaderdeFaults;
import org.onap.policy.rest.jpa.OptimizationModels;
import org.onap.policy.rest.jpa.PolicyEntity;
-import org.onap.policy.rest.util.MSAttributeObject;
-import org.onap.policy.rest.util.MSModelUtils;
-import org.onap.policy.rest.util.MSModelUtils.MODEL_TYPE;
+import org.onap.policy.rest.util.MsAttributeObject;
+import org.onap.policy.rest.util.MsModelUtils;
+import org.onap.policy.rest.util.MsModelUtils.ModelType;
+import org.onap.policy.utils.PolicyUtils;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -87,6 +89,9 @@ import org.springframework.web.servlet.ModelAndView;
@RequestMapping("/")
public class CreateOptimizationController extends RestrictedBaseController {
private static final Logger LOGGER = FlexLogger.getLogger(CreateOptimizationController.class);
+
+ private static final int BUFFER = 2048;
+
private static CommonClassDao commonClassDao;
public static CommonClassDao getCommonClassDao() {
@@ -98,7 +103,7 @@ public class CreateOptimizationController extends RestrictedBaseController {
private String directory;
private List<String> modelList = new ArrayList<>();
private List<String> dirDependencyList = new ArrayList<>();
- private LinkedHashMap<String, MSAttributeObject> classMap = new LinkedHashMap<>();
+ private LinkedHashMap<String, MsAttributeObject> classMap = new LinkedHashMap<>();
String referenceAttributes;
String attributeString;
Set<String> allManyTrueKeys = new HashSet<>();
@@ -115,10 +120,7 @@ public class CreateOptimizationController extends RestrictedBaseController {
public static final String MANYFALSE = ":MANY-false";
public static final String MODEL = "model";
public static final String MANY = "MANY-";
- public static final String UTF8 = "UTF-8";
public static final String MODELNAME = "modelName";
- public static final String APPLICATIONJSON = "application / json";
-
@Autowired
private CreateOptimizationController(CommonClassDao commonClassDao) {
@@ -138,6 +140,13 @@ public class CreateOptimizationController extends RestrictedBaseController {
private Map<String, LinkedList<String>> arrayTextList = new HashMap<>();
CreateDcaeMicroServiceController msController = new CreateDcaeMicroServiceController();
+ /**
+ * setDataToPolicyRestAdapter.
+ *
+ * @param policyData PolicyRestAdapter
+ * @param root JsonNode
+ * @return PolicyRestAdapter
+ */
public PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter policyData, JsonNode root) {
String jsonContent = null;
try {
@@ -175,7 +184,7 @@ public class CreateOptimizationController extends RestrictedBaseController {
}
LOGGER.info("input json: " + json);
LOGGER.info("input jsonContent: " + jsonContent);
- String cleanJson = msController.cleanUPJson(json);
+ String cleanJson = msController.cleanUpJson(json);
// --- reset empty value back after called cleanUPJson method and before calling removeNullAttributes
String tempJson =
@@ -186,7 +195,16 @@ public class CreateOptimizationController extends RestrictedBaseController {
return policyAdapter;
}
- @RequestMapping(value = {"/policyController/getOptimizationTemplateData.htm"},
+ /**
+ * getOptimizationTemplateData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ * @return ModelAndView
+ * @throws IOException IOException
+ */
+ @RequestMapping(
+ value = {"/policyController/getOptimizationTemplateData.htm"},
method = {org.springframework.web.bind.annotation.RequestMethod.POST})
public ModelAndView getOptimizationTemplateData(HttpServletRequest request, HttpServletResponse response)
throws IOException {
@@ -196,10 +214,10 @@ public class CreateOptimizationController extends RestrictedBaseController {
JsonNode root = mapper.readTree(request.getReader());
String value = root.get("policyData").toString().replaceAll("^\"|\"$", "");
- String servicename = value.toString().split("-v")[0];
+ String servicename = value.split("-v")[0];
String version = null;
- if (value.toString().contains("-v")) {
- version = value.toString().split("-v")[1];
+ if (value.contains("-v")) {
+ version = value.split("-v")[1];
}
OptimizationModels returnModel = getAttributeObject(servicename, version);
@@ -226,8 +244,7 @@ public class CreateOptimizationController extends RestrictedBaseController {
// Get all keys with "MANY-true" defined in their value from subAttribute
Set<String> allkeys = null;
if (returnModel.getSubattributes() != null && !returnModel.getSubattributes().isEmpty()) {
- JSONObject json = new JSONObject(returnModel.getSubattributes());
- getAllKeys(json);
+ getAllKeys(new JSONObject(returnModel.getSubattributes()));
allkeys = allManyTrueKeys;
allManyTrueKeys = new HashSet<>();
LOGGER.info("allkeys : " + allkeys);
@@ -276,23 +293,22 @@ public class CreateOptimizationController extends RestrictedBaseController {
jsonModel = finalJsonObject.toString();
}
- response.setCharacterEncoding(UTF8);
- response.setContentType(APPLICATIONJSON);
- request.setCharacterEncoding(UTF8);
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
List<Object> list = new ArrayList<>();
- PrintWriter out = response.getWriter();
String responseString = mapper.writeValueAsString(returnModel);
- JSONObject j = null;
+ JSONObject json = null;
if ("".equals(nameOfTrueKeys)) {
- j = new JSONObject("{optimizationModelData: " + responseString + ",jsonValue: " + jsonModel
+ json = new JSONObject("{optimizationModelData: " + responseString + ",jsonValue: " + jsonModel
+ ",dataOrderInfo:" + dataOrderInfo + ",headDefautlsData:" + headDefautlsData + "}");
} else {
- j = new JSONObject("{optimizationModelData: " + responseString + ",jsonValue: " + jsonModel
+ json = new JSONObject("{optimizationModelData: " + responseString + ",jsonValue: " + jsonModel
+ ",allManyTrueKeys: " + allManyTrueKeys + ",dataOrderInfo:" + dataOrderInfo + ",headDefautlsData:"
+ headDefautlsData + "}");
}
- list.add(j);
- out.write(list.toString());
+ list.add(json);
+ response.getWriter().write(list.toString());
return null;
}
@@ -415,10 +431,12 @@ public class CreateOptimizationController extends RestrictedBaseController {
private Set<String> getAllKeys(JSONArray arr, Set<String> keys) {
for (int i = 0; i < arr.length(); i++) {
Object obj = arr.get(i);
- if (obj instanceof JSONObject)
+ if (obj instanceof JSONObject) {
keys.addAll(getAllKeys(arr.getJSONObject(i)));
- if (obj instanceof JSONArray)
+ }
+ if (obj instanceof JSONArray) {
keys.addAll(getAllKeys(arr.getJSONArray(i)));
+ }
}
return keys;
@@ -433,16 +451,27 @@ public class CreateOptimizationController extends RestrictedBaseController {
LOGGER.info("obj : " + obj);
allManyTrueKeys.add(key);
}
- if (obj instanceof JSONObject)
+ if (obj instanceof JSONObject) {
keys.addAll(getAllKeys(json.getJSONObject(key)));
- if (obj instanceof JSONArray)
+ }
+ if (obj instanceof JSONArray) {
keys.addAll(getAllKeys(json.getJSONArray(key)));
+ }
}
return keys;
}
- @RequestMapping(value = {"/policyController/getModelServiceVersionData.htm"},
+ /**
+ * getModelServiceVersionData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ * @return ModelAndView
+ * @throws IOException IOException
+ */
+ @RequestMapping(
+ value = {"/policyController/getModelServiceVersionData.htm"},
method = {org.springframework.web.bind.annotation.RequestMethod.POST})
public ModelAndView getModelServiceVersionData(HttpServletRequest request, HttpServletResponse response)
throws IOException {
@@ -450,19 +479,16 @@ public class CreateOptimizationController extends RestrictedBaseController {
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
JsonNode root = mapper.readTree(request.getReader());
- String value = root.get("policyData").toString().replaceAll("^\"|\"$", "");
- String servicename = value.split("-v")[0];
- Set<String> returnList = getVersionList(servicename);
+ final String value = root.get("policyData").toString().replaceAll("^\"|\"$", "");
+ final String servicename = value.split("-v")[0];
- response.setCharacterEncoding(UTF8);
- response.setContentType(APPLICATIONJSON);
- request.setCharacterEncoding(UTF8);
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
List<Object> list = new ArrayList<>();
- PrintWriter out = response.getWriter();
- String responseString = mapper.writeValueAsString(returnList);
- JSONObject j = new JSONObject("{optimizationModelVersionData: " + responseString + "}");
- list.add(j);
- out.write(list.toString());
+ list.add(new JSONObject("{optimizationModelVersionData: "
+ + mapper.writeValueAsString(getVersionList(servicename)) + "}"));
+ response.getWriter().write(list.toString());
return null;
}
@@ -507,76 +533,46 @@ public class CreateOptimizationController extends RestrictedBaseController {
modelName);
}
+ /**
+ * prePopulatePolicyData.
+ *
+ * @param policyAdapter PolicyRestAdapter
+ * @param entity PolicyEntity
+ */
public void prePopulatePolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
- if (policyAdapter.getPolicyData() instanceof PolicyType) {
- Object policyData = policyAdapter.getPolicyData();
- PolicyType policy = (PolicyType) policyData;
- policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- String policyNameValue =
- policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("OOF_") + 4);
- policyAdapter.setPolicyName(policyNameValue);
- String description = "";
- try {
- description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
- } catch (Exception e) {
- LOGGER.error("Error while collecting the description tag in " + policyNameValue, e);
- description = policy.getDescription();
- }
- policyAdapter.setPolicyDescription(description);
- // Get the target data under policy.
- TargetType target = policy.getTarget();
- if (target != null) {
- // Under target we have AnyOFType
- List<AnyOfType> anyOfList = target.getAnyOf();
- if (anyOfList != null) {
- Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
- while (iterAnyOf.hasNext()) {
- AnyOfType anyOf = iterAnyOf.next();
- // Under AnyOFType we have AllOFType
- List<AllOfType> allOfList = anyOf.getAllOf();
- if (allOfList != null) {
- Iterator<AllOfType> iterAllOf = allOfList.iterator();
- while (iterAllOf.hasNext()) {
- AllOfType allOf = iterAllOf.next();
- // Under AllOFType we have Match
- List<MatchType> matchList = allOf.getMatch();
- if (matchList != null) {
- Iterator<MatchType> iterMatch = matchList.iterator();
- while (matchList.size() > 1 && iterMatch.hasNext()) {
- MatchType match = iterMatch.next();
- //
- // Under the match we have attribute value and
- // attributeDesignator. So,finally down to the actual attribute.
- //
- AttributeValueType attributeValue = match.getAttributeValue();
- String value = (String) attributeValue.getContent().get(0);
- AttributeDesignatorType designator = match.getAttributeDesignator();
- String attributeId = designator.getAttributeId();
- // First match in the target is OnapName, so set that value.
- if ("ONAPName".equals(attributeId)) {
- policyAdapter.setOnapName(value);
- }
- if ("RiskType".equals(attributeId)) {
- policyAdapter.setRiskType(value);
- }
- if ("RiskLevel".equals(attributeId)) {
- policyAdapter.setRiskLevel(value);
- }
- if ("guard".equals(attributeId)) {
- policyAdapter.setGuard(value);
- }
- if ("TTLDate".equals(attributeId) && !value.contains("NA")) {
- PolicyController controller = new PolicyController();
- String newDate = controller.convertDate(value);
- policyAdapter.setTtlDate(newDate);
- }
- }
- readFile(policyAdapter, entity);
- }
- }
- }
- }
+ if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+ return;
+ }
+ Object policyData = policyAdapter.getPolicyData();
+ PolicyType policy = (PolicyType) policyData;
+ policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
+ String policyNameValue =
+ policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("OOF_") + 4);
+ policyAdapter.setPolicyName(policyNameValue);
+ String description = "";
+ try {
+ description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
+ } catch (Exception e) {
+ LOGGER.error("Error while collecting the description tag in " + policyNameValue, e);
+ description = policy.getDescription();
+ }
+ policyAdapter.setPolicyDescription(description);
+ // Get the target data under policy.
+ TargetType target = policy.getTarget();
+ if (target == null) {
+ return;
+ }
+ for (AnyOfType anyOf : target.getAnyOf()) {
+ for (AllOfType allOf : anyOf.getAllOf()) {
+ for (MatchType match : allOf.getMatch()) {
+ //
+ // Under the match we have attribute value and
+ // attributeDesignator. So,finally down to the actual attribute.
+ //
+ policyAdapter.setupUsingAttribute(match.getAttributeDesignator().getAttributeId(),
+ (String) match.getAttributeValue().getContent().get(0));
}
+ readFile(policyAdapter, entity);
}
}
}
@@ -612,7 +608,16 @@ public class CreateOptimizationController extends RestrictedBaseController {
}
- @RequestMapping(value = {"/oof_dictionary/set_ModelData"},
+ /**
+ * setModelData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ * @throws IOException IOException
+ * @throws FileUploadException FileUploadException
+ */
+ @RequestMapping(
+ value = {"/oof_dictionary/set_ModelData"},
method = {org.springframework.web.bind.annotation.RequestMethod.POST})
public void setModelData(HttpServletRequest request, HttpServletResponse response)
throws IOException, FileUploadException {
@@ -655,21 +660,15 @@ public class CreateOptimizationController extends RestrictedBaseController {
}
if (!errorMsg.isEmpty()) {
-
- PrintWriter out = response.getWriter();
-
- response.setCharacterEncoding(UTF8);
- response.setContentType(APPLICATIONJSON);
- request.setCharacterEncoding(UTF8);
-
- JSONObject j = new JSONObject();
- j.put("errorMsg", errorMsg);
- out.write(j.toString());
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.getWriter().write(new JSONObject().put("errorMsg", errorMsg).toString());
return;
}
List<File> fileList = new ArrayList<>();
- MSModelUtils modelUtil = new MSModelUtils();
+ MsModelUtils modelUtil = new MsModelUtils();
this.directory = MODEL;
if (zip) {
extractFolder(this.newFile);
@@ -699,7 +698,7 @@ public class CreateOptimizationController extends RestrictedBaseController {
modelType = "yml";
modelList.add(this.newModel.getModelName());
String className = this.newModel.getModelName();
- MSAttributeObject optimizationAttributes = new MSAttributeObject();
+ MsAttributeObject optimizationAttributes = new MsAttributeObject();
optimizationAttributes.setClassName(className);
LinkedHashMap<String, String> returnAttributeList = new LinkedHashMap<>();
@@ -731,20 +730,18 @@ public class CreateOptimizationController extends RestrictedBaseController {
}
- PrintWriter out = response.getWriter();
-
- response.setCharacterEncoding(UTF8);
- response.setContentType(APPLICATIONJSON);
- request.setCharacterEncoding(UTF8);
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
ObjectMapper mapper = new ObjectMapper();
- JSONObject j = new JSONObject();
- j.put("classListDatas", modelList);
- j.put("modelDatas", mapper.writeValueAsString(classMap));
- j.put("modelType", modelType);
- j.put("dataOrderInfo", modelUtil.getDataOrderInfo());
+ JSONObject json = new JSONObject();
+ json.put("classListDatas", modelList);
+ json.put("modelDatas", mapper.writeValueAsString(classMap));
+ json.put("modelType", modelType);
+ json.put("dataOrderInfo", modelUtil.getDataOrderInfo());
- out.write(j.toString());
+ response.getWriter().write(json.toString());
}
/*
@@ -752,7 +749,6 @@ public class CreateOptimizationController extends RestrictedBaseController {
*/
@SuppressWarnings("rawtypes")
private void extractFolder(String zipFile) {
- int BUFFER = 2048;
File file = new File(zipFile);
try (ZipFile zip = new ZipFile(file)) {
@@ -802,23 +798,19 @@ public class CreateOptimizationController extends RestrictedBaseController {
private void retrieveDependency(String workingFile) {
- MSModelUtils utils = new MSModelUtils(PolicyController.getMsOnapName(), PolicyController.getMsPolicyName());
- Map<String, MSAttributeObject> tempMap;
+ MsModelUtils utils = new MsModelUtils(PolicyController.getMsOnapName(), PolicyController.getMsPolicyName());
+ Map<String, MsAttributeObject> tempMap;
- tempMap = utils.processEpackage(workingFile, MODEL_TYPE.XMI);
+ tempMap = utils.processEpackage(workingFile, ModelType.XMI);
classMap.putAll(tempMap);
LOGGER.info(tempMap);
-
- return;
-
}
private List<File> listModelFiles(String directoryName) {
File fileDirectory = new File(directoryName);
List<File> resultList = new ArrayList<>();
- File[] fList = fileDirectory.listFiles();
- for (File file : fList) {
+ for (File file : fileDirectory.listFiles()) {
if (file.isFile()) {
resultList.add(file);
} else if (file.isDirectory()) {
@@ -831,9 +823,9 @@ public class CreateOptimizationController extends RestrictedBaseController {
private List<String> createList() {
List<String> list = new ArrayList<>();
- for (Entry<String, MSAttributeObject> cMap : classMap.entrySet()) {
- if (cMap.getValue().isPolicyTempalate()) {
- list.add(cMap.getKey());
+ for (Entry<String, MsAttributeObject> entrySet : classMap.entrySet()) {
+ if (entrySet.getValue().isPolicyTempalate()) {
+ list.add(entrySet.getKey());
}
}
@@ -858,7 +850,7 @@ public class CreateOptimizationController extends RestrictedBaseController {
private OptimizationObject setOptimizationObjectValues(PolicyRestAdapter policyAdapter) {
OptimizationObject optimizationObject = new OptimizationObject();
- optimizationObject.setTemplateVersion(XACMLProperties.getProperty(XACMLRestProperties.TemplateVersion_OOF));
+ optimizationObject.setTemplateVersion(XACMLProperties.getProperty(XacmlRestProperties.TEMPLATE_VERSION_OOF));
if (policyAdapter.getServiceType() != null) {
optimizationObject.setService(policyAdapter.getServiceType());
@@ -888,7 +880,8 @@ public class CreateOptimizationController extends RestrictedBaseController {
}
}
-
+@Getter
+@Setter
class OptimizationObject {
private String service;
@@ -901,95 +894,5 @@ class OptimizationObject {
private String riskType;
private String riskLevel;
private String guard = null;
-
- public String getGuard() {
- return guard;
- }
-
- public void setGuard(String guard) {
- this.guard = guard;
- }
-
- public String getRiskType() {
- return riskType;
- }
-
- public void setRiskType(String riskType) {
- this.riskType = riskType;
- }
-
- public String getRiskLevel() {
- return riskLevel;
- }
-
- public void setRiskLevel(String riskLevel) {
- this.riskLevel = riskLevel;
- }
-
- public String getPriority() {
- return priority;
- }
-
- public void setPriority(String priority) {
- this.priority = priority;
- }
-
- public String getPolicyScope() {
- return policyScope;
- }
-
- public void setPolicyScope(String policyScope) {
- this.policyScope = policyScope;
- }
-
- public String getVersion() {
- return version;
- }
-
- public void setVersion(String version) {
- this.version = version;
- }
-
private Object content;
-
- public String getPolicyName() {
- return policyName;
- }
-
- public void setPolicyName(String policyName) {
- this.policyName = policyName;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public Object getContent() {
- return content;
- }
-
- public void setContent(Object content) {
- this.content = content;
- }
-
- public String getService() {
- return service;
- }
-
- public void setService(String service) {
- this.service = service;
- }
-
- public String getTemplateVersion() {
- return templateVersion;
- }
-
- public void setTemplateVersion(String templateVersion) {
- this.templateVersion = templateVersion;
- }
-
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreatePolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreatePolicyController.java
index 6cd121ee6..a2cf20834 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreatePolicyController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreatePolicyController.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -20,13 +20,18 @@
package org.onap.policy.controller;
-
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
@@ -35,117 +40,87 @@ import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
-
@Controller
@RequestMapping("/")
-public class CreatePolicyController extends RestrictedBaseController{
+public class CreatePolicyController extends RestrictedBaseController {
private static Logger policyLogger = FlexLogger.getLogger(CreatePolicyController.class);
- protected PolicyRestAdapter policyAdapter = null;
- private ArrayList<Object> attributeList;
- boolean isValidForm = false;
-
- public void prePopulateBaseConfigPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
- attributeList = new ArrayList<>();
- if (policyAdapter.getPolicyData() instanceof PolicyType) {
- Object policyData = policyAdapter.getPolicyData();
- PolicyType policy = (PolicyType) policyData;
- policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- policyAdapter.setConfigType(entity.getConfigurationData().getConfigType());
- policyAdapter.setConfigBodyData(entity.getConfigurationData().getConfigBody());
- String policyNameValue = policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf('_') + 1);
- policyAdapter.setPolicyName(policyNameValue);
- String description = "";
- try{
- description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
- }catch(Exception e){
- policyLogger.error("Error while collecting the desciption tag in ActionPolicy " + policyNameValue ,e);
- description = policy.getDescription();
- }
- policyAdapter.setPolicyDescription(description);
- // Get the target data under policy.
- TargetType target = policy.getTarget();
- if (target != null) {
- // Under target we have AnyOFType
- List<AnyOfType> anyOfList = target.getAnyOf();
- if (anyOfList != null) {
- Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
- while (iterAnyOf.hasNext()) {
- AnyOfType anyOf = iterAnyOf.next();
- // Under AnyOFType we have AllOFType
- List<AllOfType> allOfList = anyOf.getAllOf();
- if (allOfList != null) {
- Iterator<AllOfType> iterAllOf = allOfList.iterator();
- int index = 0;
- while (iterAllOf.hasNext()) {
- AllOfType allOf = iterAllOf.next();
- // Under AllOFType we have Match
- List<MatchType> matchList = allOf.getMatch();
- if (matchList != null) {
- Iterator<MatchType> iterMatch = matchList.iterator();
- while (iterMatch.hasNext()) {
- MatchType match = iterMatch.next();
- //
- // Under the match we have attribute value and
- // attributeDesignator. So,finally down to the actual attribute.
- //
- AttributeValueType attributeValue = match.getAttributeValue();
- String value = (String) attributeValue.getContent().get(0);
- AttributeDesignatorType designator = match.getAttributeDesignator();
- String attributeId = designator.getAttributeId();
- // First match in the target is OnapName, so set that value.
- if ("ONAPName".equals(attributeId)) {
- policyAdapter.setOnapName(value);
- }
- if ("RiskType".equals(attributeId)){
- policyAdapter.setRiskType(value);
- }
- if ("RiskLevel".equals(attributeId)){
- policyAdapter.setRiskLevel(value);
- }
- if ("guard".equals(attributeId)){
- policyAdapter.setGuard(value);
- }
- if ("TTLDate".equals(attributeId) && !value.contains("NA")){
- PolicyController controller = new PolicyController();
- String newDate = controller.convertDate(value);
- policyAdapter.setTtlDate(newDate);
- }
- if ("ConfigName".equals(attributeId)){
- policyAdapter.setConfigName(value);
- }
- // After Onap and Config it is optional to have attributes, so
- // check weather dynamic values or there or not.
- if (index >= 7) {
- Map<String, String> attribute = new HashMap<>();
- attribute.put("key", attributeId);
- attribute.put("value", value);
- attributeList.add(attribute);
- }
- index++;
- }
- }
- }
- }
- }
- }
+ protected PolicyRestAdapter policyAdapter = null;
+ private ArrayList<Object> attributeList;
+ boolean isValidForm = false;
- policyAdapter.setAttributes(attributeList);
- }
- List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
- for (Object o : ruleList) {
- if (o instanceof RuleType) {
- // get the condition data under the rule for rule Algorithms.
- policyAdapter.setRuleID(((RuleType) o).getRuleId());
- }
- }
- }
- }
+ /**
+ * prePopulateBaseConfigPolicyData.
+ *
+ * @param policyAdapter PolicyRestAdapter
+ * @param entity PolicyEntity
+ */
+ public void prePopulateBaseConfigPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
+ attributeList = new ArrayList<>();
+ if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+ return;
+ }
+ Object policyData = policyAdapter.getPolicyData();
+ PolicyType policy = (PolicyType) policyData;
+ policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
+ policyAdapter.setConfigType(entity.getConfigurationData().getConfigType());
+ policyAdapter.setConfigBodyData(entity.getConfigurationData().getConfigBody());
+ String policyNameValue =
+ policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf('_') + 1);
+ policyAdapter.setPolicyName(policyNameValue);
+ String description = "";
+ try {
+ description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
+ } catch (Exception e) {
+ policyLogger.error("Error while collecting the desciption tag in ActionPolicy " + policyNameValue, e);
+ description = policy.getDescription();
+ }
+ policyAdapter.setPolicyDescription(description);
+ // Get the target data under policy.
+ TargetType target = policy.getTarget();
+ //
+ // NOTE: target.getAnyOf() will NEVER return null
+ //
+ if (target != null) {
+ // Under target we have AnyOFType
+ for (AnyOfType anyOf : target.getAnyOf()) {
+ // Under AnyOFType we have AllOFType
+ //
+ // NOTE: anyOf.getAllOf() will NEVER return null
+ //
+ int index = 0;
+ for (AllOfType allOf : anyOf.getAllOf()) {
+ // Under AllOFType we have Match
+ // NOTE: allOf.getMatch() will NEVER be NULL
+ //
+ for (MatchType match : allOf.getMatch()) {
+ //
+ // Under the match we have attribute value and
+ // attributeDesignator. So,finally down to the actual attribute.
+ //
+ String value = (String) match.getAttributeValue().getContent().get(0);
+ String attributeId = match.getAttributeDesignator().getAttributeId();
+ // First match in the target is OnapName, so set that value.
+ policyAdapter.setupUsingAttribute(attributeId, value);
+ // After Onap and Config it is optional to have attributes, so
+ // check weather dynamic values or there or not.
+ if (index >= 7) {
+ Map<String, String> attribute = new HashMap<>();
+ attribute.put("key", attributeId);
+ attribute.put("value", value);
+ attributeList.add(attribute);
+ }
+ index++;
+ }
+ }
+ }
+ policyAdapter.setAttributes(attributeList);
+ }
+ List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
+ for (Object object : ruleList) {
+ if (object instanceof RuleType) {
+ // get the condition data under the rule for rule Algorithms.
+ policyAdapter.setRuleID(((RuleType) object).getRuleId());
+ }
+ }
+ }
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DashboardController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DashboardController.java
index d3af75dfd..0ca315bf1 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DashboardController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DashboardController.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -29,6 +29,7 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.io.IOException;
import java.io.PrintWriter;
import java.net.MalformedURLException;
@@ -41,6 +42,7 @@ import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
@@ -53,12 +55,13 @@ import javax.management.remote.JMXServiceURL;
import javax.script.SimpleBindings;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
import org.json.JSONObject;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.dao.SystemLogDbDao;
import org.onap.policy.model.PDPGroupContainer;
-import org.onap.policy.rest.XACMLRestProperties;
+import org.onap.policy.rest.XacmlRestProperties;
import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.PolicyEntity;
import org.onap.policy.utils.PolicyUtils;
@@ -117,15 +120,14 @@ public class DashboardController extends RestrictedBaseController {
return policyController != null ? getPolicyController() : new PolicyController();
}
-
-
/**
* This method is to retrieve all the data of last 30 days from PolicyEntity table as default.
- *
+ *
* @param request object
* @param response object contains retrieved data
*/
- @RequestMapping(value = {"/get_DashboardPolicyCRUDData"},
+ @RequestMapping(
+ value = {"/get_DashboardPolicyCRUDData"},
method = {org.springframework.web.bind.annotation.RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void get_DashboardPolicyCrudData(HttpServletRequest request, HttpServletResponse response) {
@@ -135,9 +137,7 @@ public class DashboardController extends RestrictedBaseController {
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
addPolicyCrudInfoToTable();
model.put("papStatusCRUDData", mapper.writeValueAsString(policyStatusCrudData));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
policyLogger.error(exceptionOccured, e);
}
@@ -145,11 +145,12 @@ public class DashboardController extends RestrictedBaseController {
/**
* This method retrieves data based on input criteria.
- *
+ *
* @param request object
* @param response object contains retrieved data
*/
- @RequestMapping(value = {"/dashboardController/dashboardAdvancedSearch.htm"},
+ @RequestMapping(
+ value = {"/dashboardController/dashboardAdvancedSearch.htm"},
method = {org.springframework.web.bind.annotation.RequestMethod.POST})
public void dashboardAdvancedSearch(HttpServletRequest request, HttpServletResponse response) throws IOException {
String lscope = null;
@@ -185,11 +186,9 @@ public class DashboardController extends RestrictedBaseController {
getPolicyData(lscope, lstage, isDelected, ttlDateAfter, ttlDateBefore);
Map<String, Object> model = new HashMap<>();
model.put("policyStatusCRUDData", mapper.writeValueAsString(policyStatusCrudData));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
- response.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
PrintWriter out = response.getWriter();
out.write(PolicyUtils.CATCH_EXCEPTION);
}
@@ -198,11 +197,12 @@ public class DashboardController extends RestrictedBaseController {
/**
* This method is to retrieve data from PolicyEntity table.
- *
+ *
* @param request object
* @param response object contains retrieved data
*/
- @RequestMapping(value = {"/get_DashboardPdpPolicyCRUDData"},
+ @RequestMapping(
+ value = {"/get_DashboardPdpPolicyCRUDData"},
method = {org.springframework.web.bind.annotation.RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void get_DashboardPdpPolicyCrudData(HttpServletRequest request, HttpServletResponse response) {
@@ -211,15 +211,20 @@ public class DashboardController extends RestrictedBaseController {
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
model.put("pdpStatusCRUDData", mapper.writeValueAsString(pdpStatusCrudData));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
policyLogger.error(exceptionOccured, e);
}
}
- @RequestMapping(value = {"/get_DashboardLoggingData"},
+ /**
+ * getData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/get_DashboardLoggingData"},
method = {org.springframework.web.bind.annotation.RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void getData(HttpServletRequest request, HttpServletResponse response) {
@@ -227,15 +232,20 @@ public class DashboardController extends RestrictedBaseController {
Map<String, Object> model = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
model.put("availableLoggingDatas", mapper.writeValueAsString(systemDAO.getLoggingData()));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
policyLogger.error(exceptionOccured + e);
}
}
- @RequestMapping(value = {"/get_DashboardSystemAlertData"},
+ /**
+ * getSystemAlertData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/get_DashboardSystemAlertData"},
method = {org.springframework.web.bind.annotation.RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void getSystemAlertData(HttpServletRequest request, HttpServletResponse response) {
@@ -243,15 +253,20 @@ public class DashboardController extends RestrictedBaseController {
Map<String, Object> model = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
model.put("systemAlertsTableDatas", mapper.writeValueAsString(systemDAO.getSystemAlertData()));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
policyLogger.error(exceptionOccured + e);
}
}
- @RequestMapping(value = {"/get_DashboardPAPStatusData"},
+ /**
+ * getPAPStatusData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/get_DashboardPAPStatusData"},
method = {org.springframework.web.bind.annotation.RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void getPAPStatusData(HttpServletRequest request, HttpServletResponse response) {
@@ -261,20 +276,25 @@ public class DashboardController extends RestrictedBaseController {
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
addPAPToTable();
model.put("papTableDatas", mapper.writeValueAsString(papStatusData));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
policyLogger.error(exceptionOccured + e);
}
}
- @RequestMapping(value = {"/get_DashboardPDPStatusData"},
+ /**
+ * getPDPStatusData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/get_DashboardPDPStatusData"},
method = {org.springframework.web.bind.annotation.RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void getPDPStatusData(HttpServletRequest request, HttpServletResponse response) {
try {
- Map<String, Object> model = new HashMap<>();
+ final Map<String, Object> model = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
PolicyController controller = getPolicyControllerInstance();
@@ -282,28 +302,32 @@ public class DashboardController extends RestrictedBaseController {
addPDPToTable();
model.put("pdpTableDatas", mapper.writeValueAsString(pdpStatusData));
JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(msg).toString());
} catch (Exception e) {
policyLogger.error(exceptionOccured + e);
}
}
- @RequestMapping(value = {"/get_DashboardPolicyActivityData"},
+ /**
+ * getPolicyActivityData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/get_DashboardPolicyActivityData"},
method = {org.springframework.web.bind.annotation.RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void getPolicyActivityData(HttpServletRequest request, HttpServletResponse response) {
try {
- Map<String, Object> model = new HashMap<>();
+ final Map<String, Object> model = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
PolicyController controller = getPolicyControllerInstance();
this.pdpConatiner = new PDPGroupContainer(controller.getPapEngine());
addPolicyToTable();
model.put("policyActivityTableDatas", mapper.writeValueAsString(policyActivityData));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
policyLogger.error(exceptionOccured + e);
}
@@ -327,9 +351,9 @@ public class DashboardController extends RestrictedBaseController {
papStatus = "CANNOT_CONNECT";
policyLogger.error("Error getting PAP status, PAP not responding to requests", e1);
}
- String papURL = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_URL);
+ String papUrl = XACMLProperties.getProperty(XacmlRestProperties.PROP_PAP_URL);
JSONObject object = new JSONObject();
- object.put("system", papURL);
+ object.put("system", papUrl);
object.put("status", papStatus);
List<Object> data = commonClassDao.getDataByQuery("from PolicyEntity", new SimpleBindings());
object.put("noOfPolicy", data.size());
@@ -337,9 +361,8 @@ public class DashboardController extends RestrictedBaseController {
papStatusData.add(0, object);
}
-
- /*
- * Add the PAP Policy information to the PAP Table
+ /**
+ * Add the PAP Policy information to the PAP Table.
*/
public void addPolicyCrudInfoToTable() {
policyStatusCrudData = new ArrayList<>();
@@ -362,7 +385,7 @@ public class DashboardController extends RestrictedBaseController {
object.put(scope, ((PolicyEntity) data).getScope());
object.put("policyName", ((PolicyEntity) data).getPolicyName());
object.put("version", ((PolicyEntity) data).getVersion());
- if (isPushedToPDP(((PolicyEntity) data).getPolicyId())) {
+ if (isPushedToPdp(((PolicyEntity) data).getPolicyId())) {
object.put(stage, "PDP");
} else {
object.put(stage, "PAP");
@@ -388,13 +411,13 @@ public class DashboardController extends RestrictedBaseController {
/*
* Add the PDP Policy information to the PDP Table
*/
- private boolean isPushedToPDP(long policyId) {
+ private boolean isPushedToPdp(long policyId) {
try {
String groupEntityquery = "from PolicyGroupEntity where policyid = :policyEntityId";
SimpleBindings geParams = new SimpleBindings();
geParams.put("policyEntityId", policyId);
List<Object> groupobject = commonClassDao.getDataByQuery(groupEntityquery, geParams);
- if (groupobject != null && groupobject.size() > 0) {
+ if (groupobject != null && ! groupobject.isEmpty()) {
return true;
}
} catch (Exception e) {
@@ -407,7 +430,8 @@ public class DashboardController extends RestrictedBaseController {
/*
* Add the Policy information to the policyStatusCRUDDataTable
*/
- private void getPolicyData(String inputScope, String inputStage, String isDeleted, String createdAfter, String createdBefore) {
+ private void getPolicyData(String inputScope, String inputStage, String isDeleted, String createdAfter,
+ String createdBefore) {
policyStatusCrudData = new ArrayList<>();
List<Object> policyData = null;
SimpleBindings geParams = new SimpleBindings();
@@ -479,7 +503,7 @@ public class DashboardController extends RestrictedBaseController {
object.put(scope, data.getScope());
object.put("policyName", data.getPolicyName());
object.put("version", data.getVersion());
- if (isPushedToPDP(data.getPolicyId())) {
+ if (isPushedToPdp(data.getPolicyId())) {
object.put(stage, "PDP");
} else {
object.put(stage, "PAP");
@@ -503,7 +527,7 @@ public class DashboardController extends RestrictedBaseController {
}
/**
- * Add PDP Information to the PDP Table
+ * Add PDP Information to the PDP Table.
*
*/
public void addPDPToTable() {
@@ -516,7 +540,7 @@ public class DashboardController extends RestrictedBaseController {
for (PDP pdp : group.getPdps()) {
naCount = -1;
if ("UP_TO_DATE".equals(pdp.getStatus().getStatus().toString()) && ((OnapPDP) pdp).getJmxPort() != 0) {
- String pdpIpAddress = parseIPSystem(pdp.getId());
+ String pdpIpAddress = parseIpSystem(pdp.getId());
int port = ((OnapPDP) pdp).getJmxPort();
if (port != 0) {
policyLogger.debug("Getting JMX Response Counts from " + pdpIpAddress + " at JMX port " + port);
@@ -553,7 +577,7 @@ public class DashboardController extends RestrictedBaseController {
}
}
- private static String parseIPSystem(String line) {
+ private static String parseIpSystem(String line) {
Pattern pattern = Pattern.compile("://(.+?):");
Matcher ip = pattern.matcher(line);
if (ip.find()) {
@@ -570,13 +594,12 @@ public class DashboardController extends RestrictedBaseController {
policyLogger.debug("Create an RMI connector client and connect it to the JMX connector server");
HashMap map = null;
- try (JMXConnector jmxConnection = JMXConnectorFactory.newJMXConnector(createConnectionURL(host, port), map)) {
+ try (JMXConnector jmxConnection = JMXConnectorFactory.newJMXConnector(createConnectionUrl(host, port), map)) {
jmxConnection.connect();
- Object o =
- jmxConnection.getMBeanServerConnection().getAttribute(
- new ObjectName("PdpRest:type=PdpRestMonitor"), jmxAttribute);
- policyLogger.debug("pdpEvaluationNA value retreived: " + o);
- return (long) o;
+ Object obj = jmxConnection.getMBeanServerConnection()
+ .getAttribute(new ObjectName("PdpRest:type=PdpRestMonitor"), jmxAttribute);
+ policyLogger.debug("pdpEvaluationNA value retreived: " + obj);
+ return (long) obj;
} catch (MalformedURLException e) {
policyLogger.error("MalformedURLException for JMX connection", e);
} catch (IOException e) {
@@ -597,11 +620,10 @@ public class DashboardController extends RestrictedBaseController {
return -1;
}
- private static JMXServiceURL createConnectionURL(String host, int port) throws MalformedURLException {
+ private static JMXServiceURL createConnectionUrl(String host, int port) throws MalformedURLException {
return new JMXServiceURL("rmi", "", 0, "/jndi/rmi://" + host + ":" + port + "/jmxrmi");
}
-
/*
* Add the information to the Policy Table
*/
@@ -626,8 +648,8 @@ public class DashboardController extends RestrictedBaseController {
// Add rows to the Policy Table
policyList = null;
if ("UP_TO_DATE".equals(pdp.getStatus().getStatus().toString()) && ((OnapPDP) pdp).getJmxPort() != 0) {
- String pdpIpAddress = parseIPSystem(pdp.getId());
- policyList = getPolicy(pdpIpAddress, ((OnapPDP) pdp).getJmxPort(), "policyCount");
+ String pdpIpAddress = parseIpSystem(pdp.getId());
+ policyList = getPolicy(pdpIpAddress, ((OnapPDP) pdp).getJmxPort());
}
if (policyList != null && policyList.toString().length() > 3) {
String[] splitPolicy = policyList.toString().split(",");
@@ -643,19 +665,15 @@ public class DashboardController extends RestrictedBaseController {
}
}
} else {
+ JSONObject object = new JSONObject();
if (policyList != null) {
- JSONObject object = new JSONObject();
object.put("policyId", "Unable to retrieve policy information");
- object.put("fireCount", "NA");
- object.put("system", pdp.getId());
- policyActivityData.add(object);
} else {
- JSONObject object = new JSONObject();
object.put("policyId", "Unable to access PDP JMX Server");
- object.put("fireCount", "NA");
- object.put("system", pdp.getId());
- policyActivityData.add(object);
}
+ object.put("fireCount", "NA");
+ object.put("system", pdp.getId());
+ policyActivityData.add(object);
}
}
}
@@ -665,17 +683,16 @@ public class DashboardController extends RestrictedBaseController {
* Contact JMX Connector Sever and return the list of {policy id , count}
*/
@SuppressWarnings({"rawtypes", "unchecked"})
- private Object getPolicy(String host, int port, String jmxAttribute) {
- policyLogger.debug("Create an RMI connector client and connect it to the JMX connector server for Policy: "
- + host);
+ private Object getPolicy(String host, int port) {
+ policyLogger
+ .debug("Create an RMI connector client and connect it to the JMX connector server for Policy: " + host);
HashMap map = null;
- try (JMXConnector jmxConnection = JMXConnectorFactory.newJMXConnector(createConnectionURL(host, port), map)) {
+ try (JMXConnector jmxConnection = JMXConnectorFactory.newJMXConnector(createConnectionUrl(host, port), map)) {
jmxConnection.connect();
- Object o =
- jmxConnection.getMBeanServerConnection().getAttribute(
- new ObjectName("PdpRest:type=PdpRestMonitor"), "policyMap");
- policyLogger.debug("policyMap value retreived: " + o);
- return o;
+ Object obj = jmxConnection.getMBeanServerConnection()
+ .getAttribute(new ObjectName("PdpRest:type=PdpRestMonitor"), "policyMap");
+ policyLogger.debug("policyMap value retreived: " + obj);
+ return obj;
} catch (MalformedURLException e) {
policyLogger.error("MalformedURLException for JMX connection", e);
} catch (IOException e) {
@@ -705,8 +722,7 @@ public class DashboardController extends RestrictedBaseController {
private static Integer countPolicyID(String line) {
String[] splitLine = line.split("=");
- String sCount = splitLine[1].replace("}", "");
- return Integer.parseInt(sCount);
+ return Integer.parseInt(splitLine[1].replace("}", ""));
}
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java
index 4e8c8c141..c3b474521 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/DecisionPolicyController.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -25,24 +25,13 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+
import javax.xml.bind.JAXBElement;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.onap.policy.common.logging.flexlogger.FlexLogger;
-import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.rest.adapter.PolicyRestAdapter;
-import org.onap.policy.rest.adapter.RainyDayParams;
-import org.onap.policy.rest.adapter.YAMLParams;
-import org.onap.policy.rest.jpa.PolicyEntity;
-import org.onap.policy.xacml.util.XACMLPolicyWriter;
-import org.onap.portalsdk.core.controller.RestrictedBaseController;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
+
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
@@ -59,28 +48,47 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableDefinitionType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableReferenceType;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.onap.policy.common.logging.flexlogger.FlexLogger;
+import org.onap.policy.common.logging.flexlogger.Logger;
+import org.onap.policy.rest.adapter.PolicyRestAdapter;
+import org.onap.policy.rest.adapter.RainyDayParams;
+import org.onap.policy.rest.adapter.YAMLParams;
+import org.onap.policy.rest.jpa.PolicyEntity;
+import org.onap.policy.xacml.util.XACMLPolicyWriter;
+import org.onap.portalsdk.core.controller.RestrictedBaseController;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
@Controller
@RequestMapping("/")
public class DecisionPolicyController extends RestrictedBaseController {
private static final Logger policyLogger = FlexLogger.getLogger(DecisionPolicyController.class);
-
+
public static final String FUNCTION_NOT = "urn:oasis:names:tc:xacml:1.0:function:not";
private static final String BLENTRY = "@blEntry@";
private static final String DECISIONRAWTYPE = "@#RuleProvider@#Decision_Raw@#RuleProvider@#";
- private static final String GUARD_YAML= "GUARD_YAML";
- private static final String GUARD_BL_YAML= "GUARD_BL_YAML";
- private static final String GUARD_MIN_MAX= "GUARD_MIN_MAX";
-
+ private static final String GUARD_YAML = "GUARD_YAML";
+ private static final String GUARD_BL_YAML = "GUARD_BL_YAML";
+ private static final String GUARD_MIN_MAX = "GUARD_MIN_MAX";
+
protected PolicyRestAdapter policyAdapter = null;
private ArrayList<Object> ruleAlgorithmList;
private ArrayList<Object> treatmentList = null;
protected LinkedList<Integer> ruleAlgoirthmTracker;
-
+
public DecisionPolicyController() {
// This constructor is empty
}
-
- public void rawXACMLPolicy(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
+
+ /**
+ * rawXacmlPolicy. Should this method be private?
+ *
+ * @param policyAdapter PolicyRestAdapter
+ * @param entity PolicyEntity
+ */
+ public void rawXacmlPolicy(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
try (InputStream policyXmlStream = XACMLPolicyWriter.getXmlAsInputStream(policyAdapter.getPolicyData())) {
String name = StringUtils.substringAfter(entity.getPolicyName(), "Decision_");
policyAdapter.setPolicyName(name.substring(0, name.indexOf('.')));
@@ -91,6 +99,12 @@ public class DecisionPolicyController extends RestrictedBaseController {
}
}
+ /**
+ * prePopulateDecisionPolicyData.
+ *
+ * @param policyAdapter PolicyRestAdapter
+ * @param entity PolicyEntity
+ */
@SuppressWarnings("unchecked")
public void prePopulateDecisionPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
List<Object> attributeList = new ArrayList<>();
@@ -106,237 +120,222 @@ public class DecisionPolicyController extends RestrictedBaseController {
}
if (rawPolicyCheck) {
- rawXACMLPolicy(policyAdapter, entity);
- } else {
- RainyDayParams rainydayParams = new RainyDayParams();
- Object policyData = policyAdapter.getPolicyData();
- PolicyType policy = (PolicyType) policyData;
- policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
-
- policyAdapter.setPolicyName(StringUtils.substringAfter(policyAdapter.getPolicyName(), "Decision_"));
- String description = "";
- String blackListEntryType = "Use Manual Entry";
- try {
- if (policy.getDescription().contains(BLENTRY)) {
- blackListEntryType = policy.getDescription().substring(policy.getDescription().indexOf(BLENTRY) + 9,
- policy.getDescription().lastIndexOf(BLENTRY));
- }
- policyAdapter.setBlackListEntryType(blackListEntryType);
- description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
+ rawXacmlPolicy(policyAdapter, entity);
+ return;
+ }
+ RainyDayParams rainydayParams = new RainyDayParams();
+ Object policyData = policyAdapter.getPolicyData();
+ PolicyType policy = (PolicyType) policyData;
+ policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
- } catch (Exception e) {
- policyLogger.info("General error", e);
- description = policy.getDescription();
+ policyAdapter.setPolicyName(StringUtils.substringAfter(policyAdapter.getPolicyName(), "Decision_"));
+ String description = "";
+ String blackListEntryType = "Use Manual Entry";
+ try {
+ if (policy.getDescription().contains(BLENTRY)) {
+ blackListEntryType = policy.getDescription().substring(policy.getDescription().indexOf(BLENTRY) + 9,
+ policy.getDescription().lastIndexOf(BLENTRY));
}
- policyAdapter.setPolicyDescription(description);
- // Get the target data under policy for Action.
- TargetType target = policy.getTarget();
- if (target != null) {
- // under target we have AnyOFType
- List<AnyOfType> anyOfList = target.getAnyOf();
- if (anyOfList != null) {
- Iterator<AnyOfType> iterAnyOf = anyOfList.iterator();
- while (iterAnyOf.hasNext()) {
- AnyOfType anyOf = iterAnyOf.next();
- // Under AntOfType we have AllOfType
- List<AllOfType> allOfList = anyOf.getAllOf();
- if (allOfList != null) {
- Iterator<AllOfType> iterAllOf = allOfList.iterator();
- while (iterAllOf.hasNext()) {
- AllOfType allOf = iterAllOf.next();
- // Under AllOfType we have Mathch.
- List<MatchType> matchList = allOf.getMatch();
- int index = 0;
- if (matchList != null) {
- Iterator<MatchType> iterMatch = matchList.iterator();
- while (iterMatch.hasNext()) {
- MatchType match = iterMatch.next();
- //
- // Under the match we have attributevalue and
- // attributeDesignator. So,finally down to the actual attribute.
- //
- AttributeValueType attributeValue = match.getAttributeValue();
- String value = (String) attributeValue.getContent().get(0);
- if (value != null) {
- value = value.replaceAll("\\(\\?i\\)", "");
- }
- AttributeDesignatorType designator = match.getAttributeDesignator();
- String attributeId = designator.getAttributeId();
- // First match in the target is OnapName, so set that value.
- if ("ONAPName".equals(attributeId)) {
- policyAdapter.setOnapName(value);
- }
- // Component attributes are saved under Target here we are fetching them back.
- // One row is default so we are not adding dynamic component at index 0.
- if (index >= 1) {
- Map<String, String> attribute = new HashMap<>();
- attribute.put("key", attributeId);
- attribute.put("value", value);
- attributeList.add(attribute);
- }
- index++;
- }
- }
- policyAdapter.setAttributes(attributeList);
- }
- }
- }
- // Setting rainy day attributes to the parameters object if they exist
- boolean rainy = false;
- if (!attributeList.isEmpty()) {
- for (int i = 0; i < attributeList.size(); i++) {
- Map<String, String> map = (Map<String, String>) attributeList.get(i);
- if ("WorkStep".equals(map.get("key"))) {
- rainydayParams.setWorkstep(map.get("value"));
- rainy = true;
- } else if ("BB_ID".equals(map.get("key"))) {
- rainydayParams.setBbid(map.get("value"));
- rainy = true;
- } else if ("ServiceType".equals(map.get("key"))) {
- rainydayParams.setServiceType(map.get("value"));
- rainy = true;
- } else if ("VNFType".equals(map.get("key"))) {
- rainydayParams.setVnfType(map.get("value"));
- rainy = true;
- }
- }
+ policyAdapter.setBlackListEntryType(blackListEntryType);
+ description = policy.getDescription().substring(0, policy.getDescription().indexOf("@CreatedBy:"));
+
+ } catch (Exception e) {
+ policyLogger.info("General error", e);
+ description = policy.getDescription();
+ }
+ policyAdapter.setPolicyDescription(description);
+ // Get the target data under policy for Action.
+ TargetType target = policy.getTarget();
+ if (target == null) {
+ rainydayParams.setTreatmentTableChoices(treatmentList);
+ policyAdapter.setRainyday(rainydayParams);
+ policyAdapter.setSettings(decisionList);
+ return;
+ }
+ // under target we have AnyOFType
+ for (AnyOfType anyOf : target.getAnyOf()) {
+ for (AllOfType allOf : anyOf.getAllOf()) {
+ int index = 0;
+ for (MatchType match : allOf.getMatch()) {
+ //
+ // Under the match we have attributevalue and
+ // attributeDesignator. So,finally down to the actual attribute.
+ //
+ AttributeValueType attributeValue = match.getAttributeValue();
+ String value = (String) attributeValue.getContent().get(0);
+ if (value != null) {
+ value = value.replaceAll("\\(\\?i\\)", "");
}
- if (rainy) {
- policyAdapter.setRuleProvider("Rainy_Day");
+ AttributeDesignatorType designator = match.getAttributeDesignator();
+ String attributeId = designator.getAttributeId();
+ // First match in the target is OnapName, so set that value.
+ policyAdapter.setupUsingAttribute(attributeId, value);
+ // Component attributes are saved under Target here we are fetching them back.
+ // One row is default so we are not adding dynamic component at index 0.
+ if (index >= 1) {
+ Map<String, String> attribute = new HashMap<>();
+ attribute.put("key", attributeId);
+ attribute.put("value", value);
+ attributeList.add(attribute);
}
+ index++;
+ }
+ policyAdapter.setAttributes(attributeList);
+ }
+ }
+ // Setting rainy day attributes to the parameters object if they exist
+ boolean rainy = false;
+ if (!attributeList.isEmpty()) {
+ for (int i = 0; i < attributeList.size(); i++) {
+ Map<String, String> map = (Map<String, String>) attributeList.get(i);
+ String key = map.get("key");
+ if ("WorkStep".equals(key)) {
+ rainydayParams.setWorkstep(map.get("value"));
+ rainy = true;
+ } else if ("BB_ID".equals(key)) {
+ rainydayParams.setBbid(map.get("value"));
+ rainy = true;
+ } else if ("ServiceType".equals(key)) {
+ rainydayParams.setServiceType(map.get("value"));
+ rainy = true;
+ } else if ("VNFType".equals(key)) {
+ rainydayParams.setVnfType(map.get("value"));
+ rainy = true;
}
+ }
+ }
+ if (rainy) {
+ policyAdapter.setRuleProvider("Rainy_Day");
+ }
- List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
- int index = 0;
- for (Object object : ruleList) {
- if (object instanceof VariableDefinitionType) {
- VariableDefinitionType variableDefinitionType = (VariableDefinitionType) object;
- Map<String, String> settings = new HashMap<>();
- settings.put("key", variableDefinitionType.getVariableId());
- JAXBElement<AttributeValueType> attributeValueTypeElement =
- (JAXBElement<AttributeValueType>) variableDefinitionType.getExpression();
- if (attributeValueTypeElement != null) {
- AttributeValueType attributeValueType = attributeValueTypeElement.getValue();
- settings.put("value", attributeValueType.getContent().get(0).toString());
+ List<Object> ruleList = policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
+ int index = 0;
+ for (Object object : ruleList) {
+ if (object instanceof VariableDefinitionType) {
+ VariableDefinitionType variableDefinitionType = (VariableDefinitionType) object;
+ Map<String, String> settings = new HashMap<>();
+ settings.put("key", variableDefinitionType.getVariableId());
+ JAXBElement<AttributeValueType> attributeValueTypeElement =
+ (JAXBElement<AttributeValueType>) variableDefinitionType.getExpression();
+ if (attributeValueTypeElement != null) {
+ AttributeValueType attributeValueType = attributeValueTypeElement.getValue();
+ settings.put("value", attributeValueType.getContent().get(0).toString());
+ }
+ decisionList.add(settings);
+ } else if (object instanceof RuleType) {
+ // get the condition data under the rule for rule Algorithms.
+ if (((RuleType) object).getEffect().equals(EffectType.DENY)) {
+ if (((RuleType) object).getAdviceExpressions() != null) {
+ if ("AAF".equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
+ .getAdviceExpression().get(0).getAdviceId())) {
+ policyAdapter.setRuleProvider("AAF");
+ break;
+ } else if (GUARD_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
+ .getAdviceExpression().get(0).getAdviceId())) {
+ policyAdapter.setRuleProvider(GUARD_YAML);
+ } else if (GUARD_BL_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
+ .getAdviceExpression().get(0).getAdviceId())) {
+ policyAdapter.setRuleProvider(GUARD_BL_YAML);
+ } else if (GUARD_MIN_MAX.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
+ .getAdviceExpression().get(0).getAdviceId())) {
+ policyAdapter.setRuleProvider(GUARD_MIN_MAX);
}
- decisionList.add(settings);
- } else if (object instanceof RuleType) {
- // get the condition data under the rule for rule Algorithms.
- if (((RuleType) object).getEffect().equals(EffectType.DENY)) {
- if (((RuleType) object).getAdviceExpressions() != null) {
- if ("AAF".equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
- .getAdviceExpression().get(0).getAdviceId())) {
- policyAdapter.setRuleProvider("AAF");
- break;
- } else if (GUARD_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
- .getAdviceExpression().get(0).getAdviceId())) {
- policyAdapter.setRuleProvider(GUARD_YAML);
- } else if (GUARD_BL_YAML.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
- .getAdviceExpression().get(0).getAdviceId())) {
- policyAdapter.setRuleProvider(GUARD_BL_YAML);
- } else if (GUARD_MIN_MAX.equalsIgnoreCase(((RuleType) object).getAdviceExpressions()
- .getAdviceExpression().get(0).getAdviceId())) {
- policyAdapter.setRuleProvider(GUARD_MIN_MAX);
+ } else {
+ policyAdapter.setRuleProvider("Custom");
+ }
+ ConditionType condition = ((RuleType) object).getCondition();
+ if (condition != null) {
+ ApplyType decisionApply = (ApplyType) condition.getExpression().getValue();
+ decisionApply = (ApplyType) decisionApply.getExpression().get(0).getValue();
+ ruleAlgoirthmTracker = new LinkedList<>();
+ if (policyAdapter.getRuleProvider() != null
+ && (GUARD_YAML.equals(policyAdapter.getRuleProvider())
+ || (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider()))
+ || (GUARD_MIN_MAX.equals(policyAdapter.getRuleProvider())))) {
+ YAMLParams yamlParams = new YAMLParams();
+ for (int i = 0; i < attributeList.size(); i++) {
+ Map<String, String> map = (Map<String, String>) attributeList.get(i);
+ String key = map.get("key");
+ if ("actor".equals(key)) {
+ yamlParams.setActor(map.get("value"));
+ } else if ("recipe".equals(key)) {
+ yamlParams.setRecipe(map.get("value"));
+ } else if ("target".equals(key)) {
+ yamlParams.setTargets(Arrays.asList(map.get("value").split("\\|")));
+ } else if ("clname".equals(key)) {
+ yamlParams.setClname(map.get("value"));
+ } else if ("min".equals(key)) {
+ yamlParams.setMin(map.get("value"));
+ } else if ("max".equals(key)) {
+ yamlParams.setMax(map.get("value"));
}
- } else {
- policyAdapter.setRuleProvider("Custom");
}
- ConditionType condition = ((RuleType) object).getCondition();
- if (condition != null) {
- ApplyType decisionApply = (ApplyType) condition.getExpression().getValue();
- decisionApply = (ApplyType) decisionApply.getExpression().get(0).getValue();
- ruleAlgoirthmTracker = new LinkedList<>();
- if (policyAdapter.getRuleProvider() != null
- && (GUARD_YAML.equals(policyAdapter.getRuleProvider())
- || (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider()))
- || (GUARD_MIN_MAX.equals(policyAdapter.getRuleProvider())))){
- YAMLParams yamlParams = new YAMLParams();
- for (int i = 0; i < attributeList.size(); i++) {
- Map<String, String> map = (Map<String, String>) attributeList.get(i);
- if ("actor".equals(map.get("key"))) {
- yamlParams.setActor(map.get("value"));
- } else if ("recipe".equals(map.get("key"))) {
- yamlParams.setRecipe(map.get("value"));
- } else if ("target".equals(map.get("key"))) {
- yamlParams.setTargets(Arrays.asList(map.get("value").split("\\|")));
- } else if ("clname".equals(map.get("key"))) {
- yamlParams.setClname(map.get("value"));
- } else if ("min".equals(map.get("key"))) {
- yamlParams.setMin(map.get("value"));
- } else if ("max".equals(map.get("key"))) {
- yamlParams.setMax(map.get("value"));
- }
- }
- ApplyType apply =
- (ApplyType) ((ApplyType) decisionApply.getExpression().get(0).getValue())
- .getExpression().get(0).getValue();
- yamlParams.setGuardActiveStart(
- ((AttributeValueType) apply.getExpression().get(1).getValue()).getContent()
- .get(0).toString());
- yamlParams.setGuardActiveEnd(
- ((AttributeValueType) apply.getExpression().get(2).getValue()).getContent()
- .get(0).toString());
- if (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider())) {
- apply = (ApplyType) ((ApplyType) ((ApplyType) decisionApply.getExpression()
- .get(0).getValue()).getExpression().get(1).getValue()).getExpression()
- .get(2).getValue();
- Iterator<JAXBElement<?>> attributes = apply.getExpression().iterator();
- List<String> blackList = new ArrayList<>();
- while (attributes.hasNext()) {
- blackList.add(((AttributeValueType) attributes.next().getValue())
- .getContent().get(0).toString());
- }
- yamlParams.setBlackList(blackList);
- if ("Use File Upload".equals(policyAdapter.getBlackListEntryType())) {
- policyAdapter.setBlackListEntries(blackList);
- }
- } else {
- ApplyType timeWindowSection = (ApplyType) ((ApplyType) decisionApply
- .getExpression().get(0).getValue()).getExpression().get(1).getValue();
- yamlParams.setLimit(((AttributeValueType) timeWindowSection.getExpression()
- .get(1).getValue()).getContent().get(0).toString());
- String timeWindow = ((AttributeDesignatorType) ((ApplyType) timeWindowSection
- .getExpression().get(0).getValue()).getExpression().get(0).getValue())
- .getIssuer();
- yamlParams.setTimeUnits(timeWindow.substring(timeWindow.lastIndexOf(':') + 1));
- yamlParams.setTimeWindow(timeWindow.substring(timeWindow.indexOf(":tw:") + 4,
- timeWindow.lastIndexOf(':')));
- }
- policyAdapter.setYamlparams(yamlParams);
- policyAdapter.setAttributes(new ArrayList<Object>());
- policyAdapter.setRuleAlgorithmschoices(new ArrayList<Object>());
- break;
+ ApplyType apply =
+ (ApplyType) ((ApplyType) decisionApply.getExpression().get(0).getValue())
+ .getExpression().get(0).getValue();
+ yamlParams.setGuardActiveStart(
+ ((AttributeValueType) apply.getExpression().get(1).getValue()).getContent()
+ .get(0).toString());
+ yamlParams.setGuardActiveEnd(
+ ((AttributeValueType) apply.getExpression().get(2).getValue()).getContent()
+ .get(0).toString());
+ if (GUARD_BL_YAML.equals(policyAdapter.getRuleProvider())) {
+ apply = (ApplyType) ((ApplyType) ((ApplyType) decisionApply.getExpression()
+ .get(0).getValue()).getExpression().get(1).getValue()).getExpression()
+ .get(2).getValue();
+ List<String> blackList = new ArrayList<>();
+ for (JAXBElement<?> attr : apply.getExpression()) {
+ blackList.add(((AttributeValueType) attr.getValue())
+ .getContent().get(0).toString());
}
- // Populating Rule Algorithms starting from compound.
- prePopulateDecisionCompoundRuleAlgorithm(index, decisionApply);
- policyAdapter.setRuleAlgorithmschoices(ruleAlgorithmList);
+ yamlParams.setBlackList(blackList);
+ if ("Use File Upload".equals(policyAdapter.getBlackListEntryType())) {
+ policyAdapter.setBlackListEntries(blackList);
+ }
+ } else {
+ ApplyType timeWindowSection = (ApplyType) ((ApplyType) decisionApply
+ .getExpression().get(0).getValue()).getExpression().get(1).getValue();
+ yamlParams.setLimit(((AttributeValueType) timeWindowSection.getExpression()
+ .get(1).getValue()).getContent().get(0).toString());
+ String timeWindow = ((AttributeDesignatorType) ((ApplyType) timeWindowSection
+ .getExpression().get(0).getValue()).getExpression().get(0).getValue())
+ .getIssuer();
+ yamlParams.setTimeUnits(timeWindow.substring(timeWindow.lastIndexOf(':') + 1));
+ yamlParams.setTimeWindow(timeWindow.substring(timeWindow.indexOf(":tw:") + 4,
+ timeWindow.lastIndexOf(':')));
}
- } else if (policyAdapter.getRuleProvider() != null
- && "Rainy_Day".equals(policyAdapter.getRuleProvider())
- && ((RuleType) object).getEffect().equals(EffectType.PERMIT)) {
+ policyAdapter.setYamlparams(yamlParams);
+ policyAdapter.setAttributes(new ArrayList<Object>());
+ policyAdapter.setRuleAlgorithmschoices(new ArrayList<Object>());
+ break;
+ }
+ // Populating Rule Algorithms starting from compound.
+ prePopulateDecisionCompoundRuleAlgorithm(index, decisionApply);
+ policyAdapter.setRuleAlgorithmschoices(ruleAlgorithmList);
+ }
+ } else if (policyAdapter.getRuleProvider() != null
+ && "Rainy_Day".equals(policyAdapter.getRuleProvider())
+ && ((RuleType) object).getEffect().equals(EffectType.PERMIT)) {
- TargetType ruleTarget = ((RuleType) object).getTarget();
- AdviceExpressionsType adviceExpression = ((RuleType) object).getAdviceExpressions();
+ TargetType ruleTarget = ((RuleType) object).getTarget();
+ AdviceExpressionsType adviceExpression = ((RuleType) object).getAdviceExpressions();
- String errorcode = ruleTarget.getAnyOf().get(0).getAllOf().get(0).getMatch().get(1)
- .getAttributeValue().getContent().get(0).toString();
- JAXBElement<AttributeValueType> tempTreatmentObj =
- (JAXBElement<AttributeValueType>) adviceExpression.getAdviceExpression().get(0)
- .getAttributeAssignmentExpression().get(0).getExpression();
- String treatment = tempTreatmentObj.getValue().getContent().get(0).toString();
+ String errorcode = ruleTarget.getAnyOf().get(0).getAllOf().get(0).getMatch().get(1)
+ .getAttributeValue().getContent().get(0).toString();
+ JAXBElement<AttributeValueType> tempTreatmentObj =
+ (JAXBElement<AttributeValueType>) adviceExpression.getAdviceExpression().get(0)
+ .getAttributeAssignmentExpression().get(0).getExpression();
+ String treatment = tempTreatmentObj.getValue().getContent().get(0).toString();
- prePopulateRainyDayTreatments(errorcode, treatment);
+ prePopulateRainyDayTreatments(errorcode, treatment);
- }
- }
}
}
-
- rainydayParams.setTreatmentTableChoices(treatmentList);
- policyAdapter.setRainyday(rainydayParams);
- policyAdapter.setSettings(decisionList);
}
+ rainydayParams.setTreatmentTableChoices(treatmentList);
+ policyAdapter.setRainyday(rainydayParams);
+ policyAdapter.setSettings(decisionList);
}
private void prePopulateRainyDayTreatments(String errorcode, String treatment) {
@@ -377,7 +376,6 @@ public class DecisionPolicyController extends RestrictedBaseController {
VariableReferenceType variableReference = (VariableReferenceType) jaxbDecisionTypes.get(0).getValue();
ruleMap.put("dynamicRuleAlgorithmField1", "S_" + variableReference.getVariableId());
-
// Get from Attribute Value
AttributeValueType actionConditionAttributeValue = (AttributeValueType) jaxbDecisionTypes.get(1).getValue();
String attributeValue = (String) actionConditionAttributeValue.getContent().get(0);
@@ -402,36 +400,36 @@ public class DecisionPolicyController extends RestrictedBaseController {
index++;
}
}
- if (isCompoundRule) {
- // As it's compound rule, Get the Apply types
- for (JAXBElement<?> jaxbElement : jaxbDecisionTypes) {
- ApplyType innerDecisionApply = (ApplyType) jaxbElement.getValue();
- index = prePopulateDecisionCompoundRuleAlgorithm(index, innerDecisionApply);
- }
- // Populate combo box
- if (policyLogger.isDebugEnabled()) {
- policyLogger.debug("Prepopulating Compound rule algorithm: " + index);
- }
- Map<String, String> rule = new HashMap<>();
- for (String key : PolicyController.getDropDownMap().keySet()) {
- String keyValue = PolicyController.getDropDownMap().get(key);
- if (keyValue.equals(decisionApply.getFunctionId())) {
- rule.put("dynamicRuleAlgorithmCombo", key);
- break;
- }
+ if (! isCompoundRule) {
+ return index;
+ }
+ // As it's compound rule, Get the Apply types
+ for (JAXBElement<?> jaxbElement : jaxbDecisionTypes) {
+ ApplyType innerDecisionApply = (ApplyType) jaxbElement.getValue();
+ index = prePopulateDecisionCompoundRuleAlgorithm(index, innerDecisionApply);
+ }
+ // Populate combo box
+ if (policyLogger.isDebugEnabled()) {
+ policyLogger.debug("Prepopulating Compound rule algorithm: " + index);
+ }
+ Map<String, String> rule = new HashMap<>();
+ for (String key : PolicyController.getDropDownMap().keySet()) {
+ String keyValue = PolicyController.getDropDownMap().get(key);
+ if (keyValue.equals(decisionApply.getFunctionId())) {
+ rule.put("dynamicRuleAlgorithmCombo", key);
+ break;
}
-
- rule.put("id", "A" + (index + 1));
- // Populate Key and values for Compound Rule
- rule.put("dynamicRuleAlgorithmField1", "A" + (ruleAlgoirthmTracker.getLast() + 1));
- ruleAlgoirthmTracker.removeLast();
- rule.put("dynamicRuleAlgorithmField2", "A" + (ruleAlgoirthmTracker.getLast() + 1));
- ruleAlgoirthmTracker.removeLast();
- ruleAlgoirthmTracker.addLast(index);
- ruleAlgorithmList.add(rule);
- index++;
}
- return index;
+ rule.put("id", "A" + (index + 1));
+ // Populate Key and values for Compound Rule
+ rule.put("dynamicRuleAlgorithmField1", "A" + (ruleAlgoirthmTracker.getLast() + 1));
+ ruleAlgoirthmTracker.removeLast();
+ rule.put("dynamicRuleAlgorithmField2", "A" + (ruleAlgoirthmTracker.getLast() + 1));
+ ruleAlgoirthmTracker.removeLast();
+ ruleAlgoirthmTracker.addLast(index);
+ ruleAlgorithmList.add(rule);
+
+ return ++index;
}
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntries.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntries.java
index 5c2e96bb5..0c0c15f05 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntries.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntries.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-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.
@@ -39,8 +39,10 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
@@ -59,6 +61,7 @@ import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
import org.onap.policy.rest.adapter.ReturnBlackList;
+import org.onap.policy.utils.PolicyUtils;
import org.onap.policy.xacml.api.XACMLErrorConstants;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.onap.portalsdk.core.web.support.JsonMessage;
@@ -66,7 +69,6 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
-
/**
* This class is used to import and export the black list entries which were used in the Decision Blacklist Guard YAML
* Policy.
@@ -84,7 +86,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/**
* This method is used to Export the Black List entries data from Decision BlackList Guard YAML Policy. So, user can
* update the file on adding or removing the entries, for updating the policies or using in other Environments.
- *
+ *
* @param request the request contains the policy data. So, based on that we can populate and read and write the
* entries.
* @param response after reading and writing the blacklist list entries to file, the file is copied to tmp directory
@@ -117,7 +119,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/*
* Export FileName is the combination of BlacList+Scope+PolicyName+Version+PolicyCreatedDate.
- *
+ *
*/
SimpleDateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -126,7 +128,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
String formatedDate = dateFormat.format(date);
String fileName = "BlackList_Scope_" + adapter.getDomainDir() + "_Name_" + adapter.getPolicyName()
- + "_Version_" + root.get("version").toString() + "_Date_" + formatedDate + ".xls";
+ + "_Version_" + root.get("version").toString() + "_Date_" + formatedDate + ".xls";
String deleteCheckPath = tmpFile + File.separator + fileName;
File deleteCheck = new File(deleteCheckPath);
@@ -145,9 +147,9 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
workBook.write(fos);
fos.flush();
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
PrintWriter out = response.getWriter();
String successMap = file.substring(file.lastIndexOf("webapps") + 8);
@@ -163,7 +165,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/**
* This method is used to import the BlackList excel file into the system. Which is used to create Decision
* Blacklist Guard YAML Policy.
- *
+ *
* @param request the HTTP request contains file upload stream form GUI.
* @param response the response is send to the GUI after reading the file input stream.
*/
@@ -181,9 +183,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
} else {
readItems(items, errorLogs, model);
}
- JsonMessage msg = new JsonMessage(mapper.toJson(model));
- JSONObject jsonResposne = new JSONObject(msg);
- response.getWriter().write(jsonResposne.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.toJson(model))).toString());
} catch (FileUploadException | IOException e) {
policyLogger.error("Exception Occured while importing the BlackListEntry", e);
}
@@ -191,7 +191,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/**
* This method is used to read the first item, as we expect only one entry in the file upload.
- *
+ *
* @param items The file entries which were uploaded from GUI.
* @param errorLogs on adding all incorrect entries, we can let user know what need to fixed.
* @param model Map which stores key value (blacklist and append list data)
@@ -218,7 +218,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/**
* This method is used to read the workbook in xls file item.
- *
+ *
* @param fileName fileName as input parameter
* @param errorLogs on adding all incorrect entries, we can let user know what need to fixed.
* @param model Map which stores key value (blacklist and append list data)
@@ -246,7 +246,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/**
* This method is used to read all the rows from imported Excel sheet and set to respective objects.
- *
+ *
* @param rowIterator Excel Sheet rows are passed as input parameters.
* @param blackListEntries the data is set to this object, which is going to be added.
* @param appendBlackListEntries the data is set to this object which is going to be removed.
@@ -266,7 +266,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/**
* This method is used to read all the cells in the row.
- *
+ *
* @param cellIterator iterating the cells and will parse based on the cell type.
* @param blackListEntries the data is set to this object, which is going to be added.
* @param appendBlackListEntries the data is set to this object which is going to be removed.
@@ -300,7 +300,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/**
* This method is used to read the Action cell entry.
- *
+ *
* @param cell reading the action entry cell.
* @param lineNo counts the number of the cell.
* @param errorLogs on adding all incorrect entries, we can let user know what need to fixed.
@@ -328,7 +328,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/**
* This method is used to read the BlackList cell entry.
- *
+ *
* @param cell reading the blacklist entry cell.
* @param lineNo counts the number of the cell.
* @param errorLogs on adding all incorrect entries, we can let user know what need to fixed.
@@ -353,7 +353,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/**
* This method is used to add the data to blacklist and append list after parsing each and every row.
- *
+ *
* @param actionEntry it has the input to add or not and holds either 0 or 1.
* @param blackListEntries list to add blacklist entries based on action entry = 1.
* @param appendBlackListEntries list to add append list entries based on action entry = 0.
@@ -370,7 +370,7 @@ public class ExportAndImportDecisionBlackListEntries extends RestrictedBaseContr
/**
* This method is used to identify the header of the cell.
- *
+ *
* @param cell Excel sheet cell is passed as input parameter.
* @return the column header name value
*/
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java
index a8a427970..f2f7d57af 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -20,9 +20,13 @@
package org.onap.policy.controller;
+import com.att.research.xacml.api.pap.PAPException;
+import com.att.research.xacml.api.pap.PDPPolicy;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
-import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
@@ -32,16 +36,17 @@ import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
+import lombok.Getter;
+import lombok.Setter;
import org.json.JSONObject;
import org.onap.policy.admin.RESTfulPAPEngine;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.model.PDPGroupContainer;
+import org.onap.policy.utils.PolicyUtils;
import org.onap.policy.utils.UserUtils.Pair;
import org.onap.policy.xacml.api.XACMLErrorConstants;
import org.onap.policy.xacml.api.pap.OnapPDPGroup;
-import org.onap.policy.xacml.api.pap.PAPPolicyEngine;
import org.onap.policy.xacml.std.pap.StdPDP;
import org.onap.policy.xacml.std.pap.StdPDPGroup;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
@@ -51,370 +56,377 @@ import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import com.att.research.xacml.api.pap.PAPException;
-import com.att.research.xacml.api.pap.PDPPolicy;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
@Controller
@RequestMapping({"/"})
public class PDPController extends RestrictedBaseController {
- private static final Logger policyLogger = FlexLogger.getLogger(PDPController.class);
-
- protected List<OnapPDPGroup> groups = Collections.synchronizedList(new ArrayList<OnapPDPGroup>());
- private PDPGroupContainer container;
-
- private static String SUPERADMIN = "super-admin";
- private static String SUPEREDITOR = "super-editor";
- private static String SUPERGUEST = "super-guest";
-
- private Set<OnapPDPGroup> groupsData;
-
- private boolean junit = false;
-
- private PolicyController policyController;
- public PolicyController getPolicyController() {
- return policyController;
- }
-
- public void setPolicyController(PolicyController policyController) {
- this.policyController = policyController;
- }
-
- public synchronized void refreshGroups(HttpServletRequest request) {
- synchronized(this.groups) {
- this.groups.clear();
- try {
- PolicyController controller = getPolicyControllerInstance();
- Set<PDPPolicy> filteredPolicies = new HashSet<>();
- Set<String> scopes;
- List<String> roles;
- String userId = isJunit() ? "Test" : UserUtils.getUserSession(request).getOrgUserId();
- List<Object> userRoles = controller.getRoles(userId);
- Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles);
- roles = pair.u;
- scopes = pair.t;
-
- if(!junit&& controller.getPapEngine()==null){
- setPAPEngine(request);
- }
- if (roles.contains(SUPERADMIN) || roles.contains(SUPEREDITOR) || roles.contains(SUPERGUEST) ) {
- if(!junit){
- this.groups.addAll(controller.getPapEngine().getOnapPDPGroups());
- }else{
- this.groups.addAll(this.getGroupsData());
- }
- }else{
- if(!userRoles.isEmpty() && !scopes.isEmpty()){
- this.groups.addAll(controller.getPapEngine().getOnapPDPGroups());
- List<OnapPDPGroup> tempGroups = new ArrayList<>();
- if(!groups.isEmpty()){
- Iterator<OnapPDPGroup> pdpGroup = groups.iterator();
- while(pdpGroup.hasNext()){
- OnapPDPGroup group = pdpGroup.next();
- Set<PDPPolicy> policies = group.getPolicies();
- for(PDPPolicy policy : policies){
- for(String scope : scopes){
- scope = scope.replace(File.separator, ".");
- String policyName = policy.getId();
- if(policyName.contains(".Config_")){
- policyName = policyName.substring(0, policyName.lastIndexOf(".Config_"));
- }else if(policyName.contains(".Action_")){
- policyName = policyName.substring(0, policyName.lastIndexOf(".Action_"));
- }else if(policyName.contains(".Decision_")){
- policyName = policyName.substring(0, policyName.lastIndexOf(".Decision_"));
- }
- if(policyName.startsWith(scope)){
- filteredPolicies.add(policy);
- }
- }
- }
- pdpGroup.remove();
- StdPDPGroup newGroup = (StdPDPGroup) group;
- newGroup.setPolicies(filteredPolicies);
- tempGroups.add(newGroup);
- }
- groups.clear();
- groups = tempGroups;
- }
- }
- }
- } catch (PAPException e) {
- String message = "Unable to retrieve Groups from server: " + e;
- policyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR+"Pap Engine is Null" + message);
- }
- }
- }
-
- private void setPAPEngine(HttpServletRequest request) {
- String myRequestURL = request.getRequestURL().toString();
+ private static final Logger policyLogger = FlexLogger.getLogger(PDPController.class);
+
+ protected List<OnapPDPGroup> groups = Collections.synchronizedList(new ArrayList<OnapPDPGroup>());
+ private PDPGroupContainer container;
+
+ private static String SUPERADMIN = "super-admin";
+ private static String SUPEREDITOR = "super-editor";
+ private static String SUPERGUEST = "super-guest";
+
+ private Set<OnapPDPGroup> groupsData;
+
+ private boolean junit = false;
+
+ private PolicyController policyController;
+
+ public PolicyController getPolicyController() {
+ return policyController;
+ }
+
+ public void setPolicyController(PolicyController policyController) {
+ this.policyController = policyController;
+ }
+
+ /**
+ * refreshGroups.
+ *
+ * @param request HttpServletRequest
+ */
+ public synchronized void refreshGroups(HttpServletRequest request) {
+ synchronized (this.groups) {
+ this.groups.clear();
+ try {
+ PolicyController controller = getPolicyControllerInstance();
+ Set<PDPPolicy> filteredPolicies = new HashSet<>();
+ Set<String> scopes;
+ List<String> roles;
+ String userId = isJunit() ? "Test" : UserUtils.getUserSession(request).getOrgUserId();
+ List<Object> userRoles = controller.getRoles(userId);
+ Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles);
+ roles = pair.second;
+ scopes = pair.first;
+
+ if (!junit && controller.getPapEngine() == null) {
+ setPapEngine(request);
+ }
+ if (roles.contains(SUPERADMIN) || roles.contains(SUPEREDITOR) || roles.contains(SUPERGUEST)) {
+ if (!junit) {
+ this.groups.addAll(controller.getPapEngine().getOnapPDPGroups());
+ } else {
+ this.groups.addAll(this.getGroupsData());
+ }
+ } else {
+ if (!userRoles.isEmpty() && !scopes.isEmpty()) {
+ this.groups.addAll(controller.getPapEngine().getOnapPDPGroups());
+ List<OnapPDPGroup> tempGroups = new ArrayList<>();
+ if (!groups.isEmpty()) {
+ Iterator<OnapPDPGroup> pdpGroup = groups.iterator();
+ while (pdpGroup.hasNext()) {
+ OnapPDPGroup group = pdpGroup.next();
+ Set<PDPPolicy> policies = group.getPolicies();
+ for (PDPPolicy policy : policies) {
+ for (String scope : scopes) {
+ scope = scope.replace(File.separator, ".");
+ String policyName = policy.getId();
+ if (policyName.contains(".Config_")) {
+ policyName = policyName.substring(0, policyName.lastIndexOf(".Config_"));
+ } else if (policyName.contains(".Action_")) {
+ policyName = policyName.substring(0, policyName.lastIndexOf(".Action_"));
+ } else if (policyName.contains(".Decision_")) {
+ policyName = policyName.substring(0, policyName.lastIndexOf(".Decision_"));
+ }
+ if (policyName.startsWith(scope)) {
+ filteredPolicies.add(policy);
+ }
+ }
+ }
+ pdpGroup.remove();
+ StdPDPGroup newGroup = (StdPDPGroup) group;
+ newGroup.setPolicies(filteredPolicies);
+ tempGroups.add(newGroup);
+ }
+ groups.clear();
+ groups = tempGroups;
+ }
+ }
+ }
+ } catch (PAPException e) {
+ String message = "Unable to retrieve Groups from server: " + e;
+ policyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Pap Engine is Null" + message);
+ }
+ }
+ }
+
+ private void setPapEngine(HttpServletRequest request) {
try {
//
// Set the URL for the RESTful PAP Engine
//
- PolicyController.setPapEngine((PAPPolicyEngine) new RESTfulPAPEngine(myRequestURL));
- }catch(Exception e){
- policyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR+"Exception Occured while loading PAP",e);
+ PolicyController.setPapEngine(new RESTfulPAPEngine(request.getRequestURL().toString()));
+ } catch (Exception e) {
+ policyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Exception Occured while loading PAP", e);
+ }
+ }
+
+ /**
+ * getPDPGroupEntityData.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/get_PDPGroupData"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.GET},
+ produces = MediaType.APPLICATION_JSON_VALUE)
+ public void getPDPGroupEntityData(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ refreshGroups(request);
+ response.getWriter().write(new JSONObject(new JsonMessage(
+ new ObjectMapper().writeValueAsString(groups))).toString());
+ } catch (Exception e) {
+ policyLogger.error(
+ XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while retrieving the PDP Group data" + e);
+ }
+ }
+
+ /**
+ * savePDPGroup.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/pdp_Group/save_pdp_group"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.POST})
+ public void savePDPGroup(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ //
+ //
+ //
+ ObjectMapper mapper = new ObjectMapper();
+ PolicyController controller = getPolicyControllerInstance();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ this.container = new PDPGroupContainer(controller.getPapEngine());
+
+ String userId = UserUtils.getUserSession(request).getOrgUserId();
+ policyLogger.info(
+ "*******************Logging UserID for Save PDP Group Function*******************************");
+ policyLogger.info("UserId: " + userId + "PDP Group Data: " + root.get("pdpGroupData").toString());
+ policyLogger.info(
+ "********************************************************************************************");
+
+ StdPDPGroup pdpGroupData = mapper
+ .readValue(root.get("pdpGroupData").toString().replace("groupName", "name"), StdPDPGroup.class);
+ try {
+ if (pdpGroupData.getId() == null) {
+ this.container.addNewGroup(pdpGroupData.getName(), pdpGroupData.getDescription());
+ } else {
+ this.container.updateGroup(pdpGroupData);
+ }
+
+ } catch (Exception e) {
+ String message = "Unable to create Group. Reason:\n" + e.getMessage();
+ policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while creating the PDP Group"
+ + message + e);
+ }
+
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+
+ refreshGroups(request);
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString());
+ } catch (Exception e) {
+ policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while Saving the PDP Group" + e);
+ try {
+ response.getWriter().write(e.getMessage());
+ } catch (Exception e1) {
+ policyLogger
+ .error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while Saving the PDP Group" + e1);
+ }
+ }
+ }
+
+ /**
+ * removePDPGroup.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/pdp_Group/remove_pdp_group"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.POST})
+ public void removePDPGroup(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ //
+ //
+ //
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PolicyController controller = getPolicyControllerInstance();
+ this.container = new PDPGroupContainer(controller.getPapEngine());
+
+ String userId = UserUtils.getUserSession(request).getOrgUserId();
+ policyLogger.info(
+ "*********************Logging UserID for Remove PDP Group Function*******************************");
+ policyLogger.info("UserId: " + userId + "PDP Group Data: " + root.get("pdpGroupData").toString());
+ policyLogger.info(
+ "************************************************************************************************");
+
+ StdPDPGroup pdpGroupData = mapper.readValue(root.get("pdpGroupData").toString(), StdPDPGroup.class);
+ if ("Default".equals(pdpGroupData.getName())) {
+ throw new UnsupportedOperationException("You can't remove the Default Group.");
+ } else {
+ this.container.removeGroup(pdpGroupData, null);
+ }
+
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ refreshGroups(request);
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString());
+ } catch (Exception e) {
+ policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while Removing the PDP Group" + e);
+ try {
+ response.getWriter().write(e.getMessage());
+ } catch (Exception e1) {
+ policyLogger.error("Exception Occured" + e1);
+ }
+ }
+ }
+
+ /**
+ * savePDPToGroup.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/pdp_Group/save_pdpTogroup"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.POST})
+ public void savePDPToGroup(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ //
+ //
+ //
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PolicyController controller = getPolicyControllerInstance();
+ this.container = new PDPGroupContainer(controller.getPapEngine());
+ String update = root.get("update").toString();
+ PdpData pdpGroupData = mapper.readValue(root.get("pdpInGroup").toString(), PdpData.class);
+ StdPDPGroup activeGroupData = mapper.readValue(root.get("activePDP").toString(), StdPDPGroup.class);
+
+ String userId = UserUtils.getUserSession(request).getOrgUserId();
+ policyLogger.info(
+ "*************Logging UserID while Saving pdp in PDP Group***********************************");
+ policyLogger.info("UserId: " + userId + "PDP Group Data: " + root.get("pdpInGroup").toString()
+ + "Active Group Data: " + root.get("activePDP").toString());
+ policyLogger.info(
+ "**********************************************************************************************");
+
+ try {
+
+ if (update.contains("false")) {
+ this.container.addNewPDP(pdpGroupData.getId(), activeGroupData, pdpGroupData.getName(),
+ pdpGroupData.getDescription(), pdpGroupData.getJmxPort());
+ } else {
+ this.container.updateGroup(activeGroupData);
+ }
+ } catch (Exception e) {
+ String message = "Unable to create Group. Reason:\n" + e.getMessage();
+ policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE
+ + "Error Occured while Creating Pdp in PDP Group" + message + e);
+ }
+
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ refreshGroups(request);
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString());
+ } catch (Exception e) {
+ policyLogger
+ .error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while Creating Pdp in PDP Group" + e);
+ try {
+ response.getWriter().write(e.getMessage());
+ } catch (Exception e1) {
+ policyLogger.error("Exception Occured" + e1);
+ }
}
}
- @RequestMapping(value={"/get_PDPGroupData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE)
- public void getPDPGroupEntityData(HttpServletRequest request, HttpServletResponse response){
- try{
- ObjectMapper mapper = new ObjectMapper();
- refreshGroups(request);
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
- }
- catch (Exception e){
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Error Occured while retrieving the PDP Group data" + e);
- }
- }
-
- @RequestMapping(value={"/pdp_Group/save_pdp_group"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
- public void savePDPGroup(HttpServletRequest request, HttpServletResponse response){
- try {
- ObjectMapper mapper = new ObjectMapper();
- PolicyController controller = getPolicyControllerInstance();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- this.container = new PDPGroupContainer(controller.getPapEngine());
-
- String userId = UserUtils.getUserSession(request).getOrgUserId();
- policyLogger.info("****************************************Logging UserID for Save PDP Group Function*****************************************");
- policyLogger.info("UserId: " + userId + "PDP Group Data: "+ root.get("pdpGroupData").toString());
- policyLogger.info("***************************************************************************************************************************");
-
- StdPDPGroup pdpGroupData = mapper.readValue(root.get("pdpGroupData").toString().replace("groupName", "name"), StdPDPGroup.class);
- try {
- if(pdpGroupData.getId() == null){
- this.container.addNewGroup(pdpGroupData.getName(), pdpGroupData.getDescription());
- }else{
- this.container.updateGroup(pdpGroupData);
- }
-
- } catch (Exception e) {
- String message = "Unable to create Group. Reason:\n" + e.getMessage();
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Error Occured while creating the PDP Group" + message + e);
- }
-
-
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
-
- PrintWriter out = response.getWriter();
- refreshGroups(request);
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
- JSONObject j = new JSONObject(msg);
- out.write(j.toString());
- }
- catch (Exception e){
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Error Occured while Saving the PDP Group" + e);
- response.setCharacterEncoding("UTF-8");
- PrintWriter out = null;
- try {
- request.setCharacterEncoding("UTF-8");
- out = response.getWriter();
- out.write(e.getMessage());
- } catch (Exception e1) {
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Error Occured while Saving the PDP Group" + e1);
- }
- }
- }
-
- @RequestMapping(value={"/pdp_Group/remove_pdp_group"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
- public void removePDPGroup(HttpServletRequest request, HttpServletResponse response){
- try{
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PolicyController controller = getPolicyControllerInstance();
- this.container = new PDPGroupContainer(controller.getPapEngine());
-
- String userId = UserUtils.getUserSession(request).getOrgUserId();
- policyLogger.info("****************************************Logging UserID for Remove PDP Group Function*****************************************");
- policyLogger.info("UserId: " + userId + "PDP Group Data: "+ root.get("pdpGroupData").toString());
- policyLogger.info("*****************************************************************************************************************************");
-
- StdPDPGroup pdpGroupData = mapper.readValue(root.get("pdpGroupData").toString(), StdPDPGroup.class);
- if("Default".equals(pdpGroupData.getName())) {
- throw new UnsupportedOperationException("You can't remove the Default Group.");
- }else{
- this.container.removeGroup(pdpGroupData, null);
- }
-
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
-
- PrintWriter out = response.getWriter();
-
- refreshGroups(request);
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
- JSONObject j = new JSONObject(msg);
- out.write(j.toString());
- }
- catch (Exception e){
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Error Occured while Removing the PDP Group" + e);
- PrintWriter out;
- try {
- response.setCharacterEncoding("UTF-8");
- request.setCharacterEncoding("UTF-8");
- out = response.getWriter();
- out.write(e.getMessage());
- } catch (Exception e1) {
- policyLogger.error("Exception Occured"+ e1);
- }
- }
- }
-
- @RequestMapping(value={"/pdp_Group/save_pdpTogroup"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
- public void savePDPToGroup(HttpServletRequest request, HttpServletResponse response){
- try {
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PolicyController controller = getPolicyControllerInstance();
- this.container = new PDPGroupContainer(controller.getPapEngine());
- String update = root.get("update").toString();
- PdpData pdpGroupData = mapper.readValue(root.get("pdpInGroup").toString(), PdpData.class);
- StdPDPGroup activeGroupData = mapper.readValue(root.get("activePDP").toString(), StdPDPGroup.class);
-
- String userId = UserUtils.getUserSession(request).getOrgUserId();
- policyLogger.info("****************************************Logging UserID while Saving pdp in PDP Group*****************************************");
- policyLogger.info("UserId: " + userId + "PDP Group Data: "+ root.get("pdpInGroup").toString() + "Active Group Data: "+ root.get("activePDP").toString());
- policyLogger.info("*******************************************************************************************************************************");
-
- try {
-
- if(update.contains("false")){
- this.container.addNewPDP(pdpGroupData.getId(), activeGroupData, pdpGroupData.getName(), pdpGroupData.getDescription(), pdpGroupData.getJmxPort());
- }else{
- this.container.updateGroup(activeGroupData);
- }
- } catch (Exception e) {
- String message = "Unable to create Group. Reason:\n" + e.getMessage();
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Error Occured while Creating Pdp in PDP Group" + message + e);
- }
-
-
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
-
- PrintWriter out = response.getWriter();
- refreshGroups(request);
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
- JSONObject j = new JSONObject(msg);
- out.write(j.toString());
- }
- catch (Exception e){
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Error Occured while Creating Pdp in PDP Group" + e);
- PrintWriter out;
- try {
- response.setCharacterEncoding("UTF-8");
- request.setCharacterEncoding("UTF-8");
- out = response.getWriter();
- out.write(e.getMessage());
- } catch (Exception e1) {
- policyLogger.error("Exception Occured"+ e1);
- }
- }
- }
-
- @RequestMapping(value={"/pdp_Group/remove_pdpFromGroup"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
- public void removePDPFromGroup(HttpServletRequest request, HttpServletResponse response){
- try{
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- PolicyController controller = getPolicyControllerInstance();
- this.container = new PDPGroupContainer(controller.getPapEngine());
- StdPDP deletePdp = mapper.readValue(root.get("data").toString(), StdPDP.class);
- StdPDPGroup activeGroupData = mapper.readValue(root.get("activePDP").toString(), StdPDPGroup.class);
-
- String userId = UserUtils.getUserSession(request).getOrgUserId();
- policyLogger.info("****************************************Logging UserID while Removing pdp from PDP Group*****************************************");
- policyLogger.info("UserId: " + userId + "Delete PDP Group Data: "+ root.get("data").toString() + "Active Group Data: "+ root.get("activePDP").toString());
- policyLogger.info("***********************************************************************************************************************************");
-
- this.container.removePDP(deletePdp, activeGroupData);
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
-
- PrintWriter out = response.getWriter();
- refreshGroups(request);
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(groups));
- JSONObject j = new JSONObject(msg);
- out.write(j.toString());
- }
- catch (Exception e){
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Error Occured while Removing Pdp from PDP Group" + e);
- PrintWriter out;
- try {
- response.setCharacterEncoding("UTF-8");
- request.setCharacterEncoding("UTF-8");
- out = response.getWriter();
- out.write(e.getMessage());
- } catch (Exception e1) {
- policyLogger.error("Exception Occured"+ e1);
- }
- }
- }
-
- private PolicyController getPolicyControllerInstance(){
- return policyController != null ? getPolicyController() : new PolicyController();
- }
-
- public boolean isJunit() {
- return junit;
- }
-
- public void setJunit(boolean junit) {
- this.junit = junit;
- }
-
- public Set<OnapPDPGroup> getGroupsData() {
- return groupsData;
- }
-
- public void setGroupsData(Set<OnapPDPGroup> groupsData) {
- this.groupsData = groupsData;
- }
+ /**
+ * removePDPFromGroup.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ */
+ @RequestMapping(
+ value = {"/pdp_Group/remove_pdpFromGroup"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.POST})
+ public void removePDPFromGroup(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ //
+ //
+ //
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ PolicyController controller = getPolicyControllerInstance();
+ this.container = new PDPGroupContainer(controller.getPapEngine());
+
+ String userId = UserUtils.getUserSession(request).getOrgUserId();
+ policyLogger.info(
+ "********************Logging UserID while Removing pdp from PDP Group**************************");
+ policyLogger.info("UserId: " + userId + "Delete PDP Group Data: " + root.get("data").toString()
+ + "Active Group Data: " + root.get("activePDP").toString());
+ policyLogger.info(
+ "************************************************************************************************");
+
+ StdPDP deletePdp = mapper.readValue(root.get("data").toString(), StdPDP.class);
+ StdPDPGroup activeGroupData = mapper.readValue(root.get("activePDP").toString(), StdPDPGroup.class);
+ this.container.removePDP(deletePdp, activeGroupData);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+
+ refreshGroups(request);
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(groups))).toString());
+ } catch (Exception e) {
+ policyLogger.error(
+ XACMLErrorConstants.ERROR_DATA_ISSUE + "Error Occured while Removing Pdp from PDP Group" + e);
+ try {
+ response.getWriter().write(e.getMessage());
+ } catch (Exception e1) {
+ policyLogger.error("Exception Occured" + e1);
+ }
+ }
+ }
+
+ private PolicyController getPolicyControllerInstance() {
+ return policyController != null ? getPolicyController() : new PolicyController();
+ }
+
+ public boolean isJunit() {
+ return junit;
+ }
+
+ public void setJunit(boolean junit) {
+ this.junit = junit;
+ }
+
+ public Set<OnapPDPGroup> getGroupsData() {
+ return groupsData;
+ }
+
+ public void setGroupsData(Set<OnapPDPGroup> groupsData) {
+ this.groupsData = groupsData;
+ }
}
-class PdpData{
- String id;
- int jmxPort;
- String name;
- String description;
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public int getJmxPort() {
- return jmxPort;
- }
- public void setJmxPort(int jmxPort) {
- this.jmxPort = jmxPort;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getDescription() {
- return description;
- }
- public void setDescription(String description) {
- this.description = description;
- }
-
+@Getter
+@Setter
+class PdpData {
+ String id;
+ int jmxPort;
+ String name;
+ String description;
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java
index 700aa3a57..dbf744829 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java
@@ -24,6 +24,7 @@ package org.onap.policy.controller;
import com.att.research.xacml.util.XACMLProperties;
import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -37,12 +38,15 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
+
import javax.annotation.PostConstruct;
import javax.script.SimpleBindings;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+
import org.json.JSONObject;
import org.onap.policy.admin.PolicyNotificationMail;
import org.onap.policy.admin.RESTfulPAPEngine;
@@ -52,7 +56,7 @@ import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.model.PDPGroupContainer;
import org.onap.policy.model.Roles;
-import org.onap.policy.rest.XACMLRestProperties;
+import org.onap.policy.rest.XacmlRestProperties;
import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.Datatype;
import org.onap.policy.rest.jpa.FunctionDefinition;
@@ -60,6 +64,7 @@ import org.onap.policy.rest.jpa.PolicyEntity;
import org.onap.policy.rest.jpa.PolicyVersion;
import org.onap.policy.rest.jpa.UserInfo;
import org.onap.policy.utils.PeCryptoUtils;
+import org.onap.policy.utils.PolicyUtils;
import org.onap.policy.utils.UserUtils.Pair;
import org.onap.policy.xacml.api.XACMLErrorConstants;
import org.onap.policy.xacml.api.pap.PAPPolicyEngine;
@@ -99,7 +104,7 @@ public class PolicyController extends RestrictedBaseController {
}
public static String getDomain() {
- return XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_DOMAIN, "urn");
+ return XACMLProperties.getProperty(XacmlRestProperties.PROP_ADMIN_DOMAIN, "urn");
}
private static final Object mapAccess = new Object();
@@ -108,8 +113,6 @@ public class PolicyController extends RestrictedBaseController {
// Constant variables used across Policy-sdk
private static final String policyData = "policyData";
- private static final String characterEncoding = "UTF-8";
- private static final String contentType = "application/json";
private static final String file = "file";
private static final String SUPERADMIN = "super-admin";
private static final String POLICYGUEST = "Policy Guest";
@@ -160,8 +163,8 @@ public class PolicyController extends RestrictedBaseController {
return jUnit;
}
- public static void setjUnit(boolean jUnit) {
- PolicyController.jUnit = jUnit;
+ public static void setjUnit(boolean isJunit) {
+ PolicyController.jUnit = isJunit;
}
@Autowired
@@ -183,9 +186,8 @@ public class PolicyController extends RestrictedBaseController {
try {
String fileName;
if (jUnit) {
- fileName = new File(".").getCanonicalPath() + File.separator + "src"
- + File.separator + "test" + File.separator + "resources" + File.separator
- + "JSONConfig.json";
+ fileName = new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test"
+ + File.separator + "resources" + File.separator + "JSONConfig.json";
} else {
fileName = "xacml.admin.properties";
}
@@ -236,19 +238,17 @@ public class PolicyController extends RestrictedBaseController {
// Get the Property Values for Dashboard tab Limit
try {
setLogTableLimit(prop.getProperty("xacml.onap.dashboard.logTableLimit"));
- setSystemAlertTableLimit(
- prop.getProperty("xacml.onap.dashboard.systemAlertTableLimit"));
+ setSystemAlertTableLimit(prop.getProperty("xacml.onap.dashboard.systemAlertTableLimit"));
} catch (Exception e) {
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE
- + "Dashboard tab Property fields are missing" + e);
+ policyLogger
+ .error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Dashboard tab Property fields are missing" + e);
setLogTableLimit("5000");
setSystemAlertTableLimit("2000");
}
System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "xacml.admin.properties");
} catch (IOException ex) {
policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE
- + "Exception Occured while reading the Smtp properties from xacml.admin.properties file"
- + ex);
+ + "Exception Occured while reading the Smtp properties from xacml.admin.properties file" + ex);
}
// Initialize the FunctionDefinition table at Server Start up
@@ -298,8 +298,7 @@ public class PolicyController extends RestrictedBaseController {
FunctionDefinition value = (FunctionDefinition) functiondefinitions.get(i);
mapID2Function.put(value.getXacmlid(), value);
if (!mapDatatype2Function.containsKey(value.getDatatypeBean())) {
- mapDatatype2Function.put(value.getDatatypeBean(),
- new ArrayList<FunctionDefinition>());
+ mapDatatype2Function.put(value.getDatatypeBean(), new ArrayList<FunctionDefinition>());
}
mapDatatype2Function.get(value.getDatatypeBean()).add(value);
}
@@ -311,22 +310,20 @@ public class PolicyController extends RestrictedBaseController {
* @param request HttpServletRequest.
* @param response HttpServletResponse.
*/
- @RequestMapping(value = {"/get_FunctionDefinitionDataByName"},
+ @RequestMapping(
+ value = {"/get_FunctionDefinitionDataByName"},
method = {org.springframework.web.bind.annotation.RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
- public void getFunctionDefinitionData(HttpServletRequest request,
- HttpServletResponse response) {
+ public void getFunctionDefinitionData(HttpServletRequest request, HttpServletResponse response) {
try {
Map<String, Object> model = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
- model.put("functionDefinitionDatas", mapper.writeValueAsString(
- commonClassDao.getDataByColumn(FunctionDefinition.class, "shortname")));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ model.put("functionDefinitionDatas",
+ mapper.writeValueAsString(commonClassDao.getDataByColumn(FunctionDefinition.class, "shortname")));
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
- policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE
- + "Error while retriving the Function Definition data" + e);
+ policyLogger.error(
+ XACMLErrorConstants.ERROR_DATA_ISSUE + "Error while retriving the Function Definition data" + e);
}
}
@@ -368,7 +365,8 @@ public class PolicyController extends RestrictedBaseController {
* @param request HttpServletRequest.
* @param response HttpServletResponse.
*/
- @RequestMapping(value = {"/get_UserRolesData"},
+ @RequestMapping(
+ value = {"/get_UserRolesData"},
method = {org.springframework.web.bind.annotation.RequestMethod.GET},
produces = MediaType.APPLICATION_JSON_VALUE)
public void getUserRolesEntityData(HttpServletRequest request, HttpServletResponse response) {
@@ -377,9 +375,7 @@ public class PolicyController extends RestrictedBaseController {
Map<String, Object> model = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
model.put("userRolesDatas", mapper.writeValueAsString(getRolesOfUser(userId)));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
policyLogger.error("Exception Occured" + e);
}
@@ -402,8 +398,7 @@ public class PolicyController extends RestrictedBaseController {
setPapEngine(new RESTfulPAPEngine(myRequestUrl));
new PDPGroupContainer(new RESTfulPAPEngine(myRequestUrl));
} catch (Exception e) {
- policyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR
- + "Exception Occured while loading PAP" + e);
+ policyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Exception Occured while loading PAP" + e);
}
Map<String, Object> model = new HashMap<>();
return new ModelAndView("policy_Editor", "model", model);
@@ -438,9 +433,8 @@ public class PolicyController extends RestrictedBaseController {
savePolicyRoles(name, filteredRole, userId);
} else {
userRoles = getRoles(userId);
- Pair<Set<String>, List<String>> pair =
- org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles);
- roles = pair.u;
+ Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles);
+ roles = pair.second;
if (!roles.contains(filteredRole)) {
savePolicyRoles(name, filteredRole, userId);
}
@@ -511,8 +505,7 @@ public class PolicyController extends RestrictedBaseController {
roles.clear();
roles.add(SUPERADMIN);
}
- if (!roles.contains(SUPERADMIN)
- || (POLICYGUEST.equalsIgnoreCase(role) && !superCheck)) {
+ if (!roles.contains(SUPERADMIN) || (POLICYGUEST.equalsIgnoreCase(role) && !superCheck)) {
if ("Policy Admin".equalsIgnoreCase(role.trim())) {
roles.add("admin");
} else if ("Policy Editor".equalsIgnoreCase(role.trim())) {
@@ -576,8 +569,7 @@ public class PolicyController extends RestrictedBaseController {
}
public PolicyVersion getPolicyEntityFromPolicyVersion(String query) {
- return (PolicyVersion) commonClassDao.getEntityItem(PolicyVersion.class, "policyName",
- query);
+ return (PolicyVersion) commonClassDao.getEntityItem(PolicyVersion.class, "policyName", query);
}
public List<Object> getDataByQuery(String query, SimpleBindings params) {
@@ -604,11 +596,11 @@ public class PolicyController extends RestrictedBaseController {
/**
* Switch Version Policy Content.
*
- * @param pName which is used to find associated versions.
+ * @param thePolicyName which is used to find associated versions.
* @return list of available versions based on policy name.
*/
- public JSONObject switchVersionPolicyContent(String pName) {
- String policyName = pName;
+ public JSONObject switchVersionPolicyContent(String thePolicyName) {
+ String policyName = thePolicyName;
String dbCheckName = policyName.replace("/", ".");
if (dbCheckName.contains("Config_")) {
dbCheckName = dbCheckName.replace(".Config_", ":Config_");
@@ -620,25 +612,23 @@ public class PolicyController extends RestrictedBaseController {
dbCheckName = dbCheckName.replace(".Decision_", ":Decision_");
}
String[] splitDbCheckName = dbCheckName.split(":");
- String query =
- "FROM PolicyEntity where policyName like :splitDBCheckName1 and scope = :splitDBCheckName0";
+ String query = "FROM PolicyEntity where policyName like :splitDBCheckName1 and scope = :splitDBCheckName0";
SimpleBindings params = new SimpleBindings();
params.put("splitDBCheckName1", splitDbCheckName[1] + "%");
params.put("splitDBCheckName0", splitDbCheckName[0]);
- List<Object> policyEntity = commonClassDao.getDataByQuery(query, params);
List<String> av = new ArrayList<>();
- for (Object entity : policyEntity) {
- PolicyEntity pEntity = (PolicyEntity) entity;
- String removeExtension = pEntity.getPolicyName().replace(".xml", "");
+ for (Object entity : commonClassDao.getDataByQuery(query, params)) {
+ PolicyEntity policyEntity = (PolicyEntity) entity;
+ String removeExtension = policyEntity.getPolicyName().replace(".xml", "");
String version = removeExtension.substring(removeExtension.lastIndexOf('.') + 1);
- String userName = getUserId(pEntity, "@ModifiedBy:");
- av.add(version + " | " + pEntity.getModifiedDate() + " | " + userName);
+ String userName = getUserId(policyEntity, "@ModifiedBy:");
+ av.add(version + " | " + policyEntity.getModifiedDate() + " | " + userName);
}
if (policyName.contains("/")) {
policyName = policyName.replace("/", File.separator);
}
- PolicyVersion entity = (PolicyVersion) commonClassDao.getEntityItem(PolicyVersion.class,
- "policyName", policyName);
+ PolicyVersion entity =
+ (PolicyVersion) commonClassDao.getEntityItem(PolicyVersion.class, "policyName", policyName);
JSONObject el = new JSONObject();
el.put("activeVersion", entity.getActiveVersion());
el.put("availableVersions", av);
@@ -646,13 +636,20 @@ public class PolicyController extends RestrictedBaseController {
return el;
}
+ /**
+ * getUserId.
+ *
+ * @param data PolicyEntity
+ * @param value String
+ * @return String
+ */
public String getUserId(PolicyEntity data, String value) {
String userId = "";
- String uValue = value;
+ String userValue = value; // Why?
String description = getDescription(data);
- if (description.contains(uValue)) {
- userId = description.substring(description.indexOf(uValue) + uValue.length(),
- description.lastIndexOf(uValue));
+ if (description.contains(userValue)) {
+ userId = description.substring(description.indexOf(userValue) + userValue.length(),
+ description.lastIndexOf(userValue));
}
UserInfo userInfo = (UserInfo) getEntityItem(UserInfo.class, "userLoginId", userId);
if (userInfo == null) {
@@ -661,35 +658,43 @@ public class PolicyController extends RestrictedBaseController {
return userInfo.getUserName();
}
+ /**
+ * getDescription.
+ *
+ * @param data PolicyEntity
+ * @return String
+ */
public String getDescription(PolicyEntity data) {
- InputStream stream =
- new ByteArrayInputStream(data.getPolicyData().getBytes(StandardCharsets.UTF_8));
+ InputStream stream = new ByteArrayInputStream(data.getPolicyData().getBytes(StandardCharsets.UTF_8));
Object policy = XACMLPolicyScanner.readPolicy(stream);
if (policy instanceof PolicySetType) {
return ((PolicySetType) policy).getDescription();
} else if (policy instanceof PolicyType) {
return ((PolicyType) policy).getDescription();
- } else {
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE
- + "Expecting a PolicySet/Policy/Rule object. Got: "
- + policy.getClass().getCanonicalName());
- return null;
}
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Expecting a PolicySet/Policy/Rule object. Got: "
+ + policy.getClass().getCanonicalName());
+ return null;
}
+ /**
+ * getUserInfo.
+ *
+ * @param data PolicyEntity
+ * @param activePolicies list of active policies
+ * @return array of String
+ */
public String[] getUserInfo(PolicyEntity data, List<PolicyVersion> activePolicies) {
String policyName = data.getScope().replace(".", File.separator) + File.separator
+ data.getPolicyName().substring(0, data.getPolicyName().indexOf('.'));
- PolicyVersion polVersion = activePolicies.stream()
- .filter(a -> policyName.equals(a.getPolicyName())).findAny().orElse(null);
+ PolicyVersion polVersion =
+ activePolicies.stream().filter(a -> policyName.equals(a.getPolicyName())).findAny().orElse(null);
String[] result = new String[2];
UserInfo userCreate = null;
UserInfo userModify = null;
if (polVersion != null) {
- userCreate = (UserInfo) getEntityItem(UserInfo.class, "userLoginId",
- polVersion.getCreatedBy());
- userModify = (UserInfo) getEntityItem(UserInfo.class, "userLoginId",
- polVersion.getModifiedBy());
+ userCreate = (UserInfo) getEntityItem(UserInfo.class, "userLoginId", polVersion.getCreatedBy());
+ userModify = (UserInfo) getEntityItem(UserInfo.class, "userLoginId", polVersion.getModifiedBy());
}
result[0] = userCreate != null ? userCreate.getUserName() : SUPERADMIN;
@@ -726,8 +731,7 @@ public class PolicyController extends RestrictedBaseController {
return mapDatatype2Function;
}
- public static void setMapDatatype2Function(
- Map<Datatype, List<FunctionDefinition>> mapDatatype2Function) {
+ public static void setMapDatatype2Function(Map<Datatype, List<FunctionDefinition>> mapDatatype2Function) {
PolicyController.mapDatatype2Function = mapDatatype2Function;
}
@@ -940,11 +944,11 @@ public class PolicyController extends RestrictedBaseController {
}
public static String getCharacterencoding() {
- return characterEncoding;
+ return PolicyUtils.CHARACTER_ENCODING;
}
public static String getContenttype() {
- return contentType;
+ return PolicyUtils.APPLICATION_JSON;
}
public static String getFile() {
@@ -969,17 +973,4 @@ public class PolicyController extends RestrictedBaseController {
return fileSizeLimit;
}
- /**
- * Function to convert date.
- *
- * @param dateTTL input date value.
- * @return
- */
- public String convertDate(String dateTTL) {
- String formateDate = null;
- if (dateTTL.contains("-")) {
- formateDate = dateTTL.replace("-", "/");
- }
- return formateDate;
- }
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java
index 6c7a0aff3..cf7e62b46 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2020 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.
@@ -38,6 +38,7 @@ import java.util.Set;
import javax.script.SimpleBindings;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -52,7 +53,7 @@ import org.onap.policy.rest.adapter.PolicyExportAdapter;
import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.ActionBodyEntity;
import org.onap.policy.rest.jpa.ConfigurationDataEntity;
-import org.onap.policy.rest.jpa.DCAEuuid;
+import org.onap.policy.rest.jpa.DcaeUuid;
import org.onap.policy.rest.jpa.GroupPolicyScopeList;
import org.onap.policy.rest.jpa.MicroServiceConfigName;
import org.onap.policy.rest.jpa.MicroServiceLocation;
@@ -61,10 +62,12 @@ import org.onap.policy.rest.jpa.PolicyEditorScopes;
import org.onap.policy.rest.jpa.PolicyEntity;
import org.onap.policy.rest.jpa.PolicyVersion;
import org.onap.policy.rest.jpa.UserInfo;
+import org.onap.policy.utils.PolicyUtils;
import org.onap.policy.utils.UserUtils.Pair;
import org.onap.policy.xacml.api.XACMLErrorConstants;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.onap.portalsdk.core.web.support.UserUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -90,7 +93,6 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
private static final String ACTION = "Action_";
private static CommonClassDao commonClassDao;
-
private PolicyController policyController;
public PolicyController getPolicyController() {
@@ -113,14 +115,20 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
// Empty constructor
}
+ @Autowired
+ private PolicyExportAndImportController(CommonClassDao commonClassDao) {
+ PolicyExportAndImportController.commonClassDao = commonClassDao;
+ }
+
/**
* This is for downloading existing policy.
- *
+ *
* @param request HttpServletRequest
* @param response HttpServletResponse
* @throws IOException error out
*/
- @RequestMapping(value = {"/policy_download/exportPolicy.htm"},
+ @RequestMapping(
+ value = {"/policy_download/exportPolicy.htm"},
method = {org.springframework.web.bind.annotation.RequestMethod.POST})
public void exportPolicy(HttpServletRequest request, HttpServletResponse response) throws IOException {
try (HSSFWorkbook workBook2 = new HSSFWorkbook()) {
@@ -134,9 +142,8 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
LinkedHashMap<?, ?> selected = (LinkedHashMap<?, ?>) policyId;
String policyWithScope =
selected.get(policyName).toString() + "." + selected.get("activeVersion").toString() + ".xml";
- String scope =
- policyWithScope.substring(0, policyWithScope.lastIndexOf(File.separator)).replace(
- File.separator, ".");
+ String scope = policyWithScope.substring(0, policyWithScope.lastIndexOf(File.separator))
+ .replace(File.separator, ".");
String policyNamel = policyWithScope.substring(policyWithScope.lastIndexOf(File.separator) + 1);
selectedPolicy.add(policyNamel + ":" + scope);
}
@@ -152,9 +159,8 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
headingRow.createCell(6).setCellValue(BODYSIZE);
headingRow.createCell(7).setCellValue(configurationbody);
- List<Object> entityData =
- commonClassDao.getMultipleDataOnAddingConjunction(PolicyEntity.class, "policyName:scope",
- selectedPolicy);
+ List<Object> entityData = commonClassDao.getMultipleDataOnAddingConjunction(PolicyEntity.class,
+ "policyName:scope", selectedPolicy);
processEntityData(entityData, sheet, headingRow); //
String tmp = System.getProperty("catalina.base") + File.separator + "webapps" + File.separator + "temp";
String deleteCheckPath = tmp + File.separator + "PolicyExport.xls";
@@ -173,14 +179,14 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
workBook2.write(fos);
fos.flush();
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
PrintWriter out = response.getWriter();
String successMap = file.substring(file.lastIndexOf("webapps") + 8);
String responseString = mapper.writeValueAsString(successMap);
- JSONObject j = new JSONObject("{data: " + responseString + "}");
- out.write(j.toString());
+ JSONObject json = new JSONObject("{data: " + responseString + "}");
+ out.write(json.toString());
} catch (Exception e) {
logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Exception Occured while Exporting Policies" + e);
}
@@ -233,8 +239,8 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
row.createCell(7).setCellValue(body.substring(index, Math.min(index + 30000, body.length())));
} else {
headingRow.createCell(7 + arraySize).setCellValue(configurationbody + arraySize);
- row.createCell(7 + arraySize).setCellValue(
- body.substring(index, Math.min(index + 30000, body.length())));
+ row.createCell(7 + arraySize)
+ .setCellValue(body.substring(index, Math.min(index + 30000, body.length())));
}
index += 30000;
arraySize += 1;
@@ -247,17 +253,15 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
return row;
}
-
-
/**
* This is to upload a policy and save it to database.
- *
+ *
* @param file String
* @param request HttpServletRequest
* @return JSONObject
* @throws IOException error out
*/
- public JSONObject importRepositoryFile(String file, HttpServletRequest request) throws IOException {
+ public String importRepositoryFile(String file, HttpServletRequest request) throws IOException {
boolean configExists = false;
boolean actionExists = false;
String configName = null;
@@ -269,14 +273,14 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
// Check if the Role and Scope Size are Null get the values from db.
List<Object> userRoles = controller.getRoles(userId);
Pair<Set<String>, List<String>> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles);
- List<String> roles = pair.u;
- Set<String> scopes = pair.t;
+ List<String> roles = pair.second;
+ Set<String> scopes = pair.first;
try (FileInputStream excelFile = new FileInputStream(new File(file));
HSSFWorkbook workbook = new HSSFWorkbook(excelFile)) {
Sheet datatypeSheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = datatypeSheet.iterator();
-
+ String sendResult = null;
while (rowIterator.hasNext()) {
finalColumn = false;
PolicyEntity policyEntity = new PolicyEntity();
@@ -291,6 +295,7 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
int bodySize = 0;
int setBodySize = 0;
boolean configurationBodySet = false;
+ boolean errorFlag = false;
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
if (policyName.equalsIgnoreCase(getCellHeaderName(cell))) {
@@ -314,13 +319,18 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
configurationDataEntity =
populateConfigurationDataEntity(policyEntity, configurationDataEntity, cell);
actionBodyEntity = populateActionBodyObject(policyEntity, actionBodyEntity, cell);
- JSONObject response = validatRequiredValue(policyEntity, body, finalColumn, configurationBodySet);
- if (response != null) {
- return response;
+ String response = null;
+ response = validatRequiredValue(policyEntity, body, finalColumn, configurationBodySet);
+ if (!StringUtils.isBlank(response)) {
+ sendResult = sendResult + "\n" + response;
+ errorFlag = true;
+ }
+ if (!StringUtils.isBlank(response) && !rowIterator.hasNext()) {
+ return sendResult;
}
savePolicyEntiies(finalColumn, configurationBodySet, configurationDataEntity, policyEntity,
controller, roles, userInfo, scopes, configName, userId, configExists, actionExists,
- actionBodyEntity, body);
+ actionBodyEntity, body, errorFlag);
}
}
@@ -331,9 +341,8 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
}
private void writeConfigurationFile(ConfigurationDataEntity configurationDataEntity) {
- try (FileWriter fw =
- new FileWriter(PolicyController.getConfigHome() + File.separator
- + configurationDataEntity.getConfigurationName())) {
+ try (FileWriter fw = new FileWriter(
+ PolicyController.getConfigHome() + File.separator + configurationDataEntity.getConfigurationName())) {
BufferedWriter bw = new BufferedWriter(fw);
bw.write(configurationDataEntity.getConfigBody());
bw.close();
@@ -343,8 +352,8 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
}
private void writeActionBodyFile(ActionBodyEntity actionBodyEntity) {
- try (FileWriter fw =
- new FileWriter(PolicyController.getActionHome() + File.separator + actionBodyEntity.getActionBodyName())) {
+ try (FileWriter fw = new FileWriter(
+ PolicyController.getActionHome() + File.separator + actionBodyEntity.getActionBodyName())) {
BufferedWriter bw = new BufferedWriter(fw);
bw.write(actionBodyEntity.getActionBody());
bw.close();
@@ -360,49 +369,46 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
/**
* This is to validate all matching required fields.
- *
+ *
* @param policyName String
* @param jsonString String
* @return String
*/
public String validatMatchRequiredFields(String policyName, String jsonString) {
-
+ String errorMsg = "";
try {
JSONObject jsonObject = new JSONObject(jsonString);
- String configName = jsonObject.getString("configName");
- String uuid = jsonObject.getString("uuid");
- String erorMsg = validConfigName(configName);
- if (erorMsg != null) {
- return erorMsg;
+ String confErorMsg = validConfigName(jsonObject.getString("configName"));
+ if (!confErorMsg.isEmpty()) {
+ errorMsg = errorMsg + "\n POLICY :" + policyName + " at " + confErorMsg;
}
- erorMsg = validUuid(uuid);
- if (erorMsg != null) {
- return erorMsg;
+ String uuidErorMsg = validUuid(jsonObject.getString("uuid"));
+ if (!uuidErorMsg.isEmpty()) {
+ errorMsg = errorMsg + "\n POLICY :" + policyName + " at " + uuidErorMsg;
}
- String location = jsonObject.getString("location");
- erorMsg = validLocation(location);
- if (erorMsg != null) {
- return erorMsg;
+ String locErorMsg = validLocation(jsonObject.getString("location"));
+ if (!locErorMsg.isEmpty()) {
+ errorMsg = errorMsg + "\n POLICY :" + policyName + " at " + locErorMsg;
}
- String policyScope = jsonObject.getString("policyScope");
- erorMsg = validPolicyScope(policyScope);
- if (erorMsg != null) {
- return erorMsg;
+ String pScopeErorMsg = validPolicyScope(jsonObject.getString("policyScope"));
+ if (!pScopeErorMsg.isEmpty()) {
+ errorMsg = errorMsg + "\n POLICY :" + policyName + " at " + pScopeErorMsg;
}
String msVersion = jsonObject.getString("version");
String msService = jsonObject.getString("service");
if (!isAttributeObjectFound(msService, msVersion)) {
- return POLICY + policyName + " MS Service: " + msService + " and MS Version: " + msVersion + NOTVALID;
+ errorMsg = errorMsg + "\n POLICY :" + policyName + " at MS Service: " + msService + " and MS Version: "
+ + msVersion + NOTVALID;
}
} catch (Exception e) {
logger.error("Exception Occured While validating required fields", e);
}
- return null;
+ return errorMsg;
}
- private JSONObject validatRequiredValue(PolicyEntity policyEntity, StringBuilder body, boolean finalColumn,
+ private String validatRequiredValue(PolicyEntity policyEntity, StringBuilder body, boolean finalColumn,
boolean configurationBodySet) {
if (finalColumn && configurationBodySet && (policyEntity.getPolicyName().contains(CONFIG_MS))) {
String errorMsg = validatMatchRequiredFields(policyEntity.getPolicyName(), body.toString());
@@ -410,7 +416,7 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
logger.error("errorMsg => " + errorMsg);
JSONObject response = new JSONObject();
response.append("error", errorMsg);
- return response;
+ return errorMsg;
}
}
return null;
@@ -433,7 +439,7 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
private String validUuid(String uuid) {
String message = null;
if (uuid != null) {
- List<String> uuids = commonClassDao.getDataByColumn(DCAEuuid.class, "name");
+ List<String> uuids = commonClassDao.getDataByColumn(DcaeUuid.class, "name");
if (uuids != null && !(uuids.stream().filter(o -> o.equals(uuid)).findFirst().isPresent())) {
message = POLICY + policyName + " uuid: " + uuid + NOTVALID;
}
@@ -565,6 +571,7 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
return false;
}
+ @SuppressWarnings("rawtypes")
private boolean isContinue(List<String> roles, String scope, UserInfo userInfo, Set scopes) {
if (roles.contains(admin) || roles.contains(editor)) {
if (scopes.isEmpty()) {
@@ -605,14 +612,12 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
private void savePolicyEntity(PolicyEntity policyEntity, String configName, String userId) {
if (configName != null) {
if (configName.contains(config) || configName.contains(DECISION_MS)) {
- ConfigurationDataEntity configuration =
- (ConfigurationDataEntity) commonClassDao.getEntityItem(ConfigurationDataEntity.class,
- configurationName, configName);
+ ConfigurationDataEntity configuration = (ConfigurationDataEntity) commonClassDao
+ .getEntityItem(ConfigurationDataEntity.class, configurationName, configName);
policyEntity.setConfigurationData(configuration);
} else {
- ActionBodyEntity actionBody =
- (ActionBodyEntity) commonClassDao.getEntityItem(ActionBodyEntity.class, "actionBodyName",
- configName);
+ ActionBodyEntity actionBody = (ActionBodyEntity) commonClassDao.getEntityItem(ActionBodyEntity.class,
+ "actionBodyName", configName);
policyEntity.setActionBodyEntity(actionBody);
}
}
@@ -639,8 +644,9 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
private int getSetBodySize(PolicyEntity policyEntity, Cell cell, int setBodySize) {
int setBodySizel = setBodySize;
if (configurationbody.equalsIgnoreCase(getCellHeaderName(cell))
- && ((policyEntity.getPolicyName().contains(config) || policyEntity.getPolicyName()
- .contains(DECISION_MS)) && (policyEntity.getPolicyName().contains("Config_BRMS_Param_")))) {
+ && ((policyEntity.getPolicyName().contains(config)
+ || policyEntity.getPolicyName().contains(DECISION_MS))
+ && (policyEntity.getPolicyName().contains("Config_BRMS_Param_")))) {
setBodySizel += 1;
}
return setBodySizel;
@@ -664,29 +670,28 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
boolean configurationBodySet) {
boolean configurationBodySetl = configurationBodySet;
if (configurationbody.equalsIgnoreCase(getCellHeaderName(cell))
- && (policyEntity.getPolicyName().contains(config) || policyEntity.getPolicyName().contains(DECISION_MS))
- && (setBodySize == bodySize)) {
+ && (policyEntity.getPolicyName().contains(config) || policyEntity.getPolicyName().contains(DECISION_MS))
+ && (setBodySize == bodySize)) {
configurationBodySetl = true;
}
if (configurationbody.equalsIgnoreCase(getCellHeaderName(cell))
- && (policyEntity.getPolicyName().contains(config) || policyEntity.getPolicyName().contains(DECISION_MS))
- && (setBodySize == 0)) {
+ && (policyEntity.getPolicyName().contains(config) || policyEntity.getPolicyName().contains(DECISION_MS))
+ && (setBodySize == 0)) {
configurationBodySetl = true;
}
return configurationBodySetl;
}
-
private boolean isConfigExists(PolicyEntity policyEntity, Cell cell, boolean configExists) {
boolean configExistsl = configExists;
if (configurationbody.equalsIgnoreCase(getCellHeaderName(cell))
- && (policyEntity.getPolicyName().contains(config) || policyEntity.getPolicyName().contains(DECISION_MS))) {
+ && (policyEntity.getPolicyName().contains(config)
+ || policyEntity.getPolicyName().contains(DECISION_MS))) {
configExistsl = true;
}
return configExistsl;
}
-
private boolean isActionExists(PolicyEntity policyEntity, Cell cell, boolean actionExists) {
boolean actionExistsl = actionExists;
if (configurationbody.equalsIgnoreCase(getCellHeaderName(cell))
@@ -706,17 +711,18 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
private StringBuilder addCellValue(PolicyEntity policyEntity, Cell cell, StringBuilder body) {
if (configurationbody.equalsIgnoreCase(getCellHeaderName(cell))
- && (policyEntity.getPolicyName().contains(config) || policyEntity.getPolicyName().contains(DECISION_MS))) {
+ && (policyEntity.getPolicyName().contains(config)
+ || policyEntity.getPolicyName().contains(DECISION_MS))) {
body.append(cell.getStringCellValue());
}
return body;
}
- private ActionBodyEntity setActionBodyObject(PolicyEntity policyEntity, ActionBodyEntity actionBodyEntity,
+ private ActionBodyEntity setActionBodyObject(PolicyEntity policyEntity, ActionBodyEntity actionBodyEntity,
Cell cell) {
if (configurationbody.equalsIgnoreCase(getCellHeaderName(cell))
- && (policyEntity.getPolicyName().contains(ACTION))) {
+ && (policyEntity.getPolicyName().contains(ACTION))) {
actionBodyEntity.setActionBody(cell.getStringCellValue());
}
return actionBodyEntity;
@@ -734,7 +740,8 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
private ConfigurationDataEntity populateConfigurationDataEntity(PolicyEntity policyEntity,
ConfigurationDataEntity configurationDataEntity, Cell cell) {
if (configurationName.equalsIgnoreCase(getCellHeaderName(cell))
- && (policyEntity.getPolicyName().contains(config) || policyEntity.getPolicyName().contains(DECISION_MS))) {
+ && (policyEntity.getPolicyName().contains(config)
+ || policyEntity.getPolicyName().contains(DECISION_MS))) {
configurationDataEntity.setConfigurationName(cell.getStringCellValue());
}
return configurationDataEntity;
@@ -751,9 +758,9 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
private void savePolicyEntiies(boolean finalColumn, boolean configurationBodySet,
ConfigurationDataEntity configurationDataEntity, PolicyEntity policyEntity, PolicyController controller,
List<String> roles, UserInfo userInfo, Set<String> scopes, String configName, String userId,
- boolean configExists, boolean actionExists, ActionBodyEntity actionBodyEntity, StringBuilder body) {
+ boolean configExists, boolean actionExists, ActionBodyEntity actionBodyEntity, StringBuilder body, boolean errorFlagSent) {
- if (finalColumn && configurationBodySet) {
+ if (finalColumn && configurationBodySet && !errorFlagSent) {
configurationDataEntity.setConfigBody(body.toString());
String scope = policyEntity.getScope().replace(".", File.separator);
String query = "FROM PolicyEntity where policyName = :policyName and scope = :policyScope";
@@ -771,7 +778,7 @@ public class PolicyExportAndImportController extends RestrictedBaseController {
saveVersion(policyEntity, scope, userId); //
// Notify Other paps regarding Export Policy.
PolicyRestController restController = new PolicyRestController();
- restController.notifyOtherPAPSToUpdateConfigurations("exportPolicy", configName, null);
+ restController.notifyOtherPapsToUpdateConfigurations("exportPolicy", configName, null);
}
}
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyNotificationController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyNotificationController.java
index 707bbac09..ebd24dce3 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyNotificationController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyNotificationController.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -20,13 +20,16 @@
package org.onap.policy.controller;
-
/*
- *
+ *
* */
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+
import java.io.File;
import java.io.IOException;
-import java.io.PrintWriter;
import java.util.List;
import javax.script.SimpleBindings;
@@ -46,87 +49,87 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-
@Controller
@RequestMapping({"/"})
public class PolicyNotificationController extends RestrictedBaseController {
private static Logger logger = FlexLogger.getLogger(PolicyNotificationController.class);
- @Autowired
- CommonClassDao commonClassDao;
-
- @RequestMapping(value={"/watchPolicy"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
- public ModelAndView watchPolicy(HttpServletRequest request, HttpServletResponse response) throws IOException{
- StringBuilder path = new StringBuilder();
- String responseValue = "";
- try {
- String userId = UserUtils.getUserSession(request).getOrgUserId();
- logger.info("userid info: " + userId);
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- JsonNode root = mapper.readTree(request.getReader());
- String name = root.get("watchData").get("name").toString();
- JsonNode pathList = root.get("watchData").get("path");
- String finalName;
- if(pathList.isArray()){
- ArrayNode arrayNode = (ArrayNode) pathList;
- for (int i = 0; i < arrayNode.size(); i++) {
- JsonNode individualElement = arrayNode.get(i);
- if(i == 0){
- path.append(individualElement.toString().replace("\"", "").trim());
- }else{
- path.append(File.separator + individualElement.toString().replace("\"", "").trim());
- }
- }
- }
-
- if(pathList.size() > 0){
- finalName = path + File.separator + name.replace("\"", "").trim();
- }else{
- finalName = name.replace("\"", "").trim();
- }
- if(finalName.contains("\\")){
- finalName = finalName.replace("\\", "\\\\");
- }
- String query = "from WatchPolicyNotificationTable where POLICYNAME = :finalName and LOGINIDS = :userId";
- SimpleBindings params = new SimpleBindings();
- params.put("finalName", finalName);
- params.put("userId", userId);
- List<Object> watchList = commonClassDao.getDataByQuery(query, params);
- if(watchList.isEmpty()){
- if(finalName.contains("\\\\")){
- finalName = finalName.replace("\\\\", File.separator);
- }
- WatchPolicyNotificationTable watch = new WatchPolicyNotificationTable();
- watch.setPolicyName(finalName);
- watch.setLoginIds(userId);
- commonClassDao.save(watch);
- responseValue = "You have Subscribed Successfully";
- }else{
- commonClassDao.delete(watchList.get(0));
- responseValue = "You have UnSubscribed Successfully";
- }
-
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
+ @Autowired
+ CommonClassDao commonClassDao;
+
+ /**
+ * watchPolicy.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ * @return ModelAndView
+ * @throws IOException IOException
+ */
+ @RequestMapping(value = {"/watchPolicy"}, method = {org.springframework.web.bind.annotation.RequestMethod.POST})
+ public ModelAndView watchPolicy(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ StringBuilder path = new StringBuilder();
+ String responseValue = "";
+ try {
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ //
+ //
+ //
+ String userId = UserUtils.getUserSession(request).getOrgUserId();
+ logger.info("userid info: " + userId);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ JsonNode root = mapper.readTree(request.getReader());
+ String name = root.get("watchData").get("name").toString();
+ JsonNode pathList = root.get("watchData").get("path");
+ String finalName;
+ if (pathList.isArray()) {
+ ArrayNode arrayNode = (ArrayNode) pathList;
+ for (int i = 0; i < arrayNode.size(); i++) {
+ JsonNode individualElement = arrayNode.get(i);
+ if (i == 0) {
+ path.append(individualElement.toString().replace("\"", "").trim());
+ } else {
+ path.append(File.separator + individualElement.toString().replace("\"", "").trim());
+ }
+ }
+ }
+
+ if (pathList.size() > 0) {
+ finalName = path + File.separator + name.replace("\"", "").trim();
+ } else {
+ finalName = name.replace("\"", "").trim();
+ }
+ if (finalName.contains("\\")) {
+ finalName = finalName.replace("\\", "\\\\");
+ }
+ String query = "from WatchPolicyNotificationTable where POLICYNAME = :finalName and LOGINIDS = :userId";
+ SimpleBindings params = new SimpleBindings();
+ params.put("finalName", finalName);
+ params.put("userId", userId);
+ List<Object> watchList = commonClassDao.getDataByQuery(query, params);
+ if (watchList.isEmpty()) {
+ if (finalName.contains("\\\\")) {
+ finalName = finalName.replace("\\\\", File.separator);
+ }
+ WatchPolicyNotificationTable watch = new WatchPolicyNotificationTable();
+ watch.setPolicyName(finalName);
+ watch.setLoginIds(userId);
+ commonClassDao.save(watch);
+ responseValue = "You have Subscribed Successfully";
+ } else {
+ commonClassDao.delete(watchList.get(0));
+ responseValue = "You have UnSubscribed Successfully";
+ }
+
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
- PrintWriter out = response.getWriter();
- String responseString = mapper.writeValueAsString(responseValue);
- JSONObject j = new JSONObject("{watchData: " + responseString + "}");
- out.write(j.toString());
- return null;
- }catch(Exception e){
- response.setCharacterEncoding("UTF-8");
- request.setCharacterEncoding("UTF-8");
- logger.error("Error druing watchPolicy function " + e);
- PrintWriter out = response.getWriter();
- out.write(PolicyUtils.CATCH_EXCEPTION);
- }
- return null;
- }
+ response.getWriter().write(new JSONObject("{watchData: "
+ + mapper.writeValueAsString(responseValue) + "}").toString());
+ } catch (Exception e) {
+ logger.error("Error druing watchPolicy function " + e);
+ response.getWriter().write(PolicyUtils.CATCH_EXCEPTION);
+ }
+ return null;
+ }
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java
index b02da1996..c1c784083 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyRolesController.java
@@ -7,9 +7,9 @@
* 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.
@@ -20,7 +20,12 @@
package org.onap.policy.controller;
-import java.io.PrintWriter;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -28,7 +33,8 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
+import lombok.Getter;
+import lombok.Setter;
import org.json.JSONObject;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
@@ -36,6 +42,7 @@ import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.PolicyEditorScopes;
import org.onap.policy.rest.jpa.PolicyRoles;
import org.onap.policy.rest.jpa.UserInfo;
+import org.onap.policy.utils.PolicyUtils;
import org.onap.portalsdk.core.controller.RestrictedBaseController;
import org.onap.portalsdk.core.web.support.JsonMessage;
import org.onap.portalsdk.core.web.support.UserUtils;
@@ -45,12 +52,6 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
-import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
@Controller
@RequestMapping("/")
public class PolicyRolesController extends RestrictedBaseController {
@@ -69,19 +70,19 @@ public class PolicyRolesController extends RestrictedBaseController {
/**
* Gets the policy roles entity data.
*
- * @param request the request
+ * @param request the request
* @param response the response
*/
- @RequestMapping(value = { "/get_RolesData" }, method = {
- org.springframework.web.bind.annotation.RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
+ @RequestMapping(
+ value = {"/get_RolesData"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.GET},
+ produces = MediaType.APPLICATION_JSON_VALUE)
public void getPolicyRolesEntityData(HttpServletRequest request, HttpServletResponse response) {
try {
Map<String, Object> model = new HashMap<>();
ObjectMapper mapper = new ObjectMapper();
model.put("rolesDatas", mapper.writeValueAsString(commonClassDao.getUserRoles()));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
LOGGER.error("Exception Occured" + e);
}
@@ -90,12 +91,13 @@ public class PolicyRolesController extends RestrictedBaseController {
/**
* Save roles and Mechid entity data.
*
- * @param request the request
+ * @param request the request
* @param response the response
* @return the model and view
*/
- @RequestMapping(value = { "/save_NonSuperRolesData" }, method = {
- org.springframework.web.bind.annotation.RequestMethod.POST })
+ @RequestMapping(
+ value = {"/save_NonSuperRolesData"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.POST})
public ModelAndView SaveRolesEntityData(HttpServletRequest request, HttpServletResponse response) {
try {
StringBuilder scopeName = new StringBuilder();
@@ -112,11 +114,11 @@ public class PolicyRolesController extends RestrictedBaseController {
}
}
LOGGER.info(
- "****************************************Logging UserID for Roles Function********************************************************");
+ "*************************Logging UserID for Roles Function***********************************");
LOGGER.info("UserId: " + userId + "Updating the Scope for following user" + adapter.getLoginId()
+ "ScopeNames" + adapter.getScope());
LOGGER.info(
- "*********************************************************************************************************************************");
+ "*********************************************************************************************");
UserInfo userInfo = new UserInfo();
userInfo.setUserLoginId(adapter.getLoginId().getUserName());
userInfo.setUserName(adapter.getLoginId().getUserName());
@@ -125,11 +127,11 @@ public class PolicyRolesController extends RestrictedBaseController {
if (adapter.getId() == 0 && "mechid".equals(adapter.getRole())) {
// Save new mechid scopes entity data.
LOGGER.info(
- "****************************************Logging UserID for New Mechid Function***************************************************");
+ "*********************Logging UserID for New Mechid Function********************************");
LOGGER.info("UserId:" + userId + "Adding new mechid-scopes for following user" + adapter.getLoginId()
+ "ScopeNames " + adapter.getScope());
LOGGER.info(
- "*********************************************************************************************************************************");
+ "*******************************************************************************************");
// First add the mechid to userinfo
commonClassDao.save(userInfo);
checkNew = true;
@@ -146,15 +148,11 @@ public class PolicyRolesController extends RestrictedBaseController {
} else {
commonClassDao.update(roles);
}
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application / json");
- request.setCharacterEncoding("UTF-8");
-
- PrintWriter out = response.getWriter();
- String responseString = mapper.writeValueAsString(commonClassDao.getUserRoles());
- JSONObject j = new JSONObject("{rolesDatas: " + responseString + "}");
-
- out.write(j.toString());
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.setContentType(PolicyUtils.APPLICATION_JSON);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.getWriter().write(new JSONObject("{rolesDatas: "
+ + mapper.writeValueAsString(commonClassDao.getUserRoles()) + "}").toString());
} catch (Exception e) {
LOGGER.error("Exception Occured" + e);
}
@@ -164,11 +162,13 @@ public class PolicyRolesController extends RestrictedBaseController {
/**
* Gets the policy scopes entity data.
*
- * @param request the request
+ * @param request the request
* @param response the response
*/
- @RequestMapping(value = { "/get_PolicyRolesScopeData" }, method = {
- org.springframework.web.bind.annotation.RequestMethod.GET }, produces = MediaType.APPLICATION_JSON_VALUE)
+ @RequestMapping(
+ value = {"/get_PolicyRolesScopeData"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.GET},
+ produces = MediaType.APPLICATION_JSON_VALUE)
public void getPolicyScopesEntityData(HttpServletRequest request, HttpServletResponse response) {
try {
scopelist = new ArrayList<>();
@@ -177,51 +177,18 @@ public class PolicyRolesController extends RestrictedBaseController {
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
List<String> scopesData = commonClassDao.getDataByColumn(PolicyEditorScopes.class, "scopeName");
model.put("scopeDatas", mapper.writeValueAsString(scopesData));
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
- JSONObject j = new JSONObject(msg);
- response.getWriter().write(j.toString());
+ response.getWriter().write(new JSONObject(new JsonMessage(mapper.writeValueAsString(model))).toString());
} catch (Exception e) {
LOGGER.error("Exception Occured" + e);
}
}
}
+@Setter
+@Getter
class ReadScopes {
private int id;
private UserInfo loginId;
private String role;
private List<String> scope;
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public UserInfo getLoginId() {
- return loginId;
- }
-
- public void setLoginId(UserInfo loginId) {
- this.loginId = loginId;
- }
-
- public String getRole() {
- return role;
- }
-
- public void setRole(String role) {
- this.role = role;
- }
-
- public List<String> getScope() {
- return scope;
- }
-
- public void setScope(List<String> scope) {
- this.scope = scope;
- }
-
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyValidationController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyValidationController.java
index fca1096ff..05264c8b6 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyValidationController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyValidationController.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -20,9 +20,9 @@
package org.onap.policy.controller;
+import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
-import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -40,40 +40,42 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
@Controller
@RequestMapping("/")
public class PolicyValidationController extends RestrictedBaseController {
- private static final Logger LOGGER = FlexLogger.getLogger(PolicyValidationController.class);
+ private static final Logger LOGGER = FlexLogger.getLogger(PolicyValidationController.class);
+
+ /**
+ * validatePolicy.
+ *
+ * @param request HttpServletRequest
+ * @param response HttpServletResponse
+ * @return ModelAndView
+ * @throws IOException IOException
+ */
+ @RequestMapping(
+ value = {"/policyController/validate_policy.htm"},
+ method = {org.springframework.web.bind.annotation.RequestMethod.POST})
+ public ModelAndView validatePolicy(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ try {
- @RequestMapping(value={"/policyController/validate_policy.htm"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
- public ModelAndView validatePolicy(HttpServletRequest request, HttpServletResponse response) throws IOException{
- try{
-
- PolicyValidation validation = new PolicyValidation();
- PolicyValidationRequestWrapper wrapper = new PolicyValidationRequestWrapper();
- StringBuilder responseString;
- ObjectMapper mapper = new ObjectMapper();
+ PolicyValidation validation = new PolicyValidation();
+ PolicyValidationRequestWrapper wrapper = new PolicyValidationRequestWrapper();
+ StringBuilder responseString;
+ ObjectMapper mapper = new ObjectMapper();
- PolicyRestAdapter policyData = wrapper.populateRequestParameters(request);
- responseString = validation.validatePolicy(policyData);
-
- PrintWriter out = response.getWriter();
- JsonMessage msg = new JsonMessage(mapper.writeValueAsString(responseString.toString()));
- JSONObject j = new JSONObject(msg);
- out.write(j.toString());
+ PolicyRestAdapter policyData = wrapper.populateRequestParameters(request);
+ responseString = validation.validatePolicy(policyData);
- return null;
- }
- catch (Exception e){
- LOGGER.error("Exception Occured During Policy Validation" +e);
- response.setCharacterEncoding("UTF-8");
- request.setCharacterEncoding("UTF-8");
- PrintWriter out = response.getWriter();
- out.write(PolicyUtils.CATCH_EXCEPTION);
- }
- return null;
- }
-} \ No newline at end of file
+ response.getWriter().write(new JSONObject(
+ new JsonMessage(mapper.writeValueAsString(responseString.toString()))).toString());
+ } catch (Exception e) {
+ LOGGER.error("Exception Occured During Policy Validation" + e);
+ response.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ request.setCharacterEncoding(PolicyUtils.CHARACTER_ENCODING);
+ response.getWriter().write(PolicyUtils.CATCH_EXCEPTION);
+ }
+ return null;
+ }
+}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/dao/SystemLogDbDao.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/dao/SystemLogDbDao.java
index 9cc6314dd..8883475b8 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/dao/SystemLogDbDao.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/dao/SystemLogDbDao.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -20,14 +20,12 @@
package org.onap.policy.dao;
-
import java.util.List;
-import org.onap.policy.rest.jpa.SystemLogDB;
-
-
+import org.onap.policy.rest.jpa.SystemLogDb;
public abstract interface SystemLogDbDao {
- public abstract List<SystemLogDB> getLoggingData();
- public abstract List<SystemLogDB> getSystemAlertData();
+ public abstract List<SystemLogDb> getLoggingData();
+
+ public abstract List<SystemLogDb> getSystemAlertData();
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/daoImp/CommonClassDaoImpl.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/daoImp/CommonClassDaoImpl.java
index 170c30838..a4b2c88d2 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/daoImp/CommonClassDaoImpl.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/daoImp/CommonClassDaoImpl.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -48,368 +48,358 @@ import org.springframework.stereotype.Service;
@Service("CommonClassDao")
@Primary
-public class CommonClassDaoImpl implements CommonClassDao{
+public class CommonClassDaoImpl implements CommonClassDao {
+
+ private static final Logger LOGGER = FlexLogger.getLogger(CommonClassDaoImpl.class);
+ private static SessionFactory sessionfactory;
- private static final Logger LOGGER = FlexLogger.getLogger(CommonClassDaoImpl.class);
- private static SessionFactory sessionfactory;
-
public static SessionFactory getSessionfactory() {
- return sessionfactory;
+ return sessionfactory;
}
public static void setSessionfactory(SessionFactory sessionfactory) {
- CommonClassDaoImpl.sessionfactory = sessionfactory;
+ CommonClassDaoImpl.sessionfactory = sessionfactory;
}
@Autowired
- private CommonClassDaoImpl(SessionFactory sessionfactory){
- CommonClassDaoImpl.sessionfactory = sessionfactory;
- }
-
- public CommonClassDaoImpl(){
- //Default Constructor
+ private CommonClassDaoImpl(SessionFactory sessionfactory) {
+ CommonClassDaoImpl.sessionfactory = sessionfactory;
}
-
-
- @SuppressWarnings({ "unchecked", "rawtypes" })
- @Override
- public List<Object> getData(Class className) {
- Session session = sessionfactory.openSession();
- List<Object> data = null;
- try{
- Criteria cr = session.createCriteria(className);
- data = cr.list();
- }catch(Exception e){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e);
- }
- }
- return data;
- }
-
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
- public List<Object> getDataById(Class className, String columnName, String key) {
- Session session = sessionfactory.openSession();
- List<Object> data = null;
- try {
- Criteria cr = session.createCriteria(className);
- if(columnName.contains(":") && key.contains(":")){
- String[] columns = columnName.split(":");
- String[] keys = key.split(":");
- for(int i=0; i < columns.length; i++){
- cr.add(Restrictions.eq(columns[i], keys[i]));
- }
- }else{
- cr.add(Restrictions.eq(columnName, key));
- }
- data = cr.list();
- } catch (Exception e) {
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
- return data;
- }
-
- @Override
- public void save(Object entity) {
- Session session = sessionfactory.openSession();
- Transaction tx = session.beginTransaction();
- try {
- session.persist(entity);
- tx.commit();
- }catch(Exception e){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Saving data to Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
-
- }
-
- @Override
- public void delete(Object entity) {
- Session session = sessionfactory.openSession();
- Transaction tx = session.beginTransaction();
- try {
- session.delete(entity);
- tx.commit();
- }catch(Exception e){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Deleting data from Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
-
- }
-
-
- @Override
- public void update(Object entity) {
- Session session = sessionfactory.openSession();
- Transaction tx = session.beginTransaction();
- try {
- session.update(entity);
- tx.commit();
- }catch(Exception e){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating data to Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
-
- }
-
+ public CommonClassDaoImpl() {
+ // Default Constructor
+ }
- @SuppressWarnings({ "unchecked", "rawtypes" })
- @Override
- public List<Object> checkDuplicateEntry(String value, String columnName, Class className) {
- Session session = sessionfactory.openSession();
- Transaction tx = session.beginTransaction();
- List<Object> data = null;
- String[] columnNames = null;
- if(columnName != null && columnName.contains(":")){
- columnNames = columnName.split(":");
- }
- String[] values = null;
- if(value != null && value.contains(":")){
- values = value.split(":");
- }
- try {
- Criteria cr = session.createCriteria(className);
- if(columnNames != null && values != null && columnNames.length == values.length){
- for (int i = 0; i < columnNames.length; i++){
- cr.add(Restrictions.eq(columnNames[i],values[i]));
- }
- }else{
- cr.add(Restrictions.eq(columnName,value));
- }
- data = cr.list();
- tx.commit();
- } catch (Exception e) {
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying for Duplicate Entries for Table"+e + className);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
- return data;
- }
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ @Override
+ public List<Object> getData(Class className) {
+ Session session = sessionfactory.openSession();
+ List<Object> data = null;
+ try {
+ Criteria cr = session.createCriteria(className);
+ data = cr.list();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e);
+ }
+ }
+ return data;
+ }
+ @SuppressWarnings({"rawtypes", "unchecked"})
+ @Override
+ public List<Object> getDataById(Class className, String columnName, String key) {
+ Session session = sessionfactory.openSession();
+ List<Object> data = null;
+ try {
+ Criteria cr = session.createCriteria(className);
+ if (columnName.contains(":") && key.contains(":")) {
+ String[] columns = columnName.split(":");
+ String[] keys = key.split(":");
+ for (int i = 0; i < columns.length; i++) {
+ cr.add(Restrictions.eq(columns[i], keys[i]));
+ }
+ } else {
+ cr.add(Restrictions.eq(columnName, key));
+ }
+ data = cr.list();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
+ return data;
+ }
- @SuppressWarnings("unchecked")
- @Override
- public List<PolicyRoles> getUserRoles() {
- Session session = sessionfactory.openSession();
- Transaction tx = session.beginTransaction();
- List<PolicyRoles> rolesData = null;
- try {
- Criteria cr = session.createCriteria(PolicyRoles.class);
- Disjunction disjunction = Restrictions.disjunction();
- Conjunction conjunction1 = Restrictions.conjunction();
- conjunction1.add(Restrictions.eq("role", "admin"));
- Conjunction conjunction2 = Restrictions.conjunction();
- conjunction2.add(Restrictions.eq("role", "editor"));
- Conjunction conjunction3 = Restrictions.conjunction();
- conjunction3.add(Restrictions.eq("role", "guest"));
- disjunction.add(conjunction1);
- disjunction.add(conjunction2);
- disjunction.add(conjunction3);
- rolesData = cr.add(disjunction).list();
- tx.commit();
- } catch (Exception e) {
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying PolicyRoles Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
- return rolesData;
- }
+ @Override
+ public void save(Object entity) {
+ Session session = sessionfactory.openSession();
+ Transaction tx = session.beginTransaction();
+ try {
+ session.persist(entity);
+ tx.commit();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Saving data to Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
+ }
- @Override
- public List<Object> checkExistingGroupListforUpdate(String arg0, String arg1) {
- return Collections.emptyList();
- }
+ @Override
+ public void delete(Object entity) {
+ Session session = sessionfactory.openSession();
+ Transaction tx = session.beginTransaction();
+ try {
+ session.delete(entity);
+ tx.commit();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Deleting data from Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
+ }
- @Override
- public void deleteAll() {}
+ @Override
+ public void update(Object entity) {
+ Session session = sessionfactory.openSession();
+ Transaction tx = session.beginTransaction();
+ try {
+ session.update(entity);
+ tx.commit();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating data to Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
-
- @SuppressWarnings("unchecked")
- @Override
- public List<Object> getDataByQuery(String query, SimpleBindings params) {
- Session session = sessionfactory.openSession();
- Transaction tx = session.beginTransaction();
- List<Object> data = null;
- try {
- Query hbquery = session.createQuery(query);
- for (Map.Entry<String, Object> paramPair : params.entrySet()) {
- if(paramPair.getValue() instanceof java.lang.Long){
- hbquery.setLong(paramPair.getKey(), (long) paramPair.getValue());
- }
- else{
- hbquery.setParameter(paramPair.getKey(), paramPair.getValue());
- }
- }
- data = hbquery.list();
- tx.commit();
- } catch (Exception e) {
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Database Table"+e);
- throw e;
- }finally{
- try{
- session.close();
- }catch(HibernateException e1){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
- return data;
- }
+ }
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ @Override
+ public List<Object> checkDuplicateEntry(String value, String columnName, Class className) {
+ Session session = sessionfactory.openSession();
+ Transaction tx = session.beginTransaction();
+ List<Object> data = null;
+ String[] columnNames = null;
+ if (columnName != null && columnName.contains(":")) {
+ columnNames = columnName.split(":");
+ }
+ String[] values = null;
+ if (value != null && value.contains(":")) {
+ values = value.split(":");
+ }
+ try {
+ Criteria cr = session.createCriteria(className);
+ if (columnNames != null && values != null && columnNames.length == values.length) {
+ for (int i = 0; i < columnNames.length; i++) {
+ cr.add(Restrictions.eq(columnNames[i], values[i]));
+ }
+ } else {
+ cr.add(Restrictions.eq(columnName, value));
+ }
+ data = cr.list();
+ tx.commit();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying for Duplicate Entries for Table"
+ + e + className);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
+ return data;
+ }
- @SuppressWarnings("rawtypes")
- @Override
- public Object getEntityItem(Class className, String columnName, String key) {
- Session session = sessionfactory.openSession();
- Transaction tx = session.beginTransaction();
- Object data = null;
- try {
- Criteria cr = session.createCriteria(className);
- if(columnName.contains(":") && key.contains(":")){
- String[] columns = columnName.split(":");
- String[] keys = key.split(":");
- for(int i=0; i < columns.length; i++){
- cr.add(Restrictions.eq(columns[i], keys[i]));
- }
- }else{
- cr.add(Restrictions.eq(columnName, key));
- }
- data = cr.list().get(0);
- tx.commit();
- } catch (Exception e) {
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Database Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
- return data;
- }
+ @SuppressWarnings("unchecked")
+ @Override
+ public List<PolicyRoles> getUserRoles() {
+ Session session = sessionfactory.openSession();
+ Transaction tx = session.beginTransaction();
+ List<PolicyRoles> rolesData = null;
+ try {
+ final Criteria cr = session.createCriteria(PolicyRoles.class);
+ final Disjunction disjunction = Restrictions.disjunction();
+ Conjunction conjunction1 = Restrictions.conjunction();
+ conjunction1.add(Restrictions.eq("role", "admin"));
+ Conjunction conjunction2 = Restrictions.conjunction();
+ conjunction2.add(Restrictions.eq("role", "editor"));
+ Conjunction conjunction3 = Restrictions.conjunction();
+ conjunction3.add(Restrictions.eq("role", "guest"));
+ disjunction.add(conjunction1);
+ disjunction.add(conjunction2);
+ disjunction.add(conjunction3);
+ rolesData = cr.add(disjunction).list();
+ tx.commit();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying PolicyRoles Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
+ return rolesData;
+ }
+ @Override
+ public List<Object> checkExistingGroupListforUpdate(String arg0, String arg1) {
+ return Collections.emptyList();
+ }
- @Override
- public void updateClAlarms(String arg0, String arg1) {}
+ @Override
+ public void deleteAll() {
+ }
+ @SuppressWarnings("unchecked")
+ @Override
+ public List<Object> getDataByQuery(String query, SimpleBindings params) {
+ Session session = sessionfactory.openSession();
+ Transaction tx = session.beginTransaction();
+ List<Object> data = null;
+ try {
+ Query hbquery = session.createQuery(query);
+ for (Map.Entry<String, Object> paramPair : params.entrySet()) {
+ if (paramPair.getValue() instanceof java.lang.Long) {
+ hbquery.setLong(paramPair.getKey(), (long) paramPair.getValue());
+ } else {
+ hbquery.setParameter(paramPair.getKey(), paramPair.getValue());
+ }
+ }
+ data = hbquery.list();
+ tx.commit();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Database Table" + e);
+ throw e;
+ } finally {
+ try {
+ session.close();
+ } catch (HibernateException e1) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
+ return data;
+ }
- @Override
- public void updateClYaml(String arg0, String arg1) {}
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getEntityItem(Class className, String columnName, String key) {
+ Session session = sessionfactory.openSession();
+ Transaction tx = session.beginTransaction();
+ Object data = null;
+ try {
+ Criteria cr = session.createCriteria(className);
+ if (columnName.contains(":") && key.contains(":")) {
+ String[] columns = columnName.split(":");
+ String[] keys = key.split(":");
+ for (int i = 0; i < columns.length; i++) {
+ cr.add(Restrictions.eq(columns[i], keys[i]));
+ }
+ } else {
+ cr.add(Restrictions.eq(columnName, key));
+ }
+ data = cr.list().get(0);
+ tx.commit();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Database Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
+ return data;
+ }
+ @Override
+ public void updateClAlarms(String arg0, String arg1) {
+ // why is there no code here?
+ }
- @Override
- public void updateQuery(String query) {
- Session session = sessionfactory.openSession();
- Transaction tx = session.beginTransaction();
- try {
- Query hbquery = session.createQuery(query);
- hbquery.executeUpdate();
- tx.commit();
- } catch (Exception e) {
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating Database Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
-
- }
+ @Override
+ public void updateClYaml(String arg0, String arg1) {
+ // why is there no code here?
+ }
+ @Override
+ public void updateQuery(String query) {
+ Session session = sessionfactory.openSession();
+ Transaction tx = session.beginTransaction();
+ try {
+ Query hbquery = session.createQuery(query);
+ hbquery.executeUpdate();
+ tx.commit();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Updating Database Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
- public List<String> getDataByColumn(Class className, String columnName) {
- Session session = sessionfactory.openSession();
- List<String> data = null;
- try{
- Criteria cr = session.createCriteria(className);
- cr.setProjection(Projections.property(columnName));
- data = cr.list();
- }catch(Exception e){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e);
- }
- }
- return data;
- }
+ }
+ @SuppressWarnings({"rawtypes", "unchecked"})
+ @Override
+ public List<String> getDataByColumn(Class className, String columnName) {
+ Session session = sessionfactory.openSession();
+ List<String> data = null;
+ try {
+ Criteria cr = session.createCriteria(className);
+ cr.setProjection(Projections.property(columnName));
+ data = cr.list();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e);
+ }
+ }
+ return data;
+ }
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
- public List<Object> getMultipleDataOnAddingConjunction(Class className, String columnName, List<String> data) {
- Session session = sessionfactory.openSession();
- Transaction tx = session.beginTransaction();
- List<Object> entityData = null;
- try {
- Criteria cr = session.createCriteria(className);
- Disjunction disjunction = Restrictions.disjunction();
- List<Conjunction> conjunctionList = new ArrayList<>();
- String[] columNames = columnName.split(":");
- for(int i =0; i < data.size(); i++){
- String[] entiySplit = data.get(i).split(":");
- Conjunction conjunction = Restrictions.conjunction();
- conjunction.add(Restrictions.eq(columNames[0], entiySplit[0]));
- conjunction.add(Restrictions.eq(columNames[1], entiySplit[1]));
- conjunctionList.add(conjunction);
- }
- for(int j =0 ; j < conjunctionList.size(); j++){
- disjunction.add(conjunctionList.get(j));
- }
- entityData = cr.add(disjunction).list();
- tx.commit();
- } catch (Exception e) {
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table" +className +e);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
- return entityData;
- }
+ @SuppressWarnings({"rawtypes", "unchecked"})
+ @Override
+ public List<Object> getMultipleDataOnAddingConjunction(Class className, String columnName, List<String> data) {
+ Session session = sessionfactory.openSession();
+ Transaction tx = session.beginTransaction();
+ List<Object> entityData = null;
+ try {
+ Criteria cr = session.createCriteria(className);
+ Disjunction disjunction = Restrictions.disjunction();
+ List<Conjunction> conjunctionList = new ArrayList<>();
+ String[] columNames = columnName.split(":");
+ for (int i = 0; i < data.size(); i++) {
+ String[] entiySplit = data.get(i).split(":");
+ Conjunction conjunction = Restrictions.conjunction();
+ conjunction.add(Restrictions.eq(columNames[0], entiySplit[0]));
+ conjunction.add(Restrictions.eq(columNames[1], entiySplit[1]));
+ conjunctionList.add(conjunction);
+ }
+ for (int j = 0; j < conjunctionList.size(); j++) {
+ disjunction.add(conjunctionList.get(j));
+ }
+ entityData = cr.add(disjunction).list();
+ tx.commit();
+ } catch (Exception e) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying Table" + className + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ LOGGER.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
+ return entityData;
+ }
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/daoImp/SystemLogDbDaoImpl.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/daoImp/SystemLogDbDaoImpl.java
index 1727f47c0..46aed213f 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/daoImp/SystemLogDbDaoImpl.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/daoImp/SystemLogDbDaoImpl.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -20,85 +20,83 @@
package org.onap.policy.daoImp;
-
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
-import org.springframework.stereotype.Service;
-
-import org.onap.policy.xacml.api.XACMLErrorConstants;
-
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
+import org.onap.policy.common.logging.flexlogger.FlexLogger;
+import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.conf.HibernateSession;
import org.onap.policy.controller.PolicyController;
import org.onap.policy.dao.SystemLogDbDao;
-import org.onap.policy.rest.jpa.SystemLogDB;
-import org.onap.policy.common.logging.flexlogger.FlexLogger;
-import org.onap.policy.common.logging.flexlogger.Logger;
-
+import org.onap.policy.rest.jpa.SystemLogDb;
+import org.onap.policy.xacml.api.XACMLErrorConstants;
+import org.springframework.stereotype.Service;
@Service("SystemLogDbDao")
public class SystemLogDbDaoImpl implements SystemLogDbDao {
- private static final Logger logger = FlexLogger.getLogger(SystemLogDbDaoImpl.class);
-
- @SuppressWarnings("unchecked")
- @Override
- public List<SystemLogDB> getLoggingData() {
- Session session = HibernateSession.getSession();
- Transaction tx = session.beginTransaction();
- List<SystemLogDB> system = null;
+ private static final Logger logger = FlexLogger.getLogger(SystemLogDbDaoImpl.class);
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public List<SystemLogDb> getLoggingData() {
+ Session session = HibernateSession.getSession();
+ Transaction tx = session.beginTransaction();
+ List<SystemLogDb> system = null;
try {
- String sqlWhere = null;
- if(PolicyController.isjUnit()){
- sqlWhere = "";
- }else{
- sqlWhere = "date > DATE_SUB(curdate(), INTERVAL 5 DAY) ORDER BY date DESC limit "+PolicyController.getLogTableLimit()+"";
- }
- Criteria cr = session.createCriteria(SystemLogDB.class);
- cr.add(Restrictions.sqlRestriction(sqlWhere));
+ String sqlWhere = null;
+ if (PolicyController.isjUnit()) {
+ sqlWhere = "";
+ } else {
+ sqlWhere = "date > DATE_SUB(curdate(), INTERVAL 5 DAY) ORDER BY date DESC limit "
+ + PolicyController.getLogTableLimit() + "";
+ }
+ Criteria cr = session.createCriteria(SystemLogDb.class);
+ cr.add(Restrictions.sqlRestriction(sqlWhere));
system = cr.list();
- tx.commit();
- } catch (Exception e) {
- logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying SystemLogDB Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
- return system;
- }
+ tx.commit();
+ } catch (Exception e) {
+ logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying SystemLogDb Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
+ return system;
+ }
- @SuppressWarnings("unchecked")
- @Override
- public List<SystemLogDB> getSystemAlertData() {
- Session session = HibernateSession.getSession();
- Transaction tx = session.beginTransaction();
- List<SystemLogDB> system = null;
+ @SuppressWarnings("unchecked")
+ @Override
+ public List<SystemLogDb> getSystemAlertData() {
+ Session session = HibernateSession.getSession();
+ Transaction tx = session.beginTransaction();
+ List<SystemLogDb> system = null;
try {
- String sqlWhere = null;
- if(PolicyController.isjUnit()){
- sqlWhere = "";
- }else{
- sqlWhere = "date > DATE_SUB(curdate(), INTERVAL 5 DAY) and logtype = 'error' ORDER BY date DESC limit "+PolicyController.getSystemAlertTableLimit()+"";
- }
- Criteria cr = session.createCriteria(SystemLogDB.class);
- cr.add(Restrictions.sqlRestriction(sqlWhere));
+ String sqlWhere = null;
+ if (PolicyController.isjUnit()) {
+ sqlWhere = "";
+ } else {
+ sqlWhere = "date > DATE_SUB(curdate(), INTERVAL 5 DAY) and logtype = 'error' ORDER BY date DESC limit "
+ + PolicyController.getSystemAlertTableLimit() + "";
+ }
+ Criteria cr = session.createCriteria(SystemLogDb.class);
+ cr.add(Restrictions.sqlRestriction(sqlWhere));
system = cr.list();
- tx.commit();
- } catch (Exception e) {
- logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying SystemLogDB Table"+e);
- }finally{
- try{
- session.close();
- }catch(Exception e1){
- logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
- }
- }
- return system;
- }
+ tx.commit();
+ } catch (Exception e) {
+ logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying SystemLogDb Table" + e);
+ } finally {
+ try {
+ session.close();
+ } catch (Exception e1) {
+ logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement" + e1);
+ }
+ }
+ return system;
+ }
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/model/PDPGroupContainer.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/model/PDPGroupContainer.java
index e6c375808..6c4fd7e91 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/model/PDPGroupContainer.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/model/PDPGroupContainer.java
@@ -20,8 +20,8 @@
package org.onap.policy.model;
-
import com.att.research.xacml.api.pap.PAPException;
+
import java.awt.Checkbox;
import java.util.ArrayList;
import java.util.Collection;
@@ -29,6 +29,7 @@ import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
+
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.rest.util.PolicyContainer;
@@ -112,6 +113,9 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
return itemId instanceof OnapPDPGroup;
}
+ /**
+ * refreshGroups.
+ */
public synchronized void refreshGroups() {
synchronized (this.groups) {
this.groups.clear();
@@ -133,6 +137,11 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
return Collections.unmodifiableList(this.groups);
}
+ /**
+ * makeDefault.
+ *
+ * @param group OnapPDPGroup
+ */
public void makeDefault(OnapPDPGroup group) {
try {
this.papEngine.setDefaultGroup(group);
@@ -143,6 +152,13 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
return;
}
+ /**
+ * removeGroup.
+ *
+ * @param group OnapPDPGroup
+ * @param newGroup OnapPDPGroup
+ * @throws PAPException PAPException
+ */
public void removeGroup(OnapPDPGroup group, OnapPDPGroup newGroup) throws PAPException {
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("removeGroup: " + group + " new group for PDPs: " + newGroup);
@@ -158,6 +174,13 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
}
}
+ /**
+ * removePDP.
+ *
+ * @param pdp OnapPDP
+ * @param group OnapPDPGroup
+ * @throws PAPException PAPException
+ */
public void removePDP(OnapPDP pdp, OnapPDPGroup group) throws PAPException {
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("removePDP: " + pdp + " from group: " + group);
@@ -170,6 +193,11 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
}
}
+ /**
+ * updatePDP.
+ *
+ * @param pdp OnapPDP
+ */
public void updatePDP(OnapPDP pdp) {
try {
papEngine.updatePDP(pdp);
@@ -178,6 +206,11 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
}
}
+ /**
+ * updateGroup.
+ *
+ * @param group OnapPDPGroup
+ */
public void updateGroup(OnapPDPGroup group) {
try {
papEngine.updateGroup(group);
@@ -216,6 +249,17 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
}
@Override
+ public List<?> getItemIds(int startIndex, int numberOfItems) {
+ synchronized (this.groups) {
+ int endIndex = startIndex + numberOfItems;
+ if (endIndex > this.groups.size()) {
+ endIndex = this.groups.size() - 1;
+ }
+ return this.groups.subList(startIndex, endIndex);
+ }
+ }
+
+ @Override
public Class<?> getType(Object propertyId) {
if (propertyId.equals(PROPERTY_ID)) {
return String.class;
@@ -268,6 +312,13 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
throw new UnsupportedOperationException("PDP Container cannot add a given item.");
}
+ /**
+ * addNewGroup.
+ *
+ * @param name String
+ * @param description String
+ * @throws PAPException PAPException
+ */
public void addNewGroup(String name, String description) throws PAPException {
if (LOGGER.isTraceEnabled()) {
LOGGER.trace("addNewGroup " + name + " " + description);
@@ -275,6 +326,16 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
this.papEngine.newGroup(name, description);
}
+ /**
+ * addNewPDP.
+ *
+ * @param id String
+ * @param group OnapPDPGroup
+ * @param name String
+ * @param description String
+ * @param jmxport int
+ * @throws PAPException PAPException
+ */
public void addNewPDP(String id, OnapPDPGroup group, String name, String description, int jmxport)
throws PAPException {
if (LOGGER.isTraceEnabled()) {
@@ -283,6 +344,12 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
this.papEngine.newPDP(id, group, name, description, jmxport);
}
+ /**
+ * movePDP.
+ *
+ * @param pdp OnapPDP
+ * @param group OnapPDPGroup
+ */
public void movePDP(OnapPDP pdp, OnapPDPGroup group) {
try {
this.papEngine.movePDP(pdp, group);
@@ -427,17 +494,6 @@ public class PDPGroupContainer extends PolicyItemSetChangeNotifier
}
@Override
- public List<?> getItemIds(int startIndex, int numberOfItems) {
- synchronized (this.groups) {
- int endIndex = startIndex + numberOfItems;
- if (endIndex > this.groups.size()) {
- endIndex = this.groups.size() - 1;
- }
- return this.groups.subList(startIndex, endIndex);
- }
- }
-
- @Override
public Object addItemAt(int index) {
throw new UnsupportedOperationException("Cannot addItemAt");
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/model/Roles.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/model/Roles.java
index 2f051f7b4..baaecaee6 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/model/Roles.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/model/Roles.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -20,6 +20,7 @@
package org.onap.policy.model;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.io.Serializable;
@@ -31,69 +32,69 @@ import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-
@Entity
-@Table(name="Roles")
-@NamedQuery(name="Roles.findAll", query="SELECT r FROM Roles r ")
-@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
-public class Roles implements Serializable{
- private static final long serialVersionUID = 1L;
-
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
-
- @Column(name="id")
- private int id;
-
- @Column(name="loginId")
- private String loginId;
-
- private String name;
- private String scope;
- private String role;
-
- public Roles(){
- // Empty constructor
- }
-
- public int getId() {
- return this.id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getLoginId() {
- return this.loginId;
- }
-
- public void setLoginId(String loginId) {
- this.loginId = loginId;
-
- }
- public String getScope() {
- return this.scope;
- }
-
- public void setScope(String scope) {
- this.scope = scope;
-
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
- public String getRole() {
- return this.role;
- }
-
- public void setRole(String role) {
- this.role = role;
- }
+@Table(name = "Roles")
+@NamedQuery(name = "Roles.findAll", query = "SELECT r FROM Roles r ")
+@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
+public class Roles implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+
+ @Column(name = "id")
+ private int id;
+
+ @Column(name = "loginId")
+ private String loginId;
+
+ private String name;
+ private String scope;
+ private String role;
+
+ public Roles() {
+ // Empty constructor
+ }
+
+ public int getId() {
+ return this.id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getLoginId() {
+ return this.loginId;
+ }
+
+ public void setLoginId(String loginId) {
+ this.loginId = loginId;
+
+ }
+
+ public String getScope() {
+ return this.scope;
+ }
+
+ public void setScope(String scope) {
+ this.scope = scope;
+
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getRole() {
+ return this.role;
+ }
+
+ public void setRole(String role) {
+ this.role = role;
+ }
}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/utils/UserUtils.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/utils/UserUtils.java
index 40c839676..f9f93c0ff 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/utils/UserUtils.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/utils/UserUtils.java
@@ -7,9 +7,9 @@
* 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.
@@ -17,6 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.utils;
import java.util.ArrayList;
@@ -35,18 +36,18 @@ public final class UserUtils {
}
public static class Pair<T, U> {
- public final T t;
- public final U u;
+ public final T first;
+ public final U second;
- public Pair(T t, U u) {
- this.t = t;
- this.u = u;
+ public Pair(T first, U second) {
+ this.first = first;
+ this.second = second;
}
}
/**
* Check Role and its Scopes.
- *
+ *
* @param userRoles list of UserRoles.
* @return return role and scope from UserRole Object.
*/
@@ -75,7 +76,7 @@ public final class UserUtils {
/**
* Get Role by Scope based on UserRole Object.
- *
+ *
* @param userRoles list of UserRoles.
* @return return the map<scope, role>.
*/
@@ -94,8 +95,8 @@ public final class UserUtils {
/**
* Read non super role scopes and add to map.
- *
- * @param userRole Role Object.
+ *
+ * @param userRole Role Object.
* @param rolesList roleList Object.
* @return return the map<scope, role>.
*/
@@ -115,7 +116,7 @@ public final class UserUtils {
/**
* Trim Scope Value.
- *
+ *
* @param scope string scope name.
* @return trim scope.
*/
diff --git a/POLICY-SDK-APP/src/main/webapp/WEB-INF/conf/system.properties b/POLICY-SDK-APP/src/main/webapp/WEB-INF/conf/system.properties
index a12eac3ce..4831802ca 100644
--- a/POLICY-SDK-APP/src/main/webapp/WEB-INF/conf/system.properties
+++ b/POLICY-SDK-APP/src/main/webapp/WEB-INF/conf/system.properties
@@ -44,9 +44,9 @@ decryption_key = AGLDdG4D04BKm2IxIWEr8o==
##########################################################################
#Mysql
db.driver = org.mariadb.jdbc.Driver
-db.connectionURL = jdbc:mariadb://localhost:3306/onapsdk1707
+db.connectionURL = jdbc:mariadb://localhost:3306/onap_sdk
db.userName = root
-db.password =
+db.password =
db.hib.dialect = org.hibernate.dialect.MySQLDialect
db.min_pool_size = 5
db.max_pool_size = 10
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/CSS/bootstrap/dist/js/bootstrap-modalmanager.min.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/CSS/bootstrap/dist/js/bootstrap-modalmanager.min.js
new file mode 100644
index 000000000..80e9597e7
--- /dev/null
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/CSS/bootstrap/dist/js/bootstrap-modalmanager.min.js
@@ -0,0 +1,341 @@
+/* ===========================================================
+ * bootstrap-modalmanager.min.js v2.2.5
+ * ===========================================================
+ * Copyright 2012 Jordan Schroter
+ *
+ * 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.
+ * ========================================================== */
+
+!function(c) {
+ var a = function(f, e) {
+ this.init(f, e)
+ };
+ a.prototype = {
+ constructor : a,
+ init : function(f, e) {
+ this.$element = c(f);
+ this.options = c.extend({}, c.fn.modalmanager.defaults,
+ this.$element.data(), typeof e == "object" && e);
+ this.stack = [];
+ this.backdropCount = 0;
+ if (this.options.resize) {
+ var h, g = this;
+ c(window).on("resize.modal", function() {
+ h && clearTimeout(h);
+ h = setTimeout(function() {
+ for (var j = 0; j < g.stack.length; j++) {
+ g.stack[j].isShown && g.stack[j].layout()
+ }
+ }, 10)
+ })
+ }
+ },
+ createModal : function(f, e) {
+ c(f).modal(c.extend({
+ manager : this
+ }, e))
+ },
+ appendModal : function(f) {
+ this.stack.push(f);
+ var e = this;
+ f.$element.on("show.modalmanager",
+ b(function(h) {
+ var g = function() {
+ f.isShown = true;
+ var i = c.support.transition
+ && f.$element.hasClass("fade");
+ e.$element.toggleClass("modal-open",
+ e.hasOpenModal()).toggleClass(
+ "page-overflow",
+ c(window).height() < e.$element.height());
+ f.$parent = f.$element.parent();
+ f.$container = e.createContainer(f);
+ f.$element.appendTo(f.$container);
+ e.backdrop(f, function() {
+ f.$element.show();
+ if (i) {
+ f.$element[0].offsetWidth
+ }
+ f.layout();
+ f.$element.addClass("in").attr("aria-hidden",
+ false);
+ var j = function() {
+ e.setFocus();
+ f.$element.trigger("shown")
+ };
+ i ? f.$element.one(c.support.transition.end, j)
+ : j()
+ })
+ };
+ f.options.replace ? e.replace(g) : g()
+ }));
+ f.$element
+ .on(
+ "hidden.modalmanager",
+ b(function(g) {
+ e.backdrop(f);
+ if (!f.$element.parent().length) {
+ e.destroyModal(f)
+ } else {
+ if (f.$backdrop) {
+ var h = c.support.transition
+ && f.$element.hasClass("fade");
+ if (h) {
+ f.$element[0].offsetWidth
+ }
+ c.support.transition
+ && f.$element.hasClass("fade") ? f.$backdrop
+ .one(c.support.transition.end,
+ function() {
+ f.destroy()
+ })
+ : f.destroy()
+ } else {
+ f.destroy()
+ }
+ }
+ }));
+ f.$element.on("destroyed.modalmanager", b(function(g) {
+ e.destroyModal(f)
+ }))
+ },
+ getOpenModals : function() {
+ var f = [];
+ for (var e = 0; e < this.stack.length; e++) {
+ if (this.stack[e].isShown) {
+ f.push(this.stack[e])
+ }
+ }
+ return f
+ },
+ hasOpenModal : function() {
+ return this.getOpenModals().length > 0
+ },
+ setFocus : function() {
+ var f;
+ for (var e = 0; e < this.stack.length; e++) {
+ if (this.stack[e].isShown) {
+ f = this.stack[e]
+ }
+ }
+ if (!f) {
+ return
+ }
+ f.focus()
+ },
+ destroyModal : function(f) {
+ f.$element.off(".modalmanager");
+ if (f.$backdrop) {
+ this.removeBackdrop(f)
+ }
+ this.stack.splice(this.getIndexOfModal(f), 1);
+ var e = this.hasOpenModal();
+ this.$element.toggleClass("modal-open", e);
+ if (!e) {
+ this.$element.removeClass("page-overflow")
+ }
+ this.removeContainer(f);
+ this.setFocus()
+ },
+ getModalAt : function(e) {
+ return this.stack[e]
+ },
+ getIndexOfModal : function(f) {
+ for (var e = 0; e < this.stack.length; e++) {
+ if (f === this.stack[e]) {
+ return e
+ }
+ }
+ },
+ replace : function(g) {
+ var f;
+ for (var e = 0; e < this.stack.length; e++) {
+ if (this.stack[e].isShown) {
+ f = this.stack[e]
+ }
+ }
+ if (f) {
+ this.$backdropHandle = f.$backdrop;
+ f.$backdrop = null;
+ g && f.$element.one("hidden", b(c.proxy(g, this)));
+ f.hide()
+ } else {
+ if (g) {
+ g()
+ }
+ }
+ },
+ removeBackdrop : function(e) {
+ e.$backdrop.remove();
+ e.$backdrop = null
+ },
+ createBackdrop : function(g, f) {
+ var e;
+ if (!this.$backdropHandle) {
+ e = c(f).addClass(g).appendTo(this.$element)
+ } else {
+ e = this.$backdropHandle;
+ e.off(".modalmanager");
+ this.$backdropHandle = null;
+ this.isLoading && this.removeSpinner()
+ }
+ return e
+ },
+ removeContainer : function(e) {
+ e.$container.remove();
+ e.$container = null
+ },
+ createContainer : function(e) {
+ var f;
+ f = c('<div class="modal-scrollable">').css("z-index",
+ d("modal", this.getOpenModals().length)).appendTo(
+ this.$element);
+ if (e && e.options.backdrop != "static") {
+ f.on("click.modal", b(function(g) {
+ e.hide()
+ }))
+ } else {
+ if (e) {
+ f.on("click.modal", b(function(g) {
+ e.attention()
+ }))
+ }
+ }
+ return f
+ },
+ backdrop : function(h, j) {
+ var f = h.$element.hasClass("fade") ? "fade" : "", i = h.options.backdrop
+ && this.backdropCount < this.options.backdropLimit;
+ if (h.isShown && i) {
+ var e = c.support.transition && f && !this.$backdropHandle;
+ h.$backdrop = this
+ .createBackdrop(f, h.options.backdropTemplate);
+ h.$backdrop.css("z-index", d("backdrop",
+ this.getOpenModals().length));
+ if (e) {
+ h.$backdrop[0].offsetWidth
+ }
+ h.$backdrop.addClass("in");
+ this.backdropCount += 1;
+ e ? h.$backdrop.one(c.support.transition.end, j) : j()
+ } else {
+ if (!h.isShown && h.$backdrop) {
+ h.$backdrop.removeClass("in");
+ this.backdropCount -= 1;
+ var g = this;
+ c.support.transition && h.$element.hasClass("fade") ? h.$backdrop
+ .one(c.support.transition.end, function() {
+ g.removeBackdrop(h)
+ })
+ : g.removeBackdrop(h)
+ } else {
+ if (j) {
+ j()
+ }
+ }
+ }
+ },
+ removeSpinner : function() {
+ this.$spinner && this.$spinner.remove();
+ this.$spinner = null;
+ this.isLoading = false
+ },
+ removeLoading : function() {
+ this.$backdropHandle && this.$backdropHandle.remove();
+ this.$backdropHandle = null;
+ this.removeSpinner()
+ },
+ loading : function(h) {
+ h = h || function() {
+ };
+ this.$element.toggleClass("modal-open",
+ !this.isLoading || this.hasOpenModal()).toggleClass(
+ "page-overflow",
+ c(window).height() < this.$element.height());
+ if (!this.isLoading) {
+ this.$backdropHandle = this.createBackdrop("fade",
+ this.options.backdropTemplate);
+ this.$backdropHandle[0].offsetWidth;
+ var e = this.getOpenModals();
+ this.$backdropHandle
+ .css("z-index", d("backdrop", e.length + 1)).addClass(
+ "in");
+ var g = c(this.options.spinner).css("z-index",
+ d("modal", e.length + 1)).appendTo(this.$element)
+ .addClass("in");
+ this.$spinner = c(this.createContainer()).append(g).on(
+ "click.modalmanager", c.proxy(this.loading, this));
+ this.isLoading = true;
+ c.support.transition ? this.$backdropHandle.one(
+ c.support.transition.end, h) : h()
+ } else {
+ if (this.isLoading && this.$backdropHandle) {
+ this.$backdropHandle.removeClass("in");
+ var f = this;
+ c.support.transition ? this.$backdropHandle.one(
+ c.support.transition.end, function() {
+ f.removeLoading()
+ }) : f.removeLoading()
+ } else {
+ if (h) {
+ h(this.isLoading)
+ }
+ }
+ }
+ }
+ };
+ var d = (function() {
+ var f, e = {};
+ return function(g, j) {
+ if (typeof f === "undefined") {
+ var i = c('<div class="modal hide" />').appendTo("body"), h = c(
+ '<div class="modal-backdrop hide" />').appendTo("body");
+ e.modal = +i.css("z-index");
+ e.backdrop = +h.css("z-index");
+ f = e.modal - e.backdrop;
+ i.remove();
+ h.remove();
+ h = i = null
+ }
+ return e[g] + (f * j)
+ }
+ }());
+ function b(e) {
+ return function(f) {
+ if (f && this === f.target) {
+ return e.apply(this, arguments)
+ }
+ }
+ }
+ c.fn.modalmanager = function(f, e) {
+ return this.each(function() {
+ var h = c(this), g = h.data("modalmanager");
+ if (!g) {
+ h.data("modalmanager", (g = new a(this, f)))
+ }
+ if (typeof f === "string") {
+ g[f].apply(g, [].concat(e))
+ }
+ })
+ };
+ c.fn.modalmanager.defaults = {
+ backdropLimit : 999,
+ resize : true,
+ spinner : '<div class="loading-spinner fade" style="width: 200px; margin-left: -100px;"><div class="progress progress-striped active"><div class="bar" style="width: 100%;"></div></div></div>',
+ backdropTemplate : '<div class="modal-backdrop" />'
+ };
+ c.fn.modalmanager.Constructor = a;
+ c(function() {
+ c(document).off("show.bs.modal").off("hidden.bs.modal")
+ })
+}(jQuery); \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/AutoPushController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/AutoPushController.js
index 4832da109..264ff567e 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/AutoPushController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/AutoPushController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,8 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('policyPushController', function ($scope, PolicyAppService, modalService, $modal, Notification,$filter){
+app.controller('policyPushController',
+ function ($scope, PolicyAppService, modalService, $modal, Notification,$filter){
$( "#dialog" ).hide();
$scope.isDisabled = true;
@@ -32,30 +33,24 @@ app.controller('policyPushController', function ($scope, PolicyAppService, modal
}else{
$scope.isDisabled = false;
}
- console.log($scope.data);
- },function(error){
- console.log("failed");
});
$scope.pdpdata;
PolicyAppService.getData('get_PDPGroupData').then(function (data) {
var j = data;
$scope.pdpdata = JSON.parse(j.data);
- console.log($scope.pdpdata);
$scope.pushTabPDPGrid.data = $scope.pdpdata;
- }, function (error) {
- console.log("failed");
});
$scope.getPDPData = function(){
- $scope.pushTabPDPGrid.data = $scope.pdpdata;
+ $scope.pushTabPDPGrid.data = $scope.pdpdata;
};
$scope.filterPdpGroup;
$scope.filterPDPGroupData = function() {
$scope.pushTabPDPGrid.data = $filter('filter')($scope.pdpdata, $scope.filterPdpGroup, undefined);
};
- $scope.pushTabPDPGrid = {
+ $scope.pushTabPDPGrid = {
onRegisterApi: function(gridApi) {
$scope.gridApi = gridApi;
},
@@ -78,7 +73,7 @@ app.controller('policyPushController', function ($scope, PolicyAppService, modal
Notification.error("Policy Application has been LockDown.");
}else{
var modalInstance = $modal.open({
- backdrop: 'static', keyboard: false,
+ backdrop: 'static', keyboard: false,
templateUrl: 'remove_PDPGroupPolicies_popup.html',
controller: 'removeGroupPoliciesController',
resolve: {
@@ -91,7 +86,6 @@ app.controller('policyPushController', function ($scope, PolicyAppService, modal
}
});
modalInstance.result.then(function (response) {
- console.log('response', response);
$scope.pdpdata = JSON.parse(response.data);
$scope.pushTabPDPGrid.data = $scope.pdpdata;
});
@@ -99,75 +93,66 @@ app.controller('policyPushController', function ($scope, PolicyAppService, modal
};
$scope.gridOptions = {
- data : 'policydatas',
- onRegisterApi: function(gridApi) {
- $scope.gridPolicyApi = gridApi;
- },
- enableSorting: true,
- enableFiltering: true,
- showTreeExpandNoChildren: true,
- paginationPageSizes: [10, 20, 50, 100],
- paginationPageSize: 20,
- columnDefs: [{name: 'policyName', displayName : 'Policy Name', sort: { direction: 'asc', priority: 0 }},
- {name: 'activeVersion', displayName : 'Version'},
- {name: 'modifiedDate', displayName : 'Last Modified',type: 'date', cellFilter: 'date:\'yyyy-MM-dd HH:MM:ss a\'' }]
+ data : 'policydatas',
+ onRegisterApi: function(gridApi) {
+ $scope.gridPolicyApi = gridApi;
+ },
+ enableSorting: true,
+ enableFiltering: true,
+ showTreeExpandNoChildren: true,
+ paginationPageSizes: [10, 20, 50, 100],
+ paginationPageSize: 20,
+ columnDefs: [{name: 'policyName', displayName : 'Policy Name', sort: { direction: 'asc', priority: 0 }},
+ {name: 'activeVersion', displayName : 'Version'},
+ {name: 'modifiedDate', displayName : 'Last Modified',type: 'date', cellFilter: 'date:\'yyyy-MM-dd HH:MM:ss a\'' }]
};
PolicyAppService.getData('get_AutoPushPoliciesContainerData').then(function (data) {
- $scope.loading = false;
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.policydatas =JSON.parse($scope.data.policydatas);
- console.log($scope.policydatas);
- }, function (error) {
- console.log("failed");
- });
+ $scope.loading = false;
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.policydatas =JSON.parse($scope.data.policydatas);
+ });
$scope.pushPoliciesButton = function(){
- var policySelection = $scope.gridPolicyApi.selection.getSelectedRows();
- console.log(policySelection);
- var currentSelection = $scope.gridApi.selection.getSelectedRows();
- if(policySelection.length == 0 && currentSelection.length == 0){
- Notification.error("Please Select Policy and PDP Group to Push");
- }
- if(policySelection.length == 0 && currentSelection.length != 0){
- Notification.error("Please Select Policy to Push");
- }
- if(policySelection.length != 0 && currentSelection.length == 0){
- Notification.error("Please Select PDP Group to Push");
- }
- if(policySelection.length != 0 && currentSelection.length != 0){
- var finalData = {
- "pdpDatas": currentSelection,
- "policyDatas": policySelection
- };
- console.log(finalData);
- var uuu = "auto_Push/PushPolicyToPDP.htm";
- var postData={pushTabData: finalData};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.data=data.data;
- $scope.pdpdata = JSON.parse(data.data);
- $scope.pushTabPDPGrid.data = $scope.pdpdata;
- Notification.success("Policy Pushed Successfully");
- });
- console.log($scope.data);
- },
- error : function(data){
- Notification.error("Error Occured while Pushing Policy.");
- }
- });
+ var policySelection = $scope.gridPolicyApi.selection.getSelectedRows();
+ var currentSelection = $scope.gridApi.selection.getSelectedRows();
+ if(policySelection.length == 0 && currentSelection.length == 0){
+ Notification.error("Please Select Policy and PDP Group to Push");
+ }
+ if(policySelection.length == 0 && currentSelection.length != 0){
+ Notification.error("Please Select Policy to Push");
+ }
+ if(policySelection.length != 0 && currentSelection.length == 0){
+ Notification.error("Please Select PDP Group to Push");
+ }
+ if(policySelection.length != 0 && currentSelection.length != 0){
+ var finalData = {
+ "pdpDatas": currentSelection,
+ "policyDatas": policySelection
+ };
+ var uuu = "auto_Push/PushPolicyToPDP.htm";
+ var postData={pushTabData: finalData};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.data=data.data;
+ $scope.pdpdata = JSON.parse(data.data);
+ $scope.pushTabPDPGrid.data = $scope.pdpdata;
+ Notification.success("Policy Pushed Successfully");
+ });
+ },
+ error : function(data){
+ Notification.error("Error Occured while Pushing Policy.");
+ }
+ });
- }
+ }
};
-
-
});
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/AutoPushTabController/RemovePDPGroupPoliciesController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/AutoPushTabController/RemovePDPGroupPoliciesController.js
index 62dcd65b2..b8325b316 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/AutoPushTabController/RemovePDPGroupPoliciesController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/AutoPushTabController/RemovePDPGroupPoliciesController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -40,11 +40,9 @@ app.controller('removeGroupPoliciesController' , function ($scope, $modalInstan
//set gridApi on scope
$scope.gridApi = gridApi;
gridApi.selection.on.rowSelectionChanged($scope,function(row){
- var msg = 'row selected ' + row.isSelected;
});
gridApi.selection.on.rowSelectionChangedBatch($scope,function(rows){
- var msg = 'rows changed ' + rows.length;
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/PolicyAddScopeRoleController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/PolicyAddScopeRoleController.js
index 051a9130c..7715c779a 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/PolicyAddScopeRoleController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/PolicyAddScopeRoleController.js
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('editRoleController' , function ($scope, PolicyAppService, $modalInstance, message){
+app.controller('editRoleController' , function ($scope, PolicyAppService, $modalInstance, message, Notification){
if (message.editRoleData != null) {
$scope.label='Edit Role'
$scope.disableCd=true;
@@ -67,7 +67,7 @@ app.controller('editRoleController' , function ($scope, PolicyAppService, $moda
$modalInstance.close({rolesDatas:$scope.rolesDatas});
},
error : function(data){
- alert("Error while saving Role.");
+ Notification.error("Error while saving Role.");
}
});
};
@@ -90,7 +90,7 @@ app.controller('editRoleController' , function ($scope, PolicyAppService, $moda
$modalInstance.close({rolesDatas:$scope.rolesDatas});
},
error : function(data) {
- alert("Error while Creating Mechid scopes.");
+ Notification.error("Error while Creating Mechid scopes.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dashboardCRUDController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dashboardCRUDController.js
index ce1af6b1a..d3f093697 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dashboardCRUDController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dashboardCRUDController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018, 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.
@@ -19,20 +19,18 @@
*/
app.controller('policyDashboardCRUDDataController', function ($scope, PolicyAppService, modalService, $modal){
- console.log("policyDashboardCRUDDataController called");
-
- $('#dashBoardAdvanceSearch').hide();
-
+
+ $('#dashBoardAdvanceSearch').hide();
+
$scope.papCRUDTableDatasTemp = [];
$scope.dashboardAdsearch = { isDelected: 'both', stage: 'both', scope: "", ttlDate_after: "", ttlDate_before: ""};
PolicyAppService.getData('get_DashboardPolicyCRUDData').then(function(data){
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.papStatusCRUDDatas =JSON.parse($scope.data.papStatusCRUDData);
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.papStatusCRUDDatas =JSON.parse($scope.data.papStatusCRUDData);
if($scope.papStatusCRUDDatas != null){
for(i = 0; i < $scope.papStatusCRUDDatas.length; i++){
$scope.papCRUDTableDatasTemp.push($scope.papStatusCRUDDatas[i].map);
@@ -40,117 +38,106 @@ app.controller('policyDashboardCRUDDataController', function ($scope, PolicyAppS
$scope.papCRUDTableDatas = $scope.papCRUDTableDatasTemp;
}
-
- },function(error){
- console.log("failed");
- });
+
+ });
- $scope.papCRUDStatusDatas = {
- data : 'papCRUDTableDatas',
- enableFiltering: true,
- columnDefs: [{ field: 'id', displayName :'id'},
- {field: 'scope', displayName :'Scope'},
- {field: 'policyName', displayName :'Policy Name'},
- {field: 'version', displayName :'Version'},
- {field: 'stage', displayName :'Stage'},
- {field: 'createdBy', displayName :'Created By'},
- {field: 'deleted', displayName :'Deleted'},
- {field: 'deleteReasonCode', displayName :'Deleted Reason'},
- {field: 'deletedBy' , displayName :'Deleted By'},
- {field: 'modifiedBy' , displayName :'Modified By'},
- {field: 'createdDate', displayName :'Created Date'},
- {field: 'modifiedDate', displayName :'Modified Date'}
- ],
+ $scope.papCRUDStatusDatas = {
+ data : 'papCRUDTableDatas',
+ enableFiltering: true,
+ columnDefs: [{ field: 'id', displayName :'id'},
+ {field: 'scope', displayName :'Scope'},
+ {field: 'policyName', displayName :'Policy Name'},
+ {field: 'version', displayName :'Version'},
+ {field: 'stage', displayName :'Stage'},
+ {field: 'createdBy', displayName :'Created By'},
+ {field: 'deleted', displayName :'Deleted'},
+ {field: 'deleteReasonCode', displayName :'Deleted Reason'},
+ {field: 'deletedBy' , displayName :'Deleted By'},
+ {field: 'modifiedBy' , displayName :'Modified By'},
+ {field: 'createdDate', displayName :'Created Date'},
+ {field: 'modifiedDate', displayName :'Modified Date'}
+ ],
onRegisterApi: function(gridApi){
- $scope.gridApi = gridApi;
+ $scope.gridApi = gridApi;
}
- };
-
+ };
+
$('#ttlDate_after').datepicker({
- dateFormat: 'yy-mm-dd',
- changeMonth: true,
- changeYear: true,
- onSelect: function(date) {
- angular.element($('#ttlDate_after')).triggerHandler('input');
- }
+ dateFormat: 'yy-mm-dd',
+ changeMonth: true,
+ changeYear: true,
+ onSelect: function(date) {
+ angular.element($('#ttlDate_after')).triggerHandler('input');
+ }
});
$('#ttlDate_before').datepicker({
- dateFormat: 'yy-mm-dd',
- changeMonth: true,
- changeYear: true,
- onSelect: function(date) {
- angular.element($('#ttlDate_before')).triggerHandler('input');
- }
+ dateFormat: 'yy-mm-dd',
+ changeMonth: true,
+ changeYear: true,
+ onSelect: function(date) {
+ angular.element($('#ttlDate_before')).triggerHandler('input');
+ }
});
$scope.refresh = function(){
- $scope.modal('advancedSearch', true);
- $scope.temp.policy = "";
+ $scope.modal('advancedSearch', true);
+ $scope.temp.policy = "";
};
- $scope.advancedSearch = function(){
+ $scope.advancedSearch = function(){
- $('#dashBoardAdvanceSearch').toggle();
- if($('#advancedSearchArrow').hasClass('arrowdown')){
- $('#advancedSearchArrow').removeClass("arrowdown");
- $('#advancedSearchArrow').addClass("arrowup");
-
- }else{
- $('#advancedSearchArrow').removeClass("arrowup");
- $('#advancedSearchArrow').addClass("arrowdown");
- }
- }
-
+ $('#dashBoardAdvanceSearch').toggle();
+ if($('#advancedSearchArrow').hasClass('arrowdown')){
+ $('#advancedSearchArrow').removeClass("arrowdown");
+ $('#advancedSearchArrow').addClass("arrowup");
+
+ }else{
+ $('#advancedSearchArrow').removeClass("arrowup");
+ $('#advancedSearchArrow').addClass("arrowdown");
+ }
+ }
+
$scope.startAdvancedSearch = function(data){
-
- console.log("startAdvancedSearch called");
- console.log(data.isDelected);
- console.log(data.stage);
- console.log(data.scope);
- console.log(data.ttlDate_after);
- console.log(data.ttlDate_before);
-
- if(data.scope == null){
- return;
- }
-
+
+
+ if(data.scope == null){
+ return;
+ }
+
var uuu = "dashboardController/dashboardAdvancedSearch.htm";
var postData={policyData: data};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- console.log("dashboardAdvancedSearch data returned: " + data);
-
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+
$scope.$apply(function(){
-
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.papStatusCRUDDatas =JSON.parse($scope.data.policyStatusCRUDData);
-
- $scope.papCRUDTableDatasTemp = [];
-
- for(i = 0; i < $scope.papStatusCRUDDatas.length; i++){
- $scope.papCRUDTableDatasTemp.push($scope.papStatusCRUDDatas[i].map);
- }
-
- $scope.papCRUDTableDatas = $scope.papCRUDTableDatasTemp;
-
- $scope.gridApi.grid.refresh();
+
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.papStatusCRUDDatas =JSON.parse($scope.data.policyStatusCRUDData);
+
+ $scope.papCRUDTableDatasTemp = [];
+
+ for(i = 0; i < $scope.papStatusCRUDDatas.length; i++){
+ $scope.papCRUDTableDatasTemp.push($scope.papStatusCRUDDatas[i].map);
+ }
+
+ $scope.papCRUDTableDatas = $scope.papCRUDTableDatasTemp;
+
+ $scope.gridApi.grid.refresh();
});
- },
- error : function(data){
- console.log("dashboardAdvancedSearch Failed: data returned as " + data);
- }
- });
+ },
+ error : function(data){
+ }
+ });
};
}); \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSControllerDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSControllerDictController.js
index 19b473294..a6de84efa 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSControllerDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSControllerDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -66,7 +66,7 @@ app.controller('editBRMSControllerController' , function ($scope, $modalInstanc
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}else{
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSDependencyDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSDependencyDictController.js
index 25a19baeb..f1157e878 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSDependencyDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSDependencyDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -66,7 +66,7 @@ app.controller('editBRMSDependencyController', function ($scope, $modalInstance,
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}else{
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSParamDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSParamDictController.js
index 678902840..f8d6d311e 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSParamDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/BRMSParamDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -60,7 +60,6 @@ app.controller('editBRMSParamController' , function ($scope, $modalInstance, mes
if(!regex.test(brmsParamDictionaryData.ruleName)) {
Notification.error("Enter Valid Rule Name without spaces or special characters");
}else{
- var file = $scope.MyFile;
var uuu = "saveDictionary/brms_dictionary/save_BRMSParam";
var postData={brmsParamDictionaryData: brmsParamDictionaryData, userid: userid};
$.ajax({
@@ -94,4 +93,4 @@ app.controller('editBRMSParamController' , function ($scope, $modalInstance, mes
$scope.close = function() {
$modalInstance.close();
};
-}); \ No newline at end of file
+});
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLPepOptionsDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLPepOptionsDictController.js
index 9bcf8dd6f..da389a8d2 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLPepOptionsDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLPepOptionsDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -85,7 +85,7 @@ app.controller('editPEPOptionsController', function ($scope, $modalInstance, me
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLServiceDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLServiceDictController.js
index b8bc0f9d1..b3e2fe092 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLServiceDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLServiceDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editCLServiceController' , function ($scope, $modalInstance, me
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLSiteDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLSiteDictController.js
index a673df5a2..cd2d89630 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLSiteDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLSiteDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editCLSiteController', function ($scope, $modalInstance, messag
}
},
error : function(data){
- alert("Error while saving.");
+ Notofication.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVarbindDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVarbindDictController.js
index 3b2a13f4a..44d62c5d9 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVarbindDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVarbindDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editCLVarbindController',function ($scope, $modalInstance, messa
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVnfTypeDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVnfTypeDictController.js
index 0d033621b..eb71a10df 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVnfTypeDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVnfTypeDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editVnfTypeController' , function ($scope, $modalInstance, mess
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVsclActionDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVsclActionDictController.js
index 106a8240d..cb78c4a38 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVsclActionDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/CLVsclActionDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -59,7 +59,7 @@ app.controller('editVsclActionController' , function ($scope, $modalInstance, m
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DecisionRainyDayDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DecisionRainyDayDictController.js
index b50becf0b..410ef26a0 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DecisionRainyDayDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DecisionRainyDayDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -52,7 +52,6 @@ app.controller('editRainyDayDictController' , function ($scope, $modalInstance,
$scope.editRainyDayTreatment = message.rainyDayDictionaryData;
$scope.saveDecisionTreatments = function(rainyDayDictionaryData) {
- var finalData = extend(rainyDayDictionaryData, $scope.treatmentDatas[0]);
var uuu = "saveDictionary/decision_dictionary/save_RainyDay";
var postData={rainyDayDictionaryData: rainyDayDictionaryData, userid: userid};
$.ajax({
@@ -72,18 +71,11 @@ app.controller('editRainyDayDictController' , function ($scope, $modalInstance,
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
};
- function extend(obj, src) {
- for (var key in src) {
- if (src.hasOwnProperty(key)) obj[key] = src[key];
- }
- return obj;
- }
-
$scope.treatmentDatas = [{"userDataTypeValues" : $scope.treatments}];
$scope.addNewTreatment = function() {
$scope.treatments.push({});
@@ -97,4 +89,4 @@ app.controller('editRainyDayDictController' , function ($scope, $modalInstance,
$scope.close = function() {
$modalInstance.close();
};
-}); \ No newline at end of file
+});
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DecisionSettingsDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DecisionSettingsDictController.js
index fb2dd40af..99379fdd7 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DecisionSettingsDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DecisionSettingsDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -59,7 +59,7 @@ app.controller('editSettingsDictController' , function ($scope, $modalInstance,
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DescriptiveSearchDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DescriptiveSearchDictController.js
index 266532a20..39d4058d8 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DescriptiveSearchDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/DescriptiveSearchDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -86,7 +86,7 @@ app.controller('editDescriptiveScopeController' , function ($scope, $modalInstan
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/EnforcerDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/EnforcerDictController.js
index 38f8f396f..2c6a6703c 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/EnforcerDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/EnforcerDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-var editEnforcerTypeController = function ($scope, $modalInstance, message, UserInfoServiceDS2){
+var editEnforcerTypeController = function ($scope, $modalInstance, message, UserInfoServiceDS2, Notification){
if(message.enforcerDictionaryData==null)
$scope.label='Add Enforcing Type'
else{
@@ -25,14 +25,14 @@ var editEnforcerTypeController = function ($scope, $modalInstance, message, Use
$scope.disableCd=true;
}
$scope.editEnforcerType = message.enforcerDictionaryData;
-
- /*getting user info from session*/
- var userid = null;
- UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
- .then(function (response) {
- userid = response.userid;
- });
-
+
+ /*getting user info from session*/
+ var userid = null;
+ UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
+ .then(function (response) {
+ userid = response.userid;
+ });
+
$scope.saveEnforcerType = function(enforcerDictionaryData) {
var uuu = "saveDictionary/enforcer_dictionary/save_enforcerType";
var postData={enforcerDictionaryData: enforcerDictionaryData, userid: userid};
@@ -49,7 +49,7 @@ var editEnforcerTypeController = function ($scope, $modalInstance, message, Use
$modalInstance.close({enforcerDictionaryDatas:$scope.enforcerDictionaryDatas});
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWActionListDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWActionListDictController.js
index 1eff96376..9d09959de 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWActionListDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWActionListDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -59,7 +59,7 @@ app.controller('editFWActionListController' , function ($scope, $modalInstance,
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWAddressGroupDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWAddressGroupDictController.js
index e9e4c3f5d..442eae955 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWAddressGroupDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWAddressGroupDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -87,7 +87,7 @@ app.controller('editFWAddressGroupController' , function ($scope, $modalInstance
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWParentListDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWParentListDictController.js
index 62b4a5b79..46f99762a 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWParentListDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWParentListDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -111,7 +111,7 @@ app.controller('editFWParentListController' , function ($scope, $modalInstance,
}
},
error : function(data){
- alert("Error while saving.");
+ Notification("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWPortListDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWPortListDictController.js
index 66caf4d8a..99e543034 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWPortListDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWPortListDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -59,7 +59,7 @@ app.controller('editFWPortListController' , function ($scope, $modalInstance, me
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWPrefixListDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWPrefixListDictController.js
index 1925e5f48..485af3ab6 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWPrefixListDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWPrefixListDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -60,7 +60,7 @@ app.controller('editFWPrefixListController' , function ($scope, $modalInstance,
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}else{
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWProtocolListDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWProtocolListDictController.js
index 82b1be794..5d382c62d 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWProtocolListDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWProtocolListDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editFWProtocolListController' , function ($scope, $modalInstance
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWSecurityZoneDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWSecurityZoneDictController.js
index 7d8da9d2a..a5238eeb4 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWSecurityZoneDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWSecurityZoneDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -24,44 +24,44 @@ app.controller('editfwSecurityZoneController' , function ($scope, $modalInstanc
$scope.label='Edit Security Zone'
$scope.disableCd=true;
}
-
- /*getting user info from session*/
- var userid = null;
- UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
- .then(function (response) {
- userid = response.userid;
- });
-
+
+ /*getting user info from session*/
+ var userid = null;
+ UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
+ .then(function (response) {
+ userid = response.userid;
+ });
+
$scope.editSecurityZone = message.securityZoneDictionaryData;
$scope.saveSecurityZone = function(securityZoneDictionaryData) {
- var regex = new RegExp("^[a-zA-Z0-9_]*$");
- if(!regex.test(securityZoneDictionaryData.zoneName)) {
- Notification.error("Enter Valid Security Zone Name without spaces or special characters");
- }else{
- var uuu = "saveDictionary/fw_dictionary/save_securityZone";
- var postData={securityZoneDictionaryData: securityZoneDictionaryData, userid: userid};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.securityZoneDictionaryDatas=data.securityZoneDictionaryDatas;});
- if($scope.securityZoneDictionaryDatas == "Duplicate"){
- Notification.error("FW SecurityZone Dictionary exists with Same Zone Name.")
- }else{
- console.log($scope.securityZoneDictionaryDatas);
- $modalInstance.close({securityZoneDictionaryDatas:$scope.securityZoneDictionaryDatas});
- }
- },
- error : function(data){
- alert("Error while saving.");
- }
- });
- }
+ var regex = new RegExp("^[a-zA-Z0-9_]*$");
+ if(!regex.test(securityZoneDictionaryData.zoneName)) {
+ Notification.error("Enter Valid Security Zone Name without spaces or special characters");
+ }else{
+ var uuu = "saveDictionary/fw_dictionary/save_securityZone";
+ var postData={securityZoneDictionaryData: securityZoneDictionaryData, userid: userid};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.securityZoneDictionaryDatas=data.securityZoneDictionaryDatas;});
+ if($scope.securityZoneDictionaryDatas == "Duplicate"){
+ Notification.error("FW SecurityZone Dictionary exists with Same Zone Name.")
+ }else{
+ console.log($scope.securityZoneDictionaryDatas);
+ $modalInstance.close({securityZoneDictionaryDatas:$scope.securityZoneDictionaryDatas});
+ }
+ },
+ error : function(data){
+ Notification.error("Error while saving.");
+ }
+ });
+ }
};
$scope.close = function() {
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWServiceGroupDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWServiceGroupDictController.js
index 43219bab5..dc3ae6e7d 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWServiceGroupDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWServiceGroupDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -87,7 +87,7 @@ app.controller('editFWServiceGroupController' , function ($scope, $modalInstanc
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWServiceListDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWServiceListDictController.js
index 0a6e8ba64..58b7be300 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWServiceListDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWServiceListDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -104,7 +104,7 @@ app.controller('editFWServiceListController' , function ($scope, $modalInstance
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTagListDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTagListDictController.js
index c70b3dd2f..7596e07a1 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTagListDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTagListDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -75,7 +75,7 @@ app.controller('editFWTagListController' , function ($scope, $modalInstance, mes
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTagPickerListDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTagPickerListDictController.js
index ed6571d4d..d813602fc 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTagPickerListDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTagPickerListDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -121,7 +121,7 @@ app.controller('editFWTagPickerController' , function ($scope, $modalInstance,
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTermListDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTermListDictController.js
index 73084195b..98a237ae2 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTermListDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWTermListDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -142,77 +142,54 @@ app.controller('editFWTermListController' , function ($scope, $modalInstance, me
PolicyAppService.getData('getDictionary/get_PrefixListDataByName').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log($scope.data);
$scope.prefixListDictionaryDatas = JSON.parse($scope.data.prefixListDictionaryDatas);
- console.log($scope.prefixListDictionaryDatas);
for(i = 0; i < $scope.prefixListDictionaryDatas.length; i++){
var key = $scope.prefixListDictionaryDatas[i];
$scope.groupAddresses.push(key);
}
- }, function (error) {
- console.log("failed");
});
PolicyAppService.getData('getDictionary/get_ZoneDictionaryDataByName').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log($scope.data);
$scope.zoneDictionaryDatas = JSON.parse($scope.data.zoneDictionaryDatas);
- console.log($scope.zoneDictionaryDatas);
- }, function (error) {
- console.log("failed");
});
PolicyAppService.getData('getDictionary/get_AddressGroupDictionaryDataByName').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log($scope.data);
$scope.addressGroupDictionaryDatas = JSON.parse($scope.data.addressGroupDictionaryDatas);
- console.log($scope.addressGroupDictionaryDatas);
for(i = 0; i < $scope.addressGroupDictionaryDatas.length; i++){
var key = $scope.addressGroupDictionaryDatas[i];
$scope.groupAddresses.push(key);
}
- }, function (error) {
- console.log("failed");
});
PolicyAppService.getData('getDictionary/get_ServiceListDictionaryDataByName').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log($scope.data);
$scope.serviceListDictionaryDatas = JSON.parse($scope.data.serviceListDictionaryDatas);
- console.log($scope.serviceListDictionaryDatas);
for(i = 0; i < $scope.serviceListDictionaryDatas.length; i++){
var key = $scope.serviceListDictionaryDatas[i];
$scope.groupServices.push(key);
}
- }, function (error) {
- console.log("failed");
});
PolicyAppService.getData('getDictionary/get_ServiceGroupDictionaryDataByName').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log($scope.data);
$scope.serviceGroupDictionaryDatas = JSON.parse($scope.data.serviceGroupDictionaryDatas);
- console.log($scope.serviceGroupDictionaryDatas);
for(i = 0; i < $scope.serviceGroupDictionaryDatas.length; i++){
var key = $scope.serviceGroupDictionaryDatas[i];
$scope.groupServices.push(key);
}
}, function (error) {
- console.log("failed");
});
PolicyAppService.getData('getDictionary/get_ActionListDictionaryDataByName').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log($scope.data);
$scope.actionListDictionaryDatas = JSON.parse($scope.data.actionListDictionaryDatas);
- console.log($scope.actionListDictionaryDatas);
- }, function (error) {
- console.log("failed");
});
@@ -251,12 +228,11 @@ app.controller('editFWTermListController' , function ($scope, $modalInstance, me
if($scope.termListDictionaryDatas == "Duplicate"){
Notification.error("FW TermList Dictionary exists with Same Term Name.")
}else{
- console.log($scope.termListDictionaryDatas);
$modalInstance.close({termListDictionaryDatas:$scope.termListDictionaryDatas});
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWZoneDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWZoneDictController.js
index bdb10f55e..4d1e6057b 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWZoneDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/FWZoneDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editFWZoneController' , function ($scope, $modalInstance, messa
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSConfigNameDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSConfigNameDictController.js
index a1b703880..743681afd 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSConfigNameDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSConfigNameDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018, 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.
@@ -59,7 +59,7 @@ app.controller('editMSConfigController' , function ($scope, $modalInstance, mes
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSDcaeUUIDDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSDcaeUUIDDictController.js
index 6fbb9b3e5..cd9a78525 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSDcaeUUIDDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSDcaeUUIDDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editDCAEuuidController' , function ($scope, $modalInstance, mess
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSDictionaryController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSDictionaryController.js
index 21b89697d..a3a9349c5 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSDictionaryController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSDictionaryController.js
@@ -59,7 +59,7 @@ app.controller('editMSDictController' , function ($scope, $modalInstance, messa
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSHeaderDefaultValuesDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSHeaderDefaultValuesDictController.js
index 960d76bd4..ce84afd84 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSHeaderDefaultValuesDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSHeaderDefaultValuesDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018, 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.
@@ -17,118 +17,91 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('editMSHeaderDefaultValuesController' , function ($scope, $modalInstance, message, PolicyAppService, UserInfoServiceDS2, Notification){
- if(message.modelAttributeDictionaryData==null)
- $scope.label='Set Header Default Values'
- else{
- $scope.label='Edit Header Default Values'
- $scope.disableCd=true;
- }
+app.controller('editMSHeaderDefaultValuesController' ,
+ function ($scope, $modalInstance, message, PolicyAppService, UserInfoServiceDS2, Notification){
+ if(message.modelAttributeDictionaryData==null)
+ $scope.label='Set Header Default Values'
+ else{
+ $scope.label='Edit Header Default Values'
+ $scope.disableCd=true;
+ }
- PolicyAppService.getData('getDictionary/get_MicroServiceHeaderDefaultsData').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.microServiceHeaderDefaultDatas = JSON.parse($scope.data.microServiceHeaderDefaultDatas);
- console.log("microServiceHeaderDefaultDatas:" + $scope.microServiceHeaderDefaultDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_MicroServiceHeaderDefaultsData').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.microServiceHeaderDefaultDatas = JSON.parse($scope.data.microServiceHeaderDefaultDatas);
+ });
- PolicyAppService.getData('getDictionary/get_MicroServiceModelsDataServiceVersion').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.microServiceModelsDictionaryDatas = JSON.parse($scope.data.microServiceModelsDictionaryDatas);
- console.log($scope.microServiceModelsDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
-
- PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log("riskTypeDictionaryDatas = " + $scope.data);
- $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
- console.log($scope.riskTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_MicroServiceModelsDataServiceVersion').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.microServiceModelsDictionaryDatas = JSON.parse($scope.data.microServiceModelsDictionaryDatas);
+ });
+
+ PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log("riskTypeDictionaryDatas: " + $scope.data);
- $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
- console.log($scope.riskTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
-
- PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
- console.log($scope.onapNameDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
+ });
+
+ PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
+ });
- PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.priorityDatas = JSON.parse($scope.data.priorityDatas);
- console.log($scope.priorityDatas);
- }, function (error) {
- console.log("failed");
- });
-
- /*getting user info from session*/
- var userid = null;
- UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
- .then(function (response) {
- userid = response.userid;
- });
-
- $scope.editHeaderDefaults = message.modelAttributeDictionaryData;
- $scope.editModelAttribute1 = {microservice: []};
- if($scope.edit){
- if(message.modelAttributeDictionaryData.groupList != null){
- var splitValue = message.modelAttributeDictionaryData.groupList.split(",");
- console.log(splitValue);
- }
- }
- $scope.saveHeaderDefaults = function(editHeaderDefaultsData) {
- console.log("editHeaderDefaultsData :" + editHeaderDefaultsData);
- var uuu = "saveDictionary/ms_dictionary/save_headerDefaults";
- var postData={modelAttributeDictionaryData: editHeaderDefaultsData, userid: userid};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.microServiceHeaderDefaultDatas=data.microServiceHeaderDefaultDatas;});
- console.log("microServiceHeaderDefaultDatas returned after saved: " + $scope.microServiceHeaderDefaultDatas);
- if($scope.microServiceAttributeDictionaryDatas == "Duplicate"){
- Notification.error("Model Attribute Dictionary exists with Same Attribute Name.")
- }else{
- console.log($scope.microServiceHeaderDefaultDatas);
- $modalInstance.close({microServiceHeaderDefaultDatas:$scope.microServiceHeaderDefaultDatas});
- }
- },
- error : function(data){
- alert("Error while saving.");
- }
- });
-
- };
+ PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.priorityDatas = JSON.parse($scope.data.priorityDatas);
+ });
+
+ /*getting user info from session*/
+ var userid = null;
+ UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
+ .then(function (response) {
+ userid = response.userid;
+ });
+
+ $scope.editHeaderDefaults = message.modelAttributeDictionaryData;
+ $scope.editModelAttribute1 = {microservice: []};
+ if($scope.edit){
+ if(message.modelAttributeDictionaryData.groupList != null){
+ var splitValue = message.modelAttributeDictionaryData.groupList.split(",");
+ }
+ }
+ $scope.saveHeaderDefaults = function(editHeaderDefaultsData) {
+ var uuu = "saveDictionary/ms_dictionary/save_headerDefaults";
+ var postData={modelAttributeDictionaryData: editHeaderDefaultsData, userid: userid};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.microServiceHeaderDefaultDatas=data.microServiceHeaderDefaultDatas;});
+ if($scope.microServiceAttributeDictionaryDatas == "Duplicate"){
+ Notification.error("Model Attribute Dictionary exists with Same Attribute Name.")
+ }else{
+ $modalInstance.close({microServiceHeaderDefaultDatas:$scope.microServiceHeaderDefaultDatas});
+ }
+ },
+ error : function(data){
+ Notification.error("Error while saving.");
+ }
+ });
+
+ };
- $scope.close = function() {
- $modalInstance.close();
- };
- }); \ No newline at end of file
+ $scope.close = function() {
+ $modalInstance.close();
+ };
+ }); \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSLocationDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSLocationDictController.js
index fbd8e35e2..198ea480e 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSLocationDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/MSLocationDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editMSLocationController' , function ($scope, $modalInstance, m
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/ModelAttributeDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/ModelAttributeDictController.js
index 242615e09..c03c7de1e 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/ModelAttributeDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/ModelAttributeDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -84,7 +84,7 @@ app.controller('editModelAttributeController' , function ($scope, $modalInstanc
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSClosedLoopDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSClosedLoopDictController.js
index 8377a87f9..d2357ba8b 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSClosedLoopDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSClosedLoopDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editPSClosedLoopController' , function ($scope, $modalInstance,
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSGroupPolicyScopeDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSGroupPolicyScopeDictController.js
index b456c57a0..6b65a5938 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSGroupPolicyScopeDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSGroupPolicyScopeDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,8 +17,9 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('editPSGroupPolicyScopeController' , function ($scope, $modalInstance, message, PolicyAppService, UserInfoServiceDS2, Notification){
- $scope.edit = false;
+app.controller('editPSGroupPolicyScopeController' ,
+ function ($scope, $modalInstance, message, PolicyAppService, UserInfoServiceDS2, Notification){
+ $scope.edit = false;
if(message.groupPolicyScopeListData==null)
$scope.label='Add New Group Policy Scope'
else{
@@ -26,108 +27,89 @@ app.controller('editPSGroupPolicyScopeController' , function ($scope, $modalIns
$scope.disableCd=true;
$scope.edit = true;
}
-
+
PolicyAppService.getData('getDictionary/get_PSServiceDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.psServiceDictionaryDatas = JSON.parse($scope.data.psServiceDictionaryDatas);
- console.log($scope.psServiceDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.psServiceDictionaryDatas = JSON.parse($scope.data.psServiceDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_PSTypeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.psTypeDictionaryDatas = JSON.parse($scope.data.psTypeDictionaryDatas);
- console.log($scope.psTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.psTypeDictionaryDatas = JSON.parse($scope.data.psTypeDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_PSResourceDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.psResourceDictionaryDatas = JSON.parse($scope.data.psResourceDictionaryDatas);
- console.log($scope.psResourceDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.psResourceDictionaryDatas = JSON.parse($scope.data.psResourceDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_PSClosedLoopDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.psClosedLoopDictionaryDatas = JSON.parse($scope.data.psClosedLoopDictionaryDatas);
- console.log($scope.psClosedLoopDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.psClosedLoopDictionaryDatas = JSON.parse($scope.data.psClosedLoopDictionaryDatas);
});
-
- /*getting user info from session*/
- var userid = null;
- UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
- .then(function (response) {
- userid = response.userid;
- });
+
+ /*getting user info from session*/
+ var userid = null;
+ UserInfoServiceDS2.getFunctionalMenuStaticDetailSession()
+ .then(function (response) {
+ userid = response.userid;
+ });
$scope.editPSGroupPolicyScope = message.groupPolicyScopeListData;
$scope.editPSGroupPolicyScope1 = {resource: [], type:[], service: [], closedloop: []};
if($scope.edit){
- if(message.groupPolicyScopeListData.groupList != null){
- var splitValue = message.groupPolicyScopeListData.groupList.split(",");
- console.log(splitValue);
- $scope.splittedGroupListValues = [];
- var splitResource = splitValue[0].split("=");
- $scope.editPSGroupPolicyScope1.resource.push(splitResource[1]);
- var splitType = splitValue[1].split("=");
- $scope.editPSGroupPolicyScope1.type.push(splitType[1]);
- var splitService = splitValue[2].split("=");
- $scope.editPSGroupPolicyScope1.service.push(splitService[1]);
- var splitCloop = splitValue[3].split("=");
- $scope.editPSGroupPolicyScope1.closedloop.push(splitCloop[1]);
- }
+ if(message.groupPolicyScopeListData.groupList != null){
+ var splitValue = message.groupPolicyScopeListData.groupList.split(",");
+ $scope.splittedGroupListValues = [];
+ var splitResource = splitValue[0].split("=");
+ $scope.editPSGroupPolicyScope1.resource.push(splitResource[1]);
+ var splitType = splitValue[1].split("=");
+ $scope.editPSGroupPolicyScope1.type.push(splitType[1]);
+ var splitService = splitValue[2].split("=");
+ $scope.editPSGroupPolicyScope1.service.push(splitService[1]);
+ var splitCloop = splitValue[3].split("=");
+ $scope.editPSGroupPolicyScope1.closedloop.push(splitCloop[1]);
+ }
}
$scope.savePSGroupPolicyScope = function(groupPolicyScopeListData, groupPolicyScopeListData1) {
- var regex = new RegExp("^[a-zA-Z0-9_]*$");
- if(!regex.test(groupPolicyScopeListData.groupName)) {
- Notification.error("Enter Valid Policy Scope Group Name without spaces or special characters");
- }else{
- console.log(groupPolicyScopeListData1);
- if(groupPolicyScopeListData1.resource[0] != undefined && groupPolicyScopeListData1.type[0] != undefined && groupPolicyScopeListData1.service[0] != undefined && groupPolicyScopeListData1.closedloop[0] != undefined){
- var uuu = "saveDictionary/ps_dictionary/save_psGroupPolicyScope";
- var postData={groupPolicyScopeListData: groupPolicyScopeListData,
- groupPolicyScopeListData1: groupPolicyScopeListData1, userid: userid};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.groupPolicyScopeListDatas=data.groupPolicyScopeListDatas;});
- if($scope.groupPolicyScopeListDatas == "Duplicate"){
- Notification.error("GroupPolicyScope Dictionary exists with Same Group Name.")
- }else if($scope.groupPolicyScopeListDatas == "DuplicateGroup"){
- Notification.error("GroupPolicyScope Dictionary exists with Same Group List.")
- }else{
- console.log($scope.groupPolicyScopeListDatas);
- $modalInstance.close({groupPolicyScopeListDatas:$scope.groupPolicyScopeListDatas});
- }
- },
- error : function(data){
- Notification.error("Error while saving.");
- }
- });
- }else{
- Notification.error("Please Select all the required fields to Save");
- }
- }
+ var regex = new RegExp("^[a-zA-Z0-9_]*$");
+ if(!regex.test(groupPolicyScopeListData.groupName)) {
+ Notification.error("Enter Valid Policy Scope Group Name without spaces or special characters");
+ }else{
+ if(groupPolicyScopeListData1.resource[0] != undefined && groupPolicyScopeListData1.type[0] != undefined && groupPolicyScopeListData1.service[0] != undefined && groupPolicyScopeListData1.closedloop[0] != undefined){
+ var uuu = "saveDictionary/ps_dictionary/save_psGroupPolicyScope";
+ var postData={groupPolicyScopeListData: groupPolicyScopeListData,
+ groupPolicyScopeListData1: groupPolicyScopeListData1, userid: userid};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.groupPolicyScopeListDatas=data.groupPolicyScopeListDatas;});
+ if($scope.groupPolicyScopeListDatas == "Duplicate"){
+ Notification.error("GroupPolicyScope Dictionary exists with Same Group Name.")
+ }else if($scope.groupPolicyScopeListDatas == "DuplicateGroup"){
+ Notification.error("GroupPolicyScope Dictionary exists with Same Group List.")
+ }else{
+ $modalInstance.close({groupPolicyScopeListDatas:$scope.groupPolicyScopeListDatas});
+ }
+ },
+ error : function(data){
+ Notification.error("Error while saving.");
+ }
+ });
+ }else{
+ Notification.error("Please Select all the required fields to Save");
+ }
+ }
};
$scope.close = function() {
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSResourceDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSResourceDictController.js
index 7aa028397..1afdcd6eb 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSResourceDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSResourceDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editPSResourceController' , function ($scope, $modalInstance, me
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSServiceDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSServiceDictController.js
index 53c6776f5..7946a145f 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSServiceDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSServiceDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editPSServiceController' , function ($scope, $modalInstance, mes
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSTypeDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSTypeDictController.js
index 9305e23e2..de87f130b 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSTypeDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/PSTypeDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -59,7 +59,7 @@ app.controller('editPSTypeController' , function ($scope, $modalInstance, messag
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/RiskTypeDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/RiskTypeDictController.js
index 48ff66339..565091977 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/RiskTypeDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/RiskTypeDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editRiskTypeController', function ($scope, $modalInstance, messa
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/SafePolicyWarningDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/SafePolicyWarningDictController.js
index e07262298..53810283c 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/SafePolicyWarningDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/SafePolicyWarningDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -91,7 +91,7 @@ app.controller('editSafePolicyWarningController' , function ($scope, $modalInst
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/actionPolicyDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/actionPolicyDictController.js
index 572211997..4614ed5f4 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/actionPolicyDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/actionPolicyDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -84,7 +84,7 @@ app.controller('editActionPolicyDictController', function ($scope, $modalInstanc
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/attributeDictController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/attributeDictController.js
index 4ca3b2266..3e54dd339 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/attributeDictController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/attributeDictController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -55,7 +55,6 @@ app.controller('editAttributeController' ,function ($scope, $modalInstance, mess
if(!regex.test(attributeDictionaryData.xacmlId)) {
Notification.error("Enter Valid Attribute Name without spaces or special characters");
}else{
- var finalData = extend(attributeDictionaryData, $scope.attributeDatas[0]);
var uuu = "saveDictionary/attribute_dictionary/save_attribute";
var postData={attributeDictionaryData: attributeDictionaryData, userid: userid};
$.ajax({
@@ -75,7 +74,7 @@ app.controller('editAttributeController' ,function ($scope, $modalInstance, mess
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
@@ -101,4 +100,4 @@ app.controller('editAttributeController' ,function ($scope, $modalInstance, mess
$scope.close = function() {
$modalInstance.close();
};
-}); \ No newline at end of file
+});
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/onapNameEditorController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/onapNameEditorController.js
index 2a2e743fb..c6ae5fffe 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/onapNameEditorController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryController/onapNameEditorController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -58,7 +58,7 @@ app.controller('editOnapNameController' , function ($scope, $modalInstance, mes
}
},
error : function(data){
- alert("Error while saving.");
+ Notification.error("Error while saving.");
}
});
}
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/BRMSParamDictGridController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/BRMSParamDictGridController.js
index 50e14ea26..af1c34607 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/BRMSParamDictGridController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/BRMSParamDictGridController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('brmsParamDictGridController', function ($scope, PolicyAppService,modalService, $modal){
+app.controller('brmsParamDictGridController', function ($scope, PolicyAppService,modalService, $modal, Notification){
$( "#dialog" ).hide();
PolicyAppService.getData('getDictionary/get_BRMSParamData').then(function (data) {
@@ -164,7 +164,7 @@ app.controller('brmsParamDictGridController', function ($scope, PolicyAppService
})}
},
error : function(data){
- alert("Error while Searching.");
+ Notification.error("Error while Searching.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLPepOptionsDictGridController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLPepOptionsDictGridController.js
index cb79d6d44..1292139c6 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLPepOptionsDictGridController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLPepOptionsDictGridController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('pepOptionsDictGridController', function ($scope, PolicyAppService, modalService, $modal){
+app.controller('pepOptionsDictGridController', function ($scope, PolicyAppService, modalService, $modal, Notification){
$( "#dialog" ).hide();
@@ -189,7 +189,7 @@ app.controller('pepOptionsDictGridController', function ($scope, PolicyAppServic
})}
},
error : function(data){
- alert("Error while Searching.");
+ Notification.error("Error while Searching.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLServiceDictGridController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLServiceDictGridController.js
index de692a4f4..d41e940b6 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLServiceDictGridController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLServiceDictGridController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('serviceDictGridController', function ($scope, PolicyAppService, modalService, $modal){
+app.controller('serviceDictGridController', function ($scope, PolicyAppService, modalService, $modal, Notification){
$( "#dialog" ).hide();
PolicyAppService.getData('getDictionary/get_ClosedLoopServicesData').then(function (data) {
@@ -187,7 +187,7 @@ app.controller('serviceDictGridController', function ($scope, PolicyAppService,
})}
},
error : function(data){
- alert("Error while Searching.");
+ Notification.error("Error while Searching.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLSiteDictGridController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLSiteDictGridController.js
index abf44f86a..f72375246 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLSiteDictGridController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLSiteDictGridController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('siteDictGridController', function ($scope, PolicyAppService, modalService, $modal){
+app.controller('siteDictGridController', function ($scope, PolicyAppService, modalService, $modal, Notification){
$( "#dialog" ).hide();
PolicyAppService.getData('getDictionary/get_ClosedLoopSiteData').then(function (data) {
@@ -187,7 +187,7 @@ app.controller('siteDictGridController', function ($scope, PolicyAppService, mod
})}
},
error : function(data){
- alert("Error while Searching.");
+ Notification.error("Error while Searching.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVarbindDictGridController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVarbindDictGridController.js
index 4e13b9779..e2a69bd8d 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVarbindDictGridController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVarbindDictGridController.js
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('varbindDictGridController', function ($scope, PolicyAppService, modalService, $modal){
+app.controller('varbindDictGridController', function ($scope, PolicyAppService, modalService, $modal, Notification){
$( "#dialog" ).hide();
PolicyAppService.getData('getDictionary/get_VarbindDictionaryData').then(function (data) {
@@ -188,7 +188,7 @@ app.controller('varbindDictGridController', function ($scope, PolicyAppService,
})}
},
error : function(data){
- alert("Error while Searching.");
+ Notification.error("Error while Searching.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVnfTypeDictGridController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVnfTypeDictGridController.js
index 90b77e45d..22978ba19 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVnfTypeDictGridController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVnfTypeDictGridController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('vnfTypeDictGridController', function ($scope, PolicyAppService, modalService, $modal){
+app.controller('vnfTypeDictGridController', function ($scope, PolicyAppService, modalService, $modal, Notification){
$( "#dialog" ).hide();
PolicyAppService.getData('getDictionary/get_VNFTypeData').then(function (data) {
@@ -187,7 +187,7 @@ app.controller('vnfTypeDictGridController', function ($scope, PolicyAppService,
})}
},
error : function(data){
- alert("Error while Searching.");
+ Notification.error("Error while Searching.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVsclActionDictGridController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVsclActionDictGridController.js
index 1c26c21b0..7077bc5e6 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVsclActionDictGridController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/CLVsclActionDictGridController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('vsclActionDictGridController', function ($scope, PolicyAppService, modalService, $modal){
+app.controller('vsclActionDictGridController', function ($scope, PolicyAppService, modalService, $modal, Notification){
$( "#dialog" ).hide();
PolicyAppService.getData('getDictionary/get_VSCLActionData').then(function (data) {
@@ -188,7 +188,7 @@ app.controller('vsclActionDictGridController', function ($scope, PolicyAppServic
})}
},
error : function(data){
- alert("Error while Searching.");
+ Notification.error("Error while Searching.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/MSHeaderDefaultValuesDictGridController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/MSHeaderDefaultValuesDictGridController.js
index 4e6b9696b..e12db92c7 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/MSHeaderDefaultValuesDictGridController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/MSHeaderDefaultValuesDictGridController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018, 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.
@@ -23,51 +23,31 @@ app.controller('msHeaderDefaultValuesDictGridController', function ($scope, Poli
PolicyAppService.getData('getDictionary/get_MicroServiceHeaderDefaultsData').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log($scope.data);
$scope.microServiceHeaderDefaultDatas = JSON.parse($scope.data.microServiceHeaderDefaultDatas);
- console.log("microServiceHeaderDefaultDatas: " + $scope.microServiceHeaderDefaultDatas);
- }, function (error) {
- console.log("failed");
});
PolicyAppService.getData('getDictionary/get_MicroServiceModelsDataByName').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log($scope.data);
$scope.microServiceModelsDictionaryDatas = JSON.parse($scope.data.microServiceModelsDictionaryDatas);
- console.log($scope.microServiceModelsDictionaryDatas);
- }, function (error) {
- console.log("failed");
});
PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log("riskTypeDictionaryDatas: " + $scope.data);
$scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
- console.log($scope.riskTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
});
PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log($scope.data);
$scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
- console.log($scope.onapNameDictionaryDatas);
- }, function (error) {
- console.log("failed");
});
PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) {
var j = data;
$scope.data = JSON.parse(j.data);
- console.log($scope.data);
$scope.priorityDatas = JSON.parse($scope.data.priorityDatas);
- console.log($scope.priorityDatas);
- }, function (error) {
- console.log("failed");
});
PolicyAppService.getData('get_LockDownData').then(function(data){
@@ -81,8 +61,6 @@ app.controller('msHeaderDefaultValuesDictGridController', function ($scope, Poli
$scope.msHeaderDefaultValuesDictionaryGrid.columnDefs[0].visible = true;
$scope.gridApi.grid.refresh();
}
- },function(error){
- console.log("failed");
});
$scope.msHeaderDefaultValuesDictionaryGrid = {
@@ -116,7 +94,6 @@ app.controller('msHeaderDefaultValuesDictGridController', function ($scope, Poli
}
});
modalInstance.result.then(function(response){
- console.log('response', response);
$scope.microServiceHeaderDefaultDatas=response.microServiceHeaderDefaultDatas;
});
};
@@ -137,7 +114,6 @@ app.controller('msHeaderDefaultValuesDictGridController', function ($scope, Poli
}
});
modalInstance.result.then(function(response){
- console.log('response', response);
$scope.modelAttributeDictionaryDataa = response.modelAttributeDictionaryDatas;
});
};
@@ -157,7 +133,6 @@ app.controller('msHeaderDefaultValuesDictGridController', function ($scope, Poli
$scope.$apply(function(){$scope.microServiceHeaderDefaultDatas=data.microServiceHeaderDefaultDatas;});
},
error : function(data){
- console.log(data);
modalService.showFailure("Fail","Error while deleting: "+ data.responseText);
}
});
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/attributeDictGridController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/attributeDictGridController.js
index 760418553..7459bd6e7 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/attributeDictGridController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/attributeDictGridController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('attributeDictGridController', function ($scope, PolicyAppService, modalService, $modal){
+app.controller('attributeDictGridController', function ($scope, PolicyAppService, modalService, $modal, Notification){
$( "#dialog" ).hide();
PolicyAppService.getData('getDictionary/get_AttributeData').then(function (data) {
@@ -198,7 +198,7 @@ app.controller('attributeDictGridController', function ($scope, PolicyAppService
})}
},
error : function(data){
- alert("Error while Searching.");
+ Notification.error("Error while Searching.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/onapNameDictGridController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/onapNameDictGridController.js
index 4dd1df8c3..6727a7a30 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/onapNameDictGridController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/dictionaryGridController/onapNameDictGridController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,7 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller('onapNameDictGridController', function ($scope, PolicyAppService, modalService, $modal, uiGridConstants,Grid){
+app.controller('onapNameDictGridController', function ($scope, PolicyAppService, modalService, $modal, uiGridConstants,Grid, Notification){
$( "#dialog" ).hide();
PolicyAppService.getData('getDictionary/get_OnapNameData').then(function (data) {
@@ -58,7 +58,7 @@ app.controller('onapNameDictGridController', function ($scope, PolicyAppService,
'<button type="button" class="btn btn-primary" ng-click="grid.appScope.editOnapNameWindow(row.entity)"><i class="fa fa-pencil-square-o"></i></button> ' +
'<button type="button" class="btn btn-danger" ng-click="grid.appScope.deleteOnapName(row.entity)" ><i class="fa fa-trash-o"></i></button> ', width: '8%'
},
- { field: 'onapName', displayName : 'Onap Name', sort: { direction: 'asc', priority: 0 } },
+ { field: 'name', displayName : 'Onap Name', sort: { direction: 'asc', priority: 0 } },
{ field: 'description', width: '20%' },
{field: 'userCreatedBy.userName', displayName : 'Created By'},
{field: 'userModifiedBy.userName', displayName : 'Modified By' },
@@ -189,7 +189,7 @@ app.controller('onapNameDictGridController', function ($scope, PolicyAppService,
})}
},
error : function(data){
- alert("Error while Searching.");
+ Notification.error("Error while Searching.");
}
});
};
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/policyAdminTabController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/policyAdminTabController.js
index 4fabc458d..a0de546d9 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/policyAdminTabController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/controller/policyAdminTabController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,50 +17,54 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-app.controller("policyAdminController", function($scope, PolicyAppService, modalService, $modal, Notification){
- $( "#dialog" ).hide();
-
+app.controller("policyAdminController", function($scope, PolicyAppService, modalService, $modal, Notification) {
+ $("#dialog").hide();
+
$scope.isDisabled = true;
- PolicyAppService.getData('get_LockDownData').then(function(data){
+ PolicyAppService.getData('get_LockDownData').then(function(data) {
var j = data;
$scope.data = JSON.parse(j.data);
$scope.lockdowndata = JSON.parse($scope.data.lockdowndata);
- if($scope.lockdowndata[0].lockdown == true){
- $scope.isDisabled = true;
- }else{
- $scope.isDisabled = false;
- }
+ if ($scope.lockdowndata[0].lockdown == true) {
+ $scope.isDisabled = true;
+ } else {
+ $scope.isDisabled = false;
+ }
console.log($scope.data);
- },function(error){
+ }, function(error) {
console.log("failed");
});
-
- $scope.saveLockDownValue = function(lockdownValue){
- console.log(lockdownValue);
- if(lockdownValue == true){
- Notification.success("Policy Application has been Locked Successfully");
- $scope.isDisabled = true;
- }else{
- Notification.success("Policy Application has been UnLocked Successfully");
- $scope.isDisabled = false;
- }
- var uuu = "adminTabController/save_LockDownValue.htm";
- var postData={lockdowndata: {lockdown : lockdownValue}};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.data=data.data;
- });
- console.log($scope.data);
- },
- error : function(data){
- alert("Error Occured while saving Lockdown Value.");
- }
- });
- };
+
+ $scope.saveLockDownValue = function(lockdownValue) {
+ console.log(lockdownValue);
+ if (lockdownValue == true) {
+ Notification.success("Policy Application has been Locked Successfully");
+ $scope.isDisabled = true;
+ } else {
+ Notification.success("Policy Application has been UnLocked Successfully");
+ $scope.isDisabled = false;
+ }
+ var uuu = "adminTabController/save_LockDownValue.htm";
+ var postData = {
+ lockdowndata : {
+ lockdown : lockdownValue
+ }
+ };
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType : 'json',
+ contentType : 'application/json',
+ data : JSON.stringify(postData),
+ success : function(data) {
+ $scope.$apply(function() {
+ $scope.data = data.data;
+ });
+ console.log($scope.data);
+ },
+ error : function(data) {
+ Notification.error("Error Occured while saving Lockdown Value.");
+ }
+ });
+ };
}); \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/modalPopupController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/modalPopupController.js
index 7eb2b450e..7b3eca291 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/modalPopupController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/modalPopupController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,24 +17,24 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-appDS2.controller('modalpopupController' , function ($scope, $modalInstance, message){
-
- $scope.message = message;
-
-
- $scope.hello = function () {
+appDS2.controller('modalpopupController' , function ($scope, $modalInstance, message, Notification){
+
+ $scope.message = message;
+
+
+ $scope.hello = function () {
$modalInstance.close($scope.digitPattern);
};
- $modalInstance.ok = function() {
+ $modalInstance.ok = function() {
//add the ok functionality
- alert("Logout");
+ Notification.error("Logout");
};
$modalInstance.cancel = function() {
//add the cancel functionality
- alert("Keep Log in");
+ Notification.error("Keep Log in");
};
$modalInstance.cancelbutton = function() {
//add the cancel functionality
- alert("Modal Waring popup close event");
+ Notification.error("Modal Waring popup close event");
};
}); \ No newline at end of file
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/policyEditor.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/policyEditor.html
index 6efb8b637..0493afce1 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/policyEditor.html
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/policyEditor.html
@@ -7,9 +7,9 @@
* 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.
@@ -20,272 +20,273 @@
<!DOCTYPE html>
<html>
<head>
- <meta charset="ISO-8859-1">
- <title>Policy</title>
+ <meta charset="ISO-8859-1">
+ <title>Policy</title>
- <!-- Resources -->
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css">
- <!---------------------------AngularJs-------------------------------->
- <script src= "app/fusion/external/angular-1.4.8/angular.js"></script>
- <script src= "app/fusion/external/angular-1.4.8/angular.min.js"></script>
- <script src= "app/policyApp/libs/bower_components/angular-translate/angular-translate.min.js"></script>
- <script src= "app/policyApp/libs/bower_components/ng-file-upload/ng-file-upload.min.js"></script>
- <script src= "app/fusion/external/angular-1.4.8/angular-messages.js"></script>
- <script src= "app/fusion/external/angular-1.4.8/angular-touch.js"></script>
- <script src= "//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-animate.js"></script>
- <script src= "app/fusion/external/angular-1.4.8/angular-sanitize.min.js"></script>
- <script src= "app/fusion/external/angular-1.4.8/angular-route.min.js"></script>
- <script src= "app/fusion/external/angular-1.4.8/angular-cookies.min.js"></script>
-
- <script src= "app/fusion/external/b2b/js/b2b-angular/b2b-library.min.js"></script>
- <script src= "app/fusion/external/jquery/dist/jquery.min.js"></script>
- <script src= "app/policyApp/libs/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
- <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
- <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-
- <!---------------------------Angular Gridster-------------------------------->
- <link rel="stylesheet" href="app/fusion/external/angular-gridster/dist/angular-gridster.min.css">
- <link rel="stylesheet" href= "app/fusion/external/angular-bootstrap/ui-bootstrap-csp.css">
- <script src= "app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
- <script src= "app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
- <script src= "app/fusion/external/angular-gridster/dist/angular-gridster.min.js"></script>
+ <!-- Resources -->
+ <link rel="stylesheet" href="app/policyApp/CSS/font-awesome.min.css">
+ <!---------------------------AngularJs-------------------------------->
+ <script src= "app/fusion/external/angular-1.4.13/angular.js"></script>
+ <script src= "app/fusion/external/angular-1.4.13/angular.min.js"></script>
+ <script src= "app/policyApp/libs/bower_components/angular-translate/angular-translate.min.js"></script>
+ <script src= "app/policyApp/libs/bower_components/ng-file-upload/ng-file-upload.min.js"></script>
+ <script src= "app/fusion/external/angular-1.4.13/angular-messages.js"></script>
+ <script src= "app/fusion/external/angular-1.4.13/angular-touch.js"></script>
+ <script src= "app/fusion/external/angular-1.4.13/angular-animate.js"></script>
+ <script src= "app/fusion/external/angular-1.4.13/angular-sanitize.min.js"></script>
+ <script src= "app/fusion/external/angular-1.4.13/angular-route.min.js"></script>
+ <script src= "app/fusion/external/angular-1.4.13/angular-cookies.min.js"></script>
- <!---------------------------Policy App CSS-------------------------------->
- <link rel="stylesheet" href="app/policyApp/CSS/font-awesome.min.css">
- <link rel="stylesheet" href="app/policyApp/CSS/Notification/angular-csp.css">
- <link rel="stylesheet" href="app/policyApp/CSS/Notification/angular-ui-notification.min.css">
- <link rel="stylesheet" href="app/policyApp/CSS/lockdownIcon.css">
- <link rel="stylesheet" href="app/policyApp/CSS/w3.css">
- <link rel="stylesheet" href="app/policyApp/CSS/select.css">
- <link rel="stylesheet" href="app/policyApp/policy-models/Editor/css/normalize.css">
- <link rel="stylesheet" href="app/policyApp/policy-models/Editor/css/animations.css">
- <link rel="stylesheet" href="app/policyApp/policy-models/Editor/css/dialogs.css">
- <link rel="stylesheet" href="app/policyApp/policy-models/Editor/css/main.css">
- <link rel="stylesheet" href="app/policyApp/policy-models/Editor/css/styles.css">
- <script src= "app/policyApp/CSS/Notification/angular-ui-notification.min.js"></script>
-
- <script src= "app/policyApp/CSS/UIGrid/ui-grid.js"></script>
- <link rel="stylesheet" href="app/policyApp/CSS/UIGrid/ui-grid.css">
-
- <script src= "app/fusion/external/ds2/js/appDS2.js"></script>
+ <script src= "app/fusion/external/b2b/js/b2b-angular/b2b-library.min.js"></script>
+ <script src= "app/fusion/external/jquery/dist/jquery.min.js"></script>
+ <script src= "app/policyApp/CSS/bootstrap/dist/js/bootstrap-modalmanager.min.js"></script>
+ <script src= "app/policyApp/CSS/bootstrap/dist/js/bootstrap.min.js"></script>
+ <!-- <link rel="stylesheet" href="app/fusion/styles/jquery-ui.css"> -->
+ <script src= "static/js/jquery-ui.js"></script>
- <script src= "app/fusion/scripts/DS2-services/headerServiceDS2.js"></script>
- <script src= "app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
- <script src= "app/fusion/scripts/DS2-services/manifestService.js"></script>
- <script src= "app/fusion/scripts/DS2-directives/footer.js"></script>
- <script src= "app/fusion/scripts/DS2-directives/ds2Header.js"></script>
- <script src= "app/fusion/scripts/DS2-directives/ds2LeftMenu.js"></script>
- <script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script>
- <!-- /*<script src= "app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>*/ -->
- <script src= "app/policyApp/service/userInfoServiceDS2.js"></script>
-
- <!---------------------------Policy Editor js-------------------------------->
- <script src= "app/policyApp/policy-models/Editor/js/app.js"></script>
- <script src= "app/policyApp/service/PolicyAppService.js"></script>
- <script src= "app/policyApp/main/modalPopupController.js"></script>
- <script src= "app/policyApp/service/modalService.js"></script>
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/ExportPolicyController.js"></script>
- <script src= "app/policyApp/policy-models/Editor/js/directives/directives.js"></script>
- <script src= "app/policyApp/policy-models/Editor/js/filters/filters.js"></script>
- <script src= "app/policyApp/policy-models/Editor/js/providers/config.js"></script>
- <script src= "app/policyApp/policy-models/Editor/js/entities/item.js"></script>
- <script src= "app/policyApp/policy-models/Editor/js/services/policynavigator.js"></script>
- <script src= "app/policyApp/policy-models/Editor/js/services/policyuploader.js"></script>
- <script src= "app/policyApp/policy-models/Editor/js/controllers/policyManager.js"></script>
- <script src= "app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js"></script>
- <script src= "app/policyApp/policy-models/Editor/js/controllers/selector-controller.js"></script>
- <script src= "app/policyApp/controller/policyController.js"></script>
-
- <!---------------------------Policy Left Menu Controllers-------------------------------->
- <script src= "app/policyApp/controller/policyAdminTabController.js"></script>
- <script src= "app/policyApp/controller/dashboard_Logging_Controller.js"></script>
- <script src= "app/policyApp/controller/dashboardController.js"></script>
+ <!---------------------------Angular Gridster-------------------------------->
+ <link rel="stylesheet" href="app/fusion/external/angular-gridster/dist/angular-gridster.min.css">
+ <link rel="stylesheet" href= "app/fusion/external/angular-bootstrap/ui-bootstrap-csp.css">
+ <script src= "app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
+ <script src= "app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
+ <script src= "app/fusion/external/angular-gridster/dist/angular-gridster.min.js"></script>
+
+ <!---------------------------Policy App CSS-------------------------------->
+ <link rel="stylesheet" href="app/policyApp/CSS/font-awesome.min.css">
+ <link rel="stylesheet" href="app/policyApp/CSS/Notification/angular-csp.css">
+ <link rel="stylesheet" href="app/policyApp/CSS/Notification/angular-ui-notification.min.css">
+ <link rel="stylesheet" href="app/policyApp/CSS/lockdownIcon.css">
+ <link rel="stylesheet" href="app/policyApp/CSS/w3.css">
+ <link rel="stylesheet" href="app/policyApp/CSS/select.css">
+ <link rel="stylesheet" href="app/policyApp/policy-models/Editor/css/normalize.css">
+ <link rel="stylesheet" href="app/policyApp/policy-models/Editor/css/animations.css">
+ <link rel="stylesheet" href="app/policyApp/policy-models/Editor/css/dialogs.css">
+ <link rel="stylesheet" href="app/policyApp/policy-models/Editor/css/main.css">
+ <link rel="stylesheet" href="app/policyApp/policy-models/Editor/css/styles.css">
+ <script src= "app/policyApp/CSS/Notification/angular-ui-notification.min.js"></script>
+
+ <script src= "app/policyApp/CSS/UIGrid/ui-grid.js"></script>
+ <link rel="stylesheet" href="app/policyApp/CSS/UIGrid/ui-grid.css">
+
+ <script src= "app/fusion/external/ds2/js/appDS2.js"></script>
+
+ <script src= "app/fusion/scripts/DS2-services/headerServiceDS2.js"></script>
+ <script src= "app/fusion/scripts/DS2-services/leftMenuServiceDS2.js"></script>
+ <script src= "app/fusion/scripts/DS2-services/manifestService.js"></script>
+ <script src= "app/fusion/scripts/DS2-directives/footer.js"></script>
+ <script src= "app/fusion/scripts/DS2-directives/ds2Header.js"></script>
+ <script src= "app/fusion/scripts/DS2-directives/ds2LeftMenu.js"></script>
+ <script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script>
+ <!-- /*<script src= "app/fusion/scripts/DS2-services/userInfoServiceDS2.js"></script>*/ -->
+ <script src= "app/policyApp/service/userInfoServiceDS2.js"></script>
+
+ <!---------------------------Policy Editor js-------------------------------->
+ <script src= "app/policyApp/policy-models/Editor/js/app.js"></script>
+ <script src= "app/policyApp/service/PolicyAppService.js"></script>
+ <script src= "app/policyApp/main/modalPopupController.js"></script>
+ <script src= "app/policyApp/service/modalService.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/ExportPolicyController.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/js/directives/directives.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/js/filters/filters.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/js/providers/config.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/js/entities/item.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/js/services/policynavigator.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/js/services/policyuploader.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/js/controllers/policyManager.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/js/controllers/selector-controller.js"></script>
+ <script src= "app/policyApp/controller/policyController.js"></script>
+
+ <!---------------------------Policy Left Menu Controllers-------------------------------->
+ <script src= "app/policyApp/controller/policyAdminTabController.js"></script>
+ <script src= "app/policyApp/controller/dashboard_Logging_Controller.js"></script>
+ <script src= "app/policyApp/controller/dashboardController.js"></script>
<script src= "app/policyApp/controller/dashboardCRUDController.js"></script>
- <script src= "app/policyApp/controller/pdpController.js"></script>
- <script src= "app/policyApp/controller/pdpGroupPopUpController.js"></script>
- <script src= "app/policyApp/controller/DictionaryController.js"></script>
- <script src= "app/policyApp/controller/PolicyRolesController.js"></script>
- <script src= "app/policyApp/controller/PolicyAddScopeRoleController.js"></script>
- <script src= "app/policyApp/controller/AutoPushController.js"></script>
- <script src= "app/policyApp/controller/ImportDictionaryController.js"></script>
- <script src= "app/policyApp/controller/PDPTabController/AddorEditPdpInGroup.js"></script>
- <script src= "app/policyApp/controller/PDPTabController/PDPGroupStatusController.js"></script>
- <script src= "app/policyApp/controller/AutoPushTabController/RemovePDPGroupPoliciesController.js"></script>
-
- <!---------------------------Policy Creation resources-------------------------------->
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js"></script>
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js"></script>
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js"></script>
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js"></script>
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js"></script>
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js"></script>
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js"></script>
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js"></script>
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js"></script>
- <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js"></script>
-
- <!--------------------------Dictionary resources--------------------------------->
- <script src= "app/policyApp/controller/dictionaryGridController/actionPolicyDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/attributeDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/onapNameDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/BRMSParamDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/BRMSDependencyDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/BRMSControllerDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/CLPepOptionsDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/CLServiceDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/CLSiteDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/CLVarbindDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/CLVnfTypeDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/CLVsclActionDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/DecisionSettingsDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/DecisionRainyDayDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/DescriptiveScopeDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/EnforcerTypeDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWActionListDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWAddressGroupDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWParentListDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWPortListDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWPrefixListDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWProtocolListDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWSecurityZoneDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWServiceGroupDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWServiceListDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWTermListDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWTagListDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWTagPickerListDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/FWZoneDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/MSConfigNameDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/MSHeaderDefaultValuesDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/MSDcaeUUIDDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/MSLocationDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/MSModelDictionaryDataController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/MSModelDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/ModelAttributeDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/OptimizationModelDictGridController.js"></script>
-
- <script src= "app/policyApp/controller/dictionaryGridController/PSClosedLoopDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/PSGroupPolicyScopeDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/PSResourceDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/PSServiceDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/PSTypeDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/RiskTypeDictGridController.js"></script>
- <script src= "app/policyApp/controller/dictionaryGridController/SafePolicyWarningDictGridController.js"></script>
+ <script src= "app/policyApp/controller/pdpController.js"></script>
+ <script src= "app/policyApp/controller/pdpGroupPopUpController.js"></script>
+ <script src= "app/policyApp/controller/DictionaryController.js"></script>
+ <script src= "app/policyApp/controller/PolicyRolesController.js"></script>
+ <script src= "app/policyApp/controller/PolicyAddScopeRoleController.js"></script>
+ <script src= "app/policyApp/controller/AutoPushController.js"></script>
+ <script src= "app/policyApp/controller/ImportDictionaryController.js"></script>
+ <script src= "app/policyApp/controller/PDPTabController/AddorEditPdpInGroup.js"></script>
+ <script src= "app/policyApp/controller/PDPTabController/PDPGroupStatusController.js"></script>
+ <script src= "app/policyApp/controller/AutoPushTabController/RemovePDPGroupPoliciesController.js"></script>
+
+ <!---------------------------Policy Creation resources-------------------------------->
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js"></script>
+ <script src= "app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js"></script>
+
+ <!--------------------------Dictionary resources--------------------------------->
+ <script src= "app/policyApp/controller/dictionaryGridController/actionPolicyDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/attributeDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/onapNameDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/BRMSParamDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/BRMSDependencyDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/BRMSControllerDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/CLPepOptionsDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/CLServiceDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/CLSiteDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/CLVarbindDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/CLVnfTypeDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/CLVsclActionDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/DecisionSettingsDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/DecisionRainyDayDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/DescriptiveScopeDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/EnforcerTypeDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWActionListDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWAddressGroupDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWParentListDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWPortListDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWPrefixListDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWProtocolListDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWSecurityZoneDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWServiceGroupDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWServiceListDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWTermListDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWTagListDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWTagPickerListDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/FWZoneDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/MSConfigNameDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/MSHeaderDefaultValuesDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/MSDcaeUUIDDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/MSLocationDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/MSModelDictionaryDataController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/MSModelDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/ModelAttributeDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/OptimizationModelDictGridController.js"></script>
+
+ <script src= "app/policyApp/controller/dictionaryGridController/PSClosedLoopDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/PSGroupPolicyScopeDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/PSResourceDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/PSServiceDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/PSTypeDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/RiskTypeDictGridController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryGridController/SafePolicyWarningDictGridController.js"></script>
+
+ <script src= "app/policyApp/controller/dictionaryController/actionPolicyDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/attributeDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/onapNameEditorController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/BRMSParamDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/BRMSDependencyDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/BRMSControllerDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/CLPepOptionsDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/CLServiceDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/CLSiteDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/CLVarbindDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/CLVnfTypeDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/CLVsclActionDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/DecisionSettingsDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/DecisionRainyDayDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/DescriptiveSearchDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/EnforcerDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWActionListDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWAddressGroupDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWParentListDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWPortListDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWPrefixListDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWProtocolListDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWSecurityZoneDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWServiceGroupDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWServiceListDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWTermListDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWTagListDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWTagPickerListDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/FWZoneDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/MSHeaderDefaultValuesDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/MSConfigNameDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/MSDictionaryController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/MSDcaeUUIDDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/MSLocationDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/MSModelsDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/ModelAttributeDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/OptimizationModelsDictController.js"></script>
+
+ <script src= "app/policyApp/controller/dictionaryController/PSClosedLoopDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/PSGroupPolicyScopeDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/PSResourceDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/PSServiceDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/PSTypeDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/RiskTypeDictController.js"></script>
+ <script src= "app/policyApp/controller/dictionaryController/SafePolicyWarningDictController.js"></script>
+
+ <script src= "app/policyApp/controller/ImportDictionaryController.js"></script>
+
+ <!---------------------------DS2 styles-------------------------------->
+ <link rel="stylesheet" href="app/policyApp/CSS/b2b-angular.css">
+ <link rel="stylesheet" href="app/fusion/external/b2b/css/b2b-angular/font_icons.css">
+ <link rel="stylesheet" href="app/policyApp/CSS/bootstrap/dist/css/bootstrap.min.css">
+
+ <!---------------------------DS2 ICONS-------------------------------->
+ <link rel="stylesheet" href="app/fusion/external/ds2/css/digital-ng-library/ionicons.css">
+ <link rel="stylesheet" href="app/fusion/styles/ecomp.css">
+ <link rel="stylesheet" href="app/fusion/external/angular-gridster/dist/angular-gridster.min.css">
- <script src= "app/policyApp/controller/dictionaryController/actionPolicyDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/attributeDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/onapNameEditorController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/BRMSParamDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/BRMSDependencyDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/BRMSControllerDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/CLPepOptionsDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/CLServiceDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/CLSiteDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/CLVarbindDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/CLVnfTypeDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/CLVsclActionDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/DecisionSettingsDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/DecisionRainyDayDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/DescriptiveSearchDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/EnforcerDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWActionListDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWAddressGroupDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWParentListDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWPortListDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWPrefixListDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWProtocolListDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWSecurityZoneDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWServiceGroupDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWServiceListDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWTermListDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWTagListDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWTagPickerListDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/FWZoneDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/MSHeaderDefaultValuesDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/MSConfigNameDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/MSDictionaryController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/MSDcaeUUIDDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/MSLocationDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/MSModelsDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/ModelAttributeDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/OptimizationModelsDictController.js"></script>
-
- <script src= "app/policyApp/controller/dictionaryController/PSClosedLoopDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/PSGroupPolicyScopeDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/PSResourceDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/PSServiceDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/PSTypeDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/RiskTypeDictController.js"></script>
- <script src= "app/policyApp/controller/dictionaryController/SafePolicyWarningDictController.js"></script>
-
- <script src= "app/policyApp/controller/ImportDictionaryController.js"></script>
-
- <!---------------------------DS2 styles-------------------------------->
- <link rel="stylesheet" href="app/policyApp/CSS/b2b-angular.css">
- <link rel="stylesheet" href="app/fusion/external/b2b/css/b2b-angular/font_icons.css">
- <link rel="stylesheet" href="app/policyApp/CSS/bootstrap/dist/css/bootstrap.min.css">
-
- <!---------------------------DS2 ICONS-------------------------------->
- <link rel="stylesheet" href="app/fusion/external/ds2/css/digital-ng-library/ionicons.css">
- <link rel="stylesheet" href="app/fusion/styles/ecomp.css">
- <link rel="stylesheet" href="app/fusion/external/angular-gridster/dist/angular-gridster.min.css">
-
</head>
- <body class="appBody" ng-app="abs" style="padding-top: 0px;">
- <div ds2-Header class="header-container" ></div>
- <div ds2-menu id="menuContainer" class="menu-container" ></div>
- <div ng-view id="rightContentProfile" class="content-container">
- </div>
- <!-- Dictionary Windows -->
- <div ng-include src="'app/policyApp/Windows/Dictionary/ActionPolicyDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/AttributeDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/BRMSParamDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/BRMSDependencyDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/BRMSControllerDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/CLPepOptionsDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/CLServiceTypeDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/CLSiteDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/CLVarbindDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/CLVnfTypeDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/CLVsclActionDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/DecisionSettingsDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/DecisionRainyDayDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/DescriptiveScopeDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/OnapNameDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/EnforcerTypeDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWActionListDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWAddressGroupDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWParentListDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWPortListDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWPrefixListDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWProtocolListDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWSecurityZoneDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWServiceGroupDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWServiceListDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWTag.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWTagPicker.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWTermListDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/FWZoneDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/MSConfigNameDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/MSHeaderDefaultValuesDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/MSDCAEUUIDDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/MSLocationDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/MSModelsDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/MSModelDictionaryData.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/ModelAttributeDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/OptimizationModelsDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/PSClosedLoopDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/PSGroupPolicyScopeDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/PSResourceDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/PSServiceDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/PSTypeDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/RiskTypeDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/RiskTypeDictionary.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Dictionary/SafePolicyWarningDictionary.html'"></div>
-
- <div ng-include src="'app/policyApp/Windows/PDPTabWindows/PdpStatusWindow.html'"></div>
- <div ng-include src="'app/policyApp/Windows/Edit_Roles_Window.html'"></div>
- <div ng-include src="'app/policyApp/Windows/PushtabWindow/removeGroupPoliciesWindow.html'"></div>
- <div ng-include src="'app/policyApp/Windows/popup_modal.html'"></div>
- <div ds2-Footer class="footer-container"></div>
- </body>
+ <body class="appBody" ng-app="abs" style="padding-top: 0px;">
+ <div ds2-Header class="header-container" ></div>
+ <div ds2-menu id="menuContainer" class="menu-container" ></div>
+ <div ng-view id="rightContentProfile" class="content-container">
+ </div>
+ <!-- Dictionary Windows -->
+ <div ng-include src="'app/policyApp/Windows/Dictionary/ActionPolicyDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/AttributeDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/BRMSParamDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/BRMSDependencyDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/BRMSControllerDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/CLPepOptionsDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/CLServiceTypeDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/CLSiteDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/CLVarbindDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/CLVnfTypeDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/CLVsclActionDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/DecisionSettingsDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/DecisionRainyDayDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/DescriptiveScopeDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/OnapNameDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/EnforcerTypeDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWActionListDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWAddressGroupDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWParentListDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWPortListDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWPrefixListDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWProtocolListDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWSecurityZoneDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWServiceGroupDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWServiceListDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWTag.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWTagPicker.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWTermListDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/FWZoneDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/MSConfigNameDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/MSHeaderDefaultValuesDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/MSDCAEUUIDDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/MSLocationDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/MSModelsDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/MSModelDictionaryData.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/ModelAttributeDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/OptimizationModelsDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/PSClosedLoopDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/PSGroupPolicyScopeDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/PSResourceDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/PSServiceDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/PSTypeDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/RiskTypeDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/RiskTypeDictionary.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Dictionary/SafePolicyWarningDictionary.html'"></div>
+
+ <div ng-include src="'app/policyApp/Windows/PDPTabWindows/PdpStatusWindow.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/Edit_Roles_Window.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/PushtabWindow/removeGroupPoliciesWindow.html'"></div>
+ <div ng-include src="'app/policyApp/Windows/popup_modal.html'"></div>
+ <div ds2-Footer class="footer-container"></div>
+ </body>
</html>
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js
index a9097d559..80c11463f 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ActionPolicyController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -28,7 +28,7 @@ app.controller('actionPolicyController', ['$scope', 'PolicyAppService', 'policyN
$scope.temp.policy = {
policyType : "Action"
}
- };
+ }
$scope.refresh = function(){
if($scope.refreshCheck){
@@ -36,7 +36,7 @@ app.controller('actionPolicyController', ['$scope', 'PolicyAppService', 'policyN
}
$scope.modal('createNewPolicy', true);
$scope.temp.policy = "";
- };
+ }
$scope.modal = function(id, hide) {
return $('#' + id).modal(hide ? 'hide' : 'show');
@@ -71,13 +71,6 @@ app.controller('actionPolicyController', ['$scope', 'PolicyAppService', 'policyN
}, function (error) {
console.log("failed");
});
-
- function extend(obj, src) {
- for (var key in src) {
- if (src.hasOwnProperty(key)) obj[key] = src[key];
- }
- return obj;
- }
$scope.saveActionPolicy = function(policy){
if(policy.itemContent != undefined){
@@ -191,4 +184,4 @@ app.controller('actionPolicyController', ['$scope', 'PolicyAppService', 'policyN
$scope.temp.policy.ruleAlgorithmschoices.splice(lastItem);
};
-}]); \ No newline at end of file
+}]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js
index 22511c5a7..35fb3cb81 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSParamPolicyController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,9 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
+angular.module('abs').controller('brmsParamPolicyController',
+ ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification',
+ function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
$("#dialog").hide();
$scope.policyNavigator;
@@ -25,18 +27,18 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo
$scope.refreshCheck = false;
if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
- $scope.temp.policy = {
- policyType : "Config",
- configPolicyType : "BRMS_Param"
- }
- };
+ $scope.temp.policy = {
+ policyType : "Config",
+ configPolicyType : "BRMS_Param"
+ }
+ }
$scope.refresh = function(){
- if($scope.refreshCheck){
- $scope.policyNavigator.refresh();
- }
- $scope.modal('createNewPolicy', true);
- $scope.temp.policy = "";
+ if($scope.refreshCheck){
+ $scope.policyNavigator.refresh();
+ }
+ $scope.modal('createNewPolicy', true);
+ $scope.temp.policy = "";
};
$scope.modal = function(id, hide) {
@@ -44,66 +46,49 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo
};
$('#ttlDate').datepicker({
- dateFormat: 'dd/mm/yy',
- changeMonth: true,
- changeYear: true,
- onSelect: function(date) {
- angular.element($('#ttlDate')).triggerHandler('input');
- }
+ dateFormat: 'dd/mm/yy',
+ changeMonth: true,
+ changeYear: true,
+ onSelect: function(date) {
+ angular.element($('#ttlDate')).triggerHandler('input');
+ }
});
$scope.validateSuccess = true;
var readValue = $scope.temp.policy.readOnly;
if(readValue){
- $scope.validateSuccess = false;
+ $scope.validateSuccess = false;
}
PolicyAppService.getData('getDictionary/get_BRMSControllerDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.brmsControllerDatas = JSON.parse($scope.data.brmsControllerDictionaryDatas);
- console.log($scope.brmsControllerDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.brmsControllerDatas = JSON.parse($scope.data.brmsControllerDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_BRMSDependencyDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.brmsDependencyDatas = JSON.parse($scope.data.brmsDependencyDictionaryDatas);
- console.log($scope.brmsDependencyDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.brmsDependencyDatas = JSON.parse($scope.data.brmsDependencyDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_BRMSParamDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.brmsParamDictionaryDatas = JSON.parse($scope.data.brmsParamDictionaryDatas);
- console.log($scope.brmsParamDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.brmsParamDictionaryDatas = JSON.parse($scope.data.brmsParamDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
- console.log($scope.riskTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
});
$scope.temp.policy.dynamicLayoutMap = {};
$scope.addDataToFields = function(ruleName){
- console.log(ruleName);
if(ruleName != null){
- var uuu = "policyController/getBRMSTemplateData.htm";
- var postData={policyData: ruleName};
+ var uuu = "policyController/getBRMSTemplateData.htm";
+ var postData={policyData: ruleName};
$.ajax({
type : 'POST',
url : uuu,
@@ -112,12 +97,11 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo
data: JSON.stringify(postData),
success : function(data){
$scope.$apply(function(){
- $scope.temp.policy.dynamicLayoutMap = data.policyData;
+ $scope.temp.policy.dynamicLayoutMap = data.policyData;
});
- console.log( $scope.temp.policy.dynamicLayoutMap);
},
error : function(data){
- alert("Error While Retriving the Template Layout Pattren.");
+ Notification.error("Error While Retriving the Template Layout Pattren.");
}
});
}
@@ -126,7 +110,6 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo
$scope.showbrmsrule = true;
$scope.ShowRule = function(policy){
- console.log(policy);
var uuu = "policyController/ViewBRMSParamPolicyRule.htm";
var postData={policyData: policy};
$.ajax({
@@ -136,30 +119,30 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo
contentType: 'application/json',
data: JSON.stringify(postData),
success : function(data){
- $scope.showbrmsrule = false;
- $scope.validateSuccess = true;
+ $scope.showbrmsrule = false;
+ $scope.validateSuccess = true;
$scope.$apply(function(){
- $scope.datarule = data.policyData;
+ $scope.datarule = data.policyData;
});
},
error : function(data){
- Notification.error("Error Occured while Showing Rule.");
+ Notification.error("Error Occured while Showing Rule.");
}
});
};
$scope.hideRule = function(){
- $scope.showbrmsrule = true;
- $scope.validateSuccess = false;
- $scope.apply();
+ $scope.showbrmsrule = true;
+ $scope.validateSuccess = false;
+ $scope.apply();
};
$scope.saveBrmsParamPolicy = function(policy){
- if(policy.itemContent != undefined){
- $scope.refreshCheck = true;
- $scope.policyNavigator = policy.itemContent;
- policy.itemContent = "";
- }
+ if(policy.itemContent != undefined){
+ $scope.refreshCheck = true;
+ $scope.policyNavigator = policy.itemContent;
+ policy.itemContent = "";
+ }
$scope.savebutton = false;
var uuu = "policycreation/save_policy";
var postData={policyData: policy};
@@ -173,83 +156,73 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo
$scope.$apply(function(){
$scope.data=data.policyData;
if($scope.data == 'success'){
- $scope.temp.policy.readOnly = 'true';
- $scope.safetyChecker = data.policyData.split("#")[2];
- if ($scope.safetyChecker!=undefined) {
- Notification.success($scope.safetyChecker);
- }
- Notification.success("Policy Saved Successfully.");
+ $scope.temp.policy.readOnly = 'true';
+ $scope.safetyChecker = data.policyData.split("#")[2];
+ if ($scope.safetyChecker!=undefined) {
+ Notification.success($scope.safetyChecker);
+ }
+ Notification.success("Policy Saved Successfully.");
}else if ($scope.data == 'PolicyExists'){
- $scope.savebutton = true;
- Notification.error("Policy Already Exists with Same Name in Scope.");
- }
+ $scope.savebutton = true;
+ Notification.error("Policy Already Exists with Same Name in Scope.");
+ }
});
- console.log($scope.data);
},
error : function(data){
- Notification.error("Error Occured while saving Policy.");
- $scope.savebutton = true;
+ Notification.error("Error Occured while saving Policy.");
+ $scope.savebutton = true;
}
});
};
$scope.validatePolicy = function(policy){
- console.log(policy);
- document.getElementById("validate").innerHTML = "";
+ document.getElementById("validate").innerHTML = "";
var uuu = "policyController/validate_policy.htm";
- var postData={policyData: policy};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.validateData = data.data.replace(/\"/g, "");
- $scope.data=data.data.substring(1,8);
- var size = data.data.length;
- if($scope.data == 'success'){
- Notification.success("Validation Success.");
- $scope.savebutton = false;
- if (size > 18){
- var displayWarning = data.data.substring(19,size);
- document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "skyblue";
- }
- $scope.validateSuccess = false;
- }else{
- Notification.error("Validation Failed.");
- document.getElementById("validate").innerHTML = $scope.validateData;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "red";
- $scope.savebutton = true;
- }
-
- });
- console.log($scope.data);
- },
- error : function(data){
- Notification.error("Validation Failed.");
- $scope.savebutton = true;
- }
- });
+ var postData={policyData: policy};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.validateData = data.data.replace(/\"/g, "");
+ $scope.data=data.data.substring(1,8);
+ var size = data.data.length;
+ if($scope.data == 'success'){
+ Notification.success("Validation Success.");
+ $scope.savebutton = false;
+ if (size > 18){
+ var displayWarning = data.data.substring(19,size);
+ document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "skyblue";
+ }
+ $scope.validateSuccess = false;
+ }else{
+ Notification.error("Validation Failed.");
+ document.getElementById("validate").innerHTML = $scope.validateData;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "red";
+ $scope.savebutton = true;
+ }
+
+ });
+ },
+ error : function(data){
+ Notification.error("Validation Failed.");
+ $scope.savebutton = true;
+ }
+ });
};
- function extend(obj, src) {
- for (var key in src) {
- if (src.hasOwnProperty(key)) obj[key] = src[key];
- }
- return obj;
- }
-
if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
- $scope.temp.policy.attributes = [];
+ $scope.temp.policy.attributes = [];
}else{
- if($scope.temp.policy.attributes.length == 0){
- $scope.temp.policy.attributes = [];
- }
+ if($scope.temp.policy.attributes.length == 0){
+ $scope.temp.policy.attributes = [];
+ }
}
$scope.attributeDatas = [{"attributes" : $scope.temp.policy.attributes}];
@@ -261,4 +234,4 @@ angular.module('abs').controller('brmsParamPolicyController', ['$scope', '$windo
var lastItem = $scope.temp.policy.attributes.length-1;
$scope.temp.policy.attributes.splice(lastItem);
};
-}]); \ No newline at end of file
+}]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js
index 6061b1ef8..695cb423d 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BRMSRawPolicyController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,9 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-angular.module('abs').controller('brmsRawPolicyController', ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
+angular.module('abs').controller('brmsRawPolicyController',
+ ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification',
+ function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
$("#dialog").hide();
$scope.policyNavigator;
@@ -25,18 +27,18 @@ angular.module('abs').controller('brmsRawPolicyController', ['$scope', '$window'
$scope.refreshCheck = false;
if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
- $scope.temp.policy = {
- policyType : "Config",
- configPolicyType : "BRMS_Raw"
- }
- };
+ $scope.temp.policy = {
+ policyType : "Config",
+ configPolicyType : "BRMS_Raw"
+ }
+ }
$scope.refresh = function(){
- if($scope.refreshCheck){
- $scope.policyNavigator.refresh();
- }
- $scope.modal('createNewPolicy', true);
- $scope.temp.policy = "";
+ if($scope.refreshCheck){
+ $scope.policyNavigator.refresh();
+ }
+ $scope.modal('createNewPolicy', true);
+ $scope.temp.policy = "";
};
$scope.modal = function(id, hide) {
@@ -44,134 +46,112 @@ angular.module('abs').controller('brmsRawPolicyController', ['$scope', '$window'
};
$('#ttlDate').datepicker({
- dateFormat: 'dd/mm/yy',
- changeMonth: true,
- changeYear: true,
- onSelect: function(date) {
- angular.element($('#ttlDate')).triggerHandler('input');
- }
+ dateFormat: 'dd/mm/yy',
+ changeMonth: true,
+ changeYear: true,
+ onSelect: function(date) {
+ angular.element($('#ttlDate')).triggerHandler('input');
+ }
});
PolicyAppService.getData('getDictionary/get_BRMSControllerDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.brmsControllerDatas = JSON.parse($scope.data.brmsControllerDictionaryDatas);
- console.log($scope.brmsControllerDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.brmsControllerDatas = JSON.parse($scope.data.brmsControllerDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_BRMSDependencyDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.brmsDependencyDatas = JSON.parse($scope.data.brmsDependencyDictionaryDatas);
- console.log($scope.brmsDependencyDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.brmsDependencyDatas = JSON.parse($scope.data.brmsDependencyDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
- console.log($scope.riskTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
});
$scope.saveBrmsRawPolicy = function(policy){
- if(policy.itemContent != undefined){
- $scope.refreshCheck = true;
- $scope.policyNavigator = policy.itemContent;
- policy.itemContent = "";
- }
+ if(policy.itemContent != undefined){
+ $scope.refreshCheck = true;
+ $scope.policyNavigator = policy.itemContent;
+ policy.itemContent = "";
+ }
$scope.savebutton = false;
var uuu = "policycreation/save_policy";
- var postData={policyData: policy};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.data=data.policyData;
- if($scope.data == 'success'){
- $scope.temp.policy.readOnly = 'true';
- Notification.success("Policy Saved Successfully.");
- }else if ($scope.data == 'PolicyExists'){
- $scope.savebutton = true;
- Notification.error("Policy Already Exists with Same Name in Scope.");
- }
- });
- console.log($scope.data);
- },
- error : function(data){
- Notification.error("Error Occured while saving Policy.");
- $scope.savebutton = true;
- }
- });
+ var postData={policyData: policy};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.data=data.policyData;
+ if($scope.data == 'success'){
+ $scope.temp.policy.readOnly = 'true';
+ Notification.success("Policy Saved Successfully.");
+ }else if ($scope.data == 'PolicyExists'){
+ $scope.savebutton = true;
+ Notification.error("Policy Already Exists with Same Name in Scope.");
+ }
+ });
+ },
+ error : function(data){
+ Notification.error("Error Occured while saving Policy.");
+ $scope.savebutton = true;
+ }
+ });
};
$scope.validatePolicy = function(policy){
- console.log(policy);
- document.getElementById("validate").innerHTML = "";
+ document.getElementById("validate").innerHTML = "";
var uuu = "policyController/validate_policy.htm";
- var postData={policyData: policy};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.validateData = data.data.replace(/\"/g, "");
- $scope.data=data.data.substring(1,8);
- var size = data.data.length;
- if($scope.data == 'success'){
- Notification.success("Validation Success.");
- $scope.savebutton = false;
- if (size > 18){
- var displayWarning = data.data.substring(19,size);
- document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "skyblue";
- }
- }else{
- Notification.error("Validation Failed.");
- document.getElementById("validate").innerHTML = $scope.validateData;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "red";
- $scope.savebutton = true;
- }
-
- });
- console.log($scope.data);
- },
- error : function(data){
- Notification.error("Validation Failed.");
- }
- });
+ var postData={policyData: policy};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.validateData = data.data.replace(/\"/g, "");
+ $scope.data=data.data.substring(1,8);
+ var size = data.data.length;
+ if($scope.data == 'success'){
+ Notification.success("Validation Success.");
+ $scope.savebutton = false;
+ if (size > 18){
+ var displayWarning = data.data.substring(19,size);
+ document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "skyblue";
+ }
+ }else{
+ Notification.error("Validation Failed.");
+ document.getElementById("validate").innerHTML = $scope.validateData;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "red";
+ $scope.savebutton = true;
+ }
+
+ });
+ },
+ error : function(data){
+ Notification.error("Validation Failed.");
+ }
+ });
};
- function extend(obj, src) {
- for (var key in src) {
- if (src.hasOwnProperty(key)) obj[key] = src[key];
- }
- return obj;
- }
-
if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
- $scope.temp.policy.attributes = [];
+ $scope.temp.policy.attributes = [];
}else{
- if($scope.temp.policy.attributes.length == 0){
- $scope.temp.policy.attributes = [];
- }
+ if($scope.temp.policy.attributes.length == 0){
+ $scope.temp.policy.attributes = [];
+ }
}
$scope.attributeDatas = [{"attributes" : $scope.temp.policy.attributes}];
$scope.addNewChoice = function() {
@@ -182,4 +162,4 @@ angular.module('abs').controller('brmsRawPolicyController', ['$scope', '$window'
var lastItem = $scope.temp.policy.attributes.length-1;
$scope.temp.policy.attributes.splice(lastItem);
};
-}]); \ No newline at end of file
+}]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js
index 02e10bddd..f950e7434 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/BaseConfigPolicyController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -30,7 +30,7 @@ app.controller('baseConfigController', ['$scope', 'PolicyAppService', 'policyNav
policyType : "Config",
configPolicyType : "Base"
}
- };
+ }
$scope.refresh = function(){
if($scope.refreshCheck){
@@ -177,4 +177,4 @@ app.controller('baseConfigController', ['$scope', 'PolicyAppService', 'policyNav
var lastItem = $scope.temp.policy.attributes.length-1;
$scope.temp.policy.attributes.splice(lastItem);
};
-}]); \ No newline at end of file
+}]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js
index ebc9001ab..a8368a05e 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopFaultController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,26 +17,28 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-angular.module("abs").controller('clFaultController', ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification){
- $("#dialog").hide();
+angular.module("abs").controller('clFaultController',
+ ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification',
+ function($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification){
+ $("#dialog").hide();
- $scope.policyNavigator;
- $scope.savebutton = true;
- $scope.refreshCheck = false;
+ $scope.policyNavigator;
+ $scope.savebutton = true;
+ $scope.refreshCheck = false;
- if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
- $scope.temp.policy = {
- policyType : "Config",
- configPolicyType : "ClosedLoop_Fault"
- }
- };
+ if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
+ $scope.temp.policy = {
+ policyType : "Config",
+ configPolicyType : "ClosedLoop_Fault"
+ }
+ }
$scope.refresh = function(){
- if($scope.refreshCheck){
- $scope.policyNavigator.refresh();
- }
- $scope.modal('createNewPolicy', true);
- $scope.temp.policy = "";
+ if($scope.refreshCheck){
+ $scope.policyNavigator.refresh();
+ }
+ $scope.modal('createNewPolicy', true);
+ $scope.temp.policy = "";
};
$scope.modal = function(id, hide) {
@@ -44,784 +46,749 @@ angular.module("abs").controller('clFaultController', ['$scope', '$window', 'Pol
};
$('#ttlDate').datepicker({
- dateFormat: 'dd/mm/yy',
- changeMonth: true,
- changeYear: true,
- onSelect: function(date) {
- angular.element($('#ttlDate')).triggerHandler('input');
- }
+ dateFormat: 'dd/mm/yy',
+ changeMonth: true,
+ changeYear: true,
+ onSelect: function(date) {
+ angular.element($('#ttlDate')).triggerHandler('input');
+ }
});
-
- if($scope.temp.policy.triggerTrapSignatures == undefined){
- $scope.temp.policy.triggerTrapSignatures = [];
- $scope.temp.policy.triggerfaultSignatures = [];
- }
- var trapCollection = [];
- var faultCollection = [];
- if($scope.varbindDictionaryDatas == undefined){
- $scope.varbindDictionaryDatas = [];
- }
-
- $scope.init = function(data){
- if(data != undefined && $scope.temp.policy.triggerTrapSignatures.length == 0){
- $scope.jsonData = data;
- if($scope.jsonData.triggerSignaturesUsedForUI != null){
- if($scope.jsonData.triggerSignaturesUsedForUI.signatures != null){
- $scope.temp.policy.triggerTrapSignatures = {Trap1 : [], Trap2 : [], Trap3 : [], Trap4 : [], Trap5 : [], Trap6 : []};
- var splitTraps = $scope.jsonData.triggerSignaturesUsedForUI.signatures.split("#!?!");
- if(splitTraps.length > 1){
- $scope.triggerdisabled = false;
- var indexId = "Trap1";
- trapCollection.push(indexId);
- $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+1});
- var splitTrap1 = splitTraps[0];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerTrapSignatures["Trap1"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if(splitTraps.length > 2){
- var indexId = "Trap2";
- trapCollection.push(indexId);
- $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+2});
- var splitTrap1 = splitTraps[1];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] == ''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerTrapSignatures["Trap2"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if(splitTraps.length > 3){
- var indexId = "Trap3";
- trapCollection.push(indexId);
- $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+3});
- var splitTrap1 = splitTraps[2];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerTrapSignatures["Trap3"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if(splitTraps.length > 4){
- var indexId = "Trap4";
- trapCollection.push(indexId);
- $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+4});
- var splitTrap1 = splitTraps[3];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerTrapSignatures["Trap4"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if(splitTraps.length > 5){
- var indexId = "Trap5";
- trapCollection.push(indexId);
- $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+5});
- var splitTrap1 = splitTraps[4];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerTrapSignatures["Trap5"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if(splitTraps.length > 6){
- var indexId = "Trap6";
- trapCollection.push(indexId);
- $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+6});
- var splitTrap1 = splitTraps[5];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerTrapSignatures["Trap6"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if($scope.jsonData.triggerSignaturesUsedForUI.connectSignatures != null){
- var splitConnectTraps = $scope.jsonData.triggerSignaturesUsedForUI.connectSignatures.split("#!?!");
- for(i=0; i < splitConnectTraps.length; i++){
- if(splitConnectTraps[i] != ""){
- var newConnectTrapItemNo = i+1;
- var connects = splitConnectTraps[i].split("@!");
- if(connects[0] == 'NOT' || connects[0] ==''){
- var notBox = connects[0];
- var connectTrap1 = connects[1];
- var trapCount1 = connects[2];
- var operatorBox = connects[3];
- var connectTrap2 = connects[4];
- var trapCount2 = connects[5];
- }else{
- var notBox = '';
- var connectTrap1 = connects[0];
- var trapCount1 = connects[1];
- var operatorBox = connects[2];
- var connectTrap2 = connects[3];
- var trapCount2 = connects[4];
- }
- $scope.temp.policy.connecttriggerSignatures.push({'id':'C'+newConnectTrapItemNo,'notBox' : notBox , 'connectTrap1': connectTrap1,'trapCount1' : trapCount1,
- 'operatorBox': operatorBox, 'connectTrap2': connectTrap2,'trapCount2' : trapCount2});
- }
- }
- }
- }
- }
- if($scope.jsonData.verificationSignaturesUsedForUI != null){
- if($scope.jsonData.verificationSignaturesUsedForUI.signatures != null){
- $scope.temp.policy.triggerfaultSignatures = {Fault1 : [], Fault2 : [], Fault3 : [], Fault4 : [], Fault5 : [], Fault6 : []};
- var splitTraps = $scope.jsonData.verificationSignaturesUsedForUI.signatures.split("#!?!");
- if(splitTraps.length > 1){
- $scope.verificationdisabled = false;
- var indexId = "Fault1";
- faultCollection.push(indexId);
- $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+1});
- var splitTrap1 = splitTraps[0];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerfaultSignatures["Fault1"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if(splitTraps.length > 2){
- var indexId = "Fault2";
- faultCollection.push(indexId);
- $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+2});
- var splitTrap1 = splitTraps[1];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] == ''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerfaultSignatures["Fault2"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if(splitTraps.length > 3){
- var indexId = "Fault3";
- faultCollection.push(indexId);
- $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+3});
- var splitTrap1 = splitTraps[2];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerfaultSignatures["Fault3"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if(splitTraps.length > 4){
- var indexId = "Fault4";
- faultCollection.push(indexId);
- $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+4});
- var splitTrap1 = splitTraps[3];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerfaultSignatures["Fault4"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if(splitTraps.length > 5){
- var indexId = "Fault5";
- faultCollection.push(indexId);
- $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+5});
- var splitTrap1 = splitTraps[4];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerfaultSignatures["Fault5"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
- if(splitTraps.length > 6){
- var indexId = "Fault6";
- faultCollection.push(indexId);
- $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
- $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+6});
- var splitTrap1 = splitTraps[5];
- var splitEachTrap = splitTrap1.split("#!");
- for(i = 0 ; i < splitEachTrap.length; i++){
- var splitEachRow = splitEachTrap[i].split("@!");
- var count = i +1;
- if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
- var notBox = splitEachRow[0];
- var trigger1 = splitEachRow[1];
- var operatorBox = splitEachRow[2];
- var trigger2 = splitEachRow[3];
- }else{
- var notBox = '';
- var trigger1 = splitEachRow[0];
- var operatorBox = splitEachRow[1];
- var trigger2 = splitEachRow[2];
- }
- $scope.varbindDictionaryDatas.push('A'+count);
- $scope.temp.policy.triggerfaultSignatures["Fault6"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
- }
- }
+
+ if($scope.temp.policy.triggerTrapSignatures == undefined){
+ $scope.temp.policy.triggerTrapSignatures = [];
+ $scope.temp.policy.triggerfaultSignatures = [];
+ }
+ var trapCollection = [];
+ var faultCollection = [];
+ if($scope.varbindDictionaryDatas == undefined){
+ $scope.varbindDictionaryDatas = [];
+ }
+
+ $scope.init = function(data){
+ if(data != undefined && $scope.temp.policy.triggerTrapSignatures.length == 0){
+ $scope.jsonData = data;
+ if($scope.jsonData.triggerSignaturesUsedForUI != null){
+ if($scope.jsonData.triggerSignaturesUsedForUI.signatures != null){
+ $scope.temp.policy.triggerTrapSignatures = {Trap1 : [], Trap2 : [], Trap3 : [], Trap4 : [], Trap5 : [], Trap6 : []};
+ var splitTraps = $scope.jsonData.triggerSignaturesUsedForUI.signatures.split("#!?!");
+ if(splitTraps.length > 1){
+ $scope.triggerdisabled = false;
+ var indexId = "Trap1";
+ trapCollection.push(indexId);
+ $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+1});
+ var splitTrap1 = splitTraps[0];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerTrapSignatures["Trap1"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if(splitTraps.length > 2){
+ var indexId = "Trap2";
+ trapCollection.push(indexId);
+ $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+2});
+ var splitTrap1 = splitTraps[1];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] == ''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerTrapSignatures["Trap2"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if(splitTraps.length > 3){
+ var indexId = "Trap3";
+ trapCollection.push(indexId);
+ $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+3});
+ var splitTrap1 = splitTraps[2];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerTrapSignatures["Trap3"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if(splitTraps.length > 4){
+ var indexId = "Trap4";
+ trapCollection.push(indexId);
+ $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+4});
+ var splitTrap1 = splitTraps[3];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerTrapSignatures["Trap4"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if(splitTraps.length > 5){
+ var indexId = "Trap5";
+ trapCollection.push(indexId);
+ $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+5});
+ var splitTrap1 = splitTraps[4];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerTrapSignatures["Trap5"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if(splitTraps.length > 6){
+ var indexId = "Trap6";
+ trapCollection.push(indexId);
+ $scope.temp.policy.triggerTrapSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+6});
+ var splitTrap1 = splitTraps[5];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerTrapSignatures["Trap6"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if($scope.jsonData.triggerSignaturesUsedForUI.connectSignatures != null){
+ var splitConnectTraps = $scope.jsonData.triggerSignaturesUsedForUI.connectSignatures.split("#!?!");
+ for(i=0; i < splitConnectTraps.length; i++){
+ if(splitConnectTraps[i] != ""){
+ var newConnectTrapItemNo = i+1;
+ var connects = splitConnectTraps[i].split("@!");
+ if(connects[0] == 'NOT' || connects[0] ==''){
+ var notBox = connects[0];
+ var connectTrap1 = connects[1];
+ var trapCount1 = connects[2];
+ var operatorBox = connects[3];
+ var connectTrap2 = connects[4];
+ var trapCount2 = connects[5];
+ }else{
+ var notBox = '';
+ var connectTrap1 = connects[0];
+ var trapCount1 = connects[1];
+ var operatorBox = connects[2];
+ var connectTrap2 = connects[3];
+ var trapCount2 = connects[4];
+ }
+ $scope.temp.policy.connecttriggerSignatures.push({'id':'C'+newConnectTrapItemNo,'notBox' : notBox , 'connectTrap1': connectTrap1,'trapCount1' : trapCount1,
+ 'operatorBox': operatorBox, 'connectTrap2': connectTrap2,'trapCount2' : trapCount2});
+ }
+ }
+ }
+ }
+ }
+ if($scope.jsonData.verificationSignaturesUsedForUI != null){
+ if($scope.jsonData.verificationSignaturesUsedForUI.signatures != null){
+ $scope.temp.policy.triggerfaultSignatures = {Fault1 : [], Fault2 : [], Fault3 : [], Fault4 : [], Fault5 : [], Fault6 : []};
+ var splitTraps = $scope.jsonData.verificationSignaturesUsedForUI.signatures.split("#!?!");
+ if(splitTraps.length > 1){
+ $scope.verificationdisabled = false;
+ var indexId = "Fault1";
+ faultCollection.push(indexId);
+ $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+1});
+ var splitTrap1 = splitTraps[0];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerfaultSignatures["Fault1"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if(splitTraps.length > 2){
+ var indexId = "Fault2";
+ faultCollection.push(indexId);
+ $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+2});
+ var splitTrap1 = splitTraps[1];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] == ''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerfaultSignatures["Fault2"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if(splitTraps.length > 3){
+ var indexId = "Fault3";
+ faultCollection.push(indexId);
+ $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+3});
+ var splitTrap1 = splitTraps[2];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerfaultSignatures["Fault3"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if(splitTraps.length > 4){
+ var indexId = "Fault4";
+ faultCollection.push(indexId);
+ $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+4});
+ var splitTrap1 = splitTraps[3];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerfaultSignatures["Fault4"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if(splitTraps.length > 5){
+ var indexId = "Fault5";
+ faultCollection.push(indexId);
+ $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+5});
+ var splitTrap1 = splitTraps[4];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerfaultSignatures["Fault5"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
+ if(splitTraps.length > 6){
+ var indexId = "Fault6";
+ faultCollection.push(indexId);
+ $scope.temp.policy.triggerfaultSignatures[indexId.replace(/['"]+/g, '')] = [];
+ $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+6});
+ var splitTrap1 = splitTraps[5];
+ var splitEachTrap = splitTrap1.split("#!");
+ for(i = 0 ; i < splitEachTrap.length; i++){
+ var splitEachRow = splitEachTrap[i].split("@!");
+ var count = i +1;
+ if(splitEachRow[0] == 'NOT' || splitEachRow[0] ==''){
+ var notBox = splitEachRow[0];
+ var trigger1 = splitEachRow[1];
+ var operatorBox = splitEachRow[2];
+ var trigger2 = splitEachRow[3];
+ }else{
+ var notBox = '';
+ var trigger1 = splitEachRow[0];
+ var operatorBox = splitEachRow[1];
+ var trigger2 = splitEachRow[2];
+ }
+ $scope.varbindDictionaryDatas.push('A'+count);
+ $scope.temp.policy.triggerfaultSignatures["Fault6"].push({'id':'A'+count, 'notBox' : notBox , 'trigger1': trigger1 , 'operatorBox' : operatorBox, 'trigger2': trigger2});
+ }
+ }
- if($scope.jsonData.verificationSignaturesUsedForUI.connectSignatures != null){
- var splitConnectTraps = $scope.jsonData.verificationSignaturesUsedForUI.connectSignatures.split("#!?!");
- for(i=0; i < splitConnectTraps.length; i++){
- if(splitConnectTraps[i] != ""){
- var newConnectTrapItemNo = i+1;
- var connects = splitConnectTraps[i].split("@!");
- if(connects[0] == 'NOT' || connects[0] ==''){
- var notBox = connects[0];
- var connectTrap1 = connects[1];
- var trapCount1 = connects[2];
- var operatorBox = connects[3];
- var connectTrap2 = connects[4];
- var trapCount2 = connects[5];
- }else{
- var notBox = '';
- var connectTrap1 = connects[0];
- var trapCount1 = connects[1];
- var operatorBox = connects[2];
- var connectTrap2 = connects[3];
- var trapCount2 = connects[4];
- }
- $scope.temp.policy.connectVerificationSignatures.push({'id':'C'+newConnectTrapItemNo,'notBox' : notBox , 'connectTrap1': connectTrap1,'trapCount1' : trapCount1,
- 'operatorBox': operatorBox, 'connectTrap2': connectTrap2,'trapCount2' : trapCount2});
- }
- }
- }
- }
- }
- }
+ if($scope.jsonData.verificationSignaturesUsedForUI.connectSignatures != null){
+ var splitConnectTraps = $scope.jsonData.verificationSignaturesUsedForUI.connectSignatures.split("#!?!");
+ for(i=0; i < splitConnectTraps.length; i++){
+ if(splitConnectTraps[i] != ""){
+ var newConnectTrapItemNo = i+1;
+ var connects = splitConnectTraps[i].split("@!");
+ if(connects[0] == 'NOT' || connects[0] ==''){
+ var notBox = connects[0];
+ var connectTrap1 = connects[1];
+ var trapCount1 = connects[2];
+ var operatorBox = connects[3];
+ var connectTrap2 = connects[4];
+ var trapCount2 = connects[5];
+ }else{
+ var notBox = '';
+ var connectTrap1 = connects[0];
+ var trapCount1 = connects[1];
+ var operatorBox = connects[2];
+ var connectTrap2 = connects[3];
+ var trapCount2 = connects[4];
+ }
+ $scope.temp.policy.connectVerificationSignatures.push({'id':'C'+newConnectTrapItemNo,'notBox' : notBox , 'connectTrap1': connectTrap1,'trapCount1' : trapCount1,
+ 'operatorBox': operatorBox, 'connectTrap2': connectTrap2,'trapCount2' : trapCount2});
+ }
+ }
+ }
+ }
+ }
+ }
- };
+ };
- if($scope.temp.policy.readOnly){
- $scope.triggerdisabled = true;
- $scope.verificationdisabled = true;
- }else{
- $scope.triggerdisabled = false;
- $scope.verificationdisabled = false;
- }
-
+ if($scope.temp.policy.readOnly){
+ $scope.triggerdisabled = true;
+ $scope.verificationdisabled = true;
+ }else{
+ $scope.triggerdisabled = false;
+ $scope.verificationdisabled = false;
+ }
+
- PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
- console.log($scope.onapNameDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_PEPOptionsDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.pepOptionsDictionaryDatas = JSON.parse($scope.data.pepOptionsDictionaryDatas);
- console.log($scope.pepOptionsDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_PEPOptionsDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.pepOptionsDictionaryDatas = JSON.parse($scope.data.pepOptionsDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_PEPOptionsData').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.pepOptionsDictionaryDataEntity = JSON.parse($scope.data.pepOptionsDictionaryDatas);
- console.log($scope.pepOptionsDictionaryDataEntity);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_PEPOptionsData').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.pepOptionsDictionaryDataEntity = JSON.parse($scope.data.pepOptionsDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_VarbindDictionaryDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.varbindDictionaryDatas = JSON.parse($scope.data.varbindDictionaryDatas);
- console.log($scope.varbindDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_VarbindDictionaryDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.varbindDictionaryDatas = JSON.parse($scope.data.varbindDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas);
- console.log($scope.vnfTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas);
- console.log($scope.vsclActionDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
- console.log($scope.riskTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
+ });
- $scope.pepActionDictionaryDatas = [];
-
- $scope.getPepActionValues = function(pepOptionValue){
- for (var i = 0; i < $scope.pepOptionsDictionaryDataEntity.length; ++i) {
- var obj = $scope.pepOptionsDictionaryDataEntity[i];
- if (obj.pepName == pepOptionValue){
- var splitAlarm = obj.actions.split(':#@');
- for (var j = 0; j < splitAlarm.length; ++j) {
- $scope.pepActionDictionaryDatas.push(splitAlarm[j].split('=#@')[0]);
- }
- }
- }
- };
+ $scope.pepActionDictionaryDatas = [];
- function trapData(){
- var data = {};
- if($scope.temp.policy.triggerTrapSignatures.length == 1 || $scope.temp.policy.triggerTrapSignatures["Trap1"] != null){
- data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1 }
- }
- if($scope.temp.policy.triggerTrapSignatures.length == 2 || $scope.temp.policy.triggerTrapSignatures["Trap2"] != null){
- data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2}
- }
- if($scope.temp.policy.triggerTrapSignatures.length == 3 || $scope.temp.policy.triggerTrapSignatures["Trap3"] != null){
- data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
- trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3}
- }
- if($scope.temp.policy.triggerTrapSignatures.length == 4 || $scope.temp.policy.triggerTrapSignatures["Trap4"] != null){
- data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
- trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4}
- }
- if($scope.temp.policy.triggerTrapSignatures.length == 5 || $scope.temp.policy.triggerTrapSignatures["Trap5"] != null){
- data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
- trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4,
- trap5 : $scope.temp.policy.triggerTrapSignatures.Trap5}
- }
- if($scope.temp.policy.triggerTrapSignatures.length == 6 || $scope.temp.policy.triggerTrapSignatures["Trap6"] != null){
- data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
- trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4,
- trap5 : $scope.temp.policy.triggerTrapSignatures.Trap5, trap6 : $scope.temp.policy.triggerTrapSignatures.Trap6}
- }
- return data;
- }
-
- function faultDatas(){
- var faultData = {};
- if($scope.temp.policy.triggerfaultSignatures.length == 1 || $scope.temp.policy.triggerfaultSignatures["Fault1"] != null){
- faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1 }
- }
- if($scope.temp.policy.triggerfaultSignatures.length == 2 || $scope.temp.policy.triggerfaultSignatures["Fault2"] != null){
- faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2}
- }
- if($scope.temp.policy.triggerfaultSignatures.length == 3 || $scope.temp.policy.triggerfaultSignatures["Fault3"] != null){
- faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
- trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3}
- }
- if($scope.temp.policy.triggerTrapSignatures.length == 4 || $scope.temp.policy.triggerfaultSignatures["Fault4"] != null){
- faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
- trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4}
- }
- if($scope.temp.policy.triggerfaultSignatures.length == 5 || $scope.temp.policy.triggerfaultSignatures["Fault5"] != null){
- faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
- trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4,
- trap5 : $scope.temp.policy.triggerfaultSignatures.Fault5}
- }
- if($scope.temp.policy.triggerfaultSignatures.length == 6 || $scope.temp.policy.triggerfaultSignatures["Fault6"] != null){
- faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
- trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4,
- trap5 : $scope.temp.policy.triggerfaultSignatures.Fault5, trap6 : $scope.temp.policy.triggerfaultSignatures.Fault6}
- }
- return faultData;
- }
-
- $scope.saveFaultPolicy = function(policy){
- if(policy.itemContent != undefined){
- $scope.refreshCheck = true;
- $scope.policyNavigator = policy.itemContent;
- policy.itemContent = "";
- }
- $scope.savebutton = false;
- var data = trapData();
- var faultData = faultDatas();
- var uuu = "policycreation/save_policy";
- var postData={policyData: policy,
- trapData : data,
- faultData : faultData
- };
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.data=data.policyData;
- if($scope.data == 'success'){
- $scope.temp.policy.readOnly = 'true';
- $scope.pushStatus=data.policyData.split("&")[1];
- if($scope.pushStatus=="successPush"){
- Notification.success("Policy pushed successfully");
- }
- $scope.triggerdisabled = true;
- $scope.verificationdisabled = true;
- Notification.success("Policy Saved Successfully.");
- }else if ($scope.data == 'PolicyExists'){
- $scope.savebutton = true;
- Notification.error("Policy Already Exists with Same Name in Scope.");
- }
- });
- console.log($scope.data);
- },
- error : function(data){
- Notification.error("Error Occured while saving Policy.");
- }
- });
- };
-
- $scope.validatePolicy = function(policy){
- console.log(policy);
- document.getElementById("validate").innerHTML = "";
- var uuu = "policyController/validate_policy.htm";
- var data = trapData();
- var faultData = faultDatas();
- var postData={policyData: policy, trapData : data, faultData : faultData};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.validateData = data.data.replace(/\"/g, "");
- $scope.data=data.data.substring(1,8);
- var size = data.data.length;
- if($scope.data == 'success'){
- Notification.success("Validation Success.");
- $scope.savebutton = false;
- if (size > 18){
- var displayWarning = data.data.substring(19,size);
- document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "skyblue";
- }
- }else{
- Notification.error("Validation Failed.");
- document.getElementById("validate").innerHTML = $scope.validateData;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "red";
- $scope.savebutton = true;
- }
+ $scope.getPepActionValues = function(pepOptionValue){
+ for (var i = 0; i < $scope.pepOptionsDictionaryDataEntity.length; ++i) {
+ var obj = $scope.pepOptionsDictionaryDataEntity[i];
+ if (obj.pepName == pepOptionValue){
+ var splitAlarm = obj.actions.split(':#@');
+ for (var j = 0; j < splitAlarm.length; ++j) {
+ $scope.pepActionDictionaryDatas.push(splitAlarm[j].split('=#@')[0]);
+ }
+ }
+ }
+ };
- });
- console.log($scope.data);
- },
- error : function(data){
- Notification.error("Validation Failed.");
- $scope.savebutton = true;
- }
- });
- };
- if($scope.connectTriggerTrapsList == undefined){
- $scope.connectTriggerTrapsList = [];
- }
- if($scope.temp.policy.traptriggerSignatures == undefined){
- $scope.temp.policy.traptriggerSignatures = [];
- }
-
- $scope.ItemNo = 0;
- $scope.TriggerSignatureDatas = [{"triggerSignatures" : $scope.temp.policy.traptriggerSignatures}];
- $scope.addTriggerButton = function() {
- $scope.triggerdisabled = false;
- var newItemNo = $scope.temp.policy.traptriggerSignatures.length+1;
- $scope.ItemNo = newItemNo;
- $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+newItemNo});
- $scope.connectTriggerTrapsList.push('Trap'+newItemNo);
- };
- $scope.removeTriggerButton = function() {
- var lastItem = $scope.temp.policy.traptriggerSignatures.length-1;
- $scope.temp.policy.traptriggerSignatures.splice(lastItem);
- $scope.connectTriggerTrapsList.splice('Trap'+lastItem);
- };
+ function trapData(){
+ var data = {};
+ if($scope.temp.policy.triggerTrapSignatures.length == 1 || $scope.temp.policy.triggerTrapSignatures["Trap1"] != null){
+ data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1 }
+ }
+ if($scope.temp.policy.triggerTrapSignatures.length == 2 || $scope.temp.policy.triggerTrapSignatures["Trap2"] != null){
+ data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2}
+ }
+ if($scope.temp.policy.triggerTrapSignatures.length == 3 || $scope.temp.policy.triggerTrapSignatures["Trap3"] != null){
+ data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
+ trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3}
+ }
+ if($scope.temp.policy.triggerTrapSignatures.length == 4 || $scope.temp.policy.triggerTrapSignatures["Trap4"] != null){
+ data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
+ trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4}
+ }
+ if($scope.temp.policy.triggerTrapSignatures.length == 5 || $scope.temp.policy.triggerTrapSignatures["Trap5"] != null){
+ data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
+ trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4,
+ trap5 : $scope.temp.policy.triggerTrapSignatures.Trap5}
+ }
+ if($scope.temp.policy.triggerTrapSignatures.length == 6 || $scope.temp.policy.triggerTrapSignatures["Trap6"] != null){
+ data = {trap1 : $scope.temp.policy.triggerTrapSignatures.Trap1, trap2 : $scope.temp.policy.triggerTrapSignatures.Trap2,
+ trap3 : $scope.temp.policy.triggerTrapSignatures.Trap3, trap4 : $scope.temp.policy.triggerTrapSignatures.Trap4,
+ trap5 : $scope.temp.policy.triggerTrapSignatures.Trap5, trap6 : $scope.temp.policy.triggerTrapSignatures.Trap6}
+ }
+ return data;
+ }
+
+ function faultDatas(){
+ var faultData = {};
+ if($scope.temp.policy.triggerfaultSignatures.length == 1 || $scope.temp.policy.triggerfaultSignatures["Fault1"] != null){
+ faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1 }
+ }
+ if($scope.temp.policy.triggerfaultSignatures.length == 2 || $scope.temp.policy.triggerfaultSignatures["Fault2"] != null){
+ faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2}
+ }
+ if($scope.temp.policy.triggerfaultSignatures.length == 3 || $scope.temp.policy.triggerfaultSignatures["Fault3"] != null){
+ faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
+ trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3}
+ }
+ if($scope.temp.policy.triggerTrapSignatures.length == 4 || $scope.temp.policy.triggerfaultSignatures["Fault4"] != null){
+ faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
+ trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4}
+ }
+ if($scope.temp.policy.triggerfaultSignatures.length == 5 || $scope.temp.policy.triggerfaultSignatures["Fault5"] != null){
+ faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
+ trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4,
+ trap5 : $scope.temp.policy.triggerfaultSignatures.Fault5}
+ }
+ if($scope.temp.policy.triggerfaultSignatures.length == 6 || $scope.temp.policy.triggerfaultSignatures["Fault6"] != null){
+ faultData = {trap1 : $scope.temp.policy.triggerfaultSignatures.Fault1, trap2 : $scope.temp.policy.triggerfaultSignatures.Fault2,
+ trap3 : $scope.temp.policy.triggerfaultSignatures.Fault3, trap4 : $scope.temp.policy.triggerfaultSignatures.Fault4,
+ trap5 : $scope.temp.policy.triggerfaultSignatures.Fault5, trap6 : $scope.temp.policy.triggerfaultSignatures.Fault6}
+ }
+ return faultData;
+ }
+
+ $scope.saveFaultPolicy = function(policy){
+ if(policy.itemContent != undefined){
+ $scope.refreshCheck = true;
+ $scope.policyNavigator = policy.itemContent;
+ policy.itemContent = "";
+ }
+ $scope.savebutton = false;
+ var data = trapData();
+ var faultData = faultDatas();
+ var uuu = "policycreation/save_policy";
+ var postData={policyData: policy,
+ trapData : data,
+ faultData : faultData
+ };
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.data=data.policyData;
+ if($scope.data == 'success'){
+ $scope.temp.policy.readOnly = 'true';
+ $scope.pushStatus=data.policyData.split("&")[1];
+ if($scope.pushStatus=="successPush"){
+ Notification.success("Policy pushed successfully");
+ }
+ $scope.triggerdisabled = true;
+ $scope.verificationdisabled = true;
+ Notification.success("Policy Saved Successfully.");
+ }else if ($scope.data == 'PolicyExists'){
+ $scope.savebutton = true;
+ Notification.error("Policy Already Exists with Same Name in Scope.");
+ }
+ });
+ },
+ error : function(data){
+ Notification.error("Error Occured while saving Policy.");
+ }
+ });
+ };
-
- $scope.trapItemNo = 0;
- $scope.TrapTriggerSignatureDatas = [{"triggermainSignatures" : $scope.temp.policy.triggerTrapSignatures}];
- $scope.addTrapTriggerButton = function(indexId) {
- if(trapCollection.indexOf(indexId) !== -1){
+ $scope.validatePolicy = function(policy){
+ document.getElementById("validate").innerHTML = "";
+ var uuu = "policyController/validate_policy.htm";
+ var data = trapData();
+ var faultData = faultDatas();
+ var postData={policyData: policy, trapData : data, faultData : faultData};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.validateData = data.data.replace(/\"/g, "");
+ $scope.data=data.data.substring(1,8);
+ var size = data.data.length;
+ if($scope.data == 'success'){
+ Notification.success("Validation Success.");
+ $scope.savebutton = false;
+ if (size > 18){
+ var displayWarning = data.data.substring(19,size);
+ document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "skyblue";
+ }
+ }else{
+ Notification.error("Validation Failed.");
+ document.getElementById("validate").innerHTML = $scope.validateData;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "red";
+ $scope.savebutton = true;
+ }
- }else{
- $scope.temp.policy.triggerTrapSignatures[indexId] = [];
- trapCollection.push(indexId);
- }
- var newTrapItemNo = $scope.temp.policy.triggerTrapSignatures[indexId].length+1;
- $scope.trapItemNo = newTrapItemNo;
- $scope.temp.policy.triggerTrapSignatures.push($scope.temp.policy.triggerTrapSignatures[indexId].push({'id':'A'+newTrapItemNo}));
- if(newTrapItemNo > 1){
- var count = newTrapItemNo-1;
- $scope.varbindDictionaryDatas.push('A'+count);
- }
- };
- $scope.removeTrapTriggerButton = function(indexId) {
- var lastTrapItem = $scope.temp.policy.triggerTrapSignatures[indexId].length-1;
- var checkLastTrapItem = lastTrapItem;
- if(checkLastTrapItem == 0){
- trapCollection.splice(indexId);
- }
- $scope.temp.policy.triggerTrapSignatures[indexId].splice(lastTrapItem);
- };
+ });
+ },
+ error : function(data){
+ Notification.error("Validation Failed.");
+ $scope.savebutton = true;
+ }
+ });
+ };
+ if($scope.connectTriggerTrapsList == undefined){
+ $scope.connectTriggerTrapsList = [];
+ }
+ if($scope.temp.policy.traptriggerSignatures == undefined){
+ $scope.temp.policy.traptriggerSignatures = [];
+ }
+
+ $scope.ItemNo = 0;
+ $scope.TriggerSignatureDatas = [{"triggerSignatures" : $scope.temp.policy.traptriggerSignatures}];
+ $scope.addTriggerButton = function() {
+ $scope.triggerdisabled = false;
+ var newItemNo = $scope.temp.policy.traptriggerSignatures.length+1;
+ $scope.ItemNo = newItemNo;
+ $scope.temp.policy.traptriggerSignatures.push({'id':'Trap'+newItemNo});
+ $scope.connectTriggerTrapsList.push('Trap'+newItemNo);
+ };
+ $scope.removeTriggerButton = function() {
+ var lastItem = $scope.temp.policy.traptriggerSignatures.length-1;
+ $scope.temp.policy.traptriggerSignatures.splice(lastItem);
+ $scope.connectTriggerTrapsList.splice('Trap'+lastItem);
+ };
- if($scope.temp.policy.connecttriggerSignatures == undefined){
- $scope.temp.policy.connecttriggerSignatures = [];
- }
-
- $scope.connecttrapItemNo = 0;
- $scope.TrapConnectTriggerSignatureDatas = [{"connecttriggerSignatures" : $scope.temp.policy.connecttriggerSignatures}];
- $scope.addTriggerConnectButton = function() {
- var newConnectTrapItemNo = $scope.temp.policy.connecttriggerSignatures.length+1;
- $scope.connecttrapItemNo = newConnectTrapItemNo;
- $scope.temp.policy.connecttriggerSignatures.push({'id':'C'+newConnectTrapItemNo});
- if(newConnectTrapItemNo >1){
- var count = newConnectTrapItemNo-1;
- $scope.connectTriggerTrapsList.push('C'+count);
- }
- };
- $scope.removeTriggerConnectButton = function() {
- var lastConnectTrapItem = $scope.temp.policy.connecttriggerSignatures.length-1;
- $scope.temp.policy.connecttriggerSignatures.splice(lastConnectTrapItem);
- if(lastConnectTrapItem < 1){
- var count = lastConnectTrapItem-1;
- $scope.connectTriggerTrapsList.splice('C'+count);
- }
- };
- if($scope.connectTriggerFaultsList == undefined){
- $scope.connectTriggerFaultsList = [];
- }
- if($scope.temp.policy.faulttriggerSignatures == undefined){
- $scope.temp.policy.faulttriggerSignatures = [];
- }
-
- $scope.FaultItemNo = 0;
- $scope.FaultSignatureDatas = [{"verificationmainSignatures" : $scope.temp.policy.faulttriggerSignatures}];
- $scope.addVerFaultButton = function() {
- var newFaultItemNo = $scope.temp.policy.faulttriggerSignatures.length+1;
- $scope.FaultItemNo = newFaultItemNo;
- $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+newFaultItemNo});
- $scope.connectTriggerFaultsList.push('Fault'+newFaultItemNo);
- };
- $scope.removeVerFaultButton = function() {
- var lastFaultItem = $scope.temp.policy.faulttriggerSignatures.length-1;
- $scope.temp.policy.faulttriggerSignatures.splice(lastFaultItem);
- $scope.connectTriggerFaultsList.splice('Fault'+lastFaultItem);
- };
- if($scope.temp.policy.triggerfaultSignatures == undefined){
- $scope.temp.policy.triggerfaultSignatures = [];
- }
-
- $scope.faultItemNo1 = 0;
- $scope.FaultTriggerSignatureDatas = [{"verificationSignatures" : $scope.temp.policy.triggerfaultSignatures}];
- $scope.addVerTriggerButton = function(indexId) {
- $scope.verificationdisabled = false;
- if(faultCollection.indexOf(indexId) !== -1){
+
+ $scope.trapItemNo = 0;
+ $scope.TrapTriggerSignatureDatas = [{"triggermainSignatures" : $scope.temp.policy.triggerTrapSignatures}];
+ $scope.addTrapTriggerButton = function(indexId) {
+ if(trapCollection.indexOf(indexId) === -1){
+ $scope.temp.policy.triggerTrapSignatures[indexId] = [];
+ trapCollection.push(indexId);
+ }
+ var newTrapItemNo = $scope.temp.policy.triggerTrapSignatures[indexId].length+1;
+ $scope.trapItemNo = newTrapItemNo;
+ $scope.temp.policy.triggerTrapSignatures.push($scope.temp.policy.triggerTrapSignatures[indexId].push({'id':'A'+newTrapItemNo}));
+ if(newTrapItemNo > 1){
+ var count = newTrapItemNo-1;
+ $scope.varbindDictionaryDatas.push('A'+count);
+ }
+ };
+ $scope.removeTrapTriggerButton = function(indexId) {
+ var lastTrapItem = $scope.temp.policy.triggerTrapSignatures[indexId].length-1;
+ var checkLastTrapItem = lastTrapItem;
+ if(checkLastTrapItem == 0){
+ trapCollection.splice(indexId);
+ }
+ $scope.temp.policy.triggerTrapSignatures[indexId].splice(lastTrapItem);
+ };
- }else{
- $scope.temp.policy.triggerfaultSignatures[indexId] = [];
- faultCollection.push(indexId);
- }
- var newFaultItemNo1 = $scope.temp.policy.triggerfaultSignatures[indexId].length+1;
- $scope.faultItemNo1 = newFaultItemNo1;
- $scope.temp.policy.triggerfaultSignatures.push($scope.temp.policy.triggerfaultSignatures[indexId].push({'id':'A'+newFaultItemNo1}));
- if(newFaultItemNo1 > 1){
- var count = newFaultItemNo1-1;
- $scope.varbindDictionaryDatas.push('A'+count);
- }
- };
- $scope.removeVerTriggerButton = function(indexId) {
- var lastFaultItem1 = $scope.temp.policy.triggerfaultSignatures[indexId].length-1;
- var checkLastFaultItem = lastFaultItem1;
- if(checkLastFaultItem == 0){
- faultCollection.splice(indexId);
- }
- $scope.temp.policy.triggerfaultSignatures[indexId].splice(lastFaultItem1);
- };
+ if($scope.temp.policy.connecttriggerSignatures == undefined){
+ $scope.temp.policy.connecttriggerSignatures = [];
+ }
+
+ $scope.connecttrapItemNo = 0;
+ $scope.TrapConnectTriggerSignatureDatas = [{"connecttriggerSignatures" : $scope.temp.policy.connecttriggerSignatures}];
+ $scope.addTriggerConnectButton = function() {
+ var newConnectTrapItemNo = $scope.temp.policy.connecttriggerSignatures.length+1;
+ $scope.connecttrapItemNo = newConnectTrapItemNo;
+ $scope.temp.policy.connecttriggerSignatures.push({'id':'C'+newConnectTrapItemNo});
+ if(newConnectTrapItemNo >1){
+ var count = newConnectTrapItemNo-1;
+ $scope.connectTriggerTrapsList.push('C'+count);
+ }
+ };
+ $scope.removeTriggerConnectButton = function() {
+ var lastConnectTrapItem = $scope.temp.policy.connecttriggerSignatures.length-1;
+ $scope.temp.policy.connecttriggerSignatures.splice(lastConnectTrapItem);
+ if(lastConnectTrapItem < 1){
+ var count = lastConnectTrapItem-1;
+ $scope.connectTriggerTrapsList.splice('C'+count);
+ }
+ };
+ if($scope.connectTriggerFaultsList == undefined){
+ $scope.connectTriggerFaultsList = [];
+ }
+ if($scope.temp.policy.faulttriggerSignatures == undefined){
+ $scope.temp.policy.faulttriggerSignatures = [];
+ }
+
+ $scope.FaultItemNo = 0;
+ $scope.FaultSignatureDatas = [{"verificationmainSignatures" : $scope.temp.policy.faulttriggerSignatures}];
+ $scope.addVerFaultButton = function() {
+ var newFaultItemNo = $scope.temp.policy.faulttriggerSignatures.length+1;
+ $scope.FaultItemNo = newFaultItemNo;
+ $scope.temp.policy.faulttriggerSignatures.push({'id':'Fault'+newFaultItemNo});
+ $scope.connectTriggerFaultsList.push('Fault'+newFaultItemNo);
+ };
+ $scope.removeVerFaultButton = function() {
+ var lastFaultItem = $scope.temp.policy.faulttriggerSignatures.length-1;
+ $scope.temp.policy.faulttriggerSignatures.splice(lastFaultItem);
+ $scope.connectTriggerFaultsList.splice('Fault'+lastFaultItem);
+ };
+ if($scope.temp.policy.triggerfaultSignatures == undefined){
+ $scope.temp.policy.triggerfaultSignatures = [];
+ }
+
+ $scope.faultItemNo1 = 0;
+ $scope.FaultTriggerSignatureDatas = [{"verificationSignatures" : $scope.temp.policy.triggerfaultSignatures}];
+ $scope.addVerTriggerButton = function(indexId) {
+ $scope.verificationdisabled = false;
+ if(faultCollection.indexOf(indexId) === -1){
+ $scope.temp.policy.triggerfaultSignatures[indexId] = [];
+ faultCollection.push(indexId);
+ }
+ var newFaultItemNo1 = $scope.temp.policy.triggerfaultSignatures[indexId].length+1;
+ $scope.faultItemNo1 = newFaultItemNo1;
+ $scope.temp.policy.triggerfaultSignatures.push($scope.temp.policy.triggerfaultSignatures[indexId].push({'id':'A'+newFaultItemNo1}));
+ if(newFaultItemNo1 > 1){
+ var count = newFaultItemNo1-1;
+ $scope.varbindDictionaryDatas.push('A'+count);
+ }
+ };
+ $scope.removeVerTriggerButton = function(indexId) {
+ var lastFaultItem1 = $scope.temp.policy.triggerfaultSignatures[indexId].length-1;
+ var checkLastFaultItem = lastFaultItem1;
+ if(checkLastFaultItem == 0){
+ faultCollection.splice(indexId);
+ }
+ $scope.temp.policy.triggerfaultSignatures[indexId].splice(lastFaultItem1);
+ };
- if($scope.temp.policy.connectVerificationSignatures == undefined){
- $scope.temp.policy.connectVerificationSignatures = [];
- }
-
- $scope.connectFaultItemNo = 0;
- $scope.FaultConnectTriggerSignatureDatas = [{"connectVerificationSignatures" : $scope.temp.policy.connectVerificationSignatures}];
- $scope.addFaultConnectButton = function() {
- var newConnectFaultItemNo = $scope.temp.policy.connectVerificationSignatures.length+1;
- $scope.connectFaultItemNo = newConnectFaultItemNo;
- $scope.temp.policy.connectVerificationSignatures.push({'id':'C'+newConnectFaultItemNo});
- if(newConnectFaultItemNo >1){
- var count = newConnectFaultItemNo-1;
- $scope.connectTriggerFaultsList.push('C'+count);
- }
- };
- $scope.removeFaultConnectButton = function() {
- var lastConnectFaultItem = $scope.temp.policy.connectVerificationSignatures.length-1;
- $scope.temp.policy.connectVerificationSignatures.splice(lastConnectFaultItem);
- if(lastConnectFaultItem < 1){
- var count = lastConnectFaultItem-1;
- $scope.connectTriggerFaultsList.splice('C'+count);
- }
- };
+ if($scope.temp.policy.connectVerificationSignatures == undefined){
+ $scope.temp.policy.connectVerificationSignatures = [];
+ }
+
+ $scope.connectFaultItemNo = 0;
+ $scope.FaultConnectTriggerSignatureDatas = [{"connectVerificationSignatures" : $scope.temp.policy.connectVerificationSignatures}];
+ $scope.addFaultConnectButton = function() {
+ var newConnectFaultItemNo = $scope.temp.policy.connectVerificationSignatures.length+1;
+ $scope.connectFaultItemNo = newConnectFaultItemNo;
+ $scope.temp.policy.connectVerificationSignatures.push({'id':'C'+newConnectFaultItemNo});
+ if(newConnectFaultItemNo >1){
+ var count = newConnectFaultItemNo-1;
+ $scope.connectTriggerFaultsList.push('C'+count);
+ }
+ };
+ $scope.removeFaultConnectButton = function() {
+ var lastConnectFaultItem = $scope.temp.policy.connectVerificationSignatures.length-1;
+ $scope.temp.policy.connectVerificationSignatures.splice(lastConnectFaultItem);
+ if(lastConnectFaultItem < 1){
+ var count = lastConnectFaultItem-1;
+ $scope.connectTriggerFaultsList.splice('C'+count);
+ }
+ };
-}]); \ No newline at end of file
+}]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js
index a67266074..454a724a9 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/ClosedLoopPMController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -29,7 +29,7 @@ angular.module("abs").controller('clPMController', ['$scope', '$window', '$timeo
policyType : "Config",
configPolicyType : "ClosedLoop_PM"
}
- };
+ }
$scope.refresh = function(){
if($scope.refreshCheck){
@@ -193,4 +193,4 @@ angular.module("abs").controller('clPMController', ['$scope', '$window', '$timeo
});
};
-}]); \ No newline at end of file
+}]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js
index cffa46f53..1e452e830 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DCAEMicroServicePolicyController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2020 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.
@@ -18,7 +18,9 @@
* ============LICENSE_END=========================================================
*/
-angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$window', '$compile', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, $window, $compile, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
+angular.module('abs').controller('dcaeMicroServiceController',
+ ['$scope', '$window', '$compile', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification',
+ function ($scope, $window, $compile, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
$("#dialog").hide();
$scope.policyNavigator;
@@ -29,18 +31,18 @@ angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$wind
var layer = 0;
if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
- $scope.temp.policy = {
- policyType : "Config",
- configPolicyType : "Micro Service"
- }
- };
+ $scope.temp.policy = {
+ policyType : "Config",
+ configPolicyType : "Micro Service"
+ }
+ }
$scope.refresh = function(){
- if($scope.refreshCheck){
- $scope.policyNavigator.refresh();
- }
- $scope.modal('createNewPolicy', true);
- $scope.temp.policy = "";
+ if($scope.refreshCheck){
+ $scope.policyNavigator.refresh();
+ }
+ $scope.modal('createNewPolicy', true);
+ $scope.temp.policy = "";
};
$scope.modal = function(id, hide) {
@@ -48,328 +50,290 @@ angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$wind
};
$('#ttlDate').datepicker({
- dateFormat: 'dd/mm/yy',
- changeMonth: true,
- changeYear: true,
- onSelect: function(date) {
- angular.element($('#ttlDate')).triggerHandler('input');
- }
+ dateFormat: 'dd/mm/yy',
+ changeMonth: true,
+ changeYear: true,
+ onSelect: function(date) {
+ angular.element($('#ttlDate')).triggerHandler('input');
+ }
});
- if ($scope.temp.policy.editPolicy != undefined|| $scope.temp.policy.readOnly != undefined){
- if ($scope.temp.policy.configName == undefined){
- $scope.isCheck = false;
- }else{
- $scope.isCheck = true;
- }
- }else {
- $scope.isCheck = false;
- }
-
- PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
- console.log($scope.onapNameDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ if ($scope.temp.policy.editPolicy != undefined|| $scope.temp.policy.readOnly != undefined){
+ if ($scope.temp.policy.configName == undefined){
+ $scope.isCheck = false;
+ }else{
+ $scope.isCheck = true;
+ }
+ }else {
+ $scope.isCheck = false;
+ }
+
+ PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
+ });
- PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.priorityDatas = JSON.parse($scope.data.priorityDatas);
- console.log($scope.priorityDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.priorityDatas = JSON.parse($scope.data.priorityDatas);
+ });
- PolicyAppService.getData('getDictionary/get_GroupPolicyScopeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.groupPolicyScopeListDatas = JSON.parse($scope.data.groupPolicyScopeListDatas);
- console.log($scope.groupPolicyScopeListDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_GroupPolicyScopeDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.groupPolicyScopeListDatas = JSON.parse($scope.data.groupPolicyScopeListDatas);
+ });
- PolicyAppService.getData('getDictionary/get_MicroServiceConfigNameDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- console.log("$scope.data.microServiceConfigNameDictionaryDatas : " + $scope.data.microServiceConfigNameDictionaryDatas);
- if($scope.data.microServiceConfigNameDictionaryDatas){
- $scope.microServiceCongigNameDictionaryDatas = JSON.parse($scope.data.microServiceConfigNameDictionaryDatas);
- }
- console.log($scope.microServiceCongigNameDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_MicroServiceConfigNameDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ if($scope.data.microServiceConfigNameDictionaryDatas){
+ $scope.microServiceCongigNameDictionaryDatas = JSON.parse($scope.data.microServiceConfigNameDictionaryDatas);
+ }
+ });
- PolicyAppService.getData('getDictionary/get_MicroServiceLocationDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.microServiceLocationDictionaryDatas = JSON.parse($scope.data.microServiceLocationDictionaryDatas);
- console.log($scope.microServiceLocationDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_MicroServiceLocationDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.microServiceLocationDictionaryDatas = JSON.parse($scope.data.microServiceLocationDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_MicroServiceModelsDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- var inputModelList = JSON.parse($scope.data.microServiceModelsDictionaryDatas);
- var unique = {};
- var uniqueList = [];
- for(var i = 0; i < inputModelList.length; i++){
- if(typeof unique[inputModelList[i]] == "undefined"){
- unique[inputModelList[i]] = "";
- uniqueList.push(inputModelList[i]);
- }
- }
- $scope.microServiceModelsDictionaryDatas = uniqueList;
- console.log($scope.microServiceModelsDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_MicroServiceModelsDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ var inputModelList = JSON.parse($scope.data.microServiceModelsDictionaryDatas);
+ var unique = {};
+ var uniqueList = [];
+ for(var i = 0; i < inputModelList.length; i++){
+ if(typeof unique[inputModelList[i]] == "undefined"){
+ unique[inputModelList[i]] = "";
+ uniqueList.push(inputModelList[i]);
+ }
+ }
+ $scope.microServiceModelsDictionaryDatas = uniqueList;
+ });
- PolicyAppService.getData('getDictionary/get_DCAEUUIDDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.dcaeUUIDDictionaryDatas = JSON.parse($scope.data.dcaeUUIDDictionaryDatas);
- console.log($scope.dcaeUUIDDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_DCAEUUIDDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.dcaeUUIDDictionaryDatas = JSON.parse($scope.data.dcaeUUIDDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
- console.log($scope.riskTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_MicroServiceAttributeData').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.microServiceAttributeDictionaryDatas = JSON.parse($scope.data.microServiceAttributeDictionaryDatas);
- console.log($scope.microServiceAttributeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
-
+ PolicyAppService.getData('getDictionary/get_MicroServiceAttributeData').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.microServiceAttributeDictionaryDatas = JSON.parse($scope.data.microServiceAttributeDictionaryDatas);
+ });
+
- $scope.choices = [];
- $scope.attributeDatas = [{"attributes" : $scope.choices}];
- addNewChoice = function(value) {
- console.log("input key : " + value);
- var isFoundInRuleData = false;
- if(value != undefined){
- if (value.startsWith('div.')){
- value = value.replace('div.','');
- }
-
- console.log(" document.getElementById : div."+value);
- var parentElement = document.getElementById("div."+value);
- console.log("parentElement : " + parentElement);
- var div = document.getElementById(value+"@0");
- if(div != null){
- var clone = div.cloneNode(true);
- var addElement = parentElement.childElementCount;
- clone.id = ''+value+'@'+addElement;
- clone.value = '';
- if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ //if it's view or edit
- if($scope.temp.policy.ruleData[clone.id] || $scope.temp.policy.editPolicy){ // Only append child if its value found in ruleData or edit mode
- if($scope.temp.policy.ruleData[clone.id]){
- clone.value = $scope.temp.policy.ruleData[clone.id];
- isFoundInRuleData = true;
- }
- console.log(" clone.value :" + clone.value);
- console.log(" clone.id :" + clone.id);
- if(!isFoundInRuleData && isInitViewEdit){
- return;
- }
- if(!clone.className.includes("child_single")){
- clone.className += ' child_single'; //here cloned is single element
- }
- document.getElementById("div."+value).appendChild(clone);
- plainAttributeKeys.push(''+value+'@'+addElement);
- }
- }else{ //not view or edit
- if(!clone.className.includes("child_single")){
- clone.className += ' child_single'; //here cloned is single element
- }
- document.getElementById("div."+value).appendChild(clone);
- plainAttributeKeys.push(''+value+'@'+addElement);
- }
- }else{
-
- if(parentElement == null){
- return;
- }
- div = document.getElementById("div."+value+"@0");
- if(div){
-
- if(!div.className.includes('children_group border')){
- layer++;
- if(layer > 4){
- layer = 1
- };
- div.className += ' children_group border' + layer; //here is div with a group of children.
- }
- }
- var childElement = parentElement.firstElementChild;
- var countParent = parentElement.childElementCount;
- var childElementString = childElement.innerHTML;
- var find = value+"@0";
- var re = new RegExp(find, 'g');
- childElementString = childElementString.replace(re,value+'@' + countParent);
- var clone = childElement.cloneNode(true);
- for (var ii = 0; ii < parentElement.childNodes.length; ii++){
- var childId = parentElement.childNodes[ii].id;
- if(ii = parentElement.childNodes.length){
- var childnewId = childId.slice(0, -1);
- var count = childId.slice(-1);
- }
- }
- var countvalue = parseInt(count) + 1;
- clone.id = childnewId+countvalue;
- clone.value = '';
- clone.innerHTML=childElementString;
- document.getElementById("div."+value).appendChild(clone);
- var selects = clone.getElementsByTagName("select");
- var inputs = clone.getElementsByTagName("input");
- var removeValues = [];
- for(var i=0; i<inputs.length; i++){
- if ($scope.temp.policy.ruleData!=undefined){
- var checkValue = $scope.temp.policy.ruleData[inputs[i].id];
- console.log(" checkValue.value :" + checkValue);
- console.log(" inputs["+i+"].id :" + inputs[i].id);
- if (checkValue!=undefined && checkValue != "undefined"){
- document.getElementById(inputs[i].id).value = checkValue;
- plainAttributeKeys.push(inputs[i].id);
- } else {
- plainAttributeKeys.push(inputs[i].id);
- }
- }else {
- plainAttributeKeys.push(inputs[i].id);
- }
- }
-
- for(var i=0; i<selects.length; i++){
- if ($scope.temp.policy.ruleData!=undefined){
- var checkValue = $scope.temp.policy.ruleData[selects[i].id];
- if (checkValue!=undefined && checkValue!="undefined"){
- if($scope.temp.policy.ruleData != null){
- var checkValue = $scope.temp.policy.ruleData[selects[i].id];
- var option = document.createElement('option');
- option.setAttribute('value', checkValue);
- option.appendChild(document.createTextNode(checkValue));
- document.getElementById(selects[i].id).appendChild(option);
- document.getElementById(selects[i].id).value = $scope.temp.policy.ruleData[selects[i].id];
- plainAttributeKeys.push(selects[i].id);
- }
- } else {
- plainAttributeKeys.push(selects[i].id);
- }
- }else {
- plainAttributeKeys.push(selects[i].id);
- }
- }
-
- for (var k=0; k<removeValues.length; k++){
- var elem = document.getElementById(removeValues[k]);
- elem.parentNode.removeChild(elem);
- }
- var ele = angular.element(document.getElementById("div."+value));
- $compile(ele.contents())($scope)
- }
- }
- };
-
-
- removeChoice = function(value) {
- console.log(value);
- if(value != undefined){
- var c = document.getElementById("div."+value).childElementCount;
-
- if(c == 1){
- Notification.error("The original one is not removable.");
- return;
- }
- document.getElementById("div."+value).removeChild(document.getElementById("div."+value).lastChild);
- }
- };
-
- function findVal(object, key) {
- var value;
- Object.keys(object).some(function(k) {
- if (k === key) {
- value = object[k];
- return true;
- }
- if (object[k] && typeof object[k] === 'object') {
- value = findVal(object[k], key);
- return value !== undefined;
- }
- });
- return value;
- }
-
- $scope.pullVersion = function(serviceName) {
- console.log(serviceName);
- if(serviceName != undefined){
- var uuu = "policyController/getModelServiceVersioneData.htm";
- var postData={policyData: serviceName};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.microServiceModelsDictionaryVersionDatas = data[0].dcaeModelVersionData;
- });
- },
- error : function(data){
- alert("Error While Retriving the Template Layout Pattren.");
- }
- });
- }
- };
+ $scope.choices = [];
+ $scope.attributeDatas = [{"attributes" : $scope.choices}];
+ addNewChoice = function(value) {
+ var isFoundInRuleData = false;
+ if(value != undefined){
+ if (value.startsWith('div.')){
+ value = value.replace('div.','');
+ }
+
+ var parentElement = document.getElementById("div."+value);
+ var div = document.getElementById(value+"@0");
+ if(div != null){
+ var clone = div.cloneNode(true);
+ var addElement = parentElement.childElementCount;
+ clone.id = ''+value+'@'+addElement;
+ clone.value = '';
+ if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){
+ //if it's vi or edit
+ if($scope.temp.policy.ruleData[clone.id] || $scope.temp.policy.editPolicy){
+ //Only append child if its value found in ruleData or edit mode
+ if($scope.temp.policy.ruleData[clone.id]){
+ clone.value = $scope.temp.policy.ruleData[clone.id];
+ isFoundInRuleData = true;
+ }
+ if(!isFoundInRuleData && isInitViewEdit){
+ return;
+ }
+ if(!clone.className.includes("child_single")){
+ clone.className += ' child_single'; // here cloned is single element
+ }
+ document.getElementById("div."+value).appendChild(clone);
+ plainAttributeKeys.push(''+value+'@'+addElement);
+ }
+ }else{ // not view or edit
+ if(!clone.className.includes("child_single")){
+ clone.className += ' child_single'; // here cloned is single element
+ }
+ document.getElementById("div."+value).appendChild(clone);
+ plainAttributeKeys.push(''+value+'@'+addElement);
+ }
+ }else{
+
+ if(parentElement == null){
+ return;
+ }
+ div = document.getElementById("div."+value+"@0");
+ if(div){
+
+ if(!div.className.includes('children_group border')){
+ layer++;
+ if(layer > 4){
+ layer = 1
+ }
+ div.className += ' children_group border' + layer; // here is div with a group of children.
+ }
+ }
+ var childElement = parentElement.firstElementChild;
+ var countParent = parentElement.childElementCount;
+ var childElementString = childElement.innerHTML;
+ var find = value+"@0";
+ var re = new RegExp(find, 'g');
+ childElementString = childElementString.replace(re,value+'@' + countParent);
+ var clone = childElement.cloneNode(true);
+ for (var ii = 0; ii < parentElement.childNodes.length; ii++){
+ var childId = parentElement.childNodes[ii].id;
+ if(ii = parentElement.childNodes.length){
+ var childnewId = childId.slice(0, -1);
+ var count = childId.slice(-1);
+ }
+ }
+ var countvalue = parseInt(count) + 1;
+ clone.id = childnewId+countvalue;
+ clone.value = '';
+ clone.innerHTML=childElementString;
+ document.getElementById("div."+value).appendChild(clone);
+ var selects = clone.getElementsByTagName("select");
+ var inputs = clone.getElementsByTagName("input");
+ var removeValues = [];
+ for(var i=0; i<inputs.length; i++){
+ plainAttributeKeys.push(inputs[i].id);
+ if ($scope.temp.policy.ruleData!=undefined){
+ var checkValue = $scope.temp.policy.ruleData[inputs[i].id];
+ if (checkValue!=undefined && checkValue != "undefined"){
+ if(checkValue == "false"){
+ document.getElementById(inputs[i].id).removeAttribute("checked");
+ }
+ else if(checkValue == "true"){
+ document.getElementById(inputs[i].id).setAttribute("checked", true);
+ }else{
+ document.getElementById(inputs[i].id).value = checkValue;
+ }
+ } else {
+ if(inputs[i].type == "checkbox"){
+ inputs[i].checked = false;
+ }
+ }
+ }else {
+ document.getElementById(inputs[i].id).removeAttribute("checked");
+ }
+ }
+
+ for(var i=0; i<selects.length; i++){
+ if ($scope.temp.policy.ruleData!=undefined){
+ var checkValue = $scope.temp.policy.ruleData[selects[i].id];
+ if (checkValue!=undefined && checkValue!="undefined"){
+ if($scope.temp.policy.ruleData != null){
+ var checkValue = $scope.temp.policy.ruleData[selects[i].id];
+ var option = document.createElement('option');
+ option.setAttribute('value', checkValue);
+ option.appendChild(document.createTextNode(checkValue));
+ document.getElementById(selects[i].id).appendChild(option);
+ document.getElementById(selects[i].id).value = $scope.temp.policy.ruleData[selects[i].id];
+ plainAttributeKeys.push(selects[i].id);
+ }
+ } else {
+ plainAttributeKeys.push(selects[i].id);
+ }
+ }else {
+ plainAttributeKeys.push(selects[i].id);
+ }
+ }
+
+ for (var k=0; k<removeValues.length; k++){
+ var elem = document.getElementById(removeValues[k]);
+ elem.parentNode.removeChild(elem);
+ }
+ var ele = angular.element(document.getElementById("div."+value));
+ $compile(ele.contents())($scope)
+ }
+ }
+ };
+
+
+ removeChoice = function(value) {
+ if(value != undefined){
+ var c = document.getElementById("div."+value).childElementCount;
+
+ if(c == 1){
+ Notification.error("The original one is not removable.");
+ return;
+ }
+ document.getElementById("div."+value).removeChild(document.getElementById("div."+value).lastChild);
+ }
+ };
+
+ function findVal(object, key) {
+ var value;
+ Object.keys(object).some(function(k) {
+ if (k === key) {
+ value = object[k];
+ return true;
+ }
+ if (object[k] && typeof object[k] === 'object') {
+ value = findVal(object[k], key);
+ return value !== undefined;
+ }
+ });
+ return value;
+ }
+
+ $scope.pullVersion = function(serviceName) {
+ if(serviceName != undefined){
+ var uuu = "policyController/getModelServiceVersioneData.htm";
+ var postData={policyData: serviceName};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.microServiceModelsDictionaryVersionDatas = data[0].dcaeModelVersionData;
+ });
+ },
+ error : function(data){
+ Notification.error("Error While Retriving the Template Layout Pattren.");
+ }
+ });
+ }
+ };
- var splitDash = '-';
- var splitEqual = '=';
- var splitComma = ',';
- var splitcolon = ':';
- var splitsemicolon = ";";
- var splitEnum = "],";
- var plainAttributeKeys = [];
- var matching = [];
- var enumKeyList = [];
- var dictionaryList = [];
- var dictionaryNameList = [];
- var isInitViewEdit = false;
+ var splitEqual = '=';
+ var splitComma = ',';
+ var splitcolon = ':';
+ var splitEnum = "],";
+ var plainAttributeKeys = [];
+ var matching = [];
+ var enumKeyList = [];
+ var dictionaryList = [];
+ var dictionaryNameList = [];
+ var isInitViewEdit = false;
$scope.addDataToFields = function(serviceName, version){
if(serviceName != null && version !=null){
- var service=serviceName+"-v"+version;
- var myNode = document.getElementById("DynamicTemplate");
- myNode.innerHTML = '';
+ var service=serviceName+"-v"+version;
+ var myNode = document.getElementById("DynamicTemplate");
+ myNode.innerHTML = '';
var uuu = "policyController/getDCAEMSTemplateData.htm";
var postData={policyData: service};
- console.log("service: " +service);
var dataOrderInfo = "";
@@ -384,217 +348,206 @@ angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$wind
contentType: 'application/json',
data: JSON.stringify(postData),
success : function(data){
-
- document.getElementById("msPolicyloader").style.visibility = "hidden";
-
+
+ document.getElementById("msPolicyloader").style.visibility = "hidden";
+
$scope.$apply(function(){
- var plainAttributeKeys = [];
- $scope.dcaeModelData = data[0].dcaeModelData;
- $scope.dcaeJsonDate = data[0].jsonValue;
+ $scope.dcaeModelData = data[0].dcaeModelData;
+ $scope.dcaeJsonDate = data[0].jsonValue;
$scope.dataOrderInfo = null;
- $scope.dataOrderInfo = data[0].dataOrderInfo;
- console.log("data[0].dataOrderInfo: " + data[0].dataOrderInfo);
- console.log("$scope.dataOrderInfo: " + $scope.dataOrderInfo);
-
- if(data[0].allManyTrueKeys){
- console.log("$scope.allManyTrueKeys: " + $scope.allManyTrueKeys);
- }
- console.log("$scope.dcaeJsonDate: " + $scope.dcaeJsonDate);
- var attributes = $scope.dcaeModelData.attributes;
- console.log("attributes: " +attributes);
- var refAttributes = $scope.dcaeModelData.ref_attributes;
- var subAttributes = $scope.dcaeModelData.sub_attributes;
- console.log("subAttributes: " + subAttributes);
- console.log("refAttributes: " + refAttributes);
- var headDefautlsData = data[0].headDefautlsData;
- if(headDefautlsData != null){
- $scope.temp.policy.onapName = headDefautlsData.onapName;
- $scope.temp.policy.guard = headDefautlsData.guard;
- $scope.temp.policy.riskType = headDefautlsData.riskType;
- $scope.temp.policy.riskLevel = headDefautlsData.riskLevel;
- $scope.temp.policy.priority = headDefautlsData.priority;
- }
-
- var enumAttributes = $scope.dcaeModelData.enumValues;
- var annotation = $scope.dcaeModelData.annotation;
- var dictionary = $scope.microServiceAttributeDictionaryDatas;
+ $scope.dataOrderInfo = data[0].dataOrderInfo;
+
+ if(data[0].allManyTrueKeys){
+ }
+ var attributes = $scope.dcaeModelData.attributes;
+ var refAttributes = $scope.dcaeModelData.ref_attributes;
+ var subAttributes = $scope.dcaeModelData.sub_attributes;
+ var headDefautlsData = data[0].headDefautlsData;
+ if(headDefautlsData != null){
+ $scope.temp.policy.onapName = headDefautlsData.onapName;
+ $scope.temp.policy.guard = headDefautlsData.guard;
+ $scope.temp.policy.riskType = headDefautlsData.riskType;
+ $scope.temp.policy.riskLevel = headDefautlsData.riskLevel;
+ $scope.temp.policy.priority = headDefautlsData.priority;
+ }
+
+ var annotation = $scope.dcaeModelData.annotation;
+ var dictionary = $scope.microServiceAttributeDictionaryDatas;
- if (annotation == null || annotation.length<1){
- $scope.isCheck = true;
- }else {
- $scope.isCheck = false;
- var annoationList = annotation.split(splitComma);
- for (k = 0; k < annoationList.length; k++){
- var splitAnnotation = annoationList[k].split(splitEqual);
- if (splitAnnotation[1].includes("matching-true")){
- matching.push(splitAnnotation[0].trim());
- }
- }
+ if (annotation == null || annotation.length<1){
+ $scope.isCheck = true;
+ }else {
+ $scope.isCheck = false;
+ var annoationList = annotation.split(splitComma);
+ for (k = 0; k < annoationList.length; k++){
+ var splitAnnotation = annoationList[k].split(splitEqual);
+ if (splitAnnotation[1].includes("matching-true")){
+ matching.push(splitAnnotation[0].trim());
+ }
+ }
- }
+ }
- if (dictionary!= null && dictionary.length>1){
- for (m=0; m < dictionary.length; m += 1){
- var keyCompare = dictionary[m].name;
- var valueCompare = dictionary[m].value;
- var valueModel = dictionary[m].modelName;
- var conpairService = serviceName;
- if (valueModel.includes('-v')){
- conpairService = service;
- }
- if(valueModel.localeCompare(conpairService) == 0){
- console.log(valueCompare);
- dictionaryList.push(dictionary[m]);
- if (!dictionaryNameList.includes(dictionary[m].name)){
- dictionaryNameList.push(dictionary[m].name)
- }
- }
- }
- }
+ if (dictionary!= null && dictionary.length>1){
+ for (m=0; m < dictionary.length; m += 1){
+ var valueCompare = dictionary[m].value;
+ var valueModel = dictionary[m].modelName;
+ var conpairService = serviceName;
+ if (valueModel.includes('-v')){
+ conpairService = service;
+ }
+ if(valueModel.localeCompare(conpairService) == 0){
+ dictionaryList.push(dictionary[m]);
+ if (!dictionaryNameList.includes(dictionary[m].name)){
+ dictionaryNameList.push(dictionary[m].name)
+ }
+ }
+ }
+ }
- $scope.temp.policy.ruleGridData = [];
-
- if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){
- dataOrderInfo = $scope.dataOrderInfo;
- }
-
- $scope.jsonLayout($scope.dcaeJsonDate);
-
+ $scope.temp.policy.ruleGridData = [];
+
+ if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){
+ dataOrderInfo = $scope.dataOrderInfo;
+ }
+
+ $scope.jsonLayout($scope.dcaeJsonDate);
+
});
if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ // If it's veiw or edit
- isInitViewEdit = true;
- var checkData = [];
- var data = [];
- // If ruleData contains extra elements created by clicked add button
- console.log("$scope.temp.policy.ruleData:" + $scope.temp.policy.ruleData);
- if($scope.temp.policy.ruleData != null){
- var propNames = Object.getOwnPropertyNames($scope.temp.policy.ruleData);
- propNames.forEach(function(name) {
- data.push(name);
- });
-
- var extraElements = data;
-
- if(plainAttributeKeys != null){
- for(var b = 0; b < plainAttributeKeys.length; b++){ // Remove already populated elements from data array
- var newValue = plainAttributeKeys[b].split("*");
- for(var a = 0; a < data.length; a++){
- if(data[a] === newValue[0] || data[a] === (newValue[0]+"@0")){
- extraElements.splice(a, 1);
- }
- }
- }
-
- //--- Populate these extra elements created by clicked add button
- for(var a = 0; a < extraElements.length; a++){
- if(extraElements[a].includes("@")){
- var index = extraElements[a].lastIndexOf("@");
- if(index > 0){
- // Get the number after @
- var n = getNumOfDigits(extraElements[a], index+1);
-
- var key = extraElements[a].substring(0, index+n+1); //include @x in key also by n+2 since x can be 1,12, etc
- console.log("key: " + key);
- checkData.push(key);
- }
- }
- }
- var unique = checkData.filter(onlyUnique);
- var parentLevelElements = [];
- if(unique){
- //--- get all root level exta elments first (only contains one "@")
- for(var i =0; i < unique.length; i++){
- var firstIndex = unique[i].indexOf("@");
- var lastIndex = unique[i].lastIndexOf("@");
- if(firstIndex == lastIndex){
- var newKey = unique[i].substring(0, firstIndex);
- console.log("root element: " + newKey);
- parentLevelElements.push(newKey);
- unique[i] = "*processed*";
- }
- }
- }
-
-
- for (var i = 0; i < $scope.labelManyKeys.length; i++) {
- var label = $scope.labelManyKeys[i];
- if(parentLevelElements){
- for (var k = 0; k < parentLevelElements.length; k++){
- if(label == parentLevelElements[k]){
- addNewChoice(label);
- }
- }
- }
- }
-
- //if no layout order info, keep the process as before
- if(!dataOrderInfo){
- for(var i =0; i < unique.length; i++){
- if(unique[i] != "*processed*"){
- var index = unique[i].lastIndexOf("@");
- var newKey = unique[i].substring(0, index);
- console.log("newKey: " + newKey);
-
- var newElement = document.getElementById("div."+unique[j]);
- //check weather it has been created already
+ isInitViewEdit = true;
+ var checkData = [];
+ var data = [];
+ // If ruleData contains extra elements created by clicked add button
+ if($scope.temp.policy.ruleData != null){
+ var propNames = Object.getOwnPropertyNames($scope.temp.policy.ruleData);
+ propNames.forEach(function(name) {
+ if(document.getElementById(name) != null){
+ if(document.getElementById(name).getAttribute("class") == "onoffswitch-checkbox"){
+ if($scope.temp.policy.ruleData[name] == "true"){
+ document.getElementById(name).setAttribute("checked", true);
+ }
+ else{
+ document.getElementById(name).removeAttribute("checked");
+ }
+ }
+ }
+ data.push(name);
+ });
+ var extraElements = data;
+ if(plainAttributeKeys != null){
+ for(var b = 0; b < plainAttributeKeys.length; b++){ // Remove already populated elements from data array
+ var newValue = plainAttributeKeys[b].split("*");
+ for(var a = 0; a < data.length; a++){
+ if(data[a] === newValue[0] || data[a] === (newValue[0]+"@0")){
+ extraElements.splice(a, 1);
+ }
+ }
+ }
+ // --- Populate these extra elements created by clicked add button
+ for(var a = 0; a < extraElements.length; a++){
+ if(extraElements[a].includes("@")){
+ var index = extraElements[a].lastIndexOf("@");
+ if(index > 0){
+ // Get the number after @
+ var n = getNumOfDigits(extraElements[a], index+1);
+ var key = extraElements[a].substring(0, index+n+1); // include @x in key also by n+2 since x can be 1,12,etc
+ checkData.push(key);
+ }
+ }
+ }
+ var unique = checkData.filter(onlyUnique);
+ var parentLevelElements = [];
+ if(unique){
+ // --- get all root level exta elments first (only contains one "@")
+ for(var i =0; i < unique.length; i++){
+ var firstIndex = unique[i].indexOf("@");
+ var lastIndex = unique[i].lastIndexOf("@");
+ if(firstIndex == lastIndex){
+ var newKey = unique[i].substring(0, firstIndex);
+ parentLevelElements.push(newKey);
+ unique[i] = "*processed*";
+ }
+ }
+ }
+ for (var i = 0; i < $scope.labelManyKeys.length; i++) {
+ var label = $scope.labelManyKeys[i];
+ if(parentLevelElements){
+ for (var k = 0; k < parentLevelElements.length; k++){
+ if(label == parentLevelElements[k]){
+ addNewChoice(label);
+ }
+ }
+ }
+ }
+
+ // if no layout order info, keep the process as before
+ if(!dataOrderInfo){
+ for(var i =0; i < unique.length; i++){
+ if(unique[i] != "*processed*"){
+ var index = unique[i].lastIndexOf("@");
+ var newKey = unique[i].substring(0, index);
+
+ var newElement = document.getElementById("div."+unique[j]);
+ // check weather it has been created already
if(newElement != null){
- continue;
+ continue;
}else{
- newElement = document.getElementById(unique[j]);
- if(newElement != null){
- continue;
- }
+ newElement = document.getElementById(unique[j]);
+ if(newElement != null){
+ continue;
+ }
}
- if(newKey){
- addNewChoice(newKey);
- }
- }
- }
- }else{
- //---reset to default
- dataOrderInfo = [];
- $scope.labelManyKeys = [];
-
- //---process none labels
- for (var j = 0; j < unique.length; j++){
- if(unique[j] != "*processed*"){
- // if not created yet
- if(!document.getElementById(unique[j])){
- var index = unique[j].lastIndexOf("@");
- var newKey = unique[j].substring(0, index);
-
- var newElement = document.getElementById("div."+unique[j]);
-
- //check weather it has been created already
+ if(newKey){
+ addNewChoice(newKey);
+ }
+ }
+ }
+ }else{
+ // ---reset to default
+ dataOrderInfo = [];
+ $scope.labelManyKeys = [];
+
+ // ---process none labels
+ for (var j = 0; j < unique.length; j++){
+ if(unique[j] != "*processed*"){
+ // if not created yet
+ if(!document.getElementById(unique[j])){
+ var index = unique[j].lastIndexOf("@");
+ var newKey = unique[j].substring(0, index);
+
+ var newElement = document.getElementById("div."+unique[j]);
+
+ // check weather it has been created already
if(newElement != null){
- continue;
+ continue;
}else{
- newElement = document.getElementById(unique[j]);
- if(newElement != null){
- continue;
- }
+ newElement = document.getElementById(unique[j]);
+ if(newElement != null){
+ continue;
+ }
}
- //if not created yet, then create it.
- addNewChoice(newKey);
-
- }
- }
- }
- }
- }
- }
+ // if not created yet,then create it.
+ addNewChoice(newKey);
+
+ }
+ }
+ }
+ }
+ }
+ }
}
var ele = angular.element(document.getElementById("DynamicTemplate"));
- $compile(ele.contents())($scope);
+ $compile(ele.contents())($scope);
$scope.$apply();
isInitViewEdit = false;
},
error : function(data){
- alert("Error While Retriving the Template Layout Pattren.");
+ Notification.error("Error While Retriving the Template Layout Pattren.");
}
});
@@ -602,991 +555,967 @@ angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$wind
};
function getNumOfDigits(str_value, index){
- // Get the number after @
- var str = str_value.substring(index, str_value.length);
- var c = '';
- var n = 0;
- for (var x = 0; x < str.length; x++){
- c = str.charAt(x);
- if(!isNaN(c)){
+ // Get the number after @
+ var str = str_value.substring(index, str_value.length);
+ var c = '';
+ var n = 0;
+ for (var x = 0; x < str.length; x++){
+ c = str.charAt(x);
+ if(!isNaN(c)){
n++;
- }else{
+ }else{
break;
}
- }
- return n;
+ }
+ return n;
}
function getDictionary(attribute){
- var dicName = attribute;
- if(attribute){
- if(attribute.includes(":")){
- dicName = attribute.split(":")[0];
- }
- }
- var dictionaryRegExp = new RegExp(dicName);
- listemunerateValues = [];
- if (dictionaryRegExp.test(dictionaryNameList)) {
- for (p=0; p < dictionaryList.length; p += 1) {
- if (dicName == dictionaryList[p].name) {
- listemunerateValues.push(dictionaryList[p].value);
- }
- }
- }
- return listemunerateValues;
+ var dicName = attribute;
+ if(attribute){
+ if(attribute.includes(":")){
+ dicName = attribute.split(":")[0];
+ }
+ }
+ var dictionaryRegExp = new RegExp(dicName);
+ listemunerateValues = [];
+ if (dictionaryRegExp.test(dictionaryNameList)) {
+ for (p=0; p < dictionaryList.length; p += 1) {
+ if (dicName == dictionaryList[p].name) {
+ listemunerateValues.push(dictionaryList[p].value);
+ }
+ }
+ }
+ return listemunerateValues;
}
function getList(attribute) {
- var enumName = attribute;
- console.log("In getList: attribute => " + attribute);
- if(attribute){
- if(attribute.includes(":")){
- enumName = attribute.split(":")[0];
- }
- }
+ var enumName = attribute;
+ if(attribute){
+ if(attribute.includes(":")){
+ enumName = attribute.split(":")[0];
+ }
+ }
var baseEnum = $scope.dcaeModelData.enumValues;
var enumList = [];
if(baseEnum != null){
- enumList = baseEnum.split(splitEnum);
+ enumList = baseEnum.split(splitEnum);
}
- var enumAttributes;
- var patternTest = new RegExp(enumName);
- for (k=0; k < enumList.length; k += 1){
- if(patternTest.test(enumList[k]) == true){
- enumAttributes = enumList[k].trim();
- }
- }
+ var enumAttributes;
+ var patternTest = new RegExp(enumName);
+ for (k=0; k < enumList.length; k += 1){
+ if(patternTest.test(enumList[k]) == true){
+ enumAttributes = enumList[k].trim();
+ }
+ }
if(enumAttributes){
- enumAttributes = enumAttributes.replace("[", "");
- enumAttributes = enumAttributes.replace("]", "");
- enumAttributes = enumAttributes.replace(/ /g, '');
- var dropListAfterCommaSplit = enumAttributes.split(splitEqual);
- listemunerateValues = dropListAfterCommaSplit[1].split(splitComma);
- //enumKeyList.push(attribute);
- return listemunerateValues;
+ enumAttributes = enumAttributes.replace("[", "");
+ enumAttributes = enumAttributes.replace("]", "");
+ enumAttributes = enumAttributes.replace(/ /g, '');
+ var dropListAfterCommaSplit = enumAttributes.split(splitEqual);
+ listemunerateValues = dropListAfterCommaSplit[1].split(splitComma);
+ // enumKeyList.push(attribute);
+ return listemunerateValues;
}
return [];
- }
-
- function getBooleanList(){
- var booleanList = [];
- booleanList.push(true);
- booleanList.push(false);
- return booleanList;
- }
-
-
- function isArray(arrayTest) {
- return Object.prototype.toString.call(arrayTest) === '[object Array]';
- }
- var lableList = [];
-
- $scope.layOutElementList = [];
- $scope.layOutOnlyLableList = [];
-
- var elementOrderNum = 0;
-
- function deconstructJSON(layOutData, level , name) {
+ }
+
+ function getBooleanList(){
+ var booleanList = [];
+ booleanList.push(true);
+ booleanList.push(false);
+ return booleanList;
+ }
+
- var array = false;
- var label = level;
- var stringValue = "java.lang.String";
- var string = "string";
- var intValue = "int";
- var integerValue = "integer";
- var double = "double";
- var boolean = "boolean";
- var baseLevel = level;
- var list = "list";
- var String = "String";
-
- var attributekey = "";
-
- if (name.length > 1){
- label = label + name + '.';
- }
-
- for (key in layOutData) {
- array = isArray(layOutData[key]);
- console.log("key: " + key , "value: " + layOutData[key]);
-
- if (!!layOutData[key] && typeof(layOutData[key])=="object") {
-
- if (array==false && key!=="0"){
-
- if($scope.dataOrderInfo){
- var labelObject = {"label" : key, "level" : label, "array" : array};
- //save it to the list
- $scope.layOutOnlyLableList.push(labelObject);
-
- }else {
- //call label layout
- $scope.labelLayout(label, key, array );
- }
-
- }
-
- if (array == true && key!=0){
- lableList.push(key);
- }
-
- if (lableList.length > 0){
- array = true;
- }
- if ( key==="0"){
- var newKey = lableList.pop();
-
- if($scope.dataOrderInfo){
-
- var labelObject = {"label" : newKey, "level" : baseLevel, "array" : array};
- //save it to the list
- $scope.layOutOnlyLableList.push(labelObject);
-
- }else {
- //call label layout
- $scope.labelLayout(baseLevel, newKey, array );
- }
-
- if (array){
- label = baseLevel + newKey + '@0.';
- } else {
- label = baseLevel + newKey + '.';
- }
- }
- deconstructJSON(layOutData[key] , label, key);
- } else {
- var attirbuteLabel = label;
- var defaultValue='';
- var description='';
- var isRequired = false;
- if (layOutData[key].includes('defaultValue-')){
- defaultValue = layOutData[key].split('defaultValue-')[1];
- }
-
- if (layOutData[key].includes('description-')){
- description = layOutData[key].split('description-')[1];
- }
-
+ function isArray(arrayTest) {
+ return Object.prototype.toString.call(arrayTest) === '[object Array]';
+ }
+ var lableList = [];
+
+ $scope.layOutElementList = [];
+ $scope.layOutOnlyLableList = [];
+
+ var elementOrderNum = 0;
+
+ function deconstructJSON(layOutData, level , name) {
- if (key==="0"){
- array = true;
- attributekey = lableList.pop();
- attirbuteLabel = baseLevel;
- } else {
- attributekey = key.split();
- }
-
- if (layOutData[key].includes('required-true')){
- isRequired = true;
- }
-
- var subAttributes = $scope.dcaeModelData.sub_attributes;
-
- if(subAttributes){
- var jsonObject = JSON.parse(subAttributes);
-
- var lablInfo = findVal(jsonObject, attributekey);
- console.log("deconstructJSON:findValue : " + attributekey +": "+ lablInfo);
- if (lablInfo){
- if(lablInfo.includes('required-true')){
- isRequired = true;
- }
- if(lablInfo.includes('defaultValue-')){
- defaultValue = lablInfo.split('defaultValue-')[1];
- }
-
- if(lablInfo.includes('description-')){
- description = lablInfo.split('description-')[1];
- }
-
- }else{
- var allkeys = Object.keys(jsonObject);
- if(allkeys){
- for (var k = 0; k < allkeys.length; k++) {
- var keyValue = allkeys[k];
- console.log(" keyValue:jsonObject["+keyValue+ "]: " + jsonObject[keyValue]);
- if(jsonObject[keyValue]){
- var tempObject = jsonObject[keyValue];
- if(tempObject && tempObject[key]){
- if (tempObject[key].includes('required-true')){
- isRequired = true;
- }
-
- if(tempObject[key].includes('defaultValue-')){
- defaultValue = tempObject[key].split('defaultValue-')[1];
- }
-
- if(tempObject[key].includes('description-')){
- description = tempObject[key].split('description-')[1];
- }
+ var array = false;
+ var label = level;
+ var stringValue = "java.lang.String";
+ var string = "string";
+ var intValue = "int";
+ var integerValue = "integer";
+ var double = "double";
+ var boolean = "boolean";
+ var baseLevel = level;
+
+ var attributekey = "";
+
+ if (name.length > 1){
+ label = label + name + '.';
+ }
+
+ for (key in layOutData) {
+ array = isArray(layOutData[key]);
+
+ if (!!layOutData[key] && typeof(layOutData[key])=="object") {
+
+ if (array==false && key!=="0"){
+
+ if($scope.dataOrderInfo){
+ var labelObject = {"label" : key, "level" : label, "array" : array};
+ // save it to the list
+ $scope.layOutOnlyLableList.push(labelObject);
+
+ }else {
+ // call label layout
+ $scope.labelLayout(label, key, array );
+ }
+
+ }
+
+ if (array == true && key!=0){
+ lableList.push(key);
+ }
+
+ if (lableList.length > 0){
+ array = true;
+ }
+ if ( key==="0"){
+ var newKey = lableList.pop();
+
+ if($scope.dataOrderInfo){
+
+ var labelObject = {"label" : newKey, "level" : baseLevel, "array" : array};
+ // save it to the list
+ $scope.layOutOnlyLableList.push(labelObject);
+
+ }else {
+ // call label layout
+ $scope.labelLayout(baseLevel, newKey, array );
+ }
+
+ if (array){
+ label = baseLevel + newKey + '@0.';
+ } else {
+ label = baseLevel + newKey + '.';
+ }
+ }
+ deconstructJSON(layOutData[key] , label, key);
+ } else {
+ var attirbuteLabel = label;
+ var defaultValue='';
+ var description='';
+ var isRequired = false;
+ if (layOutData[key].includes('defaultValue-')){
+ defaultValue = layOutData[key].split('defaultValue-')[1];
+ }
+
+ if (layOutData[key].includes('description-')){
+ description = layOutData[key].split('description-')[1];
+ }
+
- }
- }
- }
- }
- }
- }
-
- var elementObject = {};
- switch (layOutData[key].split(splitcolon)[0]){
-
- case stringValue:
- case string:
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"text", "description":description};
- $scope.layOutElementList.push(elementObject);
- }else{
- $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text");
- }
- break;
- case intValue:
- case integerValue:
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"number" , "description":description};
- $scope.layOutElementList.push(elementObject);
- }else{
- $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "number");
- }
- break;
- case double:
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"double", "description":description};
- $scope.layOutElementList.push(elementObject);
- }else{
- $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "double");
- }
- break;
- case boolean:
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"boolean", "description":description};
- $scope.layOutElementList.push(elementObject);
- }else{
- $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], getBooleanList());
- }
- break;
- default:
- if (layOutData[key].includes('dictionary-')){
- var list = getDictionary(layOutData[key].split('dictionary-')[1]);
- }else{
- //--- get dropdown values from enumValues
- var list = getList(layOutData[key]);
- }
- if (list.length===0){ //not dropdown element
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"text", "description":description};
- $scope.layOutElementList.push(elementObject);
-
- }else{
- $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text");
- }
- }else{
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum, "attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "list":list, "type":"dropBox", "description":description};
- $scope.layOutElementList.push(elementObject);
- }else{
- $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], list, isRequired);
- }
- }
- break;
- }
- }
- }
- }
-
-
- $scope.validContionalRequired = function(parentId) {
- console.log("ng-blur event: parentId : " + parentId);
- var c = document.getElementById(parentId).children;
- var i;
- var hasValue = false;
- for (i = 0; i < c.length; i++) {
- if(c[i].getAttribute("data-conditional")){
- console.log(c[i].getAttribute("data-conditional"));
- console.log(c[i].value);
- if(c[i].value != null && c[i].value.trim() != ""){
- hasValue = true;
- }
- }
- }
+ if (key==="0"){
+ array = true;
+ attributekey = lableList.pop();
+ attirbuteLabel = baseLevel;
+ } else {
+ attributekey = key.split();
+ }
+
+ if (layOutData[key].includes('required-true')){
+ isRequired = true;
+ }
+
+ var subAttributes = $scope.dcaeModelData.subAttributes;
+
+ if(subAttributes){
+ var jsonObject = JSON.parse(subAttributes);
+
+ var lablInfo = findVal(jsonObject, attributekey);
+ if (lablInfo){
+ if(lablInfo.includes('required-true')){
+ isRequired = true;
+ }
+ if(lablInfo.includes('defaultValue-')){
+ defaultValue = lablInfo.split('defaultValue-')[1];
+ }
+
+ if(lablInfo.includes('description-')){
+ description = lablInfo.split('description-')[1];
+ }
+
+ }else{
+ var allkeys = Object.keys(jsonObject);
+ if(allkeys){
+ for (var k = 0; k < allkeys.length; k++) {
+ var keyValue = allkeys[k];
+ if(jsonObject[keyValue]){
+ var tempObject = jsonObject[keyValue];
+ if(tempObject && tempObject[key]){
+ if (tempObject[key].includes('required-true')){
+ isRequired = true;
+ }
+
+ if(tempObject[key].includes('defaultValue-')){
+ defaultValue = tempObject[key].split('defaultValue-')[1];
+ }
+
+ if(tempObject[key].includes('description-')){
+ description = tempObject[key].split('description-')[1];
+ }
- for (i = 0; i < c.length; i++) {
- if(c[i].getAttribute("data-conditional")){
- if(hasValue){
- c[i].setAttribute("required", true);
- }else{
- c[i].removeAttribute("required");
- }
- }
- }
- }
-
- $scope.jsonLayout = function(layOutData){
-
- deconstructJSON(layOutData , "", "");
-
- var orderValue = $scope.dataOrderInfo;
- var layOutElementList = $scope.layOutElementList;
- var labelList = $scope.layOutOnlyLableList;
-
- //reset to default
- elementOrderNum = 0;
- $scope.layOutElementList = [];
- $scope.layOutOnlyLableList = [];
-
- // Only layout in order if order info provided
- if(orderValue){
-
- if(orderValue.includes("[")){
- orderValue = orderValue.replace("[", "") ;
- orderValue = orderValue.replace("]", "") ;
- }
-
- orderValue = orderValue.split(',') ;
-
- for (var i = 0; i < orderValue.length; i++) {
- console.log("orderValue["+i+"]"+ orderValue[i]);
- var key = orderValue[i].trim();
-
- //--- Create labels first {"label" : newKey, "level" : baseLevel, "array" : array};
- if(labelList){
- for (var k = 0; k < labelList.length; k++){
-
- var label = labelList[k].label.toString().trim();
- var level = labelList[k].level.toString().trim();
- var array = labelList[k].array;
-
- if(key == label){
- $scope.labelLayout(level, label, array);
- //in case to have duplicate label names
- labelList[k].label = "*processed*";
- break;
- }
- }
- }
- //--- then layout each element based on its order defined in YAML file
- for (var j = 0; j < layOutElementList.length; j++) {
-
- var attributekey = layOutElementList[j].attributekey.toString().trim();
-
- if(key == attributekey){
+ }
+ }
+ }
+ }
+ }
+ }
+
+ var elementObject = {};
+ switch (layOutData[key].split(splitcolon)[0]){
+
+ case stringValue:
+ case string:
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"text", "description":description};
+ $scope.layOutElementList.push(elementObject);
+ }else{
+ $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text");
+ }
+ break;
+ case intValue:
+ case integerValue:
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"number" , "description":description};
+ $scope.layOutElementList.push(elementObject);
+ }else{
+ $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "number");
+ }
+ break;
+ case double:
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"double", "description":description};
+ $scope.layOutElementList.push(elementObject);
+ }else{
+ $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "double");
+ }
+ break;
+ case boolean:
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"boolean", "description":description};
+ $scope.layOutElementList.push(elementObject);
+ }else{
+ $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], getBooleanList());
+ }
+ break;
+ default:
+ if (layOutData[key].includes('dictionary-')){
+ var list = getDictionary(layOutData[key].split('dictionary-')[1]);
+ }else{
+ // --- get dropdown values from enumValues
+ var list = getList(layOutData[key]);
+ }
+ if (list.length===0){ // not dropdown element
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"text", "description":description};
+ $scope.layOutElementList.push(elementObject);
+
+ }else{
+ $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text");
+ }
+ }else{
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum, "attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "list":list, "type":"dropBox", "description":description};
+ $scope.layOutElementList.push(elementObject);
+ }else{
+ $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], list, isRequired);
+ }
+ }
+ break;
+ }
+ }
+ }
+ }
+
+
+ $scope.validContionalRequired = function(parentId) {
+ var c = document.getElementById(parentId).children;
+ var i;
+ var hasValue = false;
+ for (i = 0; i < c.length; i++) {
+ if(c[i].getAttribute("data-conditional")){
+ if(c[i].value != null && c[i].value.trim() != ""){
+ hasValue = true;
+ }
+ }
+ }
- var attirbuteLabel = layOutElementList[j].attirbuteLabel.toString().trim();
- var defaultValue = layOutElementList[j].defaultValue.toString().trim();
- var description = layOutElementList[j].description;
- var isRequired = layOutElementList[j].isRequired;
-
- console.log("layOutElementList[" +j+ "]: id:" + layOutElementList[j].id + ", attributekey:"+ layOutElementList[j].attributekey + ", attirbuteLabel:" + layOutElementList[j].attirbuteLabel);
- console.log("layOutElementList[" +j+ "]: type:" + layOutElementList[j].type);
- if (layOutElementList[j].type == "dropBox"){
- $scope.dropBoxLayout(attirbuteLabel, attributekey, layOutElementList[j].array, defaultValue, layOutElementList[j].list, isRequired, description);
-
- }else{
- $scope.attributeBox(attributekey, layOutElementList[j].array, attirbuteLabel, defaultValue, isRequired, layOutElementList[j].type, description);
-
- }
-
- //in case to have duplicate attribute names
- layOutElementList[j].attributekey = "*processed*";
- break;
- }
- }
- }
- }
- }
-
-
- $scope.attributeBox = function(attibuteKey, attributeManyKey, labelValue, defaultValue, isRequired, dataType, description){
- $scope.temp.policy.ruleGridData.push(attibuteKey);
- var br = document.createElement("BR");
-
- var label = document.createElement("Label");
- var labeltext = null;
- var requiredLabName = "";
- if (matching.includes(attibuteKey)){
- labeltext = document.createTextNode(attibuteKey + "*!");
- isRequired = true; //set required as true for matching element
- }else {
- if(isRequired){
- requiredLabName = attibuteKey + " * ";
- labeltext = document.createTextNode(requiredLabName);
- }else{
- labeltext = document.createTextNode(attibuteKey);
- }
- }
+ for (i = 0; i < c.length; i++) {
+ if(c[i].getAttribute("data-conditional")){
+ if(hasValue){
+ c[i].setAttribute("required", true);
+ }else{
+ c[i].removeAttribute("required");
+ }
+ }
+ }
+ }
+
+ $scope.jsonLayout = function(layOutData){
+
+ deconstructJSON(layOutData , "", "");
+
+ var orderValue = $scope.dataOrderInfo;
+ var layOutElementList = $scope.layOutElementList;
+ var labelList = $scope.layOutOnlyLableList;
+
+ // reset to default
+ elementOrderNum = 0;
+ $scope.layOutElementList = [];
+ $scope.layOutOnlyLableList = [];
+
+ // Only layout in order if order info provided
+ if(orderValue){
+
+ if(orderValue.includes("[")){
+ orderValue = orderValue.replace("[", "") ;
+ orderValue = orderValue.replace("]", "") ;
+ }
+
+ orderValue = orderValue.split(',') ;
+
+ for (var i = 0; i < orderValue.length; i++) {
+ var key = orderValue[i].trim();
+
+ // --- Create labels first {"label" : newKey, "level" : baseLevel, "array" : array};
+ if(labelList){
+ for (var k = 0; k < labelList.length; k++){
+
+ var label = labelList[k].label.toString().trim();
+ var level = labelList[k].level.toString().trim();
+ var array = labelList[k].array;
+
+ if(key == label){
+ $scope.labelLayout(level, label, array);
+ // in case to have duplicate label names
+ labelList[k].label = "*processed*";
+ break;
+ }
+ }
+ }
+ // --- then layout each element based on its order defined in YAML file
+ for (var j = 0; j < layOutElementList.length; j++) {
+
+ var attributekey = layOutElementList[j].attributekey.toString().trim();
+
+ if(key == attributekey){
-
- var divID = labelValue;
-
- if (labelValue.length < 1){
- divID = "DynamicTemplate";
- }else if (labelValue.endsWith('.')){
- var divID = 'div.'+ labelValue.substring(0, labelValue.length-1);
- }
-
- label.appendChild(labeltext);
-
- var textField = document.createElement("INPUT");
-
- textField.setAttribute("class" , "form-control");
- if(dataType){
- if(dataType == "double"){
- textField.setAttribute("type" , "number");
- textField.setAttribute("step" , "any");
+ var attirbuteLabel = layOutElementList[j].attirbuteLabel.toString().trim();
+ var defaultValue = layOutElementList[j].defaultValue.toString().trim();
+ var description = layOutElementList[j].description;
+ var isRequired = layOutElementList[j].isRequired;
+
+ if (layOutElementList[j].type == "dropBox"){
+ $scope.dropBoxLayout(attirbuteLabel, attributekey, layOutElementList[j].array, defaultValue, layOutElementList[j].list, isRequired, description);
+
+ }else{
+ $scope.attributeBox(attributekey, layOutElementList[j].array, attirbuteLabel, defaultValue, isRequired, layOutElementList[j].type, description);
+
+ }
+
+ // in case to have duplicate attribute names
+ layOutElementList[j].attributekey = "*processed*";
+ break;
+ }
+ }
+ }
+ }
+ }
+
+
+ $scope.attributeBox = function(attibuteKey, attributeManyKey, labelValue, defaultValue, isRequired, dataType, description){
+ $scope.temp.policy.ruleGridData.push(attibuteKey);
+ var br = document.createElement("BR");
+
+ var label = document.createElement("Label");
+ var labeltext = null;
+ var requiredLabName = "";
+ if (matching.includes(attibuteKey)){
+ labeltext = document.createTextNode(attibuteKey + "*!");
+ isRequired = true; // set required as true for matching element
+ }else {
+ if(isRequired){
+ requiredLabName = attibuteKey + " * ";
+ labeltext = document.createTextNode(requiredLabName);
+ }else{
+ labeltext = document.createTextNode(attibuteKey);
+ }
+ }
- }else if(dataType == "boolean"){ //gw1218 testing boolean
- var booleanDiv = document.createElement("div");
+
+ var divID = labelValue;
+
+ if (labelValue.length < 1){
+ divID = "DynamicTemplate";
+ }else if (labelValue.endsWith('.')){
+ var divID = 'div.'+ labelValue.substring(0, labelValue.length-1);
+ }
+
+ label.appendChild(labeltext);
+
+ var textField = document.createElement("INPUT");
+
+ textField.setAttribute("class" , "form-control");
+ if(dataType){
+ if(dataType == "double"){
+ textField.setAttribute("type" , "number");
+ textField.setAttribute("step" , "any");
- booleanDiv.setAttribute("class" , "onoffswitch");
+ }else if(dataType == "boolean"){ // gw1218 testing boolean
+ var booleanDiv = document.createElement("div");
- //var checkField = document.createElement("INPUT");
- textField.setAttribute("type" , "checkbox");
- textField.setAttribute("name" , "onoffswitch");
- textField.setAttribute("class" , "onoffswitch-checkbox");
- textField.setAttribute("id" , ''+labelValue +attibuteKey+'');
- if(defaultValue.substring(0,defaultValue.indexOf(":")) == "true") {
- textField.setAttribute("checked" , true);
- }else{
- textField.removeAttribute("checked");
- }
+ booleanDiv.setAttribute("class" , "onoffswitch");
- var booleanlabel = document.createElement("Label");
- booleanlabel.setAttribute("class" , "onoffswitch-label");
- booleanlabel.setAttribute("for" , ''+labelValue +attibuteKey+'');
-
- var span1 = document.createElement("span");
- span1.setAttribute("class" , "onoffswitch-inner");
-
- var span2 = document.createElement("span");
- span2.setAttribute("class" , "onoffswitch-switch");
-
-
- booleanlabel.appendChild(span1);
- booleanlabel.appendChild(span2);
- booleanDiv.appendChild(textField);
- booleanDiv.appendChild(booleanlabel);
-
- document.getElementById(divID).appendChild(label);
- document.getElementById(divID).appendChild(booleanDiv);
+ // var checkField = document.createElement("INPUT");
+ textField.setAttribute("type" , "checkbox");
+ textField.setAttribute("name" , "onoffswitch");
+ textField.setAttribute("class" , "onoffswitch-checkbox");
+ textField.setAttribute("id" , ''+labelValue +attibuteKey+'');
+ if(defaultValue.substring(0,defaultValue.indexOf(":")) == "true") {
+ textField.setAttribute("checked" , true);
+ }else{
+ textField.removeAttribute("checked");
+ }
+ textField.setAttribute("ng-click" , "validateOnAndOff('"+labelValue +attibuteKey+"', $event)");
+ var booleanlabel = document.createElement("Label");
+ booleanlabel.setAttribute("class" , "onoffswitch-label");
+ booleanlabel.setAttribute("for" , ''+labelValue +attibuteKey+'');
+
+ var span1 = document.createElement("span");
+ span1.setAttribute("class" , "onoffswitch-inner");
+
+ var span2 = document.createElement("span");
+ span2.setAttribute("class" , "onoffswitch-switch");
+
+
+ booleanlabel.appendChild(span1);
+ booleanlabel.appendChild(span2);
+ booleanDiv.appendChild(textField);
+ booleanDiv.appendChild(booleanlabel);
+
+ document.getElementById(divID).appendChild(label);
+ document.getElementById(divID).appendChild(booleanDiv);
- //return;
- } else{
- textField.setAttribute("type" , dataType);
- }
-
-
+ // return;
+ } else{
+ textField.setAttribute("type" , dataType);
+ }
+
+
- }
-
- if(dataType != "boolean"){
- textField.setAttribute("style" , "width:300px;");
- textField.setAttribute("ng-disabled" , "temp.policy.readOnly");
- if(description && description != "null"){
- textField.setAttribute("title", description);
- }
- }
+ }
+
+ if(dataType != "boolean"){
+ textField.setAttribute("style" , "width:300px;");
+ textField.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ if(description && description != "null"){
+ textField.setAttribute("title", description);
+ }
+ }
- var checkKey;
- var id = "";
- if(attributeManyKey){
- checkKey = labelValue + attibuteKey+'@0';
- textField.setAttribute("id" , ''+labelValue + attibuteKey+'@0'+'');
- var divTag = document.createElement("div");
- divTag.setAttribute("id", "div."+ labelValue +attibuteKey);
- var addButton = document.createElement("BUTTON");
- var buttonaddLabel = document.createTextNode("+");
- addButton.appendChild(buttonaddLabel);
- addButton.setAttribute("id", labelValue + attibuteKey);
- addButton.setAttribute("class", "btn btn-add-remove");
- addButton.setAttribute("onclick" , 'addNewChoice("'+labelValue + attibuteKey+'");');
- addButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
- var removeButton = document.createElement("BUTTON");
- var buttonremoveLabel = document.createTextNode("-");
- removeButton.appendChild(buttonremoveLabel);
- removeButton.setAttribute("class", "btn btn-add-remove");
- removeButton.setAttribute("onclick" , 'removeChoice("'+labelValue + attibuteKey+'");');
- removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
- document.getElementById(divID).appendChild(addButton);
- document.getElementById(divID).appendChild(removeButton);
- document.getElementById(divID).appendChild(label);
- id = "div."+labelValue+attibuteKey;
- //var divTag = document.createElement("div");
- divTag.setAttribute("id", id);
- document.getElementById(divID).appendChild(divTag);
- textField.className += ' first_child';
- if(isRequired){
- textField.setAttribute("required", "true");
- }
-
- divTag.appendChild(textField);
- document.getElementById(divID).appendChild(divTag);
-
- }else if (dataType != "boolean"){
- checkKey = labelValue + attibuteKey;
- textField.setAttribute("id" , ''+labelValue +attibuteKey+'');
- if(document.getElementById(divID).hasAttribute('required') || !document.getElementById(divID).hasAttribute('data-conditional')){
- if(requiredLabName.includes("*") || isRequired){
- textField.setAttribute("required", "true");
- }
- }else if (document.getElementById(divID).hasAttribute('data-conditional')){
- if(requiredLabName.includes("*")){
- var requiredNode = document.createElement('span');
- requiredNode.setAttribute("class", "mstooltip");
- requiredNode.textContent = "?";
- label.appendChild(requiredNode);
-
- var requiredNodeToolTip = document.createElement('span');
- requiredNodeToolTip.setAttribute("class", "tooltiptext");
- requiredNodeToolTip.textContent = "Conditional Required";
- requiredNode.appendChild(requiredNodeToolTip);
-
- textField.setAttribute("data-conditional", divID);
- textField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')");
- }
- }
+ var checkKey;
+ var id = "";
+ if(attributeManyKey){
+ checkKey = labelValue + attibuteKey+'@0';
+ textField.setAttribute("id" , ''+labelValue + attibuteKey+'@0'+'');
+ var divTag = document.createElement("div");
+ divTag.setAttribute("id", "div."+ labelValue +attibuteKey);
+ var addButton = document.createElement("BUTTON");
+ var buttonaddLabel = document.createTextNode("+");
+ addButton.appendChild(buttonaddLabel);
+ addButton.setAttribute("id", labelValue + attibuteKey);
+ addButton.setAttribute("class", "btn btn-add-remove");
+ addButton.setAttribute("onclick" , 'addNewChoice("'+labelValue + attibuteKey+'");');
+ addButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ var removeButton = document.createElement("BUTTON");
+ var buttonremoveLabel = document.createTextNode("-");
+ removeButton.appendChild(buttonremoveLabel);
+ removeButton.setAttribute("class", "btn btn-add-remove");
+ removeButton.setAttribute("onclick" , 'removeChoice("'+labelValue + attibuteKey+'");');
+ removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ document.getElementById(divID).appendChild(addButton);
+ document.getElementById(divID).appendChild(removeButton);
+ document.getElementById(divID).appendChild(label);
+ id = "div."+labelValue+attibuteKey;
+ // var divTag = document.createElement("div");
+ divTag.setAttribute("id", id);
+ document.getElementById(divID).appendChild(divTag);
+ textField.className += ' first_child';
+ if(isRequired){
+ textField.setAttribute("required", "true");
+ }
+
+ divTag.appendChild(textField);
+ document.getElementById(divID).appendChild(divTag);
+
+ }else if (dataType != "boolean"){
+ checkKey = labelValue + attibuteKey;
+ textField.setAttribute("id" , ''+labelValue +attibuteKey+'');
+ if(document.getElementById(divID).hasAttribute('required') || !document.getElementById(divID).hasAttribute('data-conditional')){
+ if(requiredLabName.includes("*") || isRequired){
+ textField.setAttribute("required", "true");
+ }
+ }else if (document.getElementById(divID).hasAttribute('data-conditional')){
+ if(requiredLabName.includes("*")){
+ var requiredNode = document.createElement('span');
+ requiredNode.setAttribute("class", "mstooltip");
+ requiredNode.textContent = "?";
+ label.appendChild(requiredNode);
+
+ var requiredNodeToolTip = document.createElement('span');
+ requiredNodeToolTip.setAttribute("class", "tooltiptext");
+ requiredNodeToolTip.textContent = "Conditional Required";
+ requiredNode.appendChild(requiredNodeToolTip);
+
+ textField.setAttribute("data-conditional", divID);
+ textField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')");
+ }
+ }
- document.getElementById(divID).appendChild(label);
- document.getElementById(divID).appendChild(textField);
- document.getElementById(divID).appendChild(br);
+ document.getElementById(divID).appendChild(label);
+ document.getElementById(divID).appendChild(textField);
+ document.getElementById(divID).appendChild(br);
- }
+ }
- if(dataType != "boolean" && divID.includes("@0") && divID.includes("div.")){
- var firstChild_Id = divID.split("@0")[0];
- var firstChild_element = document.getElementById(firstChild_Id);
- if(firstChild_element){
-
- if(!firstChild_element.className.includes('children_group border')){
- layer++;
- if(layer > 4){
- layer = 1
- };
- firstChild_element.className += ' children_group border' + layer; //here is div with a group of children.
- }
- }
- }
- console.log('firstChild_Id: ' + firstChild_Id);
- console.log('divID: ' + divID);
-
- if(dataType != "boolean" && defaultValue.length > 0){
- if(defaultValue.includes(":")){
- defaultValue = defaultValue.split(":")[0];
- if(defaultValue === "NA") {
- defaultValue = "";
- }
- }
- if(defaultValue != "undefined" && defaultValue != undefined && defaultValue != "null"){
- document.getElementById(checkKey).value = defaultValue;
- }
- }
-
- if($scope.temp.policy.ruleData != null){
- //document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey];
- if (attributeManyKey){
- var newCheckKey = checkKey.replace(attibuteKey + '@0',attibuteKey);
- if($scope.temp.policy.ruleData[newCheckKey +'@0'] != undefined && $scope.temp.policy.ruleData[newCheckKey +'@0'] != "undefined"){
- document.getElementById(newCheckKey +'@0').value = $scope.temp.policy.ruleData[newCheckKey +'@0'];
- }
- }else{
- if($scope.temp.policy.ruleData[checkKey] != undefined && $scope.temp.policy.ruleData[checkKey] != "undefined"){
- document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey];
- }
- }
- }
-
- if (dataType != "boolean"){
- plainAttributeKeys.push(labelValue + attibuteKey+'*'+attributeManyKey);
- }else{
- plainAttributeKeys.push(labelValue + attibuteKey+'*'+"boolean");
- }
+ if(dataType != "boolean" && divID.includes("@0") && divID.includes("div.")){
+ var firstChild_Id = divID.split("@0")[0];
+ var firstChild_element = document.getElementById(firstChild_Id);
+ if(firstChild_element){
+
+ if(!firstChild_element.className.includes('children_group border')){
+ layer++;
+ if(layer > 4){
+ layer = 1
+ }
+ firstChild_element.className += ' children_group border' + layer; // here is div with a group of children.
+ }
+ }
+ }
+
+ if(dataType != "boolean" && defaultValue.length > 0){
+ if(defaultValue.includes(":")){
+ defaultValue = defaultValue.split(":")[0];
+ if(defaultValue === "NA") {
+ defaultValue = "";
+ }
+ }
+ if(defaultValue != "undefined" && defaultValue != undefined && defaultValue != "null"){
+ document.getElementById(checkKey).value = defaultValue;
+ }
+ }
+
+ if($scope.temp.policy.ruleData != null){
+ // document.getElementById(checkKey).value =
+ // $scope.temp.policy.ruleData[checkKey];
+ if (attributeManyKey){
+ var newCheckKey = checkKey.replace(attibuteKey + '@0',attibuteKey);
+ if($scope.temp.policy.ruleData[newCheckKey +'@0'] != undefined && $scope.temp.policy.ruleData[newCheckKey +'@0'] != "undefined"){
+ document.getElementById(newCheckKey +'@0').value = $scope.temp.policy.ruleData[newCheckKey +'@0'];
+ }
+ }else{
+ if($scope.temp.policy.ruleData[checkKey] != undefined && $scope.temp.policy.ruleData[checkKey] != "undefined"){
+ document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey];
+ }
+ }
+ }
+
+ if (dataType != "boolean"){
+ plainAttributeKeys.push(labelValue + attibuteKey+'*'+attributeManyKey);
+ }else{
+ plainAttributeKeys.push(labelValue + attibuteKey+'*'+"boolean");
+ }
+ };
+
+ $scope.validateOnAndOff = function(id , value) {
+ console.log(id, value);
+ if (value.target.checked) {
+ document.getElementById(id).setAttribute("checked", true);
+ } else {
+ document.getElementById(id).removeAttribute("checked");
+ }
};
-
+
$scope.labelManyKeys = [];
$scope.labelLayout = function(labelValue, lableName, labelManyKey ){
- var label = document.createElement("Label")
- var divID = labelValue;
- if (labelValue.endsWith('.')){
- var workingLabel = labelValue.substring(0, labelValue.length-1);
- }else {
- var workingLabel = labelValue;
- }
-
- if (labelValue.length < 1){
- divID = "DynamicTemplate";
- } else if (labelValue.endsWith('.')){
- var divID = 'div.'+ labelValue.substring(0, labelValue.length-1);
- }
-
- var subAttributes = $scope.dcaeModelData.sub_attributes;
- var jsonObject = JSON.parse(subAttributes);
- var lablInfo = findVal(jsonObject, lableName);
- console.log("findValue : " + lableName +": "+ lablInfo);
- var star = "";
- var required = null;
- if(lablInfo){
- if(typeof lablInfo === 'string' ){
- if(lablInfo.includes("required-true")){
- star = " *";
- required = true;
- }else if (lablInfo.includes("required-false")){
- required = false
- }
- }
- }
-
- var labeltext = document.createTextNode(lableName + star);
-
- label.appendChild(labeltext);
+ var label = document.createElement("Label")
+ var divID = labelValue;
+ if (labelValue.endsWith('.')){
+ var workingLabel = labelValue.substring(0, labelValue.length-1);
+ }else {
+ var workingLabel = labelValue;
+ }
+ if (labelValue.length < 1){
+ divID = "DynamicTemplate";
+ } else if (labelValue.endsWith('.')){
+ var divID = 'div.'+ labelValue.substring(0, labelValue.length-1);
+ }
+
+ var subAttributes = $scope.dcaeModelData.subAttributes;
+ var jsonObject = JSON.parse(subAttributes);
+ var lablInfo = findVal(jsonObject, lableName);
+ var star = "";
+ var required = null;
+ if(lablInfo){
+ if(typeof lablInfo === 'string' ){
+ if(lablInfo.includes("required-true")){
+ star = " *";
+ required = true;
+ }else if (lablInfo.includes("required-false")){
+ required = false
+ }
+ }
+ }
+
+ var labeltext = document.createTextNode(lableName + star);
+
+ label.appendChild(labeltext);
- if(labelManyKey){
- var addButton = document.createElement("BUTTON");
- var buttonLabel = document.createTextNode("+");
- addButton.appendChild(buttonLabel);
- addButton.setAttribute("class", "btn btn-add-remove");
- addButton.setAttribute("onclick" , 'addNewChoice("'+labelValue + lableName+'");');
- addButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
- var removeButton = document.createElement("BUTTON");
- var buttonremoveLabel = document.createTextNode("-");
- removeButton.appendChild(buttonremoveLabel);
- removeButton.setAttribute("class", "btn btn-add-remove");
- removeButton.setAttribute("onclick" , 'removeChoice("'+labelValue +lableName+'");');
- removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
- document.getElementById(divID).appendChild(addButton);
- document.getElementById(divID).appendChild(removeButton);
- document.getElementById(divID).appendChild(label);
- var id = "div."+labelValue+lableName;
- var divTag = document.createElement("div");
- divTag.setAttribute("id", id);
- document.getElementById(divID).appendChild(divTag);
-
- var divTag = document.createElement("div");
- divTag.setAttribute("id", id +'@0');
-
- if(!divTag.className.includes('children_group border')){
- layer++;
- if(layer > 4){
- layer = 1
- };
- divTag.className += ' children_group border' + layer; //here is div with a group of children.
- }
- if(required){
- divTag.setAttribute("required", required);
- }else if(required == false){
- divTag.setAttribute("data-conditional", "yes");
- }
-
- document.getElementById(id).appendChild(divTag);
-
- $scope.labelManyKeys.push(lableName);
-
- }else{
- var divTag = document.createElement("div");
- divTag.setAttribute("id", "div."+labelValue+lableName);
-
- if(!divTag.className.includes('children_group border')){
- layer++;
- if(layer > 4){
- layer = 1
- };
- divTag.className += ' children_group border' + layer; //here is div with a group of children.
- }
- if(required){
- divTag.setAttribute("required", required);
- }else if(required == false){
- divTag.setAttribute("data-conditional", "yes");
- }
- document.getElementById(divID).appendChild(label);
- document.getElementById(divID).appendChild(divTag);
- }
+ if(labelManyKey){
+ var addButton = document.createElement("BUTTON");
+ var buttonLabel = document.createTextNode("+");
+ addButton.appendChild(buttonLabel);
+ addButton.setAttribute("class", "btn btn-add-remove");
+ addButton.setAttribute("onclick" , 'addNewChoice("'+labelValue + lableName+'");');
+ addButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ var removeButton = document.createElement("BUTTON");
+ var buttonremoveLabel = document.createTextNode("-");
+ removeButton.appendChild(buttonremoveLabel);
+ removeButton.setAttribute("class", "btn btn-add-remove");
+ removeButton.setAttribute("onclick" , 'removeChoice("'+labelValue +lableName+'");');
+ removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ document.getElementById(divID).appendChild(addButton);
+ document.getElementById(divID).appendChild(removeButton);
+ document.getElementById(divID).appendChild(label);
+ var id = "div."+labelValue+lableName;
+ var divTag = document.createElement("div");
+ divTag.setAttribute("id", id);
+ document.getElementById(divID).appendChild(divTag);
+
+ var divTag = document.createElement("div");
+ divTag.setAttribute("id", id +'@0');
+
+ if(!divTag.className.includes('children_group border')){
+ layer++;
+ if(layer > 4){
+ layer = 1
+ }
+ divTag.className += ' children_group border' + layer; // here is div with a group of children.
+ }
+ if(required){
+ divTag.setAttribute("required", required);
+ }else if(required == false){
+ divTag.setAttribute("data-conditional", "yes");
+ }
+
+ document.getElementById(id).appendChild(divTag);
+
+ $scope.labelManyKeys.push(lableName);
+
+ }else{
+ var divTag = document.createElement("div");
+ divTag.setAttribute("id", "div."+labelValue+lableName);
+
+ if(!divTag.className.includes('children_group border')){
+ layer++;
+ if(layer > 4){
+ layer = 1
+ }
+ divTag.className += ' children_group border' + layer; // here is div with a group of children.
+ }
+ if(required){
+ divTag.setAttribute("required", required);
+ }else if(required == false){
+ divTag.setAttribute("data-conditional", "yes");
+ }
+ document.getElementById(divID).appendChild(label);
+ document.getElementById(divID).appendChild(divTag);
+ }
};
$scope.dropBoxLayout = function(labelLevel, attributeName, many , defaultValue, listemunerateValues, isRequired, description){
- var br = document.createElement("BR");
-
- if (labelLevel.length < 1){
- var divID = "DynamicTemplate";
- } else if (labelLevel.endsWith('.')){
- var divID = 'div.'+ labelLevel.substring(0, labelLevel.length-1);
- }
-
-
- var label = document.createElement("Label")
-
- var refAttributes = $scope.dcaeModelData.ref_attributes;
- if(isRequired != true && refAttributes){ //check refAttributes also
- var refAttributesList = refAttributes.split(splitComma);
- for (k = 0; k < refAttributesList.length; k++){
- var refAttribute = refAttributesList[k].split(splitEqual);
- if (attributeName == refAttribute[0].trim() && refAttribute[1].includes("required-true")){
- isRequired = true;
- }
- }
- }
-
- if (matching.includes(attributeName)){
- var labeltext = document.createTextNode(attributeName + "*!");
- label.appendChild(labeltext);
- isRequired = true; //set required as true for matching element
- }else {
- var labeltext = document.createTextNode(attributeName);
- if(isRequired){
- var requiredLabName = attributeName+ " * ";
- labeltext = document.createTextNode(requiredLabName);
- }else{
- labeltext = document.createTextNode(attributeName);
- }
-
- label.appendChild(labeltext);
- }
- label.appendChild(labeltext);
- // if this field is required, but its parent is not required
- if(isRequired && document.getElementById(divID).hasAttribute('data-conditional')){
- var requiredNode = document.createElement('span');
- requiredNode.setAttribute("class", "mstooltip");
- requiredNode.textContent = "?";
- label.appendChild(requiredNode);
-
- var requiredNodeToolTip = document.createElement('span');
- requiredNodeToolTip.setAttribute("class", "tooltiptext");
- requiredNodeToolTip.textContent = "Conditional Required";
- requiredNode.appendChild(requiredNodeToolTip);
-
- }
-
- var listField = document.createElement("SELECT");
- listField.setAttribute("class" , "form-control");
- listField.setAttribute("style" , "width:300px;");
- listField.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ var br = document.createElement("BR");
+
+ if (labelLevel.length < 1){
+ var divID = "DynamicTemplate";
+ } else if (labelLevel.endsWith('.')){
+ var divID = 'div.'+ labelLevel.substring(0, labelLevel.length-1);
+ }
+
+
+ var label = document.createElement("Label")
+
+ var refAttributes = $scope.dcaeModelData.refAttributes;
+ if(isRequired != true && refAttributes){ // check refAttributes also
+ var refAttributesList = refAttributes.split(splitComma);
+ for (k = 0; k < refAttributesList.length; k++){
+ var refAttribute = refAttributesList[k].split(splitEqual);
+ if (attributeName == refAttribute[0].trim() && refAttribute[1].includes("required-true")){
+ isRequired = true;
+ }
+ }
+ }
+
+ if (matching.includes(attributeName)){
+ var labeltext = document.createTextNode(attributeName + "*!");
+ label.appendChild(labeltext);
+ isRequired = true; // set required as true for matching element
+ }else {
+ var labeltext = document.createTextNode(attributeName);
+ if(isRequired){
+ var requiredLabName = attributeName+ " * ";
+ labeltext = document.createTextNode(requiredLabName);
+ }else{
+ labeltext = document.createTextNode(attributeName);
+ }
+
+ label.appendChild(labeltext);
+ }
+ label.appendChild(labeltext);
+ // if this field is required, but its parent is not required
+ if(isRequired && document.getElementById(divID).hasAttribute('data-conditional')){
+ var requiredNode = document.createElement('span');
+ requiredNode.setAttribute("class", "mstooltip");
+ requiredNode.textContent = "?";
+ label.appendChild(requiredNode);
+
+ var requiredNodeToolTip = document.createElement('span');
+ requiredNodeToolTip.setAttribute("class", "tooltiptext");
+ requiredNodeToolTip.textContent = "Conditional Required";
+ requiredNode.appendChild(requiredNodeToolTip);
- if(description && description != "null"){
- listField.setAttribute("title", description);
- }
+ }
- if(isRequired){
- if(document.getElementById(divID).hasAttribute('data-conditional')){
- listField.setAttribute("data-conditional", divID);
- listField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')");
- }else{
- listField.setAttribute("required", true);
- }
- }
- if( many != true || isRequired != true){ // add an empty option for not required or not multiple select element
- var optionFirst = document.createElement('option');
- var optionValue = "";
- if($scope.temp.policy.ruleData != null){
- if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){
- optionValue = $scope.temp.policy.ruleData[labelLevel + attributeName];
- }
- }
- optionFirst.setAttribute('value', optionValue);
- optionFirst.appendChild(document.createTextNode(optionValue));
- listField.appendChild(optionFirst);
- }
- var ruleFormationCheck = false;
- if(listemunerateValues.length !== 0 && typeof listemunerateValues[0] == "string" && listemunerateValues[0].includes("dictionary:")) {
- var ruleCheck = listemunerateValues[0].split("&");
- var dictParams = ruleCheck[0].split(":");
- var dictParamsSplit = dictParams[1].split("@");
- if (ruleCheck[1] != undefined && ruleCheck[1] == 'Rule') {
- ruleFormationCheck = true;
- }
- PolicyAppService.getData(dictParamsSplit[0]).then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.listDictionarys = JSON.parse($scope.data[dictParamsSplit[1]]);
- for (i=0; i < $scope.listDictionarys.length; i += 1) {
- option = document.createElement('option');
- option.setAttribute('value', $scope.listDictionarys[i]);
- option.appendChild(document.createTextNode($scope.listDictionarys[i]));
- listField.appendChild(option);
- }
- }, function (error) {
- console.log("failed");
- });
+ var listField = document.createElement("SELECT");
+ listField.setAttribute("class" , "form-control");
+ listField.setAttribute("style" , "width:300px;");
+ listField.setAttribute("ng-disabled" , "temp.policy.readOnly");
- }
- else{
- for (i=0; i < listemunerateValues.length; i += 1) {
- if(typeof listemunerateValues[i] == "string" && listemunerateValues[i].includes("equal-sign")){
- listemunerateValues[i] = listemunerateValues[i].replace('equal-sign','=');
- }
-
- option = document.createElement('option');
- option.setAttribute('value', listemunerateValues[i]);
- option.appendChild(document.createTextNode(listemunerateValues[i]));
- option.setAttribute('value', listemunerateValues[i]);
- listField.appendChild(option);
- }
- }
- listField.setAttribute("id" , ''+ labelLevel + attributeName + '');
+ if(description && description != "null"){
+ listField.setAttribute("title", description);
+ }
- enumKeyList.push(attributeName);
+ if(isRequired){
+ if(document.getElementById(divID).hasAttribute('data-conditional')){
+ listField.setAttribute("data-conditional", divID);
+ listField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')");
+ }else{
+ listField.setAttribute("required", true);
+ }
+ }
+ if( many != true || isRequired != true){ // add an empty option for not required or not multiple select element
+ var optionFirst = document.createElement('option');
+ var optionValue = "";
+ if($scope.temp.policy.ruleData != null){
+ if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){
+ optionValue = $scope.temp.policy.ruleData[labelLevel + attributeName];
+ }
+ }
+ optionFirst.setAttribute('value', optionValue);
+ optionFirst.appendChild(document.createTextNode(optionValue));
+ listField.appendChild(optionFirst);
+ }
+ var ruleFormationCheck = false;
+ if(listemunerateValues.length !== 0 && typeof listemunerateValues[0] == "string" && listemunerateValues[0].includes("dictionary:")) {
+ var ruleCheck = listemunerateValues[0].split("&");
+ var dictParams = ruleCheck[0].split(":");
+ var dictParamsSplit = dictParams[1].split("@");
+ if (ruleCheck[1] != undefined && ruleCheck[1] == 'Rule') {
+ ruleFormationCheck = true;
+ }
+ PolicyAppService.getData(dictParamsSplit[0]).then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.listDictionarys = JSON.parse($scope.data[dictParamsSplit[1]]);
+ for (i=0; i < $scope.listDictionarys.length; i += 1) {
+ option = document.createElement('option');
+ option.setAttribute('value', $scope.listDictionarys[i]);
+ option.appendChild(document.createTextNode($scope.listDictionarys[i]));
+ listField.appendChild(option);
+ }
+ });
- document.getElementById(divID).appendChild(label);
- document.getElementById(divID).appendChild(br);
+ }
+ else{
+ for (i=0; i < listemunerateValues.length; i += 1) {
+ if(typeof listemunerateValues[i] == "string" && listemunerateValues[i].includes("equal-sign")){
+ listemunerateValues[i] = listemunerateValues[i].replace('equal-sign','=');
+ }
+
+ option = document.createElement('option');
+ option.setAttribute('value', listemunerateValues[i]);
+ option.appendChild(document.createTextNode(listemunerateValues[i]));
+ option.setAttribute('value', listemunerateValues[i]);
+ listField.appendChild(option);
+ }
+ }
+ listField.setAttribute("id" , ''+ labelLevel + attributeName + '');
- if(many == true){
- document.getElementById(divID).appendChild(listField).multiple = true;
- plainAttributeKeys.push(labelLevel + attributeName+'*'+true);
- }else {
- document.getElementById(divID).appendChild(listField).multiple = false;
- plainAttributeKeys.push(labelLevel + attributeName+'*'+false);
+ enumKeyList.push(attributeName);
- if (defaultValue){
- if(defaultValue.includes(':')){
- defaultValue = defaultValue.split(':')[0];
- }
- var location = listemunerateValues.indexOf(defaultValue);
- document.getElementById(labelLevel +attributeName).options[location+1].selected = true;
- }
- }
+ document.getElementById(divID).appendChild(label);
+ document.getElementById(divID).appendChild(br);
- if (ruleFormationCheck) {
- var optionInput = document.createElement("INPUT");
- optionInput.setAttribute("type" , "text");
- optionInput.setAttribute("id" , ''+ labelLevel + attributeName + '.input');
- optionInput.setAttribute("name" , "ruleName");
- optionInput.setAttribute("value" , " ");
- optionInput.setAttribute("style" , "width:300px;");
- optionInput.setAttribute("ng-disabled" , "temp.policy.readOnly");
- optionInput.removeAttribute("required");
+ if(many == true){
+ document.getElementById(divID).appendChild(listField).multiple = true;
+ plainAttributeKeys.push(labelLevel + attributeName+'*'+true);
+ }else {
+ document.getElementById(divID).appendChild(listField).multiple = false;
+ plainAttributeKeys.push(labelLevel + attributeName+'*'+false);
- document.getElementById(divID).appendChild(optionInput);
+ if (defaultValue){
+ if(defaultValue.includes(':')){
+ defaultValue = defaultValue.split(':')[0];
+ }
+ var location = listemunerateValues.indexOf(defaultValue);
+ document.getElementById(labelLevel +attributeName).options[location+1].selected = true;
+ }
+ }
- var optionButton = document.createElement("BUTTON");
- optionButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
- var buttonLabel = document.createTextNode("+");
- optionButton.appendChild(buttonLabel);
- optionButton.setAttribute("class", "btn btn-add-remove");
- optionButton.setAttribute("onclick" , 'addDynamicOptions("'+ labelLevel + attributeName + '");');
- optionButton.removeAttribute("required");
+ if (ruleFormationCheck) {
+ var optionInput = document.createElement("INPUT");
+ optionInput.setAttribute("type" , "text");
+ optionInput.setAttribute("id" , ''+ labelLevel + attributeName + '.input');
+ optionInput.setAttribute("name" , "ruleName");
+ optionInput.setAttribute("value" , " ");
+ optionInput.setAttribute("style" , "width:300px;");
+ optionInput.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ optionInput.removeAttribute("required");
+ document.getElementById(divID).appendChild(optionInput);
- document.getElementById(divID).appendChild(optionButton);
- document.getElementById(divID).appendChild(br);
- }
+ var optionButton = document.createElement("BUTTON");
+ optionButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ var buttonLabel = document.createTextNode("+");
+ optionButton.appendChild(buttonLabel);
+ optionButton.setAttribute("class", "btn btn-add-remove");
+ optionButton.setAttribute("onclick" , 'addDynamicOptions("'+ labelLevel + attributeName + '");');
+ optionButton.removeAttribute("required");
- if($scope.temp.policy.ruleData != null){
- if (many == true){
- document.getElementById(labelLevel +attributeName).options[0].selected = false;
- for (i=0; i < listemunerateValues.length; i += 1) {
- var testValue = $scope.temp.policy.ruleData[labelLevel +attributeName+'@' + i];
- if (testValue === undefined){
- testValue = $scope.temp.policy.ruleData[labelLevel +attributeName];
- }
- var location = listemunerateValues.indexOf(testValue);
- if (location!=-1){
- document.getElementById(labelLevel +attributeName).options[location].selected = true;
- }
- }
- }else {
- if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){
- document.getElementById(labelLevel + attributeName).value = $scope.temp.policy.ruleData[labelLevel + attributeName];
- }
- }
- }
- };
- addDynamicOptions = function(id) {
- var option = document.createElement("option");
- var value = document.getElementById(id+".input").value;
- option.setAttribute('value', value);
- option.appendChild(document.createTextNode(value));
- document.getElementById(id).options.add(option);
- document.getElementById(id+".input").value = "";
- };
+ document.getElementById(divID).appendChild(optionButton);
+ document.getElementById(divID).appendChild(br);
+ }
- function onlyUnique(value, index, self) {
- return self.indexOf(value) === index;
- };
+ if($scope.temp.policy.ruleData != null){
+ if (many == true){
+ document.getElementById(labelLevel +attributeName).options[0].selected = false;
+ for (i=0; i < listemunerateValues.length; i += 1) {
+ var testValue = $scope.temp.policy.ruleData[labelLevel +attributeName+'@' + i];
+ if (testValue === undefined){
+ testValue = $scope.temp.policy.ruleData[labelLevel +attributeName];
+ }
+ var location = listemunerateValues.indexOf(testValue);
+ if (location!=-1){
+ document.getElementById(labelLevel +attributeName).options[location].selected = true;
+ }
+ }
+ }else {
+ if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){
+ document.getElementById(labelLevel + attributeName).value = $scope.temp.policy.ruleData[labelLevel + attributeName];
+ }
+ }
+ }
+ };
+ addDynamicOptions = function(id) {
+ var option = document.createElement("option");
+ var value = document.getElementById(id+".input").value;
+ option.setAttribute('value', value);
+ option.appendChild(document.createTextNode(value));
+ document.getElementById(id).options.add(option);
+ document.getElementById(id+".input").value = "";
+ };
- function checkDictionary(value){
- for (i = 0; i < $scope.microServiceAttributeDictionaryDatas.length; i++) {
- if ($scope.microServiceAttributeDictionaryDatas[i].name.localeCompare(value)){
- return true;
- }
- }
+ function onlyUnique(value, index, self) {
+ return self.indexOf(value) === index;
+ }
- }
- $scope.savePolicy = function(policy){
- if(policy.itemContent != undefined){
- $scope.refreshCheck = true;
- $scope.policyNavigator = policy.itemContent;
- policy.itemContent = "";
- }
- $scope.savebutton = false;
- var splitAt = '*';
- var dot ='.';
- var jsonPolicy = {};
- if(plainAttributeKeys != null){
- for(a = 0; a < plainAttributeKeys.length; a++){
- var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt);
- console.log("splitPlainAttributeKey: " + splitPlainAttributeKey);
- var searchElement = document.getElementById(splitPlainAttributeKey[0]);
- var key = splitPlainAttributeKey[0];
- if(searchElement == null){
- searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
- key = splitPlainAttributeKey[0]+'@0';
- }else if (searchElement.nodeName == 'BUTTON'){
- searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
- key = splitPlainAttributeKey[0]+'@0';
- }
- if(searchElement != null){
- var keySplit = key.split(dot);
- var elumentLocation = keySplit.length;
- var enumKey = key;
- if (elumentLocation > 1){
- enumKey = keySplit[keySplit.length - 1];
- }
- //check it is undefined or not
- if (enumKeyList != undefined && enumKeyList.indexOf(enumKey) != -1){
- if (splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1].indexOf("true") !== -1){
- var multiSlect = [];
- for ( var i = 0; i < searchElement.selectedOptions.length; i++) {
- multiSlect.push(searchElement.selectedOptions[i].value);
- }
- jsonPolicy[key]= multiSlect;
- }else{
- console.log(" searchElement.value = > " + searchElement.value);
- if(splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1] == "boolean"){
- jsonPolicy[key]= false;
- for(var i=0; i<booleanTrueElements.length; i++){
- if(booleanTrueElements[i] == key){
- jsonPolicy[key]= true;
- }
- }
+ $scope.savePolicy = function(policy){
+ if(policy.itemContent != undefined){
+ $scope.refreshCheck = true;
+ $scope.policyNavigator = policy.itemContent;
+ policy.itemContent = "";
+ }
+ $scope.savebutton = false;
+ var splitAt = '*';
+ var dot ='.';
+ var jsonPolicy = {};
+ if(plainAttributeKeys != null){
+ for(a = 0; a < plainAttributeKeys.length; a++){
+ var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt);
+ var searchElement = document.getElementById(splitPlainAttributeKey[0]);
+ var key = splitPlainAttributeKey[0];
+ if(searchElement == null){
+ searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
+ key = splitPlainAttributeKey[0]+'@0';
+ }else if (searchElement.nodeName == 'BUTTON'){
+ searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
+ key = splitPlainAttributeKey[0]+'@0';
+ }
+ if(searchElement != null){
+ var keySplit = key.split(dot);
+ var elumentLocation = keySplit.length;
+ var enumKey = key;
+ if (elumentLocation > 1){
+ enumKey = keySplit[keySplit.length - 1];
+ }
+ // check it is undefined or not
+ if (enumKeyList != undefined && enumKeyList.indexOf(enumKey) != -1){
+ if (splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1].indexOf("true") !== -1){
+ var multiSlect = [];
+ for ( var i = 0; i < searchElement.selectedOptions.length; i++) {
+ multiSlect.push(searchElement.selectedOptions[i].value);
+ }
+ jsonPolicy[key]= multiSlect;
+ }else{
+ if(splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1] == "boolean"){
+ jsonPolicy[key]= false;
+ for(var i=0; i<booleanTrueElements.length; i++){
+ if(booleanTrueElements[i] == key){
+ jsonPolicy[key]= true;
+ }
+ }
- }else{
- jsonPolicy[key]= searchElement.value;
- }
- }
- } else {
- if(searchElement.value != null){
- jsonPolicy[key]= searchElement.value;
- console.log(" searchElement.value = > " + searchElement.value);
- if(splitPlainAttributeKey[1] == "boolean"){
- jsonPolicy[key]= false;
- for(var i=0; i<booleanTrueElements.length; i++){
- if(booleanTrueElements[i] == key){
- jsonPolicy[key]= true;
- }
- }
- }
- }
- }
- }
- }
- }
+ }else{
+ jsonPolicy[key]= searchElement.value;
+ }
+ }
+ } else {
+ if(searchElement.value != null){
+ if(searchElement.parentElement.children[0].checked == true){
+ jsonPolicy[key]= searchElement.checked;
+ }
+ else{
+ jsonPolicy[key]= window.btoa(searchElement.value);
+ }
+ }
+ }
+ }
+ }
+ }
var uuu = "policycreation/save_policy";
var postData={policyData: policy, policyJSON : jsonPolicy};
$.ajax({
@@ -1597,199 +1526,192 @@ angular.module('abs').controller('dcaeMicroServiceController', ['$scope', '$wind
data: JSON.stringify(postData),
success : function(data){
$scope.$apply(function(){
- $scope.data=data.policyData;
- if($scope.data == 'success'){
- $scope.temp.policy.readOnly = 'true';
- $scope.safetyChecker = data.policyData.split("#")[2];
- if ($scope.safetyChecker!=undefined) {
- Notification.success($scope.safetyChecker);
- }
- $scope.pushStatus=data.policyData.split("&")[1];
- if($scope.pushStatus=="successPush"){
- Notification.success("Policy pushed successfully");
- }
- Notification.success("Policy Saved Successfully.");
- }else if ($scope.data == 'PolicyExists'){
- $scope.savebutton = true;
- Notification.error("Policy Already Exists with Same Name in Scope.");
- }
+ $scope.data=data.policyData;
+ if($scope.data == 'success'){
+ $scope.temp.policy.readOnly = 'true';
+ $scope.safetyChecker = data.policyData.split("#")[2];
+ if ($scope.safetyChecker!=undefined) {
+ Notification.success($scope.safetyChecker);
+ }
+ $scope.pushStatus=data.policyData.split("&")[1];
+ if($scope.pushStatus=="successPush"){
+ Notification.success("Policy pushed successfully");
+ }
+ $scope.temp.policy.readOnly = 'true';
+ $scope.savebutton = true;
+ Notification.success("Policy Saved Successfully.");
+ }else if ($scope.data == 'PolicyExists'){
+ $scope.savebutton = true;
+ Notification.error("Policy Already Exists with Same Name in Scope.");
+ }
});
- console.log($scope.data);
},
error : function(data){
- Notification.error("Error Occured while saving Policy.");
+ Notification.error("Error Occured while saving Policy.");
}
});
};
var booleanTrueElements = [];
$scope.validatePolicy = function(policy){
- document.getElementById("validate").innerHTML = "";
- var splitAt = '*';
- var dot ='.';
- var jsonPolicy = {};
- if(plainAttributeKeys != null){
- for(a = 0; a < plainAttributeKeys.length; a++){
- var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt);
- console.log(splitPlainAttributeKey[1]);
- var searchElement = document.getElementById(splitPlainAttributeKey[0]);
- var key = splitPlainAttributeKey[0];
- if(searchElement == null){
- searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
- key = splitPlainAttributeKey[0]+'@0';
- }else if (searchElement.nodeName == 'BUTTON'){
- searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
- key = splitPlainAttributeKey[0]+'@0';
- }
- if(searchElement != null){
- if (enumKeyList.indexOf(key) != -1){
- if (splitPlainAttributeKey[1].indexOf("true") !== -1){
- var multiSlect = [];
- for ( var i = 0; i < searchElement.selectedOptions.length; i++) {
- multiSlect.push(searchElement.selectedOptions[i].value);
- }
- jsonPolicy[key]= multiSlect;
- }else{
- jsonPolicy[key]= searchElement.value;
- }
- if(searchElement.getAttribute("required")){
- if(!searchElement.value){
- return;
- }
- }
- } else {
- if(searchElement.value != null){
- jsonPolicy[key]= searchElement.value;
- if(searchElement.getAttribute("required")){
- if(!searchElement.value){
- return;
- }
- }
- }
- }
- }
- }
-
-
- var checkedValue = $('.onoffswitch-checkbox:checked').val();
-
- var x = document.getElementsByClassName("onoffswitch-checkbox");
-
-
- if(checkedValue){
- console.log("checkedValue:" + checkedValue);
- for(var i=0; i<x.length; x++){
- console.log("checkbox id: " + x[i].id);
- booleanTrueElements.push(x[i].id)
- }
- }
- }
+ document.getElementById("validate").innerHTML = "";
+ var splitAt = '*';
+ var jsonPolicy = {};
+ if(plainAttributeKeys != null){
+ for(a = 0; a < plainAttributeKeys.length; a++){
+ var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt);
+ var searchElement = document.getElementById(splitPlainAttributeKey[0]);
+ var key = splitPlainAttributeKey[0];
+ if(searchElement == null){
+ searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
+ key = splitPlainAttributeKey[0]+'@0';
+ }else if (searchElement.nodeName == 'BUTTON'){
+ searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
+ key = splitPlainAttributeKey[0]+'@0';
+ }
+ if(searchElement != null){
+ if (enumKeyList.indexOf(key) != -1){
+ if (splitPlainAttributeKey[1].indexOf("true") !== -1){
+ var multiSlect = [];
+ for ( var i = 0; i < searchElement.selectedOptions.length; i++) {
+ multiSlect.push(searchElement.selectedOptions[i].value);
+ }
+ jsonPolicy[key]= multiSlect;
+ }else{
+ jsonPolicy[key]= searchElement.value;
+ }
+ if(searchElement.getAttribute("required")){
+ if(!searchElement.value){
+ return;
+ }
+ }
+ } else {
+ if(searchElement.value != null){
+ if(searchElement.parentElement.children[0].checked == true){
+ jsonPolicy[key]= searchElement.checked;
+ }
+ else{
+ jsonPolicy[key]= searchElement.value;
+ }
+ if(searchElement.getAttribute("required")){
+ if(!searchElement.value){
+ return;
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ var checkedValue = $('.onoffswitch-checkbox:checked').val();
+
+ var x = document.getElementsByClassName("onoffswitch-checkbox");
+
+
+ if(checkedValue){
+ for(var i=0; i<x.length; x++){
+ booleanTrueElements.push(x[i].id)
+ }
+ }
+ }
var uuu = "policyController/validate_policy.htm";
- console.log("$scope.isCheck:" + $scope.isCheck);
if($scope.isCheck == true){
- if(("configName" in policy) == false){
- Notification.error("Validation Failed: configName is required");
- $scope.savebutton = true;
- return;
- }
- if(("location" in policy) == false){
- Notification.error("Validation Failed: location is required");
- $scope.savebutton = true;
- return;
- }
- if(("uuid" in policy) == false){
- Notification.error("Validation Failed: uuid is required");
- $scope.savebutton = true;
- return;
- }
- if(("policyScope" in policy) == false){
- Notification.error("Validation Failed: policyScope is required");
- $scope.savebutton = true;
- return;
- }
+ if(("configName" in policy) == false){
+ Notification.error("Validation Failed: configName is required");
+ $scope.savebutton = true;
+ return;
+ }
+ if(("location" in policy) == false){
+ Notification.error("Validation Failed: location is required");
+ $scope.savebutton = true;
+ return;
+ }
+ if(("uuid" in policy) == false){
+ Notification.error("Validation Failed: uuid is required");
+ $scope.savebutton = true;
+ return;
+ }
+ if(("policyScope" in policy) == false){
+ Notification.error("Validation Failed: policyScope is required");
+ $scope.savebutton = true;
+ return;
+ }
}
var postData={policyData: policy, policyJSON : jsonPolicy};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.validateData = data.data.replace(/\"/g, "");
- $scope.data=data.data.substring(1,8);
- var size = data.data.length;
- if($scope.data == 'success'){
- Notification.success("Validation Success.");
- $scope.savebutton = false;
- if (size > 18){
- var displayWarning = data.data.substring(19,size - 1);
- document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "skyblue";
- }
- }else{
- Notification.error("Validation Failed.");
- document.getElementById("validate").innerHTML = $scope.validateData;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "red";
- $scope.savebutton = true;
- }
-
- });
- console.log($scope.data);
- },
- error : function(data){
- Notification.error("Validation Failed.");
- $scope.savebutton = true;
- }
- });
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.validateData = data.data.replace(/\"/g, "");
+ $scope.data=data.data.substring(1,8);
+ var size = data.data.length;
+ if($scope.data == 'success'){
+ Notification.success("Validation Success.");
+ $scope.savebutton = false;
+ if (size > 18){
+ var displayWarning = data.data.substring(19,size - 1);
+ document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "skyblue";
+ }
+ }else{
+ Notification.error("Validation Failed.");
+ document.getElementById("validate").innerHTML = $scope.validateData;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "red";
+ $scope.savebutton = true;
+ }
+
+ });
+ },
+ error : function(data){
+ Notification.error("Validation Failed.");
+ $scope.savebutton = true;
+ }
+ });
};
- function extend(obj, src) {
- for (var key in src) {
- if (src.hasOwnProperty(key)) obj[key] = src[key];
+ // Switch Click
+ $('.Switch').click(function() {
+ // Check If Enabled (Has 'On' Class)
+ if ($(this).hasClass('On')){
+ // Try To Find Checkbox Within Parent Div, And Check It
+ $(this).parent().find('input:checkbox').attr('checked', true);
+ // Change Button Style - Remove On Class, Add Off Class
+ $(this).removeClass('On').addClass('Off');
+ } else { // If Button Is Disabled (Has 'Off' Class)
+ // Try To Find Checkbox Within Parent Div, And Uncheck It
+ $(this).parent().find('input:checkbox').attr('checked', false);
+ // Change Button Style - Remove Off Class, Add On Class
+ $(this).removeClass('Off').addClass('On');
+ }
+ });
+ // Loops Through Each Toggle Switch On Page
+ $('.Switch').each(function() {
+ // Search of a checkbox within the parent
+ if ($(this).parent().find('input:checkbox').length){
+
+ // If checkbox doesnt have the show class then hide it
+ if (!$(this).parent().find('input:checkbox').hasClass("show")){
+ $(this).parent().find('input:checkbox').hide(); }
+
+ // Look at the checkbox's checkked state
+ if ($(this).parent().find('input:checkbox').is(':checked')){
+ // Checkbox is not checked, Remove the On Class and Add the Off Class
+ $(this).removeClass('On').addClass('Off');
+ } else {
+ // Checkbox Is Checked Remove Off Class, and Add the On Class
+ $(this).removeClass('Off').addClass('On');
}
- return obj;
}
-
- // Switch Click
- $('.Switch').click(function() {
- // Check If Enabled (Has 'On' Class)
- if ($(this).hasClass('On')){
- // Try To Find Checkbox Within Parent Div, And Check It
- $(this).parent().find('input:checkbox').attr('checked', true);
- // Change Button Style - Remove On Class, Add Off Class
- $(this).removeClass('On').addClass('Off');
- } else { // If Button Is Disabled (Has 'Off' Class)
- // Try To Find Checkbox Within Parent Div, And Uncheck It
- $(this).parent().find('input:checkbox').attr('checked', false);
- // Change Button Style - Remove Off Class, Add On Class
- $(this).removeClass('Off').addClass('On');
- }
- });
- // Loops Through Each Toggle Switch On Page
- $('.Switch').each(function() {
- // Search of a checkbox within the parent
- if ($(this).parent().find('input:checkbox').length){
-
- // If checkbox doesnt have the show class then hide it
- if (!$(this).parent().find('input:checkbox').hasClass("show")){
- $(this).parent().find('input:checkbox').hide(); }
-
- // Look at the checkbox's checkked state
- if ($(this).parent().find('input:checkbox').is(':checked')){
- // Checkbox is not checked, Remove the On Class and Add the Off Class
- $(this).removeClass('On').addClass('Off');
- } else {
- // Checkbox Is Checked Remove Off Class, and Add the On Class
- $(this).removeClass('Off').addClass('On');
- }
- }
- });
+ });
}]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js
index 0e53ce9de..4d63dbe3f 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/DecisionPolicyController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,447 +17,411 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-angular.module('abs').controller('decisionPolicyController', [ '$scope', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', '$http', function($scope, PolicyAppService, PolicyNavigator, modalService, $modal, Notification, $http) {
- $("#dialog").hide();
-
- $scope.policyNavigator;
- $scope.savebutton = true;
- $scope.refreshCheck = false;
- $scope.disableOnCreate = false;
- $scope.notRawPolicy = true;
-
- if (!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly) {
- $scope.disableOnCreate = true;
- $scope.temp.policy = {
- policyType : "Decision"
- }
- }
- ;
-
- $scope.refresh = function() {
- if ($scope.refreshCheck) {
- $scope.policyNavigator.refresh();
- }
- $scope.modal('createNewPolicy', true);
- $scope.temp.policy = "";
- };
-
- $scope.modal = function(id, hide) {
- return $('#' + id).modal(hide ? 'hide' : 'show');
- };
-
- if ($scope.temp.policy.ruleProvider == undefined) {
- $scope.temp.policy.ruleProvider = "Custom";
- }
-
- if ($scope.temp.policy.blackListEntryType == undefined) {
- $scope.temp.policy.blackListEntryType = "Use Manual Entry";
- }
-
- PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
- console.log($scope.onapNameDictionaryDatas);
- }, function(error) {
- console.log("failed");
- });
-
- PolicyAppService.getData('getDictionary/get_SettingsDictionaryDataByName').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.settingsDictionaryDatas = JSON.parse($scope.data.settingsDictionaryDatas);
- console.log($scope.settingsDictionaryDatas);
- }, function(error) {
- console.log("failed");
- });
-
- PolicyAppService.getData('get_FunctionDefinitionDataByName').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.functionDefinitionDatas = JSON.parse($scope.data.functionDefinitionDatas);
- console.log($scope.functionDefinitionDatas);
- }, function(error) {
- console.log("failed");
- });
-
- PolicyAppService.getData('getDictionary/get_AttributeDatabyAttributeName').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.attributeDictionaryDatas = JSON.parse($scope.data.attributeDictionaryDatas);
- console.log($scope.attributeDictionaryDatas);
- }, function(error) {
- console.log("failed");
- });
-
- PolicyAppService.getData('getDictionary/get_RainyDayDictionaryDataByName').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.rainyDayDictionaryDatas = JSON.parse($scope.data.rainyDayDictionaryDatas);
- console.log($scope.rainyDayDictionaryDatas);
- }, function(error) {
- console.log("failed");
- });
-
- PolicyAppService.getData('getDictionary/get_RainyDayDictionaryData').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.rainyDayDictionaryDataEntity = JSON.parse($scope.data.rainyDayDictionaryDatas);
- console.log($scope.rainyDayDictionaryDatasEntity);
- }, function(error) {
- console.log("failed");
- });
-
- function extend(obj, src) {
- for (var key in src) {
- if (src.hasOwnProperty(key))
- obj[key] = src[key];
- }
- return obj;
- }
-
- $scope.saveDecisionPolicy = function(policy) {
- if (policy.itemContent != undefined) {
- $scope.refreshCheck = true;
- $scope.policyNavigator = policy.itemContent;
- policy.itemContent = "";
- }
- $scope.savebutton = false;
- console.log(policy);
- var uuu = "policycreation/save_policy";
- var postData = {
- policyData : policy
- };
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType : 'json',
- contentType : 'application/json',
- data : JSON.stringify(postData),
- success : function(data) {
- $scope.$apply(function() {
- $scope.data = data.policyData;
- if ($scope.data == 'success') {
- $scope.temp.policy.readOnly = 'true';
- Notification.success("Policy Saved Successfully.");
- } else if ($scope.data == 'PolicyExists') {
- $scope.savebutton = true;
- Notification.error("Policy Already Exists with Same Name in Scope.");
- }
- });
- console.log($scope.data);
-
- },
- error : function(data) {
- Notification.error("Error Occured while saving Policy.");
- }
- });
- };
-
- $scope.validatePolicy = function(policy) {
- console.log(policy);
- document.getElementById("validate").innerHTML = "";
- var uuu = "policyController/validate_policy.htm";
- var postData = {
- policyData : policy
- };
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType : 'json',
- contentType : 'application/json',
- data : JSON.stringify(postData),
- success : function(data) {
- $scope.$apply(function() {
- $scope.validateData = data.data.replace(/\"/g, "");
- $scope.data = data.data;
- if ($scope.data == '"success"') {
- Notification.success("Validation Success.");
- $scope.savebutton = false;
- } else {
- Notification.error("Validation Failed.");
- document.getElementById("validate").innerHTML = $scope.validateData;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "red";
- $scope.savebutton = true;
- }
-
- });
- console.log($scope.data);
- },
- error : function(data) {
- Notification.error("Validation Failed.");
- $scope.savebutton = true;
- }
- });
- };
-
- if (!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly) {
- $scope.temp.policy.attributes = [];
- $scope.temp.policy.settings = [];
- $scope.temp.policy.ruleAlgorithmschoices = [];
- if (!$scope.temp.policy.yamlparams) {
- $scope.temp.policy.yamlparams = {};
- }
- if (!$scope.temp.policy.yamlparams.targets) {
- $scope.temp.policy.yamlparams.targets = [];
- }
- if (!$scope.temp.policy.yamlparams.blackList) {
- $scope.temp.policy.yamlparams.blackList = [];
- }
- if (!$scope.temp.policy.rainyday) {
- $scope.temp.policy.rainyday = {};
- }
- if (!$scope.temp.policy.rainyday.treatmentTableChoices) {
- $scope.temp.policy.rainyday.treatmentTableChoices = [];
- }
-
- } else if ($scope.temp.policy.ruleProvider == "Custom") {
- if ($scope.temp.policy.attributes.length == 0) {
- $scope.temp.policy.attributes = [];
- }
- if ($scope.temp.policy.settings.length == 0) {
- $scope.temp.policy.settings = [];
- }
- if ($scope.temp.policy.ruleAlgorithmschoices == null || $scope.temp.policy.ruleAlgorithmschoices.length == 0) {
- $scope.temp.policy.ruleAlgorithmschoices = [];
- }
- } else if ($scope.temp.policy.ruleProvider == "GUARD_BL_YAML") {
- if ($scope.temp.policy.yamlparams.blackList == null || $scope.temp.policy.yamlparams.blackList.length == 0) {
- $scope.temp.policy.yamlparams.blackList = [];
- }
- if ($scope.temp.policy.blackListEntries == null || $scope.temp.policy.blackListEntries.length == 0) {
- $scope.temp.policy.blackListEntries = [];
- }
- $scope.blackListEntries = [];
- $scope.temp.policy.appendBlackListEntries = [];
- $scope.blackListEntries = arrayUnique($scope.temp.policy.blackListEntries.concat($scope.temp.policy.yamlparams.blackList));
-
+angular.module('abs').controller('decisionPolicyController',
+ [ '$scope', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', '$http',
+ function($scope, PolicyAppService, PolicyNavigator, modalService, $modal, Notification, $http) {
+ $("#dialog").hide();
+
+ $scope.policyNavigator;
+ $scope.savebutton = true;
+ $scope.refreshCheck = false;
+ $scope.disableOnCreate = false;
+ $scope.notRawPolicy = true;
+
+ if (!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly) {
+ $scope.disableOnCreate = true;
+ $scope.temp.policy = {
+ policyType : "Decision"
+ }
+ }
+
+ $scope.refresh = function() {
+ if ($scope.refreshCheck) {
+ $scope.policyNavigator.refresh();
+ }
+ $scope.modal('createNewPolicy', true);
+ $scope.temp.policy = "";
+ };
+
+ $scope.modal = function(id, hide) {
+ return $('#' + id).modal(hide ? 'hide' : 'show');
+ };
+
+ if ($scope.temp.policy.ruleProvider == undefined) {
+ $scope.temp.policy.ruleProvider = "Custom";
+ }
+
+ if ($scope.temp.policy.blackListEntryType == undefined) {
+ $scope.temp.policy.blackListEntryType = "Use Manual Entry";
+ }
+
+ PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
+ });
+
+ PolicyAppService.getData('getDictionary/get_SettingsDictionaryDataByName').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.settingsDictionaryDatas = JSON.parse($scope.data.settingsDictionaryDatas);
+ });
+
+ PolicyAppService.getData('get_FunctionDefinitionDataByName').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.functionDefinitionDatas = JSON.parse($scope.data.functionDefinitionDatas);
+ });
+
+ PolicyAppService.getData('getDictionary/get_AttributeDatabyAttributeName').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.attributeDictionaryDatas = JSON.parse($scope.data.attributeDictionaryDatas);
+ });
+
+ PolicyAppService.getData('getDictionary/get_RainyDayDictionaryDataByName').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.rainyDayDictionaryDatas = JSON.parse($scope.data.rainyDayDictionaryDatas);
+ });
+
+ PolicyAppService.getData('getDictionary/get_RainyDayDictionaryData').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.rainyDayDictionaryDataEntity = JSON.parse($scope.data.rainyDayDictionaryDatas);
+ });
+
+ $scope.saveDecisionPolicy = function(policy) {
+ if (policy.itemContent != undefined) {
+ $scope.refreshCheck = true;
+ $scope.policyNavigator = policy.itemContent;
+ policy.itemContent = "";
+ }
+ $scope.savebutton = false;
+ var uuu = "policycreation/save_policy";
+ var postData = {
+ policyData : policy
+ };
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType : 'json',
+ contentType : 'application/json',
+ data : JSON.stringify(postData),
+ success : function(data) {
+ $scope.$apply(function() {
+ $scope.data = data.policyData;
+ if ($scope.data == 'success') {
+ $scope.temp.policy.readOnly = 'true';
+ Notification.success("Policy Saved Successfully.");
+ } else if ($scope.data == 'PolicyExists') {
+ $scope.savebutton = true;
+ Notification.error("Policy Already Exists with Same Name in Scope.");
+ }
+ });
+
+ },
+ error : function(data) {
+ Notification.error("Error Occured while saving Policy.");
+ }
+ });
+ };
+
+ $scope.validatePolicy = function(policy) {
+ document.getElementById("validate").innerHTML = "";
+ var uuu = "policyController/validate_policy.htm";
+ var postData = {
+ policyData : policy
+ };
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType : 'json',
+ contentType : 'application/json',
+ data : JSON.stringify(postData),
+ success : function(data) {
+ $scope.$apply(function() {
+ $scope.validateData = data.data.replace(/\"/g, "");
+ $scope.data = data.data;
+ if ($scope.data == '"success"') {
+ Notification.success("Validation Success.");
+ $scope.savebutton = false;
+ } else {
+ Notification.error("Validation Failed.");
+ document.getElementById("validate").innerHTML = $scope.validateData;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "red";
+ $scope.savebutton = true;
+ }
+
+ });
+ },
+ error : function(data) {
+ Notification.error("Validation Failed.");
+ $scope.savebutton = true;
+ }
+ });
+ };
+
+ if (!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly) {
+ $scope.temp.policy.attributes = [];
+ $scope.temp.policy.settings = [];
+ $scope.temp.policy.ruleAlgorithmschoices = [];
+ if (!$scope.temp.policy.yamlparams) {
+ $scope.temp.policy.yamlparams = {};
+ }
+ if (!$scope.temp.policy.yamlparams.targets) {
+ $scope.temp.policy.yamlparams.targets = [];
+ }
+ if (!$scope.temp.policy.yamlparams.blackList) {
+ $scope.temp.policy.yamlparams.blackList = [];
+ }
+ if (!$scope.temp.policy.rainyday) {
+ $scope.temp.policy.rainyday = {};
+ }
+ if (!$scope.temp.policy.rainyday.treatmentTableChoices) {
+ $scope.temp.policy.rainyday.treatmentTableChoices = [];
+ }
+
+ } else if ($scope.temp.policy.ruleProvider == "Custom") {
+ if ($scope.temp.policy.attributes.length == 0) {
+ $scope.temp.policy.attributes = [];
+ }
+ if ($scope.temp.policy.settings.length == 0) {
+ $scope.temp.policy.settings = [];
+ }
+ if ($scope.temp.policy.ruleAlgorithmschoices == null || $scope.temp.policy.ruleAlgorithmschoices.length == 0) {
+ $scope.temp.policy.ruleAlgorithmschoices = [];
+ }
+ } else if ($scope.temp.policy.ruleProvider == "GUARD_BL_YAML") {
+ if ($scope.temp.policy.yamlparams.blackList == null || $scope.temp.policy.yamlparams.blackList.length == 0) {
+ $scope.temp.policy.yamlparams.blackList = [];
+ }
+ if ($scope.temp.policy.blackListEntries == null || $scope.temp.policy.blackListEntries.length == 0) {
+ $scope.temp.policy.blackListEntries = [];
+ }
+ $scope.blackListEntries = [];
+ $scope.temp.policy.appendBlackListEntries = [];
+ $scope.blackListEntries = arrayUnique($scope.temp.policy.blackListEntries.concat($scope.temp.policy.yamlparams.blackList));
+
}else if($scope.temp.policy.ruleProvider=="GUARD_YAML" || $scope.temp.policy.ruleProvider=="GUARD_MIN_MAX"){
- if($scope.temp.policy.yamlparams.targets.length==0){
- $scope.temp.policy.yamlparams.targets = [];
- }
- } else if ($scope.temp.policy.ruleProvider == "Rainy_Day") {
- if ($scope.temp.policy.rainyday.treatmentTableChoices == null || $scope.temp.policy.rainyday.treatmentTableChoices.length == 0) {
- $scope.temp.policy.rainyday.treatmentTableChoices = [];
- }
- }
- $scope.attributeDatas = [ {
- "attributes" : $scope.temp.policy.attributes
- } ];
- $scope.addNewChoice = function() {
- var newItemNo = $scope.temp.policy.attributes.length + 1;
- $scope.temp.policy.attributes.push({
- 'id' : 'choice' + newItemNo
- });
- };
- $scope.removeChoice = function() {
- var lastItem = $scope.temp.policy.attributes.length - 1;
- $scope.temp.policy.attributes.splice(lastItem);
- };
-
- $scope.settingsDatas = [ {
- "settings" : $scope.temp.policy.settings
- } ];
- $scope.addNewSettingsChoice = function() {
- var newItemNo = $scope.temp.policy.settings.length + 1;
- $scope.temp.policy.settings.push({
- 'id' : 'choice' + newItemNo
- });
- };
- $scope.removeSettingsChoice = function() {
- var lastItem = $scope.temp.policy.settings.length - 1;
- $scope.temp.policy.settings.splice(lastItem);
- };
-
- $scope.addNewTarget = function() {
- $scope.temp.policy.yamlparams.targets.push('');
- };
- $scope.removeTarget = function() {
- var lastItem = $scope.temp.policy.yamlparams.targets.length - 1;
- $scope.temp.policy.yamlparams.targets.splice(lastItem);
- };
-
- $scope.addNewBL = function() {
- $scope.temp.policy.yamlparams.blackList.push('');
- };
+ if($scope.temp.policy.yamlparams.targets.length==0){
+ $scope.temp.policy.yamlparams.targets = [];
+ }
+ } else if ($scope.temp.policy.ruleProvider == "Rainy_Day") {
+ if ($scope.temp.policy.rainyday.treatmentTableChoices == null || $scope.temp.policy.rainyday.treatmentTableChoices.length == 0) {
+ $scope.temp.policy.rainyday.treatmentTableChoices = [];
+ }
+ }
+ $scope.attributeDatas = [ {
+ "attributes" : $scope.temp.policy.attributes
+ } ];
+ $scope.addNewChoice = function() {
+ var newItemNo = $scope.temp.policy.attributes.length + 1;
+ $scope.temp.policy.attributes.push({
+ 'id' : 'choice' + newItemNo
+ });
+ };
+ $scope.removeChoice = function() {
+ var lastItem = $scope.temp.policy.attributes.length - 1;
+ $scope.temp.policy.attributes.splice(lastItem);
+ };
+
+ $scope.settingsDatas = [ {
+ "settings" : $scope.temp.policy.settings
+ } ];
+ $scope.addNewSettingsChoice = function() {
+ var newItemNo = $scope.temp.policy.settings.length + 1;
+ $scope.temp.policy.settings.push({
+ 'id' : 'choice' + newItemNo
+ });
+ };
+ $scope.removeSettingsChoice = function() {
+ var lastItem = $scope.temp.policy.settings.length - 1;
+ $scope.temp.policy.settings.splice(lastItem);
+ };
+
+ $scope.addNewTarget = function() {
+ $scope.temp.policy.yamlparams.targets.push('');
+ };
+ $scope.removeTarget = function() {
+ var lastItem = $scope.temp.policy.yamlparams.targets.length - 1;
+ $scope.temp.policy.yamlparams.targets.splice(lastItem);
+ };
+
+ $scope.addNewBL = function() {
+ $scope.temp.policy.yamlparams.blackList.push('');
+ };
$scope.removeBL = function(id) {
- $scope.temp.policy.yamlparams.blackList = $scope.temp.policy.yamlparams.blackList.filter(function (obj){
- return obj !== id;
- });
- };
-
- $scope.treatmentDatas = [ {
- "treatmentValues" : $scope.temp.policy.rainyday.treatmentTableChoices
- } ];
-
- $scope.addNewTreatment = function() {
- $scope.temp.policy.rainyday.treatmentTableChoices.push({});
- };
-
- $scope.removeTreatment = function() {
- var lastItem = $scope.temp.policy.rainyday.treatmentTableChoices.length - 1;
- $scope.temp.policy.rainyday.treatmentTableChoices.splice(lastItem);
- };
-
- $scope.workstepDictionaryDatas = [];
- $scope.getWorkstepValues = function(bbidValue) {
- for (var i = 0; i < $scope.rainyDayDictionaryDataEntity.length; ++i) {
- var obj = $scope.rainyDayDictionaryDataEntity[i];
- if (obj.bbid == bbidValue) {
- $scope.workstepDictionaryDatas.push(obj.workstep);
- }
- }
- };
-
- $scope.allowedTreatmentsDatas = [];
- $scope.getTreatmentValues = function(bbidValue, workstepValue) {
- for (var i = 0; i < $scope.rainyDayDictionaryDataEntity.length; ++i) {
- var obj = $scope.rainyDayDictionaryDataEntity[i];
- if (obj.bbid == bbidValue && obj.workstep == workstepValue) {
- var splitAlarm = obj.treatments.split(',');
- for (var j = 0; j < splitAlarm.length; ++j) {
- $scope.allowedTreatmentsDatas.push(splitAlarm[j]);
- }
- }
- }
- };
-
- $scope.ItemNo = 0;
- $scope.ruleAlgorithmDatas = [ {
- "ruleAlgorithms" : $scope.temp.policy.ruleAlgorithmschoices
- } ];
-
- $scope.addNewRuleAlgorithm = function() {
- if ($scope.temp.policy.ruleAlgorithmschoices != null) {
- var newItemNo = $scope.temp.policy.ruleAlgorithmschoices.length + 1;
- } else {
- var newItemNo = 1;
- }
- if (newItemNo > 1) {
- var value = newItemNo - 1;
- $scope.attributeDictionaryDatas.push('A' + value);
- }
- $scope.temp.policy.ruleAlgorithmschoices.push({
- 'id' : 'A' + newItemNo
- });
- };
-
- $scope.removeRuleAlgorithm = function() {
- var lastItem = $scope.temp.policy.ruleAlgorithmschoices.length - 1;
- $scope.temp.policy.ruleAlgorithmschoices.splice(lastItem);
- };
-
- $scope.providerListener = function(ruleProvider) {
- if (ruleProvider != "Custom") {
- $scope.temp.policy.ruleAlgorithmschoices = [];
- $scope.temp.policy.settings = [];
- $scope.temp.policy.attributes = [];
- }
- if (ruleProvider === "Raw") {
- $scope.notRawPolicy = false;
- }
- };
-
- $scope.importButton = true;
- var fd;
- $scope.uploadBLFile = function(files) {
- fd = new FormData();
- fd.append("file", files[0]);
- var fileExtension = files[0].name.split(".")[1];
- if (fileExtension == "xls") {
- $scope.importButton = false;
- $scope.$apply();
- } else {
- Notification.error("Upload the BlackList file which extends with .xls format.");
- }
- };
-
- function arrayUnique(array) {
- var a = array.concat();
- for (var i = 0; i < a.length; ++i) {
- for (var j = i + 1; j < a.length; ++j) {
- if (a[i] === a[j])
- a.splice(j--, 1);
- }
- }
- return a;
- }
-
- $scope.submitUpload = function() {
- $http.post("policycreation/importBlackListForDecisionPolicy", fd, {
- withCredentials : false,
- headers : {
- 'Content-Type' : undefined
- },
- transformRequest : angular.identity
- }).success(function(data) {
- $scope.data = JSON.parse(data.data);
- $scope.temp.policy.blackListEntries = $scope.data.blackListEntries;
- if ($scope.temp.policy.blackListEntries[0] !== "error") {
- $scope.blackListEntries = arrayUnique($scope.temp.policy.blackListEntries.concat($scope.temp.policy.yamlparams.blackList));
- $scope.temp.policy.appendBlackListEntries = $scope.data.appendBlackListEntries;
- $scope.blackListEntries = $scope.blackListEntries.filter(function(obj) {
- return !$scope.temp.policy.appendBlackListEntries.includes(obj);
- });
- if ($scope.blackListEntries.length == 0) {
- $scope.validateButton = true;
- Notification.error("Black Lists are empty. Minimum one entry required.");
- } else {
- $scope.temp.policy.blackListEntries = $scope.blackListEntries;
- Notification.success("Blacklist File Uploaded Successfully.");
- $scope.validateButton = false;
- $scope.importButton = true;
- }
- } else {
- Notification.error("Blacklist File Upload Failed." + $scope.temp.policy.blackListEntries[1]);
- }
- }).error(function(data) {
- Notification.error("Blacklist File Upload Failed.");
- });
- };
-
- $scope.initializeBlackList = function() {
- if ($scope.temp.policy.blackListEntryType === "Use File Upload") {
- $scope.validateButton = true;
- } else {
- $scope.validateButton = false;
- }
- $("#importFile").val('');
- };
-
- $scope.exportBlackListEntries = function() {
- var uuu = "policycreation/exportDecisionBlackListEntries";
- var postData = {
- policyData : $scope.temp.policy,
- date : $scope.temp.model.modifiedDate,
- version : $scope.temp.model.version
- };
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType : 'json',
- contentType : 'application/json',
- data : JSON.stringify(postData),
- success : function(data) {
- $scope.$apply(function() {
- $scope.data = data.data;
- var url = '../' + $scope.data;
- window.location = url;
- Notification.success("BlackList Entries Exported Successfully.");
- });
- console.log($scope.data);
- },
- error : function(data) {
- Notification.error("Error Occured while Exporting BlackList Entries.");
- }
- });
- };
-} ]); \ No newline at end of file
+ $scope.temp.policy.yamlparams.blackList = $scope.temp.policy.yamlparams.blackList.filter(function (obj){
+ return obj !== id;
+ });
+ };
+
+ $scope.treatmentDatas = [ {
+ "treatmentValues" : $scope.temp.policy.rainyday.treatmentTableChoices
+ } ];
+
+ $scope.addNewTreatment = function() {
+ $scope.temp.policy.rainyday.treatmentTableChoices.push({});
+ };
+
+ $scope.removeTreatment = function() {
+ var lastItem = $scope.temp.policy.rainyday.treatmentTableChoices.length - 1;
+ $scope.temp.policy.rainyday.treatmentTableChoices.splice(lastItem);
+ };
+
+ $scope.workstepDictionaryDatas = [];
+ $scope.getWorkstepValues = function(bbidValue) {
+ for (var i = 0; i < $scope.rainyDayDictionaryDataEntity.length; ++i) {
+ var obj = $scope.rainyDayDictionaryDataEntity[i];
+ if (obj.bbid == bbidValue) {
+ $scope.workstepDictionaryDatas.push(obj.workstep);
+ }
+ }
+ };
+
+ $scope.allowedTreatmentsDatas = [];
+ $scope.getTreatmentValues = function(bbidValue, workstepValue) {
+ for (var i = 0; i < $scope.rainyDayDictionaryDataEntity.length; ++i) {
+ var obj = $scope.rainyDayDictionaryDataEntity[i];
+ if (obj.bbid == bbidValue && obj.workstep == workstepValue) {
+ var splitAlarm = obj.treatments.split(',');
+ for (var j = 0; j < splitAlarm.length; ++j) {
+ $scope.allowedTreatmentsDatas.push(splitAlarm[j]);
+ }
+ }
+ }
+ };
+
+ $scope.ItemNo = 0;
+ $scope.ruleAlgorithmDatas = [ {
+ "ruleAlgorithms" : $scope.temp.policy.ruleAlgorithmschoices
+ } ];
+
+ $scope.addNewRuleAlgorithm = function() {
+ if ($scope.temp.policy.ruleAlgorithmschoices != null) {
+ var newItemNo = $scope.temp.policy.ruleAlgorithmschoices.length + 1;
+ } else {
+ var newItemNo = 1;
+ }
+ if (newItemNo > 1) {
+ var value = newItemNo - 1;
+ $scope.attributeDictionaryDatas.push('A' + value);
+ }
+ $scope.temp.policy.ruleAlgorithmschoices.push({
+ 'id' : 'A' + newItemNo
+ });
+ };
+
+ $scope.removeRuleAlgorithm = function() {
+ var lastItem = $scope.temp.policy.ruleAlgorithmschoices.length - 1;
+ $scope.temp.policy.ruleAlgorithmschoices.splice(lastItem);
+ };
+
+ $scope.providerListener = function(ruleProvider) {
+ if (ruleProvider != "Custom") {
+ $scope.temp.policy.ruleAlgorithmschoices = [];
+ $scope.temp.policy.settings = [];
+ $scope.temp.policy.attributes = [];
+ }
+ if (ruleProvider === "Raw") {
+ $scope.notRawPolicy = false;
+ }
+ };
+
+ $scope.importButton = true;
+ var fd;
+ $scope.uploadBLFile = function(files) {
+ fd = new FormData();
+ fd.append("file", files[0]);
+ var fileExtension = files[0].name.split(".")[1];
+ if (fileExtension == "xls") {
+ $scope.importButton = false;
+ $scope.$apply();
+ } else {
+ Notification.error("Upload the BlackList file which extends with .xls format.");
+ }
+ };
+
+ function arrayUnique(array) {
+ var a = array.concat();
+ for (var i = 0; i < a.length; ++i) {
+ for (var j = i + 1; j < a.length; ++j) {
+ if (a[i] === a[j])
+ a.splice(j--, 1);
+ }
+ }
+ return a;
+ }
+
+ $scope.submitUpload = function() {
+ $http.post("policycreation/importBlackListForDecisionPolicy", fd, {
+ withCredentials : false,
+ headers : {
+ 'Content-Type' : undefined
+ },
+ transformRequest : angular.identity
+ }).success(function(data) {
+ $scope.data = JSON.parse(data.data);
+ $scope.temp.policy.blackListEntries = $scope.data.blackListEntries;
+ if ($scope.temp.policy.blackListEntries[0] !== "error") {
+ $scope.blackListEntries = arrayUnique($scope.temp.policy.blackListEntries.concat($scope.temp.policy.yamlparams.blackList));
+ $scope.temp.policy.appendBlackListEntries = $scope.data.appendBlackListEntries;
+ $scope.blackListEntries = $scope.blackListEntries.filter(function(obj) {
+ return !$scope.temp.policy.appendBlackListEntries.includes(obj);
+ });
+ if ($scope.blackListEntries.length == 0) {
+ $scope.validateButton = true;
+ Notification.error("Black Lists are empty. Minimum one entry required.");
+ } else {
+ $scope.temp.policy.blackListEntries = $scope.blackListEntries;
+ Notification.success("Blacklist File Uploaded Successfully.");
+ $scope.validateButton = false;
+ $scope.importButton = true;
+ }
+ } else {
+ Notification.error("Blacklist File Upload Failed." + $scope.temp.policy.blackListEntries[1]);
+ }
+ }).error(function(data) {
+ Notification.error("Blacklist File Upload Failed.");
+ });
+ };
+
+ $scope.initializeBlackList = function() {
+ if ($scope.temp.policy.blackListEntryType === "Use File Upload") {
+ $scope.validateButton = true;
+ } else {
+ $scope.validateButton = false;
+ }
+ $("#importFile").val('');
+ };
+
+ $scope.exportBlackListEntries = function() {
+ var uuu = "policycreation/exportDecisionBlackListEntries";
+ var postData = {
+ policyData : $scope.temp.policy,
+ date : $scope.temp.model.modifiedDate,
+ version : $scope.temp.model.version
+ };
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType : 'json',
+ contentType : 'application/json',
+ data : JSON.stringify(postData),
+ success : function(data) {
+ $scope.$apply(function() {
+ $scope.data = data.data;
+ var url = '../' + $scope.data;
+ window.location = url;
+ Notification.success("BlackList Entries Exported Successfully.");
+ });
+ },
+ error : function(data) {
+ Notification.error("Error Occured while Exporting BlackList Entries.");
+ }
+ });
+ };
+} ]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js
index 1051ecd9a..b62f91d0d 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/FirewallPolicyController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -17,7 +17,9 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-angular.module('abs').controller('fwPolicyController', ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
+angular.module('abs').controller('fwPolicyController',
+ ['$scope', '$window', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification',
+ function ($scope, $window, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
$("#dialog").hide();
$scope.policyNavigator;
@@ -25,18 +27,18 @@ angular.module('abs').controller('fwPolicyController', ['$scope', '$window', 'Po
$scope.refreshCheck = false;
if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
- $scope.temp.policy = {
- policyType : "Config",
- configPolicyType : "Firewall Config"
- }
+ $scope.temp.policy = {
+ policyType : "Config",
+ configPolicyType : "Firewall Config"
+ }
};
$scope.refresh = function(){
- if($scope.refreshCheck){
- $scope.policyNavigator.refresh();
- }
- $scope.modal('createNewPolicy', true);
- $scope.temp.policy = "";
+ if($scope.refreshCheck){
+ $scope.policyNavigator.refresh();
+ }
+ $scope.modal('createNewPolicy', true);
+ $scope.temp.policy = "";
};
$scope.modal = function(id, hide) {
@@ -44,83 +46,51 @@ angular.module('abs').controller('fwPolicyController', ['$scope', '$window', 'Po
};
$('#ttlDate').datepicker({
- dateFormat: 'dd/mm/yy',
- changeMonth: true,
- changeYear: true,
- onSelect: function(date) {
- angular.element($('#ttlDate')).triggerHandler('input');
- }
+ dateFormat: 'dd/mm/yy',
+ changeMonth: true,
+ changeYear: true,
+ onSelect: function(date) {
+ angular.element($('#ttlDate')).triggerHandler('input');
+ }
});
-
+
PolicyAppService.getData('getDictionary/get_SecurityZoneDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.securityZoneDictionaryDatas = JSON.parse($scope.data.securityZoneDictionaryDatas);
- console.log($scope.securityZoneDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.securityZoneDictionaryDatas = JSON.parse($scope.data.securityZoneDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_TermListDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.termListDictionaryDatas = JSON.parse($scope.data.termListDictionaryDatas);
- console.log($scope.termListDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.termListDictionaryDatas = JSON.parse($scope.data.termListDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_FWDictionaryListDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.fwDictListDictionaryDatas = JSON.parse($scope.data.fwDictListDictionaryDatas);
- console.log($scope.fwDictListDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.fwDictListDictionaryDatas = JSON.parse($scope.data.fwDictListDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_FWParentListDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.fwParentListDictionaryDatas = JSON.parse($scope.data.fwParentListDictionaryDatas);
- console.log($scope.fwParentListDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.fwParentListDictionaryDatas = JSON.parse($scope.data.fwParentListDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_TagPickerNameByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.fwTagPickerDictionaryDatas = JSON.parse($scope.data.fwTagPickerDictionaryDatas);
- console.log($scope.fwTagPickerDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.fwTagPickerDictionaryDatas = JSON.parse($scope.data.fwTagPickerDictionaryDatas);
});
PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
- console.log($scope.riskTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
});
- function extend(obj, src) {
- for (var key in src) {
- if (src.hasOwnProperty(key)) obj[key] = src[key];
- }
- return obj;
- }
-
$scope.viewFWRule = function(policy){
- console.log(policy);
var uuu = "policyController/ViewFWPolicyRule.htm";
var postData={policyData: policy};
$.ajax({
@@ -131,110 +101,106 @@ angular.module('abs').controller('fwPolicyController', ['$scope', '$window', 'Po
data: JSON.stringify(postData),
success : function(data){
$scope.$apply(function(){
- window.alert(data.policyData);
+ window.alert(data.policyData);
});
},
error : function(data){
- Notification.error("Error Occured while Showing Rule.");
+ Notification.error("Error Occured while Showing Rule.");
}
});
};
$scope.saveFWPolicy = function(policy){
- if(policy.itemContent != undefined){
- $scope.refreshCheck = true;
- $scope.policyNavigator = policy.itemContent;
- policy.itemContent = "";
- }
- $scope.savebutton = false;
- console.log(policy);
+ if(policy.itemContent != undefined){
+ $scope.refreshCheck = true;
+ $scope.policyNavigator = policy.itemContent;
+ policy.itemContent = "";
+ }
+ $scope.savebutton = false;
var uuu = "policycreation/save_policy";
- var postData={policyData: policy};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.data=data.policyData;
- if($scope.data == 'success'){
- $scope.temp.policy.readOnly = 'true';
- $scope.pushStatus=data.policyData.split("&")[1];
- if($scope.pushStatus=="successPush"){
- Notification.success("Policy pushed successfully");
- }
- Notification.success("Policy Saved Successfully.");
- }else if ($scope.data == 'PolicyExists'){
- $scope.savebutton = true;
- Notification.error("Policy Already Exists with Same Name in Scope.");
- }
- });
- console.log($scope.data);
- },
- error : function(data){
- Notification.error("Error Occured while saving Policy.");
- }
- });
+ var postData={policyData: policy};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.data=data.policyData;
+ if($scope.data == 'success'){
+ $scope.temp.policy.readOnly = 'true';
+ $scope.pushStatus=data.policyData.split("&")[1];
+ if($scope.pushStatus=="successPush"){
+ Notification.success("Policy pushed successfully");
+ }
+ Notification.success("Policy Saved Successfully.");
+ }else if ($scope.data == 'PolicyExists'){
+ $scope.savebutton = true;
+ Notification.error("Policy Already Exists with Same Name in Scope.");
+ }
+ });
+ },
+ error : function(data){
+ Notification.error("Error Occured while saving Policy.");
+ }
+ });
};
$scope.validatePolicy = function(policy){
- console.log(policy);
- document.getElementById("validate").innerHTML = "";
+ document.getElementById("validate").innerHTML = "";
var uuu = "policyController/validate_policy.htm";
- var postData={policyData: policy};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.validateData = data.data.replace(/\"/g, "");
- $scope.data=data.data.substring(1,8);
- var size = data.data.length;
- if($scope.data == 'success'){
- Notification.success("Validation Success.");
- $scope.savebutton = false;
- if (size > 18){
- var displayWarning = data.data.substring(19,size);
- document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "skyblue";
- }
- }else{
- Notification.error("Validation Failed.");
- document.getElementById("validate").innerHTML = $scope.validateData;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "red";
- $scope.savebutton = true;
- }
-
- });
- console.log($scope.data);
-
- },
- error : function(data){
- Notification.error("Validation Failed.");
- $scope.savebutton = true;
- }
- });
+ var postData={policyData: policy};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.validateData = data.data.replace(/\"/g, "");
+ $scope.data=data.data.substring(1,8);
+ var size = data.data.length;
+ if($scope.data == 'success'){
+ Notification.success("Validation Success.");
+ $scope.savebutton = false;
+ if (size > 18){
+ var displayWarning = data.data.substring(19,size);
+ document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "skyblue";
+ }
+ }else{
+ Notification.error("Validation Failed.");
+ document.getElementById("validate").innerHTML = $scope.validateData;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "red";
+ $scope.savebutton = true;
+ }
+
+ });
+
+ },
+ error : function(data){
+ Notification.error("Validation Failed.");
+ $scope.savebutton = true;
+ }
+ });
};
if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
- $scope.temp.policy.attributes = [];
- $scope.temp.policy.fwattributes = [];
+ $scope.temp.policy.attributes = [];
+ $scope.temp.policy.fwattributes = [];
}else{
if($scope.temp.policy.attributes.length == 0){
- $scope.temp.policy.attributes = [];
+ $scope.temp.policy.attributes = [];
}
if($scope.temp.policy.fwPolicyType == 'Parent Policy'){
- if($scope.temp.policy.fwattributes.length == 0){
- $scope.temp.policy.fwattributes = [];
- }
+ if($scope.temp.policy.fwattributes.length == 0){
+ $scope.temp.policy.fwattributes = [];
+ }
}
}
@@ -258,4 +224,4 @@ angular.module('abs').controller('fwPolicyController', ['$scope', '$window', 'Po
$scope.temp.policy.fwattributes.splice(lastItem);
};
-}]); \ No newline at end of file
+}]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js
index cdeaefdea..58594bc43 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/PolicyTemplateController/OptimizationPolicyController.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-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.
@@ -17,7 +17,9 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
-angular.module('abs').controller('optimizationController', ['$scope', '$window', '$compile', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification', function ($scope, $window, $compile, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
+angular.module('abs').controller('optimizationController',
+ ['$scope', '$window', '$compile', 'PolicyAppService', 'policyNavigator', 'modalService', '$modal', 'Notification',
+ function ($scope, $window, $compile, PolicyAppService, PolicyNavigator, modalService, $modal, Notification) {
$("#dialog").hide();
$scope.policyNavigator;
@@ -26,18 +28,18 @@ angular.module('abs').controller('optimizationController', ['$scope', '$window',
$scope.refreshCheck = false;
if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
- $scope.temp.policy = {
- policyType : "Config",
- configPolicyType : "Optimization"
- }
- };
+ $scope.temp.policy = {
+ policyType : "Config",
+ configPolicyType : "Optimization"
+ }
+ }
$scope.refresh = function(){
- if($scope.refreshCheck){
- $scope.policyNavigator.refresh();
- }
- $scope.modal('createNewPolicy', true);
- $scope.temp.policy = "";
+ if($scope.refreshCheck){
+ $scope.policyNavigator.refresh();
+ }
+ $scope.modal('createNewPolicy', true);
+ $scope.temp.policy = "";
};
$scope.modal = function(id, hide) {
@@ -45,247 +47,226 @@ angular.module('abs').controller('optimizationController', ['$scope', '$window',
};
$('#ttlDate').datepicker({
- dateFormat: 'dd/mm/yy',
- changeMonth: true,
- changeYear: true,
- onSelect: function(date) {
- angular.element($('#ttlDate')).triggerHandler('input');
- }
+ dateFormat: 'dd/mm/yy',
+ changeMonth: true,
+ changeYear: true,
+ onSelect: function(date) {
+ angular.element($('#ttlDate')).triggerHandler('input');
+ }
});
- if ($scope.temp.policy.editPolicy != undefined|| $scope.temp.policy.readOnly != undefined){
- if ($scope.temp.policy.configName == undefined){
- $scope.isCheck = false;
- }else{
- $scope.isCheck = true;
- }
- }else {
- $scope.isCheck = false;
- }
-
- PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
- console.log($scope.onapNameDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ if ($scope.temp.policy.editPolicy != undefined|| $scope.temp.policy.readOnly != undefined){
+ if ($scope.temp.policy.configName == undefined){
+ $scope.isCheck = false;
+ }else{
+ $scope.isCheck = true;
+ }
+ }else {
+ $scope.isCheck = false;
+ }
+
+ PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
+ });
- PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.priorityDatas = JSON.parse($scope.data.priorityDatas);
- console.log($scope.priorityDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('get_DCAEPriorityValues').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.priorityDatas = JSON.parse($scope.data.priorityDatas);
+ });
- PolicyAppService.getData('getDictionary/get_OptimizationModelsDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- var inputModelList = JSON.parse($scope.data.optimizationModelsDictionaryDatas);
- var unique = {};
- var uniqueList = [];
- for(var i = 0; i < inputModelList.length; i++){
- if(typeof unique[inputModelList[i]] == "undefined"){
- unique[inputModelList[i]] = "";
- uniqueList.push(inputModelList[i]);
- }
- }
- $scope.optimizationModelsDictionaryDatas = uniqueList;
- console.log($scope.optimizationModelsDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_OptimizationModelsDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ var inputModelList = JSON.parse($scope.data.optimizationModelsDictionaryDatas);
+ var unique = {};
+ var uniqueList = [];
+ for(var i = 0; i < inputModelList.length; i++){
+ if(typeof unique[inputModelList[i]] == "undefined"){
+ unique[inputModelList[i]] = "";
+ uniqueList.push(inputModelList[i]);
+ }
+ }
+ $scope.optimizationModelsDictionaryDatas = uniqueList;
+ });
- PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
- console.log($scope.riskTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_RiskTypeDataByName').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.riskTypeDictionaryDatas = JSON.parse($scope.data.riskTypeDictionaryDatas);
+ });
- $scope.choices = [];
- $scope.attributeDatas = [{"attributes" : $scope.choices}];
- $scope.isInitEditTemplate = true; //just initially create the edit template, didn't click add button yet.
- $scope.addNewChoice = function(value) {
- console.log("input value : " + value);
- if(value != undefined){
- if (value.startsWith('div.')){
- value = value.replace('div.','');
- }
- var parentElement = document.getElementById("div."+value);
- var div = document.getElementById(value+"@0");
- if(div != null){
- var clone = div.cloneNode(true);
- var addElement = parentElement.childElementCount;
- clone.id = ''+value+'@'+addElement;
- clone.value = '';
- if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ //if it's view or edit
- if($scope.temp.policy.ruleData[clone.id] || ($scope.temp.policy.editPolicy && !$scope.isInitEditTemplate)){ // Only append child if its value found in ruleData or edit mode
- if($scope.temp.policy.ruleData[clone.id]){
- clone.value = $scope.temp.policy.ruleData[clone.id];
- }
- if(!clone.className.includes("child_single")){
- clone.className += ' child_single'; //single element clone
- }
- document.getElementById("div."+value).appendChild(clone);
- plainAttributeKeys.push(''+value+'@'+addElement);
- }
- }else{ //not view or edit
- if(!clone.className.includes("child_single")){
- clone.className += ' child_single'; //single element clone
- }
- document.getElementById("div."+value).appendChild(clone);
- plainAttributeKeys.push(''+value+'@'+addElement);
- }
- }else{
- div = document.getElementById("div."+value+"@0");
-
- if(div){
- div.className += ' children_group'; //div with a group of children.
- }
- var childElement = parentElement.firstElementChild;
- var countParent = parentElement.childElementCount;
- var childElementString = childElement.innerHTML;
- var find = value+"@0";
- var re = new RegExp(find, 'g');
- childElementString = childElementString.replace(re,value+'@' + countParent);
- var clone = childElement.cloneNode(true);
- for (var ii = 0; ii < parentElement.childNodes.length; ii++){
- var childId = parentElement.childNodes[ii].id;
- if(ii = parentElement.childNodes.length){
- var childnewId = childId.slice(0, -1);
- var count = childId.slice(-1);
- }
- }
- var countvalue = parseInt(count) + 1;
- clone.id = childnewId+countvalue;
- clone.value = '';
- clone.innerHTML=childElementString;
- document.getElementById("div."+value).appendChild(clone);
- var selects = clone.getElementsByTagName("select");
- var inputs = clone.getElementsByTagName("input");
- var removeValues = [];
- for(var i=0; i<inputs.length; i++){
- if ($scope.temp.policy.ruleData!=undefined){
- var checkValue = $scope.temp.policy.ruleData[inputs[i].id];
- if (checkValue!=undefined && checkValue != "undefined"){
- if($scope.temp.policy.ruleData != null){
- var checkValue = $scope.temp.policy.ruleData[inputs[i].id];
- document.getElementById(inputs[i].id).value = $scope.temp.policy.ruleData[inputs[i].id];
- plainAttributeKeys.push(inputs[i].id);
- }
- } else {
- plainAttributeKeys.push(inputs[i].id);
- }
- }else {
- plainAttributeKeys.push(inputs[i].id);
- }
- }
-
- for(var i=0; i<selects.length; i++){
- if ($scope.temp.policy.ruleData!=undefined){
- var checkValue = $scope.temp.policy.ruleData[selects[i].id];
- if (checkValue!=undefined && checkValue!="undefined"){
- if($scope.temp.policy.ruleData != null){
- var checkValue = $scope.temp.policy.ruleData[selects[i].id];
- document.getElementById(selects[i].id).value = $scope.temp.policy.ruleData[selects[i].id];
- plainAttributeKeys.push(selects[i].id);
- }
- } else {
- plainAttributeKeys.push(selects[i].id);
- }
- }else {
- plainAttributeKeys.push(selects[i].id);
- }
- }
-
- for (var k=0; k<removeValues.length; k++){
- var elem = document.getElementById(removeValues[k]);
- elem.parentNode.removeChild(elem);
- }
- var ele = angular.element(document.getElementById("div."+value));
- $compile(ele.contents())($scope);
- $scope.$apply();
- }
- }
- };
-
- function findVal(object, key) {
- var value;
- Object.keys(object).some(function(k) {
- if (k === key) {
- value = object[k];
- return true;
- }
- if (object[k] && typeof object[k] === 'object') {
- value = findVal(object[k], key);
- return value !== undefined;
- }
- });
- return value;
- }
-
- $scope.removeChoice = function(value) {
- console.log(value);
- if(value != undefined){
- var c = document.getElementById("div."+value).childElementCount;
-
- if(c == 1){
- Notification.error("The original one is not removable.");
- return;
- }
- document.getElementById("div."+value).removeChild(document.getElementById("div."+value).lastChild);
- }
- };
-
- $scope.pullVersion = function(serviceName) {
- console.log(serviceName);
- if(serviceName != undefined){
- var uuu = "policyController/getModelServiceVersionData.htm";
- var postData={policyData: serviceName};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.optimizationModelsDictionaryVersionDatas = data[0].optimizationModelVersionData;
- });
- },
- error : function(data){
- alert("Error While Retrieving the Template Layout Pattern.");
- }
- });
- }
- };
+ $scope.choices = [];
+ $scope.attributeDatas = [{"attributes" : $scope.choices}];
+ $scope.isInitEditTemplate = true; //just initially create the edit template, didn't click add button yet.
+ $scope.addNewChoice = function(value) {
+ if(value != undefined){
+ if (value.startsWith('div.')){
+ value = value.replace('div.','');
+ }
+ var parentElement = document.getElementById("div."+value);
+ var div = document.getElementById(value+"@0");
+ if(div != null){
+ var clone = div.cloneNode(true);
+ var addElement = parentElement.childElementCount;
+ clone.id = ''+value+'@'+addElement;
+ clone.value = '';
+ if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ //if it's view or edit
+ if($scope.temp.policy.ruleData[clone.id] || ($scope.temp.policy.editPolicy && !$scope.isInitEditTemplate)){ // Only append child if its value found in ruleData or edit mode
+ if($scope.temp.policy.ruleData[clone.id]){
+ clone.value = $scope.temp.policy.ruleData[clone.id];
+ }
+ if(!clone.className.includes("child_single")){
+ clone.className += ' child_single'; //single element clone
+ }
+ document.getElementById("div."+value).appendChild(clone);
+ plainAttributeKeys.push(''+value+'@'+addElement);
+ }
+ }else{ //not view or edit
+ if(!clone.className.includes("child_single")){
+ clone.className += ' child_single'; //single element clone
+ }
+ document.getElementById("div."+value).appendChild(clone);
+ plainAttributeKeys.push(''+value+'@'+addElement);
+ }
+ }else{
+ div = document.getElementById("div."+value+"@0");
+
+ if(div){
+ div.className += ' children_group'; //div with a group of children.
+ }
+ var childElement = parentElement.firstElementChild;
+ var countParent = parentElement.childElementCount;
+ var childElementString = childElement.innerHTML;
+ var find = value+"@0";
+ var re = new RegExp(find, 'g');
+ childElementString = childElementString.replace(re,value+'@' + countParent);
+ var clone = childElement.cloneNode(true);
+ for (var ii = 0; ii < parentElement.childNodes.length; ii++){
+ var childId = parentElement.childNodes[ii].id;
+ if(ii = parentElement.childNodes.length){
+ var childnewId = childId.slice(0, -1);
+ var count = childId.slice(-1);
+ }
+ }
+ var countvalue = parseInt(count) + 1;
+ clone.id = childnewId+countvalue;
+ clone.value = '';
+ clone.innerHTML=childElementString;
+ document.getElementById("div."+value).appendChild(clone);
+ var selects = clone.getElementsByTagName("select");
+ var inputs = clone.getElementsByTagName("input");
+ var removeValues = [];
+ for(var i=0; i<inputs.length; i++){
+ if ($scope.temp.policy.ruleData!=undefined){
+ var checkValue = $scope.temp.policy.ruleData[inputs[i].id];
+ if (checkValue!=undefined && checkValue != "undefined"){
+ if($scope.temp.policy.ruleData != null){
+ var checkValue = $scope.temp.policy.ruleData[inputs[i].id];
+ document.getElementById(inputs[i].id).value = $scope.temp.policy.ruleData[inputs[i].id];
+ plainAttributeKeys.push(inputs[i].id);
+ }
+ } else {
+ plainAttributeKeys.push(inputs[i].id);
+ }
+ }else {
+ plainAttributeKeys.push(inputs[i].id);
+ }
+ }
+
+ for(var i=0; i<selects.length; i++){
+ if ($scope.temp.policy.ruleData!=undefined){
+ var checkValue = $scope.temp.policy.ruleData[selects[i].id];
+ if (checkValue!=undefined && checkValue!="undefined"){
+ if($scope.temp.policy.ruleData != null){
+ var checkValue = $scope.temp.policy.ruleData[selects[i].id];
+ document.getElementById(selects[i].id).value = $scope.temp.policy.ruleData[selects[i].id];
+ plainAttributeKeys.push(selects[i].id);
+ }
+ } else {
+ plainAttributeKeys.push(selects[i].id);
+ }
+ }else {
+ plainAttributeKeys.push(selects[i].id);
+ }
+ }
+
+ for (var k=0; k<removeValues.length; k++){
+ var elem = document.getElementById(removeValues[k]);
+ elem.parentNode.removeChild(elem);
+ }
+ var ele = angular.element(document.getElementById("div."+value));
+ $compile(ele.contents())($scope);
+ $scope.$apply();
+ }
+ }
+ };
+
+ function findVal(object, key) {
+ var value;
+ Object.keys(object).some(function(k) {
+ if (k === key) {
+ value = object[k];
+ return true;
+ }
+ if (object[k] && typeof object[k] === 'object') {
+ value = findVal(object[k], key);
+ return value !== undefined;
+ }
+ });
+ return value;
+ }
+
+ $scope.removeChoice = function(value) {
+ if(value != undefined){
+ var c = document.getElementById("div."+value).childElementCount;
+
+ if(c == 1){
+ Notification.error("The original one is not removable.");
+ return;
+ }
+ document.getElementById("div."+value).removeChild(document.getElementById("div."+value).lastChild);
+ }
+ };
+
+ $scope.pullVersion = function(serviceName) {
+ if(serviceName != undefined){
+ var uuu = "policyController/getModelServiceVersionData.htm";
+ var postData={policyData: serviceName};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.optimizationModelsDictionaryVersionDatas = data[0].optimizationModelVersionData;
+ });
+ },
+ error : function(data){
+ Notification.error("Error While Retrieving the Template Layout Pattern.");
+ }
+ });
+ }
+ };
- var splitDash = '-';
- var splitEqual = '=';
- var splitComma = ',';
- var splitcolon = ':';
- var splitsemicolon = ";";
- var splitEnum = "],";
- var plainAttributeKeys = [];
- var matching = [];
- var enumKeyList = [];
- var dictionaryList = [];
- var dictionaryNameList = [];
+ var splitEqual = '=';
+ var splitComma = ',';
+ var splitcolon = ':';
+ var splitEnum = "],";
+ var plainAttributeKeys = [];
+ var matching = [];
+ var enumKeyList = [];
+ var dictionaryList = [];
+ var dictionaryNameList = [];
$scope.addDataToFields = function(serviceName, version){
if(serviceName != null && version !=null){
- var service=serviceName+"-v"+version;
- var myNode = document.getElementById("DynamicTemplate");
- myNode.innerHTML = '';
+ var service=serviceName+"-v"+version;
+ var myNode = document.getElementById("DynamicTemplate");
+ myNode.innerHTML = '';
var uuu = "policyController/getOptimizationTemplateData.htm";
var postData={policyData: service};
var dataOrderInfo = "";
@@ -298,967 +279,931 @@ angular.module('abs').controller('optimizationController', ['$scope', '$window',
data: JSON.stringify(postData),
success : function(data){
$scope.$apply(function(){
- var plainAttributeKeys = [];
- $scope.optimizationModelData = data[0].optimizationModelData;
- $scope.optimizationJsonDate = data[0].jsonValue;
+ $scope.optimizationModelData = data[0].optimizationModelData;
+ $scope.optimizationJsonDate = data[0].jsonValue;
$scope.dataOrderInfo = null;
- $scope.dataOrderInfo = data[0].dataOrderInfo;
- console.log("data[0].dataOrderInfo: " + data[0].dataOrderInfo);
- console.log("$scope.dataOrderInfo: " + $scope.dataOrderInfo);
- if(data[0].allManyTrueKeys){
- console.log("$scope.allManyTrueKeys: " + $scope.allManyTrueKeys);
- }
- console.log("$scope.optimizationJsonDate: " + $scope.optimizationJsonDate);
- var attributes = $scope.optimizationModelData.attributes;
- var refAttributes = $scope.optimizationModelData.ref_attributes;
- var subAttributes = $scope.optimizationModelData.sub_attributes;
- console.log("attributes: " +attributes);
- console.log("subAttributes: " + subAttributes);
- console.log("refAttributes: " + refAttributes);
-
- var headDefautlsData = data[0].headDefautlsData;
- if(headDefautlsData != null){
- $scope.temp.policy.onapName = headDefautlsData.onapName;
- $scope.temp.policy.guard = headDefautlsData.guard;
- $scope.temp.policy.riskType = headDefautlsData.riskType;
- $scope.temp.policy.riskLevel = headDefautlsData.riskLevel;
- $scope.temp.policy.priority = headDefautlsData.priority;
-
- }else if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
- $scope.temp.policy.onapName = "";
- $scope.temp.policy.guard = "";
- $scope.temp.policy.riskType = "";
- $scope.temp.policy.riskLevel = "";
- $scope.temp.policy.priority = "";
- }
-
- var enumAttributes = $scope.optimizationModelData.enumValues;
- var annotation = $scope.optimizationModelData.annotation;
- var dictionary = $scope.microServiceAttributeDictionaryDatas;
+ var headDefautlsData = data[0].headDefautlsData;
+ if(headDefautlsData != null){
+ $scope.temp.policy.onapName = headDefautlsData.onapName;
+ $scope.temp.policy.guard = headDefautlsData.guard;
+ $scope.temp.policy.riskType = headDefautlsData.riskType;
+ $scope.temp.policy.riskLevel = headDefautlsData.riskLevel;
+ $scope.temp.policy.priority = headDefautlsData.priority;
+
+ }else if(!$scope.temp.policy.editPolicy && !$scope.temp.policy.readOnly){
+ $scope.temp.policy.onapName = "";
+ $scope.temp.policy.guard = "";
+ $scope.temp.policy.riskType = "";
+ $scope.temp.policy.riskLevel = "";
+ $scope.temp.policy.priority = "";
+ }
+
+ var annotation = $scope.optimizationModelData.annotation;
+ var dictionary = $scope.microServiceAttributeDictionaryDatas;
- if (annotation == null || annotation.length<1){
- $scope.isCheck = true;
- }else {
- $scope.isCheck = false;
- var annoationList = annotation.split(splitComma);
- for (k = 0; k < annoationList.length; k++){
- var splitAnnotation = annoationList[k].split(splitEqual);
- if (splitAnnotation[1].includes("matching-true")){
- matching.push(splitAnnotation[0].trim());
- }
- }
+ if (annotation == null || annotation.length<1){
+ $scope.isCheck = true;
+ }else {
+ $scope.isCheck = false;
+ var annoationList = annotation.split(splitComma);
+ for (k = 0; k < annoationList.length; k++){
+ var splitAnnotation = annoationList[k].split(splitEqual);
+ if (splitAnnotation[1].includes("matching-true")){
+ matching.push(splitAnnotation[0].trim());
+ }
+ }
- }
+ }
- if (dictionary!= null && dictionary.length>1){
- for (m=0; m < dictionary.length; m += 1){
- var keyCompare = dictionary[m].name;
- var valueCompare = dictionary[m].value;
- var valueModel = dictionary[m].modelName;
- var conpairService = serviceName;
- if (valueModel.includes('-v')){
- conpairService = service;
- }
- if(valueModel.localeCompare(conpairService) == 0){
- console.log(valueCompare);
- dictionaryList.push(dictionary[m]);
- if (!dictionaryNameList.includes(dictionary[m].name)){
- dictionaryNameList.push(dictionary[m].name)
- }
- }
- }
- }
+ if (dictionary!= null && dictionary.length>1){
+ for (m=0; m < dictionary.length; m += 1){
+ var valueCompare = dictionary[m].value;
+ var valueModel = dictionary[m].modelName;
+ var conpairService = serviceName;
+ if (valueModel.includes('-v')){
+ conpairService = service;
+ }
+ if(valueModel.localeCompare(conpairService) == 0){
+ dictionaryList.push(dictionary[m]);
+ if (!dictionaryNameList.includes(dictionary[m].name)){
+ dictionaryNameList.push(dictionary[m].name)
+ }
+ }
+ }
+ }
- $scope.temp.policy.ruleGridData = [];
-
- if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){
- dataOrderInfo = $scope.dataOrderInfo;
- }
-
- $scope.jsonLayout($scope.optimizationJsonDate);
-
+ $scope.temp.policy.ruleGridData = [];
+
+ if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){
+ dataOrderInfo = $scope.dataOrderInfo;
+ }
+
+ $scope.jsonLayout($scope.optimizationJsonDate);
+
});
if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ // If it's veiw or edit
-
- if($scope.temp.policy.editPolicy){
- $scope.isInitEditTemplate = true;
- }
-
- var checkData = [];
- var data = [];
- // If ruleData contains extra elements created by clicked add button
- if($scope.temp.policy.ruleData != null){
- var propNames = Object.getOwnPropertyNames($scope.temp.policy.ruleData);
- propNames.forEach(function(name) {
- data.push(name);
- });
-
- var extraElements = data;
-
- if(plainAttributeKeys != null){
- for(b = 0; b < plainAttributeKeys.length; b++){ // Remove already populated elements from data array
- var newValue = plainAttributeKeys[b].split("*");
- for(a = 0; a < data.length; a++){
- if(data[a] === newValue[0] || data[a] === (newValue[0]+"@0")){
- extraElements.splice(a, 1);
- }
- }
-
- }
-
- //--- Populate these extra elements created by clicked add button
- for(a = 0; a < extraElements.length; a++){
- if(extraElements[a].includes("@")){
- var index = extraElements[a].lastIndexOf("@");
- if(index > 0){
- // Get the number after @
- var n = getNumOfDigits(extraElements[a], index+1);
-
- var key = extraElements[a].substring(0, index+n+1); //include @x in key also by n+2 since x can be 1,12, etc
- console.log("key: " + key);
- checkData.push(key);
- }
- }
- }
- var unique = checkData.filter(onlyUnique);
- //if no layout order info, keep the process as before
- if(!dataOrderInfo){
- for(i =0; i < unique.length; i++){
- //remove @x and let addNewChoice add @1 or @2...
- //var newKey = unique[i].substring(0, unique[i].length-2);
- var index = unique[i].lastIndexOf("@");
- var newKey = unique[i].substring(0, index);
- console.log("newKey: " + newKey);
- $scope.addNewChoice(newKey);
- }
- }else{
+
+ if($scope.temp.policy.editPolicy){
+ $scope.isInitEditTemplate = true;
+ }
+
+ var checkData = [];
+ var data = [];
+ // If ruleData contains extra elements created by clicked add button
+ if($scope.temp.policy.ruleData != null){
+ var propNames = Object.getOwnPropertyNames($scope.temp.policy.ruleData);
+ propNames.forEach(function(name) {
+ data.push(name);
+ });
+
+ var extraElements = data;
+
+ if(plainAttributeKeys != null){
+ for(b = 0; b < plainAttributeKeys.length; b++){ // Remove already populated elements from data array
+ var newValue = plainAttributeKeys[b].split("*");
+ for(a = 0; a < data.length; a++){
+ if(data[a] === newValue[0] || data[a] === (newValue[0]+"@0")){
+ extraElements.splice(a, 1);
+ }
+ }
+
+ }
+
+ //--- Populate these extra elements created by clicked add button
+ for(a = 0; a < extraElements.length; a++){
+ if(extraElements[a].includes("@")){
+ var index = extraElements[a].lastIndexOf("@");
+ if(index > 0){
+ // Get the number after @
+ var n = getNumOfDigits(extraElements[a], index+1);
+
+ var key = extraElements[a].substring(0, index+n+1); //include @x in key also by n+2 since x can be 1,12, etc
+ checkData.push(key);
+ }
+ }
+ }
+ var unique = checkData.filter(onlyUnique);
+ //if no layout order info, keep the process as before
+ if(!dataOrderInfo){
+ for(i =0; i < unique.length; i++){
+ //remove @x and let addNewChoice add @1 or @2...
+ //var newKey = unique[i].substring(0, unique[i].length-2);
+ var index = unique[i].lastIndexOf("@");
+ var newKey = unique[i].substring(0, index);
+ $scope.addNewChoice(newKey);
+ }
+ }else{
- for (i = 0; i < $scope.labelManyKeys.length; i++) {
- console.log("dataOrderInfo["+i+"]"+ dataOrderInfo[i]);
- var label = $scope.labelManyKeys[i];
- // first add parent/label level
- for (k = 0; k < unique.length; k++){
- var newindex = unique[k].lastIndexOf("@");
- var newKey = unique[k].substring(0, index);
- if(label == newKey){
+ for (i = 0; i < $scope.labelManyKeys.length; i++) {
+ var label = $scope.labelManyKeys[i];
+ // first add parent/label level
+ for (k = 0; k < unique.length; k++){
+ var newKey = unique[k].substring(0, index);
+ if(label == newKey){
//Check this label has bee created or not
- if(!document.getElementById(unique[k])){
- $scope.addNewChoice(newKey);
- }
- unique[k] = "*processed*";
- break;
- }
- }
- }
-
- //---reset to default
- dataOrderInfo = [];
- $scope.labelManyKeys = [];
-
- //---process none labels
- for (j = 0; j < unique.length; j++){
- if(unique[j] != "*processed*"){
- // if not created yet
- if(!document.getElementById(unique[j])){
- var index = unique[j].lastIndexOf("@");
- var newKey = unique[j].substring(0, index);
- $scope.addNewChoice(newKey);
- }
- }
- }
- }
- }
- }
-
- if($scope.temp.policy.editPolicy){
- //clean all the events of addNewChoice
- $scope.$on('$destroy', addNewChoice);
- }
-
+ if(!document.getElementById(unique[k])){
+ $scope.addNewChoice(newKey);
+ }
+ unique[k] = "*processed*";
+ break;
+ }
+ }
+ }
+
+ //---reset to default
+ dataOrderInfo = [];
+ $scope.labelManyKeys = [];
+
+ //---process none labels
+ for (j = 0; j < unique.length; j++){
+ if(unique[j] != "*processed*"){
+ // if not created yet
+ if(!document.getElementById(unique[j])){
+ var index = unique[j].lastIndexOf("@");
+ var newKey = unique[j].substring(0, index);
+ $scope.addNewChoice(newKey);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if($scope.temp.policy.editPolicy){
+ //clean all the events of addNewChoice
+ $scope.$on('$destroy', addNewChoice);
+ }
+
}
var ele = angular.element(document.getElementById("DynamicTemplate"));
- $compile(ele.contents())($scope);
+ $compile(ele.contents())($scope);
$scope.$apply();
},
error : function(data){
- alert("Error While Retrieving the Template Layout Pattern.");
+ Notification.error("Error While Retrieving the Template Layout Pattern.");
}
});
}
};
function getNumOfDigits(str_value, index){
- // Get the number after @
- var str = str_value.substring(index, str_value.length);
- var c = '';
- var n = 0;
- for (var x = 0; x < str.length; x++){
- c = str.charAt(x);
- if(!isNaN(c)){
+ // Get the number after @
+ var str = str_value.substring(index, str_value.length);
+ var c = '';
+ var n = 0;
+ for (var x = 0; x < str.length; x++){
+ c = str.charAt(x);
+ if(!isNaN(c)){
n++;
- }else{
+ }else{
break;
}
- }
- return n;
+ }
+ return n;
}
function getDictionary(attribute){
- var dicName = attribute;
- if(attribute){
- if(attribute.includes(":")){
- dicName = attribute.split(":")[0];
- }
- }
- var dictionaryRegExp = new RegExp(dicName);
- listemunerateValues = [];
- if (dictionaryRegExp.test(dictionaryNameList)) {
- for (p=0; p < dictionaryList.length; p += 1) {
- if (dicName == dictionaryList[p].name) {
- listemunerateValues.push(dictionaryList[p].value);
- }
- }
- }
- return listemunerateValues;
+ var dicName = attribute;
+ if(attribute){
+ if(attribute.includes(":")){
+ dicName = attribute.split(":")[0];
+ }
+ }
+ var dictionaryRegExp = new RegExp(dicName);
+ listemunerateValues = [];
+ if (dictionaryRegExp.test(dictionaryNameList)) {
+ for (p=0; p < dictionaryList.length; p += 1) {
+ if (dicName == dictionaryList[p].name) {
+ listemunerateValues.push(dictionaryList[p].value);
+ }
+ }
+ }
+ return listemunerateValues;
}
function getList(attribute) {
- var enumName = attribute;
- console.log("In getList: attribute => " + attribute);
- if(attribute){
- if(attribute.includes(":")){
- enumName = attribute.split(":")[0];
- }
- }
+ var enumName = attribute;
+ if(attribute){
+ if(attribute.includes(":")){
+ enumName = attribute.split(":")[0];
+ }
+ }
var baseEnum = $scope.optimizationModelData.enumValues;
var enumList = [];
if(baseEnum != null){
- enumList = baseEnum.split(splitEnum);
+ enumList = baseEnum.split(splitEnum);
}
- var enumAttributes;
- var patternTest = new RegExp(enumName);
- for (k=0; k < enumList.length; k += 1){
- if(patternTest.test(enumList[k]) == true){
- enumAttributes = enumList[k].trim();
- }
- }
+ var enumAttributes;
+ var patternTest = new RegExp(enumName);
+ for (k=0; k < enumList.length; k += 1){
+ if(patternTest.test(enumList[k]) == true){
+ enumAttributes = enumList[k].trim();
+ }
+ }
- if(enumAttributes){
- enumAttributes = enumAttributes.replace("[", "");
- enumAttributes = enumAttributes.replace("]", "");
- enumAttributes = enumAttributes.replace(/ /g, '');
- var dropListAfterCommaSplit = enumAttributes.split(splitEqual);
- listemunerateValues = dropListAfterCommaSplit[1].split(splitComma);
- return listemunerateValues;
- }
+ if(enumAttributes){
+ enumAttributes = enumAttributes.replace("[", "");
+ enumAttributes = enumAttributes.replace("]", "");
+ enumAttributes = enumAttributes.replace(/ /g, '');
+ var dropListAfterCommaSplit = enumAttributes.split(splitEqual);
+ listemunerateValues = dropListAfterCommaSplit[1].split(splitComma);
+ return listemunerateValues;
+ }
return [];
}
-
+
function getBooleanList(){
- var booleanList = [];
- booleanList.push(true);
- booleanList.push(false);
- return booleanList;
+ var booleanList = [];
+ booleanList.push(true);
+ booleanList.push(false);
+ return booleanList;
}
function isArray(arrayTest) {
return Object.prototype.toString.call(arrayTest) === '[object Array]';
}
-
- var lableList = [];
-
+
+ var lableList = [];
+
$scope.layOutElementList = [];
$scope.layOutOnlyLableList = [];
var elementOrderNum = 0;
-
- function deconstructJSON(layOutData, level , name) {
+
+ function deconstructJSON(layOutData, level , name) {
- var array = false;
- var label = level;
- var stringValue = "java.lang.String";
- var string = "string";
- var intValue = "int";
- var integerValue = "integer";
- var double = "double";
- var boolean = "boolean";
- var baseLevel = level;
- var list = "list";
- var String = "String";
-
- var attributekey = "";
-
- if (name.length > 1){
- label = label + name + '.';
- }
-
- for (key in layOutData) {
- array = isArray(layOutData[key]);
- console.log("key: " + key , "value: " + layOutData[key]);
-
- if (!!layOutData[key] && typeof(layOutData[key])=="object") {
-
- if (array==false && key!=="0"){
-
- if($scope.dataOrderInfo){
- var labelObject = {"label" : key, "level" : label, "array" : array};
- //save it to the list
- $scope.layOutOnlyLableList.push(labelObject);
-
- }else {
- //call label layout
- $scope.labelLayout(label, key, array );
- }
-
- }
-
- if (array == true && key!=0){
- lableList.push(key);
- }
-
- if (lableList.length > 0){
- array = true;
- }
- if ( key==="0"){
- var newKey = lableList.pop();
-
- if($scope.dataOrderInfo){
-
- var labelObject = {"label" : newKey, "level" : baseLevel, "array" : array};
- //save it to the list
- $scope.layOutOnlyLableList.push(labelObject);
-
- }else {
- //call label layout
- $scope.labelLayout(baseLevel, newKey, array );
- }
-
- if (array){
- label = baseLevel + newKey + '@0.';
- } else {
- label = baseLevel + newKey + '.';
- }
- }
- deconstructJSON(layOutData[key] , label, key);
- } else {
- var attirbuteLabel = label;
- var defaultValue='';
- var isRequired = false;
- if (layOutData[key].includes('defaultValue-')){
- defaultValue = layOutData[key].split('defaultValue-')[1];
- }
+ var array = false;
+ var label = level;
+ var stringValue = "java.lang.String";
+ var string = "string";
+ var intValue = "int";
+ var integerValue = "integer";
+ var double = "double";
+ var boolean = "boolean";
+ var baseLevel = level;
+ var list = "list";
+ var String = "String";
+
+ var attributekey = "";
+
+ if (name.length > 1){
+ label = label + name + '.';
+ }
+
+ for (key in layOutData) {
+ array = isArray(layOutData[key]);
+
+ if (!!layOutData[key] && typeof(layOutData[key])=="object") {
+
+ if (array==false && key!=="0"){
+
+ if($scope.dataOrderInfo){
+ var labelObject = {"label" : key, "level" : label, "array" : array};
+ //save it to the list
+ $scope.layOutOnlyLableList.push(labelObject);
+
+ }else {
+ //call label layout
+ $scope.labelLayout(label, key, array );
+ }
+
+ }
+
+ if (array == true && key!=0){
+ lableList.push(key);
+ }
+
+ if (lableList.length > 0){
+ array = true;
+ }
+ if ( key==="0"){
+ var newKey = lableList.pop();
+
+ if($scope.dataOrderInfo){
+
+ var labelObject = {"label" : newKey, "level" : baseLevel, "array" : array};
+ //save it to the list
+ $scope.layOutOnlyLableList.push(labelObject);
+
+ }else {
+ //call label layout
+ $scope.labelLayout(baseLevel, newKey, array );
+ }
+
+ if (array){
+ label = baseLevel + newKey + '@0.';
+ } else {
+ label = baseLevel + newKey + '.';
+ }
+ }
+ deconstructJSON(layOutData[key] , label, key);
+ } else {
+ var attirbuteLabel = label;
+ var defaultValue='';
+ var isRequired = false;
+ if (layOutData[key].includes('defaultValue-')){
+ defaultValue = layOutData[key].split('defaultValue-')[1];
+ }
- if (key==="0"){
- array = true;
- attributekey = lableList.pop();
- attirbuteLabel = baseLevel;
- } else {
- attributekey = key.split();
- }
-
- if (layOutData[key].includes('required-true')){
- isRequired = true;
- }
-
- var subAttributes = $scope.optimizationModelData.sub_attributes;
-
- if(subAttributes){
- var jsonObject = JSON.parse(subAttributes);
- var allkeys = Object.keys(jsonObject);
- if(allkeys){
- for (var k = 0; k < allkeys.length; k++) {
- var keyValue = allkeys[k];
- console.log(" keyValue:jsonObject["+keyValue+ "]: " + jsonObject[keyValue]);
- if(jsonObject[keyValue]){
- var tempObject = jsonObject[keyValue];
- if(tempObject && tempObject[key]){
- if (tempObject[key].includes('required-true')){
- isRequired = true;
- }
- }
- }
- }
- }
- }
-
- var elementObject = {};
- switch (layOutData[key].split(splitcolon)[0]){
-
- case stringValue:
- case string:
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"text"};
- $scope.layOutElementList.push(elementObject);
- }else{
- $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text");
- }
- break;
- case intValue:
- case integerValue:
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"number"};
- $scope.layOutElementList.push(elementObject);
- }else{
- $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "number");
- }
- break;
- case double:
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"double"};
- $scope.layOutElementList.push(elementObject);
- }else{
- $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "double");
- }
- break;
- case boolean:
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": layOutData[key], "list": getBooleanList, "isRequired": isRequired, "type":"dropBox"};
- $scope.layOutElementList.push(elementObject);
- }else{
- $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], getBooleanList());
- }
- break;
- default:
- if (layOutData[key].includes('dictionary-')){
- var list = getDictionary(layOutData[key].split('dictionary-')[1]);
- }else{
- //--- get dropdown values from enumValues
- var list = getList(layOutData[key]);
- }
- if (list.length===0){ //not dropdown element
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"text"};
- $scope.layOutElementList.push(elementObject);
-
- }else{
- $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text");
- }
- }else{
- if($scope.dataOrderInfo){
- elementOrderNum++;
- elementObject = {"id": elementOrderNum, "attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": layOutData[key],"isRequired": isRequired, "list":list, "type":"dropBox"};
- $scope.layOutElementList.push(elementObject);
- }else{
- $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], list, isRequired);
- }
- }
- break;
- }
- }
- }
- }
+ if (key==="0"){
+ array = true;
+ attributekey = lableList.pop();
+ attirbuteLabel = baseLevel;
+ } else {
+ attributekey = key.split();
+ }
+
+ if (layOutData[key].includes('required-true')){
+ isRequired = true;
+ }
+
+ var subAttributes = $scope.optimizationModelData.sub_attributes;
+
+ if(subAttributes){
+ var jsonObject = JSON.parse(subAttributes);
+ var allkeys = Object.keys(jsonObject);
+ if(allkeys){
+ for (var k = 0; k < allkeys.length; k++) {
+ var keyValue = allkeys[k];
+ if(jsonObject[keyValue]){
+ var tempObject = jsonObject[keyValue];
+ if(tempObject && tempObject[key]){
+ if (tempObject[key].includes('required-true')){
+ isRequired = true;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ var elementObject = {};
+ switch (layOutData[key].split(splitcolon)[0]){
+
+ case stringValue:
+ case string:
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue, "isRequired": isRequired, "type":"text"};
+ $scope.layOutElementList.push(elementObject);
+ }else{
+ $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text");
+ }
+ break;
+ case intValue:
+ case integerValue:
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"number"};
+ $scope.layOutElementList.push(elementObject);
+ }else{
+ $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "number");
+ }
+ break;
+ case double:
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"double"};
+ $scope.layOutElementList.push(elementObject);
+ }else{
+ $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "double");
+ }
+ break;
+ case boolean:
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": layOutData[key], "list": getBooleanList, "isRequired": isRequired, "type":"dropBox"};
+ $scope.layOutElementList.push(elementObject);
+ }else{
+ $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], getBooleanList());
+ }
+ break;
+ default:
+ if (layOutData[key].includes('dictionary-')){
+ var list = getDictionary(layOutData[key].split('dictionary-')[1]);
+ }else{
+ //--- get dropdown values from enumValues
+ var list = getList(layOutData[key]);
+ }
+ if (list.length===0){ //not dropdown element
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum,"attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": defaultValue,"isRequired": isRequired, "type":"text"};
+ $scope.layOutElementList.push(elementObject);
+
+ }else{
+ $scope.attributeBox(attributekey, array, attirbuteLabel, defaultValue, isRequired, "text");
+ }
+ }else{
+ if($scope.dataOrderInfo){
+ elementOrderNum++;
+ elementObject = {"id": elementOrderNum, "attributekey" : attributekey, "array": array, "attirbuteLabel" : attirbuteLabel, "defaultValue": layOutData[key],"isRequired": isRequired, "list":list, "type":"dropBox"};
+ $scope.layOutElementList.push(elementObject);
+ }else{
+ $scope.dropBoxLayout(attirbuteLabel, attributekey, array, layOutData[key], list, isRequired);
+ }
+ }
+ break;
+ }
+ }
+ }
+ }
$scope.validContionalRequired = function(parentId) {
- console.log("ng-blur event: parentId : " + parentId);
var c = document.getElementById(parentId).children;
var i;
var hasValue = false;
for (i = 0; i < c.length; i++) {
- if(c[i].getAttribute("data-conditional")){
- console.log(c[i].getAttribute("data-conditional"));
- console.log(c[i].value);
- if(c[i].value != null && c[i].value.trim() != ""){
- hasValue = true;
- }
- }
+ if(c[i].getAttribute("data-conditional")){
+ if(c[i].value != null && c[i].value.trim() != ""){
+ hasValue = true;
+ }
+ }
}
- for (i = 0; i < c.length; i++) {
- if(c[i].getAttribute("data-conditional")){
- if(hasValue){
- c[i].setAttribute("required", true);
- }else{
- c[i].removeAttribute("required");
- }
- }
- }
+ for (i = 0; i < c.length; i++) {
+ if(c[i].getAttribute("data-conditional")){
+ if(hasValue){
+ c[i].setAttribute("required", true);
+ }else{
+ c[i].removeAttribute("required");
+ }
+ }
+ }
}
-
+
$scope.jsonLayout = function(layOutData){
-
+
deconstructJSON(layOutData , "", "");
-
- var orderValue = $scope.dataOrderInfo;
- var layOutElementList = $scope.layOutElementList;
- var labelList = $scope.layOutOnlyLableList;
-
- //reset to default
- elementOrderNum = 0;
- $scope.layOutElementList = [];
- $scope.layOutOnlyLableList = [];
-
- // Only layout in order if order info provided
- if(orderValue){
-
- if(orderValue.includes("[")){
- orderValue = orderValue.replace("[", "") ;
- orderValue = orderValue.replace("]", "") ;
- }
-
- orderValue = orderValue.split(',') ;
-
- for (i = 0; i < orderValue.length; i++) {
- console.log("orderValue["+i+"]"+ orderValue[i]);
- var key = orderValue[i].trim();
-
- //--- Create labels first {"label" : newKey, "level" : baseLevel, "array" : array};
- if(labelList){
- for (k = 0; k < labelList.length; k++){
-
- var label = labelList[k].label.toString().trim();
- var level = labelList[k].level.toString().trim();
- var array = labelList[k].array;
-
- if(key == label){
- $scope.labelLayout(level, label, array);
- //in case to have duplicate label names
- labelList[k].label = "*processed*";
- break;
- }
- }
- }
- //--- then layout each element based on its order defined in YAML file
- for (j = 0; j < layOutElementList.length; j++) {
-
- var attributekey = layOutElementList[j].attributekey.toString().trim();
-
- if(key == attributekey){
-
- var attirbuteLabel = layOutElementList[j].attirbuteLabel.toString().trim();
- var defaultValue = layOutElementList[j].defaultValue.toString().trim();
- var isRequired = layOutElementList[j].isRequired;
-
- console.log("layOutElementList[" +j+ "]: id:" + layOutElementList[j].id + ", attributekey:"+ layOutElementList[j].attributekey + ", attirbuteLabel:" + layOutElementList[j].attirbuteLabel);
-
- if (layOutElementList[j].type == "dropBox"){
- $scope.dropBoxLayout(attirbuteLabel, attributekey, layOutElementList[j].array, defaultValue, layOutElementList[j].list, isRequired);
-
- }else{
- $scope.attributeBox(attributekey, layOutElementList[j].array, attirbuteLabel, defaultValue, isRequired, layOutElementList[j].type);
-
- }
-
- //in case to have duplicate attribute names
- layOutElementList[j].attributekey = "*processed*";
- break;
- }
-
- }
-
- }
- }
+
+ var orderValue = $scope.dataOrderInfo;
+ var layOutElementList = $scope.layOutElementList;
+ var labelList = $scope.layOutOnlyLableList;
+
+ //reset to default
+ elementOrderNum = 0;
+ $scope.layOutElementList = [];
+ $scope.layOutOnlyLableList = [];
+
+ // Only layout in order if order info provided
+ if(orderValue){
+
+ if(orderValue.includes("[")){
+ orderValue = orderValue.replace("[", "") ;
+ orderValue = orderValue.replace("]", "") ;
+ }
+
+ orderValue = orderValue.split(',') ;
+
+ for (i = 0; i < orderValue.length; i++) {
+ var key = orderValue[i].trim();
+
+ //--- Create labels first {"label" : newKey, "level" : baseLevel, "array" : array};
+ if(labelList){
+ for (k = 0; k < labelList.length; k++){
+
+ var label = labelList[k].label.toString().trim();
+ var level = labelList[k].level.toString().trim();
+ var array = labelList[k].array;
+
+ if(key == label){
+ $scope.labelLayout(level, label, array);
+ //in case to have duplicate label names
+ labelList[k].label = "*processed*";
+ break;
+ }
+ }
+ }
+ //--- then layout each element based on its order defined in YAML file
+ for (j = 0; j < layOutElementList.length; j++) {
+
+ var attributekey = layOutElementList[j].attributekey.toString().trim();
+
+ if(key == attributekey){
+
+ var attirbuteLabel = layOutElementList[j].attirbuteLabel.toString().trim();
+ var defaultValue = layOutElementList[j].defaultValue.toString().trim();
+ var isRequired = layOutElementList[j].isRequired;
+
+
+ if (layOutElementList[j].type == "dropBox"){
+ $scope.dropBoxLayout(attirbuteLabel, attributekey, layOutElementList[j].array, defaultValue, layOutElementList[j].list, isRequired);
+
+ }else{
+ $scope.attributeBox(attributekey, layOutElementList[j].array, attirbuteLabel, defaultValue, isRequired, layOutElementList[j].type);
+
+ }
+
+ //in case to have duplicate attribute names
+ layOutElementList[j].attributekey = "*processed*";
+ break;
+ }
+
+ }
+
+ }
+ }
}
$scope.attributeBox = function(attibuteKey, attributeManyKey, labelValue, defaultValue, isRequired, dataType ){
- $scope.temp.policy.ruleGridData.push(attibuteKey);
- var br = document.createElement("BR");
-
- var label = document.createElement("Label");
- var labeltext = null;
- var requiredLabName = "";
- if (matching.includes(attibuteKey)){
- labeltext = document.createTextNode(attibuteKey + "*!");
- isRequired = true; //set required as true for matching element
- }else {
- if(isRequired){
- requiredLabName = attibuteKey + " * ";
- labeltext = document.createTextNode(requiredLabName);
- }else{
- labeltext = document.createTextNode(attibuteKey);
- }
- }
+ $scope.temp.policy.ruleGridData.push(attibuteKey);
+ var br = document.createElement("BR");
+
+ var label = document.createElement("Label");
+ var labeltext = null;
+ var requiredLabName = "";
+ if (matching.includes(attibuteKey)){
+ labeltext = document.createTextNode(attibuteKey + "*!");
+ isRequired = true; //set required as true for matching element
+ }else {
+ if(isRequired){
+ requiredLabName = attibuteKey + " * ";
+ labeltext = document.createTextNode(requiredLabName);
+ }else{
+ labeltext = document.createTextNode(attibuteKey);
+ }
+ }
-
- var divID = labelValue;
-
- if (labelValue.length < 1){
- divID = "DynamicTemplate";
- }else if (labelValue.endsWith('.')){
- var divID = 'div.'+ labelValue.substring(0, labelValue.length-1);
- }
-
- label.appendChild(labeltext);
-
- var textField = document.createElement("INPUT");
-
- textField.setAttribute("class" , "form-control");
- if(dataType){
- if(dataType == "double"){
- textField.setAttribute("type" , "number");
- textField.setAttribute("step" , "any");
- }else{
- textField.setAttribute("type" , dataType);
- }
- }
- textField.setAttribute("style" , "width:300px;");
- textField.setAttribute("ng-disabled" , "temp.policy.readOnly");
- var checkKey;
- var id = "";
- if(attributeManyKey){
- checkKey = labelValue + attibuteKey+'@0';
- textField.setAttribute("id" , ''+labelValue + attibuteKey+'@0'+'');
- var divTag = document.createElement("div");
- divTag.setAttribute("id", "div."+ labelValue +attibuteKey);
- var addButton = document.createElement("BUTTON");
- var buttonaddLabel = document.createTextNode("+");
- addButton.appendChild(buttonaddLabel);
- addButton.setAttribute("id", labelValue + attibuteKey);
- addButton.setAttribute("class", "btn btn-add-remove");
- addButton.setAttribute("ng-click" , 'addNewChoice("'+labelValue + attibuteKey+'");');
- addButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
- var removeButton = document.createElement("BUTTON");
- var buttonremoveLabel = document.createTextNode("-");
- removeButton.appendChild(buttonremoveLabel);
- removeButton.setAttribute("class", "btn btn-add-remove");
- removeButton.setAttribute("ng-click" , 'removeChoice("'+labelValue + attibuteKey+'");');
- removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
- document.getElementById(divID).appendChild(addButton);
- document.getElementById(divID).appendChild(removeButton);
- document.getElementById(divID).appendChild(label);
- id = "div."+labelValue+attibuteKey;
- divTag.setAttribute("id", id);
- document.getElementById(divID).appendChild(divTag);
- textField.className += ' first_child';
- if(isRequired){
- textField.setAttribute("required", "true");
- }
- divTag.appendChild(textField);
- document.getElementById(divID).appendChild(divTag);
-
- }else{
- checkKey = labelValue + attibuteKey;
- textField.setAttribute("id" , ''+labelValue +attibuteKey+'');
- if(document.getElementById(divID).hasAttribute('required') || !document.getElementById(divID).hasAttribute('data-conditional')){
- if(requiredLabName.includes("*") || isRequired){
- textField.setAttribute("required", "true");
- }
- }else if (document.getElementById(divID).hasAttribute('data-conditional')){
- if(requiredLabName.includes("*")){
- var requiredNode = document.createElement('span');
- requiredNode.setAttribute("class", "mstooltip");
- requiredNode.textContent = "?";
- label.appendChild(requiredNode);
-
- var requiredNodeToolTip = document.createElement('span');
- requiredNodeToolTip.setAttribute("class", "tooltiptext");
- requiredNodeToolTip.textContent = "Conditional Required";
- requiredNode.appendChild(requiredNodeToolTip);
-
- textField.setAttribute("data-conditional", divID);
- textField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')");
- }
- }
-
- document.getElementById(divID).appendChild(label);
- document.getElementById(divID).appendChild(textField);
- document.getElementById(divID).appendChild(br);
-
- }
+
+ var divID = labelValue;
+
+ if (labelValue.length < 1){
+ divID = "DynamicTemplate";
+ }else if (labelValue.endsWith('.')){
+ var divID = 'div.'+ labelValue.substring(0, labelValue.length-1);
+ }
+
+ label.appendChild(labeltext);
+
+ var textField = document.createElement("INPUT");
+
+ textField.setAttribute("class" , "form-control");
+ if(dataType){
+ if(dataType == "double"){
+ textField.setAttribute("type" , "number");
+ textField.setAttribute("step" , "any");
+ }else{
+ textField.setAttribute("type" , dataType);
+ }
+ }
+ textField.setAttribute("style" , "width:300px;");
+ textField.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ var checkKey;
+ var id = "";
+ if(attributeManyKey){
+ checkKey = labelValue + attibuteKey+'@0';
+ textField.setAttribute("id" , ''+labelValue + attibuteKey+'@0'+'');
+ var divTag = document.createElement("div");
+ divTag.setAttribute("id", "div."+ labelValue +attibuteKey);
+ var addButton = document.createElement("BUTTON");
+ var buttonaddLabel = document.createTextNode("+");
+ addButton.appendChild(buttonaddLabel);
+ addButton.setAttribute("id", labelValue + attibuteKey);
+ addButton.setAttribute("class", "btn btn-add-remove");
+ addButton.setAttribute("ng-click" , 'addNewChoice("'+labelValue + attibuteKey+'");');
+ addButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ var removeButton = document.createElement("BUTTON");
+ var buttonremoveLabel = document.createTextNode("-");
+ removeButton.appendChild(buttonremoveLabel);
+ removeButton.setAttribute("class", "btn btn-add-remove");
+ removeButton.setAttribute("ng-click" , 'removeChoice("'+labelValue + attibuteKey+'");');
+ removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ document.getElementById(divID).appendChild(addButton);
+ document.getElementById(divID).appendChild(removeButton);
+ document.getElementById(divID).appendChild(label);
+ id = "div."+labelValue+attibuteKey;
+ divTag.setAttribute("id", id);
+ document.getElementById(divID).appendChild(divTag);
+ textField.className += ' first_child';
+ if(isRequired){
+ textField.setAttribute("required", "true");
+ }
+ divTag.appendChild(textField);
+ document.getElementById(divID).appendChild(divTag);
+
+ }else{
+ checkKey = labelValue + attibuteKey;
+ textField.setAttribute("id" , ''+labelValue +attibuteKey+'');
+ if(document.getElementById(divID).hasAttribute('required') || !document.getElementById(divID).hasAttribute('data-conditional')){
+ if(requiredLabName.includes("*") || isRequired){
+ textField.setAttribute("required", "true");
+ }
+ }else if (document.getElementById(divID).hasAttribute('data-conditional')){
+ if(requiredLabName.includes("*")){
+ var requiredNode = document.createElement('span');
+ requiredNode.setAttribute("class", "mstooltip");
+ requiredNode.textContent = "?";
+ label.appendChild(requiredNode);
+
+ var requiredNodeToolTip = document.createElement('span');
+ requiredNodeToolTip.setAttribute("class", "tooltiptext");
+ requiredNodeToolTip.textContent = "Conditional Required";
+ requiredNode.appendChild(requiredNodeToolTip);
+
+ textField.setAttribute("data-conditional", divID);
+ textField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')");
+ }
+ }
+
+ document.getElementById(divID).appendChild(label);
+ document.getElementById(divID).appendChild(textField);
+ document.getElementById(divID).appendChild(br);
+
+ }
- if(divID.includes("@0") && divID.includes("div.")){
- var firstChild_Id = divID.split("@0")[0];
- var firstChild_element = document.getElementById(firstChild_Id);
- if(firstChild_element){
- firstChild_element.className += ' children_group'; //here is a div with a group of children.
- }
- }
- console.log('firstChild_Id: ' + firstChild_Id);
- console.log('divID: ' + divID);
-
- if (defaultValue.length > 0){
- if(defaultValue.includes(":")){
- defaultValue = defaultValue.split(":")[0];
- if(defaultValue === "NA") {
- defaultValue = "";
- }
- }
- if(defaultValue != "undefined" && defaultValue != undefined && defaultValue != "null"){
- document.getElementById(checkKey).value = defaultValue;
- }
- }
-
- if($scope.temp.policy.ruleData != null){
- if (attributeManyKey){
- var newCheckKey = checkKey.replace(attibuteKey + '@0',attibuteKey);
- if($scope.temp.policy.ruleData[newCheckKey +'@0'] != undefined && $scope.temp.policy.ruleData[newCheckKey +'@0'] != "undefined"){
- document.getElementById(newCheckKey +'@0').value = $scope.temp.policy.ruleData[newCheckKey +'@0'];
- }
- }else{
- if($scope.temp.policy.ruleData[checkKey] != undefined && $scope.temp.policy.ruleData[checkKey] != "undefined"){
- document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey];
- }
- }
- }
- plainAttributeKeys.push(labelValue + attibuteKey+'*'+attributeManyKey);
+ if(divID.includes("@0") && divID.includes("div.")){
+ var firstChild_Id = divID.split("@0")[0];
+ var firstChild_element = document.getElementById(firstChild_Id);
+ if(firstChild_element){
+ firstChild_element.className += ' children_group'; //here is a div with a group of children.
+ }
+ }
+
+ if (defaultValue.length > 0){
+ if(defaultValue.includes(":")){
+ defaultValue = defaultValue.split(":")[0];
+ if(defaultValue === "NA") {
+ defaultValue = "";
+ }
+ }
+ if(defaultValue != "undefined" && defaultValue != undefined && defaultValue != "null"){
+ document.getElementById(checkKey).value = defaultValue;
+ }
+ }
+
+ if($scope.temp.policy.ruleData != null){
+ if (attributeManyKey){
+ var newCheckKey = checkKey.replace(attibuteKey + '@0',attibuteKey);
+ if($scope.temp.policy.ruleData[newCheckKey +'@0'] != undefined && $scope.temp.policy.ruleData[newCheckKey +'@0'] != "undefined"){
+ document.getElementById(newCheckKey +'@0').value = $scope.temp.policy.ruleData[newCheckKey +'@0'];
+ }
+ }else{
+ if($scope.temp.policy.ruleData[checkKey] != undefined && $scope.temp.policy.ruleData[checkKey] != "undefined"){
+ document.getElementById(checkKey).value = $scope.temp.policy.ruleData[checkKey];
+ }
+ }
+ }
+ plainAttributeKeys.push(labelValue + attibuteKey+'*'+attributeManyKey);
};
$scope.labelManyKeys = [];
$scope.labelLayout = function(labelValue, lableName, labelManyKey ){
- var label = document.createElement("Label")
- var divID = labelValue;
- if (labelValue.endsWith('.')){
- var workingLabel = labelValue.substring(0, labelValue.length-1);
- }else {
- var workingLabel = labelValue;
- }
-
- if (labelValue.length < 1){
- divID = "DynamicTemplate";
- } else if (labelValue.endsWith('.')){
- var divID = 'div.'+ labelValue.substring(0, labelValue.length-1);
- }
-
- var subAttributes = $scope.optimizationModelData.subattributes;
- var jsonObject = JSON.parse(subAttributes);
- var lablInfo = findVal(jsonObject, lableName);
- console.log("findValue : " + lableName +": "+ lablInfo);
- var star = "";
- var required = null;
- if(lablInfo){
- if(lablInfo.includes("required-true")){
- star = " *";
- required = true;
- }else if (lablInfo.includes("required-false")){
- required = false
- }
- }
-
- var labeltext = document.createTextNode(lableName + star);
-
- label.appendChild(labeltext);
+ var label = document.createElement("Label")
+ var divID = labelValue;
+ if (labelValue.endsWith('.')){
+ var workingLabel = labelValue.substring(0, labelValue.length-1);
+ }else {
+ var workingLabel = labelValue;
+ }
+
+ if (labelValue.length < 1){
+ divID = "DynamicTemplate";
+ } else if (labelValue.endsWith('.')){
+ var divID = 'div.'+ labelValue.substring(0, labelValue.length-1);
+ }
+
+ var subAttributes = $scope.optimizationModelData.subattributes;
+ var jsonObject = JSON.parse(subAttributes);
+ var lablInfo = findVal(jsonObject, lableName);
+ var star = "";
+ var required = null;
+ if(lablInfo){
+ if(lablInfo.includes("required-true")){
+ star = " *";
+ required = true;
+ }else if (lablInfo.includes("required-false")){
+ required = false
+ }
+ }
+
+ var labeltext = document.createTextNode(lableName + star);
+
+ label.appendChild(labeltext);
- if(labelManyKey){
- var addButton = document.createElement("BUTTON");
- var buttonLabel = document.createTextNode("+");
- addButton.appendChild(buttonLabel);
- addButton.setAttribute("class", "btn btn-add-remove");
- addButton.setAttribute("ng-click" , 'addNewChoice("'+labelValue + lableName+'");');
- addButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
- var removeButton = document.createElement("BUTTON");
- var buttonremoveLabel = document.createTextNode("-");
- removeButton.appendChild(buttonremoveLabel);
- removeButton.setAttribute("class", "btn btn-add-remove");
- removeButton.setAttribute("ng-click" , 'removeChoice("'+labelValue +lableName+'");');
- removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
- document.getElementById(divID).appendChild(addButton);
- document.getElementById(divID).appendChild(removeButton);
- document.getElementById(divID).appendChild(label);
- var id = "div."+labelValue+lableName;
- var divTag = document.createElement("div");
- divTag.setAttribute("id", id);
- document.getElementById(divID).appendChild(divTag);
-
- var divTag = document.createElement("div");
- divTag.setAttribute("id", id +'@0');
-
- divTag.className += ' children_group'; //here is div with a group of children.
-
- if(required){
- divTag.setAttribute("required", required);
- }else if(required == false){
- divTag.setAttribute("data-conditional", "yes");
- }
-
- document.getElementById(id).appendChild(divTag);
-
- $scope.labelManyKeys.push(lableName);
-
- }else{
- var divTag = document.createElement("div");
- divTag.setAttribute("id", "div."+labelValue+lableName);
- divTag.className += ' children_group'; //here is div with a group of children.
- if(required){
- divTag.setAttribute("required", required);
- }else if(required == false){
- divTag.setAttribute("data-conditional", "yes");
- }
- document.getElementById(divID).appendChild(label);
- document.getElementById(divID).appendChild(divTag);
- }
+ if(labelManyKey){
+ var addButton = document.createElement("BUTTON");
+ var buttonLabel = document.createTextNode("+");
+ addButton.appendChild(buttonLabel);
+ addButton.setAttribute("class", "btn btn-add-remove");
+ addButton.setAttribute("ng-click" , 'addNewChoice("'+labelValue + lableName+'");');
+ addButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ var removeButton = document.createElement("BUTTON");
+ var buttonremoveLabel = document.createTextNode("-");
+ removeButton.appendChild(buttonremoveLabel);
+ removeButton.setAttribute("class", "btn btn-add-remove");
+ removeButton.setAttribute("ng-click" , 'removeChoice("'+labelValue +lableName+'");');
+ removeButton.setAttribute("ng-disabled" , "temp.policy.readOnly");
+ document.getElementById(divID).appendChild(addButton);
+ document.getElementById(divID).appendChild(removeButton);
+ document.getElementById(divID).appendChild(label);
+ var id = "div."+labelValue+lableName;
+ var divTag = document.createElement("div");
+ divTag.setAttribute("id", id);
+ document.getElementById(divID).appendChild(divTag);
+
+ var divTag = document.createElement("div");
+ divTag.setAttribute("id", id +'@0');
+
+ divTag.className += ' children_group'; //here is div with a group of children.
+
+ if(required){
+ divTag.setAttribute("required", required);
+ }else if(required == false){
+ divTag.setAttribute("data-conditional", "yes");
+ }
+
+ document.getElementById(id).appendChild(divTag);
+
+ $scope.labelManyKeys.push(lableName);
+
+ }else{
+ var divTag = document.createElement("div");
+ divTag.setAttribute("id", "div."+labelValue+lableName);
+ divTag.className += ' children_group'; //here is div with a group of children.
+ if(required){
+ divTag.setAttribute("required", required);
+ }else if(required == false){
+ divTag.setAttribute("data-conditional", "yes");
+ }
+ document.getElementById(divID).appendChild(label);
+ document.getElementById(divID).appendChild(divTag);
+ }
};
$scope.dropBoxLayout = function(labelLevel, attributeName, many , refValue, listemunerateValues, isRequired){
- var br = document.createElement("BR");
-
- if (labelLevel.length < 1){
- var divID = "DynamicTemplate";
- } else if (labelLevel.endsWith('.')){
- var divID = 'div.'+ labelLevel.substring(0, labelLevel.length-1);
- }
-
-
- var label = document.createElement("Label")
-
- var refAttributes = $scope.optimizationModelData.ref_attributes;
- if(isRequired != true && refAttributes){ //check refAttributes also
- var refAttributesList = refAttributes.split(splitComma);
- for (k = 0; k < refAttributesList.length; k++){
- var refAttribute = refAttributesList[k].split(splitEqual);
- if (attributeName == refAttribute[0].trim() && refAttribute[1].includes("required-true")){
- isRequired = true;
- }
- }
- }
-
- if (matching.includes(attributeName)){
- var labeltext = document.createTextNode(attributeName + "*!");
- label.appendChild(labeltext);
- isRequired = true; //set required as true for matching element
- }else {
- var labeltext = document.createTextNode(attributeName);
- if(isRequired){
- var requiredLabName = attributeName+ " * ";
- labeltext = document.createTextNode(requiredLabName);
- }else{
- labeltext = document.createTextNode(attributeName);
- }
-
- label.appendChild(labeltext);
- }
- label.appendChild(labeltext);
- // if this field is required, but its parent is not required
- if(isRequired && document.getElementById(divID).hasAttribute('data-conditional')){
- var requiredNode = document.createElement('span');
- requiredNode.setAttribute("class", "mstooltip");
- requiredNode.textContent = "?";
- label.appendChild(requiredNode);
-
- var requiredNodeToolTip = document.createElement('span');
- requiredNodeToolTip.setAttribute("class", "tooltiptext");
- requiredNodeToolTip.textContent = "Conditional Required";
- requiredNode.appendChild(requiredNodeToolTip);
+ var br = document.createElement("BR");
+
+ if (labelLevel.length < 1){
+ var divID = "DynamicTemplate";
+ } else if (labelLevel.endsWith('.')){
+ var divID = 'div.'+ labelLevel.substring(0, labelLevel.length-1);
+ }
+
+
+ var label = document.createElement("Label")
+
+ var refAttributes = $scope.optimizationModelData.ref_attributes;
+ if(isRequired != true && refAttributes){ //check refAttributes also
+ var refAttributesList = refAttributes.split(splitComma);
+ for (k = 0; k < refAttributesList.length; k++){
+ var refAttribute = refAttributesList[k].split(splitEqual);
+ if (attributeName == refAttribute[0].trim() && refAttribute[1].includes("required-true")){
+ isRequired = true;
+ }
+ }
+ }
+
+ if (matching.includes(attributeName)){
+ var labeltext = document.createTextNode(attributeName + "*!");
+ label.appendChild(labeltext);
+ isRequired = true; //set required as true for matching element
+ }else {
+ var labeltext = document.createTextNode(attributeName);
+ if(isRequired){
+ var requiredLabName = attributeName+ " * ";
+ labeltext = document.createTextNode(requiredLabName);
+ }else{
+ labeltext = document.createTextNode(attributeName);
+ }
+
+ label.appendChild(labeltext);
+ }
+ label.appendChild(labeltext);
+ // if this field is required, but its parent is not required
+ if(isRequired && document.getElementById(divID).hasAttribute('data-conditional')){
+ var requiredNode = document.createElement('span');
+ requiredNode.setAttribute("class", "mstooltip");
+ requiredNode.textContent = "?";
+ label.appendChild(requiredNode);
+
+ var requiredNodeToolTip = document.createElement('span');
+ requiredNodeToolTip.setAttribute("class", "tooltiptext");
+ requiredNodeToolTip.textContent = "Conditional Required";
+ requiredNode.appendChild(requiredNodeToolTip);
- }
-
- var listField = document.createElement("SELECT");
- listField.setAttribute("class" , "form-control");
- listField.setAttribute("style" , "width:300px;");
- listField.setAttribute("ng-disabled" , "temp.policy.readOnly");
-
- if(isRequired){
- if(document.getElementById(divID).hasAttribute('data-conditional')){
- listField.setAttribute("data-conditional", divID);
- listField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')");
- }else{
- listField.setAttribute("required", true);
- }
- }
- if( many != true || isRequired != true){ // add an empty option for not required or not multiple select element
- var optionFirst = document.createElement('option');
- optionFirst.setAttribute('value', "");
- listField.appendChild(optionFirst);
- }
-
- for (var i=0; i < listemunerateValues.length; i += 1) {
- if(typeof listemunerateValues[i] == "string" && listemunerateValues[i].includes("equal-sign")){
- listemunerateValues[i] = listemunerateValues[i].replace('equal-sign','=');
- }
- var option = document.createElement('option');
- option.setAttribute('value', listemunerateValues[i]);
- option.appendChild(document.createTextNode(listemunerateValues[i]));
- option.setAttribute('value', listemunerateValues[i]);
- listField.appendChild(option);
- }
- listField.setAttribute("id" , ''+ labelLevel + attributeName + '');
-
- enumKeyList.push(attributeName);
-
- document.getElementById(divID).appendChild(label);
- document.getElementById(divID).appendChild(br);
-
- if(many == true){
- document.getElementById(divID).appendChild(listField).multiple = true;
- plainAttributeKeys.push(labelLevel + attributeName+'*'+true);
- }else {
- document.getElementById(divID).appendChild(listField).multiple = false;
- plainAttributeKeys.push(labelLevel + attributeName+'*'+false);
- }
-
- if($scope.temp.policy.ruleData != null){
- if (many == true){
- document.getElementById(labelLevel +attributeName).options[0].selected = false;
- for (i=0; i < listemunerateValues.length; i += 1) {
- var testValue = $scope.temp.policy.ruleData[labelLevel +attributeName+'@' + i];
- if (testValue === undefined){
- testValue = $scope.temp.policy.ruleData[labelLevel +attributeName];
- }
- var location = listemunerateValues.indexOf(testValue);
- if (location!=-1){
- document.getElementById(labelLevel +attributeName).options[location].selected = true;
- }
- }
- }else {
- if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){
- document.getElementById(labelLevel + attributeName).value = $scope.temp.policy.ruleData[labelLevel + attributeName];
- }
- }
- }
- };
+ }
+
+ var listField = document.createElement("SELECT");
+ listField.setAttribute("class" , "form-control");
+ listField.setAttribute("style" , "width:300px;");
+ listField.setAttribute("ng-disabled" , "temp.policy.readOnly");
+
+ if(isRequired){
+ if(document.getElementById(divID).hasAttribute('data-conditional')){
+ listField.setAttribute("data-conditional", divID);
+ listField.setAttribute("ng-blur", "validContionalRequired('"+divID+"')");
+ }else{
+ listField.setAttribute("required", true);
+ }
+ }
+ if( many != true || isRequired != true){ // add an empty option for not required or not multiple select element
+ var optionFirst = document.createElement('option');
+ optionFirst.setAttribute('value', "");
+ listField.appendChild(optionFirst);
+ }
+
+ for (var i=0; i < listemunerateValues.length; i += 1) {
+ if(typeof listemunerateValues[i] == "string" && listemunerateValues[i].includes("equal-sign")){
+ listemunerateValues[i] = listemunerateValues[i].replace('equal-sign','=');
+ }
+ var option = document.createElement('option');
+ option.setAttribute('value', listemunerateValues[i]);
+ option.appendChild(document.createTextNode(listemunerateValues[i]));
+ option.setAttribute('value', listemunerateValues[i]);
+ listField.appendChild(option);
+ }
+ listField.setAttribute("id" , ''+ labelLevel + attributeName + '');
+
+ enumKeyList.push(attributeName);
+
+ document.getElementById(divID).appendChild(label);
+ document.getElementById(divID).appendChild(br);
+
+ if(many == true){
+ document.getElementById(divID).appendChild(listField).multiple = true;
+ plainAttributeKeys.push(labelLevel + attributeName+'*'+true);
+ }else {
+ document.getElementById(divID).appendChild(listField).multiple = false;
+ plainAttributeKeys.push(labelLevel + attributeName+'*'+false);
+ }
+
+ if($scope.temp.policy.ruleData != null){
+ if (many == true){
+ document.getElementById(labelLevel +attributeName).options[0].selected = false;
+ for (i=0; i < listemunerateValues.length; i += 1) {
+ var testValue = $scope.temp.policy.ruleData[labelLevel +attributeName+'@' + i];
+ if (testValue === undefined){
+ testValue = $scope.temp.policy.ruleData[labelLevel +attributeName];
+ }
+ var location = listemunerateValues.indexOf(testValue);
+ if (location!=-1){
+ document.getElementById(labelLevel +attributeName).options[location].selected = true;
+ }
+ }
+ }else {
+ if($scope.temp.policy.ruleData[labelLevel + attributeName] != undefined && $scope.temp.policy.ruleData[labelLevel + attributeName] != "undefined"){
+ document.getElementById(labelLevel + attributeName).value = $scope.temp.policy.ruleData[labelLevel + attributeName];
+ }
+ }
+ }
+ };
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
};
$scope.savePolicy = function(policy){
- if(policy.itemContent != undefined){
- $scope.refreshCheck = true;
- $scope.policyNavigator = policy.itemContent;
- policy.itemContent = "";
- }
- $scope.savebutton = false;
- var splitAt = '*';
- var dot ='.';
- var jsonPolicy = {};
- if(plainAttributeKeys != null){
- for(a = 0; a < plainAttributeKeys.length; a++){
- var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt);
- console.log("splitPlainAttributeKey: " + splitPlainAttributeKey);
- var searchElement = document.getElementById(splitPlainAttributeKey[0]);
- var key = splitPlainAttributeKey[0];
-
+ if(policy.itemContent != undefined){
+ $scope.refreshCheck = true;
+ $scope.policyNavigator = policy.itemContent;
+ policy.itemContent = "";
+ }
+ $scope.savebutton = false;
+ var splitAt = '*';
+ var dot ='.';
+ var jsonPolicy = {};
+ if(plainAttributeKeys != null){
+ for(a = 0; a < plainAttributeKeys.length; a++){
+ var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt);
+ var searchElement = document.getElementById(splitPlainAttributeKey[0]);
+ var key = splitPlainAttributeKey[0];
+
if(searchElement == null || searchElement.nodeName == 'BUTTON'){
searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
key = splitPlainAttributeKey[0]+'@0';
}
- if(searchElement != null){
- var keySplit = key.split(dot);
- var elumentLocation = keySplit.length;
- var enumKey = key;
- if (elumentLocation > 1){
- enumKey = keySplit[keySplit.length - 1];
- }
- //check it is undefined or not
- if (enumKeyList != undefined && enumKeyList.indexOf(enumKey) != -1){
- if (splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1].indexOf("true") !== -1){
- var multiSlect = [];
- for ( var i = 0; i < searchElement.selectedOptions.length; i++) {
- multiSlect.push(searchElement.selectedOptions[i].value);
- }
- jsonPolicy[key]= multiSlect;
- }else{
- console.log(" searchElement.value = > " + searchElement.value);
- jsonPolicy[key]= searchElement.value;
- }
- } else {
- if(searchElement.value != null){
- console.log(" searchElement.value = > " + searchElement.value);
- jsonPolicy[key]= searchElement.value;
- }
- }
- }
- }
- }
+ if(searchElement != null){
+ var keySplit = key.split(dot);
+ var elumentLocation = keySplit.length;
+ var enumKey = key;
+ if (elumentLocation > 1){
+ enumKey = keySplit[keySplit.length - 1];
+ }
+ //check it is undefined or not
+ if (enumKeyList != undefined && enumKeyList.indexOf(enumKey) != -1){
+ if (splitPlainAttributeKey[1]!= undefined && splitPlainAttributeKey[1].indexOf("true") !== -1){
+ var multiSlect = [];
+ for ( var i = 0; i < searchElement.selectedOptions.length; i++) {
+ multiSlect.push(searchElement.selectedOptions[i].value);
+ }
+ jsonPolicy[key]= multiSlect;
+ }else{
+ jsonPolicy[key]= searchElement.value;
+ }
+ } else {
+ if(searchElement.value != null){
+ jsonPolicy[key]= searchElement.value;
+ }
+ }
+ }
+ }
+ }
var uuu = "policycreation/save_policy";
var postData={policyData: policy, policyJSON : jsonPolicy};
$.ajax({
@@ -1269,113 +1214,110 @@ angular.module('abs').controller('optimizationController', ['$scope', '$window',
data: JSON.stringify(postData),
success : function(data){
$scope.$apply(function(){
- $scope.data=data.policyData;
- if($scope.data == 'success'){
- $scope.temp.policy.readOnly = 'true';
- $scope.safetyChecker = data.policyData.split("#")[2];
- if ($scope.safetyChecker!=undefined) {
- Notification.success($scope.safetyChecker);
- }
- $scope.pushStatus=data.policyData.split("&")[1];
- if($scope.pushStatus=="successPush"){
- Notification.success("Policy pushed successfully");
- }
- Notification.success("Policy Saved Successfully.");
- }else if ($scope.data == 'PolicyExists'){
- $scope.savebutton = true;
- Notification.error("Policy Already Exists with Same Name in Scope.");
- }
+ $scope.data=data.policyData;
+ if($scope.data == 'success'){
+ $scope.temp.policy.readOnly = 'true';
+ $scope.safetyChecker = data.policyData.split("#")[2];
+ if ($scope.safetyChecker!=undefined) {
+ Notification.success($scope.safetyChecker);
+ }
+ $scope.pushStatus=data.policyData.split("&")[1];
+ if($scope.pushStatus=="successPush"){
+ Notification.success("Policy pushed successfully");
+ }
+ Notification.success("Policy Saved Successfully.");
+ }else if ($scope.data == 'PolicyExists'){
+ $scope.savebutton = true;
+ Notification.error("Policy Already Exists with Same Name in Scope.");
+ }
});
- console.log($scope.data);
},
error : function(data){
- Notification.error("Error Occured while saving Policy.");
+ Notification.error("Error Occured while saving Policy.");
}
});
};
$scope.validatePolicy = function(policy){
- document.getElementById("validate").innerHTML = "";
- var splitAt = '*';
- var dot ='.';
- var jsonPolicy = {};
- if(plainAttributeKeys != null){
- for(a = 0; a < plainAttributeKeys.length; a++){
- var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt);
- console.log(splitPlainAttributeKey[1]);
- var searchElement = document.getElementById(splitPlainAttributeKey[0]);
- var key = splitPlainAttributeKey[0];
- if(searchElement == null || searchElement.nodeName == 'BUTTON'){
- searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
- key = splitPlainAttributeKey[0]+'@0';
- }
- if(searchElement != null){
- if (enumKeyList.indexOf(key) != -1){
- if (splitPlainAttributeKey[1].indexOf("true") !== -1){
- var multiSlect = [];
- for ( var i = 0; i < searchElement.selectedOptions.length; i++) {
- multiSlect.push(searchElement.selectedOptions[i].value);
- }
- jsonPolicy[key]= multiSlect;
- }else{
- jsonPolicy[key]= searchElement.value;
- }
- if(searchElement.getAttribute("required")){
- if(!searchElement.value){
- return;
- }
- }
- } else {
- if(searchElement.value != null){
- jsonPolicy[key]= searchElement.value;
- if(searchElement.getAttribute("required")){
- if(!searchElement.value){
- return;
- }
- }
- }
- }
- }
- }
- }
+ document.getElementById("validate").innerHTML = "";
+ var splitAt = '*';
+ var dot ='.';
+ var jsonPolicy = {};
+ if(plainAttributeKeys != null){
+ for(a = 0; a < plainAttributeKeys.length; a++){
+ var splitPlainAttributeKey = plainAttributeKeys[a].split(splitAt);
+ var searchElement = document.getElementById(splitPlainAttributeKey[0]);
+ var key = splitPlainAttributeKey[0];
+ if(searchElement == null || searchElement.nodeName == 'BUTTON'){
+ searchElement = document.getElementById(splitPlainAttributeKey[0]+'@0');
+ key = splitPlainAttributeKey[0]+'@0';
+ }
+ if(searchElement != null){
+ if (enumKeyList.indexOf(key) != -1){
+ if (splitPlainAttributeKey[1].indexOf("true") !== -1){
+ var multiSlect = [];
+ for ( var i = 0; i < searchElement.selectedOptions.length; i++) {
+ multiSlect.push(searchElement.selectedOptions[i].value);
+ }
+ jsonPolicy[key]= multiSlect;
+ }else{
+ jsonPolicy[key]= searchElement.value;
+ }
+ if(searchElement.getAttribute("required")){
+ if(!searchElement.value){
+ return;
+ }
+ }
+ } else {
+ if(searchElement.value != null){
+ jsonPolicy[key]= searchElement.value;
+ if(searchElement.getAttribute("required")){
+ if(!searchElement.value){
+ return;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
var uuu = "policyController/validate_policy.htm";
var postData={policyData: policy, policyJSON : jsonPolicy};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.validateData = data.data.replace(/\"/g, "");
- $scope.data=data.data.substring(1,8);
- var size = data.data.length;
- if($scope.data == 'success'){
- Notification.success("Validation Success.");
- $scope.savebutton = false;
- if (size > 18){
- var displayWarning = data.data.substring(19,size - 1);
- document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "skyblue";
- }
- }else{
- Notification.error("Validation Failed.");
- document.getElementById("validate").innerHTML = $scope.validateData;
- document.getElementById("validate").style.color = "white";
- document.getElementById("validate").style.backgroundColor = "red";
- $scope.savebutton = true;
- }
-
- });
- console.log($scope.data);
- },
- error : function(data){
- Notification.error("Validation Failed.");
- $scope.savebutton = true;
- }
- });
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.validateData = data.data.replace(/\"/g, "");
+ $scope.data=data.data.substring(1,8);
+ var size = data.data.length;
+ if($scope.data == 'success'){
+ Notification.success("Validation Success.");
+ $scope.savebutton = false;
+ if (size > 18){
+ var displayWarning = data.data.substring(19,size - 1);
+ document.getElementById("validate").innerHTML = "Safe Policy Warning Message : "+displayWarning;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "skyblue";
+ }
+ }else{
+ Notification.error("Validation Failed.");
+ document.getElementById("validate").innerHTML = $scope.validateData;
+ document.getElementById("validate").style.color = "white";
+ document.getElementById("validate").style.backgroundColor = "red";
+ $scope.savebutton = true;
+ }
+
+ });
+ },
+ error : function(data){
+ Notification.error("Validation Failed.");
+ $scope.savebutton = true;
+ }
+ });
};
function extend(obj, src) {
@@ -1386,4 +1328,4 @@ angular.module('abs').controller('optimizationController', ['$scope', '$window',
}
}]);/**
*
- */ \ No newline at end of file
+ */
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policyManager.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policyManager.js
index 0aec30c1d..0cf655398 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policyManager.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policyManager.js
@@ -2,13 +2,13 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019-2020 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
+ * 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,
@@ -18,326 +18,308 @@
* ============LICENSE_END=========================================================
*/
app.controller('PolicyManagerController', [
- '$scope', '$q', '$window', '$cookies', 'policyManagerConfig', 'item', 'policyNavigator', 'policyUploader', 'Notification','PolicyAppService',
- function($scope, $q, $Window, $cookies, policyManagerConfig, Item, PolicyNavigator, PolicyUploader, Notification, PolicyAppService ) {
+ '$scope', '$q', '$window', '$cookies', 'policyManagerConfig', 'item', 'policyNavigator', 'policyUploader', 'Notification','PolicyAppService',
+ function($scope, $q, $Window, $cookies, policyManagerConfig, Item, PolicyNavigator, PolicyUploader, Notification, PolicyAppService ) {
- $scope.isDisabled = true;
- $scope.superAdminId = false;
- $scope.exportPolicyId = false;
- $scope.importPolicyId = false;
- $scope.createScopeId = false;
- $scope.deleteScopeId = false;
- $scope.renameId = false;
- $scope.createPolicyId = false;
- $scope.cloneId = false;
- $scope.editPolicyId = false;
- $scope.switchVersionId = false;
- $scope.describePolicyId = false;
- $scope.viewPolicyId = false;
- $scope.deletePolicyId = false;
- PolicyAppService.getData('get_LockDownData').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- $scope.lockdowndata = JSON.parse($scope.data.lockdowndata);
- if ($scope.lockdowndata[0].lockdown == true) {
- $scope.isDisabled = true;
- } else {
- $scope.isDisabled = false;
- }
- console.log($scope.data);
- }, function(error) {
- console.log("failed");
- });
+ $scope.isDisabled = true;
+ $scope.superAdminId = false;
+ $scope.exportPolicyId = false;
+ $scope.importPolicyId = false;
+ $scope.createScopeId = false;
+ $scope.deleteScopeId = false;
+ $scope.renameId = false;
+ $scope.createPolicyId = false;
+ $scope.cloneId = false;
+ $scope.editPolicyId = false;
+ $scope.switchVersionId = false;
+ $scope.describePolicyId = false;
+ $scope.viewPolicyId = false;
+ $scope.deletePolicyId = false;
+ PolicyAppService.getData('get_LockDownData').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.lockdowndata = JSON.parse($scope.data.lockdowndata);
+ if ($scope.lockdowndata[0].lockdown == true) {
+ $scope.isDisabled = true;
+ } else {
+ $scope.isDisabled = false;
+ }
+ }, function(error) {
+ });
- PolicyAppService.getData('getDictionary/get_DescriptiveScopeByName').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.descriptiveScopeDictionaryDatas = JSON.parse($scope.data.descriptiveScopeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_DescriptiveScopeByName').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.descriptiveScopeDictionaryDatas = JSON.parse($scope.data.descriptiveScopeDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
-
- PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function(data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas);
+ });
+ PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function(data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas);
+ });
- PolicyAppService.getData('get_UserRolesData').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.userRolesDatas = JSON.parse($scope.data.userRolesDatas);
- console.log($scope.userRolesDatas);
- if ($scope.userRolesDatas[0] == 'super-admin') {
- $scope.superAdminId = true;
- $scope.exportPolicyId = true;
- $scope.importPolicyId = true;
- } else if ($scope.userRolesDatas[0] == 'super-editor' || $scope.userRolesDatas[0] == 'editor' || $scope.userRolesDatas[0] == 'admin') {
- $scope.exportPolicyId = true;
- $scope.importPolicyId = true;
- }
- }, function (error) {
- console.log("failed");
- });
- $scope.config = policyManagerConfig;
- $scope.reverse = false;
- $scope.predicate = ['model.type', 'model.name'];
- $scope.order = function(predicate) {
- $scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false;
- $scope.predicate[1] = predicate;
- };
+ PolicyAppService.getData('get_UserRolesData').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.userRolesDatas = JSON.parse($scope.data.userRolesDatas);
+ if ($scope.userRolesDatas[0] == 'super-admin') {
+ $scope.superAdminId = true;
+ $scope.exportPolicyId = true;
+ $scope.importPolicyId = true;
+ } else if ($scope.userRolesDatas[0] == 'super-editor' || $scope.userRolesDatas[0] == 'editor' || $scope.userRolesDatas[0] == 'admin') {
+ $scope.exportPolicyId = true;
+ $scope.importPolicyId = true;
+ }
+ });
- $scope.query = '';
- $scope.temp = new Item();
- $scope.policyNavigator = new PolicyNavigator();
- $scope.policyUploader = PolicyUploader;
- $scope.uploadFileList = [];
+ $scope.config = policyManagerConfig;
+ $scope.reverse = false;
+ $scope.predicate = ['model.type', 'model.name'];
+ $scope.order = function(predicate) {
+ $scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false;
+ $scope.predicate[1] = predicate;
+ };
- $scope.setTemplate = function(name) {
- $scope.viewTemplate = $cookies.viewTemplate = name;
- };
+ $scope.query = '';
+ $scope.temp = new Item();
+ $scope.policyNavigator = new PolicyNavigator();
+ $scope.policyUploader = PolicyUploader;
+ $scope.uploadFileList = [];
- $scope.touch = function(item) {
- item = item instanceof Item ? item : new Item();
- item.revert();
- $scope.temp = item;
- $scope.createScopeId = false;
- $scope.deleteScopeId = false;
- $scope.renameId = false;
- $scope.createPolicyId = false;
- $scope.cloneId = false;
- $scope.editPolicyId = false;
- $scope.switchVersionId = false;
- $scope.describePolicyId = false;
- $scope.viewPolicyId = false;
- $scope.deletePolicyId = false;
- if ($scope.temp.model.roleType == 'super-admin') {
- $scope.createScopeId = true;
- $scope.deleteScopeId = true;
- $scope.renameId = true;
- $scope.createPolicyId = true;
- $scope.cloneId = true;
- $scope.editPolicyId = true;
- $scope.switchVersionId = true;
- $scope.describePolicyId = true;
- $scope.viewPolicyId = true;
- $scope.deletePolicyId = true;
- } else if ($scope.temp.model.roleType == 'super-editor' || $scope.temp.model.roleType == 'editor') {
- $scope.cloneId = true;
- $scope.editPolicyId = true;
- $scope.createPolicyId = true;
- $scope.switchVersionId = true;
- $scope.describePolicyId = true;
- $scope.viewPolicyId = true;
- $scope.deletePolicyId = true;
- } else if ($scope.temp.model.roleType == 'super-guest' || $scope.temp.model.roleType == 'guest') {
- $scope.describePolicyId = true;
- $scope.viewPolicyId = true;
- } else if ($scope.temp.model.roleType == 'admin') {
- $scope.createScopeId = true;
- $scope.renameId = true;
- $scope.createPolicyId = true;
- $scope.cloneId = true;
- $scope.editPolicyId = true;
- $scope.switchVersionId = true;
- $scope.describePolicyId = true;
- $scope.viewPolicyId = true;
- $scope.deletePolicyId = true;
- }
- };
+ $scope.setTemplate = function(name) {
+ $scope.viewTemplate = $cookies.viewTemplate = name;
+ };
- $scope.smartClick = function(item) {
- if (item.isFolder()) {
- return $scope.policyNavigator.folderClick(item);
- }
- if (item.isEditable()) {
- return $scope.openEditItem(item);
- }
- };
+ $scope.touch = function(item) {
+ item = item instanceof Item ? item : new Item();
+ item.revert();
+ $scope.temp = item;
+ $scope.createScopeId = false;
+ $scope.deleteScopeId = false;
+ $scope.renameId = false;
+ $scope.createPolicyId = false;
+ $scope.cloneId = false;
+ $scope.editPolicyId = false;
+ $scope.switchVersionId = false;
+ $scope.describePolicyId = false;
+ $scope.viewPolicyId = false;
+ $scope.deletePolicyId = false;
+ if ($scope.temp.model.roleType == 'super-admin') {
+ $scope.createScopeId = true;
+ $scope.deleteScopeId = true;
+ $scope.renameId = true;
+ $scope.createPolicyId = true;
+ $scope.cloneId = true;
+ $scope.editPolicyId = true;
+ $scope.switchVersionId = true;
+ $scope.describePolicyId = true;
+ $scope.viewPolicyId = true;
+ $scope.deletePolicyId = true;
+ } else if ($scope.temp.model.roleType == 'super-editor' || $scope.temp.model.roleType == 'editor') {
+ $scope.cloneId = true;
+ $scope.editPolicyId = true;
+ $scope.createPolicyId = true;
+ $scope.switchVersionId = true;
+ $scope.describePolicyId = true;
+ $scope.viewPolicyId = true;
+ $scope.deletePolicyId = true;
+ } else if ($scope.temp.model.roleType == 'super-guest' || $scope.temp.model.roleType == 'guest') {
+ $scope.describePolicyId = true;
+ $scope.viewPolicyId = true;
+ } else if ($scope.temp.model.roleType == 'admin') {
+ $scope.createScopeId = true;
+ $scope.renameId = true;
+ $scope.createPolicyId = true;
+ $scope.cloneId = true;
+ $scope.editPolicyId = true;
+ $scope.switchVersionId = true;
+ $scope.describePolicyId = true;
+ $scope.viewPolicyId = true;
+ $scope.deletePolicyId = true;
+ }
+ };
- $scope.openEditItem = function(item) {
- item.getContent();
- $scope.modal('createNewPolicy');
- return $scope.touch(item);
- };
+ $scope.smartClick = function(item) {
+ if (item.isFolder()) {
+ return $scope.policyNavigator.folderClick(item);
+ }
+ if (item.isEditable()) {
+ return $scope.openEditItem(item);
+ }
+ };
- $scope.modal = function(id, hide) {
- return $('#' + id).modal(hide ? 'hide' : 'show');
- };
+ $scope.openEditItem = function(item) {
+ item.getContent();
+ $scope.modal('createNewPolicy');
+ return $scope.touch(item);
+ };
- $scope.isInThisPath = function(path) {
- var currentPath = $scope.policyNavigator.currentPath.join('/');
- return currentPath.indexOf(path) !== -1;
- };
-
- $scope.watchPolicy = function(item) {
- var uuu = "watchPolicy";
- var data = {name : item.model.name,
- path : item.model.path};
- var postData={watchData: data};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data) {
- $scope.$apply(function() {
- $scope.watchData=data.watchData;});
- Notification.success($scope.watchData);
- console.log($scope.watchData);
- },
- error : function(data) {
- alert("Error while saving.");
- }
- });
- };
+ $scope.modal = function(id, hide) {
+ return $('#' + id).modal(hide ? 'hide' : 'show');
+ };
- $scope.refresh = function() {
- $scope.policyNavigator.refresh();
- };
+ $scope.isInThisPath = function(path) {
+ var currentPath = $scope.policyNavigator.currentPath.join('/');
+ return currentPath.indexOf(path) !== -1;
+ };
+
+ $scope.watchPolicy = function(item) {
+ var uuu = "watchPolicy";
+ var data = {name : item.model.name,
+ path : item.model.path};
+ var postData={watchData: data};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data) {
+ $scope.$apply(function() {
+ $scope.watchData=data.watchData;});
+ Notification.success($scope.watchData);
+ },
+ error : function(data) {
+ Notification.error("Error while saving.");
+ }
+ });
+ };
- $scope.switchVersion = function(item) {
- if ($scope.policyNavigator.fileNameExists(item.tempModel.content.activeVersion)) {
- item.error = 'Invalid filename or already exists, specify another name';
- return false;
- }
- item.getSwitchVersionContent().then(function(){
- $scope.policyNavigator.refresh();
- $scope.modal('switchVersion', true);
- });
+ $scope.refresh = function() {
+ $scope.policyNavigator.refresh();
};
- $scope.copy = function(item) {
- var samePath = item.tempModel.path.join() === item.model.path.join();
- if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) {
- item.error = 'Invalid filename or already exists, specify another name';
- return false;
- }
- item.copy().then(function() {
- $scope.policyNavigator.refresh();
- $scope.modal('copy', true);
- });
- };
+ $scope.switchVersion = function(item) {
+ if ($scope.policyNavigator.fileNameExists(item.tempModel.content.activeVersion)) {
+ item.error = 'Invalid filename or already exists, specify another name';
+ return false;
+ }
+ item.getSwitchVersionContent().then(function(){
+ $scope.policyNavigator.refresh();
+ $scope.modal('switchVersion', true);
+ });
+ };
- $scope.remove = function(item) {
- item.remove().then(function() {
- $scope.policyNavigator.refresh();
- $scope.modal('delete', true);
- });
- };
+ $scope.copy = function(item) {
+ var samePath = item.tempModel.path.join() === item.model.path.join();
+ if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) {
+ item.error = 'Invalid filename or already exists, specify another name';
+ return false;
+ }
+ item.copy().then(function() {
+ $scope.policyNavigator.refresh();
+ $scope.modal('copy', true);
+ });
+ };
- $scope.removePolicy = function(item) {
- item.removePolicy().then(function() {
- $scope.policyNavigator.refresh();
- $scope.modal('deletePolicy', true);
- });
- };
+ $scope.remove = function(item) {
+ item.remove().then(function() {
+ $scope.policyNavigator.refresh();
+ $scope.modal('delete', true);
+ });
+ };
- $scope.rename = function(item) {
- var samePath = item.tempModel.path.join() === item.model.path.join();
- if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) {
- item.error = 'Invalid filename or already exists, specify another name';
- return false;
- }
- item.rename().then(function() {
- $scope.policyNavigator.refresh();
- $scope.modal('rename', true);
- });
- };
+ $scope.removePolicy = function(item) {
+ item.removePolicy().then(function() {
+ $scope.policyNavigator.refresh();
+ $scope.modal('deletePolicy', true);
+ });
+ };
- $scope.move = function(item) {
- var samePath = item.tempModel.path.join() === item.model.path.join();
- if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) {
- item.error = 'Invalid filename or already exists, specify another name';
- return false;
- }
- item.move().then(function() {
- $scope.policyNavigator.refresh();
- $scope.modal('move', true);
- });
- };
+ $scope.rename = function(item) {
+ var samePath = item.tempModel.path.join() === item.model.path.join();
+ if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) {
+ item.error = 'Invalid filename or already exists, specify another name';
+ return false;
+ }
+ item.rename().then(function() {
+ $scope.policyNavigator.refresh();
+ $scope.modal('rename', true);
+ });
+ };
- $scope.createFolder = function(item) {
- var name = item.tempModel.name && item.tempModel.name.trim();
- item.tempModel.type = 'dir';
- item.tempModel.path = $scope.policyNavigator.currentPath;
- if (name && !$scope.policyNavigator.fileNameExists(name)) {
- item.createFolder().then(function() {
- $scope.policyNavigator.refresh();
- $scope.modal('newfolder', true);
- });
- } else {
- item.error = 'Invalid filename or already exists, specify another name';
- return false;
- }
- };
+ $scope.move = function(item) {
+ var samePath = item.tempModel.path.join() === item.model.path.join();
+ if (samePath && $scope.policyNavigator.fileNameExists(item.tempModel.name)) {
+ item.error = 'Invalid filename or already exists, specify another name';
+ return false;
+ }
+ item.move().then(function() {
+ $scope.policyNavigator.refresh();
+ $scope.modal('move', true);
+ });
+ };
- $scope.subScopeFolder = function(item) {
- var name = item.tempModel.name +"\\" + item.tempModel.subScopename && item.tempModel.name.trim() + "\\"+item.tempModel.subScopename.trim() ;
- item.tempModel.type = 'dir';
- item.tempModel.path = $scope.policyNavigator.currentPath;
- if (name && !$scope.policyNavigator.fileNameExists(name)) {
- item.getScopeContent().then(function() {
- $scope.policyNavigator.refresh();
- $scope.modal('addSubScope', true);
- });
- } else {
- item.error = 'Invalid filename or already exists, specify another name';
- return false;
- }
- };
+ $scope.createFolder = function(item) {
+ var name = item.tempModel.name && item.tempModel.name.trim();
+ item.tempModel.type = 'dir';
+ item.tempModel.path = $scope.policyNavigator.currentPath;
+ if (name && !$scope.policyNavigator.fileNameExists(name)) {
+ item.createFolder().then(function() {
+ $scope.policyNavigator.refresh();
+ $scope.modal('newfolder', true);
+ });
+ } else {
+ item.error = 'Invalid filename or already exists, specify another name';
+ return false;
+ }
+ };
- $scope.closefunction = function(fianlPath) {
- $scope.policyNavigator.policyrefresh(fianlPath);
- };
+ $scope.subScopeFolder = function(item) {
+ var name = item.tempModel.name +"\\" + item.tempModel.subScopename && item.tempModel.name.trim() + "\\"+item.tempModel.subScopename.trim() ;
+ item.tempModel.type = 'dir';
+ item.tempModel.path = $scope.policyNavigator.currentPath;
+ if (name && !$scope.policyNavigator.fileNameExists(name)) {
+ item.getScopeContent().then(function() {
+ $scope.policyNavigator.refresh();
+ $scope.modal('addSubScope', true);
+ });
+ } else {
+ item.error = 'Invalid filename or already exists, specify another name';
+ return false;
+ }
+ };
- $scope.uploadFiles = function() {
- $scope.policyUploader.upload($scope.uploadFileList, $scope.policyNavigator.currentPath).then(function() {
- $scope.policyNavigator.refresh();
- $scope.modal('uploadfile', true);
- }, function(data) {
- var errorMsg = data.result && data.result.error || 'Error Occured while Uploading....';
- $scope.temp.error = errorMsg;
- });
- };
+ $scope.closefunction = function(fianlPath) {
+ $scope.policyNavigator.policyrefresh(fianlPath);
+ };
- $scope.getQueryParam = function(param) {
- var found;
- window.location.search.substr(1).split('&').forEach(function(item) {
- if (param === item.split('=')[0]) {
- found = item.split('=')[1];
- return false;
- }
- });
- return found;
- };
+ $scope.uploadFiles = function() {
+ $scope.policyUploader.upload($scope.uploadFileList, $scope.policyNavigator.currentPath).then(function() {
+ $scope.policyNavigator.refresh();
+ Notification.success('Policy Import Complete');
+ $scope.modal('uploadfile', true);
+ }, function(data) {
+ var errorMsg = data.result && data.result.error || 'Error Occured while Uploading....';
+ $scope.temp.error = errorMsg;
+ });
+ };
- $scope.isWindows = $scope.getQueryParam('server') === 'Windows';
- $scope.policyNavigator.refresh();
- }]);
+ $scope.getQueryParam = function(param) {
+ var found;
+ window.location.search.substr(1).split('&').forEach(function(item) {
+ if (param === item.split('=')[0]) {
+ found = item.split('=')[1];
+ return false;
+ }
+ });
+ return found;
+ };
+
+ $scope.isWindows = $scope.getQueryParam('server') === 'Windows';
+ $scope.policyNavigator.refresh();
+ }]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js
index 42e6796cd..edca7e47c 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/controllers/policySearchManager.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -18,194 +18,176 @@
* ============LICENSE_END=========================================================
*/
app.controller('PolicySearchController', [
- '$scope', '$q', '$window', '$cookies', 'policyManagerConfig', 'item', 'policyNavigator', 'policyUploader', 'Notification','PolicyAppService',
- function($scope, $q, $Window, $cookies, policyManagerConfig, Item, PolicyNavigator, PolicyUploader, Notification, PolicyAppService ) {
-
- $scope.isDisabled = true;
- $scope.superAdminId = false;
- $scope.exportPolicyId = false;
- $scope.importPolicyId = false;
- $scope.createScopeId = false;
- $scope.deleteScopeId = false;
- $scope.renameId = false;
- $scope.createPolicyId = false;
- $scope.cloneId = false;
- $scope.editPolicyId = false;
- $scope.switchVersionId = false;
- $scope.describePolicyId = false;
- $scope.viewPolicyId = false;
- $scope.deletePolicyId = false;
- PolicyAppService.getData('get_LockDownData').then(function(data){
- var j = data;
- $scope.data = JSON.parse(j.data);
- $scope.lockdowndata = JSON.parse($scope.data.lockdowndata);
- if($scope.lockdowndata[0].lockdown == true){
- $scope.isDisabled = true;
- }else{
- $scope.isDisabled = false;
- }
- console.log($scope.data);
- },function(error){
- console.log("failed");
- });
+ '$scope', '$q', '$window', '$cookies', 'policyManagerConfig', 'item', 'policyNavigator', 'policyUploader', 'Notification','PolicyAppService',
+ function($scope, $q, $Window, $cookies, policyManagerConfig, Item, PolicyNavigator, PolicyUploader, Notification, PolicyAppService ) {
- PolicyAppService.getData('getDictionary/get_DescriptiveScopeByName').then(function(data){
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.descriptiveScopeDictionaryDatas = JSON.parse($scope.data.descriptiveScopeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ $scope.isDisabled = true;
+ $scope.superAdminId = false;
+ $scope.exportPolicyId = false;
+ $scope.importPolicyId = false;
+ $scope.createScopeId = false;
+ $scope.deleteScopeId = false;
+ $scope.renameId = false;
+ $scope.createPolicyId = false;
+ $scope.cloneId = false;
+ $scope.editPolicyId = false;
+ $scope.switchVersionId = false;
+ $scope.describePolicyId = false;
+ $scope.viewPolicyId = false;
+ $scope.deletePolicyId = false;
+ PolicyAppService.getData('get_LockDownData').then(function(data){
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.lockdowndata = JSON.parse($scope.data.lockdowndata);
+ if($scope.lockdowndata[0].lockdown == true){
+ $scope.isDisabled = true;
+ }else{
+ $scope.isDisabled = false;
+ }
+ },function(error){
+ });
+
+ PolicyAppService.getData('getDictionary/get_DescriptiveScopeByName').then(function(data){
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.descriptiveScopeDictionaryDatas = JSON.parse($scope.data.descriptiveScopeDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function(data){
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_OnapNameDataByName').then(function(data){
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.onapNameDictionaryDatas = JSON.parse($scope.data.onapNameDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function(data){
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_VSCLActionDataByName').then(function(data){
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas);
+ });
- PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function(data){
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas);
- }, function (error) {
- console.log("failed");
- });
+ PolicyAppService.getData('getDictionary/get_VNFTypeDataByName').then(function(data){
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas);
+ });
-
- PolicyAppService.getData('get_UserRolesData').then(function (data) {
- var j = data;
- $scope.data = JSON.parse(j.data);
- console.log($scope.data);
- $scope.userRolesDatas = JSON.parse($scope.data.userRolesDatas);
- console.log($scope.userRolesDatas);
- if($scope.userRolesDatas[0] == 'super-admin'){
- $scope.superAdminId = true;
- $scope.createPolicyId = true;
- $scope.editPolicyId = true;
- $scope.describePolicyId = true;
- $scope.viewPolicyId = true;
- }else if($scope.userRolesDatas[0] == 'super-editor' || $scope.userRolesDatas[0] == 'editor' || $scope.userRolesDatas[0] == 'admin'){
- $scope.editPolicyId = true;
- $scope.createPolicyId = true;
- $scope.describePolicyId = true;
- $scope.viewPolicyId = true;
- }else if($scope.userRolesDatas[0] == 'super-guest' || $scope.userRolesDatas[0] == 'guest'){
- $scope.describePolicyId = true;
- $scope.viewPolicyId = true;
- }
- }, function (error) {
- console.log("failed");
- });
-
- $scope.config = policyManagerConfig;
- $scope.reverse = false;
- $scope.predicate = ['model.type', 'model.name'];
- $scope.order = function(predicate) {
- $scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false;
- $scope.predicate[1] = predicate;
- };
+
+ PolicyAppService.getData('get_UserRolesData').then(function (data) {
+ var j = data;
+ $scope.data = JSON.parse(j.data);
+ $scope.userRolesDatas = JSON.parse($scope.data.userRolesDatas);
+ if($scope.userRolesDatas[0] == 'super-admin'){
+ $scope.superAdminId = true;
+ $scope.createPolicyId = true;
+ $scope.editPolicyId = true;
+ $scope.describePolicyId = true;
+ $scope.viewPolicyId = true;
+ }else if($scope.userRolesDatas[0] == 'super-editor' || $scope.userRolesDatas[0] == 'editor' || $scope.userRolesDatas[0] == 'admin'){
+ $scope.editPolicyId = true;
+ $scope.createPolicyId = true;
+ $scope.describePolicyId = true;
+ $scope.viewPolicyId = true;
+ }else if($scope.userRolesDatas[0] == 'super-guest' || $scope.userRolesDatas[0] == 'guest'){
+ $scope.describePolicyId = true;
+ $scope.viewPolicyId = true;
+ }
+ });
+
+ $scope.config = policyManagerConfig;
+ $scope.reverse = false;
+ $scope.predicate = ['model.type', 'model.name'];
+ $scope.order = function(predicate) {
+ $scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false;
+ $scope.predicate[1] = predicate;
+ };
- $scope.query = '';
- $scope.temp = new Item();
- $scope.policyNavigator = new PolicyNavigator();
+ $scope.query = '';
+ $scope.temp = new Item();
+ $scope.policyNavigator = new PolicyNavigator();
- $scope.setTemplate = function(name) {
- $scope.viewTemplate = $cookies.viewTemplate = name;
- };
+ $scope.setTemplate = function(name) {
+ $scope.viewTemplate = $cookies.viewTemplate = name;
+ };
- $scope.touch = function(item) {
- item = item instanceof Item ? item : new Item();
- item.revert();
- $scope.temp = item;
- };
+ $scope.touch = function(item) {
+ item = item instanceof Item ? item : new Item();
+ item.revert();
+ $scope.temp = item;
+ };
- $scope.smartClick = function(item) {
- if (item.isFolder()) {
- return $scope.policyNavigator.folderClick(item);
- }
- if (item.isEditable()) {
- return $scope.openEditItem(item);
- }
- };
+ $scope.smartClick = function(item) {
+ if (item.isFolder()) {
+ return $scope.policyNavigator.folderClick(item);
+ }
+ if (item.isEditable()) {
+ return $scope.openEditItem(item);
+ }
+ };
- $scope.openEditItem = function(item) {
- item.getContent();
- $scope.modal('createNewPolicy');
- return $scope.touch(item);
- };
+ $scope.openEditItem = function(item) {
+ item.getContent();
+ $scope.modal('createNewPolicy');
+ return $scope.touch(item);
+ };
- $scope.modal = function(id, hide) {
- return $('#' + id).modal(hide ? 'hide' : 'show');
- };
+ $scope.modal = function(id, hide) {
+ return $('#' + id).modal(hide ? 'hide' : 'show');
+ };
- $scope.isInThisPath = function(path) {
- var currentPath = $scope.policyNavigator.currentPath.join('/');
- return currentPath.indexOf(path) !== -1;
- };
+ $scope.isInThisPath = function(path) {
+ var currentPath = $scope.policyNavigator.currentPath.join('/');
+ return currentPath.indexOf(path) !== -1;
+ };
- $scope.searchPolicy = function(searchContent){
- if(searchContent != undefined){
- var uuu = "searchPolicy";
- var postData = {searchdata : searchContent};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- var searchdata = data.result;
- if(searchdata.length > 0){
- if(searchdata[0] == "Exception"){
- Notification.error(searchdata[1]);
- }else{
- $scope.policyNavigator.searchrefresh(searchdata);
- }
- }else{
- Notification.info("No Matches Found with your Search");
- }
- });
- },
- error : function(data){
- Notification.error("Error while Searching.");
- }
- });
- }else{
- Notification.error("No data has been entered or selected to search");
- }
- };
+ $scope.searchPolicy = function(searchContent){
+ if(searchContent != undefined){
+ var uuu = "searchPolicy";
+ var postData = {searchdata : searchContent};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ var searchdata = data.result;
+ if(searchdata.length > 0){
+ if(searchdata[0] == "Exception"){
+ Notification.error(searchdata[1]);
+ }else{
+ $scope.policyNavigator.searchrefresh(searchdata);
+ }
+ }else{
+ Notification.info("No Matches Found with your Search");
+ }
+ });
+ },
+ error : function(data){
+ Notification.error("Error while Searching.");
+ }
+ });
+ }else{
+ Notification.error("No data has been entered or selected to search");
+ }
+ };
$scope.refresh = function(searchData){
- $scope.policyNavigator.searchrefresh(null);
+ $scope.policyNavigator.searchrefresh(null);
};
-
- $scope.getQueryParam = function(param) {
- var found;
- window.location.search.substr(1).split('&').forEach(function(item) {
- if (param === item.split('=')[0]) {
- found = item.split('=')[1];
- return false;
- }
- });
- return found;
- };
+
+ $scope.getQueryParam = function(param) {
+ var found;
+ window.location.search.substr(1).split('&').forEach(function(item) {
+ if (param === item.split('=')[0]) {
+ found = item.split('=')[1];
+ return false;
+ }
+ });
+ return found;
+ };
- $scope.isWindows = $scope.getQueryParam('server') === 'Windows';
- $scope.policyNavigator.searchrefresh(null);
- $scope.policyNavigator.setSearchModalActiveStatus();
+ $scope.isWindows = $scope.getQueryParam('server') === 'Windows';
+ $scope.policyNavigator.searchrefresh(null);
+ $scope.policyNavigator.setSearchModalActiveStatus();
}]);
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js
index 26cdf67c3..017f49ddc 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js
@@ -51,10 +51,6 @@ angular.module('abs').factory('item', ['$http', '$q', 'policyManagerConfig', fun
this.model = angular.copy(rawModel);
this.tempModel = angular.copy(rawModel);
- function parseMySQLDate(mysqlDate) {
- var d = (mysqlDate || '').toString().split(/[- :]/);
- return new Date(d[0], d[1] - 1, d[2], d[3], d[4], d[5]);
- }
};
Item.prototype.update = function() {
@@ -263,7 +259,6 @@ angular.module('abs').factory('item', ['$http', '$q', 'policyManagerConfig', fun
self.error = '';
$http.post(policyManagerConfig.describePolicyUrl, data).success(function(data) {
self.tempModel.content = self.model.content = data.html;
- var describeTemplate = self.tempModel.content;
self.deferredHandler(data, deferred);
}).error(function(data) {
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/service/modalService.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/service/modalService.js
index 381db7f9a..ceb2ec39f 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/service/modalService.js
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/service/modalService.js
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * 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.
@@ -21,7 +21,7 @@ angular.module("modalServices",[]).service('modalService', ['$modal', function (
this.showSuccess = function(heading, messageBody){
- var modalInstance = $modal.open({
+ $modal.open({
templateUrl: 'modal_informative.html',
controller: 'modalpopupController',
resolve: {
@@ -38,7 +38,7 @@ angular.module("modalServices",[]).service('modalService', ['$modal', function (
});
};
this.showFailure = function(heading, messageBody){
- var modalInstance = $modal.open({
+ $modal.open({
templateUrl: 'modal_warning.html',
controller: 'modalpopupController',
resolve: {
@@ -54,7 +54,7 @@ angular.module("modalServices",[]).service('modalService', ['$modal', function (
};
this.showMessage = function(heading, messageBody){
- var modalInstance = $modal.open({
+ $modal.open({
templateUrl: 'modal_message.html',
controller: 'modalpopupController',
resolve: {
@@ -70,7 +70,7 @@ angular.module("modalServices",[]).service('modalService', ['$modal', function (
};
this.showWarning = function(heading, messageBody){
- var modalInstance = $modal.open({
+ $modal.open({
templateUrl: 'modal_warning_message.html',
controller: 'modalpopupController',
resolve: {
@@ -201,4 +201,4 @@ angular.module("modalServices",[]).service('modalService', ['$modal', function (
modalInstance = undefined;
});
};
- }]); \ No newline at end of file
+ }]);
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPDPTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPDPTest.java
deleted file mode 100644
index a06afc997..000000000
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPDPTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP Policy Engine
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2019 Samsung
- * ================================================================================
- * 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.policy.admin;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import java.io.File;
-import org.junit.FixMethodOrder;
-import org.junit.Test;
-import org.junit.runners.MethodSorters;
-
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class CheckPDPTest {
-
- @Test
- public final void test1NoPropertySet() {
- try {
- System.clearProperty("xacml.rest.pdp.idfile");
- assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/"));
-
- System.setProperty("xacml.rest.pdp.idfile",
- new File(".").getCanonicalPath() + File.separator + "src" + File.separator
- + "test" + File.separator + "resources" + File.separator
- + "idonotexist.properties");
- assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/"));
-
- System.setProperty("xacml.rest.pdp.idfile",
- new File(".").getCanonicalPath() + File.separator + "src" + File.separator
- + "test" + File.separator + "resources" + File.separator
- + "doesnothaveproperties.atall");
- assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/"));
-
- System.setProperty("xacml.rest.pdp.idfile",
- new File(".").getCanonicalPath() + File.separator + "src" + File.separator
- + "test" + File.separator + "resources" + File.separator
- + "testbad.properties");
- assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/"));
-
- System.setProperty("xacml.rest.pdp.idfile",
- new File(".").getCanonicalPath() + File.separator + "src" + File.separator
- + "test" + File.separator + "resources" + File.separator
- + "empty.properties");
- assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/"));
-
- System.setProperty("xacml.rest.pdp.idfile",
- new File(".").getCanonicalPath() + File.separator + "src" + File.separator
- + "test" + File.separator + "resources" + File.separator
- + "testnotenoughvalues.properties");
- assertFalse(CheckPDP.validateID("http://localhost:8082/pdp/"));
-
- assertNull(CheckPDP.getPdpMap());
- assertNull(CheckPDP.getEncoding("http://localhost:8082/pdp/"));
-
- } catch (Exception e) {
- fail("Error occured in CheckPDP test");
- }
- }
-
- @Test
- public final void test2CheckPDP() {
- try {
- System.setProperty("xacml.rest.pdp.idfile",
- new File(".").getCanonicalPath() + File.separator + "src" + File.separator
- + "test" + File.separator + "resources" + File.separator
- + "test.properties");
- assertTrue(CheckPDP.validateID("http://localhost:8082/pdp/"));
- assertTrue(CheckPDP.getPdpMap().containsKey("http://localhost:8082/pdp/"));
- assertTrue(CheckPDP.getEncoding("http://localhost:8082/pdp/")
- .equals("dGVzdHBkcDphbHBoYTQ1Ng=="));
- } catch (Exception e) {
- fail("Error occured in CheckPDP test");
- }
- }
-}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPdpPropertiesTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPdpPropertiesTest.java
new file mode 100644
index 000000000..afb6fc8b0
--- /dev/null
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/CheckPdpPropertiesTest.java
@@ -0,0 +1,82 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright (C) 2019 Samsung
+ * ================================================================================
+ * 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.policy.admin;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import com.att.research.xacml.util.XACMLProperties;
+import java.io.File;
+import java.io.IOException;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runners.MethodSorters;
+
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class CheckPdpPropertiesTest {
+
+ @Test
+ public final void test1NoPropertySet() throws IOException {
+ System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "noexistenfile.properties");
+ assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/"));
+
+ System.clearProperty(XACMLProperties.XACML_PROPERTIES_NAME);
+ System.clearProperty("xacml.rest.pdp.idfile");
+ assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/"));
+
+ System.setProperty("xacml.rest.pdp.idfile", new File(".").getCanonicalPath() + File.separator + "src"
+ + File.separator + "test" + File.separator + "resources" + File.separator + "idonotexist.properties");
+ assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/"));
+
+ System.setProperty("xacml.rest.pdp.idfile",
+ new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
+ + "resources" + File.separator + "doesnothaveproperties.atall");
+ assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/"));
+
+ System.setProperty("xacml.rest.pdp.idfile", new File(".").getCanonicalPath() + File.separator + "src"
+ + File.separator + "test" + File.separator + "resources" + File.separator + "testbad.properties");
+ assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/"));
+
+ System.setProperty("xacml.rest.pdp.idfile", new File(".").getCanonicalPath() + File.separator + "src"
+ + File.separator + "test" + File.separator + "resources" + File.separator + "empty.properties");
+ assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/"));
+
+ System.setProperty("xacml.rest.pdp.idfile",
+ new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
+ + "resources" + File.separator + "testnotenoughvalues.properties");
+ assertFalse(CheckPdpProperties.validateId("http://localhost:8082/pdp/"));
+
+ assertNull(CheckPdpProperties.getPdpMap());
+ assertNull(CheckPdpProperties.getEncoding("http://localhost:8082/pdp/"));
+ }
+
+ @Test
+ public final void test2CheckPdp() throws IOException {
+ System.setProperty("xacml.rest.pdp.idfile", new File(".").getCanonicalPath() + File.separator + "src"
+ + File.separator + "test" + File.separator + "resources" + File.separator + "test.properties");
+ assertTrue(CheckPdpProperties.validateId("http://localhost:8082/pdp/"));
+ assertTrue(CheckPdpProperties.getPdpMap().containsKey("http://localhost:8082/pdp/"));
+ assertTrue(CheckPdpProperties.getEncoding("http://localhost:8082/pdp/").equals("dGVzdHBkcDphbHBoYTQ1Ng=="));
+ }
+}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java
index 7bd3be440..c3b98f525 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,22 +19,42 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.admin;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.BufferedReader;
import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintWriter;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Date;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
+import javax.json.JsonArray;
+import javax.script.SimpleBindings;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import org.apache.commons.fileupload.FileItem;
import org.apache.commons.io.IOUtils;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.junit.AfterClass;
import org.junit.Before;
+import org.junit.FixMethodOrder;
import org.junit.Test;
+import org.junit.runners.MethodSorters;
import org.mockito.Mockito;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
@@ -49,10 +69,13 @@ import org.onap.policy.rest.jpa.PolicyEditorScopes;
import org.onap.policy.rest.jpa.PolicyEntity;
import org.onap.policy.rest.jpa.PolicyVersion;
import org.onap.policy.rest.jpa.UserInfo;
+import org.onap.policy.utils.UserUtils.Pair;
import org.onap.portalsdk.core.domain.User;
import org.onap.portalsdk.core.util.SystemProperties;
+import org.powermock.reflect.Whitebox;
import org.springframework.mock.web.MockHttpServletResponse;
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class PolicyManagerServletTest extends Mockito {
private static Logger logger = FlexLogger.getLogger(PolicyManagerServletTest.class);
@@ -67,6 +90,21 @@ public class PolicyManagerServletTest extends Mockito {
private HttpServletRequest request;
private MockHttpServletResponse response;
+ /**
+ * Delete test File.
+ *
+ */
+ @AfterClass
+ public static void tearDown() {
+ File destroyFile = new File("testFileName.xls");
+ destroyFile.deleteOnExit();
+ }
+
+ /**
+ * setUp.
+ *
+ * @throws Exception should not get one
+ */
@Before
public void setUp() throws Exception {
logger.info("setUp: Entering");
@@ -98,8 +136,7 @@ public class PolicyManagerServletTest extends Mockito {
String policyContent = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- policyContent = IOUtils
- .toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"));
+ policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
}
@@ -141,26 +178,22 @@ public class PolicyManagerServletTest extends Mockito {
HttpSession mockSession = mock(HttpSession.class);
User user = new User();
user.setOrgUserId("Test");
- Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name")))
- .thenReturn(user);
+ Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user);
Mockito.when(request.getSession(false)).thenReturn(mockSession);
commonClassDao = mock(CommonClassDao.class);
}
@Test
- public void testInit() {
+ public void test01Init() {
PolicyManagerServlet servlet = new PolicyManagerServlet();
ServletConfig servletConfig = mock(ServletConfig.class);
try {
- when(servletConfig.getInitParameterNames())
- .thenReturn(Collections.enumeration(headers));
- when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME"))
- .thenReturn("xacml.admin.properties");
+ when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
+ when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
System.setProperty("xacml.rest.admin.closedLoopJSON",
- new File(".").getCanonicalPath() + File.separator + "src" + File.separator
- + "test" + File.separator + "resources" + File.separator
- + "JSONConfig.json");
+ new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
+ + "resources" + File.separator + "JSONConfig.json");
servlet.init(servletConfig);
assertTrue(PolicyManagerServlet.getServiceTypeNamesList().size() > 0);
@@ -173,18 +206,15 @@ public class PolicyManagerServletTest extends Mockito {
}
@Test
- public void testBadInitJson() {
+ public void test02BadInitJson() {
PolicyManagerServlet servlet = new PolicyManagerServlet();
ServletConfig servletConfig = mock(ServletConfig.class);
try {
- when(servletConfig.getInitParameterNames())
- .thenReturn(Collections.enumeration(headers));
- when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME"))
- .thenReturn("xacml.admin.properties");
+ when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
+ when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
System.setProperty("xacml.rest.admin.closedLoopJSON",
- new File(".").getCanonicalPath() + File.separator + "src" + File.separator
- + "test" + File.separator + "resources" + File.separator
- + "JSONConfig.foo");
+ new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
+ + "resources" + File.separator + "JSONConfig.foo");
servlet.init(servletConfig);
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
@@ -193,18 +223,15 @@ public class PolicyManagerServletTest extends Mockito {
}
@Test
- public void testBadInitJsonInvalidFile() {
+ public void test03BadInitJsonInvalidFile() {
PolicyManagerServlet servlet = new PolicyManagerServlet();
ServletConfig servletConfig = mock(ServletConfig.class);
try {
- when(servletConfig.getInitParameterNames())
- .thenReturn(Collections.enumeration(headers));
- when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME"))
- .thenReturn("xacml.admin.properties");
+ when(servletConfig.getInitParameterNames()).thenReturn(Collections.enumeration(headers));
+ when(servletConfig.getInitParameter("XACML_PROPERTIES_NAME")).thenReturn("xacml.admin.properties");
System.setProperty("xacml.rest.admin.closedLoopJSON",
- new File(".").getCanonicalPath() + File.separator + "src" + File.separator
- + "test" + File.separator + "resources" + File.separator
- + "IDonotExist.json");
+ new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + File.separator
+ + "resources" + File.separator + "IDonotExist.json");
servlet.init(servletConfig);
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
@@ -214,11 +241,11 @@ public class PolicyManagerServletTest extends Mockito {
@SuppressWarnings("static-access")
@Test
- public void testDescribePolicy() {
+ public void test04DescribePolicy() {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
- BufferedReader reader = new BufferedReader(new StringReader(
- "{params: { mode: 'DESCRIBEPOLICYFILE', path: 'com.Config_SampleTest1206.1.xml'}}"));
+ BufferedReader reader = new BufferedReader(
+ new StringReader("{params: { mode: 'DESCRIBEPOLICYFILE', path: 'com.Config_SampleTest1206.1.xml'}}"));
try {
when(request.getReader()).thenReturn(reader);
String query = "FROM PolicyEntity where policyName = :split_1 and scope = :split_0";
@@ -231,10 +258,9 @@ public class PolicyManagerServletTest extends Mockito {
}
}
-
@SuppressWarnings("static-access")
@Test
- public void testPolicyScopeList() {
+ public void test05PolicyScopeList() {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<String> list = new ArrayList<>();
@@ -245,14 +271,11 @@ public class PolicyManagerServletTest extends Mockito {
try {
when(request.getReader()).thenReturn(reader);
when(controller.getRoles("Test")).thenReturn(rolesdata);
- when(controller.getDataByQuery("from PolicyEditorScopes", null))
+ when(controller.getDataByQuery("from PolicyEditorScopes", null)).thenReturn(policyEditorScopes);
+ when(controller.getDataByQuery("from PolicyEditorScopes where SCOPENAME like :scopeName", null))
.thenReturn(policyEditorScopes);
- when(controller.getDataByQuery(
- "from PolicyEditorScopes where SCOPENAME like :scopeName", null))
- .thenReturn(policyEditorScopes);
- when(controller.getDataByQuery(
- "from PolicyVersion where POLICY_NAME like :scopeName", null))
- .thenReturn(policyVersion);
+ when(controller.getDataByQuery("from PolicyVersion where POLICY_NAME like :scopeName", null))
+ .thenReturn(policyVersion);
servlet.setPolicyController(controller);
servlet.setTestUserId("Test");
servlet.doPost(request, response);
@@ -265,20 +288,18 @@ public class PolicyManagerServletTest extends Mockito {
@SuppressWarnings("static-access")
@Test
- public void editBasePolicyTest() {
+ public void test06editBasePolicyTest() {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<String> list = new ArrayList<>();
- list.add(
- "{params: { mode: 'EDITFILE', path: '/com/Config_SampleTest1206.1.xml', onlyFolders: false}}");
+ list.add("{params: { mode: 'EDITFILE', path: '/com/Config_SampleTest1206.1.xml', onlyFolders: false}}");
for (int i = 0; i < list.size(); i++) {
BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
try {
when(request.getReader()).thenReturn(reader);
when(controller.getRoles("Test")).thenReturn(rolesdata);
- when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null))
- .thenReturn(basePolicyData);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
+ null)).thenReturn(basePolicyData);
servlet.setPolicyController(controller);
servlet.setTestUserId("Test");
servlet.doPost(request, response);
@@ -291,16 +312,16 @@ public class PolicyManagerServletTest extends Mockito {
@SuppressWarnings("static-access")
@Test
- public void editBRMSParamPolicyTest() {
+ public void test07editBRMSParamPolicyTest() {
List<Object> policyData = new ArrayList<>();
String policyContent = "";
String configData = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- policyContent = IOUtils.toString(classLoader
- .getResourceAsStream("Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml"));
- configData = IOUtils.toString(classLoader
- .getResourceAsStream("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt"));
+ policyContent =
+ IOUtils.toString(classLoader.getResourceAsStream("Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml"));
+ configData = IOUtils
+ .toString(classLoader.getResourceAsStream("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
}
@@ -311,25 +332,22 @@ public class PolicyManagerServletTest extends Mockito {
ConfigurationDataEntity configurationEntity = new ConfigurationDataEntity();
configurationEntity.setConfigBody(configData);
configurationEntity.setConfigType("OTHER");
- configurationEntity
- .setConfigurationName("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt");
+ configurationEntity.setConfigurationName("com.Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.txt");
configurationEntity.setDescription("test");
entity.setConfigurationData(configurationEntity);
policyData.add(entity);
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<String> list = new ArrayList<>();
- list.add(
- "{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml',"
- + " onlyFolders: false}}");
+ list.add("{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Param_BRMSParamvFWDemoPolicy.1.xml',"
+ + " onlyFolders: false}}");
for (int i = 0; i < list.size(); i++) {
BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
try {
when(request.getReader()).thenReturn(reader);
when(controller.getRoles("Test")).thenReturn(rolesdata);
- when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null))
- .thenReturn(policyData);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
+ null)).thenReturn(policyData);
servlet.setPolicyController(controller);
servlet.setTestUserId("Test");
servlet.doPost(request, response);
@@ -342,16 +360,16 @@ public class PolicyManagerServletTest extends Mockito {
@SuppressWarnings("static-access")
@Test
- public void editBRMSRawPolicyTest() {
+ public void test08editBRMSRawPolicyTest() {
List<Object> policyData = new ArrayList<>();
String policyContent = "";
String configData = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- policyContent = IOUtils.toString(
- classLoader.getResourceAsStream("Config_BRMS_Raw_TestBRMSRawPolicy.1.xml"));
- configData = IOUtils.toString(
- classLoader.getResourceAsStream("com.Config_BRMS_Raw_TestBRMSRawPolicy.1.txt"));
+ policyContent =
+ IOUtils.toString(classLoader.getResourceAsStream("Config_BRMS_Raw_TestBRMSRawPolicy.1.xml"));
+ configData =
+ IOUtils.toString(classLoader.getResourceAsStream("com.Config_BRMS_Raw_TestBRMSRawPolicy.1.txt"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
}
@@ -369,17 +387,15 @@ public class PolicyManagerServletTest extends Mockito {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<String> list = new ArrayList<>();
- list.add(
- "{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Raw_TestBRMSRawPolicy.1.xml',"
- + " onlyFolders: false}}");
+ list.add("{params: { mode: 'EDITFILE', path: '/com/Config_BRMS_Raw_TestBRMSRawPolicy.1.xml',"
+ + " onlyFolders: false}}");
for (int i = 0; i < list.size(); i++) {
BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
try {
when(request.getReader()).thenReturn(reader);
when(controller.getRoles("Test")).thenReturn(rolesdata);
- when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null))
- .thenReturn(policyData);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
+ null)).thenReturn(policyData);
servlet.setPolicyController(controller);
servlet.setTestUserId("Test");
servlet.doPost(request, response);
@@ -392,16 +408,16 @@ public class PolicyManagerServletTest extends Mockito {
@SuppressWarnings("static-access")
@Test
- public void editClosedLoopFaultPolicyTest() {
+ public void test09editClosedLoopFaultPolicyTest() {
List<Object> policyData = new ArrayList<>();
String policyContent = "";
String configData = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- policyContent = IOUtils.toString(
- classLoader.getResourceAsStream("Config_Fault_TestClosedLoopPolicy.1.xml"));
- configData = IOUtils.toString(classLoader
- .getResourceAsStream("com.Config_Fault_TestClosedLoopPolicy.1.json"));
+ policyContent =
+ IOUtils.toString(classLoader.getResourceAsStream("Config_Fault_TestClosedLoopPolicy.1.xml"));
+ configData =
+ IOUtils.toString(classLoader.getResourceAsStream("com.Config_Fault_TestClosedLoopPolicy.1.json"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
}
@@ -419,17 +435,15 @@ public class PolicyManagerServletTest extends Mockito {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<String> list = new ArrayList<>();
- list.add(
- "{params: { mode: 'EDITFILE', path: '/com/Config_Fault_TestClosedLoopPolicy.1.xml',"
- + " onlyFolders: false}}");
+ list.add("{params: { mode: 'EDITFILE', path: '/com/Config_Fault_TestClosedLoopPolicy.1.xml',"
+ + " onlyFolders: false}}");
for (int i = 0; i < list.size(); i++) {
BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
try {
when(request.getReader()).thenReturn(reader);
when(controller.getRoles("Test")).thenReturn(rolesdata);
- when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null))
- .thenReturn(policyData);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
+ null)).thenReturn(policyData);
servlet.setPolicyController(controller);
servlet.setTestUserId("Test");
servlet.doPost(request, response);
@@ -442,16 +456,15 @@ public class PolicyManagerServletTest extends Mockito {
@SuppressWarnings("static-access")
@Test
- public void editClosedLoopPMPolicyTest() {
+ public void test10editClosedLoopPMPolicyTest() {
List<Object> policyData = new ArrayList<>();
String policyContent = "";
String configData = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- policyContent = IOUtils.toString(
- classLoader.getResourceAsStream("Config_PM_TestClosedLoopPMPolicy.1.xml"));
- configData = IOUtils.toString(
- classLoader.getResourceAsStream("com.Config_PM_TestClosedLoopPMPolicy.1.json"));
+ policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_PM_TestClosedLoopPMPolicy.1.xml"));
+ configData =
+ IOUtils.toString(classLoader.getResourceAsStream("com.Config_PM_TestClosedLoopPMPolicy.1.json"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
}
@@ -476,9 +489,8 @@ public class PolicyManagerServletTest extends Mockito {
try {
when(request.getReader()).thenReturn(reader);
when(controller.getRoles("Test")).thenReturn(rolesdata);
- when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null))
- .thenReturn(policyData);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
+ null)).thenReturn(policyData);
servlet.setPolicyController(controller);
servlet.setTestUserId("Test");
servlet.doPost(request, response);
@@ -491,7 +503,7 @@ public class PolicyManagerServletTest extends Mockito {
@SuppressWarnings("static-access")
@Test
- public void editMicroServicePolicyTest() {
+ public void test11editMicroServicePolicyTest() {
GroupPolicyScopeList groupData = new GroupPolicyScopeList();
groupData.setGroupName("Test");
groupData.setGroupList("resource=SampleResource,service=SampleService,type=SampleType,"
@@ -505,10 +517,8 @@ public class PolicyManagerServletTest extends Mockito {
String configData = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- policyContent =
- IOUtils.toString(classLoader.getResourceAsStream("Config_MS_vFirewall.1.xml"));
- configData = IOUtils
- .toString(classLoader.getResourceAsStream("com.Config_MS_vFirewall.1.json"));
+ policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_MS_vFirewall.1.xml"));
+ configData = IOUtils.toString(classLoader.getResourceAsStream("com.Config_MS_vFirewall.1.json"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
}
@@ -526,20 +536,17 @@ public class PolicyManagerServletTest extends Mockito {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<String> list = new ArrayList<>();
- list.add(
- "{params: { mode: 'EDITFILE', path: '/com/Config_MS_vFirewall.1.xml', onlyFolders: false}}");
+ list.add("{params: { mode: 'EDITFILE', path: '/com/Config_MS_vFirewall.1.xml', onlyFolders: false}}");
for (int i = 0; i < list.size(); i++) {
BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
try {
when(request.getReader()).thenReturn(reader);
when(commonClassDao.getDataById(GroupPolicyScopeList.class, "groupList",
"resource=SampleResource,service=SampleService,type=SampleType,"
- + "closedLoopControlName=SampleClosedLoop"))
- .thenReturn(groupListData);
+ + "closedLoopControlName=SampleClosedLoop")).thenReturn(groupListData);
when(controller.getRoles("Test")).thenReturn(rolesdata);
- when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null))
- .thenReturn(policyData);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
+ null)).thenReturn(policyData);
servlet.setPolicyController(controller);
servlet.setTestUserId("Test");
servlet.doPost(request, response);
@@ -552,16 +559,14 @@ public class PolicyManagerServletTest extends Mockito {
@SuppressWarnings("static-access")
@Test
- public void editFirewallPolicyTest() {
+ public void test12editFirewallPolicyTest() {
List<Object> policyData = new ArrayList<>();
String policyContent = "";
String configData = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- policyContent = IOUtils.toString(
- classLoader.getResourceAsStream("Config_FW_TestFireWallPolicy.1.xml"));
- configData = IOUtils.toString(
- classLoader.getResourceAsStream("com.Config_FW_TestFireWallPolicy.1.json"));
+ policyContent = IOUtils.toString(classLoader.getResourceAsStream("Config_FW_TestFireWallPolicy.1.xml"));
+ configData = IOUtils.toString(classLoader.getResourceAsStream("com.Config_FW_TestFireWallPolicy.1.json"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
}
@@ -586,9 +591,8 @@ public class PolicyManagerServletTest extends Mockito {
try {
when(request.getReader()).thenReturn(reader);
when(controller.getRoles("Test")).thenReturn(rolesdata);
- when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null))
- .thenReturn(policyData);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
+ null)).thenReturn(policyData);
servlet.setPolicyController(controller);
servlet.setTestUserId("Test");
servlet.doPost(request, response);
@@ -601,16 +605,14 @@ public class PolicyManagerServletTest extends Mockito {
@SuppressWarnings("static-access")
@Test
- public void editActionPolicyTest() {
+ public void test13editActionPolicyTest() {
List<Object> policyData = new ArrayList<>();
String policyContent = "";
String configData = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- policyContent = IOUtils
- .toString(classLoader.getResourceAsStream("Action_TestActionPolicy.1.xml"));
- configData = IOUtils.toString(
- classLoader.getResourceAsStream("com.Action_TestActionPolicy.1.json"));
+ policyContent = IOUtils.toString(classLoader.getResourceAsStream("Action_TestActionPolicy.1.xml"));
+ configData = IOUtils.toString(classLoader.getResourceAsStream("com.Action_TestActionPolicy.1.json"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
}
@@ -626,16 +628,14 @@ public class PolicyManagerServletTest extends Mockito {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<String> list = new ArrayList<>();
- list.add("{params: { mode: 'EDITFILE', path: '/com/Action_TestActionPolicy.1.xml',"
- + " onlyFolders: false}}");
+ list.add("{params: { mode: 'EDITFILE', path: '/com/Action_TestActionPolicy.1.xml'," + " onlyFolders: false}}");
for (int i = 0; i < list.size(); i++) {
BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
try {
when(request.getReader()).thenReturn(reader);
when(controller.getRoles("Test")).thenReturn(rolesdata);
- when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null))
- .thenReturn(policyData);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
+ null)).thenReturn(policyData);
servlet.setPolicyController(controller);
servlet.setTestUserId("Test");
servlet.doPost(request, response);
@@ -648,13 +648,13 @@ public class PolicyManagerServletTest extends Mockito {
@SuppressWarnings("static-access")
@Test
- public void editDecisionPolicyTest() {
+ public void test14editDecisionPolicyTest() {
List<Object> policyData = new ArrayList<>();
String policyContent = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- policyContent = IOUtils.toString(classLoader
- .getResourceAsStream("Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml"));
+ policyContent = IOUtils
+ .toString(classLoader.getResourceAsStream("Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
}
@@ -666,17 +666,15 @@ public class PolicyManagerServletTest extends Mockito {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<String> list = new ArrayList<>();
- list.add(
- "{params: { mode: 'EDITFILE', path: '/com/Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml',"
- + " onlyFolders: false}}");
+ list.add("{params: { mode: 'EDITFILE', path: '/com/Decision_TestDecisionPolicyWithRuleAlgorithms.1.xml',"
+ + " onlyFolders: false}}");
for (int i = 0; i < list.size(); i++) {
BufferedReader reader = new BufferedReader(new StringReader(list.get(i)));
try {
when(request.getReader()).thenReturn(reader);
when(controller.getRoles("Test")).thenReturn(rolesdata);
- when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :split_1 and scope = :split_0", null))
- .thenReturn(policyData);
+ when(controller.getDataByQuery("FROM PolicyEntity where policyName = :split_1 and scope = :split_0",
+ null)).thenReturn(policyData);
servlet.setPolicyController(controller);
servlet.setTestUserId("Test");
servlet.doPost(request, response);
@@ -688,23 +686,20 @@ public class PolicyManagerServletTest extends Mockito {
}
@Test
- public void testAddScope() {
+ public void test15AddScope() {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<BufferedReader> readers = new ArrayList<>();
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test'}}")));
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test*&'}}")));
readers.add(new BufferedReader(
- new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test'}}")));
- readers.add(new BufferedReader(
- new StringReader("{params: { mode: 'ADDFOLDER', path: '/', name: 'Test*&'}}")));
- readers.add(new BufferedReader(new StringReader(
- "{params: { mode: 'ADDFOLDER', path: '/Test', subScopename: 'Test1'}}")));
+ new StringReader("{params: { mode: 'ADDFOLDER', path: '/Test', subScopename: 'Test1'}}")));
for (int i = 0; i < readers.size(); i++) {
try {
when(request.getReader()).thenReturn(readers.get(i));
PolicyManagerServlet.setPolicyController(controller);
servlet.doPost(request, response);
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("success"));
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
fail();
@@ -713,25 +708,23 @@ public class PolicyManagerServletTest extends Mockito {
}
@Test
- public void testClone() {
+ public void test16Clone() {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<BufferedReader> readers = new ArrayList<>();
when(controller.getEntityItem(ConfigurationDataEntity.class, "configurationName",
"com.Config_SampleTest1206.1.txt")).thenReturn(configurationEntity);
when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0",
- null)).thenReturn(basePolicyData);
- readers.add(new BufferedReader(
- new StringReader("{params: { mode: 'COPY', path: 'com.Config_test.1.xml',"
- + " newPath: 'com.Config_testClone.1.xml'}}")));
+ "FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0", null))
+ .thenReturn(basePolicyData);
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'COPY', path: 'com.Config_test.1.xml',"
+ + " newPath: 'com.Config_testClone.1.xml'}}")));
for (int i = 0; i < readers.size(); i++) {
try {
when(request.getReader()).thenReturn(readers.get(i));
PolicyManagerServlet.setPolicyController(controller);
servlet.doPost(request, response);
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("success"));
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
fail();
@@ -740,25 +733,23 @@ public class PolicyManagerServletTest extends Mockito {
}
@Test
- public void testRename() {
+ public void test17Rename() {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<BufferedReader> readers = new ArrayList<>();
when(controller.getEntityItem(ConfigurationDataEntity.class, "configurationName",
"com.Config_SampleTest1206.1.txt")).thenReturn(configurationEntity);
when(controller.getDataByQuery(
- "FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0",
- null)).thenReturn(basePolicyData);
- readers.add(new BufferedReader(
- new StringReader("{params: { mode: 'RENAME', path: 'com.Config_test.1.xml',"
- + " newPath: 'com.Config_testClone.1.xml'}}")));
+ "FROM PolicyEntity where policyName = :oldPolicySplit_1 and scope = :oldPolicySplit_0", null))
+ .thenReturn(basePolicyData);
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'RENAME', path: 'com.Config_test.1.xml',"
+ + " newPath: 'com.Config_testClone.1.xml'}}")));
for (int i = 0; i < readers.size(); i++) {
try {
when(request.getReader()).thenReturn(readers.get(i));
PolicyManagerServlet.setPolicyController(controller);
servlet.doPost(request, response);
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("success"));
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
fail();
@@ -767,23 +758,402 @@ public class PolicyManagerServletTest extends Mockito {
}
@Test
- public void testRenameScope() {
+ public void test18RenameScope() throws Exception {
PolicyManagerServlet servlet = new PolicyManagerServlet();
PolicyController controller = mock(PolicyController.class);
List<BufferedReader> readers = new ArrayList<>();
- readers.add(new BufferedReader(
- new StringReader("{params: { mode: 'RENAME', path: 'com', newPath: 'Test'}}")));
+ readers.add(new BufferedReader(new StringReader("{params: { mode: 'RENAME', path: 'com', newPath: 'Test'}}")));
for (int i = 0; i < readers.size(); i++) {
try {
when(request.getReader()).thenReturn(readers.get(i));
PolicyManagerServlet.setPolicyController(controller);
servlet.doPost(request, response);
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("success"));
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("success"));
} catch (Exception e1) {
logger.error("Exception Occured" + e1);
fail();
}
}
+
+ String inScopeName = "\\\\\\\\inScopeName";
+ String newScopeName = "\\\\\\\\newScopeName";
+ List<Object> scopesList = new ArrayList<Object>();
+ PolicyEditorScopes mockPolicyEditorScope = Mockito.mock(PolicyEditorScopes.class);
+ scopesList.add(mockPolicyEditorScope);
+ when(mockPolicyEditorScope.getScopeName()).thenReturn("inScopeName");
+ Whitebox.invokeMethod(servlet, "renameScope", scopesList, inScopeName, newScopeName, controller);
+ verify(mockPolicyEditorScope, atLeast(1)).getScopeName();
+ }
+
+ @Test
+ public void test19SetPolicyNames() {
+ JsonArray mockJsonArray = Mockito.mock(JsonArray.class);
+ PolicyManagerServlet.setPolicyNames(mockJsonArray);
+ assertEquals(mockJsonArray, PolicyManagerServlet.getPolicyNames());
+ }
+
+ @Test
+ public void test20DoPostSetErrorException() throws IOException {
+ PolicyManagerServlet servlet = new PolicyManagerServlet();
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
+ doThrow(IOException.class).when(mockRequest).getReader();
+ doThrow(IOException.class).when(mockResponse).sendError(any(Integer.class), any(String.class));
+ servlet.doPost(mockRequest, mockResponse);
+ verify(mockRequest).getReader();
+ }
+
+ @Test
+ public void test21DoPostException() throws IOException {
+ PolicyManagerServlet servlet = new PolicyManagerServlet();
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
+
+ doThrow(IOException.class).when(mockRequest).getReader();
+ doThrow(IOException.class).when(mockResponse).sendError(any(Integer.class), any(String.class));
+ doThrow(IOException.class).when(mockResponse).getWriter();
+
+ servlet.doPost(mockRequest, mockResponse);
+ verify(mockRequest).getReader();
+ verify(mockResponse).getWriter();
+ }
+
+ @Test
+ public void test22DoPostSuccess() throws IOException {
+ PolicyManagerServlet servlet = new PolicyManagerServlet();
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
+ PrintWriter mockPrintWriter = Mockito.mock(PrintWriter.class);
+
+ doThrow(IOException.class).when(mockRequest).getReader();
+ when(mockResponse.getWriter()).thenReturn(mockPrintWriter);
+
+ servlet.doPost(null, mockResponse);
+ verify(mockResponse).getWriter();
+ }
+
+ @Test
+ public void test23DoPostUploadFileException() {
+ PolicyManagerServlet servlet = new PolicyManagerServlet() {
+ private static final long serialVersionUID = 1L;
+ @Override
+ protected boolean isMultipartContent(HttpServletRequest request) {
+ return true;
+ }
+ };
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
+ servlet.doPost(mockRequest, mockResponse);
+ }
+
+ @Test
+ public void test24ProcessFormFile() throws Exception {
+ long fileSizeLimit = 10;
+
+ PolicyManagerServlet servlet = new PolicyManagerServlet() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected long getFileSizeLimit() {
+ return fileSizeLimit;
+ }
+
+ @Override
+ protected long copyStream(InputStream inputStream, OutputStream outputStream) throws IOException {
+ // don't really copy the file
+ return 0;
+ }
+ };
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ HttpServletResponse mockResp = Mockito.mock(HttpServletResponse.class);
+ FileItem mockFileItem = Mockito.mock(FileItem.class);
+ InputStream mockInputStream = Mockito.mock(InputStream.class);
+
+ when(mockFileItem.getName()).thenReturn("testFileName.xls");
+ when(mockFileItem.getInputStream()).thenReturn(mockInputStream);
+ when(mockFileItem.getSize()).thenReturn(fileSizeLimit + 1);
+
+ Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem, mockResp);
+ verify(mockFileItem, atLeast(1)).getName();
+ verify(mockFileItem, atLeast(1)).getSize();
+
+ when(mockFileItem.getName()).thenReturn("testFileName.txt");
+ Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem, mockResp);
+ verify(mockFileItem, atLeast(1)).getName();
+
+ when(mockFileItem.getSize()).thenReturn(fileSizeLimit);
+ when(mockFileItem.getName()).thenReturn("testFileName.xls");
+ when(mockFileItem.getInputStream()).thenThrow(IOException.class);
+ Whitebox.invokeMethod(servlet, "processFormFile", mockRequest, mockFileItem, mockResp);
+ verify(mockFileItem, atLeast(1)).getName();
+ verify(mockFileItem, atLeast(1)).getInputStream();
+ verify(mockFileItem, atLeast(1)).getSize();
+ }
+
+ @Test
+ public void test25SearchPolicyList() throws Exception {
+ PolicyManagerServlet servlet = new PolicyManagerServlet();
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ JSONObject mockJSONObject = Mockito.mock(JSONObject.class);
+
+ mockJSONObject.append("policyList", "sampleValue");
+
+ Object res = Whitebox.invokeMethod(servlet, "searchPolicyList", mockJSONObject, mockRequest);
+ assert (res instanceof JSONObject);
+ assertNotNull(((JSONObject) res).get("result"));
+ }
+
+ @Test
+ public void test26LookupPolicyData() throws Exception {
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ User mockUser = Mockito.mock(User.class);
+ UserInfo mockUserInfo = Mockito.mock(UserInfo.class);
+ PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
+ List<JSONObject> resultList = new ArrayList<>();
+ JSONObject mockJSONObject = Mockito.mock(JSONObject.class);
+ resultList.add(mockJSONObject);
+
+ Date mockDate = Mockito.mock(Date.class);
+ List<Object> policyDataList = new ArrayList<>();
+ PolicyVersion mockPolicyVersion = Mockito.mock(PolicyVersion.class);
+ policyDataList.add(mockPolicyVersion);
+ JSONArray mockJSONArray = Mockito.mock(JSONArray.class);
+
+ List<Object> rolesList = new ArrayList<>();
+ Roles adminRole = Mockito.mock(Roles.class);
+ Roles editorRole = Mockito.mock(Roles.class);
+ Roles guestRole = Mockito.mock(Roles.class);
+ adminRole.setRole("admin");
+ editorRole.setRole("editor");
+ guestRole.setRole("guest");
+
+ List<Object> filterDataList = new ArrayList<>();
+ PolicyVersion mockPolicyVersionFilter = Mockito.mock(PolicyVersion.class);
+ filterDataList.add(mockPolicyVersionFilter);
+ List<String> listOfRoles = new ArrayList<String>();
+ Set<String> setOfScopes = new HashSet<String>();
+ Pair<Set<String>, List<String>> pairList = new Pair<Set<String>, List<String>>(setOfScopes, listOfRoles);
+
+ PolicyManagerServlet servlet = new PolicyManagerServlet() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected User getUserSession(HttpServletRequest request) {
+ return mockUser;
+ }
+
+ @Override
+ protected Pair<Set<String>, List<String>> checkRoleAndScope(List<Object> userRoles) {
+ return pairList;
+ }
+ };
+
+ PolicyManagerServlet.setPolicyController(mockPolicyController);
+ when(mockPolicyController.getRoles(any(String.class))).thenReturn(rolesList);
+ when(mockPolicyController.getData(any(Class.class))).thenReturn(filterDataList);
+ when(mockPolicyVersion.getPolicyName()).thenReturn("sampleName");
+ when(mockPolicyVersion.getModifiedDate()).thenReturn(mockDate);
+ when(mockPolicyVersion.getActiveVersion()).thenReturn(1);
+ when(mockPolicyVersion.getCreatedBy()).thenReturn("sampleUserName");
+ when(mockPolicyVersion.getModifiedBy()).thenReturn("sampleUserName");
+ when(mockPolicyController.getEntityItem(UserInfo.class, "userLoginId", "sampleUserName"))
+ .thenReturn(mockUserInfo);
+ when(mockUserInfo.getUserName()).thenReturn("testUserName");
+
+ Whitebox.invokeMethod(servlet, "getPolicyControllerInstance");
+
+ boolean result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
+ mockPolicyController, resultList);
+
+ assertTrue(result);
+ verify(mockPolicyController, atLeast(1)).getRoles(any());
+ verify(mockPolicyController, atLeast(1)).getRoles(any());
+ verify(mockPolicyController, atLeast(1)).getData(any());
+ verify(mockPolicyController, atLeast(1)).getEntityItem(UserInfo.class, "userLoginId", "sampleUserName");
+ verify(mockPolicyVersion, atLeast(1)).getPolicyName();
+ verify(mockPolicyVersion, atLeast(1)).getModifiedDate();
+ verify(mockPolicyVersion, atLeast(1)).getActiveVersion();
+ verify(mockPolicyVersion, atLeast(1)).getCreatedBy();
+ verify(mockPolicyVersion, atLeast(1)).getModifiedBy();
+ verify(mockUserInfo, atLeast(1)).getUserName();
+
+ when(mockPolicyVersionFilter.getPolicyName()).thenReturn("testAdminScope" + File.separator);
+ result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
+ mockPolicyController, resultList);
+ assertTrue(result);
+ verify(mockPolicyVersionFilter, atLeast(1)).getPolicyName();
+
+ setOfScopes.add("testAdminScope");
+ result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
+ mockPolicyController, resultList);
+ assertTrue(result);
+ verify(mockPolicyVersionFilter, atLeast(1)).getPolicyName();
+
+ listOfRoles.add("super-admin");
+ listOfRoles.add("super-editor");
+ listOfRoles.add("super-guest");
+ filterDataList.clear();
+
+ result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
+ mockPolicyController, resultList);
+ assertTrue(result);
+ verify(mockPolicyController, atLeast(1)).getData(any(Class.class));
+
+ listOfRoles.clear();
+ listOfRoles.add("admin");
+ listOfRoles.add("editor");
+ listOfRoles.add("guest");
+ setOfScopes.clear();
+ result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, null,
+ mockPolicyController, resultList);
+ assertFalse(result);
+
+ setOfScopes.add("testScope");
+ result = Whitebox.invokeMethod(servlet, "lookupPolicyData", mockRequest, policyDataList, mockJSONArray,
+ mockPolicyController, resultList);
+ assertTrue(result);
+ }
+
+ @Test
+ public void test27DeleteEntityFromEsAndPolicyEntityTable() throws Exception {
+ PolicyManagerServlet servlet = new PolicyManagerServlet();
+ PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
+ PolicyRestController mockPolicyRestController = Mockito.mock(PolicyRestController.class);
+ PolicyEntity mockPolicyEntity = Mockito.mock(PolicyEntity.class);
+ ConfigurationDataEntity mockConfigDataEntity = Mockito.mock(ConfigurationDataEntity.class);
+ ActionBodyEntity mockActionBodyEntity = Mockito.mock(ActionBodyEntity.class);
+
+ String policyNamewithoutExtension = "Config_";
+ String configName = "";
+ String actionBodyName = "";
+
+ when(mockPolicyEntity.getScope()).thenReturn("");
+ when(mockPolicyEntity.getPolicyName()).thenReturn("");
+ Mockito.doNothing().when(mockPolicyRestController).deleteElasticData(any(String.class));
+ Mockito.doNothing().when(mockPolicyController).deleteData(mockPolicyEntity);
+ when(mockPolicyEntity.getConfigurationData()).thenReturn(mockConfigDataEntity);
+ when(mockPolicyEntity.getActionBodyEntity()).thenReturn(mockActionBodyEntity);
+ when(mockConfigDataEntity.getConfigurationName()).thenReturn(configName);
+ when(mockActionBodyEntity.getActionBodyName()).thenReturn(actionBodyName);
+ when(mockPolicyRestController.notifyOtherPapsToUpdateConfigurations("delete", null, configName)).thenReturn("");
+
+ Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController,
+ mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension);
+
+ verify(mockPolicyEntity, atLeast(1)).getScope();
+ verify(mockPolicyEntity, atLeast(1)).getPolicyName();
+ verify(mockPolicyEntity, atLeast(1)).getConfigurationData();
+ verify(mockConfigDataEntity, atLeast(1)).getConfigurationName();
+
+ policyNamewithoutExtension = "Action_";
+ when(mockPolicyRestController.notifyOtherPapsToUpdateConfigurations("delete", null, actionBodyName))
+ .thenReturn("");
+
+ Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController,
+ mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension);
+
+ verify(mockPolicyEntity, atLeast(1)).getScope();
+ verify(mockPolicyEntity, atLeast(1)).getPolicyName();
+ verify(mockPolicyEntity, atLeast(1)).getActionBodyEntity();
+ verify(mockActionBodyEntity, atLeast(1)).getActionBodyName();
+
+ policyNamewithoutExtension = "Other_";
+ Whitebox.invokeMethod(servlet, "deleteEntityFromEsAndPolicyEntityTable", mockPolicyController,
+ mockPolicyRestController, mockPolicyEntity, policyNamewithoutExtension);
+
+ verify(mockPolicyEntity, atLeast(1)).getScope();
+ verify(mockPolicyEntity, atLeast(1)).getPolicyName();
+ verify(mockPolicyRestController, atLeast(1)).deleteElasticData(any(String.class));
+ verify(mockPolicyController, atLeast(1)).deleteData(mockPolicyEntity);
+ }
+
+ @Test
+ public void test28Delete() throws Exception {
+ JSONObject mockJSONObject = Mockito.mock(JSONObject.class);
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ User mockUser = Mockito.mock(User.class);
+ PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
+ List<Object> policyEntityList = new ArrayList<Object>();
+ PolicyEntity mockPolicyEntity = Mockito.mock(PolicyEntity.class);
+ policyEntityList.add(mockPolicyEntity);
+ long policyId = 1;
+
+ PolicyManagerServlet servlet = new PolicyManagerServlet() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected User getUserSession(HttpServletRequest request) {
+ return mockUser;
+ }
+ };
+
+ PolicyManagerServlet.setPolicyController(mockPolicyController);
+ when(mockUser.getOrgUserId()).thenReturn("sampleUserId");
+ when(mockJSONObject.getString("path")).thenReturn("/sampleScope:samplePolicyName.1.xml");
+ when(mockJSONObject.has("deleteVersion")).thenReturn(true);
+ when(mockJSONObject.getString("deleteVersion")).thenReturn("ALL");
+ when(mockPolicyController.getDataByQuery(any(String.class), any(SimpleBindings.class)))
+ .thenReturn(policyEntityList);
+ when(mockPolicyEntity.getPolicyId()).thenReturn(policyId);
+ when(mockPolicyEntity.getScope()).thenReturn("sampleScope");
+ when(mockPolicyEntity.getPolicyName()).thenReturn("samplePolicyName");
+
+ JSONObject returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest);
+ assertTrue(returnObj.has("result"));
+ verify(mockUser, atLeast(1)).getOrgUserId();
+ verify(mockJSONObject, atLeast(1)).getString(any(String.class));
+ verify(mockJSONObject, atLeast(1)).has(any(String.class));
+ verify(mockPolicyController, atLeast(1)).getDataByQuery(any(String.class), any(SimpleBindings.class));
+ verify(mockPolicyEntity, atLeast(1)).getPolicyId();
+ verify(mockPolicyEntity, atLeast(1)).getScope();
+ verify(mockPolicyEntity, atLeast(1)).getPolicyName();
+
+ when(mockJSONObject.getString("path")).thenReturn("/sampleScope\\:samplePolicyName.1.xml");
+ when(mockJSONObject.getString("deleteVersion")).thenReturn("CURRENT");
+ returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest);
+ assertTrue(returnObj.has("result"));
+ verify(mockJSONObject, atLeast(1)).getString(any(String.class));
+
+ when(mockJSONObject.getString("path")).thenReturn("/sampleScope:samplePolicyName.2.txt");
+ when(mockJSONObject.has("deleteVersion")).thenReturn(false);
+ returnObj = Whitebox.invokeMethod(servlet, "delete", mockJSONObject, mockRequest);
+ assertTrue(returnObj.has("result"));
+ verify(mockJSONObject, atLeast(1)).getString("path");
+ verify(mockJSONObject, atLeast(1)).has("deleteVersion");
+ }
+
+ @Test
+ public void test29ParsePolicyList() throws Exception {
+ PolicyManagerServlet servlet = new PolicyManagerServlet();
+ List<JSONObject> resultList = new ArrayList<JSONObject>();
+ PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
+ UserInfo mockUserInfo = Mockito.mock(UserInfo.class);
+ String policyName = "sampleName\\";
+ String policyVersion = "sampleVersion";
+ List<Object> activeDataList = new ArrayList<Object>();
+ PolicyVersion mockPolicyVersion = Mockito.mock(PolicyVersion.class);
+ activeDataList.add(mockPolicyVersion);
+ Date mockDate = Mockito.mock(Date.class);
+
+ when(mockPolicyController.getDataByQuery(any(String.class), any(SimpleBindings.class)))
+ .thenReturn(activeDataList);
+ when(mockPolicyVersion.getPolicyName()).thenReturn("testPolicyName");
+ when(mockPolicyVersion.getModifiedDate()).thenReturn(mockDate);
+ when(mockPolicyVersion.getActiveVersion()).thenReturn(1);
+ when(mockPolicyVersion.getCreatedBy()).thenReturn("sampleUserName");
+ when(mockPolicyVersion.getModifiedBy()).thenReturn("sampleUserName");
+ //
+ // This intermittently throws an NPE, even when fixing the method order
+ //
+ when(mockPolicyController.getEntityItem(UserInfo.class, "userLoginId", "sampleUserName"))
+ .thenReturn(mockUserInfo);
+ when(mockUserInfo.getUserName()).thenReturn("testUserName");
+ Whitebox.invokeMethod(servlet, "parsePolicyList", resultList, mockPolicyController, policyName, policyVersion);
+ verify(mockPolicyController, atLeast(1)).getDataByQuery(any(String.class), any(SimpleBindings.class));
+ verify(mockPolicyVersion, atLeast(1)).getPolicyName();
+ verify(mockPolicyVersion, atLeast(1)).getModifiedDate();
+ verify(mockPolicyVersion, atLeast(1)).getActiveVersion();
+ verify(mockPolicyVersion, atLeast(1)).getCreatedBy();
+ verify(mockPolicyVersion, atLeast(1)).getModifiedBy();
}
}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyNotificationMailTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyNotificationMailTest.java
index 95296f4b0..5111ef2a8 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyNotificationMailTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyNotificationMailTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,16 +19,20 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.admin;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
import java.util.ArrayList;
import java.util.List;
+
import org.junit.Before;
import org.junit.Test;
-import static org.mockito.Mockito.when;
+import org.onap.policy.common.utils.network.NetworkUtil;
import org.onap.policy.controller.PolicyController;
import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.PolicyVersion;
@@ -41,16 +45,27 @@ public class PolicyNotificationMailTest {
private CommonClassDao commonClassDao;
private List<Object> data = null;
+ /**
+ * setUp.
+ *
+ * @throws Exception should not throw one
+ */
@Before
public void setUp() throws Exception {
PolicyController.setjUnit(true);
PolicyController.setSmtpApplicationName("Test");
PolicyController.setSmtpEmailExtension("test.com");
- PolicyController.setSmtpHost("test");
- PolicyController.setSmtpPort("23");
+ PolicyController.setSmtpHost("localhost");
PolicyController.setSmtpPassword("test");
PolicyController.setSmtpUsername("test");
+ /*
+ * Allocate a port to which the mail sender should connect, but don't actually
+ * start a listener on the port so that connection attempts will be immediately
+ * rejected.
+ */
+ PolicyController.setSmtpPort(String.valueOf(NetworkUtil.allocPort()));
+
version = new PolicyVersion();
version.setPolicyName("com/Config_Test");
version.setModifiedBy("xyz");
@@ -62,9 +77,8 @@ public class PolicyNotificationMailTest {
commonClassDao = mock(CommonClassDao.class);
PolicyController.setCommonClassDao(commonClassDao);
- when(commonClassDao.getDataByQuery(
- "from WatchPolicyNotificationTable where policyName like:policyFileName", null))
- .thenReturn(data);
+ when(commonClassDao.getDataByQuery("from WatchPolicyNotificationTable where policyName like:policyFileName",
+ null)).thenReturn(data);
}
@Test
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyRestControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyRestControllerTest.java
index ce38f236f..6c47b3955 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyRestControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyRestControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019-2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,26 +19,40 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.admin;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
+import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+
import java.io.BufferedReader;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
import java.io.StringReader;
+import java.net.HttpURLConnection;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.onap.policy.controller.CreateFirewallController;
+import org.onap.policy.controller.PolicyController;
import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.ActionList;
import org.onap.policy.rest.jpa.AddressGroup;
-import org.onap.policy.rest.jpa.FWTagPicker;
+import org.onap.policy.rest.jpa.FwTagPicker;
import org.onap.policy.rest.jpa.GroupServiceList;
import org.onap.policy.rest.jpa.PrefixList;
import org.onap.policy.rest.jpa.SecurityZone;
@@ -46,8 +60,16 @@ import org.onap.policy.rest.jpa.ServiceList;
import org.onap.policy.rest.jpa.TermList;
import org.onap.portalsdk.core.domain.User;
import org.onap.portalsdk.core.util.SystemProperties;
+import org.onap.portalsdk.core.web.support.UserUtils;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.reflect.Whitebox;
import org.springframework.mock.web.MockHttpServletResponse;
+@RunWith(PowerMockRunner.class)
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "com.sun.org.apache.xalan.*"})
public class PolicyRestControllerTest {
private String clRequestString;
@@ -65,77 +87,78 @@ public class PolicyRestControllerTest {
private List<Object> tagListData;
private List<Object> termListData;
+ /**
+ * Before.
+ *
+ * @throws Exception exception
+ */
@Before
public void setUp() throws Exception {
commonClassDao = mock(CommonClassDao.class);
- HttpSession mockSession = mock(HttpSession.class);
+ final HttpSession mockSession = mock(HttpSession.class);
request = mock(HttpServletRequest.class);
response = new MockHttpServletResponse();
User user = new User();
user.setOrgUserId("Test");
- Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name")))
- .thenReturn(user);
+ Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user);
Mockito.when(request.getSession(false)).thenReturn(mockSession);
- clRequestString =
- "{\"policyData\":{\"error\":\"\",\"inprocess\":false,\"model\":{\"name\":\"com\","
- + "\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0,"
- + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\","
- + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},"
- + "\"tempModel\":{\"name\":\"com\",\"subScopename\":\"\",\"path\":[],\"type\":\"dir\","
- + "\"size\":0,\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\","
- + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},"
- + "\"$$hashKey\":\"object:1439\",\"policy\":{\"policyType\":\"Config\","
- + "\"configPolicyType\":\"ClosedLoop_Fault\",\"triggerTrapSignatures\":[1,1,2,3],"
- + "\"triggerfaultSignatures\":[1,1,2,3],\"traptriggerSignatures\":[{\"id\":\"Trap1\","
- + "\"$$hashKey\":\"object:1526\"},{\"id\":\"Trap2\",\"$$hashKey\":\"object:1534\"}],"
- + "\"connecttriggerSignatures\":[{\"id\":\"C1\",\"$$hashKey\":\"object:1554\","
- + "\"notBox\":\"NOT\",\"connectTrap1\":\"Trap1\",\"trapCount1\":\"12\","
- + "\"operatorBox\":\"AND\",\"connectTrap2\":\"Trap2\",\"trapCount2\":\"14\"}],"
- + "\"faulttriggerSignatures\":[{\"id\":\"Fault1\",\"$$hashKey\":\"object:1566\"},"
- + "{\"id\":\"Fault2\",\"$$hashKey\":\"object:1575\"}],\"connectVerificationSignatures\":"
- + "[{\"id\":\"C1\",\"$$hashKey\":\"object:1595\",\"notBox\":\"NOT\","
- + "\"connectTrap1\":\"Fault1\",\"trapCount1\":\"11\",\"operatorBox\":\"AND\","
- + "\"connectTrap2\":\"Fault2\",\"trapCount2\":\"12\"}],\"jsonBodyData\":"
- + "{\"trapMaxAge\":\"300\",\"vnfType\":\"Test\",\"closedLoopPolicyStatus\":\"Active\","
- + "\"vUSP\":true,\"trinity\":true,\"vDNS\":true,\"mcr\":true,\"gamma\":true,"
- + "\"actions\":\"Test\",\"timeInterval\":\"11\",\"timeOutvPRO\":\"11\",\"timeOutRuby\":\"11\","
- + "\"retrys\":\"1\",\"agingWindow\":\"12\",\"geoLink\":\"test\","
- + "\"emailAddress\":\"aa@test.com\",\"pepName\":\"Test\",\"pepAction\":\"test\","
- + "\"conditions\":\"SEND\"},\"policyName\":\"SampleTest\","
- + "\"policyDescription\":\"SampleTest\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\","
- + "\"guard\":\"True\",\"onapName\":\"SampleDemo\",\"ttlDate\":\"14/09/2017\","
- + "\"clearTimeOut\":\"123\",\"trapMaxAge\":\"11\",\"verificationclearTimeOut\":\"13\"}},"
- + "\"trapData\":{\"trap1\":[{\"id\":\"A1\",\"$$hashKey\":\"object:1528\","
- + "\"notBox\":\"NOT\",\"trigger1\":\"Test\",\"operatorBox\":\"AND\",\"trigger2\":\"Test\"}],"
- + "\"trap2\":[{\"id\":\"A1\",\"$$hashKey\":\"object:1536\",\"notBox\":\"NOT\","
- + "\"trigger1\":\"Test\",\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A2\","
- + "\"$$hashKey\":\"object:1542\",\"notBox\":\"NOT\",\"trigger1\":\"A1\","
- + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A3\","
- + "\"$$hashKey\":\"object:1548\",\"notBox\":\"NOT\",\"trigger1\":\"A1\","
- + "\"operatorBox\":\"OR\",\"trigger2\":\"A2\"}]},\"faultData\":{\"trap1\":[{\"id\":\"A1\","
- + "\"$$hashKey\":\"object:1568\",\"notBox\":\"NOT\",\"trigger1\":\"Test\","
- + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"}],\"trap2\":[{\"id\":\"A1\","
- + "\"$$hashKey\":\"object:1577\",\"notBox\":\"NOT\",\"trigger1\":\"Test\","
- + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A2\",\"$$hashKey\":"
- + "\"object:1583\",\"notBox\":\"NOT\",\"trigger1\":\"Test\",\"operatorBox\":\"OR\","
- + "\"trigger2\":\"Test\"},{\"id\":\"A3\",\"$$hashKey\":\"object:1589\",\"notBox\":\"NOT\","
- + "\"trigger1\":\"A1\",\"operatorBox\":\"AND\",\"trigger2\":\"A2\"}]}}";
-
-
- fwRequestString =
- "{\"policyData\":{\"error\":\"\",\"inprocess\":false,\"model\":{\"name\":\"com\","
- + "\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0,"
- + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\","
- + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},\"tempModel\":"
- + "{\"name\":\"com\",\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0,"
- + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\","
- + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},\"$$hashKey\":\"object:260\","
- + "\"policy\":{\"policyType\":\"Config\",\"configPolicyType\":\"Firewall Config\","
- + "\"attributes\":[{\"id\":\"choice1\",\"$$hashKey\":\"object:338\",\"key\":\"Test\","
- + "\"value\":\"Test\"}],\"fwattributes\":[],\"policyName\":\"SampleTest\","
- + "\"policyDescription\":\"SampleTest\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\","
- + "\"guard\":\"True\",\"configName\":\"SampleTest\",\"ttlDate\":\"14/09/2017\","
- + "\"securityZone\":\"Test\"}}}";
+ clRequestString = "{\"policyData\":{\"error\":\"\",\"inprocess\":false,\"model\":{\"name\":\"com\","
+ + "\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0,"
+ + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\","
+ + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},"
+ + "\"tempModel\":{\"name\":\"com\",\"subScopename\":\"\",\"path\":[],\"type\":\"dir\","
+ + "\"size\":0,\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\","
+ + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},"
+ + "\"$$hashKey\":\"object:1439\",\"policy\":{\"policyType\":\"Config\","
+ + "\"configPolicyType\":\"ClosedLoop_Fault\",\"triggerTrapSignatures\":[1,1,2,3],"
+ + "\"triggerfaultSignatures\":[1,1,2,3],\"traptriggerSignatures\":[{\"id\":\"Trap1\","
+ + "\"$$hashKey\":\"object:1526\"},{\"id\":\"Trap2\",\"$$hashKey\":\"object:1534\"}],"
+ + "\"connecttriggerSignatures\":[{\"id\":\"C1\",\"$$hashKey\":\"object:1554\","
+ + "\"notBox\":\"NOT\",\"connectTrap1\":\"Trap1\",\"trapCount1\":\"12\","
+ + "\"operatorBox\":\"AND\",\"connectTrap2\":\"Trap2\",\"trapCount2\":\"14\"}],"
+ + "\"faulttriggerSignatures\":[{\"id\":\"Fault1\",\"$$hashKey\":\"object:1566\"},"
+ + "{\"id\":\"Fault2\",\"$$hashKey\":\"object:1575\"}],\"connectVerificationSignatures\":"
+ + "[{\"id\":\"C1\",\"$$hashKey\":\"object:1595\",\"notBox\":\"NOT\","
+ + "\"connectTrap1\":\"Fault1\",\"trapCount1\":\"11\",\"operatorBox\":\"AND\","
+ + "\"connectTrap2\":\"Fault2\",\"trapCount2\":\"12\"}],\"jsonBodyData\":"
+ + "{\"trapMaxAge\":\"300\",\"vnfType\":\"Test\",\"closedLoopPolicyStatus\":\"Active\","
+ + "\"vUSP\":true,\"trinity\":true,\"vDNS\":true,\"mcr\":true,\"gamma\":true,"
+ + "\"actions\":\"Test\",\"timeInterval\":\"11\",\"timeOutvPRO\":\"11\",\"timeOutRuby\":\"11\","
+ + "\"retrys\":\"1\",\"agingWindow\":\"12\",\"geoLink\":\"test\","
+ + "\"emailAddress\":\"aa@test.com\",\"pepName\":\"Test\",\"pepAction\":\"test\","
+ + "\"conditions\":\"SEND\"},\"policyName\":\"SampleTest\","
+ + "\"policyDescription\":\"SampleTest\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\","
+ + "\"guard\":\"True\",\"onapName\":\"SampleDemo\",\"ttlDate\":\"14/09/2017\","
+ + "\"clearTimeOut\":\"123\",\"trapMaxAge\":\"11\",\"verificationclearTimeOut\":\"13\"}},"
+ + "\"trapData\":{\"trap1\":[{\"id\":\"A1\",\"$$hashKey\":\"object:1528\","
+ + "\"notBox\":\"NOT\",\"trigger1\":\"Test\",\"operatorBox\":\"AND\",\"trigger2\":\"Test\"}],"
+ + "\"trap2\":[{\"id\":\"A1\",\"$$hashKey\":\"object:1536\",\"notBox\":\"NOT\","
+ + "\"trigger1\":\"Test\",\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A2\","
+ + "\"$$hashKey\":\"object:1542\",\"notBox\":\"NOT\",\"trigger1\":\"A1\","
+ + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A3\","
+ + "\"$$hashKey\":\"object:1548\",\"notBox\":\"NOT\",\"trigger1\":\"A1\","
+ + "\"operatorBox\":\"OR\",\"trigger2\":\"A2\"}]},\"faultData\":{\"trap1\":[{\"id\":\"A1\","
+ + "\"$$hashKey\":\"object:1568\",\"notBox\":\"NOT\",\"trigger1\":\"Test\","
+ + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"}],\"trap2\":[{\"id\":\"A1\","
+ + "\"$$hashKey\":\"object:1577\",\"notBox\":\"NOT\",\"trigger1\":\"Test\","
+ + "\"operatorBox\":\"AND\",\"trigger2\":\"Test\"},{\"id\":\"A2\",\"$$hashKey\":"
+ + "\"object:1583\",\"notBox\":\"NOT\",\"trigger1\":\"Test\",\"operatorBox\":\"OR\","
+ + "\"trigger2\":\"Test\"},{\"id\":\"A3\",\"$$hashKey\":\"object:1589\",\"notBox\":\"NOT\","
+ + "\"trigger1\":\"A1\",\"operatorBox\":\"AND\",\"trigger2\":\"A2\"}]}}";
+
+ fwRequestString = "{\"policyData\":{\"error\":\"\",\"inprocess\":false,\"model\":{\"name\":\"com\","
+ + "\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0,"
+ + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\","
+ + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},\"tempModel\":"
+ + "{\"name\":\"com\",\"subScopename\":\"\",\"path\":[],\"type\":\"dir\",\"size\":0,"
+ + "\"date\":\"2017-06-01T15:45:36.000Z\",\"version\":\"\",\"createdBy\":\"Demo\","
+ + "\"modifiedBy\":\"Demo\",\"content\":\"\",\"recursive\":false},\"$$hashKey\":\"object:260\","
+ + "\"policy\":{\"policyType\":\"Config\",\"configPolicyType\":\"Firewall Config\","
+ + "\"attributes\":[{\"id\":\"choice1\",\"$$hashKey\":\"object:338\",\"key\":\"Test\","
+ + "\"value\":\"Test\"}],\"fwattributes\":[],\"policyName\":\"SampleTest\","
+ + "\"policyDescription\":\"SampleTest\",\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\","
+ + "\"guard\":\"True\",\"configName\":\"SampleTest\",\"ttlDate\":\"14/09/2017\","
+ + "\"securityZone\":\"Test\"}}}";
fwViewRequestString =
"{\"policyData\":{\"policyType\":\"Config\",\"configPolicyType\":\"Firewall Config\",\"attributes\":"
@@ -144,8 +167,6 @@ public class PolicyRestControllerTest {
+ "\"riskType\":\"SampleRiskType\",\"riskLevel\":\"1\",\"guard\":\"True\","
+ "\"configName\":\"SampleTest\",\"ttlDate\":\"14/09/2017\",\"securityZone\":\"Test\"}}";
-
-
prefixListData = new ArrayList<>();
PrefixList prefixList = new PrefixList();
prefixList.setPrefixListName("Test");
@@ -163,7 +184,7 @@ public class PolicyRestControllerTest {
ServiceList serviceList = new ServiceList();
serviceList.setServiceName("Test");
serviceList.setServiceType("SERVICE");
- serviceList.setServiceTransProtocol("Test");
+ serviceList.setServiceTransportProtocol("Test");
serviceList.setServiceAppProtocol("Test");
serviceList.setServicePorts("8080");
serviceListData.add(serviceList);
@@ -191,30 +212,33 @@ public class PolicyRestControllerTest {
when(commonClassDao.getData(GroupServiceList.class)).thenReturn(serviceGroupData);
tagListData = new ArrayList<>();
- FWTagPicker fwPicker = new FWTagPicker();
+ FwTagPicker fwPicker = new FwTagPicker();
fwPicker.setTagPickerName("Test");
fwPicker.setTagValues("Test:8080");
tagListData.add(fwPicker);
- when(commonClassDao.getData(FWTagPicker.class)).thenReturn(tagListData);
+ when(commonClassDao.getData(FwTagPicker.class)).thenReturn(tagListData);
termListData = new ArrayList<>();
TermList termList = new TermList();
termList.setTermName("Test");
- termList.setFromZones("Test");
- termList.setToZones("Test");
- termList.setSrcIPList("Test");
- termList.setDestIPList("Test");
+ termList.setFromZone("Test");
+ termList.setToZone("Test");
+ termList.setSrcIpList("Test");
+ termList.setDestIpList("Test");
termList.setSrcPortList("Test");
termList.setDestPortList("Test");
termList.setAction("Test");
termListData.add(termList);
when(commonClassDao.getData(TermList.class)).thenReturn(termListData);
- when(commonClassDao.getDataById(TermList.class, "termName", "Test"))
- .thenReturn(termListData);
+ when(commonClassDao.getDataById(TermList.class, "termName", "Test")).thenReturn(termListData);
}
@Test
public final void testPolicyCreationController() {
+ assertNull(PolicyRestController.getCommonClassDao());
+ PolicyRestController.setCommonClassDao(commonClassDao);
+ assertNotNull(PolicyRestController.getCommonClassDao());
+
PolicyRestController controller = new PolicyRestController();
BufferedReader reader = new BufferedReader(new StringReader(clRequestString));
try {
@@ -225,6 +249,7 @@ public class PolicyRestControllerTest {
}
PolicyRestController controller1 = new PolicyRestController();
CreateFirewallController.setCommonClassDao(commonClassDao);
+ assertNotNull(CreateFirewallController.getCommonClassDao());
BufferedReader reader1 = new BufferedReader(new StringReader(fwRequestString));
try {
Mockito.when(request.getReader()).thenReturn(reader1);
@@ -245,6 +270,27 @@ public class PolicyRestControllerTest {
}
@Test
+ public final void testSearchPolicy() throws IOException {
+ PolicyController.setjUnit(true);
+ PolicyController.setPapUrl("http://localhost:8070/pap/");
+ PolicyRestController controller = new PolicyRestController();
+ BufferedReader reader = new BufferedReader(new StringReader("{\"foo\":\"bar\"}"));
+ Mockito.when(request.getReader()).thenReturn(reader);
+ Mockito.when(request.getRequestURI()).thenReturn("/pap/foo/");
+ assertThatExceptionOfType(NullPointerException.class)
+ .isThrownBy(() -> controller.searchPolicy(request, response));
+ }
+
+ @Test
+ public final void testSearchDictionaryController() throws IOException {
+ PolicyRestController controller = new PolicyRestController();
+ BufferedReader reader = new BufferedReader(new StringReader("{\"foo\":\"bar\"}"));
+ Mockito.when(request.getReader()).thenReturn(reader);
+ Mockito.when(request.getRequestURI()).thenReturn("/pap/foo/");
+ assertNull(controller.searchDictionaryController(request, response));
+ }
+
+ @Test
public final void testDeleteElasticData() {
PolicyRestController controller = new PolicyRestController();
try {
@@ -253,4 +299,101 @@ public class PolicyRestControllerTest {
fail();
}
}
+
+ @Test
+ public final void testNotifyOtherPaps() {
+ PolicyRestController controller = new PolicyRestController();
+ String strReturn = controller.notifyOtherPapsToUpdateConfigurations("mode", "newName", "oldName");
+ assertNull(strReturn);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetDictionaryController() throws IOException {
+ PolicyRestController controller = new PolicyRestController();
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
+ PrintWriter mockPrintWriter = Mockito.mock(PrintWriter.class);
+
+ when(mockRequest.getRequestURI()).thenReturn("//testRequestURI///getDictionary");
+ when(mockResponse.getWriter()).thenThrow(IOException.class);
+ controller.getDictionaryController(mockRequest, mockResponse);
+ verify(mockRequest, atLeast(1)).getRequestURI();
+ verify(mockResponse, atLeast(1)).getWriter();
+
+ reset(mockResponse);
+ when(mockRequest.getRequestURI()).thenReturn("testRequestURI///getDictionary");
+ when(mockResponse.getWriter()).thenReturn(mockPrintWriter);
+ controller.getDictionaryController(mockRequest, mockResponse);
+ verify(mockRequest, atLeast(1)).getRequestURI();
+ verify(mockResponse, atLeast(1)).getWriter();
+ }
+
+ @PrepareForTest(UserUtils.class)
+ @Test
+ public void testdeletetDictionaryController() throws IOException {
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
+ PolicyRestController controller = new PolicyRestController();
+ User mockUser = Mockito.mock(User.class);
+ PowerMockito.mockStatic(UserUtils.class);
+ PrintWriter mockPrintWriter = Mockito.mock(PrintWriter.class);
+
+ when(mockRequest.getRequestURI()).thenReturn("//testRequestURI///deleteDictionary");
+ when(mockResponse.getWriter()).thenReturn(mockPrintWriter);
+ when(UserUtils.getUserSession(mockRequest)).thenReturn(mockUser);
+ when(mockUser.getOrgUserId()).thenReturn("testUserId");
+
+ controller.deletetDictionaryController(mockRequest, mockResponse);
+ verify(mockRequest).getRequestURI();
+ verify(mockResponse).getWriter();
+ verify(mockUser).getOrgUserId();
+
+ when(mockRequest.getRequestURI()).thenReturn("testRequestURI///deleteDictionary");
+ controller.deletetDictionaryController(mockRequest, mockResponse);
+ verify(mockRequest, atLeast(1)).getRequestURI();
+ }
+
+ @PrepareForTest(UserUtils.class)
+ @Test
+ public void testSaveDictionaryController() throws IOException {
+ HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
+ PolicyRestController controller = new PolicyRestController();
+ User mockUser = Mockito.mock(User.class);
+ PowerMockito.mockStatic(UserUtils.class);
+ PrintWriter mockPrintWriter = Mockito.mock(PrintWriter.class);
+
+ when(mockRequest.getRequestURI()).thenReturn("//testRequestURI///saveDictionary//import_dictionary");
+ when(mockResponse.getWriter()).thenReturn(mockPrintWriter);
+ when(UserUtils.getUserSession(mockRequest)).thenReturn(mockUser);
+ when(mockUser.getOrgUserId()).thenReturn("testUserId");
+
+ controller.saveDictionaryController(mockRequest, mockResponse);
+ verify(mockRequest).getRequestURI();
+ verify(mockResponse).getWriter();
+ verify(mockUser).getOrgUserId();
+
+ when(mockRequest.getRequestURI()).thenReturn("testRequestURI///saveDictionary");
+ controller.saveDictionaryController(mockRequest, mockResponse);
+ verify(mockRequest, atLeast(1)).getRequestURI();
+ }
+
+ @Test
+ public void testDoConnect() throws Exception {
+ HttpURLConnection mockConnection = Mockito.mock(HttpURLConnection.class);
+ PolicyRestController controller = new PolicyRestController();
+ Mockito.doNothing().when(mockConnection).connect();
+ InputStream mockInputStream = Mockito.mock(InputStream.class);
+
+ when(mockConnection.getResponseCode()).thenReturn(200);
+ when(mockConnection.getInputStream()).thenReturn(mockInputStream);
+
+ Whitebox.invokeMethod(controller, "doConnect", mockConnection);
+ verify(mockConnection).getResponseCode();
+ verify(mockConnection).getInputStream();
+
+ when(mockConnection.getResponseCode()).thenReturn(201);
+ assertNull(Whitebox.invokeMethod(controller, "doConnect", mockConnection));
+ }
}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyUserInfoControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyUserInfoControllerTest.java
index d05b7933d..55e4b5a93 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyUserInfoControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyUserInfoControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,12 +19,19 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.admin;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.junit.Before;
import org.junit.Test;
@@ -45,8 +52,7 @@ public class PolicyUserInfoControllerTest {
response = new MockHttpServletResponse();
User user = new User();
user.setOrgUserId("Test");
- Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name")))
- .thenReturn(user);
+ Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user);
Mockito.when(request.getSession(false)).thenReturn(mockSession);
}
@@ -60,4 +66,14 @@ public class PolicyUserInfoControllerTest {
fail();
}
}
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetPolicyUserInfoException() throws IOException {
+ HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
+ when(mockResponse.getWriter()).thenThrow(IOException.class);
+ PolicyUserInfoController controller = new PolicyUserInfoController();
+ controller.getPolicyUserInfo(request, mockResponse);
+ verify(mockResponse, atLeast(1)).getWriter();
+ }
}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/RESTfulPAPEngineTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/RESTfulPAPEngineTest.java
index 4b307f594..0deb3d6fc 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/RESTfulPAPEngineTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/RESTfulPAPEngineTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,35 +19,30 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.admin;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import static org.junit.Assert.assertNull;
+
+import com.att.research.xacml.api.pap.PAPException;
+import com.att.research.xacml.api.pap.PDPPolicy;
+import com.att.research.xacml.util.XACMLProperties;
import java.io.ByteArrayInputStream;
+import java.io.IOException;
import java.io.InputStream;
-import java.net.URL;
-import javax.servlet.http.HttpServletResponse;
import java.net.HttpURLConnection;
-import org.junit.Before;
-import org.junit.Rule;
+import java.net.URLConnection;
+import javax.servlet.http.HttpServletResponse;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.onap.policy.rest.adapter.PolicyRestAdapter;
import org.onap.policy.xacml.api.pap.OnapPDP;
import org.onap.policy.xacml.api.pap.OnapPDPGroup;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import com.att.research.xacml.api.pap.PAPException;
-import com.att.research.xacml.api.pap.PDPPolicy;
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({URL.class, RESTfulPAPEngine.class})
public class RESTfulPAPEngineTest {
- @Rule
- public ExpectedException thrown = ExpectedException.none();
private RESTfulPAPEngine engine = null;
private String name = "testName";
@@ -56,28 +51,55 @@ public class RESTfulPAPEngineTest {
private String policyType = "testType";
private String policyContent = "testContent";
private int jmxport = 0;
+ private String userId = "testId";
OnapPDPGroup group = Mockito.mock(OnapPDPGroup.class);
OnapPDPGroup newGroup = Mockito.mock(OnapPDPGroup.class);
OnapPDP pdp = Mockito.mock(OnapPDP.class);
InputStream policy;
- @Before
- public void runConstructor() throws Exception {
- // Mock url and connection
- URL url = PowerMockito.mock(URL.class);
- PowerMockito.whenNew(URL.class).withArguments(Mockito.any()).thenReturn(url);
+ /**
+ * BeforeClass does some simple code coverage and sets up the
+ * XACML properties.
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() {
+ //
+ // Test constructor with bad URL
+ //
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ new RESTfulPAPEngine(null));
+
+ XACMLProperties.reloadProperties();
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() {
+ XACMLProperties.reloadProperties();
+ }
+
+ private void setupConnection(int responseCode, String location) throws Exception {
+ // Mock connection
HttpURLConnection connection = Mockito.mock(HttpURLConnection.class);
- Mockito.when(url.openConnection()).thenReturn(connection);
- Mockito.when(connection.getResponseCode()).thenReturn(HttpServletResponse.SC_NO_CONTENT);
+
+ Mockito.when(connection.getResponseCode()).thenReturn(responseCode);
+ Mockito.when(connection.getHeaderField("Location")).thenReturn(location);
+
+ InputStream mockInputStream = Mockito.mock(InputStream.class);
+ Mockito.when(connection.getInputStream()).thenReturn(mockInputStream);
// Set the system property temporarily
String systemKey = "xacml.properties";
- String oldProperty = System.getProperty(systemKey);
+ final String oldProperty = System.getProperty(systemKey);
System.setProperty(systemKey, "src/test/resources/xacml.admin.properties");
// Test constructor
String urlName = "localhost:1234";
- engine = new RESTfulPAPEngine(urlName);
+ engine = new RESTfulPAPEngine(urlName) {
+ @Override
+ protected URLConnection makeConnection(String fullUrl) throws IOException {
+ return connection;
+ }
+ };
// Initialize policy
policy = new ByteArrayInputStream(policyContent.getBytes("UTF-8"));
@@ -91,75 +113,89 @@ public class RESTfulPAPEngineTest {
}
@Test
- public void testGroups() throws Exception {
+ public void testAllTheExceptions() throws Exception {
+ setupConnection(HttpServletResponse.SC_NO_CONTENT, "localhost:5678");
+
engine.setDefaultGroup(group);
- assertEquals(engine.getDefaultGroup(), null);
+ assertNull(engine.getDefaultGroup());
engine.newGroup(name, description);
engine.removeGroup(group, newGroup);
- assertEquals(engine.getPDPGroup(pdp), null);
- assertEquals(engine.getPDPGroup(id), null);
- assertEquals(engine.getPDP(id), null);
- assertEquals(engine.getStatus(pdp), null);
-
- thrown.expect(NullPointerException.class);
- engine.getOnapPDPGroups();
- fail("Expecting an exception.");
- }
+ assertNull(engine.getPDPGroup(pdp));
+ assertNull(engine.getPDPGroup(id));
+ assertNull(engine.getPDP(id));
+ assertNull(engine.getStatus(pdp));
- @Test
- public void testUpdateGroup() throws PAPException {
- thrown.expect(PAPException.class);
- engine.updateGroup(group);
- fail("Expecting an exception.");
- }
+ assertThatExceptionOfType(NullPointerException.class).isThrownBy(() ->
+ engine.getOnapPDPGroups()
+ );
- @Test
- public void testPDP() throws PAPException {
- assertEquals(engine.getGroup(name), null);
- engine.movePDP(pdp, newGroup);
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ engine.updateGroup(group)
+ );
- thrown.expect(PAPException.class);
- engine.newPDP(id, newGroup, name, description, jmxport);
- fail("Expecting an exception.");
- }
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ engine.updateGroup(group, "testUserName")
+ );
- @Test
- public void testUpdatePDP() throws PAPException {
- thrown.expect(NullPointerException.class);
- engine.updatePDP(pdp);
- fail("Expecting an exception.");
- }
+ assertNull(engine.getGroup(name));
+ engine.movePDP(pdp, newGroup);
- @Test
- public void testRemovePDP() throws PAPException {
- thrown.expect(NullPointerException.class);
- engine.removePDP(pdp);
- fail("Expecting an exception.");
- }
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ engine.newPDP(id, newGroup, name, description, jmxport)
+ );
- @Test
- public void testValidatePolicy() throws PAPException {
- PolicyRestAdapter policyAdapter = new PolicyRestAdapter();
+ assertThatExceptionOfType(NullPointerException.class).isThrownBy(() ->
+ engine.updatePDP(pdp)
+ );
- thrown.expect(PAPException.class);
- engine.validatePolicyRequest(policyAdapter, policyType);
- fail("Expecting an exception.");
- }
+ assertThatExceptionOfType(NullPointerException.class).isThrownBy(() ->
+ engine.removePDP(pdp)
+ );
- @Test
- public void testPublishPolicy() throws PAPException {
- thrown.expect(PAPException.class);
- engine.publishPolicy(id, name, false, policy, newGroup);
- fail("Expecting an exception.");
- }
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ engine.validatePolicyRequest(new PolicyRestAdapter(), policyType)
+ );
- @Test
- public void testCopy() throws PAPException {
- engine.copyFile(id, newGroup, policy);
- PDPPolicy pdpPolicy = Mockito.mock(PDPPolicy.class);
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ engine.publishPolicy(id, name, false, policy, newGroup)
+ );
- thrown.expect(PAPException.class);
- engine.copyPolicy(pdpPolicy, newGroup);
- fail("Expecting an exception.");
+ engine.copyFile(id, newGroup, policy, userId);
+ PDPPolicy pdpPolicy = Mockito.mock(PDPPolicy.class);
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ engine.copyPolicy(pdpPolicy, newGroup, userId)
+ );
+
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ engine.removePolicy(null, group)
+ );
+
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ engine.copyPolicy(null, null, null)
+ );
+
+ //
+ // Change the mockito to take a different path
+ //
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ setupConnection(HttpServletResponse.SC_FOUND, "localhost:5678")
+ );
+
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ setupConnection(200, "localhost:5678")
+ );
+
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ setupConnection(350, "localhost:5678")
+ );
+
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ setupConnection(500, "localhost:5678")
+ );
+
+ assertThatExceptionOfType(PAPException.class).isThrownBy(() ->
+ setupConnection(350, null)
+ );
}
+
}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/components/HumanPolicyComponentTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/components/HumanPolicyComponentTest.java
new file mode 100644
index 000000000..b56d3fd94
--- /dev/null
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/components/HumanPolicyComponentTest.java
@@ -0,0 +1,839 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 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.policy.components;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.atLeast;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import com.att.research.xacml.api.XACML1;
+import com.att.research.xacml.util.XACMLPolicyScanner.CallbackResult;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ApplyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeSelectorType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ConditionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.EffectType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionsType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableReferenceType;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+public class HumanPolicyComponentTest {
+
+ private AttributeIdentifiers attrIds;
+ private HtmlProcessor processor;
+ private static File temp;
+ private static File tempAction;
+ private static File tempConfig;
+
+ @BeforeClass
+ public static void setup() throws IOException {
+ temp = File.createTempFile("tmpFile", ".tmp");
+ tempAction = File.createTempFile("Action_test", ".tmp");
+ tempConfig = File.createTempFile("Config_test", ".tmp");
+ temp.deleteOnExit();
+ tempAction.deleteOnExit();
+ tempConfig.deleteOnExit();
+ }
+
+ @Test
+ public void testAttributeIdentifiers() {
+ String testCategory = "testCategory";
+ String testID = "testId";
+ String testType = "testType";
+ String newTestType = "testNewType";
+
+ attrIds = new AttributeIdentifiers(testCategory, testType, testID);
+ assertEquals(testCategory, attrIds.category);
+ assertEquals(testID, attrIds.id);
+ assertEquals(testType, attrIds.getType());
+
+ attrIds.setType(newTestType);
+ assertEquals(newTestType, attrIds.getType());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testHumanPolicyComponentException() {
+ JAXBElement<PolicySetType> mockRoot = Mockito.mock(JAXBElement.class);
+ when(mockRoot.getValue()).thenReturn(null);
+ assertNull(HumanPolicyComponent.DescribePolicy(temp));
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testHtmlProcessorNull() throws IOException {
+ processor = new HtmlProcessor(null, null);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testHtmlProcessor() throws IOException {
+ File tempFile = File.createTempFile("testFile", ".tmp");
+ tempFile.delete();
+ processor = new HtmlProcessor(tempFile, null);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testHtmlProcessorInvalidObject() throws IOException {
+ processor = new HtmlProcessor(temp, null);
+ }
+
+ @Test
+ public void testHtmlProcessorConfigPolicySetType() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ processor = new HtmlProcessor(tempConfig, mockPolicySetType);
+ processor.onFinishScan(mockPolicySetType);
+ verify(mockPolicySetType).getVersion();
+ }
+
+ @Test
+ public void testHtmlProcessorActionPolicySetType() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ processor = new HtmlProcessor(tempAction, mockPolicySetType);
+ processor.onFinishScan(mockPolicySetType);
+ verify(mockPolicySetType).getVersion();
+ }
+
+ @Test
+ public void testHtmlProcessorConfigPolicyType() {
+ PolicyType mockPolicyType = Mockito.mock(PolicyType.class);
+ processor = new HtmlProcessor(tempConfig, mockPolicyType);
+ verify(mockPolicyType).getVersion();
+ }
+
+ @Test
+ public void testHtmlProcessorActionPolicyType() {
+ PolicyType mockPolicyType = Mockito.mock(PolicyType.class);
+ processor = new HtmlProcessor(tempAction, mockPolicyType);
+ assertNotNull(processor.getAttributeIdentifiersMap());
+ verify(mockPolicyType).getVersion();
+ }
+
+ @Test
+ public void testHtmlProcessorOnPreVisitPolicySet() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicySetType mockPolicyParent = Mockito.mock(PolicySetType.class);
+
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicySetType.getPolicySetOrPolicyOrPolicySetIdReference()).thenReturn(Collections.emptyList());
+ when(mockPolicySetType.getDescription()).thenReturn(null);
+
+ CallbackResult preResult = processor.onPreVisitPolicySet(mockPolicyParent, mockPolicySetType);
+ assertEquals("CONTINUE", preResult.name());
+ verify(mockPolicySetType, atLeast(1)).getPolicySetOrPolicyOrPolicySetIdReference();
+ verify(mockPolicySetType, atLeast(1)).getDescription();
+ }
+
+ @Test
+ public void testHtmlProcessorOnPreVisitPolicySetNullParent() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicySetType mockPolicyParent = null;
+ JAXBElement<?> mockElement = Mockito.mock(JAXBElement.class);
+
+ List<JAXBElement<?>> testList = new ArrayList<JAXBElement<?>>();
+ testList.add(mockElement);
+
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicySetType.getPolicySetOrPolicyOrPolicySetIdReference()).thenReturn(testList);
+ when(mockPolicySetType.getDescription()).thenReturn("");
+
+ CallbackResult preResult = processor.onPreVisitPolicySet(mockPolicyParent, mockPolicySetType);
+ assertEquals("CONTINUE", preResult.name());
+ verify(mockPolicySetType, atLeast(1)).getPolicySetOrPolicyOrPolicySetIdReference();
+ verify(mockPolicySetType, atLeast(1)).getDescription();
+ }
+
+ @Test
+ public void testHtmlProcessorOnPostVisitPolicySet() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicySetType mockPolicyParent = Mockito.mock(PolicySetType.class);
+
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicySetType.getPolicySetOrPolicyOrPolicySetIdReference()).thenReturn(Collections.emptyList());
+ when(mockPolicySetType.getDescription()).thenReturn(null);
+
+ CallbackResult postResult = processor.onPostVisitPolicySet(mockPolicyParent, mockPolicySetType);
+ assertEquals("CONTINUE", postResult.name());
+ verify(mockPolicySetType, atLeast(1)).getPolicySetOrPolicyOrPolicySetIdReference();
+ verify(mockPolicySetType, atLeast(1)).getDescription();
+ }
+
+ @Test
+ public void testHtmlProcessorOnPostVisitPolicySetNullParent() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicySetType mockPolicyParent = null;
+ JAXBElement<?> mockElement = Mockito.mock(JAXBElement.class);
+
+ List<JAXBElement<?>> testList = new ArrayList<JAXBElement<?>>();
+ testList.add(mockElement);
+
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicySetType.getPolicySetOrPolicyOrPolicySetIdReference()).thenReturn(testList);
+ when(mockPolicySetType.getDescription()).thenReturn("");
+
+ CallbackResult postResult = processor.onPostVisitPolicySet(mockPolicyParent, mockPolicySetType);
+ assertEquals("CONTINUE", postResult.name());
+ verify(mockPolicySetType, atLeast(1)).getPolicySetOrPolicyOrPolicySetIdReference();
+ verify(mockPolicySetType, atLeast(1)).getDescription();
+ }
+
+ @Test
+ public void testHtmlProcessorOnPreVisitPolicy() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicyType mockPolicyType = Mockito.mock(PolicyType.class);
+ List<Object> testList = new ArrayList<Object>();
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicyType.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition()).thenReturn(testList);
+ when(mockPolicySetType.getDescription()).thenReturn(null);
+
+ CallbackResult preResult = processor.onPreVisitPolicy(mockPolicySetType, mockPolicyType);
+ assertEquals("CONTINUE", preResult.name());
+ verify(mockPolicyType, atLeast(1)).getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
+ verify(mockPolicyType, atLeast(1)).getDescription();
+ }
+
+ @Test
+ public void testHtmlProcessorOnPreVisitPolicyNullParent() {
+ PolicyType mockPolicyType = Mockito.mock(PolicyType.class);
+ PolicySetType mockPolicyParent = null;
+ List<Object> testList = new ArrayList<Object>();
+ testList.add(new Object());
+ processor = new HtmlProcessor(temp, mockPolicyType);
+
+ when(mockPolicyType.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition()).thenReturn(testList);
+ when(mockPolicyType.getDescription()).thenReturn("");
+
+ CallbackResult preResult = processor.onPreVisitPolicy(mockPolicyParent, mockPolicyType);
+ assertEquals("CONTINUE", preResult.name());
+ verify(mockPolicyType, atLeast(1)).getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
+ verify(mockPolicyType, atLeast(1)).getDescription();
+
+ }
+
+ @Test
+ public void testHtmlProcessorOnPostVisitPolicy() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicyType mockPolicyType = Mockito.mock(PolicyType.class);
+ List<Object> testList = new ArrayList<Object>();
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicyType.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition()).thenReturn(testList);
+
+ CallbackResult postResult = processor.onPostVisitPolicy(mockPolicySetType, mockPolicyType);
+ assertEquals("CONTINUE", postResult.name());
+ verify(mockPolicyType, atLeast(1)).getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
+ }
+
+ @Test
+ public void testHtmlProcessorOnPostVisitPolicyNullParent() {
+ PolicyType mockPolicyType = Mockito.mock(PolicyType.class);
+ PolicySetType mockPolicyParent = null;
+ List<Object> testList = new ArrayList<Object>();
+ testList.add(new Object());
+ processor = new HtmlProcessor(temp, mockPolicyType);
+
+ when(mockPolicyType.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition()).thenReturn(testList);
+
+ CallbackResult postResult = processor.onPostVisitPolicy(mockPolicyParent, mockPolicyType);
+ assertEquals("CONTINUE", postResult.name());
+ verify(mockPolicyType, atLeast(1)).getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
+ }
+
+ @Test
+ public void testHtmlProcessorPolicy() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicyType mockPolicyType = Mockito.mock(PolicyType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicyType.getRuleCombiningAlgId()).thenReturn(null);
+ when(mockPolicyType.getPolicyId()).thenReturn(null);
+ when(mockPolicyType.getVersion()).thenReturn(null);
+ when(mockPolicyType.getTarget()).thenReturn(null);
+
+ processor.policy(mockPolicyType);
+ verify(mockPolicyType).getRuleCombiningAlgId();
+ verify(mockPolicyType).getPolicyId();
+ verify(mockPolicyType).getVersion();
+ verify(mockPolicyType).getTarget();
+ }
+
+ @Test
+ public void testHtmlProcessorPolicyListEmpty() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicyType mockPolicyType = Mockito.mock(PolicyType.class);
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicyType.getRuleCombiningAlgId()).thenReturn(null);
+ when(mockPolicyType.getPolicyId()).thenReturn(null);
+ when(mockPolicyType.getVersion()).thenReturn(null);
+ when(mockPolicyType.getTarget()).thenReturn(mockTargetType);
+ when(mockTargetType.getAnyOf()).thenReturn(anyOfList);
+
+ processor.policy(mockPolicyType);
+
+ verify(mockPolicyType, atLeast(1)).getRuleCombiningAlgId();
+ verify(mockPolicyType, atLeast(1)).getPolicyId();
+ verify(mockPolicyType, atLeast(1)).getVersion();
+ verify(mockPolicyType, atLeast(1)).getTarget();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ }
+
+ @Test
+ public void testHtmlProcessorPolicyListNotEmpty() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicyType mockPolicyType = Mockito.mock(PolicyType.class);
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ anyOfList.add(new AnyOfType());
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicyType.getRuleCombiningAlgId()).thenReturn(null);
+ when(mockPolicyType.getPolicyId()).thenReturn(null);
+ when(mockPolicyType.getVersion()).thenReturn(null);
+ when(mockPolicyType.getTarget()).thenReturn(mockTargetType);
+ when(mockTargetType.getAnyOf()).thenReturn(anyOfList);
+
+ processor.policy(mockPolicyType);
+ verify(mockPolicyType, atLeast(1)).getRuleCombiningAlgId();
+ verify(mockPolicyType, atLeast(1)).getPolicyId();
+ verify(mockPolicyType, atLeast(1)).getVersion();
+ verify(mockPolicyType, atLeast(1)).getTarget();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ }
+
+ @Test
+ public void testHtmlProcessorPolicyNull() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicyType mockPolicyType = Mockito.mock(PolicyType.class);
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicyType.getRuleCombiningAlgId()).thenReturn(null);
+ when(mockPolicyType.getPolicyId()).thenReturn(null);
+ when(mockPolicyType.getVersion()).thenReturn(null);
+ when(mockPolicyType.getTarget()).thenReturn(mockTargetType);
+ when(mockPolicyType.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition()).thenReturn(null);
+ when(mockTargetType.getAnyOf()).thenReturn(null);
+
+ processor.policy(mockPolicyType);
+ verify(mockPolicyType, atLeast(1)).getRuleCombiningAlgId();
+ verify(mockPolicyType, atLeast(1)).getPolicyId();
+ verify(mockPolicyType, atLeast(1)).getVersion();
+ verify(mockPolicyType, atLeast(1)).getTarget();
+ verify(mockPolicyType, atLeast(1)).getCombinerParametersOrRuleCombinerParametersOrVariableDefinition();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ }
+
+ @Test
+ public void testHtmlProcessorPolicySet() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicySetType.getPolicyCombiningAlgId()).thenReturn("");
+ when(mockPolicySetType.getPolicySetId()).thenReturn("");
+ when(mockPolicySetType.getVersion()).thenReturn("");
+
+ processor.policySet(mockPolicySetType, "");
+ verify(mockPolicySetType, atLeast(1)).getPolicyCombiningAlgId();
+ verify(mockPolicySetType, atLeast(1)).getPolicySetId();
+ verify(mockPolicySetType, atLeast(1)).getVersion();
+ }
+
+ @Test
+ public void testHtmlProcessorPolicySetNull() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicySetType.getTarget()).thenReturn(mockTargetType);
+ when(mockTargetType.getAnyOf()).thenReturn(null);
+ when(mockPolicySetType.getPolicySetOrPolicyOrPolicySetIdReference()).thenReturn(null);
+
+ processor.policySet(mockPolicySetType, "");
+ verify(mockPolicySetType, atLeast(1)).getTarget();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ verify(mockPolicySetType, atLeast(1)).getPolicySetOrPolicyOrPolicySetIdReference();
+ }
+
+ @Test
+ public void testHtmlProcessorPolicySetEmpty() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ when(mockPolicySetType.getTarget()).thenReturn(mockTargetType);
+ when(mockTargetType.getAnyOf()).thenReturn(anyOfList);
+ when(mockPolicySetType.getPolicySetOrPolicyOrPolicySetIdReference()).thenReturn(null);
+
+ processor.policySet(mockPolicySetType, "");
+ verify(mockPolicySetType, atLeast(1)).getTarget();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ verify(mockPolicySetType, atLeast(1)).getPolicySetOrPolicyOrPolicySetIdReference();
+ }
+
+ @Test
+ public void testHtmlProcessorPolicySetNotEmpty() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ anyOfList.add(new AnyOfType());
+
+ when(mockPolicySetType.getTarget()).thenReturn(mockTargetType);
+ when(mockTargetType.getAnyOf()).thenReturn(anyOfList);
+ when(mockPolicySetType.getPolicySetOrPolicyOrPolicySetIdReference()).thenReturn(null);
+
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+ processor.policySet(mockPolicySetType, "");
+ verify(mockPolicySetType, atLeast(1)).getTarget();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ verify(mockPolicySetType, atLeast(1)).getPolicySetOrPolicyOrPolicySetIdReference();
+ }
+
+ @Test
+ public void testHtmlProcessorRule() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+ ConditionType mockConditionType = Mockito.mock(ConditionType.class);
+ ObligationExpressionsType mockOESType = Mockito.mock(ObligationExpressionsType.class);
+ ObligationExpressionType mockOEType = Mockito.mock(ObligationExpressionType.class);
+ EffectType effectTypePermit = EffectType.PERMIT;
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ List<ObligationExpressionType> oblList = new ArrayList<ObligationExpressionType>();
+ oblList.add(mockOEType);
+
+ when(mockRuleType.getEffect()).thenReturn(effectTypePermit);
+ when(mockRuleType.getRuleId()).thenReturn(null);
+ when(mockRuleType.getTarget()).thenReturn(null);
+ when(mockRuleType.getCondition()).thenReturn(mockConditionType);
+ when(mockRuleType.getObligationExpressions()).thenReturn(mockOESType);
+ when(mockOESType.getObligationExpression()).thenReturn(oblList);
+ when(mockOEType.getFulfillOn()).thenReturn(effectTypePermit);
+
+ processor.rule(mockRuleType);
+
+ verify(mockRuleType, atLeast(1)).getRuleId();
+ verify(mockRuleType, atLeast(1)).getTarget();
+ verify(mockRuleType, atLeast(1)).getCondition();
+ verify(mockRuleType, atLeast(1)).getObligationExpressions();
+ verify(mockOESType, atLeast(1)).getObligationExpression();
+ verify(mockOEType, atLeast(1)).getFulfillOn();
+
+ JAXBElement<?> mockJaxBElement = Mockito.mock(JAXBElement.class);
+ Object mockValueObject = Mockito.mock(Object.class);
+
+ doReturn(mockJaxBElement).when(mockConditionType).getExpression();
+ doReturn(mockValueObject).when(mockJaxBElement).getValue();
+
+ try {
+ processor.rule(mockRuleType);
+ fail();
+ } catch (IllegalArgumentException e) {
+ verify(mockConditionType, atLeast(1)).getExpression();
+ verify(mockJaxBElement, atLeast(1)).getValue();
+ }
+ }
+
+ @Test
+ public void testHtmlProcessorRuleNullEmptyList() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ EffectType effectTypePermit = EffectType.PERMIT;
+ AdviceExpressionsType mockAdviceExsType = Mockito.mock(AdviceExpressionsType.class);
+ AdviceExpressionType mockAdviceEx = Mockito.mock(AdviceExpressionType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ List<AdviceExpressionType> adviceExList = new ArrayList<AdviceExpressionType>();
+ adviceExList.add(mockAdviceEx);
+
+ when(mockRuleType.getEffect()).thenReturn(effectTypePermit);
+ when(mockRuleType.getRuleId()).thenReturn(null);
+ when(mockRuleType.getTarget()).thenReturn(mockTargetType);
+ when(mockRuleType.getObligationExpressions()).thenReturn(null);
+ when(mockRuleType.getAdviceExpressions()).thenReturn(mockAdviceExsType);
+ when(mockTargetType.getAnyOf()).thenReturn(null);
+ when(mockAdviceExsType.getAdviceExpression()).thenReturn(adviceExList);
+ when(mockAdviceEx.getAttributeAssignmentExpression()).thenReturn(null);
+ when(mockAdviceEx.getAppliesTo()).thenReturn(effectTypePermit);
+
+ processor.rule(mockRuleType);
+
+ verify(mockRuleType, atLeast(1)).getEffect();
+ verify(mockRuleType, atLeast(1)).getRuleId();
+ verify(mockRuleType, atLeast(1)).getTarget();
+ verify(mockRuleType, atLeast(1)).getCondition();
+ verify(mockRuleType, atLeast(1)).getObligationExpressions();
+ verify(mockRuleType, atLeast(1)).getAdviceExpressions();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ verify(mockAdviceExsType, atLeast(1)).getAdviceExpression();
+ verify(mockAdviceEx, atLeast(1)).getAttributeAssignmentExpression();
+ verify(mockAdviceEx, atLeast(1)).getAppliesTo();
+
+ when(mockTargetType.getAnyOf()).thenReturn(anyOfList);
+ processor.rule(mockRuleType);
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ }
+
+ @Test
+ public void testHtmlProcessorRuleNonNullObjects() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ AdviceExpressionsType mockAdvice = Mockito.mock(AdviceExpressionsType.class);
+ ObligationExpressionsType mockObEx = Mockito.mock(ObligationExpressionsType.class);
+ AdviceExpressionType adviceExpTypeMock = Mockito.mock(AdviceExpressionType.class);
+ ObligationExpressionType mockObExType = Mockito.mock(ObligationExpressionType.class);
+ EffectType effectTypePermit = EffectType.PERMIT;
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ anyOfList.add(new AnyOfType());
+
+ List<AdviceExpressionType> adviceList = new ArrayList<AdviceExpressionType>();
+ adviceList.add(adviceExpTypeMock);
+
+ List<AttributeAssignmentExpressionType> attrList = new ArrayList<AttributeAssignmentExpressionType>();
+
+ List<ObligationExpressionType> obExList = new ArrayList<ObligationExpressionType>();
+ obExList.add(mockObExType);
+
+ List<Object> contentList = new ArrayList<>();
+ contentList.add(new Object());
+
+ when(mockRuleType.getRuleId()).thenReturn("");
+ when(mockRuleType.getTarget()).thenReturn(mockTargetType);
+ when(mockRuleType.getEffect()).thenReturn(effectTypePermit);
+ when(mockTargetType.getAnyOf()).thenReturn(anyOfList);
+ when(mockRuleType.getAdviceExpressions()).thenReturn(mockAdvice);
+ when(mockAdvice.getAdviceExpression()).thenReturn(adviceList);
+ when(mockRuleType.getObligationExpressions()).thenReturn(mockObEx);
+ when(mockObEx.getObligationExpression()).thenReturn(obExList);
+ when(mockObExType.getAttributeAssignmentExpression()).thenReturn(null);
+ when(mockObExType.getFulfillOn()).thenReturn(effectTypePermit);
+ when(adviceExpTypeMock.getAdviceId()).thenReturn("");
+ when(adviceExpTypeMock.getAppliesTo()).thenReturn(effectTypePermit);
+ when(adviceExpTypeMock.getAttributeAssignmentExpression()).thenReturn(attrList);
+
+ processor.rule(mockRuleType);
+
+ verify(mockRuleType, atLeast(1)).getRuleId();
+ verify(mockRuleType, atLeast(1)).getTarget();
+ verify(mockRuleType, atLeast(1)).getEffect();
+ verify(mockRuleType, atLeast(1)).getAdviceExpressions();
+ verify(mockRuleType, atLeast(1)).getObligationExpressions();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ verify(mockObEx, atLeast(1)).getObligationExpression();
+ verify(mockObExType, atLeast(1)).getAttributeAssignmentExpression();
+ verify(mockObExType, atLeast(1)).getFulfillOn();
+ verify(mockAdvice, atLeast(1)).getAdviceExpression();
+ verify(adviceExpTypeMock, atLeast(1)).getAdviceId();
+ verify(adviceExpTypeMock, atLeast(1)).getAppliesTo();
+ verify(adviceExpTypeMock, atLeast(1)).getAttributeAssignmentExpression();
+ }
+
+ @Test
+ public void testHtmlProcessorOnPreVisitRule() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicyType mockPolicyType = null;
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+ EffectType effectTypePermit = EffectType.PERMIT;
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ anyOfList.add(new AnyOfType());
+
+ when(mockRuleType.getCondition()).thenReturn(null);
+ when(mockRuleType.getDescription()).thenReturn(null);
+ when(mockRuleType.getEffect()).thenReturn(effectTypePermit);
+ when(mockRuleType.getTarget()).thenReturn(mockTargetType);
+ when(mockTargetType.getAnyOf()).thenReturn(anyOfList);
+
+ CallbackResult callbackResult = processor.onPreVisitRule(mockPolicyType, mockRuleType);
+ assertNotNull(callbackResult);
+
+ verify(mockRuleType, atLeast(1)).getCondition();
+ verify(mockRuleType, atLeast(1)).getDescription();
+ verify(mockRuleType, atLeast(1)).getEffect();
+ verify(mockRuleType, atLeast(1)).getTarget();
+ verify(mockRuleType, atLeast(1)).getAdviceExpressions();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+
+ mockPolicyType = Mockito.mock(PolicyType.class);
+ when(mockRuleType.getDescription()).thenReturn("");
+
+ callbackResult = processor.onPreVisitRule(mockPolicyType, mockRuleType);
+ assertNotNull(callbackResult);
+ }
+
+ @Test
+ public void testHtmlProcessorOnPostVisitRule() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicyType mockPolicyType = null;
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+ CallbackResult callbackResult = processor.onPostVisitRule(mockPolicyType, mockRuleType);
+ assertNotNull(callbackResult);
+
+ mockPolicyType = Mockito.mock(PolicyType.class);
+ callbackResult = processor.onPostVisitRule(mockPolicyType, mockRuleType);
+ assertNotNull(callbackResult);
+ }
+
+ @Test
+ public void testHtmlProcessorProcessAttributeAssignments() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+ EffectType effectTypePermit = EffectType.PERMIT;
+ ObligationExpressionsType mockOblExsType = Mockito.mock(ObligationExpressionsType.class);
+
+ ObligationExpressionType mockOblExTypeListObj = Mockito.mock(ObligationExpressionType.class);
+ List<ObligationExpressionType> oblExTypeList = new ArrayList<ObligationExpressionType>();
+ oblExTypeList.add(mockOblExTypeListObj);
+
+ AttributeAssignmentExpressionType mockattrAssignListObj = Mockito.mock(AttributeAssignmentExpressionType.class);
+ List<AttributeAssignmentExpressionType> attrAssignList = new ArrayList<AttributeAssignmentExpressionType>();
+ attrAssignList.add(mockattrAssignListObj);
+
+ JAXBElement<?> jaxbElementMock = Mockito.mock(JAXBElement.class);
+ AttributeValueType attrValTypeMock = Mockito.mock(AttributeValueType.class);
+ AttributeDesignatorType attrDesignTypeMock = Mockito.mock(AttributeDesignatorType.class);
+ AttributeSelectorType attrSelTypeMock = Mockito.mock(AttributeSelectorType.class);
+ ApplyType applyTypeMock = Mockito.mock(ApplyType.class);
+ Object genericObjectMock = Mockito.mock(Object.class);
+
+ Object mockContentListObject = Mockito.mock(Object.class);
+ List<Object> contentList = new ArrayList<Object>();
+ contentList.add(mockContentListObject);
+ contentList.add(mockContentListObject);
+
+ when(mockRuleType.getEffect()).thenReturn(effectTypePermit);
+ when(mockRuleType.getObligationExpressions()).thenReturn(mockOblExsType);
+ when(mockOblExsType.getObligationExpression()).thenReturn(oblExTypeList);
+ when(mockOblExTypeListObj.getAttributeAssignmentExpression()).thenReturn(attrAssignList);
+ when(mockOblExTypeListObj.getFulfillOn()).thenReturn(effectTypePermit);
+ when(mockattrAssignListObj.getCategory()).thenReturn("");
+ when(mockattrAssignListObj.getAttributeId()).thenReturn("");
+ doReturn(jaxbElementMock).when(mockattrAssignListObj).getExpression();
+ doReturn(attrValTypeMock).when(jaxbElementMock).getValue();
+ when(attrValTypeMock.getContent()).thenReturn(contentList);
+
+ processor.rule(mockRuleType);
+
+ verify(mockRuleType, atLeast(1)).getEffect();
+ verify(mockRuleType, atLeast(1)).getObligationExpressions();
+ verify(mockOblExsType, atLeast(1)).getObligationExpression();
+ verify(mockOblExTypeListObj, atLeast(1)).getAttributeAssignmentExpression();
+ verify(mockOblExTypeListObj, atLeast(1)).getFulfillOn();
+ verify(mockattrAssignListObj, atLeast(1)).getExpression();
+ verify(jaxbElementMock, atLeast(1)).getValue();
+ verify(attrValTypeMock, atLeast(1)).getContent();
+
+ doReturn(attrDesignTypeMock).when(jaxbElementMock).getValue();
+ processor.rule(mockRuleType);
+ verify(jaxbElementMock, atLeast(1)).getValue();
+
+ doReturn(attrSelTypeMock).when(jaxbElementMock).getValue();
+ processor.rule(mockRuleType);
+ verify(jaxbElementMock, atLeast(1)).getValue();
+
+ doReturn(applyTypeMock).when(jaxbElementMock).getValue();
+ processor.rule(mockRuleType);
+ verify(jaxbElementMock, atLeast(1)).getValue();
+
+ doReturn(genericObjectMock).when(jaxbElementMock).getValue();
+ processor.rule(mockRuleType);
+ verify(jaxbElementMock, atLeast(1)).getValue();
+ }
+
+ @Test
+ public void testHtmlProcessorTarget() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ processor.target(null);
+
+ AnyOfType mockAnyOfType = Mockito.mock(AnyOfType.class);
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ anyOfList.add(mockAnyOfType);
+ anyOfList.add(mockAnyOfType); // adding duplicate element
+
+ AllOfType mockAllOfType = Mockito.mock(AllOfType.class);
+ List<AllOfType> allOfTypeList = new ArrayList<AllOfType>();
+ allOfTypeList.add(mockAllOfType);
+ allOfTypeList.add(mockAllOfType); // adding duplicate element
+
+ MatchType mockMatchType = Mockito.mock(MatchType.class);
+ List<MatchType> matchTypeList = new ArrayList<MatchType>();
+ matchTypeList.add(mockMatchType);
+ matchTypeList.add(mockMatchType); // adding duplicate element
+
+ AttributeValueType mockAttrValType = Mockito.mock(AttributeValueType.class);
+ AttributeDesignatorType mockAttrDesType = Mockito.mock(AttributeDesignatorType.class);
+ AttributeSelectorType mockAttrSelType = Mockito.mock(AttributeSelectorType.class);
+
+ List<Object> contentList = new ArrayList<Object>();
+
+ when(mockAnyOfType.getAllOf()).thenReturn(allOfTypeList);
+ when(mockAllOfType.getMatch()).thenReturn(matchTypeList);
+ when(mockMatchType.getAttributeValue()).thenReturn(mockAttrValType);
+ when(mockMatchType.getMatchId()).thenReturn(XACML1.ID_FUNCTION_STRING_EQUAL.stringValue());
+ when(mockMatchType.getAttributeDesignator()).thenReturn(mockAttrDesType);
+ when(mockAttrValType.getDataType()).thenReturn("");
+ when(mockAttrValType.getContent()).thenReturn(contentList);
+ when(mockAttrDesType.getCategory()).thenReturn("");
+ when(mockAttrDesType.getAttributeId()).thenReturn("");
+ when(mockAttrDesType.getIssuer()).thenReturn("");
+ when(mockAttrDesType.getDataType()).thenReturn("");
+ processor.target(anyOfList);
+ verify(mockAnyOfType, atLeast(1)).getAllOf();
+ verify(mockAllOfType, atLeast(1)).getMatch();
+ verify(mockMatchType, atLeast(1)).getAttributeValue();
+ verify(mockMatchType, atLeast(1)).getMatchId();
+ verify(mockMatchType, atLeast(1)).getAttributeDesignator();
+ verify(mockAttrValType, atLeast(1)).getDataType();
+ verify(mockAttrValType, atLeast(1)).getContent();
+ verify(mockAttrDesType, atLeast(1)).getCategory();
+ verify(mockAttrDesType, atLeast(1)).getAttributeId();
+ verify(mockAttrDesType, atLeast(1)).getIssuer();
+ verify(mockAttrDesType, atLeast(1)).getDataType();
+
+ when(mockMatchType.getAttributeDesignator()).thenReturn(null);
+ when(mockMatchType.getAttributeSelector()).thenReturn(mockAttrSelType);
+ when(mockAttrSelType.getCategory()).thenReturn("");
+ when(mockAttrSelType.getContextSelectorId()).thenReturn("");
+ when(mockAttrSelType.getDataType()).thenReturn("");
+ processor.target(anyOfList);
+ verify(mockMatchType, atLeast(1)).getAttributeDesignator();
+ verify(mockMatchType, atLeast(1)).getAttributeSelector();
+ verify(mockAttrSelType, atLeast(1)).getCategory();
+ verify(mockAttrSelType, atLeast(1)).getContextSelectorId();
+ verify(mockAttrSelType, atLeast(1)).getDataType();
+
+ when(mockMatchType.getAttributeDesignator()).thenReturn(null);
+ when(mockMatchType.getAttributeSelector()).thenReturn(null);
+ processor.target(anyOfList);
+ verify(mockMatchType, atLeast(1)).getAttributeDesignator();
+ verify(mockMatchType, atLeast(1)).getAttributeSelector();
+ }
+
+ @Test
+ public void testHtmlProcessorStringifyExpression() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+ ConditionType mockConditionType = Mockito.mock(ConditionType.class);
+ JAXBElement<?> mockJAXBElement = Mockito.mock(JAXBElement.class);
+ EffectType effectTypePermit = EffectType.PERMIT;
+ Object mockExpressObject = Mockito.mock(Object.class);
+ AttributeDesignatorType mockAttrDesType = Mockito.mock(AttributeDesignatorType.class);
+ AttributeSelectorType mockAttrSelType = Mockito.mock(AttributeSelectorType.class);
+ AttributeValueType mockAttrValType = Mockito.mock(AttributeValueType.class);
+ VariableReferenceType mockVarRefType = Mockito.mock(VariableReferenceType.class);
+
+ Object mockContentObject = Mockito.mock(Object.class);
+ List<Object> contentList = new ArrayList<Object>();
+ contentList.add(mockContentObject);
+
+ when(mockRuleType.getEffect()).thenReturn(effectTypePermit);
+ when(mockRuleType.getCondition()).thenReturn(mockConditionType);
+ doReturn(mockJAXBElement).when(mockConditionType).getExpression();
+ doReturn(mockExpressObject).when(mockJAXBElement).getValue();
+
+ try {
+ processor.rule(mockRuleType);
+ fail();
+ } catch (IllegalArgumentException e) {
+ verify(mockRuleType, atLeast(1)).getEffect();
+ verify(mockRuleType, atLeast(1)).getCondition();
+ verify(mockConditionType, atLeast(1)).getExpression();
+ verify(mockJAXBElement, atLeast(1)).getValue();
+ }
+
+ doReturn(mockAttrDesType).when(mockJAXBElement).getValue();
+ when(mockAttrDesType.getCategory()).thenReturn("");
+ when(mockAttrDesType.getAttributeId()).thenReturn("");
+ when(mockAttrDesType.getDataType()).thenReturn("");
+ processor.rule(mockRuleType);
+ verify(mockJAXBElement, atLeast(1)).getValue();
+ verify(mockAttrDesType, atLeast(1)).getCategory();
+ verify(mockAttrDesType, atLeast(1)).getAttributeId();
+ verify(mockAttrDesType, atLeast(1)).getDataType();
+
+ doReturn(mockAttrSelType).when(mockJAXBElement).getValue();
+ when(mockAttrSelType.getPath()).thenReturn("SamplePath/text()");
+ processor.rule(mockRuleType);
+ verify(mockJAXBElement, atLeast(1)).getValue();
+ verify(mockAttrSelType, atLeast(1)).getPath();
+
+ when(mockAttrSelType.getPath()).thenReturn("");
+ processor.rule(mockRuleType);
+ verify(mockJAXBElement, atLeast(1)).getValue();
+ verify(mockAttrSelType, atLeast(1)).getPath();
+
+ doReturn(mockAttrValType).when(mockJAXBElement).getValue();
+ when(mockAttrValType.getContent()).thenReturn(contentList);
+ processor.rule(mockRuleType);
+ verify(mockJAXBElement, atLeast(1)).getValue();
+ verify(mockAttrValType, atLeast(1)).getContent();
+
+ doReturn(mockVarRefType).when(mockJAXBElement).getValue();
+ processor.rule(mockRuleType);
+ verify(mockJAXBElement, atLeast(1)).getValue();
+ }
+}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/conf/HibernateSessionTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/conf/HibernateSessionTest.java
index dab2cba53..2f079f139 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/conf/HibernateSessionTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/conf/HibernateSessionTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -23,6 +23,7 @@
package org.onap.policy.conf;
import static org.junit.Assert.assertNull;
+
import org.hibernate.SessionFactory;
import org.junit.Before;
import org.junit.Test;
@@ -30,6 +31,10 @@ import org.mockito.Mockito;
import org.onap.policy.controller.PolicyController;
public class HibernateSessionTest {
+
+ /**
+ * setup.
+ */
@Before
public void setup() {
PolicyController.setLogdbUrl("testURL");
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/ActionPolicyControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/ActionPolicyControllerTest.java
new file mode 100644
index 000000000..e34cab45e
--- /dev/null
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/ActionPolicyControllerTest.java
@@ -0,0 +1,205 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 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.policy.controller;
+
+import static org.assertj.core.api.Assertions.assertThatCode;
+
+import com.att.research.xacml.api.XACML3;
+import java.io.IOException;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ApplyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ConditionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.EffectType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObjectFactory;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionsType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableDefinitionType;
+import org.junit.Test;
+import org.onap.policy.rest.adapter.PolicyRestAdapter;
+
+public class ActionPolicyControllerTest {
+
+ @Test
+ public void testBasicConstructor() throws IOException {
+ ActionPolicyController controller = new ActionPolicyController();
+ final PolicyRestAdapter adapter = new PolicyRestAdapter();
+ //
+ // Cover the simple if instance branch
+ //
+ assertThatCode(() -> controller.prePopulateActionPolicyData(adapter)).doesNotThrowAnyException();
+ }
+
+ @Test
+ public void testNoDescriptionNoTargetType() throws IOException {
+ //
+ // Do the test - with no description and
+ // no TargetType to cover those branches.
+ //
+ PolicyRestAdapter adapter = new PolicyRestAdapter();
+ adapter.setPolicyData(new PolicyType());
+ adapter.setPolicyName("name");
+ ActionPolicyController controller = new ActionPolicyController();
+ assertThatCode(() -> controller.prePopulateActionPolicyData(adapter)).doesNotThrowAnyException();
+ }
+
+ @Test
+ public void testWithDescriptionEmptyTargetType() throws IOException {
+ //
+ // Create a simple PolicyType
+ //
+ PolicyType policy = new PolicyType();
+ policy.setTarget(new TargetType());
+ policy.setDescription("i am a description. @CreatedBy: policy designer");
+ //
+ // Now do the test - description and
+ // TargetType but its empty
+ //
+ PolicyRestAdapter adapter = new PolicyRestAdapter();
+ adapter.setPolicyData(policy);
+ adapter.setPolicyName("name");
+ ActionPolicyController controller = new ActionPolicyController();
+ assertThatCode(() -> controller.prePopulateActionPolicyData(adapter)).doesNotThrowAnyException();
+ }
+
+
+ @Test
+ public void testWithTargetTypeWithAnyOf() throws IOException {
+ //
+ // Create TargetType with empty AnyOf
+ //
+ AttributeValueType value = new AttributeValueType();
+ value.setDataType(XACML3.ID_DATATYPE_STRING.stringValue());
+ value.getContent().add(new String("value"));
+ AttributeDesignatorType designator = new AttributeDesignatorType();
+ designator.setAttributeId("foo:bar");
+ designator.setDataType(XACML3.ID_DATATYPE_STRING.stringValue());
+ designator.setCategory(XACML3.ID_ATTRIBUTE_CATEGORY_ACTION.stringValue());
+
+ MatchType match = new MatchType();
+ match.setMatchId(XACML3.ID_FUNCTION_STRING_EQUAL.stringValue());
+ match.setAttributeValue(value);
+ match.setAttributeDesignator(designator);
+ AllOfType allOf = new AllOfType();
+ allOf.getMatch().add(match);
+ AnyOfType anyOf = new AnyOfType();
+ anyOf.getAllOf().add(allOf);
+ TargetType target = new TargetType();
+ target.getAnyOf().add(anyOf);
+ //
+ // Create a simple Rule with NO obligations but a Condition
+ //
+ RuleType rule = new RuleType();
+ rule.setRuleId("id:rule");
+ rule.setEffect(EffectType.PERMIT);
+
+ AttributeValueType expressionValue = new AttributeValueType();
+ expressionValue.setDataType(XACML3.ID_DATATYPE_STRING.stringValue());
+ expressionValue.getContent().add(new String("a string value"));
+
+ designator = new AttributeDesignatorType();
+ designator.setAttributeId("foo:bar");
+ designator.setDataType(XACML3.ID_DATATYPE_STRING.stringValue());
+ designator.setCategory(XACML3.ID_ATTRIBUTE_CATEGORY_ACTION.stringValue());
+
+ ApplyType applyOneAndOnly = new ApplyType();
+ applyOneAndOnly.setDescription("apply this");
+ applyOneAndOnly.setFunctionId(XACML3.ID_FUNCTION_STRING_ONE_AND_ONLY.stringValue());
+ applyOneAndOnly.getExpression().add(new ObjectFactory().createAttributeDesignator(designator));
+
+ ApplyType applyOneAndOnly2 = new ApplyType();
+ applyOneAndOnly2.setDescription("apply this");
+ applyOneAndOnly2.setFunctionId(XACML3.ID_FUNCTION_STRING_ONE_AND_ONLY.stringValue());
+ applyOneAndOnly2.getExpression().add(new ObjectFactory().createAttributeValue(expressionValue));
+
+ ApplyType apply = new ApplyType();
+ apply.setDescription("apply this");
+ apply.setFunctionId(XACML3.ID_FUNCTION_STRING_EQUAL.stringValue());
+ apply.getExpression().add(new ObjectFactory().createApply(applyOneAndOnly));
+ apply.getExpression().add(new ObjectFactory().createApply(applyOneAndOnly2));
+
+
+ ConditionType condition = new ConditionType();
+ condition.setExpression(new ObjectFactory().createApply(apply));
+ rule.setCondition(condition);
+ //
+ // Create a simple Rule WITH obligations
+ //
+ AttributeValueType val = new AttributeValueType();
+ val.setDataType(XACML3.ID_DATATYPE_STRING.stringValue());
+ val.getContent().add(new String("obligation data"));
+
+ AttributeAssignmentExpressionType assignment = new AttributeAssignmentExpressionType();
+ assignment.setAttributeId("ob:id:1");
+ assignment.setCategory(XACML3.ID_SUBJECT_CATEGORY_ACCESS_SUBJECT.stringValue());
+ assignment.setExpression(new ObjectFactory().createAttributeValue(val));
+
+ AttributeValueType val2 = new AttributeValueType();
+ val2.setDataType(XACML3.ID_DATATYPE_STRING.stringValue());
+ val2.getContent().add(new String("iamperformer"));
+
+ AttributeAssignmentExpressionType assignment2 = new AttributeAssignmentExpressionType();
+ assignment2.setAttributeId("performer");
+ assignment2.setCategory(XACML3.ID_SUBJECT_CATEGORY_ACCESS_SUBJECT.stringValue());
+ assignment2.setExpression(new ObjectFactory().createAttributeValue(val2));
+
+ ObligationExpressionType ob = new ObligationExpressionType();
+ ob.setFulfillOn(EffectType.PERMIT);
+ ob.setObligationId("id:obligation");
+ ob.getAttributeAssignmentExpression().add(assignment);
+ ob.getAttributeAssignmentExpression().add(assignment2);
+ ObligationExpressionsType obs = new ObligationExpressionsType();
+ obs.getObligationExpression().add(ob);
+ RuleType obligationRule = new RuleType();
+ obligationRule.setRuleId("id:rule:obligations");
+ obligationRule.setEffect(EffectType.DENY);
+ obligationRule.setObligationExpressions(obs);
+ //
+ // Create a PolicyType
+ //
+ PolicyType policy = new PolicyType();
+ policy.setDescription("i am a description. @CreatedBy: policy designer");
+ policy.setTarget(target);
+ policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
+ policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(obligationRule);
+ //
+ // Add something the ActionPolicyController will skip over
+ // to catch that branch
+ //
+ policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(new VariableDefinitionType());
+ //
+ // Now do the test - description and
+ // TargetType but its empty
+ //
+ PolicyRestAdapter adapter = new PolicyRestAdapter();
+ adapter.setPolicyData(policy);
+ adapter.setPolicyName("name");
+ ActionPolicyController controller = new ActionPolicyController();
+ assertThatCode(() -> controller.prePopulateActionPolicyData(adapter)).doesNotThrowAnyException();
+ }
+}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/AdminTabControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/AdminTabControllerTest.java
index a4999ff42..eccab040c 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/AdminTabControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/AdminTabControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019-2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,18 +19,25 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.controller;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+
import java.io.BufferedReader;
+import java.io.IOException;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.junit.Before;
import org.junit.Test;
@@ -49,25 +56,26 @@ public class AdminTabControllerTest {
private static CommonClassDao commonClassDao;
private HttpServletRequest request;
private MockHttpServletResponse response;
+ private AdminTabController admin;
+ /**
+ * Before.
+ *
+ * @throws Exception Exception
+ */
@Before
public void setUp() throws Exception {
-
+ admin = new AdminTabController();
logger.info("setUp: Entering");
commonClassDao = mock(CommonClassDao.class);
-
request = mock(HttpServletRequest.class);
response = new MockHttpServletResponse();
-
HttpSession mockSession = mock(HttpSession.class);
User user = new User();
user.setOrgUserId("Test");
- Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name")))
- .thenReturn(user);
+ Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user);
Mockito.when(request.getSession(false)).thenReturn(mockSession);
-
AdminTabController.setCommonClassDao(commonClassDao);
-
GlobalRoleSettings globalRole = new GlobalRoleSettings();
globalRole.setLockdown(true);
globalRole.setRole("super-admin");
@@ -78,11 +86,10 @@ public class AdminTabControllerTest {
@Test
public void testGetAdminRole() {
- AdminTabController admin = new AdminTabController();
+ assertNotNull(AdminTabController.getCommonClassDao());
try {
admin.getAdminTabEntityData(request, response);
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("lockdowndata"));
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("lockdowndata"));
} catch (UnsupportedEncodingException e) {
logger.error("Exception Occured" + e);
fail();
@@ -91,7 +98,6 @@ public class AdminTabControllerTest {
@Test
public void testSaveAdminRole() throws Exception {
- AdminTabController admin = new AdminTabController();
String data = "{\"lockdowndata\":{\"lockdown\":true}}";
BufferedReader reader = new BufferedReader(new StringReader(data));
try {
@@ -104,4 +110,18 @@ public class AdminTabControllerTest {
fail();
}
}
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetAdminTabEntityDataException() throws IOException {
+ HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
+ when(mockResponse.getWriter()).thenThrow(IOException.class);
+ admin.getAdminTabEntityData(request, mockResponse);
+ verify(mockResponse).getWriter();
+ }
+
+ @Test
+ public void testSaveAdminTabLockdownValueException() throws IOException {
+ assertNull(admin.saveAdminTabLockdownValue(request, response));
+ }
}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/AutoPushControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/AutoPushControllerTest.java
index 5dd5d7ee3..95d566278 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/AutoPushControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/AutoPushControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,36 +19,71 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.controller;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.atLeast;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import com.att.research.xacml.api.pap.PAPException;
+import com.mockrunner.mock.web.MockHttpServletRequest;
+import com.mockrunner.mock.web.MockHttpServletResponse;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
+import org.onap.policy.model.Roles;
+import org.onap.policy.xacml.api.pap.OnapPDPGroup;
+import org.onap.policy.xacml.api.pap.PAPPolicyEngine;
import org.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.web.support.AppUtils;
import org.onap.portalsdk.core.web.support.UserUtils;
import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
-import com.mockrunner.mock.web.MockHttpServletRequest;
-import com.mockrunner.mock.web.MockHttpServletResponse;
@RunWith(PowerMockRunner.class)
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "jdk.internal.reflect.*", "javax.xml.*", "org.xml.*", "org.w3c.*"})
public class AutoPushControllerTest {
- private PolicyController controller = new PolicyController();;
+ private PolicyController controller = new PolicyController();
private AutoPushController apController = new AutoPushController();
+ private static HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
+ private static HttpServletResponse mockResponse = Mockito.mock(HttpServletResponse.class);
+ private static PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
+ private static HttpSession mockSession = Mockito.mock(HttpSession.class);
+ private static User mockUser = Mockito.mock(User.class);
+ private static List<Object> rolesList = new ArrayList<>();
+
@Rule
public ExpectedException thrown = ExpectedException.none();
+ @BeforeClass
+ public static void setupMocks() {
+ when(mockRequest.getSession(false)).thenReturn(mockSession);
+ when(AppUtils.getSession(mockRequest)).thenReturn(mockSession);
+ when(UserUtils.getUserSession(mockRequest)).thenReturn(mockUser);
+ when(mockUser.getOrgUserId()).thenReturn("");
+ when(mockPolicyController.getRoles(any(String.class))).thenReturn(rolesList);
+ }
+
@Test
public void testAutoPushSetGet() throws IOException {
- // Get and set tests
apController.setPolicyController(controller);
assertEquals(apController.getPolicyController(), controller);
}
@@ -75,7 +110,7 @@ public class AutoPushControllerTest {
}
@Test(expected = NullPointerException.class)
- public void testRefresh() throws IOException {
+ public void testRefreshGroupsNull() throws IOException {
apController.refreshGroups();
}
@@ -88,22 +123,105 @@ public class AutoPushControllerTest {
Mockito.when(UserUtils.getUserSession(Mockito.any())).thenReturn(user);
// Mock policy controller
- PolicyController pController = Mockito.mock(PolicyController.class);
- PowerMockito.whenNew(PolicyController.class).withNoArguments().thenReturn(pController);
- Mockito.when(pController.getRoles(Mockito.any())).thenReturn(null);
+ PolicyController policyController = Mockito.mock(PolicyController.class);
+ PowerMockito.whenNew(PolicyController.class).withNoArguments().thenReturn(policyController);
+ Mockito.when(policyController.getRoles(Mockito.any())).thenReturn(null);
// Test group container
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
apController.getPolicyGroupContainerData(request, response);
- assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK);
+ assertEquals(HttpServletResponse.SC_OK, response.getStatusCode());
// Test push
apController.pushPolicyToPDPGroup(request, response);
- assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK);
+ assertEquals(HttpServletResponse.SC_OK, response.getStatusCode());
// Test remove
apController.removePDPGroup(request, response);
- assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK);
+ assertEquals(HttpServletResponse.SC_OK, response.getStatusCode());
+ }
+
+ @Test
+ public void testRefreshGroupsSuccess() throws PAPException {
+ PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
+ PAPPolicyEngine mockPAPPolicyEngine = Mockito.mock(PAPPolicyEngine.class);
+ Set<OnapPDPGroup> onapPDPGroups = new HashSet<>();
+ when(mockPolicyController.getPapEngine()).thenReturn(mockPAPPolicyEngine);
+ when(mockPAPPolicyEngine.getOnapPDPGroups()).thenReturn(onapPDPGroups);
+ apController.setPolicyController(mockPolicyController);
+ apController.refreshGroups();
+ verify(mockPolicyController).getPapEngine();
+ verify(mockPAPPolicyEngine).getOnapPDPGroups();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testRefreshGroups() throws PAPException {
+ PolicyController mockPolicyController = Mockito.mock(PolicyController.class);
+ PAPPolicyEngine mockPAPPolicyEngine = Mockito.mock(PAPPolicyEngine.class);
+ when(mockPolicyController.getPapEngine()).thenReturn(mockPAPPolicyEngine);
+ when(mockPAPPolicyEngine.getOnapPDPGroups()).thenThrow(PAPException.class);
+ apController.setPolicyController(mockPolicyController);
+ apController.refreshGroups();
+ verify(mockPolicyController).getPapEngine();
+ verify(mockPAPPolicyEngine).getOnapPDPGroups();
+ }
+
+ @Test
+ public void testGetPolicyGroupContainerData() throws Exception {
+ Roles superAdmin = new Roles();
+ Roles superEditor = new Roles();
+ Roles superGuest = new Roles();
+ rolesList.add(superAdmin);
+ rolesList.add(superEditor);
+ rolesList.add(superGuest);
+
+ apController.setPolicyController(mockPolicyController);
+ apController.getPolicyGroupContainerData(mockRequest, mockResponse);
+
+ verify(mockRequest, atLeast(1)).getSession(false);
+ verify(mockUser, atLeast(1)).getOrgUserId();
+ verify(mockPolicyController, atLeast(1)).getRoles(any(String.class));
+ }
+
+ @Test
+ public void testGetPolicyGroupContainerDataWithScope() throws Exception {
+ Roles superAdmin = new Roles();
+ superAdmin.setScope("super-admin-scope");
+ Roles superEditor = new Roles();
+ superEditor.setScope("super-editor-scope");
+ Roles superGuest = new Roles();
+ superGuest.setScope("super-guest-scope");
+ rolesList.add(superAdmin);
+ rolesList.add(superEditor);
+ rolesList.add(superGuest);
+
+ apController.setPolicyController(mockPolicyController);
+ apController.getPolicyGroupContainerData(mockRequest, mockResponse);
+
+ verify(mockRequest, atLeast(1)).getSession(false);
+ verify(mockUser, atLeast(1)).getOrgUserId();
+ verify(mockPolicyController, atLeast(1)).getRoles(any(String.class));
+ }
+
+ @Test
+ public void testGetPolicyGroupContainerDataWithRole() throws Exception {
+ Roles superAdmin = new Roles();
+ superAdmin.setRole("super-admin");
+ Roles superEditor = new Roles();
+ superEditor.setRole("super-editor");
+ Roles superGuest = new Roles();
+ superGuest.setRole("super-guest");
+ rolesList.add(superAdmin);
+ rolesList.add(superEditor);
+ rolesList.add(superGuest);
+
+ apController.setPolicyController(mockPolicyController);
+ apController.getPolicyGroupContainerData(mockRequest, mockResponse);
+
+ verify(mockRequest, atLeast(1)).getSession(false);
+ verify(mockUser, atLeast(1)).getOrgUserId();
+ verify(mockPolicyController, atLeast(1)).getRoles(any(String.class));
}
}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateDcaeMicroServiceControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateDcaeMicroServiceControllerTest.java
index e4ededa1f..8966f47a9 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateDcaeMicroServiceControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateDcaeMicroServiceControllerTest.java
@@ -22,7 +22,6 @@
package org.onap.policy.controller;
-
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
@@ -70,10 +69,9 @@ import org.springframework.mock.web.MockHttpServletResponse;
/**
* The class <code>CreateDcaeMicroServiceControllerTest</code> contains tests for the class
- * {@link <code>CreateDcaeMicroServiceController</code>}*
*
- * All JUnits are designed to run in the local development environment where they have write privileges and can execute
- * time-sensitive tasks.
+ * <p/>All JUnits are designed to run in the local development environment where they have write privileges
+ * and can execute time-sensitive tasks.
*
*/
@@ -85,11 +83,15 @@ public class CreateDcaeMicroServiceControllerTest {
private String configBodyString = null;
private HttpServletRequest request = null;
+ /**
+ * setUp.
+ *
+ * @throws Exception should not throw one
+ */
@Before
public void setUp() throws Exception {
logger.info("setUp: Entering");
commonClassDao = mock(CommonClassDao.class);
- List<Object> microServiceModelsData = new ArrayList<Object>();
MicroServiceModels testData = new MicroServiceModels();
testData.setVersion("OpenOnap-Junit");
testData.setModelName("modelName");
@@ -101,11 +103,11 @@ public class CreateDcaeMicroServiceControllerTest {
+ "CorrelationWindow=String:defaultValue-null:required-true:MANY-false:description-null,"
+ "EmailNotification=String:defaultValue-null:required-true:MANY-false:description-null,"
+ "CorrelationPriority=string:defaultValue-null:required-true:MANY-false:description-null,");
- testData.setRef_attributes("SymptomTriggerSignature=resource-model-symptomEntity:MANY-true:description-null,"
+ testData.setRefAttributes("SymptomTriggerSignature=resource-model-symptomEntity:MANY-true:description-null,"
+ "triggerSignature=resource-model-entity:MANY-true:description-null,"
+ "SelectServerScope=SELECTSERVERSCOPE:MANY-false,logicalConnector=LOGICALCONNECTOR:MANY-false,"
+ "ParentCorrelationTraversal=PARENTCORRELATIONTRAVERSAL:MANY-false,");
- testData.setSub_attributes(
+ testData.setSubAttributes(
"{\"symptomAlarms\":{\"symptomContains\":\"SYMPTOMCONTAINS:defaultValue-null:required-true:MANY-false:"
+ "description-null\",\"symptomFilterValue\":\"string:defaultValue-null:"
+ "required-true:MANY-false:"
@@ -136,6 +138,7 @@ public class CreateDcaeMicroServiceControllerTest {
testData.setDataOrderInfo("triggerSignature.signaturesAlarm.alarmSignatures.alarmSignature[VnfType, Contains, "
+ "FilterValue]@SymptomTriggerSignature.signaturesSymptom.symptomSignatures."
+ "symptomSignature[symptomVnfType, symptomContains, symptomFilterValue]");
+ List<Object> microServiceModelsData = new ArrayList<Object>();
microServiceModelsData.add(testData);
// mock the getDataById() call
@@ -159,15 +162,8 @@ public class CreateDcaeMicroServiceControllerTest {
+ "\"asdafadf\",\"guard\":\"True\",\"riskType\":\"sfsgs\",\"riskLevel\":\"1\","
+ "\"priority\":\"1\",\"configName\":\"Search\",\"location\":\"Search\","
+ "\"uuid\":\"Search\",\"policyScope\":\"PolicyScope_ssaaa123\"}},"
- + "\"policyJSON\":{\"Correlation Priority\":\"testttt\",\"Correlation Window\":"
- + "\"testttt\",\"Email Notification for failures\":\"sds@l.com\","
- + "\"Select Server Scope\":\"testttt\",\"Parent Correlation Name\":"
- + "\"testttt\",\"Parent Correlation Traversal\":\"testttt\",\"logicalConnector\":"
- + "\"OR\",\"triggerSignature@0.signaturesAlarm.alarmSignatures@0.traversal\":\"testttt\","
- + "\"triggerSignature@0.signaturesAlarm.alarmSignatures@0.alarmSignature@0.VnfType\":"
- + "\" testttt\",\"triggerSignature@0.signaturesAlarm.alarmSignatures@0."
- + "alarmSignature@0.Contains\":\"AND\",\"triggerSignature@0.signaturesAlarm."
- + "alarmSignatures@0.alarmSignature@0.FilterValue\":\"testttt\"}}";
+ + "\"policyJSON\":{\"DCAEProcessingRules@0.processingRules_json\":"
+ + "\"eyJuYW1lIjogIkpvaG4iLCAiYWdlIjogIjI4IiwgImNpdHkiOiAiTmV3IFlvcmsifQ==\"}}";
configBodyString = "{\"service\":\"SniroPolicyEntityTest\",\"policyName\":\"someone\",\"description\":\"test\","
+ "\"templateVersion\":\"1607\",\"version\":\"HD\",\"priority\":\"2\","
@@ -349,11 +345,8 @@ public class CreateDcaeMicroServiceControllerTest {
try {
root = JsonLoader.fromString(jsonString);
restAdapter = mapper.readValue(root.get("policyData").get("policy").toString(), PolicyRestAdapter.class);
- TargetType target = new TargetType();
// create guard attribute
- AnyOfType anyOfType = new AnyOfType();
- AllOfType alltype = new AllOfType();
MatchType matchType = new MatchType();
// set value
AttributeValueType attributeValue1 = new AttributeValueType();
@@ -363,6 +356,7 @@ public class CreateDcaeMicroServiceControllerTest {
AttributeDesignatorType designator = new AttributeDesignatorType();
designator.setAttributeId("guard");
matchType.setAttributeDesignator(designator);
+ AllOfType alltype = new AllOfType();
alltype.getMatch().add(matchType);
// add a dummy MatchType object since while (matchList.size()>1 ...)
@@ -377,8 +371,10 @@ public class CreateDcaeMicroServiceControllerTest {
matchDummy.setAttributeDesignator(designatorDummy);
alltype.getMatch().add(matchDummy);
+ AnyOfType anyOfType = new AnyOfType();
anyOfType.getAllOf().add(alltype);
+ TargetType target = new TargetType();
target.getAnyOf().add(anyOfType);
// create RiskType attribute
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateOptimizationControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateOptimizationControllerTest.java
index 6747e9669..8e1b8be87 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateOptimizationControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreateOptimizationControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -22,7 +22,6 @@
package org.onap.policy.controller;
-
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
@@ -31,6 +30,12 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.fge.jackson.JsonLoader;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@@ -39,9 +44,19 @@ import java.io.InputStream;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
+
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
+
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+
import org.junit.Before;
import org.junit.Test;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
@@ -51,25 +66,12 @@ import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.policy.rest.jpa.ConfigurationDataEntity;
import org.onap.policy.rest.jpa.OptimizationModels;
import org.onap.policy.rest.jpa.PolicyEntity;
-import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.github.fge.jackson.JsonLoader;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
/**
* The class <code>CreateOptimizationControllerTest</code> contains tests for the class
- * {@link <code>CreateOptimizationController</code>}*
*
- * All JUnits are designed to run in the local development environment where they have write
+ * <p/>All JUnits are designed to run in the local development environment where they have write
* privileges and can execute time-sensitive tasks.
*/
public class CreateOptimizationControllerTest {
@@ -94,26 +96,24 @@ public class CreateOptimizationControllerTest {
when(commonClassDao.getDataById(OptimizationModels.class, "modelName", "test"))
.thenReturn(optimizationModelsData);
- jsonString =
- "{\"policyData\": {\"error\": \"\",\"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
- + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,"
- + "\"date\": \"2017-04-12T21:26:57.000Z\",\"version\": \"\",\"createdBy\": \"someone\","
- + "\"modifiedBy\": \"someone\",\"content\": \"\",\"recursive\": false},"
- + "\"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"},"
- + "\"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"OOF\","
- + "\"policyName\": \"testPolicy\",\"policyDescription\": \"testing input\","
- + "\"onapName\": \"test\",\"guard\": \"False\",\"riskType\": \"Risk12345\","
- + "\"riskLevel\": \"2\",\"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\","
- + "\"version\": \"1707.41.02\",\"ruleGridData\": [[\"fileId\"]],\"ttlDate\": null}},"
- + "\"policyJSON\": {\"pmTableName\": \"test\",\"dmdTopic\": \"1\",\"fileId\": \"56\"}}";
-
- configBodyString =
- "{\"service\":\"PolicyEntityTest\",\"policyName\":\"someone\",\"description\":\"test\","
- + "\"templateVersion\":\"1607\",\"version\":\"HD\",\"priority\":\"2\","
- + "\"content\":{\"lastPolled\":\"1\",\"boolen-test\":\"true\",\"created\":\"test\","
- + "\"retiredDate\":\"test\",\"scope\":\"TEST_PLACEMENT_VDHV\",\"name\":\"test\","
- + "\"lastModified\":\"test\",\"state\":\"CREATED\",\"type\":\"CONFIG\",\"intent\":\"test\","
- + "\"target\":\"TEST\"}}";
+ jsonString = "{\"policyData\": {\"error\": \"\",\"inprocess\": false,\"model\": {\"name\": \"testingdata\", "
+ + " \"subScopename\": \"\",\"path\": [],\"type\": \"dir\",\"size\": 0,"
+ + "\"date\": \"2017-04-12T21:26:57.000Z\",\"version\": \"\",\"createdBy\": \"someone\","
+ + "\"modifiedBy\": \"someone\",\"content\": \"\",\"recursive\": false},"
+ + "\"tempModel\": {\"name\": \"testingdata\",\"subScopename\": \"\"},"
+ + "\"policy\": {\"policyType\": \"Config\",\"configPolicyType\": \"OOF\","
+ + "\"policyName\": \"testPolicy\",\"policyDescription\": \"testing input\","
+ + "\"onapName\": \"test\",\"guard\": \"False\",\"riskType\": \"Risk12345\","
+ + "\"riskLevel\": \"2\",\"priority\": \"6\",\"serviceType\": \"DkatPolicyBody\","
+ + "\"version\": \"1707.41.02\",\"ruleGridData\": [[\"fileId\"]],\"ttlDate\": null}},"
+ + "\"policyJSON\": {\"pmTableName\": \"test\",\"dmdTopic\": \"1\",\"fileId\": \"56\"}}";
+
+ configBodyString = "{\"service\":\"PolicyEntityTest\",\"policyName\":\"someone\",\"description\":\"test\","
+ + "\"templateVersion\":\"1607\",\"version\":\"HD\",\"priority\":\"2\","
+ + "\"content\":{\"lastPolled\":\"1\",\"boolen-test\":\"true\",\"created\":\"test\","
+ + "\"retiredDate\":\"test\",\"scope\":\"TEST_PLACEMENT_VDHV\",\"name\":\"test\","
+ + "\"lastModified\":\"test\",\"state\":\"CREATED\",\"type\":\"CONFIG\",\"intent\":\"test\","
+ + "\"target\":\"TEST\"}}";
request = mock(HttpServletRequest.class);
BufferedReader br = new BufferedReader(new StringReader(jsonString));
@@ -124,7 +124,7 @@ public class CreateOptimizationControllerTest {
}
/**
- * Run the PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter, JsonNode) method test
+ * Run the PolicyRestAdapter setDataToPolicyRestAdapter(PolicyRestAdapter, JsonNode) method test.
*/
@Test
@@ -141,15 +141,14 @@ public class CreateOptimizationControllerTest {
PolicyRestAdapter policyData = null;
try {
root = JsonLoader.fromString(jsonString);
- policyData = (PolicyRestAdapter) mapper.readValue(
- root.get("policyData").get("policy").toString(), PolicyRestAdapter.class);
+ policyData = mapper.readValue(root.get("policyData").get("policy").toString(),
+ PolicyRestAdapter.class);
} catch (Exception e) {
logger.error("testSetDataToPolicyRestAdapter", e);
}
PolicyRestAdapter result = controller.setDataToPolicyRestAdapter(policyData, root);
- assertTrue(
- result != null && result.getJsonBody() != null && !result.getJsonBody().isEmpty());
+ assertTrue(result != null && result.getJsonBody() != null && !result.getJsonBody().isEmpty());
logger.debug("result.getJsonBody() : " + result.getJsonBody());
logger.debug("testSetDataToPolicyRestAdapter: exit");
@@ -157,7 +156,7 @@ public class CreateOptimizationControllerTest {
/**
* Run the ModelAndView getOptimizationTemplateData(HttpServletRequest, HttpServletResponse)
- * method test
+ * method test.
*/
@Test
@@ -181,8 +180,8 @@ public class CreateOptimizationControllerTest {
testData.setVersion("1707.4.1.2-Junit");
optimizationModelsData.add(testData);
// mock the getDataById() call with the same MS model name
- when(commonClassDao.getDataById(OptimizationModels.class, "modelName",
- "testPolicyBody")).thenReturn(optimizationModelsData);
+ when(commonClassDao.getDataById(OptimizationModels.class, "modelName", "testPolicyBody"))
+ .thenReturn(optimizationModelsData);
controller.getOptimizationTemplateData(request, response);
@@ -200,7 +199,7 @@ public class CreateOptimizationControllerTest {
/**
* Run the ModelAndView getModelServiceVersionData(HttpServletRequest, HttpServletResponse)
- * method test
+ * method test.
*/
@Test
@@ -225,8 +224,8 @@ public class CreateOptimizationControllerTest {
optimizationModelsData.add(testData);
// mock the getDataById() call with the same MS model name
- when(commonClassDao.getDataById(OptimizationModels.class, "modelName",
- "TestPolicyBody")).thenReturn(optimizationModelsData);
+ when(commonClassDao.getDataById(OptimizationModels.class, "modelName", "TestPolicyBody"))
+ .thenReturn(optimizationModelsData);
controller.getModelServiceVersionData(request, response);
assertTrue(response.getContentAsString() != null
@@ -243,7 +242,7 @@ public class CreateOptimizationControllerTest {
}
/**
- * Run the void prePopulateDCAEMSPolicyData(PolicyRestAdapter, PolicyEntity) method test
+ * Run the void prePopulateDCAEMSPolicyData(PolicyRestAdapter, PolicyEntity) method test.
*/
@Test
@@ -266,8 +265,8 @@ public class CreateOptimizationControllerTest {
try {
root = JsonLoader.fromString(jsonString);
- restAdapter = (PolicyRestAdapter) mapper.readValue(
- root.get("policyData").get("policy").toString(), PolicyRestAdapter.class);
+ restAdapter = mapper.readValue(root.get("policyData").get("policy").toString(),
+ PolicyRestAdapter.class);
PolicyType policyType = new PolicyType();
TargetType target = new TargetType();
@@ -386,7 +385,7 @@ public class CreateOptimizationControllerTest {
}
/**
- * Run the void SetMSModelData(HttpServletRequest, HttpServletResponse) method test
+ * Run the void SetMSModelData(HttpServletRequest, HttpServletResponse) method test.
*/
@Test
@@ -409,9 +408,7 @@ public class CreateOptimizationControllerTest {
String fileName = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- fileName =
- new File(classLoader.getResource("schedulerPolicies-v1707.xmi").getFile())
- .getAbsolutePath();
+ fileName = new File(classLoader.getResource("schedulerPolicies-v1707.xmi").getFile()).getAbsolutePath();
} catch (Exception e1) {
logger.error("Exception Occured while loading file" + e1);
}
@@ -430,9 +427,7 @@ public class CreateOptimizationControllerTest {
}
/**
- *
- * @ Get File Stream
- *
+ * @ Get File Stream.
*/
private class MockServletInputStream extends ServletInputStream {
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreatePolicyControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreatePolicyControllerTest.java
new file mode 100644
index 000000000..79277d81d
--- /dev/null
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/CreatePolicyControllerTest.java
@@ -0,0 +1,139 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 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.policy.controller;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import com.att.research.xacml.api.XACML3;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
+import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableDefinitionType;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.rest.adapter.PolicyRestAdapter;
+import org.onap.policy.rest.jpa.ConfigurationDataEntity;
+import org.onap.policy.rest.jpa.PolicyEntity;
+
+public class CreatePolicyControllerTest {
+
+ private PolicyEntity entity;
+
+ /**
+ * before - sets up the mocked PolicyEntity.
+ */
+ @Before
+ public void before() {
+ //
+ // PolicyEntity
+ //
+ ConfigurationDataEntity dataEntity = mock(ConfigurationDataEntity.class);
+ when(dataEntity.getConfigType()).thenReturn("configtype");
+ entity = mock(PolicyEntity.class);
+ when(entity.getConfigurationData()).thenReturn(dataEntity);
+ }
+
+ @Test
+ public void testEasyStuff() {
+ CreatePolicyController controller = new CreatePolicyController();
+ PolicyRestAdapter adapter = new PolicyRestAdapter();
+ controller.prePopulateBaseConfigPolicyData(adapter, null);
+ //
+ // Create a simple PolicyType
+ //
+ VariableDefinitionType var = new VariableDefinitionType();
+ PolicyType policy = new PolicyType();
+ policy.setDescription("i am a description. @CreatedBy: policy designer");
+ policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(var);
+ adapter.setPolicyData(policy);
+ adapter.setPolicyName("name");
+ controller.prePopulateBaseConfigPolicyData(adapter, entity);
+ }
+
+ @Test
+ public void testBadDescription() {
+ PolicyRestAdapter adapter = new PolicyRestAdapter();
+ //
+ // Create a simple PolicyType
+ //
+ VariableDefinitionType var = new VariableDefinitionType();
+ PolicyType policy = new PolicyType();
+ policy.setDescription("i am a description");
+ policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(var);
+ adapter.setPolicyData(policy);
+ adapter.setPolicyName("name");
+ CreatePolicyController controller = new CreatePolicyController();
+ controller.prePopulateBaseConfigPolicyData(adapter, entity);
+ }
+
+ @Test
+ public void testExpectedPolicyContents() {
+ AllOfType allOf = new AllOfType();
+ allOf.getMatch().add(createMatchType("ONAPName", "ONAPName"));
+ allOf.getMatch().add(createMatchType("RiskType", "RiskType"));
+ allOf.getMatch().add(createMatchType("RiskLevel", "RiskLevel"));
+ allOf.getMatch().add(createMatchType("guard", "guard"));
+ allOf.getMatch().add(createMatchType("TTLDate", "TTLDate"));
+ allOf.getMatch().add(createMatchType("ConfigName", "ConfigName"));
+ allOf.getMatch().add(createMatchType("NA", "TTLDate"));
+ allOf.getMatch().add(createMatchType("custom", "custom"));
+ allOf.getMatch().add(createMatchType("custom", "custom"));
+ allOf.getMatch().add(createMatchType("custom", "custom"));
+
+ AnyOfType anyOf = new AnyOfType();
+ anyOf.getAllOf().add(allOf);
+
+ TargetType target = new TargetType();
+ target.getAnyOf().add(anyOf);
+
+ RuleType rule = new RuleType();
+ PolicyType policy = new PolicyType();
+ policy.setDescription("i am a description. @CreatedBy: policy designer");
+ policy.setTarget(target);
+ policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().add(rule);
+ PolicyRestAdapter adapter = new PolicyRestAdapter();
+ adapter.setPolicyData(policy);
+ adapter.setPolicyName("name");
+ CreatePolicyController controller = new CreatePolicyController();
+ controller.prePopulateBaseConfigPolicyData(adapter, entity);
+ }
+
+ private MatchType createMatchType(String strValue, String id) {
+ AttributeValueType value = new AttributeValueType();
+ value.setDataType(XACML3.ID_DATATYPE_STRING.stringValue());
+ value.getContent().add(new String(strValue));
+ AttributeDesignatorType designator = new AttributeDesignatorType();
+ designator.setAttributeId(id);
+
+ MatchType match = new MatchType();
+ match.setAttributeValue(value);
+ match.setAttributeDesignator(designator);
+
+ return match;
+ }
+
+}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/DashboardControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/DashboardControllerTest.java
index f2ecea504..413849cd3 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/DashboardControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/DashboardControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* POLICY-SDK-APP
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,15 +19,19 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.controller;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
+
import java.io.UnsupportedEncodingException;
import java.nio.file.Path;
import java.nio.file.Paths;
+
import javax.servlet.http.HttpServletRequest;
+
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
@@ -50,6 +54,11 @@ public class DashboardControllerTest {
private Path repo;
StdEngine engine = null;
+ /**
+ * setUp.
+ *
+ * @throws Exception should not get one
+ */
@Before
public void setUp() throws Exception {
logger.info("setUp: Entering");
@@ -84,8 +93,8 @@ public class DashboardControllerTest {
public void testGetPAPStatusData() {
try {
controller.getPAPStatusData(request, response);
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("papTableDatas"));
+ assertTrue(
+ response.getContentAsString() != null && response.getContentAsString().contains("papTableDatas"));
} catch (UnsupportedEncodingException e) {
logger.error("Exception Occured" + e);
fail();
@@ -96,8 +105,8 @@ public class DashboardControllerTest {
public void testGetPDPStatusData() {
try {
controller.getPDPStatusData(request, response);
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("pdpTableDatas"));
+ assertTrue(
+ response.getContentAsString() != null && response.getContentAsString().contains("pdpTableDatas"));
} catch (UnsupportedEncodingException e) {
logger.error("Exception Occured" + e);
fail();
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntriesTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntriesTest.java
index e9f953b87..1c744278a 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntriesTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/ExportAndImportDecisionBlackListEntriesTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-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.
@@ -27,7 +27,9 @@ import static org.mockito.Mockito.mock;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
+
import javax.servlet.http.HttpServletRequest;
+
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.junit.Before;
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PDPControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PDPControllerTest.java
index 1c1c0fbbd..372090fdf 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PDPControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PDPControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,15 +19,20 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.controller;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+
import javax.servlet.http.HttpServletRequest;
+
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
@@ -46,6 +51,11 @@ public class PDPControllerTest extends Mockito {
private Set<StdPDPGroup> groups;
private static List<Object> rolesdata;
+ /**
+ * Before.
+ *
+ * @throws Exception Exception
+ */
@Before
public void setUp() throws Exception {
logger.info("setUp: Entering");
@@ -75,9 +85,9 @@ public class PDPControllerTest extends Mockito {
}
@Test
- public void testPDPGroupData() {
- HttpServletRequest request = mock(HttpServletRequest.class);
- MockHttpServletResponse response = new MockHttpServletResponse();
+ public void testPdpGroupData() {
+ final HttpServletRequest request = mock(HttpServletRequest.class);
+ final MockHttpServletResponse response = new MockHttpServletResponse();
PolicyController controller = mock(PolicyController.class);
PDPController pdpController = new PDPController();
pdpController.setJunit(true);;
@@ -86,10 +96,22 @@ public class PDPControllerTest extends Mockito {
when(controller.getRoles("Test")).thenReturn(rolesdata);
pdpController.getPDPGroupEntityData(request, response);
try {
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("data"));
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("data"));
} catch (UnsupportedEncodingException e) {
logger.error("Exception Occured" + e);
}
}
+
+ @Test
+ public void testPdpData() {
+ PdpData data = new PdpData();
+ data.setId("id");
+ assertEquals("id", data.getId());
+ data.setDescription("foo");
+ assertEquals("foo", data.getDescription());
+ data.setJmxPort(0);
+ assertEquals(0, data.getJmxPort());
+ data.setName("name");
+ assertEquals("name", data.getName());
+ }
}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyControllerTest.java
index 65077ae01..554c40f90 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,15 +19,19 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.controller;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+
import java.util.ArrayList;
import java.util.List;
+
import javax.script.SimpleBindings;
+
import org.apache.commons.io.IOUtils;
import org.junit.Before;
import org.junit.Test;
@@ -43,17 +47,20 @@ public class PolicyControllerTest {
private static Logger logger = FlexLogger.getLogger(PolicyControllerTest.class);
private static CommonClassDao commonClassDao;
+ /**
+ * setUp.
+ *
+ * @throws Exception Should not throw one
+ */
@Before
public void setUp() throws Exception {
logger.info("setUp: Entering");
commonClassDao = mock(CommonClassDao.class);
PolicyController.setCommonClassDao(commonClassDao);
- List<Object> data = new ArrayList<>();
String policyData = "";
try {
ClassLoader classLoader = getClass().getClassLoader();
- policyData = IOUtils
- .toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"));
+ policyData = IOUtils.toString(classLoader.getResourceAsStream("Config_SampleTest1206.1.xml"));
} catch (Exception e1) {
e1.printStackTrace();
}
@@ -61,6 +68,7 @@ public class PolicyControllerTest {
entity.setPolicyName("Config_SampleTest.1.xml");
entity.setPolicyData(policyData);
entity.setScope("com");
+ List<Object> data = new ArrayList<>();
data.add(entity);
when(commonClassDao.getDataByQuery(
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyExportAndImportControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyExportAndImportControllerTest.java
index 1e4e62da1..37145655c 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyExportAndImportControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyExportAndImportControllerTest.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2020 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.
@@ -17,20 +17,22 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.controller;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
+import com.mockrunner.mock.web.MockHttpServletRequest;
+import com.mockrunner.mock.web.MockHttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.Collections;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.json.JSONObject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
@@ -41,12 +43,12 @@ import org.onap.policy.rest.jpa.UserInfo;
import org.onap.portalsdk.core.domain.User;
import org.onap.portalsdk.core.web.support.UserUtils;
import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
-import com.mockrunner.mock.web.MockHttpServletRequest;
-import com.mockrunner.mock.web.MockHttpServletResponse;
@RunWith(PowerMockRunner.class)
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "jdk.internal.reflect.*", "javax.xml.*", "org.xml.*", "org.w3c.*"})
public class PolicyExportAndImportControllerTest {
@Test
public void testSetAndGet() {
@@ -97,10 +99,9 @@ public class PolicyExportAndImportControllerTest {
ClassLoader classLoader = getClass().getClassLoader();
// Test negative case
- String file =
- new File(classLoader.getResource("Config_BRMS_Raw_TestBRMSRawPolicy.1.xml").getFile())
- .getAbsolutePath();
- JSONObject json = controller.importRepositoryFile(file, request);
+ String file = new File(classLoader.getResource("Config_BRMS_Raw_TestBRMSRawPolicy.1.xml").getFile())
+ .getAbsolutePath();
+ String json = controller.importRepositoryFile(file, request);
assertNull(json);
// Another negative case
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyNotificationControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyNotificationControllerTest.java
index 476eb6728..31b2dffb3 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyNotificationControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyNotificationControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,15 +19,22 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.controller;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
+
+import com.mockrunner.mock.web.MockHttpServletRequest;
+import com.mockrunner.mock.web.MockHttpServletResponse;
+
import java.io.IOException;
import java.util.Collections;
+
import javax.servlet.http.HttpServletResponse;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
@@ -35,15 +42,15 @@ import org.onap.policy.rest.dao.CommonClassDao;
import org.onap.portalsdk.core.domain.User;
import org.onap.portalsdk.core.web.support.UserUtils;
import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.springframework.web.servlet.ModelAndView;
-import com.mockrunner.mock.web.MockHttpServletRequest;
-import com.mockrunner.mock.web.MockHttpServletResponse;
@RunWith(PowerMockRunner.class)
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "jdk.internal.reflect.*", "javax.xml.*", "org.xml.*", "org.w3c.*"})
+@PrepareForTest({UserUtils.class})
public class PolicyNotificationControllerTest {
- @PrepareForTest({UserUtils.class})
@Test
public void testWatch() throws IOException {
// Mock user utilities
@@ -60,16 +67,14 @@ public class PolicyNotificationControllerTest {
PolicyNotificationController controller = new PolicyNotificationController();
controller.commonClassDao = dao;
MockHttpServletRequest request = new MockHttpServletRequest();
- request.setBodyContent(
- "{\n\"watchData\": {\"name\": \"testVal\",\"path\": \"testPath\"\n}}\n");
+ request.setBodyContent("{\n\"watchData\": {\"name\": \"testVal\",\"path\": \"testPath\"\n}}\n");
MockHttpServletResponse response = new MockHttpServletResponse();
ModelAndView model = controller.watchPolicy(request, response);
assertNull(model);
assertEquals(response.getStatusCode(), HttpServletResponse.SC_OK);
// Negative test watch
- request.setBodyContent(
- "{\n\"watchData\": {\"name\": \"testVal\",\"nopath\": \"testPath\"\n}}\n");
+ request.setBodyContent("{\n\"watchData\": {\"name\": \"testVal\",\"nopath\": \"testPath\"\n}}\n");
response = new MockHttpServletResponse();
model = controller.watchPolicy(request, response);
assertNull(model);
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyRolesControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyRolesControllerTest.java
index d665aae5e..e24525619 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyRolesControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyRolesControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* POLICY-SDK-APP
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,17 +19,21 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.controller;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
+
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
@@ -47,6 +51,11 @@ public class PolicyRolesControllerTest {
private PolicyRolesController controller = null;
private static CommonClassDao commonClassDao;
+ /**
+ * Before.
+ *
+ * @throws Exception exception
+ */
@Before
public void setUp() throws Exception {
logger.info("setUp: Entering");
@@ -59,8 +68,7 @@ public class PolicyRolesControllerTest {
HttpSession mockSession = mock(HttpSession.class);
User user = new User();
user.setOrgUserId("Test");
- Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name")))
- .thenReturn(user);
+ Mockito.when(mockSession.getAttribute(SystemProperties.getProperty("user_attribute_name"))).thenReturn(user);
Mockito.when(request.getSession(false)).thenReturn(mockSession);
logger.info("setUp: exit");
@@ -70,8 +78,7 @@ public class PolicyRolesControllerTest {
public void testGetPolicyRolesEntityData() {
try {
controller.getPolicyRolesEntityData(request, response);
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("rolesDatas"));
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("rolesDatas"));
} catch (UnsupportedEncodingException e) {
logger.error("Exception Occured" + e);
fail();
@@ -82,8 +89,7 @@ public class PolicyRolesControllerTest {
public void testGetPolicyScopesEntityData() {
try {
controller.getPolicyScopesEntityData(request, response);
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("scopeDatas"));
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("scopeDatas"));
} catch (UnsupportedEncodingException e) {
logger.error("Exception Occured" + e);
fail();
@@ -100,8 +106,7 @@ public class PolicyRolesControllerTest {
when(request.getReader()).thenReturn(br);
controller.SaveRolesEntityData(request, response);
logger.info("response.getContentAsString(): " + response.getContentAsString());
- assertTrue(response.getContentAsString() != null
- && response.getContentAsString().contains("rolesDatas"));
+ assertTrue(response.getContentAsString() != null && response.getContentAsString().contains("rolesDatas"));
} catch (Exception e) {
fail("Exception: " + e);
}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyValidationControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyValidationControllerTest.java
index 2ad6d6a7e..56b2d1030 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyValidationControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PolicyValidationControllerTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -19,16 +19,21 @@
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.policy.controller;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
+
+import com.mockrunner.mock.web.MockHttpServletRequest;
+import com.mockrunner.mock.web.MockHttpServletResponse;
+
import java.io.IOException;
+
import javax.servlet.http.HttpServletResponse;
+
import org.junit.Test;
import org.springframework.web.servlet.ModelAndView;
-import com.mockrunner.mock.web.MockHttpServletRequest;
-import com.mockrunner.mock.web.MockHttpServletResponse;
public class PolicyValidationControllerTest {
@Test
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/daoImp/CommonClassDaoImplTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/daoImp/CommonClassDaoImplTest.java
index e7212f109..2b1052044 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/daoImp/CommonClassDaoImplTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/daoImp/CommonClassDaoImplTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017, 2019-2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Modifications Copyright (C) 2019 Samsung
* ================================================================================
@@ -24,8 +24,13 @@ package org.onap.policy.daoImp;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.when;
+
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
@@ -34,10 +39,15 @@ import java.util.Properties;
import javax.script.SimpleBindings;
import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
import org.h2.tools.Server;
+import org.hibernate.Criteria;
+import org.hibernate.HibernateException;
+import org.hibernate.Session;
import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.mockito.Mockito;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
import org.onap.policy.conf.HibernateSession;
@@ -46,7 +56,7 @@ import org.onap.policy.rest.jpa.OnapName;
import org.onap.policy.rest.jpa.PolicyEntity;
import org.onap.policy.rest.jpa.PolicyRoles;
import org.onap.policy.rest.jpa.PolicyVersion;
-import org.onap.policy.rest.jpa.SystemLogDB;
+import org.onap.policy.rest.jpa.SystemLogDb;
import org.onap.policy.rest.jpa.UserInfo;
import org.onap.policy.rest.jpa.WatchPolicyNotificationTable;
import org.springframework.orm.hibernate4.LocalSessionFactoryBuilder;
@@ -61,6 +71,11 @@ public class CommonClassDaoImplTest {
Server server;
CommonClassDaoImpl commonClassDao;
+ /**
+ * setUp.
+ *
+ * @throws Exception Exception
+ */
@Before
public void setUp() throws Exception {
try {
@@ -87,13 +102,13 @@ public class CommonClassDaoImplTest {
CommonClassDaoImpl.setSessionfactory(sessionFactory);
PolicyController.setLogTableLimit("1");
HibernateSession.setSession(sessionFactory);
- SystemLogDB data1 = new SystemLogDB();
+ SystemLogDb data1 = new SystemLogDb();
data1.setDate(new Date());
data1.setLogtype("INFO");
data1.setRemote("Test");
data1.setSystem("Test");
data1.setType("Test");
- SystemLogDB data2 = new SystemLogDB();
+ SystemLogDb data2 = new SystemLogDb();
data2.setDate(new Date());
data2.setLogtype("error");
data2.setRemote("Test");
@@ -122,13 +137,13 @@ public class CommonClassDaoImplTest {
userinfo.setUserName("Test");
commonClassDao.save(userinfo);
OnapName onapName = new OnapName();
- onapName.setOnapName("Test");
+ onapName.setName("Test");
onapName.setUserCreatedBy(userinfo);
onapName.setUserModifiedBy(userinfo);
onapName.setModifiedDate(new Date());
commonClassDao.save(onapName);
- List<Object> list = commonClassDao.getData(OnapName.class);
+ List<?> list = commonClassDao.getData(OnapName.class);
assertTrue(list.size() == 1);
logger.debug(list.size());
logger.debug(list.get(0));
@@ -145,18 +160,17 @@ public class CommonClassDaoImplTest {
try {
// Add data
UserInfo userinfo = new UserInfo();
- String loginId_userName = "Test";
- userinfo.setUserLoginId(loginId_userName);
- userinfo.setUserName(loginId_userName);
+ String loginIdUserName = "Test";
+ userinfo.setUserLoginId(loginIdUserName);
+ userinfo.setUserName(loginIdUserName);
commonClassDao.save(userinfo);
- List<Object> dataCur =
- commonClassDao.getDataByQuery("from UserInfo", new SimpleBindings());
+ List<?> dataCur = commonClassDao.getDataByQuery("from UserInfo", new SimpleBindings());
assertEquals(1, dataCur.size());
UserInfo cur = (UserInfo) dataCur.get(0);
- assertEquals(loginId_userName, cur.getUserLoginId());
- assertEquals(loginId_userName, cur.getUserName());
+ assertEquals(loginIdUserName, cur.getUserLoginId());
+ assertEquals(loginIdUserName, cur.getUserName());
assertFalse(dataCur.isEmpty());
@@ -183,13 +197,12 @@ public class CommonClassDaoImplTest {
pe.setCreatedBy("Test");
commonClassDao.save(pe);
- List<Object> dataCur =
- commonClassDao.getDataByQuery("from PolicyEntity", new SimpleBindings());
+ List<?> dataCur = commonClassDao.getDataByQuery("from PolicyEntity", new SimpleBindings());
assertTrue(1 == dataCur.size());
assertTrue(dataCur.get(0) instanceof PolicyEntity);
assertEquals(name, ((PolicyEntity) dataCur.get(0)).getPolicyName());
- assertEquals(pe, ((PolicyEntity) dataCur.get(0)));
+ assertEquals(pe, (dataCur.get(0)));
} catch (Exception e) {
logger.debug("Exception Occured" + e);
@@ -225,10 +238,10 @@ public class CommonClassDaoImplTest {
String query = "From PolicyVersion where policy_name like :scope and id > 0";
SimpleBindings params = new SimpleBindings();
params.put("scope", scope);
- List<Object> dataCur = commonClassDao.getDataByQuery(query, params);
+ List<?> dataCur = commonClassDao.getDataByQuery(query, params);
assertTrue(1 == dataCur.size());
- assertEquals(pv, (PolicyVersion) dataCur.get(0));
+ assertEquals(pv, dataCur.get(0));
} catch (Exception e) {
logger.debug("Exception Occured" + e);
@@ -243,11 +256,11 @@ public class CommonClassDaoImplTest {
try {
// Add data
WatchPolicyNotificationTable watch = new WatchPolicyNotificationTable();
- String policyFileName = "banana";
watch.setLoginIds("Test");
watch.setPolicyName("bananaWatch");
commonClassDao.save(watch);
+ String policyFileName = "banana";
if (policyFileName.contains("/")) {
policyFileName = policyFileName.substring(0, policyFileName.indexOf("/"));
policyFileName = policyFileName.replace("/", File.separator);
@@ -262,12 +275,12 @@ public class CommonClassDaoImplTest {
String query = "from WatchPolicyNotificationTable where policyName like:policyFileName";
SimpleBindings params = new SimpleBindings();
params.put("policyFileName", policyFileName);
- List<Object> dataCur = commonClassDao.getDataByQuery(query, params);
+ List<?> dataCur = commonClassDao.getDataByQuery(query, params);
// Assertions
assertTrue(dataCur.size() == 1);
assertTrue(dataCur.get(0) instanceof WatchPolicyNotificationTable);
- assertEquals(watch, (WatchPolicyNotificationTable) dataCur.get(0));
+ assertEquals(watch, dataCur.get(0));
} catch (Exception e) {
logger.debug("Exception Occured" + e);
@@ -293,20 +306,19 @@ public class CommonClassDaoImplTest {
commonClassDao.save(pe);
String dbCheckName = "dummyScope:action";
- String[] splitDBCheckName = dbCheckName.split(":");
// Current Implementation
- String query =
- "FROM PolicyEntity where policyName like :splitDBCheckName1 and scope = :splitDBCheckName0";
+ String query = "FROM PolicyEntity where policyName like :splitDBCheckName1 and scope = :splitDBCheckName0";
SimpleBindings params = new SimpleBindings();
- params.put("splitDBCheckName1", splitDBCheckName[1] + "%");
- params.put("splitDBCheckName0", splitDBCheckName[0]);
- List<Object> dataCur = commonClassDao.getDataByQuery(query, params);
+ String[] splitDbCheckName = dbCheckName.split(":");
+ params.put("splitDBCheckName1", splitDbCheckName[1] + "%");
+ params.put("splitDBCheckName0", splitDbCheckName[0]);
+ List<?> dataCur = commonClassDao.getDataByQuery(query, params);
// Assertions
assertTrue(dataCur.size() == 1);
assertTrue(dataCur.get(0) instanceof PolicyEntity);
- assertEquals(pe, (PolicyEntity) dataCur.get(0));
+ assertEquals(pe, dataCur.get(0));
} catch (Exception e) {
logger.debug("Exception Occured" + e);
@@ -328,17 +340,16 @@ public class CommonClassDaoImplTest {
commonClassDao.save(watch);
// Current Implementation
- String query =
- "from WatchPolicyNotificationTable where POLICYNAME = :finalName and LOGINIDS = :userId";
+ String query = "from WatchPolicyNotificationTable where POLICYNAME = :finalName and LOGINIDS = :userId";
SimpleBindings params = new SimpleBindings();
params.put("finalName", finalName);
params.put("userId", userId);
- List<Object> dataCur = commonClassDao.getDataByQuery(query, params);
+ List<?> dataCur = commonClassDao.getDataByQuery(query, params);
// Assertions
assertTrue(dataCur.size() == 1);
assertTrue(dataCur.get(0) instanceof WatchPolicyNotificationTable);
- assertEquals(watch, (WatchPolicyNotificationTable) dataCur.get(0));
+ assertEquals(watch, dataCur.get(0));
} catch (Exception e) {
logger.debug("Exception Occured" + e);
@@ -371,20 +382,19 @@ public class CommonClassDaoImplTest {
String finalName = "banana' OR '1'='1";
// Current Implementation
- String query =
- "from WatchPolicyNotificationTable where POLICYNAME = :finalName and LOGINIDS = :userId";
+ String query = "from WatchPolicyNotificationTable where POLICYNAME = :finalName and LOGINIDS = :userId";
SimpleBindings params = new SimpleBindings();
params.put("finalName", finalName);
params.put("userId", userId);
- List<Object> dataCur = commonClassDao.getDataByQuery(query, params);
+ List<?> dataCur = commonClassDao.getDataByQuery(query, params);
// Assertions
assertTrue(dataCur.size() <= 1);
if (dataCur.size() >= 1) {
assertTrue(dataCur.get(0) instanceof WatchPolicyNotificationTable);
- assertFalse(watch.equals((WatchPolicyNotificationTable) dataCur.get(0)));
- assertFalse(watch.equals((WatchPolicyNotificationTable) dataCur.get(0)));
+ assertFalse(watch.equals(dataCur.get(0)));
+ assertFalse(watch.equals(dataCur.get(0)));
}
} catch (Exception e) {
logger.debug("Exception Occured" + e);
@@ -399,19 +409,17 @@ public class CommonClassDaoImplTest {
userInfo.setUserLoginId("TestID");
userInfo.setUserName("Test");
commonClassDao.save(userInfo);
- List<Object> data = commonClassDao.getDataById(UserInfo.class, "userLoginId:userName",
- "TestID:Test");
+ List<?> data = commonClassDao.getDataById(UserInfo.class, "userLoginId:userName", "TestID:Test");
assertTrue(data.size() == 1);
UserInfo userInfoUpdate = (UserInfo) data.get(0);
userInfoUpdate.setUserName("Test1");
commonClassDao.update(userInfoUpdate);
List<String> data1 = commonClassDao.getDataByColumn(UserInfo.class, "userLoginId");
assertTrue(data1.size() == 1);
- UserInfo data2 = (UserInfo) commonClassDao.getEntityItem(UserInfo.class,
- "userLoginId:userName", "TestID:Test1");
+ UserInfo data2 =
+ (UserInfo) commonClassDao.getEntityItem(UserInfo.class, "userLoginId:userName", "TestID:Test1");
assertTrue("TestID".equals(data2.getUserLoginId()));
- List<Object> data3 = commonClassDao.checkDuplicateEntry("TestID:Test1",
- "userLoginId:userName", UserInfo.class);
+ List<?> data3 = commonClassDao.checkDuplicateEntry("TestID:Test1", "userLoginId:userName", UserInfo.class);
assertTrue(data3.size() == 1);
PolicyRoles roles = new PolicyRoles();
roles.setRole("admin");
@@ -422,8 +430,8 @@ public class CommonClassDaoImplTest {
assertTrue(roles1.size() == 1);
List<String> multipleData = new ArrayList<>();
multipleData.add("TestID:Test1");
- List<Object> data4 = commonClassDao.getMultipleDataOnAddingConjunction(UserInfo.class,
- "userLoginId:userName", multipleData);
+ List<?> data4 = commonClassDao.getMultipleDataOnAddingConjunction(UserInfo.class, "userLoginId:userName",
+ multipleData);
assertTrue(data4.size() == 1);
commonClassDao.delete(data2);
} catch (Exception e) {
@@ -454,6 +462,70 @@ public class CommonClassDaoImplTest {
}
}
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testExceptions() throws HibernateException {
+ SessionFactory sfMock = Mockito.mock(SessionFactory.class);
+ Session mockSession = Mockito.mock(Session.class);
+ Criteria crMock = Mockito.mock(Criteria.class);
+ Transaction mockTransaction = Mockito.mock(Transaction.class);
+
+ CommonClassDaoImpl.setSessionfactory(sfMock);
+
+ when(sfMock.openSession()).thenReturn(mockSession);
+ when(mockSession.createCriteria(OnapName.class)).thenReturn(crMock);
+
+ when(crMock.list()).thenThrow(HibernateException.class);
+ when(mockSession.close()).thenThrow(HibernateException.class);
+
+ when(mockSession.beginTransaction()).thenReturn(mockTransaction);
+ doThrow(HibernateException.class).when(mockTransaction).commit();
+
+ List<?> dataList = commonClassDao.getData(OnapName.class);
+ assertNull(dataList);
+
+ List<?> dataByIdList = commonClassDao.getDataById(UserInfo.class, "userLoginId:userName", "TestID:Test");
+ assertNull(dataByIdList);
+
+ commonClassDao.save(null);
+ commonClassDao.delete(null);
+ commonClassDao.update(null);
+
+ List<?> dupEntryList =
+ commonClassDao.checkDuplicateEntry("TestID:Test", "userLoginId:userName", UserInfo.class);
+ assertNull(dupEntryList);
+
+ List<PolicyRoles> userRoles = commonClassDao.getUserRoles();
+ assertNull(userRoles);
+
+ Object entityItem = commonClassDao.getEntityItem(UserInfo.class, "testColName", "testKey");
+ assertNull(entityItem);
+
+ commonClassDao.updateQuery("testQueryString");
+
+ List<String> dataByColumn = commonClassDao.getDataByColumn(UserInfo.class, "testColName");
+ assertNull(dataByColumn);
+
+ List<?> entityData = commonClassDao.getMultipleDataOnAddingConjunction(UserInfo.class, "", null);
+ assertNull(entityData);
+ }
+
+ @Test
+ public void testCheckExistingGroupListforUpdate() {
+ Object retObj = commonClassDao.checkExistingGroupListforUpdate("testString1", "testString2");
+ assertNotNull(retObj);
+ assertTrue(retObj instanceof List);
+ List<?> retList = (List<?>) retObj;
+ assertTrue(retList.isEmpty());
+ }
+
+ @Test
+ public void testEmptyMethods() {
+ commonClassDao.deleteAll();
+ commonClassDao.updateClAlarms("TestString1", "TestString2");
+ commonClassDao.updateClYaml("TestString1", "TestString2");
+ }
+
@After
public void deleteDB() {
sessionFactory.close();
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/daoImp/SystemLogDbDaoImplTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/daoImp/SystemLogDbDaoImplTest.java
new file mode 100644
index 000000000..44f034c20
--- /dev/null
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/daoImp/SystemLogDbDaoImplTest.java
@@ -0,0 +1,77 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 2019-2020 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.policy.daoImp;
+
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.when;
+
+import java.util.List;
+
+import org.hibernate.HibernateException;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.policy.conf.HibernateSession;
+import org.onap.policy.controller.PolicyController;
+import org.onap.policy.rest.jpa.SystemLogDb;
+
+public class SystemLogDbDaoImplTest {
+ private static Session mockSession = Mockito.mock(Session.class);
+ private static SessionFactory sfMock = Mockito.mock(SessionFactory.class);
+ private static Transaction mockTransaction = Mockito.mock(Transaction.class);
+ private SystemLogDbDaoImpl sysLogImpl = new SystemLogDbDaoImpl();
+
+ @SuppressWarnings("unchecked")
+ @BeforeClass
+ public static void setup() {
+ HibernateSession.setSession(sfMock);
+
+ when(sfMock.openSession()).thenReturn(mockSession);
+ when(mockSession.beginTransaction()).thenReturn(mockTransaction);
+
+ doThrow(HibernateException.class).when(mockTransaction).commit();
+ when(mockSession.close()).thenThrow(HibernateException.class);
+
+ PolicyController.setjUnit(true);
+ }
+
+ @Test
+ public void testGettingLoggingData() {
+ List<SystemLogDb> loggingData = sysLogImpl.getLoggingData();
+ assertNull(loggingData);
+ }
+
+ @Test
+ public void testGetSystemAlertData() {
+ List<SystemLogDb> systemAlertData = sysLogImpl.getSystemAlertData();
+ assertNull(systemAlertData);
+ }
+
+ @AfterClass
+ public static void resetjUnit() {
+ PolicyController.setjUnit(false);
+ }
+}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/model/PDPGroupContainerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/model/PDPGroupContainerTest.java
index 5117a05da..5204fc414 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/model/PDPGroupContainerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/model/PDPGroupContainerTest.java
@@ -2,10 +2,8 @@
* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2019 Samsung
- * ================================================================================
+ * Copyright (C) 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
@@ -23,16 +21,27 @@
package org.onap.policy.model;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.when;
+
+import com.att.research.xacml.api.pap.PAPException;
+import java.awt.Checkbox;
+import java.util.Set;
import org.junit.Test;
import org.mockito.Mockito;
import org.onap.policy.rest.util.PolicyContainer.ItemSetChangeListener;
import org.onap.policy.xacml.api.pap.OnapPDP;
import org.onap.policy.xacml.api.pap.OnapPDPGroup;
import org.onap.policy.xacml.api.pap.PAPPolicyEngine;
-import com.att.research.xacml.api.pap.PAPException;
public class PDPGroupContainerTest {
+ private OnapPDPGroup group = Mockito.mock(OnapPDPGroup.class);
+ private OnapPDPGroup newGroup = Mockito.mock(OnapPDPGroup.class);
+ private OnapPDP pdp = Mockito.mock(OnapPDP.class);
private PAPPolicyEngine engine = Mockito.mock(PAPPolicyEngine.class);
private PDPGroupContainer container = new PDPGroupContainer(engine);
@@ -44,13 +53,11 @@ public class PDPGroupContainerTest {
container.refreshGroups();
assertEquals(container.getGroups().size(), 0);
- OnapPDPGroup group = Mockito.mock(OnapPDPGroup.class);
container.makeDefault(group);
- OnapPDPGroup newGroup = Mockito.mock(OnapPDPGroup.class);
container.removeGroup(group, newGroup);
- OnapPDP pdp = Mockito.mock(OnapPDP.class);
container.updatePDP(pdp);
container.updateGroup(group);
+ container.updateGroup(group, "testUserName");
assertNull(container.getContainerPropertyIds());
assertEquals(container.getItemIds().size(), 0);
assertEquals(container.getType(itemId), null);
@@ -103,7 +110,7 @@ public class PDPGroupContainerTest {
}
@Test(expected = IndexOutOfBoundsException.class)
- public void testGetIdByIndex() {
+ public void testGetIdByIndexException() {
container.getIdByIndex(0);
}
@@ -113,7 +120,145 @@ public class PDPGroupContainerTest {
}
@Test(expected = IllegalArgumentException.class)
- public void testGetItemIds() {
+ public void testGetItemIdsException() {
container.getItemIds(0, 1);
}
+
+ @Test
+ public void testGetType() {
+ assertEquals(Boolean.class, container.getType("Default"));
+ assertEquals(Checkbox.class, container.getType("Selected"));
+ assertEquals(Set.class, container.getType("PDPs"));
+ assertEquals(Set.class, container.getType("Policies"));
+ assertEquals(Set.class, container.getType("PIP Configurations"));
+ assertEquals(String.class, container.getType("Id"));
+ assertEquals(String.class, container.getType("Name"));
+ assertEquals(String.class, container.getType("Description"));
+ assertEquals(String.class, container.getType("Status"));
+ }
+
+ @Test
+ public void testContainerPAPExceptions() throws PAPException {
+ doThrow(PAPException.class).when(engine).getOnapPDPGroups();
+ container.refreshGroups();
+
+ doThrow(PAPException.class).when(engine).setDefaultGroup(group);
+ container.makeDefault(group);
+
+ doThrow(PAPException.class).when(engine).updatePDP(pdp);
+ container.updatePDP(pdp);
+
+ doThrow(PAPException.class).when(engine).updateGroup(group);
+ container.updateGroup(group);
+
+ doThrow(PAPException.class).when(engine).updateGroup(group, "testUserName");
+ container.updateGroup(group, "testUserName");
+
+ doThrow(PAPException.class).when(engine).movePDP(pdp, group);
+ container.movePDP(pdp, group);
+ }
+
+ @Test(expected = PAPException.class)
+ public void testContainerRemoveGroup() throws PAPException {
+ doThrow(PAPException.class).when(engine).removeGroup(group, newGroup);
+ container.removeGroup(group, newGroup);
+ }
+
+ @Test(expected = PAPException.class)
+ public void testContainerRemovePDP() throws PAPException {
+ doThrow(PAPException.class).when(engine).removePDP(pdp);
+ container.removePDP(pdp, group);
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testRemoveDefaultGroup() throws PAPException {
+ when(group.isDefaultGroup()).thenReturn(true);
+ container.removeGroup(group, newGroup);
+ }
+
+ @Test
+ public void testGetItemIds() {
+ assertNotNull(container.getItemIds(0, 0));
+ }
+
+ @Test
+ public void testContainsId() {
+ assertFalse(container.containsId(group));
+ }
+
+ @Test
+ public void testGroupMethods() {
+ container.groups.add(group);
+
+ Object retObj = container.getIdByIndex(0);
+ assertTrue(retObj instanceof OnapPDPGroup);
+ assertNotNull(retObj);
+
+ Object retFirstItemId = container.firstItemId();
+ assertTrue(retFirstItemId instanceof OnapPDPGroup);
+ assertNotNull(retFirstItemId);
+
+ Object retLastItemId = container.lastItemId();
+ assertTrue(retLastItemId instanceof OnapPDPGroup);
+ assertNotNull(retLastItemId);
+
+ assertTrue(container.isFirstId(group));
+
+ assertTrue(container.isLastId(group));
+ }
+
+ @Test
+ public void testNextItemId() {
+ OnapPDPGroup groupNotInList = Mockito.mock(OnapPDPGroup.class);
+ Object retObj = null;
+
+ container.groups.add(group);
+ container.groups.add(newGroup);
+
+ assertNull(container.nextItemId(groupNotInList));
+ assertNull(container.nextItemId(newGroup));
+
+ retObj = container.nextItemId(group);
+ assertNotNull(retObj);
+ assertTrue(retObj instanceof OnapPDPGroup);
+ }
+
+ @Test
+ public void testPrevItemId() {
+ OnapPDPGroup groupNotInList = Mockito.mock(OnapPDPGroup.class);
+ Object retObj = null;
+
+ container.groups.add(group);
+ container.groups.add(newGroup);
+
+ assertNull(container.prevItemId(groupNotInList));
+ assertNull(container.prevItemId(group));
+
+ retObj = container.prevItemId(newGroup);
+ assertNotNull(retObj);
+ assertTrue(retObj instanceof OnapPDPGroup);
+ }
+
+ @Test
+ public void testRemoveNullItem() {
+ OnapPDPGroup nullGroup = null;
+ assertFalse(container.removeItem(nullGroup));
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testRemoveDefaultItem() {
+ when(group.getId()).thenReturn("Default");
+ container.removeItem(group);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testRemoveItem() throws PAPException {
+ assertTrue(container.removeItem(group));
+
+ PAPPolicyEngine mockPAPPolicyEngine = Mockito.mock(PAPPolicyEngine.class);
+ PDPGroupContainer groupContainer = new PDPGroupContainer(mockPAPPolicyEngine);
+ when(mockPAPPolicyEngine.getDefaultGroup()).thenThrow(PAPException.class);
+ assertFalse(groupContainer.removeItem(group));
+ }
}
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/model/RolesTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/model/RolesTest.java
new file mode 100644
index 000000000..745579af9
--- /dev/null
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/model/RolesTest.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine
+ * ================================================================================
+ * Copyright (C) 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.policy.model;
+
+import com.openpojo.reflection.filters.FilterPackageInfo;
+import com.openpojo.validation.Validator;
+import com.openpojo.validation.ValidatorBuilder;
+import com.openpojo.validation.test.impl.GetterTester;
+import com.openpojo.validation.test.impl.SetterTester;
+
+import org.junit.Test;
+
+public class RolesTest {
+
+ @Test
+ public void testRolesSettersAndGetters() {
+ final Validator validator = ValidatorBuilder.create().with(new SetterTester()).with(new GetterTester()).build();
+ validator.validate(RolesTest.class.getPackage().getName(), new FilterPackageInfo());
+ }
+}
diff --git a/POLICY-SDK-APP/src/test/resources/logback.xml b/POLICY-SDK-APP/src/test/resources/logback.xml
index fc73b6af2..ea9a7b491 100644
--- a/POLICY-SDK-APP/src/test/resources/logback.xml
+++ b/POLICY-SDK-APP/src/test/resources/logback.xml
@@ -2,14 +2,14 @@
============LICENSE_START=======================================================
ONAP-PAP-REST
================================================================================
- Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ 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.
@@ -22,74 +22,74 @@
<!--<jmxConfigurator /> -->
<!-- directory path for all other type logs -->
<property name="logDir" value="logs" />
-
+
<!-- directory path for debugging type logs -->
<property name="debugDir" value="logs" />
-
- <!-- specify the component name
+
+ <!-- specify the component name
<ONAP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->
<property name="componentName" value="Policy"></property>
<property name="subComponentName" value="XACML-PAP-REST"></property>
-
+
<!-- log file names -->
<property name="errorLogName" value="error" />
<property name="metricsLogName" value="metrics" />
<property name="auditLogName" value="audit" />
<property name="debugLogName" value="debug" />
-
-
+
+
<!-- modified time stamp format -->
-
- <!-- A U D I T
- <property name="defaultAuditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
+
+ <!-- A U D I T
+ <property name="defaultAuditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
<property name="defaultAuditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{requestId}|%X{serviceInstanceId}|%t|%X{serverName}|%X{serviceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{instanceUuid}|%p|%X{severity}|%X{serverIpAddress}|%X{ElapsedTime}|%X{server}|%X{clientIpAddress}|%c||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
-->
<property name="defaultAuditPattern" value="%X{TransactionBeginTimestamp}|%X{TransactionEndTimestamp}|%X{requestId}|%X{serviceInstanceId}|%t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{instanceUuid}|%p|%X{severity}|%X{serverIpAddress}|%X{TransactionElapsedTime}|%X{server}|%X{clientIpAddress}|%c||%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
-
-
-
- <!-- M E T R I C
- <property name="defaultMetricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
+
+
+
+ <!-- M E T R I C
+ <property name="defaultMetricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
-->
<property name="defaultMetricPattern" value="%X{MetricBeginTimestamp}|%X{MetricEndTimestamp}|%X{requestId}|%X{serviceInstanceId}|%t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%p|%X{severity}|%X{serverIpAddress}|%X{MetricElapsedTime}|%X{server}|%X{clientIpAddress}|%c||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
-
-
-
-
+
+
+
+
<!-- E R R O R
<property name="defaultErrorPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%X{ErrorDesciption}|%msg%n" />
-->
<property name="defaultErrorPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%X{requestId}|%t|%X{serviceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{ErrorCategory}|%X{ErrorCode}|%X{ErrorDesciption}|%msg%n" />
-
-
-
+
+
+
<!-- D E B U G
- <property name="debugLoggerPatternOld" value="%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|[%caller{3}]|%msg%n" />
- <property name="debugLoggerPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" /> -->
+ <property name="debugLoggerPatternOld" value="%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|[%caller{3}]|%msg%n" />
+ <property name="debugLoggerPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" /> -->
-->
- <property name="debugLoggerPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%X{RequestId}|%msg%n" />
-
-
-
- <!-- D E F A U L T
- <property name="defaultPatternOld" value="%d{MM/dd-HH:mm:ss.SSS}|%logger|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}|%msg%n" />
- <property name="defaultPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
+ <property name="debugLoggerPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%X{RequestId}|%msg%n" />
+
+
+
+ <!-- D E F A U L T
+ <property name="defaultPatternOld" value="%d{MM/dd-HH:mm:ss.SSS}|%logger|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Timer}|%msg%n" />
+ <property name="defaultPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}||%X{ProcessKey}|%X{TargetVirtualEntity}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n" />
-->
<property name="defaultPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX, UTC}|%X{requestId}|%X{serviceInstanceId}|%t|%X{serverName}|%X{serviceName}|%X{instanceUuid}|%p|%X{severity}|%X{serverIpAddress}|%X{server}|%X{clientIpAddress}|%c||%msg%n" />
-
-
-
+
+
+
<!-- P A T H
<property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
<property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
- -->
+ -->
<property name="logDirectory" value="${catalina.base}/${logDir}/${componentName}/${subComponentName}" />
<property name="debugLogDirectory" value="${catalina.base}/${debugDir}/${componentName}/${subComponentName}" />
-
-
-
+
+
+
<!-- Example evaluator filter applied against console appender -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
@@ -101,15 +101,15 @@
<!-- EELF Appenders -->
<!-- ============================================================================ -->
- <!-- The EELFAppender is used to record events to the general application
+ <!-- The EELFAppender is used to record events to the general application
log -->
-
- <!-- EELF Audit Appender. This appender is used to record audit engine
- related logging events. The audit logger and appender are specializations
- of the EELF application root logger and appender. This can be used to segregate
- Policy engine events from other components, or it can be eliminated to record
+
+ <!-- EELF Audit Appender. This appender is used to record audit engine
+ related logging events. The audit logger and appender are specializations
+ of the EELF application root logger and appender. This can be used to segregate
+ Policy engine events from other components, or it can be eliminated to record
these events as part of the application root log. -->
-
+
<appender name="EELFAudit"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logDirectory}/${auditLogName}.log</file>
@@ -152,12 +152,12 @@
<maxFileSize>5MB</maxFileSize>
</triggeringPolicy>
<encoder>
- <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
+ <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} -
%msg%n"</pattern> -->
<pattern>${defaultMetricPattern}</pattern>
</encoder>
</appender>
-
+
<appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>256</queueSize>
<appender-ref ref="EELFMetrics"/>
@@ -165,7 +165,7 @@
-
+
<appender name="EELFError"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logDirectory}/${errorLogName}.log</file>
@@ -187,14 +187,14 @@
<pattern>${defaultErrorPattern}</pattern>
</encoder>
</appender>
-
+
<appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>256</queueSize>
<appender-ref ref="EELFError"/>
</appender>
-
+
<appender name="EELFDebug"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${debugLogDirectory}/${debugLogName}.log</file>
@@ -216,36 +216,36 @@
<pattern>${debugLoggerPattern}</pattern>
</encoder>
</appender>
-
+
<appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>256</queueSize>
<appender-ref ref="EELFDebug" />
<includeCallerData>true</includeCallerData>
</appender>
-
-
+
+
<!-- ============================================================================ -->
<!-- EELF loggers -->
<!-- ============================================================================ -->
-
+
<logger name="com.att.eelf.audit" level="info" additivity="false">
<appender-ref ref="asyncEELFAudit" />
</logger>
-
+
<logger name="com.att.eelf.metrics" level="info" additivity="false">
<appender-ref ref="asyncEELFMetrics" />
</logger>
-
+
<logger name="com.att.eelf.error" level="error" additivity="false">
<appender-ref ref="asyncEELFError" />
</logger>
-
+
<logger name="com.att.eelf.debug" level="info" additivity="false">
<appender-ref ref="asyncEELFDebug" />
</logger>
-
-
-
+
+
+
<root level="INFO">
<appender-ref ref="asyncEELFDebug" />
<appender-ref ref="asyncEELFError" />
diff --git a/POLICY-SDK-APP/src/test/resources/xacml.admin.properties b/POLICY-SDK-APP/src/test/resources/xacml.admin.properties
index 363ab621f..1147ce6eb 100644
--- a/POLICY-SDK-APP/src/test/resources/xacml.admin.properties
+++ b/POLICY-SDK-APP/src/test/resources/xacml.admin.properties
@@ -2,7 +2,7 @@
# ============LICENSE_START=======================================================
# ONAP Policy Engine
# ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# 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.
@@ -111,9 +111,9 @@ xacml.max.priority.count=10
#
# You can test authorization within the Admin Console by changing the user id.
# There are 3 supported user ids:
-# guest - Read only access
-# editor - Read/Write access
-# admin - Read/Write/Admin access
+# guest - Read only access
+# editor - Read/Write access
+# admin - Read/Write/Admin access
#
# An empty or null value for xacml.rest.admin.user.id results in no access to the application at all.
#