UNPKG

modi-cli

Version:

Console application for provisioning, displaying or destroying virtual machines in MODI

94 lines (73 loc) 3.62 kB
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(); } }); }