aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAlex Shatov <alexs@att.com>2019-02-05 13:03:53 -0500
committerAlex Shatov <alexs@att.com>2019-02-05 13:03:53 -0500
commit12c8d505c49b8b999660c52872a66071a9abc4c6 (patch)
tree131ee82476ec1c2d389d4c2db2198754111cc1f8 /tests
parentca00a932eae5e706f01519612fce1015c9ff9d58 (diff)
3.2.0/5.2.0 - fixed zip folder bug by admzip lib
- external version 3.2.0 - internal version 5.2.0 for code change - no API change - fixed the zip folder bug when sending the blueprint to cloudify = this bug was preventing the opening of the blueprint in cloudify UI because the folder record was not properly formatted by admzip lib 0.4.7 - upgraded adm-zip lib to the latest version 0.4.13 - unit tested the zipping of the blueprint file under subfolder without having the subfolder record in zip = manual unzip in linux shows proper subfolder/file structure = automatic unzip is not supported by the old ubuntu = would need upgrading the node.js/ubuntu and installing unzip for proper testing - see code comments in unit-test - zip file created by admzip unzips properly both in linux and in Windows = zip still has some header warnings, but not critical unit test coverage summary Statements : 80.94% ( 943/1165 ) Branches : 58.22% ( 294/505 ) Functions : 81.28% ( 165/203 ) Lines : 81.48% ( 933/1145 ) Change-Id: I48e44f025c21ef51de5a7422c8db9433581c787f Signed-off-by: Alex Shatov <alexs@att.com> Issue-ID: DCAEGEN2-855
Diffstat (limited to 'tests')
-rw-r--r--tests/mock_deployment_handler.js8
-rw-r--r--tests/test_dcae-deployments.js51
-rw-r--r--tests/test_policy.js7
3 files changed, 41 insertions, 25 deletions
diff --git a/tests/mock_deployment_handler.js b/tests/mock_deployment_handler.js
index 7407e55..5ed1985 100644
--- a/tests/mock_deployment_handler.js
+++ b/tests/mock_deployment_handler.js
@@ -1,5 +1,5 @@
/*
-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.
@@ -24,10 +24,12 @@ const nock = require('nock');
const utils = require('./mock_utils');
const MAIN_PATH = './../';
+const LOG_PATH = './log/';
const CONSUL_URL = 'http://consul:8500';
const MOCK_CLOUDIFY_MANAGER = "mock_cloudify_manager";
const CLOUDIFY_URL = "http://" + MOCK_CLOUDIFY_MANAGER + ":80";
+const CLOUDIFY_API = "/api/v2.1";
const MOCK_INVENTORY = "mock_inventory";
const INVENTORY_URL = "https://" + MOCK_INVENTORY + ":8080";
@@ -45,7 +47,7 @@ nock(CONSUL_URL).persist().get('/v1/catalog/service/cloudify_manager')
"NodeMeta":{},
"ServiceID":"cloudify_manager",
"ServiceName":"cloudify_manager",
- "ServiceTags":["http://" + MOCK_CLOUDIFY_MANAGER + "/api/v2.1"],
+ "ServiceTags":["http://" + MOCK_CLOUDIFY_MANAGER + CLOUDIFY_API],
"ServiceAddress": MOCK_CLOUDIFY_MANAGER,
"ServicePort":80,
"ServiceEnableTagOverride":false,
@@ -99,5 +101,7 @@ const run_dh = function() {
module.exports.INVENTORY_URL = INVENTORY_URL;
module.exports.CLOUDIFY_URL = CLOUDIFY_URL;
+module.exports.CLOUDIFY_API = CLOUDIFY_API;
+module.exports.LOG_PATH = LOG_PATH;
module.exports.add_tests = function(new_tests) {Array.prototype.push.apply(tests, new_tests);};
module.exports.run_dh = run_dh;
diff --git a/tests/test_dcae-deployments.js b/tests/test_dcae-deployments.js
index 7bf9831..2f3f7fd 100644
--- a/tests/test_dcae-deployments.js
+++ b/tests/test_dcae-deployments.js
@@ -1,5 +1,5 @@
/*
-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.
@@ -20,6 +20,8 @@ See the License for the specific language governing permissions and limitations
"use strict";
+const fs = require("fs");
+
const nock = require('nock')
, chai = require('chai')
, chaiHttp = require('chai-http')
@@ -354,7 +356,7 @@ function test_put_dcae_deployments_missing_input_error(dh_server) {
return "";
});
- nock(dh.CLOUDIFY_URL).put("/api/v2.1/blueprints/" + DEPLOYMENT_ID_JFL)
+ nock(dh.CLOUDIFY_URL).put(dh.CLOUDIFY_API + "/blueprints/" + DEPLOYMENT_ID_JFL)
.reply(200, function(uri, requestBody) {
console.log(action_timer.step, "put", dh.CLOUDIFY_URL, uri, JSON.stringify(requestBody));
return JSON.stringify(Cloudify.resp_blueprint(DEPLOYMENT_ID_JFL));
@@ -365,7 +367,7 @@ function test_put_dcae_deployments_missing_input_error(dh_server) {
"error_code": "missing_required_deployment_input_error",
"server_traceback": "Traceback blah..."
};
- nock(dh.CLOUDIFY_URL).put("/api/v2.1/deployments/" + DEPLOYMENT_ID_JFL)
+ nock(dh.CLOUDIFY_URL).put(dh.CLOUDIFY_API + "/deployments/" + DEPLOYMENT_ID_JFL)
.reply(400, function(uri) {
console.log(action_timer.step, "put", dh.CLOUDIFY_URL, uri);
return JSON.stringify(depl_rejected);
@@ -411,19 +413,19 @@ function test_put_dcae_deployments_creation_failed(dh_server) {
return JSON.stringify(Inventory.resp_put_service(DEPLOYMENT_ID_JFL_1, INV_EXISTING_SERVICE_TYPE));
});
- nock(dh.CLOUDIFY_URL).put("/api/v2.1/blueprints/" + DEPLOYMENT_ID_JFL_1)
+ nock(dh.CLOUDIFY_URL).put(dh.CLOUDIFY_API + "/blueprints/" + DEPLOYMENT_ID_JFL_1)
.reply(200, function(uri, requestBody) {
console.log(action_timer.step, "put", dh.CLOUDIFY_URL, uri, JSON.stringify(requestBody));
return JSON.stringify(Cloudify.resp_blueprint(DEPLOYMENT_ID_JFL_1));
});
- nock(dh.CLOUDIFY_URL).put("/api/v2.1/deployments/" + DEPLOYMENT_ID_JFL_1)
+ nock(dh.CLOUDIFY_URL).put(dh.CLOUDIFY_API + "/deployments/" + DEPLOYMENT_ID_JFL_1)
.reply(201, function(uri, requestBody) {
console.log(action_timer.step, "put", dh.CLOUDIFY_URL, uri, JSON.stringify(requestBody));
return JSON.stringify(Cloudify.resp_deploy(DEPLOYMENT_ID_JFL_1, DEPLOYMENT_ID_JFL_1, message.inputs));
});
- nock(dh.CLOUDIFY_URL).get("/api/v2.1/executions?deployment_id=" + DEPLOYMENT_ID_JFL_1 + "&workflow_id=create_deployment_environment&_include=id,status")
+ nock(dh.CLOUDIFY_URL).get(dh.CLOUDIFY_API + "/executions?deployment_id=" + DEPLOYMENT_ID_JFL_1 + "&workflow_id=create_deployment_environment&_include=id,status")
.reply(200, function(uri) {
console.log(action_timer.step, "get", dh.CLOUDIFY_URL, uri);
return JSON.stringify(Cloudify.resp_dep_creation(DEPLOYMENT_ID_JFL_1, execution_id, "failed"));
@@ -471,37 +473,37 @@ function test_put_dcae_deployments_success(dh_server) {
return JSON.stringify(Inventory.resp_put_service(DEPLOYMENT_ID_JFL_1, INV_EXISTING_SERVICE_TYPE));
});
- nock(dh.CLOUDIFY_URL).put("/api/v2.1/blueprints/" + DEPLOYMENT_ID_JFL_1)
+ nock(dh.CLOUDIFY_URL).put(dh.CLOUDIFY_API + "/blueprints/" + DEPLOYMENT_ID_JFL_1)
.reply(200, function(uri, requestBody) {
console.log(action_timer.step, "put", dh.CLOUDIFY_URL, uri, JSON.stringify(requestBody));
return JSON.stringify(Cloudify.resp_blueprint(DEPLOYMENT_ID_JFL_1));
});
- nock(dh.CLOUDIFY_URL).put("/api/v2.1/deployments/" + DEPLOYMENT_ID_JFL_1)
+ nock(dh.CLOUDIFY_URL).put(dh.CLOUDIFY_API + "/deployments/" + DEPLOYMENT_ID_JFL_1)
.reply(201, function(uri, requestBody) {
console.log(action_timer.step, "put", dh.CLOUDIFY_URL, uri, JSON.stringify(requestBody));
return JSON.stringify(Cloudify.resp_deploy(DEPLOYMENT_ID_JFL_1, DEPLOYMENT_ID_JFL_1, message.inputs));
});
- nock(dh.CLOUDIFY_URL).get("/api/v2.1/executions?deployment_id=" + DEPLOYMENT_ID_JFL_1 + "&workflow_id=create_deployment_environment&_include=id,status")
+ nock(dh.CLOUDIFY_URL).get(dh.CLOUDIFY_API + "/executions?deployment_id=" + DEPLOYMENT_ID_JFL_1 + "&workflow_id=create_deployment_environment&_include=id,status")
.reply(200, function(uri) {
console.log(action_timer.step, "get", dh.CLOUDIFY_URL, uri);
return JSON.stringify(Cloudify.resp_dep_creation(DEPLOYMENT_ID_JFL_1, execution_id));
});
- nock(dh.CLOUDIFY_URL).post("/api/v2.1/executions")
+ nock(dh.CLOUDIFY_URL).post(dh.CLOUDIFY_API + "/executions")
.reply(201, function(uri, requestBody) {
console.log(action_timer.step, "post", dh.CLOUDIFY_URL, uri, JSON.stringify(requestBody));
return JSON.stringify(Cloudify.resp_execution(DEPLOYMENT_ID_JFL_1, DEPLOYMENT_ID_JFL_1, execution_id));
});
- nock(dh.CLOUDIFY_URL).get("/api/v2.1/executions/" + execution_id)
+ nock(dh.CLOUDIFY_URL).get(dh.CLOUDIFY_API + "/executions/" + execution_id)
.reply(200, function(uri) {
console.log(action_timer.step, "get", dh.CLOUDIFY_URL, uri);
return JSON.stringify(Cloudify.resp_execution(DEPLOYMENT_ID_JFL_1, DEPLOYMENT_ID_JFL_1, execution_id, true));
});
- nock(dh.CLOUDIFY_URL).get("/api/v2.1/deployments/" + DEPLOYMENT_ID_JFL_1 + "/outputs")
+ nock(dh.CLOUDIFY_URL).get(dh.CLOUDIFY_API + "/deployments/" + DEPLOYMENT_ID_JFL_1 + "/outputs")
.reply(200, function(uri) {
console.log(action_timer.step, "get", dh.CLOUDIFY_URL, uri);
return JSON.stringify(Cloudify.resp_outputs(DEPLOYMENT_ID_JFL_1));
@@ -536,7 +538,7 @@ function test_get_dcae_deployments_operation(dh_server) {
it('Get operation execution succeeded', function() {
const action_timer = new utils.ActionTimer();
console.log(action_timer.step, test_txt);
- nock(dh.CLOUDIFY_URL).get("/api/v2.1/executions/" + execution_id)
+ nock(dh.CLOUDIFY_URL).get(dh.CLOUDIFY_API + "/executions/" + execution_id)
.reply(200, function(uri) {
console.log(action_timer.step, "get", dh.CLOUDIFY_URL, uri);
return JSON.stringify(Cloudify.resp_execution(DEPLOYMENT_ID_JFL_1, DEPLOYMENT_ID_JFL_1, execution_id, true));
@@ -600,7 +602,7 @@ function test_delete_dcae_deployments_success(dh_server) {
const action_timer = new utils.ActionTimer();
console.log(action_timer.step, test_txt);
- nock(dh.CLOUDIFY_URL).post("/api/v2.1/executions")
+ nock(dh.CLOUDIFY_URL).post(dh.CLOUDIFY_API + "/executions")
.reply(201, function(uri, requestBody) {
console.log(action_timer.step, "post", dh.CLOUDIFY_URL, uri, JSON.stringify(requestBody));
return JSON.stringify(Cloudify.resp_execution(DEPLOYMENT_ID_JFL_1, DEPLOYMENT_ID_JFL_1,
@@ -613,20 +615,20 @@ function test_delete_dcae_deployments_success(dh_server) {
return "";
});
- nock(dh.CLOUDIFY_URL).get("/api/v2.1/executions/" + execution_id)
+ nock(dh.CLOUDIFY_URL).get(dh.CLOUDIFY_API + "/executions/" + execution_id)
.reply(200, function(uri) {
console.log(action_timer.step, "get", dh.CLOUDIFY_URL, uri);
return JSON.stringify(Cloudify.resp_execution(DEPLOYMENT_ID_JFL_1, DEPLOYMENT_ID_JFL_1,
execution_id, true, workflow_id));
});
- nock(dh.CLOUDIFY_URL).delete("/api/v2.1/deployments/" + DEPLOYMENT_ID_JFL_1)
+ nock(dh.CLOUDIFY_URL).delete(dh.CLOUDIFY_API + "/deployments/" + DEPLOYMENT_ID_JFL_1)
.reply(201, function(uri) {
console.log(action_timer.step, "delete", dh.CLOUDIFY_URL, uri);
return JSON.stringify(Cloudify.resp_deploy(DEPLOYMENT_ID_JFL_1, DEPLOYMENT_ID_JFL_1));
});
- nock(dh.CLOUDIFY_URL).delete("/api/v2.1/blueprints/" + DEPLOYMENT_ID_JFL_1)
+ nock(dh.CLOUDIFY_URL).delete(dh.CLOUDIFY_API + "/blueprints/" + DEPLOYMENT_ID_JFL_1)
.reply(200, function(uri) {
console.log(action_timer.step, "delete", dh.CLOUDIFY_URL, uri);
return JSON.stringify(Cloudify.resp_blueprint(DEPLOYMENT_ID_JFL_1));
@@ -667,10 +669,21 @@ function test_zipper(dh_server) {
for (var i=0; i< 100; i++) {
blueprint = blueprint + (i % 10);
try {
+ const zip_folder = "zip_blueprint_" + ('0' + i).substr(-2);
+ const zip_path = dh.LOG_PATH + zip_folder + ".zip";
+
const zip = new admzip();
- zip.addFile('work/', new Buffer(0));
- zip.addFile('work/blueprint.yaml', new Buffer(blueprint, 'utf8'));
+ // no need for separate folder entry like 'work/' in zip
+ // zip file created by admzip unzips properly in linux, but not in Windows :-(
+ zip.addFile(zip_folder + '/blueprint.yaml', Buffer.from(blueprint, 'utf8'));
const zip_buffer = zip.toBuffer();
+ fs.writeFileSync(zip_path, zip_buffer);
+
+ // gave up on unzipping in old ubuntu that fails to have unzip installed
+ // uncomment the next lines if you have unzip in os to properly test
+ // execSync('unzip ' + zip_folder + ".zip", {"cwd": dh.LOG_PATH});
+ // const bp_from_file = fs.readFileSync(dh.LOG_PATH + zip_folder + '/blueprint.yaml').toString('utf8');
+ // expect(bp_from_file).to.be.equal(blueprint);
success_blueprints.push(blueprint);
} catch (e) {
// TypeError
diff --git a/tests/test_policy.js b/tests/test_policy.js
index 32e5ed4..468ac2b 100644
--- a/tests/test_policy.js
+++ b/tests/test_policy.js
@@ -1,5 +1,5 @@
/*
-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.
@@ -52,9 +52,8 @@ const MONKEYED_POLICY_ID_5 = "DCAE_alex.Config_peach_5";
const MONKEYED_POLICY_ID_6 = "DCAE_alex.Config_peach_6";
const CLAMP_POLICY_ID = "CLAMP.Config_clamp_policy";
-const CFY_API = "/api/v2.1";
-const CFY_API_NODE_INSTANCES = CFY_API + "/node-instances";
-const CFY_API_EXECUTIONS = CFY_API + "/executions";
+const CFY_API_NODE_INSTANCES = dh.CLOUDIFY_API + "/node-instances";
+const CFY_API_EXECUTIONS = dh.CLOUDIFY_API + "/executions";
const CFY_API_EXECUTION = CFY_API_EXECUTIONS + "/";
function create_policy_body(policy_id, policy_version=1, matching_conditions=null) {