mirror of
https://github.com/ansible/awx.git
synced 2026-05-15 13:27:40 -02:30
Adding socket object to route definitions
for stdout routes, as well as removing some old code
This commit is contained in:
@@ -15,8 +15,8 @@ export default {
|
|||||||
},
|
},
|
||||||
socket: {
|
socket: {
|
||||||
"groups":{
|
"groups":{
|
||||||
"jobs": ["status_changed", "summary"]
|
"jobs": ["status_changed", "summary"],
|
||||||
// "job_events": `[${stateParams.id}]`
|
"job_events": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
templateUrl: templateUrl('job-detail/job-detail'),
|
templateUrl: templateUrl('job-detail/job-detail'),
|
||||||
|
|||||||
@@ -9,6 +9,11 @@ export default {
|
|||||||
url: '/portal',
|
url: '/portal',
|
||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
label: "MY VIEW"
|
label: "MY VIEW"
|
||||||
|
},
|
||||||
|
socket: {
|
||||||
|
"groups":{
|
||||||
|
"jobs": ["status_changed"]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
views: {
|
views: {
|
||||||
// the empty parent ui-view
|
// the empty parent ui-view
|
||||||
|
|||||||
@@ -10,36 +10,31 @@ export default
|
|||||||
return {
|
return {
|
||||||
init: function() {
|
init: function() {
|
||||||
var self = this,
|
var self = this,
|
||||||
// token = Authorization.getToken(),
|
|
||||||
host = window.location.host,
|
host = window.location.host,
|
||||||
url = "ws://" + host + "/websocket/";
|
url = "ws://" + host + "/websocket/";
|
||||||
if (!$rootScope.sessionTimer || ($rootScope.sessionTimer && !$rootScope.sessionTimer.isExpired())) {
|
if (!$rootScope.sessionTimer || ($rootScope.sessionTimer && !$rootScope.sessionTimer.isExpired())) {
|
||||||
// We have a valid session token, so attempt socket connection
|
// We have a valid session token, so attempt socket connection
|
||||||
$log.debug('Socket connecting to: ' + url);
|
$log.debug('Socket connecting to: ' + url);
|
||||||
|
|
||||||
self.socket = new ReconnectingWebSocket(url, null, {
|
self.socket = new ReconnectingWebSocket(url, null, {
|
||||||
debug: true,
|
// debug: true,
|
||||||
timeoutInterval: 3000,
|
timeoutInterval: 3000,
|
||||||
maxReconnectAttempts: 10
|
maxReconnectAttempts: 10
|
||||||
});
|
});
|
||||||
|
|
||||||
self.socket.onopen = function () {
|
self.socket.onopen = function () {
|
||||||
console.log('websocket connected'); //log errors
|
$log.debug("Websocket connection opened");
|
||||||
$rootScope.socketPromise.resolve();
|
$rootScope.socketPromise.resolve();
|
||||||
};
|
};
|
||||||
//
|
|
||||||
// self.socket.onerror = function (error) {
|
self.socket.onerror = function (error) {
|
||||||
// console.log('Error Logged: ' + error); //log errors
|
$log.debug('Error Logged: ' + error); //log errors
|
||||||
// };
|
};
|
||||||
|
|
||||||
self.socket.onmessage = function (e) {
|
self.socket.onmessage = function (e) {
|
||||||
console.log('Received From Server: ' + e.data);
|
$log.debug('Received From Server: ' + e.data);
|
||||||
var data = JSON.parse(e.data);
|
var data = JSON.parse(e.data);
|
||||||
// {'groups':
|
|
||||||
// {'jobs': ['status_changed', 'summary'],
|
|
||||||
// 'schedules': ['changed'],
|
|
||||||
// 'ad_hoc_command_events': [ids,],
|
|
||||||
// 'job_events': [ids,],
|
|
||||||
// 'control': ['limit_reached'],
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
if(data.group_name==="jobs"){
|
if(data.group_name==="jobs"){
|
||||||
|
|
||||||
if (!('status' in data)){
|
if (!('status' in data)){
|
||||||
@@ -107,40 +102,6 @@ export default
|
|||||||
console.log(state.name);
|
console.log(state.name);
|
||||||
this.emit(JSON.stringify(state.socket));
|
this.emit(JSON.stringify(state.socket));
|
||||||
},
|
},
|
||||||
// subscribe: function(toState, toParams){
|
|
||||||
// if(toState.name === 'dashboard'){
|
|
||||||
// this.emit('{"groups":{"jobs": ["status_changed"]}}');
|
|
||||||
// console.log(toState.name);
|
|
||||||
// }
|
|
||||||
// if(toState.name === 'jobDetail'){
|
|
||||||
// this.emit(`{"groups":{"jobs": ["status_changed", "summary"] , "job_events":[${toParams.id}]}}`);
|
|
||||||
// console.log(toState.name);
|
|
||||||
// }
|
|
||||||
// if(toState.name === 'jobStdout'){
|
|
||||||
// this.emit('{"groups":{"jobs": ["status_changed"]}}');
|
|
||||||
// console.log(toState.name);
|
|
||||||
// }
|
|
||||||
// if(toState.name === 'jobs'){
|
|
||||||
// this.emit('{"groups":{"jobs": ["status_changed"] , "schedules": ["changed"]}}');
|
|
||||||
// console.log(toState.name);
|
|
||||||
// }
|
|
||||||
// if(toState.name === 'portalMode'){
|
|
||||||
// this.emit('{"groups":{"jobs": ["status_changed"]}}');
|
|
||||||
// console.log(toState.name);
|
|
||||||
// }
|
|
||||||
// if(toState.name === 'projects'){
|
|
||||||
// this.emit('{"groups":{"jobs": ["status_changed"]}}');
|
|
||||||
// console.log(toState.name);
|
|
||||||
// }
|
|
||||||
// if(toState.name === 'inventoryManage'){
|
|
||||||
// this.emit('{"groups":{"jobs": ["status_changed"]}}');
|
|
||||||
// console.log(toState.name);
|
|
||||||
// }
|
|
||||||
// if(toState.name === 'adHocJobStdout'){
|
|
||||||
// this.emit(`{"groups":{"jobs": ["status_changed"] , "ad_hoc_command_events": [${toParams.id}]}}`);
|
|
||||||
// console.log(toState.name);
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
checkStatus: function() {
|
checkStatus: function() {
|
||||||
|
|
||||||
function getSocketTip(status) {
|
function getSocketTip(status) {
|
||||||
@@ -176,22 +137,9 @@ export default
|
|||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
// on: function (eventName, callback) {
|
|
||||||
// var self = this;
|
|
||||||
// if(self){
|
|
||||||
// if(self.socket){
|
|
||||||
// // self.socket.onmessage(function (e) {
|
|
||||||
// // var args = arguments;
|
|
||||||
// // self.scope.$apply(function () {
|
|
||||||
// // callback.apply(self.socket, args);
|
|
||||||
// // });
|
|
||||||
// // });
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// },
|
|
||||||
emit: function (eventName, data, callback) {
|
emit: function (eventName, data, callback) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
$log.debug('Sent to Server: ' + data);
|
||||||
$rootScope.socketPromise.promise.then(function(){
|
$rootScope.socketPromise.promise.then(function(){
|
||||||
self.socket.send(eventName, data, function () {
|
self.socket.send(eventName, data, function () {
|
||||||
var args = arguments;
|
var args = arguments;
|
||||||
|
|||||||
@@ -6,14 +6,19 @@ export default function($stateProvider) {
|
|||||||
if(!state.resolve){
|
if(!state.resolve){
|
||||||
state.resolve = {};
|
state.resolve = {};
|
||||||
}
|
}
|
||||||
state.resolve.socket = ['SocketService', '$rootScope',
|
state.resolve.socket = ['SocketService', '$rootScope', '$stateParams',
|
||||||
function(SocketService, $rootScope) {
|
function(SocketService, $rootScope, $stateParams) {
|
||||||
// var self = this;
|
|
||||||
$rootScope.socketPromise.promise.then(function(){
|
$rootScope.socketPromise.promise.then(function(){
|
||||||
|
if(state.socket.groups.hasOwnProperty( "job_events")){
|
||||||
|
state.socket.groups.job_events = [$stateParams.id];
|
||||||
|
}
|
||||||
|
if(state.socket.groups.hasOwnProperty( "ad_hoc_command_events")){
|
||||||
|
state.socket.groups.job_events = [$stateParams.id];
|
||||||
|
}
|
||||||
SocketService.subscribe2(state);
|
SocketService.subscribe2(state);
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
}]
|
}];
|
||||||
},
|
},
|
||||||
|
|
||||||
addState: function(state) {
|
addState: function(state) {
|
||||||
|
|||||||
@@ -11,6 +11,12 @@ export default {
|
|||||||
route: '/ad_hoc_commands/:id',
|
route: '/ad_hoc_commands/:id',
|
||||||
templateUrl: templateUrl('standard-out/adhoc/standard-out-adhoc'),
|
templateUrl: templateUrl('standard-out/adhoc/standard-out-adhoc'),
|
||||||
controller: 'JobStdoutController',
|
controller: 'JobStdoutController',
|
||||||
|
socket: {
|
||||||
|
"groups":{
|
||||||
|
"jobs": ["status_changed"],
|
||||||
|
"ad_hoc_command_events": []
|
||||||
|
}
|
||||||
|
},
|
||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
parent: "jobs",
|
parent: "jobs",
|
||||||
label: "{{ job.module_name }}"
|
label: "{{ job.module_name }}"
|
||||||
|
|||||||
@@ -13,17 +13,16 @@ export default {
|
|||||||
route: '/inventory_sync/:id',
|
route: '/inventory_sync/:id',
|
||||||
templateUrl: templateUrl('standard-out/inventory-sync/standard-out-inventory-sync'),
|
templateUrl: templateUrl('standard-out/inventory-sync/standard-out-inventory-sync'),
|
||||||
controller: 'JobStdoutController',
|
controller: 'JobStdoutController',
|
||||||
|
socket: {
|
||||||
|
"groups":{
|
||||||
|
"jobs": ["status_changed"]
|
||||||
|
}
|
||||||
|
},
|
||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
parent: "jobs",
|
parent: "jobs",
|
||||||
label: "{{ inventory_source_name }}"
|
label: "{{ inventory_source_name }}"
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
jobType: 'inventory_updates'
|
jobType: 'inventory_updates'
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
inventorySyncSocket: [function() {
|
|
||||||
// TODO: determine whether or not we have socket support for inventory sync standard out
|
|
||||||
return true;
|
|
||||||
}]
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -11,17 +11,16 @@ export default {
|
|||||||
route: '/management_jobs/:id',
|
route: '/management_jobs/:id',
|
||||||
templateUrl: templateUrl('standard-out/management-jobs/standard-out-management-jobs'),
|
templateUrl: templateUrl('standard-out/management-jobs/standard-out-management-jobs'),
|
||||||
controller: 'JobStdoutController',
|
controller: 'JobStdoutController',
|
||||||
|
socket: {
|
||||||
|
"groups":{
|
||||||
|
"jobs": ["status_changed"]
|
||||||
|
}
|
||||||
|
},
|
||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
parent: "jobs",
|
parent: "jobs",
|
||||||
label: "{{ job.name }}"
|
label: "{{ job.name }}"
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
jobType: 'system_jobs'
|
jobType: 'system_jobs'
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
managementJobSocket: [function() {
|
|
||||||
// TODO: determine whether or not we have socket support for management job standard out
|
|
||||||
return true;
|
|
||||||
}]
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,13 +17,12 @@ export default {
|
|||||||
parent: "jobs",
|
parent: "jobs",
|
||||||
label: "{{ project_name }}"
|
label: "{{ project_name }}"
|
||||||
},
|
},
|
||||||
|
socket: {
|
||||||
|
"groups":{
|
||||||
|
"jobs": ["status_changed"]
|
||||||
|
}
|
||||||
|
},
|
||||||
data: {
|
data: {
|
||||||
jobType: 'project_updates'
|
jobType: 'project_updates'
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
scmUpdateSocket: [function() {
|
|
||||||
// TODO: determine whether or not we have socket support for scm update standard out
|
|
||||||
return true;
|
|
||||||
}]
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user