diff options
Diffstat (limited to 'src/test')
9 files changed, 394 insertions, 273 deletions
diff --git a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java index 40dffcd6b..fc5cb040f 100644 --- a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java +++ b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java @@ -57,8 +57,8 @@ import org.springframework.test.context.junit4.SpringRunner; public class CsarInstallerItCase { private static final String CSAR_ARTIFACT_NAME = "testArtifact.csar"; - private static final String SERVICE_UUID = "serviceUUID"; - private static final String RESOURCE1_UUID = "resource1UUID"; + private static final String INVARIANT_SERVICE_UUID = "4cc5b45a-1f63-4194-8100-cd8e14248c92"; + private static final String INVARIANT_RESOURCE1_UUID = "ba4d4b5d-f861-4155-886b-b1cdba5e0957"; @Autowired private CsarInstaller csarInstaller; @Autowired @@ -84,8 +84,8 @@ public class CsarInstallerItCase { Mockito.when(csarHelper.getServiceMetadata()).thenReturn(data); Mockito.when(csarHandler.getSdcCsarHelper()).thenReturn(csarHelper); Mockito.when(csarHandler.getBlueprintArtifactName()).thenReturn(CSAR_ARTIFACT_NAME); - Mockito.when(csarHandler.getBlueprintInvariantServiceUuid()).thenReturn(SERVICE_UUID); - Mockito.when(csarHandler.getBlueprintInvariantResourceUuid()).thenReturn(RESOURCE1_UUID); + Mockito.when(csarHandler.getBlueprintInvariantServiceUuid()).thenReturn(INVARIANT_SERVICE_UUID); + Mockito.when(csarHandler.getBlueprintInvariantResourceUuid()).thenReturn(INVARIANT_RESOURCE1_UUID); return csarHandler; } diff --git a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java index a7ab94c57..25daf01f3 100644 --- a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java +++ b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java @@ -28,6 +28,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.IOException; +import java.util.Arrays; import org.junit.Before; import org.junit.Test; @@ -84,6 +85,17 @@ public class ModelPropertiesTest { tca.getTcaItem().getTcaThresholds().get(1).getFieldPath()); assertEquals("GREATER_OR_EQUAL", tca.getTcaItem().getTcaThresholds().get(1).getOperator()); assertEquals(Integer.valueOf(123), tca.getTcaItem().getTcaThresholds().get(1).getThreshold()); + // Test global prop + assertEquals("vnfRecipe", prop.getGlobal().getActionSet()); + assertEquals("4cc5b45a-1f63-4194-8100-cd8e14248c92", prop.getGlobal().getService()); + assertTrue(Arrays.equals(new String[] { + "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad" + }, prop.getGlobal().getResourceVf().toArray())); + assertTrue(Arrays.equals(new String[] { + "SNDGCA64", "ALPRGAED", "LSLEILAA", "MDTWNJC1" + }, prop.getGlobal().getLocation().toArray())); + assertEquals("value1", prop.getGlobal().getDeployParameters().get("input1").asText()); + assertEquals("value2", prop.getGlobal().getDeployParameters().get("input2").asText()); } @Test @@ -108,6 +120,17 @@ public class ModelPropertiesTest { assertTrue(holmes.isFound()); assertEquals("configPolicy1", holmes.getConfigPolicyName()); assertEquals("blabla", holmes.getCorrelationLogic()); + // Test global prop + assertEquals("vnfRecipe", prop.getGlobal().getActionSet()); + assertEquals("4cc5b45a-1f63-4194-8100-cd8e14248c92", prop.getGlobal().getService()); + assertTrue(Arrays.equals(new String[] { + "f5213e3a-9191-4362-93b5-b67f8d770e44" + }, prop.getGlobal().getResourceVf().toArray())); + assertTrue(Arrays.equals(new String[] { + "SNDGCA64", "ALPRGAED", "LSLEILAA", "MDTWNJC1" + }, prop.getGlobal().getLocation().toArray())); + assertEquals("value1", prop.getGlobal().getDeployParameters().get("input1").asText()); + assertEquals("value2", prop.getGlobal().getDeployParameters().get("input2").asText()); } @Test diff --git a/src/test/resources/clds/templates/ui-alarm-default.json b/src/test/resources/clds/templates/ui-alarm-default.json index 0d0835981..c851e6cdd 100644 --- a/src/test/resources/clds/templates/ui-alarm-default.json +++ b/src/test/resources/clds/templates/ui-alarm-default.json @@ -267,7 +267,7 @@ "jnxSpaceSNAProcessUp": "vDBE-EMS-Juniper: jnxSpaceSNAProcessUp", "jnxSpaceNodeDown": "vDBE-EMS-Juniper: jnxSpaceNodeDown", "jnxSpaceNodeUp": "vDBE-EMS-Juniper: jnxSpaceNodeUp", - " jnxSpaceNodeRemoval": "vDBE-EMS-Juniper: jnxSpaceNodeRemoval", + "jnxSpaceNodeRemoval": "vDBE-EMS-Juniper: jnxSpaceNodeRemoval", "jnxCmCfgChange": "vDBE-Juniper: jnxCmCfgChange", "jnxCmRescueChange": "vDBE-Juniper: jnxCmRescueChange", "jnxEventTrap": "vDBE-Juniper: jnxEventTrap", diff --git a/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json b/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json index 43fecc9ea..6ac97ec85 100644 --- a/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json +++ b/src/test/resources/example/model-properties/holmes/modelBpmnProperties.json @@ -1,109 +1,122 @@ { - "Holmes_0i4n2mm": [ - { - "name": "correlationalLogic", - "value": "blabla" - }, - { - "name": "configPolicyName", - "value": "configPolicy1" - } - ], - "Policy_0honxgv": { - "policy1": [ - { - "name": "pname", - "value": "policy1" - }, - { - "name": "pid", - "value": "0" - }, - { - "name": "timeout", - "value": "345" - }, - { - "policyConfigurations": [ - [ - { - "name": "maxRetries", - "value": [ - "3" - ] - }, - { - "name": "retryTimeLimit", - "value": [ - "180" - ] - }, - { - "name": "_id", - "value": [ - "dGLuNqg" - ] - }, - { - "name": "parentPolicy", - "value": [ - "" - ] - }, - { - "name": "targetResourceId", - "value": [ - "resourceid" - ] - } - ] - ] - } - ] - }, - "global": [ - { - "name": "actionSet", - "value": [ - "vnfRecipe" - ] - }, - { - "name": "vf", - "value": [ - "f5213e3a-9191-4362-93b5-b67f8d770e44" - ] - }, - { - "name": "location", - "value": [ - "SNDGCA64", - "ALPRGAED", - "LSLEILAA", - "MDTWNJC1" - ] - } - ], - "shared": { - "byService": { - "": { - "vf": { - "": "" - }, - "location": { - "": "" - }, - "alarmCondition": { - "": "" - } - } - }, - "byVf": { - "": { - "vfc": { - "": "" - } - } - } - } + "Holmes_0i4n2mm": [ + { + "name": "correlationalLogic", + "value": "blabla" + }, + { + "name": "configPolicyName", + "value": "configPolicy1" + } + ], + "Policy_0honxgv": { + "policy1": [ + { + "name": "pname", + "value": "policy1" + }, + { + "name": "pid", + "value": "0" + }, + { + "name": "timeout", + "value": "345" + }, + { + "policyConfigurations": [ + [ + { + "name": "maxRetries", + "value": [ + "3" + ] + }, + { + "name": "retryTimeLimit", + "value": [ + "180" + ] + }, + { + "name": "_id", + "value": [ + "dGLuNqg" + ] + }, + { + "name": "parentPolicy", + "value": [ + "" + ] + }, + { + "name": "targetResourceId", + "value": [ + "resourceid" + ] + } + ] + ] + } + ] + }, + "global": [ + { + "name": "actionSet", + "value": [ + "vnfRecipe" + ] + }, + { + "name": "service", + "value": [ + "4cc5b45a-1f63-4194-8100-cd8e14248c92" + ] + }, + { + "name": "vf", + "value": [ + "f5213e3a-9191-4362-93b5-b67f8d770e44" + ] + }, + { + "name": "location", + "value": [ + "SNDGCA64", + "ALPRGAED", + "LSLEILAA", + "MDTWNJC1" + ] + }, + { + "name": "deployParameters", + "value": { + "input1": "value1", + "input2": "value2" + } + } + ], + "shared": { + "byService": { + "": { + "vf": { + "": "" + }, + "location": { + "": "" + }, + "alarmCondition": { + "": "" + } + } + }, + "byVf": { + "": { + "vfc": { + "": "" + } + } + } + } } diff --git a/src/test/resources/example/model-properties/tca/modelBpmnProperties.json b/src/test/resources/example/model-properties/tca/modelBpmnProperties.json index 8e2780cda..ce0f317dd 100644 --- a/src/test/resources/example/model-properties/tca/modelBpmnProperties.json +++ b/src/test/resources/example/model-properties/tca/modelBpmnProperties.json @@ -1,145 +1,152 @@ { - "TCA_1jy9to4": { - "group1": [ - { - "name": "tname", - "value": "group1" - }, - { - "name": "tuuid", - "value": "f734f031-10aa-t8fb-330f-04dde2886325" - }, - { - "name": "tcaPolId", - "value": "policy1" - }, - { - "name": "eventName", - "value": "vFirewallBroadcastPackets" - }, - { - "name": "controlLoopSchemaType", - "value": "VNF" - }, - { - "serviceConfigurations": [ - [ - "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated", - "LESS_OR_EQUAL", - "123", - "ABATED" - ], - [ - "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta", - "GREATER_OR_EQUAL", - "123", - "ONSET" - ] - ] - } - ] - }, - "Policy_0honxgv": { - "policy1": [ - { - "name": "pname", - "value": "policy1" - }, - { - "name": "pid", - "value": "0" - }, - { - "name": "timeout", - "value": "345" - }, - { - "policyConfigurations": [ - [ - { - "name": "maxRetries", - "value": [ - "3" - ] - }, - { - "name": "retryTimeLimit", - "value": [ - "180" - ] - }, - { - "name": "_id", - "value": [ - "dGLuNqg" - ] - }, - { - "name": "parentPolicy", - "value": [ - "" - ] - }, - { - "name": "targetResourceId", - "value": [ - "resourceid" - ] - } - ] - ] - } - ] - }, - "global": [ - { - "name": "actionSet", - "value": [ - "vnfRecipe" - ] - }, - { - "name": "service", - "value": [ - "4cc5b45a-1f63-4194-8100-cd8e14248c92" - ] - }, - { - "name": "vf", - "value": [ - "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad" - ] - }, - { - "name": "location", - "value": [ - "SNDGCA64", - "ALPRGAED", - "LSLEILAA", - "MDTWNJC1" - ] - } - ], - "shared": { - "byService": { - "": { - "vf": { - "": "" - }, - "location": { - "": "" - }, - "alarmCondition": { - "": "" - } - } - }, - "byVf": { - "": { - "vfc": { - "": "" - } - } - } - } + "TCA_1jy9to4": { + "group1": [ + { + "name": "tname", + "value": "group1" + }, + { + "name": "tuuid", + "value": "f734f031-10aa-t8fb-330f-04dde2886325" + }, + { + "name": "tcaPolId", + "value": "policy1" + }, + { + "name": "eventName", + "value": "vFirewallBroadcastPackets" + }, + { + "name": "controlLoopSchemaType", + "value": "VNF" + }, + { + "serviceConfigurations": [ + [ + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated", + "LESS_OR_EQUAL", + "123", + "ABATED" + ], + [ + "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta", + "GREATER_OR_EQUAL", + "123", + "ONSET" + ] + ] + } + ] + }, + "Policy_0honxgv": { + "policy1": [ + { + "name": "pname", + "value": "policy1" + }, + { + "name": "pid", + "value": "0" + }, + { + "name": "timeout", + "value": "345" + }, + { + "policyConfigurations": [ + [ + { + "name": "maxRetries", + "value": [ + "3" + ] + }, + { + "name": "retryTimeLimit", + "value": [ + "180" + ] + }, + { + "name": "_id", + "value": [ + "dGLuNqg" + ] + }, + { + "name": "parentPolicy", + "value": [ + "" + ] + }, + { + "name": "targetResourceId", + "value": [ + "resourceid" + ] + } + ] + ] + } + ] + }, + "global": [ + { + "name": "actionSet", + "value": [ + "vnfRecipe" + ] + }, + { + "name": "service", + "value": [ + "4cc5b45a-1f63-4194-8100-cd8e14248c92" + ] + }, + { + "name": "vf", + "value": [ + "023a3f0d-1161-45ff-b4cf-8918a8ccf3ad" + ] + }, + { + "name": "location", + "value": [ + "SNDGCA64", + "ALPRGAED", + "LSLEILAA", + "MDTWNJC1" + ] + }, + { + "name": "deployParameters", + "value": { + "input1": "value1", + "input2": "value2" + } + } + ], + "shared": { + "byService": { + "": { + "vf": { + "": "" + }, + "location": { + "": "" + }, + "alarmCondition": { + "": "" + } + } + }, + "byVf": { + "": { + "vfc": { + "": "" + } + } + } + } } diff --git a/src/test/resources/http-cache/example/pdp/api/deletePolicy/.file b/src/test/resources/http-cache/example/pdp/api/deletePolicy/.file new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/src/test/resources/http-cache/example/pdp/api/deletePolicy/.file @@ -0,0 +1 @@ +[]
\ No newline at end of file diff --git a/src/test/resources/http-cache/example/pdp/api/deletePolicy/.header b/src/test/resources/http-cache/example/pdp/api/deletePolicy/.header new file mode 100644 index 000000000..6a280d972 --- /dev/null +++ b/src/test/resources/http-cache/example/pdp/api/deletePolicy/.header @@ -0,0 +1 @@ +{"Transfer-Encoding": "chunked", "Set-Cookie": "JSESSIONID=158qxkdtdobkd1umr3ikkgrmlx;Path=/", "Expires": "Thu, 01 Jan 1970 00:00:00 GMT", "Server": "Jetty(9.3.21.v20170918)", "Content-Type": "application/json", "X-ECOMP-RequestID": "e2ddb3c8-994f-47df-b4dc-097d4fb55c08"}
\ No newline at end of file diff --git a/src/test/resources/http-cache/start_http_cache.sh b/src/test/resources/http-cache/start_http_cache.sh index fe9e9911f..47c3cc87b 100755 --- a/src/test/resources/http-cache/start_http_cache.sh +++ b/src/test/resources/http-cache/start_http_cache.sh @@ -34,4 +34,4 @@ fi echo 'Installing requests packages for Python' pip install requests echo 'Executing the Http proxy in Cache mode only' -python third_party_proxy.py --port 8080 --root /usr/src/http-cache-app/data-cache +python third_party_proxy.py --port 8080 --root /usr/src/http-cache-app/data-cache --proxyaddress localhost:8085 diff --git a/src/test/resources/http-cache/third_party_proxy.py b/src/test/resources/http-cache/third_party_proxy.py index 72ea49587..29d34cc89 100755 --- a/src/test/resources/http-cache/third_party_proxy.py +++ b/src/test/resources/http-cache/third_party_proxy.py @@ -41,6 +41,7 @@ parser.add_argument("--root", "-r", default=tempfile.mkdtemp, type=str, help parser.add_argument("--proxy" , type=str, help="Url of the Act as a proxy. If not set, this script only uses the cache and will return a 404 if files aren't found") parser.add_argument("--port", "-P", type=int, default="8081", help="Port on which the proxy should listen to") parser.add_argument("--verbose", "-v", type=bool, help="Print more information in case of error") +parser.add_argument("--proxyaddress","-a", type=str, help="Address of this proxy, generally either third_party_proxy:8085 or localhost:8085 depending if started with docker-compose or not") options = parser.parse_args() @@ -49,6 +50,7 @@ HOST = options.proxy AUTH = (options.username, options.password) HEADERS = {'X-ECOMP-InstanceID':'CLAMP'} CACHE_ROOT = options.root +PROXY_ADDRESS=options.proxyaddress def signal_handler(signal_sent, frame): global httpd @@ -116,7 +118,17 @@ class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler): os.makedirs(cached_file, True) with open(cached_file_header, 'w') as f: - f.write("{\"Content-Length\": \"144\", \"Content-Type\": \"application/json\"}") + f.write("{\"Content-Length\": \"" + str(len(jsonGenerated)) + "\", \"Content-Type\": \"application/json\"}") + with open(cached_file_content, 'w') as f: + f.write(jsonGenerated) + elif self.path.startswith("/dcae-operationstatus"): + print "self.path start with /dcae-operationstatus, generating response json..." + jsonGenerated = "{\"operationType\": \"operationType1\", \"status\": \"succeeded\"}" + print "jsonGenerated: " + jsonGenerated + + os.makedirs(cached_file, True) + with open(cached_file_header, 'w') as f: + f.write("{\"Content-Length\": \"" + str(len(jsonGenerated)) + "\", \"Content-Type\": \"application/json\"}") with open(cached_file_content, 'w') as f: f.write(jsonGenerated) else: @@ -215,27 +227,91 @@ class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler): cached_file_header = "%s/.header" % (cached_file,) _file_available = os.path.exists(cached_file_content) - if not _file_available and not HOST: - print("No file corresponding in cache and no HOST specified: %s" % HOST) - self.send_response(404) - return "404 Not found" if not _file_available: - print("Request for data currently not present in cache: %s" % (cached_file,)) + if self.path.startswith("/dcae-deployments/"): + print "self.path start with /dcae-deployments/, generating response json..." + #jsondata = json.loads(self.data_string) + jsonGenerated = "{\"links\":{\"status\":\"http:\/\/" + PROXY_ADDRESS + "\/dcae-operationstatus\",\"test2\":\"test2\"}}" + print "jsonGenerated: " + jsonGenerated + + os.makedirs(cached_file, True) + with open(cached_file_header, 'w') as f: + f.write("{\"Content-Length\": \"" + str(len(jsonGenerated)) + "\", \"Content-Type\": \"application/json\"}") + with open(cached_file_content, 'w') as f: + f.write(jsonGenerated) + else: + if not HOST: + self.send_response(404) + return "404 Not found" + + print("Request for data currently not present in cache: %s" % (cached_file,)) + + url = '%s%s' % (HOST, self.path) + print("url: %s" % (url,)) + response = requests.put(url, data=self.data_string, headers=self.headers, stream=True) + + if response.status_code == 200: + self._write_cache(cached_file, cached_file_header, cached_file_content, response) + else: + print('Error when requesting file :') + print('Requested url : %s' % (url,)) + print('Status code : %s' % (response.status_code,)) + print('Content : %s' % (response.content,)) + self.send_response(response.status_code) + return response.content + else: + print("Request for data present in cache: %s" % (cached_file,)) + + self._send_content(cached_file_header, cached_file_content) - url = '%s%s' % (HOST, self.path) - print("url: %s" % (url,)) - response = requests.put(url, data=self.data_string, headers=self.headers, stream=True) - if response.status_code == 200: - self._write_cache(cached_file, cached_file_header, cached_file_content, response) + def do_DELETE(self): + print("\n\n\nGot a DELETE for %s " % self.path) + self.check_credentials() + print("self.headers:\n %s" % self.headers) + + cached_file = '%s/%s' % (CACHE_ROOT, self.path,) + print("Cached file name before escaping : %s" % cached_file) + cached_file = cached_file.replace('<','<').replace('>','>').replace('?','?').replace('*','*').replace('\\','*').replace(':',':').replace('|','|') + print("Cached file name after escaping (used for cache storage) : %s" % cached_file) + cached_file_content = "%s/.file" % (cached_file,) + cached_file_header = "%s/.header" % (cached_file,) + + _file_available = os.path.exists(cached_file_content) + + if not _file_available: + if self.path.startswith("/dcae-deployments/"): + print "self.path start with /dcae-deployments/, generating response json..." + #jsondata = json.loads(self.data_string) + jsonGenerated = "{\"links\":{\"status\":\"http:\/\/" + PROXY_ADDRESS + "\/dcae-operationstatus\",\"test2\":\"test2\"}}" + print "jsonGenerated: " + jsonGenerated + + os.makedirs(cached_file, True) + with open(cached_file_header, 'w') as f: + f.write("{\"Content-Length\": \"" + str(len(jsonGenerated)) + "\", \"Content-Type\": \"application/json\"}") + with open(cached_file_content, 'w') as f: + f.write(jsonGenerated) else: - print('Error when requesting file :') - print('Requested url : %s' % (url,)) - print('Status code : %s' % (response.status_code,)) - print('Content : %s' % (response.content,)) - self.send_response(response.status_code) - return response.content + if not HOST: + self.send_response(404) + return "404 Not found" + + print("Request for data currently not present in cache: %s" % (cached_file,)) + + url = '%s%s' % (HOST, self.path) + print("url: %s" % (url,)) + response = requests.put(url, data=self.data_string, headers=self.headers, stream=True) + + if response.status_code == 200: + self._write_cache(cached_file, cached_file_header, cached_file_content, response) + else: + print('Error when requesting file :') + print('Requested url : %s' % (url,)) + print('Status code : %s' % (response.status_code,)) + print('Content : %s' % (response.content,)) + self.send_response(response.status_code) + return response.content else: print("Request for data present in cache: %s" % (cached_file,)) |