mirror of
https://github.com/mmumshad/ansible-playable.git
synced 2025-03-09 23:38:54 +00:00
commit
ca436d8789
7 changed files with 38 additions and 49 deletions
|
@ -1,9 +1,12 @@
|
||||||
<div class="row" style="margin:20px;">
|
<div class="row" style="margin:20px;">
|
||||||
<div class="col-md-7">
|
<div class="col-md-7">
|
||||||
|
<div class="alert alert-danger" ng-if="!customModulesCtrl.projects.length"> You must create a project first !</div>
|
||||||
<div ng-show="!customModulesCtrl.showNewModuleForm.value">
|
<div ng-show="!customModulesCtrl.showNewModuleForm.value">
|
||||||
<div style="display: inline-block"><select class="form-control" ng-model="customModulesCtrl.selectedProjectID" ng-change="customModulesCtrl.projectSelected(customModulesCtrl.selectedProjectID)" ng-options="project._id as project.name for project in customModulesCtrl.projects">
|
<div style="display: inline-block">
|
||||||
</select></div>
|
<select class="form-control" ng-model="customModulesCtrl.selectedProjectID" ng-change="customModulesCtrl.projectSelected(customModulesCtrl.selectedProjectID)" ng-options="project._id as project.name for project in customModulesCtrl.projects">
|
||||||
<button class="btn btn-default" ng-click="customModulesCtrl.newModule()"> New Module <span class="fa fa-plus"></span> </button>
|
</select>
|
||||||
|
</div>
|
||||||
|
<button ng-disabled="!customModulesCtrl.selectedProjectID" class="btn btn-default" ng-click="customModulesCtrl.newModule()"> New Module <span class="fa fa-plus"></span> </button>
|
||||||
<button class="btn btn-default" ng-disabled="!customModulesCtrl.selectedModule.module.name || customModulesCtrl.loadingModuleCode" ng-click="customModulesCtrl.editModule()"> Edit Module <span class="fa fa-edit"></span> </button>
|
<button class="btn btn-default" ng-disabled="!customModulesCtrl.selectedModule.module.name || customModulesCtrl.loadingModuleCode" ng-click="customModulesCtrl.editModule()"> Edit Module <span class="fa fa-edit"></span> </button>
|
||||||
|
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<div style="padding:15px;">
|
<div style="padding:15px;">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
|
Project: {{ selectedProject.ansibleVersion }}
|
||||||
<select class="form-control" ng-model="selectedProjectID" ng-change="projectSelected(selectedProjectID)" ng-options="project._id as project.name for project in projects">
|
<select class="form-control" ng-model="selectedProjectID" ng-change="projectSelected(selectedProjectID)" ng-options="project._id as project.name for project in projects">
|
||||||
</select>
|
</select>
|
||||||
<div ng-if="selectedProject.ansibleVersion" class="hint">
|
<div ng-if="selectedProject.ansibleVersion" class="hint">
|
||||||
|
@ -8,7 +9,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<select class="form-control" ng-model="selectedInventoryFileName" ng-options="inventoryFile as inventoryFile for inventoryFile in inventoryFiles" ng-change="inventoryFileSelected(selectedInventoryFileName)">
|
<select ng-if="selectedProject.ansibleVersion" class="form-control" ng-model="selectedInventoryFileName" ng-options="inventoryFile as inventoryFile for inventoryFile in inventoryFiles" ng-change="inventoryFileSelected(selectedInventoryFileName)">
|
||||||
</select>
|
</select>
|
||||||
<div ng-if="selectedProject.ansibleVersion" class="hint">
|
<div ng-if="selectedProject.ansibleVersion" class="hint">
|
||||||
An inventory file to work with
|
An inventory file to work with
|
||||||
|
@ -16,7 +17,7 @@
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<div class="btn-group-vertical" style="width:100%" role="group" aria-label="...">
|
<div ng-if="selectedProject.ansibleVersion" class="btn-group-vertical" style="width:100%" role="group" aria-label="...">
|
||||||
<button class="btn btn-default" ui-sref="designer.inventory">Inventory</button>
|
<button class="btn btn-default" ui-sref="designer.inventory">Inventory</button>
|
||||||
<button class="btn btn-default" ui-sref="designer.playbook">Playbooks</button>
|
<button class="btn btn-default" ui-sref="designer.playbook">Playbooks</button>
|
||||||
<button class="btn btn-default" ui-sref="designer.roles">Roles</button>
|
<button class="btn btn-default" ui-sref="designer.roles">Roles</button>
|
||||||
|
@ -54,11 +55,17 @@
|
||||||
<div class="alert alert-danger" ng-if="err_msg">{{err_msg}}</div>
|
<div class="alert alert-danger" ng-if="err_msg">{{err_msg}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-10">
|
<div class="col-md-10" ng-if="selectedProject.ansibleVersion">
|
||||||
|
|
||||||
<div ui-view></div>
|
<div ui-view></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-10" ng-if="!selectedProject.ansibleVersion" style="text-align: center">
|
||||||
|
|
||||||
|
<h2>You must select a project first</h2>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -75,8 +75,15 @@ export class ProjectComponent {
|
||||||
* @param project
|
* @param project
|
||||||
*/
|
*/
|
||||||
projectCtrl.deleteProject = function(project){
|
projectCtrl.deleteProject = function(project){
|
||||||
|
projectCtrl.msg = "Deleting Project....";
|
||||||
|
projectCtrl.msg_status = "info";
|
||||||
project.$remove(function(){
|
project.$remove(function(){
|
||||||
projectCtrl.getProjects();
|
projectCtrl.getProjects();
|
||||||
|
projectCtrl.msg = "Project deleted successfully!";
|
||||||
|
projectCtrl.msg_status = "success";
|
||||||
|
}, function(errResponse){
|
||||||
|
projectCtrl.msg = "Project Deletion Failed. " + errResponse.data;
|
||||||
|
projectCtrl.msg_status = "danger";
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<div ng-if="projectCtrl.disableAnsibleHostAddition != 'true'">
|
<div ng-if="projectCtrl.disableAnsibleHostAddition != 'true'">
|
||||||
<p class="form-group">
|
<p class="form-group">
|
||||||
<label>Ansible Host</label>
|
<label>Ansible Host</label>
|
||||||
<input type="text" ng-model="projectCtrl.newProject.ansibleEngine.ansibleHost" class="form-control">
|
<input type="text" placeholder="localhost" ng-model="projectCtrl.newProject.ansibleEngine.ansibleHost" class="form-control">
|
||||||
<div class="hint">Ansible Controller system - A linux system with Ansible Installed on it. Required if you want to execute Ansible playbooks. You could skip this and still generate playbooks but not test them.</div>
|
<div class="hint">Ansible Controller system - A linux system with Ansible Installed on it. Required if you want to execute Ansible playbooks. You could skip this and still generate playbooks but not test them.</div>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ function handleError(res, statusCode) {
|
||||||
statusCode = statusCode || 500;
|
statusCode = statusCode || 500;
|
||||||
return function(err) {
|
return function(err) {
|
||||||
logger.error("Error = " + err);
|
logger.error("Error = " + err);
|
||||||
res.status(statusCode).send(err);
|
res.status(statusCode).send("Error = " + err);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -471,8 +471,8 @@ exports.deleteProjectFolder = function(project){
|
||||||
},(error_response) => {
|
},(error_response) => {
|
||||||
deferred.reject(new Error(error_response));
|
deferred.reject(new Error(error_response));
|
||||||
},ansibleEngine);
|
},ansibleEngine);
|
||||||
},() => {
|
},(err) => {
|
||||||
deferred.reject(new Error("Directory - " + project_folder +" does not exist."));
|
deferred.reject(new Error(err || "Directory - " + project_folder +" does not exist."));
|
||||||
},ansibleEngine);
|
},ansibleEngine);
|
||||||
|
|
||||||
return deferred.promise;
|
return deferred.promise;
|
||||||
|
|
|
@ -1,16 +1,10 @@
|
||||||
var Client = require('ssh2').Client;
|
const Client = require('ssh2').Client;
|
||||||
|
|
||||||
//var exec = require('ssh-exec');
|
const config = require('../../config/environment');
|
||||||
|
const logger = require('../logger/logger');
|
||||||
var config = require('../../config/environment');
|
|
||||||
|
|
||||||
exports.executeCommand = function(command, dataCallback,completeCallback,errorCallback, ansibleEngine, addScriptEndString){
|
exports.executeCommand = function(command, dataCallback,completeCallback,errorCallback, ansibleEngine, addScriptEndString){
|
||||||
|
|
||||||
/*var fs = require('filendir');
|
|
||||||
var time = new Date().getTime();
|
|
||||||
//var logFile = 'logs/deploy/' + logfilename;
|
|
||||||
var logFile = logfilelocation;*/
|
|
||||||
|
|
||||||
var conn = new Client();
|
var conn = new Client();
|
||||||
|
|
||||||
if(!ansibleEngine) ansibleEngine = {};
|
if(!ansibleEngine) ansibleEngine = {};
|
||||||
|
@ -32,22 +26,17 @@ exports.executeCommand = function(command, dataCallback,completeCallback,errorCa
|
||||||
scriptEngineConfig.privateKey = require('fs').readFileSync(config.scriptEngine.privateKey);
|
scriptEngineConfig.privateKey = require('fs').readFileSync(config.scriptEngine.privateKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
//fs.appendFile(logFile,command);
|
|
||||||
//console.log("Writing Command to log file =" + command)
|
|
||||||
/*fs.writeFile(logFile,"\n",{'flag':'a'});*/
|
|
||||||
|
|
||||||
conn.on('keyboard-interactive', function(name, instr, lang, prompts, cb) {
|
conn.on('keyboard-interactive', function(name, instr, lang, prompts, cb) {
|
||||||
cb([connHostPassword]);
|
cb([connHostPassword]);
|
||||||
});
|
});
|
||||||
|
|
||||||
conn.on('error', function(error) {
|
conn.on('error', function(error) {
|
||||||
console.log("SSH Connect Error" + error);
|
logger.error("SSH Connect Error" + error);
|
||||||
errorCallback(error);
|
errorCallback("SSH Connect Error" + error);
|
||||||
});
|
});
|
||||||
|
|
||||||
conn.on('ready', function() {
|
conn.on('ready', function() {
|
||||||
console.log('Client :: ready');
|
logger.info('Client :: ready');
|
||||||
console.log('Command :: ' + command);
|
|
||||||
conn.exec(command, function(err, stream) {
|
conn.exec(command, function(err, stream) {
|
||||||
var callBackSent = false;
|
var callBackSent = false;
|
||||||
|
|
||||||
|
@ -56,15 +45,12 @@ exports.executeCommand = function(command, dataCallback,completeCallback,errorCa
|
||||||
var error = false;
|
var error = false;
|
||||||
|
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log("Error=" + err);
|
logger.error("Error=" + err);
|
||||||
errorCallback(err);
|
errorCallback("Error=" + err);
|
||||||
|
|
||||||
}
|
}
|
||||||
stream.on('close', function(code, signal) {
|
stream.on('close', function(code, signal) {
|
||||||
console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
|
logger.info('Stream :: close :: code: ' + code + ', signal: ' + signal);
|
||||||
//completeCallback('Stream :: close :: code: ' + code + ', signal: ' + signal + '\nSCRIPT_FINISHED');
|
|
||||||
if(addScriptEndString){
|
if(addScriptEndString){
|
||||||
//dataCallback call is what writes to logfile
|
|
||||||
result_data += '\nSCRIPT_FINISHED';
|
result_data += '\nSCRIPT_FINISHED';
|
||||||
dataCallback(result_data);
|
dataCallback(result_data);
|
||||||
}
|
}
|
||||||
|
@ -76,33 +62,19 @@ exports.executeCommand = function(command, dataCallback,completeCallback,errorCa
|
||||||
}
|
}
|
||||||
conn.end();
|
conn.end();
|
||||||
}).on('data', function(data) {
|
}).on('data', function(data) {
|
||||||
console.log('STDOUT: ' + data);
|
logger.info('STDOUT: ' + data);
|
||||||
result_data += data;
|
result_data += data;
|
||||||
if(dataCallback){
|
if(dataCallback){
|
||||||
//dataCallback(data);
|
|
||||||
dataCallback(result_data);
|
dataCallback(result_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
}).stderr.on('data', function(data) {
|
}).stderr.on('data', function(data) {
|
||||||
console.log('STDERR: ' + data);
|
logger.error('STDERR: ' + data);
|
||||||
error_data += data;
|
error_data += data;
|
||||||
error = true;
|
error = true;
|
||||||
//errorCallback(data);
|
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}).connect(scriptEngineConfig);
|
}).connect(scriptEngineConfig);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//exports.executeCommand(null,'python3.4 /data/ehc-builder/scripts/vipr/python/ehc-builder/scripts/bin/main.py vro all --inputfile="configure_vmware_vro_Mumshad_Mannambeth_1468092975124.in" --logfile="configure_vmware_vro_Mumshad_Mannambeth_1468092975124"', 'logs/deploy/configure_vmware_vro_Mumshad_Mannambeth_1468092975124.log' )
|
|
||||||
/*
|
|
||||||
|
|
||||||
exports.executeCommand(null,'date','testfile.log',function(response){
|
|
||||||
console.log(response)
|
|
||||||
},function(response){
|
|
||||||
console.log(response)
|
|
||||||
},function(response){
|
|
||||||
console.log(response)
|
|
||||||
})
|
|
||||||
*/
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue