diff options
author | Jorge Hernandez <jh1730@att.com> | 2017-09-07 00:07:32 -0500 |
---|---|---|
committer | Jorge Hernandez <jh1730@att.com> | 2017-09-07 00:22:38 -0500 |
commit | f6679d84b20e79e8f9753fbdea08ecd20b913e75 (patch) | |
tree | d8b001488ade0002828a8bb829c06f31500f289e /feature-test-transaction/src/test | |
parent | 40d0d77001e5a36e6fe799b9e1fbc26752c5c6f5 (diff) |
Support environment configurations
This enables PDP-D to have knowledge of any installation
property or else configured via OS environment variable
or as an environment file.
This allows the user to query or set via REST API of programmatically
through PolicyEngine any environment variable.
It also provides a means to make data globally available to all
drools applications.
For example:
http://localhost:9696/policy/pdp/engine/environment> get
HTTP/1.1 200 OK
Content-Length: 749
Content-Type: application/json
Date: Wed, 06 Sep 2017 23:53:57 GMT
Server: Jetty(9.3.14.v20161028)
{
"DCAE_SERVERS": "",
"DCAE_TOPIC": "",
"DMAAP_SERVERS": "",
"ENGINE_MANAGEMENT_HOST": "0.0.0.0",
"ENGINE_MANAGEMENT_PASSWORD": "",
"ENGINE_MANAGEMENT_PORT": "9696",
"ENGINE_MANAGEMENT_USER": "",
"HEALTHCHECK_PASSWORD": "",
"HEALTHCHECK_USER": "",
"JAVA_HOME": "/usr/lib/jvm/java-8-oracle",
"M2_HOME": "/usr/share/maven",
"PAP_HOST": "",
"PAP_PASSWORD": "",
"PAP_USERNAME": "",
"PDPD_CONFIGURATION_API_KEY": "",
"PDPD_CONFIGURATION_API_SECRET": "",
"PDPD_CONFIGURATION_CONSUMER_GROUP": "",
"PDPD_CONFIGURATION_CONSUMER_INSTANCE": "",
"PDPD_CONFIGURATION_PARTITION_KEY": "",
"PDPD_CONFIGURATION_SERVERS": "",
"PDPD_CONFIGURATION_TOPIC": "PDPD-CONFIGURATION",
"PDP_HOST": "",
"PDP_PASSWORD": "",
"PDP_USERNAME": "",
"POLICY_HOME": "/home/policy/snapshot",
"SQL_HOST": "",
"SQL_PASSWORD": "",
"SQL_USER": ""
}
policy@newton:~/snapshot/config$ echo -n "http://one.com/aai" | http --verbose PUT :9696/policy/pdp/engine/environment/AAI_URL Content-Type:text/plain Accept:text/plain
PUT /policy/pdp/engine/environment/AAI_URL HTTP/1.1
Accept: text/plain
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 18
Content-Type: text/plain
Host: localhost:9696
User-Agent: HTTPie/0.9.2
http://one.com/aai
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: text/plain
Date: Thu, 07 Sep 2017 00:05:05 GMT
Server: Jetty(9.3.14.v20161028)
policy@newton:~/snapshot/config$ echo -n "http://one.com/aai2" | http --verbose PUT :9696/policy/pdp/engine/environment/AAI_URL Content-Type:text/plain Accept:text/plain
PUT /policy/pdp/engine/environment/AAI_URL HTTP/1.1
Accept: text/plain
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 19
Content-Type: text/plain
Host: localhost:9696
User-Agent: HTTPie/0.9.2
http://one.com/aai2
HTTP/1.1 200 OK
Content-Length: 18
Content-Type: text/plain
Date: Thu, 07 Sep 2017 00:05:45 GMT
Server: Jetty(9.3.14.v20161028)
http://one.com/aai
policy@newton:~/snapshot/config$ http :9696/policy/pdp/engine/environment/AAI_URL
HTTP/1.1 200 OK
Content-Length: 19
Content-Type: application/json
Date: Thu, 07 Sep 2017 05:14:57 GMT
Server: Jetty(9.3.14.v20161028)
http://one.com/aai2
Change-Id: I1fcd610938af751977bb2db925b57b4e5b3f7ba4
Issue-ID: POLICY-162
Signed-off-by: Jorge Hernandez <jh1730@att.com>
Diffstat (limited to 'feature-test-transaction/src/test')
-rw-r--r-- | feature-test-transaction/src/test/java/org/onap/policy/drools/testtransaction/TestTransactionTest.java | 220 |
1 files changed, 109 insertions, 111 deletions
diff --git a/feature-test-transaction/src/test/java/org/onap/policy/drools/testtransaction/TestTransactionTest.java b/feature-test-transaction/src/test/java/org/onap/policy/drools/testtransaction/TestTransactionTest.java index 2a44e1c1..6c60c5ac 100644 --- a/feature-test-transaction/src/test/java/org/onap/policy/drools/testtransaction/TestTransactionTest.java +++ b/feature-test-transaction/src/test/java/org/onap/policy/drools/testtransaction/TestTransactionTest.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. @@ -40,113 +40,111 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestTransactionTest { - /** - * Test JUnit Controller Name - */ - public static final String TEST_CONTROLLER_NAME = "unnamed"; - /** - * Controller Configuration File - */ - public static final String TEST_CONTROLLER_FILE = TEST_CONTROLLER_NAME + "-controller.properties"; - - /** - * Controller Configuration Backup File - */ - public static final String TEST_CONTROLLER_FILE_BAK = TEST_CONTROLLER_NAME + "-controller.properties.bak"; - - - /** - * logger - */ - private static Logger logger = LoggerFactory.getLogger(TestTransactionTest.class); - - - - @BeforeClass - public static void startUp() throws IOException { - logger.info("enter"); - - cleanUpWorkingDir(); - - /* ensure presence of config directory */ - Path configDir = Paths.get(SystemPersistence.CONFIG_DIR_NAME); - if (Files.notExists(configDir)) - Files.createDirectories(configDir); - } - - @Test - public void registerUnregisterTest() { - Properties controllerProperties = new Properties(); - controllerProperties.put(PolicyProperties.PROPERTY_CONTROLLER_NAME, TEST_CONTROLLER_NAME); - PolicyController controller = PolicyEngine.manager.createPolicyController(TEST_CONTROLLER_NAME, controllerProperties); - Thread ttThread = null; - - TestTransaction.manager.register(controller); - assertNotNull(TestTransaction.manager); - - /* - * If the controller was successfully registered - * it will have a thread created. - */ - ttThread = getThread("tt-controller-task-" + TEST_CONTROLLER_NAME); - assertNotNull(ttThread); - - /* - * Unregistering the controller should - * terminate its TestTransaction thread - * if it hasn't already been terminated - */ - TestTransaction.manager.unregister(controller); - - /* - * Put this thread to sleep so the TestTransaction - * thread has enough time to terminate before - * we check. - */ - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - - } - ttThread = getThread("tt-controller-task-" + TEST_CONTROLLER_NAME); - assertEquals(null, ttThread); - - - } - - /* - * Returns thread object based on - * String name - */ - public Thread getThread(String threadName) { - - Set<Thread> threadSet = Thread.getAllStackTraces().keySet(); - for (Thread thread : threadSet) { - if (thread.getName().equals(threadName)) { - return thread; - } - - } - return null; - } - - /** - * clean up working directory - */ - protected static void cleanUpWorkingDir() { - Path testControllerPath = Paths.get(SystemPersistence.CONFIG_DIR_NAME, TEST_CONTROLLER_FILE); - try { - Files.deleteIfExists(testControllerPath); - } catch (Exception e) { - logger.info("Problem cleaning {}", testControllerPath, e); - } - - Path testControllerBakPath = Paths.get(SystemPersistence.CONFIG_DIR_NAME, TEST_CONTROLLER_FILE_BAK); - try { - Files.deleteIfExists(testControllerBakPath); - } catch (Exception e) { - logger.info("Problem cleaning {}", testControllerBakPath, e); - } - } - + /** + * Test JUnit Controller Name + */ + public static final String TEST_CONTROLLER_NAME = "unnamed"; + /** + * Controller Configuration File + */ + public static final String TEST_CONTROLLER_FILE = TEST_CONTROLLER_NAME + "-controller.properties"; + + /** + * Controller Configuration Backup File + */ + public static final String TEST_CONTROLLER_FILE_BAK = + TEST_CONTROLLER_NAME + "-controller.properties.bak"; + + + /** + * logger + */ + private static Logger logger = LoggerFactory.getLogger(TestTransactionTest.class); + + + + @BeforeClass + public static void startUp() throws IOException { + logger.info("enter"); + + cleanUpWorkingDir(); + + /* ensure presence of config directory */ + SystemPersistence.manager.setConfigurationDir(null); + } + + @Test + public void registerUnregisterTest() { + final Properties controllerProperties = new Properties(); + controllerProperties.put(PolicyProperties.PROPERTY_CONTROLLER_NAME, TEST_CONTROLLER_NAME); + final PolicyController controller = + PolicyEngine.manager.createPolicyController(TEST_CONTROLLER_NAME, controllerProperties); + Thread ttThread = null; + + TestTransaction.manager.register(controller); + assertNotNull(TestTransaction.manager); + + /* + * If the controller was successfully registered it will have a thread created. + */ + ttThread = this.getThread("tt-controller-task-" + TEST_CONTROLLER_NAME); + assertNotNull(ttThread); + + /* + * Unregistering the controller should terminate its TestTransaction thread if it hasn't already + * been terminated + */ + TestTransaction.manager.unregister(controller); + + /* + * Put this thread to sleep so the TestTransaction thread has enough time to terminate before we + * check. + */ + try { + Thread.sleep(2000); + } catch (final InterruptedException e) { + + } + ttThread = this.getThread("tt-controller-task-" + TEST_CONTROLLER_NAME); + assertEquals(null, ttThread); + + + } + + /* + * Returns thread object based on String name + */ + public Thread getThread(String threadName) { + + final Set<Thread> threadSet = Thread.getAllStackTraces().keySet(); + for (final Thread thread : threadSet) { + if (thread.getName().equals(threadName)) { + return thread; + } + + } + return null; + } + + /** + * clean up working directory + */ + protected static void cleanUpWorkingDir() { + final Path testControllerPath = Paths + .get(SystemPersistence.manager.getConfigurationPath().toString(), TEST_CONTROLLER_FILE); + try { + Files.deleteIfExists(testControllerPath); + } catch (final Exception e) { + logger.info("Problem cleaning {}", testControllerPath, e); + } + + final Path testControllerBakPath = Paths + .get(SystemPersistence.manager.getConfigurationPath().toString(), TEST_CONTROLLER_FILE_BAK); + try { + Files.deleteIfExists(testControllerBakPath); + } catch (final Exception e) { + logger.info("Problem cleaning {}", testControllerBakPath, e); + } + } + } |