modi-cli
Version:
Console application for provisioning, displaying or destroying virtual machines in MODI
94 lines (73 loc) • 3.62 kB
JavaScript
module.exports = function(username, password, domain, provisioningRequestXml, machineName, saveCredentials)
{
console.log('Start requesting machine ' + machineName + '...');
var definitions = require('./Lib/Define.js');
var httpntlm = require('httpntlm');
var endProcess = require('./Lib/EndProcess.js');
var login = require('./Login.js');
httpntlm.post(
{
url: definitions.postUrl,
username: username,
password: password,
workstation: '',
domain: domain,
parameters: provisioningRequestXml,
//headers: 'Content-Type:application/xml',
contenttype: 'application/xml'
},
function (err, res) {
if (err) {
process.stdout.write('');//a control command.seems to cut some remaining text in the console
console.log('There was an error while requesting the machine.Error is ' + err);
endProcess();
}
if (res != undefined
&& res != null
&& res.body != null
&& res.body != undefined) {
if (res.body.indexOf(definitions.AccessDeniedMessage) > 0) {
process.stdout.write(''); //a control command.seems to cut some remaining text in the console
console.log(definitions.WrongCredentialsMessage);
//login and try again
var ProvisioningRequest = require('./ProvisioningRequest.js');
login.login(ProvisioningRequest, provisioningRequestXml, machineName, true);
}
else {
if (saveCredentials)
login.storeExistingLogin(domain, username, password);
var parseString = require('xml2js').parseString;
parseString(res.body, function pstringcallback(err, result) {
var provisioningResponse = null;
var noProvision = false;
var faultResponse = null;
var noFault = false;
try {
provisioningResponse = result.ProvisioningResponse.ResponseMessage[0];
}
catch (e) {
noProvision = true;
}
try {
faultResponse = result.Fault.Reason[0].Text[0]._;
}
catch (e) {
noFault = true;
}
if (!noProvision)
console.log(provisioningResponse);
if (!noFault)
console.log(faultResponse);
if (noFault && noProvision)
console.log(definitions.DefaultProvErrorMessage);
endProcess();
});
}
}
else {
process.stdout.write('');//a control command.seems to cut some remaining text in the console
console.log('An unknown error has occurred');
endProcess();
}
});
}