![Andre Keedy](/assets/img/avatar_default.png)
- Add an API to upload a playbook - Add an API to run an ansible playbook on a rackHD node - fix new eslint errors - Add unit tests Change-Id: Ibe623c228c6ac13cab0f2726e267878bec1bdb6e Implements: blueprint shovel-deployment-capability
203 lines
8.7 KiB
JavaScript
203 lines
8.7 KiB
JavaScript
// Copyright 2015, EMC, Inc.
|
|
|
|
var should = require('should');
|
|
var sinon = require('sinon');
|
|
var monorail = require('./../../lib/api/monorail/monorail');
|
|
var Promise = require('bluebird');
|
|
var _ = require('underscore');
|
|
var client = require('./../../lib/api/client');
|
|
var Promise = require('bluebird');
|
|
Promise.promisifyAll(client);
|
|
|
|
describe('****Monorail Lib****',function(){
|
|
var rackhdNode = [{ workflows: [], autoDiscover: false, identifiers: ["2c:60:0c:83:f5:d1"], name: "2c:60:0c:83:f5:d1", sku: null, type: "compute", id: "5668b6ad8bee16a10989e4e5" }];
|
|
var catalogSource = [{ source: 'dmi', data: {'Memory Device': [{ Size: '1 GB' }, { Size: '1 GB' }],
|
|
'Processor Information': [{}, {}] }}, { source: 'lsscsi', data: [{ peripheralType: 'disk', size: '1GB' }] }];
|
|
var rackhdNode =[ { workflows: [], autoDiscover: false, identifiers: ["2c:60:0c:83:f5:d1"], name: "2c:60:0c:83:f5:d1", sku: null, type: "compute", id: "5668b6ad8bee16a10989e4e5" }];
|
|
var identifier = '123456789';
|
|
|
|
describe('monorail nodeDiskSize getNodeMemoryCpu', function () {
|
|
describe('monorail getNodeMemoryCpu', function () {
|
|
afterEach('teardown mocks', function () {
|
|
//monorail
|
|
monorail['get_catalog_data_by_source'].restore();
|
|
});
|
|
|
|
it('response should returns an integer with value equal to memory size 2000MB and cpus=2', function (done) {
|
|
sinon.stub(monorail, 'get_catalog_data_by_source').returns(Promise.resolve(JSON.stringify(catalogSource[0])));
|
|
return monorail.getNodeMemoryCpu(rackhdNode).
|
|
then(function (result) {
|
|
result.cpus.should.be.exactly(2);
|
|
result.memory.should.be.exactly(2000);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
describe('nodeDiskSize', function () {
|
|
beforeEach('set up mocks', function () {
|
|
});
|
|
|
|
afterEach('teardown mocks', function () {
|
|
//monorail
|
|
monorail['get_catalog_data_by_source'].restore();
|
|
});
|
|
it('response should returns an integer with value equal to disk size 1GB', function (done) {
|
|
//monorail
|
|
sinon.stub(monorail, 'get_catalog_data_by_source').returns(Promise.resolve(JSON.stringify(catalogSource[1])));
|
|
return monorail.nodeDiskSize(rackhdNode).
|
|
then(function (result) {
|
|
result.should.be.exactly(1);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('response should returns an integer with value equal to 0', function (done) {
|
|
//monorail
|
|
sinon.stub(monorail, 'get_catalog_data_by_source').returns(Promise.resolve(JSON.stringify({})));
|
|
return monorail.nodeDiskSize(rackhdNode).
|
|
then(function (result) {
|
|
result.should.be.exactly(0);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
describe('lookupCatalog', function () {
|
|
afterEach('teardown mocks', function () {
|
|
//monorail
|
|
monorail['get_catalog_data_by_source'].restore();
|
|
});
|
|
it('lookupCatalog response should be equal to true', function (done) {
|
|
sinon.stub(monorail, 'get_catalog_data_by_source').returns(Promise.resolve(JSON.stringify(catalogSource[0])));
|
|
return monorail.lookupCatalog(rackhdNode[0]).
|
|
then(function (result) {
|
|
JSON.parse(result).should.be.exactly(true);
|
|
done();
|
|
})
|
|
.catch(function (err) {
|
|
throw err;
|
|
})
|
|
});
|
|
it('lookupCatalog response should be equal to fasle if catalog does not have property data', function (done) {
|
|
sinon.stub(monorail, 'get_catalog_data_by_source').returns(Promise.resolve(JSON.stringify({})));
|
|
return monorail.lookupCatalog(rackhdNode[0]).
|
|
then(function (result) {
|
|
JSON.parse(result).should.be.exactly(false);
|
|
done();
|
|
})
|
|
.catch(function (err) {
|
|
throw err;
|
|
})
|
|
});
|
|
});
|
|
describe('monorail with client get/post/patch/delete returns data', function () {
|
|
beforeEach('set up mocks', function () {
|
|
var output = ({ data: 'monorail service' });
|
|
sinon.stub(client, 'GetAsync').returns(Promise.resolve(output));
|
|
sinon.stub(client, 'PostAsync').returns(Promise.resolve(output));
|
|
sinon.stub(client, 'PatchAsync').returns(Promise.resolve(output));
|
|
sinon.stub(client, 'PutAsync').returns(Promise.resolve(output));
|
|
sinon.stub(client, 'DeleteAsync').returns(Promise.resolve(output));
|
|
});
|
|
afterEach('teardown mocks', function () {
|
|
client['GetAsync'].restore();
|
|
client['PostAsync'].restore();
|
|
client['PatchAsync'].restore();
|
|
client['PutAsync'].restore();
|
|
client['DeleteAsync'].restore();
|
|
|
|
});
|
|
|
|
it('monorail.request_nodes_get return data from monorail', function (done) {
|
|
return monorail.request_nodes_get()
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.request_node_get return data from monorail', function (done) {
|
|
return monorail.request_node_get('123')
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.request_whitelist_set return data from monorail', function (done) {
|
|
return monorail.request_whitelist_set('123')
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.request_whitelist_del return data from monorail', function (done) {
|
|
return monorail.request_whitelist_del('123')
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.request_catalogs_get return data from monorail', function (done) {
|
|
return monorail.request_catalogs_get('123')
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.get_catalog_data_by_source return data from monorail', function (done) {
|
|
return monorail.get_catalog_data_by_source('123', 'bmc')
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.request_poller_get return data from monorail', function (done) {
|
|
return monorail.request_poller_get('123')
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.request_poller_data_get return data from monorail', function (done) {
|
|
return monorail.request_poller_data_get('123')
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.runWorkFlow return data from monorail', function (done) {
|
|
return monorail.runWorkFlow('123','Graph.Name',{})
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.getWorkFlowActive return data from monorail', function (done) {
|
|
return monorail.getWorkFlowActive('123')
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.deleteWorkFlowActive return data from monorail', function (done) {
|
|
return monorail.deleteWorkFlowActive('123')
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.createWorkflow return data from monorail', function (done) {
|
|
return monorail.createWorkflow({})
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
it('monorail.createTask return data from monorail', function (done) {
|
|
return monorail.createTask({})
|
|
.then(function (result) {
|
|
result.should.have.property('data');
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
}); |