diff options
author | Determe, Sebastien (sd378r) <sd378r@intl.att.com> | 2018-03-28 17:25:55 +0200 |
---|---|---|
committer | Determe, Sebastien (sd378r) <sd378r@intl.att.com> | 2018-04-11 17:58:56 +0200 |
commit | 42765b28e9008a0932ddf0300b2f77bcf8deaae3 (patch) | |
tree | 48acf735fd035e1d5ba32d6f22ff990ff45847d5 | |
parent | 540fff37e161d693e8f9168a3ddac1ff4866c33a (diff) |
Improve policy Config
Improve the policy configuration file and merge it to
application.properties so that all configurations are located at the
same place
Issue-ID: CLAMP-136
Change-Id: I5654bbe61d483a4061540959ed0b7dbb1242b022
Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
-rw-r--r-- | pom.xml | 12 | ||||
-rw-r--r-- | src/main/java/org/onap/clamp/clds/Application.java | 2 | ||||
-rw-r--r-- | src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java | 11 | ||||
-rw-r--r-- | src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java | 128 | ||||
-rw-r--r-- | src/main/resources/application.properties | 17 | ||||
-rw-r--r-- | src/main/resources/clds/clds-policy-config.properties | 37 | ||||
-rw-r--r-- | src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java | 31 | ||||
-rw-r--r-- | src/test/resources/application.properties | 14 | ||||
-rw-r--r-- | src/test/resources/clds/clds-policy-config.properties | 37 |
9 files changed, 201 insertions, 88 deletions
@@ -306,7 +306,7 @@ <dependency> <groupId>org.onap.policy.engine</groupId> <artifactId>PolicyEngineAPI</artifactId> - <version>1.1.0</version> + <version>1.2.0</version> <exclusions> <exclusion> <groupId>com.google.guava</groupId> @@ -337,7 +337,7 @@ <dependency> <groupId>org.onap.policy.common</groupId> <artifactId>ONAP-Logging</artifactId> - <version>1.1.0</version> + <version>1.1.3</version> <exclusions> <exclusion> <artifactId>log4j</artifactId> @@ -356,7 +356,7 @@ <dependency> <groupId>org.onap.policy.engine</groupId> <artifactId>PolicyEngineUtils</artifactId> - <version>1.1.0</version> + <version>1.1.3</version> <exclusions> <exclusion> <artifactId>log4j</artifactId> @@ -387,7 +387,7 @@ <dependency> <groupId>org.onap.policy.drools-applications</groupId> <artifactId>policy-yaml</artifactId> - <version>1.1.0</version> + <version>1.1.3</version> <exclusions> <exclusion> <artifactId>log4j</artifactId> @@ -406,7 +406,7 @@ <dependency> <groupId>org.onap.policy.drools-applications</groupId> <artifactId>sdc</artifactId> - <version>1.1.0</version> + <version>1.1.3</version> <exclusions> <exclusion> <artifactId>log4j</artifactId> @@ -425,7 +425,7 @@ <dependency> <groupId>org.onap.policy.drools-applications</groupId> <artifactId>aai</artifactId> - <version>1.1.0</version> + <version>1.1.3</version> <exclusions> <exclusion> <artifactId>log4j</artifactId> diff --git a/src/main/java/org/onap/clamp/clds/Application.java b/src/main/java/org/onap/clamp/clds/Application.java index 9d057b58..ae8b6d82 100644 --- a/src/main/java/org/onap/clamp/clds/Application.java +++ b/src/main/java/org/onap/clamp/clds/Application.java @@ -42,6 +42,7 @@ import org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.boot.web.support.SpringBootServletInitializer; import org.springframework.context.annotation.Bean; @@ -56,6 +57,7 @@ import org.springframework.scheduling.annotation.EnableAsync; DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class, JpaRepositoriesAutoConfiguration.class, SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class }) +@EnableConfigurationProperties @EnableAsync public class Application extends SpringBootServletInitializer { diff --git a/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java b/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java index 8caac0c7..5c68f00b 100644 --- a/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java +++ b/src/main/java/org/onap/clamp/clds/client/req/policy/PolicyClient.java @@ -26,7 +26,6 @@ package org.onap.clamp.clds.client.req.policy; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; -import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -38,6 +37,7 @@ import java.util.UUID; import javax.ws.rs.BadRequestException; import org.onap.clamp.clds.config.ClampProperties; +import org.onap.clamp.clds.config.PolicyConfiguration; import org.onap.clamp.clds.exception.policy.PolicyClientException; import org.onap.clamp.clds.model.properties.ModelProperties; import org.onap.clamp.clds.util.LoggingUtils; @@ -55,7 +55,6 @@ import org.onap.policy.api.PolicyParameters; import org.onap.policy.api.PolicyType; import org.onap.policy.api.PushPolicyParameters; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Component; @@ -71,12 +70,12 @@ public class PolicyClient { protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); protected static final String POLICY_MSTYPE_PROPERTY_NAME = "policy.ms.type"; protected static final String POLICY_ONAPNAME_PROPERTY_NAME = "policy.onap.name"; - @Value("${clamp.config.files.cldsPolicyConfig:'classpath:/clds/clds-policy-config.properties'}") - protected String cldsPolicyConfigFile; @Autowired protected ApplicationContext appContext; @Autowired protected ClampProperties refProp; + @Autowired + private PolicyConfiguration policyConfiguration; /** * Perform BRMS policy type. @@ -353,9 +352,7 @@ public class PolicyClient { private PolicyEngine getPolicyEngine() { PolicyEngine policyEngine; try { - policyEngine = new PolicyEngine(appContext.getResource(cldsPolicyConfigFile).getFile().getAbsolutePath()); - } catch (IOException e1) { - throw new PolicyClientException("Exception when opening policy config file", e1); + policyEngine = new PolicyEngine(policyConfiguration.getProperties()); } catch (PolicyEngineException e) { throw new PolicyClientException("Exception when creating a new policy engine", e); } diff --git a/src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java b/src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java new file mode 100644 index 00000000..53899d5e --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/config/PolicyConfiguration.java @@ -0,0 +1,128 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 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============================================ + * =================================================================== + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.clamp.clds.config; + +import java.util.Properties; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@ConfigurationProperties(prefix = "clamp.config.policy") +public class PolicyConfiguration { + + public static final String PDP_URL1 = "PDP_URL1"; + public static final String PDP_URL2 = "PDP_URL2"; + public static final String PAP_URL = "PAP_URL"; + public static final String NOTIFICATION_TYPE = "NOTIFICATION_TYPE"; + public static final String NOTIFICATION_UEB_SERVERS = "NOTIFICATION_UEB_SERVERS"; + public static final String CLIENT_ID = "CLIENT_ID"; + public static final String CLIENT_KEY = "CLIENT_KEY"; + public static final String ENVIRONMENT = "ENVIRONMENT"; + private String pdpUrl1; + private String pdpUrl2; + private String papUrl; + private String notificationType; + private String notificationUebServers; + private String clientId; + private String clientKey; + private String policyEnvironment; + + public String getPdpUrl1() { + return pdpUrl1; + } + + public void setPdpUrl1(String pdpUrl1) { + this.pdpUrl1 = pdpUrl1; + } + + public String getPdpUrl2() { + return pdpUrl2; + } + + public void setPdpUrl2(String pdpUrl2) { + this.pdpUrl2 = pdpUrl2; + } + + public String getPapUrl() { + return papUrl; + } + + public void setPapUrl(String papUrl) { + this.papUrl = papUrl; + } + + public String getNotificationType() { + return notificationType; + } + + public void setNotificationType(String notificationType) { + this.notificationType = notificationType; + } + + public String getNotificationUebServers() { + return notificationUebServers; + } + + public void setNotificationUebServers(String notificationUebServers) { + this.notificationUebServers = notificationUebServers; + } + + public String getClientId() { + return clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public String getClientKey() { + return clientKey; + } + + public void setClientKey(String clientKey) { + this.clientKey = clientKey; + } + + public String getPolicyEnvironment() { + return policyEnvironment; + } + + public void setPolicyEnvironment(String environment) { + this.policyEnvironment = environment; + } + + public Properties getProperties() { + Properties prop = new Properties(); + prop.put(PDP_URL1, pdpUrl1); + prop.put(PDP_URL2, pdpUrl2); + prop.put(PAP_URL, papUrl); + prop.put(NOTIFICATION_TYPE, notificationType); + prop.put(NOTIFICATION_UEB_SERVERS, notificationUebServers); + prop.put(CLIENT_ID, clientId); + prop.put(CLIENT_KEY, clientKey); + prop.put(ENVIRONMENT, policyEnvironment); + return prop; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 5f6a0d65..1411b8b2 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -124,6 +124,21 @@ clamp.config.sdc.template=classpath:/clds/templates/sdc-template.json clamp.config.sdc.decode.service_ids=classpath:/clds/templates/sdc-decode-service_ids.json
#
#
+# Configuration Settings for Policy Engine Components
+clamp.config.policy.pdpUrl1=http://vm1.policy.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123
+clamp.config.policy.pdpUrl2=http://vm1.policy.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123
+clamp.config.policy.papUrl=http://vm1.policy.simpledemo.onap.org:8081/pap/ , testpap, alpha123
+clamp.config.policy.notificationType=websocket
+clamp.config.policy.notificationUebServers=localhost
+clamp.config.policy.notificationTopic=
+clamp.config.policy.clientId=myclientid
+# base64 encoding
+
+clamp.config.policy.clientKey=5CE79532B3A2CB4D132FC0C04BF916A7
+#DEVL for development
+#TEST for Test environments
+#PROD for prod environments
+clamp.config.policy.policyEnvironment=TEST
# General Policy request properties
#
clamp.config.policy.onap.name=DCAE
@@ -203,4 +218,4 @@ clamp.config.security.permission.type.cl.event=permission-type-cl-event clamp.config.security.permission.type.filter.vf=permission-type-filter-vf
clamp.config.security.permission.type.template=permission-type-template
#This one indicates the type of instances (dev|prod|perf...), this must be set accordingly in clds-users.properties
-clamp.config.security.permission.instance=dev
\ No newline at end of file +clamp.config.security.permission.instance=dev
diff --git a/src/main/resources/clds/clds-policy-config.properties b/src/main/resources/clds/clds-policy-config.properties deleted file mode 100644 index 54b92772..00000000 --- a/src/main/resources/clds/clds-policy-config.properties +++ /dev/null @@ -1,37 +0,0 @@ -### -# ============LICENSE_START======================================================= -# ONAP CLAMP -# ================================================================================ -# Copyright (C) 2017 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============================================ -# =================================================================== -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -### - -# Configuration Settings for Policy Engine Components -PDP_URL1=http://vm1.policy.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123 -PDP_URL2=http://vm1.policy.simpledemo.onap.org:8081/pdp/ , testpdp, alpha123 -NOTIFICATION_TYPE=websocket -NOTIFICATION_UEB_SERVERS=localhost -NOTIFICATION_TOPIC= -CLIENT_ID=myclientid -# base64 encoding -#CLIENT_KEY=ChlakDuk -CLIENT_KEY=5CE79532B3A2CB4D132FC0C04BF916A7 -#DEVL for development -#TEST for Test environments -#PROD for prod environments -ENVIRONMENT=TEST
\ No newline at end of file diff --git a/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java b/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java index 71cd9f6b..c7f0f287 100644 --- a/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/PolicyClientItCase.java @@ -23,6 +23,8 @@ package org.onap.clamp.clds.it; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.IOException; @@ -37,6 +39,7 @@ import org.onap.clamp.clds.client.req.policy.OperationalPolicyReq; import org.onap.clamp.clds.client.req.policy.PolicyClient; import org.onap.clamp.clds.client.req.tca.TcaRequestFormatter; import org.onap.clamp.clds.config.ClampProperties; +import org.onap.clamp.clds.config.PolicyConfiguration; import org.onap.clamp.clds.model.CldsEvent; import org.onap.clamp.clds.model.properties.ModelProperties; import org.onap.clamp.clds.model.properties.Policy; @@ -57,6 +60,8 @@ import org.springframework.test.context.junit4.SpringRunner; public class PolicyClientItCase { @Autowired + private PolicyConfiguration policyConfiguration; + @Autowired private ClampProperties refProp; @Autowired protected PolicyClient policyClient; @@ -144,4 +149,30 @@ public class PolicyClientItCase { TimeUnit.SECONDS.sleep(20); deleteTcaPolicy(CldsEvent.ACTION_DELETE); } + + @Test + public void testPolicyConfiguration() { + assertNotNull(policyConfiguration.getPdpUrl1()); + assertNotNull(policyConfiguration.getPdpUrl2()); + assertNotNull(policyConfiguration.getPapUrl()); + assertNotNull(policyConfiguration.getPolicyEnvironment()); + assertNotNull(policyConfiguration.getClientId()); + assertNotNull(policyConfiguration.getClientKey()); + assertNotNull(policyConfiguration.getNotificationType()); + assertNotNull(policyConfiguration.getNotificationUebServers()); + assertEquals(8, policyConfiguration.getProperties().size()); + assertTrue(((String) policyConfiguration.getProperties().get(PolicyConfiguration.PDP_URL1)) + .contains("/pdp/ , testpdp, alpha123")); + assertTrue(((String) policyConfiguration.getProperties().get(PolicyConfiguration.PDP_URL2)) + .contains("/pdp/ , testpdp, alpha123")); + assertTrue(((String) policyConfiguration.getProperties().get(PolicyConfiguration.PAP_URL)) + .contains("/pap/ , testpap, alpha123")); + assertEquals("websocket", policyConfiguration.getProperties().get(PolicyConfiguration.NOTIFICATION_TYPE)); + assertEquals("localhost", + policyConfiguration.getProperties().get(PolicyConfiguration.NOTIFICATION_UEB_SERVERS)); + assertEquals("myclientid", policyConfiguration.getProperties().get(PolicyConfiguration.CLIENT_ID)); + assertEquals("5CE79532B3A2CB4D132FC0C04BF916A7", + policyConfiguration.getProperties().get(PolicyConfiguration.CLIENT_KEY)); + assertEquals("DEVL", policyConfiguration.getProperties().get(PolicyConfiguration.ENVIRONMENT)); + } } diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 37f9bd7e..676c5b9a 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -124,6 +124,20 @@ clamp.config.sdc.template=classpath:/clds/templates/sdc-template.json clamp.config.sdc.decode.service_ids=classpath:/clds/templates/sdc-decode-service_ids.json
#
#
+# Configuration Settings for Policy Engine Components
+clamp.config.policy.pdpUrl1=http://localhost:${docker.http-cache.port.host}/pdp/ , testpdp, alpha123
+clamp.config.policy.pdpUrl2=http://localhost:${docker.http-cache.port.host}/pdp/ , testpdp, alpha123
+clamp.config.policy.papUrl=http://localhost:${docker.http-cache.port.host}/pap/ , testpap, alpha123
+clamp.config.policy.notificationType=websocket
+clamp.config.policy.notificationUebServers=localhost
+clamp.config.policy.notificationTopic=
+clamp.config.policy.clientId=myclientid
+# base64 encoding
+clamp.config.policy.clientKey=5CE79532B3A2CB4D132FC0C04BF916A7
+#DEVL for development
+#TEST for Test environments
+#PROD for prod environments
+clamp.config.policy.policyEnvironment=DEVL
# General Policy request properties
#
clamp.config.policy.onap.name=DCAE
diff --git a/src/test/resources/clds/clds-policy-config.properties b/src/test/resources/clds/clds-policy-config.properties deleted file mode 100644 index 892cdda0..00000000 --- a/src/test/resources/clds/clds-policy-config.properties +++ /dev/null @@ -1,37 +0,0 @@ -### -# ============LICENSE_START======================================================= -# ONAP CLAMP -# ================================================================================ -# Copyright (C) 2017 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============================================ -# =================================================================== -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -### - -# Configuration Settings for Policy Engine Components -PDP_URL1=https://localhost:8081/pdp/ , testpdp, alpha123 -PDP_URL2=https://localhost:8081/pdp/ , testpdp, alpha456 -PAP_URL=https://localhost:8081/pap/ , testpap, alpha123 -NOTIFICATION_TYPE=websocket -NOTIFICATION_UEB_SERVERS=localhost - -CLIENT_ID=myclientid -# base64 encoding -CLIENT_KEY=ChlakDuk -#DEVL for development -#TEST for Test environments -#PROD for prod environments -ENVIRONMENT=DEVL |