Merge pull request #2883 from leigh-johnson/2858_2859_2761

Consolidate Job Detail >  Host Events filter/search requests
This commit is contained in:
Leigh Johnson 2016-07-09 01:03:32 -04:00 committed by GitHub
commit 53e9ca0ffb

View File

@ -18,93 +18,49 @@
$scope.search = function(){
Wait('start');
if ($scope.searchStr === undefined){
return;
}
//http://docs.ansible.com/ansible-tower/latest/html/towerapi/intro.html#filtering
// SELECT WHERE host_name LIKE str OR WHERE play LIKE str OR WHERE task LIKE str AND host_name NOT ""
// selecting non-empty host_name fields prevents us from displaying non-runner events, like playbook_on_task_start
JobDetailService.getRelatedJobEvents($stateParams.id, {
or__host_name__icontains: $scope.searchStr,
or__play__icontains: $scope.searchStr,
or__task__icontains: $scope.searchStr,
not__host_name: "" ,
page_size: $scope.pageSize})
.success(function(res){
$scope.results = res.results;
Wait('stop');
});
var params = {
host_name: $scope.hostName,
};
if ($scope.searchStr && $scope.searchStr !== ''){
params.or__play__icontains = $scope.searchStr;
params.or__task__icontains = $scope.searchStr;
}
switch($scope.activeFilter){
case 'skipped':
params.event = 'runner_on_skipped';
break;
case 'unreachable':
params.event = 'runner_on_unreachable';
break;
case 'ok':
params.event = 'runner_on_ok';
break;
case 'failed':
params.failed = true;
break;
case 'changed':
params.changed = true;
break;
default:
break;
}
JobDetailService.getRelatedJobEvents($stateParams.id, params)
.success(function(res){
$scope.results = res.results;
Wait('stop');
});
};
$scope.filters = ['all', 'changed', 'failed', 'ok', 'unreachable', 'skipped'];
var filter = function(filter){
Wait('start');
if (filter === 'all'){
return JobDetailService.getRelatedJobEvents($stateParams.id, {
host_name: $stateParams.hostName,
page_size: $scope.pageSize})
.success(function(res){
$scope.results = res.results;
Wait('stop');
});
}
// handle runner cases
if (filter === 'skipped'){
return JobDetailService.getRelatedJobEvents($stateParams.id, {
host_name: $stateParams.hostName,
event: 'runner_on_skipped'})
.success(function(res){
$scope.results = res.results;
Wait('stop');
});
}
if (filter === 'unreachable'){
return JobDetailService.getRelatedJobEvents($stateParams.id, {
host_name: $stateParams.hostName,
event: 'runner_on_unreachable'})
.success(function(res){
$scope.results = res.results;
Wait('stop');
});
}
if (filter === 'ok'){
return JobDetailService.getRelatedJobEvents($stateParams.id, {
host_name: $stateParams.hostName,
event__startswith: 'runner_on_ok'
})
.success(function(res){
$scope.results = res.results;
Wait('stop');
});
}
// handle convience properties .changed .failed
if (filter === 'changed'){
return JobDetailService.getRelatedJobEvents($stateParams.id, {
host_name: $stateParams.hostName,
changed: true})
.success(function(res){
$scope.results = res.results;
Wait('stop');
});
}
if (filter === 'failed'){
return JobDetailService.getRelatedJobEvents($stateParams.id, {
host_name: $stateParams.hostName,
failed: true,
event__startswith: 'runner_on_failed'
})
.success(function(res){
$scope.results = res.results;
Wait('stop');
});
}
};
// watch select2 for changes
$('.HostEvents-select').on("select2:select", function () {
filter($('.HostEvents-select').val());
$scope.activeFilter = $('.HostEvents-select').val();
$scope.search();
});
var init = function(){
@ -116,12 +72,9 @@
});
// process the filter if one was passed
if ($stateParams.filter){
Wait('start');
filter($stateParams.filter).success(function(res){
$scope.results = res.results;
Wait('stop');
$('#HostEvents').modal('show');
});
$scope.activeFilter = $stateParams.filter;
$scope.search();
$('#HostEvents').modal('show');
}
else{
$scope.results = hosts.data.results;