mirror of
https://github.com/ansible/awx.git
synced 2024-11-02 09:51:09 +03:00
More work on new Jobs page.
This commit is contained in:
parent
6d6e9e45a8
commit
6cd5552b6a
@ -91,7 +91,8 @@ angular.module('ansible', [
|
||||
'SchedulesListDefinition',
|
||||
'AngularScheduler',
|
||||
'Timezones',
|
||||
'SchedulesHelper'
|
||||
'SchedulesHelper',
|
||||
'QueuedJobsDefinition'
|
||||
])
|
||||
|
||||
.constant('AngularScheduler.partials', $basePath + 'lib/angular-scheduler/lib/')
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
function JobsList($scope, $compile, ClearScope, Breadcrumbs, LoadScope, RunningJobsList, CompletedJobsList) {
|
||||
function JobsList($scope, $compile, ClearScope, Breadcrumbs, LoadScope, RunningJobsList, CompletedJobsList, QueuedJobsList) {
|
||||
|
||||
ClearScope();
|
||||
|
||||
@ -25,7 +25,7 @@ function JobsList($scope, $compile, ClearScope, Breadcrumbs, LoadScope, RunningJ
|
||||
LoadScope({
|
||||
scope: completed_scope,
|
||||
list: CompletedJobsList,
|
||||
id: 'completed_jobs',
|
||||
id: 'completed-jobs',
|
||||
url: '/static/sample/data/jobs/completed/data.json'
|
||||
});
|
||||
|
||||
@ -33,13 +33,21 @@ function JobsList($scope, $compile, ClearScope, Breadcrumbs, LoadScope, RunningJ
|
||||
LoadScope({
|
||||
scope: running_scope,
|
||||
list: RunningJobsList,
|
||||
id: 'running_jobs',
|
||||
id: 'active-jobs',
|
||||
url: '/static/sample/data/jobs/running/data.json'
|
||||
});
|
||||
|
||||
queued_scope = $scope.$new();
|
||||
LoadScope({
|
||||
scope: queued_scope,
|
||||
list: QueuedJobsList,
|
||||
id: 'queued-jobs',
|
||||
url: '/static/sample/data/jobs/queued/data.json'
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
JobsList.$inject = ['$scope', '$compile', 'ClearScope', 'Breadcrumbs', 'LoadScope', 'RunningJobsList', 'CompletedJobsList'];
|
||||
JobsList.$inject = ['$scope', '$compile', 'ClearScope', 'Breadcrumbs', 'LoadScope', 'RunningJobsList', 'CompletedJobsList', 'QueuedJobsList'];
|
||||
|
||||
|
||||
|
||||
|
@ -23,7 +23,8 @@ angular.module('CompletedJobsDefinition', [])
|
||||
label: 'Job ID',
|
||||
key: true,
|
||||
desc: true,
|
||||
searchType: 'int'
|
||||
searchType: 'int',
|
||||
columnClass: 'col-lg-1 col-md-2 col-sm-2 col-xs-2'
|
||||
},
|
||||
inventory: {
|
||||
label: 'Inventory ID',
|
||||
@ -34,7 +35,8 @@ angular.module('CompletedJobsDefinition', [])
|
||||
label: 'Create On',
|
||||
link: false,
|
||||
searchable: false,
|
||||
filter: "date:'MM/dd HH:mm:ss'"
|
||||
filter: "date:'MM/dd/yy HH:mm:ss'",
|
||||
columnClass: "hidden-sm hidden-xs"
|
||||
},
|
||||
job_template: {
|
||||
label: 'Job Template',
|
||||
@ -42,7 +44,8 @@ angular.module('CompletedJobsDefinition', [])
|
||||
//ngHref: "{{ '/#/job_templates/?name=' + completed_job.summary_fields.job_template.name }}",
|
||||
ngHref:"{{ '/#/job_templates/' + completed_job.job_template }}",
|
||||
sourceModel: 'job_template',
|
||||
sourceField: 'name'
|
||||
sourceField: 'name',
|
||||
columnClass: 'col-lg-4 col-md-4 col-sm-4 col-xs-3'
|
||||
},
|
||||
failed: {
|
||||
label: 'Job failed?',
|
||||
|
130
awx/ui/static/js/lists/QueuedJobs.js
Normal file
130
awx/ui/static/js/lists/QueuedJobs.js
Normal file
@ -0,0 +1,130 @@
|
||||
/*********************************************
|
||||
* Copyright (c) 2014 AnsibleWorks, Inc.
|
||||
*
|
||||
* QueuedJobs.js
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
angular.module('QueuedJobsDefinition', [])
|
||||
.value( 'QueuedJobsList', {
|
||||
|
||||
name: 'queued_jobs',
|
||||
iterator: 'queued_job',
|
||||
editTitle: 'Queued Jobs',
|
||||
index: false,
|
||||
hover: true,
|
||||
well: false,
|
||||
|
||||
fields: {
|
||||
id: {
|
||||
label: 'Job ID',
|
||||
key: true,
|
||||
desc: true,
|
||||
searchType: 'int',
|
||||
columnClass: 'col-lg-1 col-md-2 col-sm-2 col-xs-2'
|
||||
},
|
||||
inventory: {
|
||||
label: 'Inventory ID',
|
||||
searchType: 'int',
|
||||
searchOnly: true
|
||||
},
|
||||
created: {
|
||||
label: 'Create On',
|
||||
link: false,
|
||||
searchable: false,
|
||||
filter: "date:'MM/dd/yy HH:mm:ss'",
|
||||
columnClass: 'hidden-sm hidden-xs'
|
||||
},
|
||||
job_template: {
|
||||
label: 'Job Template',
|
||||
ngBind: 'queued_job.summary_fields.job_template.name',
|
||||
//ngHref: "{{ '/#/job_templates/?name=' + queued_job.summary_fields.job_template.name }}",
|
||||
ngHref:"{{ '/#/job_templates/' + queued_job.job_template }}",
|
||||
sourceModel: 'job_template',
|
||||
sourceField: 'name',
|
||||
columnClass: 'col-lg-4 col-md-4 col-sm-4 col-xs-3'
|
||||
},
|
||||
failed: {
|
||||
label: 'Job failed?',
|
||||
searchSingleValue: true,
|
||||
searchType: 'boolean',
|
||||
searchValue: 'true',
|
||||
searchOnly: true,
|
||||
nosort: true
|
||||
},
|
||||
status: {
|
||||
label: 'Status',
|
||||
"class": 'job-{{ queued_job.status }}',
|
||||
searchType: 'select',
|
||||
linkTo: "{{ queued_job.statusLinkTo }}",
|
||||
searchOptions: [
|
||||
{ name: "new", value: "new" },
|
||||
{ name: "waiting", value: "waiting" },
|
||||
{ name: "pending", value: "pending" },
|
||||
{ name: "running", value: "running" },
|
||||
{ name: "successful", value: "successful" },
|
||||
{ name: "error", value: "error" },
|
||||
{ name: "failed", value: "failed" },
|
||||
{ name: "canceled", value: "canceled" }
|
||||
],
|
||||
badgeIcon: 'fa icon-job-{{ queued_job.status }}',
|
||||
badgePlacement: 'left',
|
||||
badgeToolTip: "{{ queued_job.statusBadgeToolTip }}",
|
||||
badgeTipPlacement: 'top',
|
||||
badgeNgHref: "{{ queued_job.statusLinkTo }}",
|
||||
awToolTip: "{{ queued_job.statusBadgeToolTip }}",
|
||||
dataPlacement: 'top'
|
||||
}
|
||||
},
|
||||
|
||||
actions: {
|
||||
refresh: {
|
||||
mode: 'all',
|
||||
awToolTip: "Refresh the page",
|
||||
ngClick: "refresh()"
|
||||
}
|
||||
},
|
||||
|
||||
fieldActions: {
|
||||
submit: {
|
||||
label: 'Relaunch',
|
||||
icon: 'icon-rocket',
|
||||
mode: 'all',
|
||||
ngClick: 'submitJob(queued_job.id, queued_job.summary_fields.job_template.name)',
|
||||
awToolTip: 'Start the job',
|
||||
dataPlacement: 'top'
|
||||
},
|
||||
cancel: {
|
||||
label: 'Stop',
|
||||
mode: 'all',
|
||||
ngClick: 'deleteJob(queued_job.id)',
|
||||
awToolTip: 'Cancel a running or pending job',
|
||||
ngShow: "queued_job.status == 'pending' || queued_job.status == 'running' || queued_job.status == 'waiting'",
|
||||
dataPlacement: 'top'
|
||||
},
|
||||
"delete": {
|
||||
label: 'Delete',
|
||||
mode: 'all',
|
||||
ngClick: 'deleteJob(queued_job.id)',
|
||||
awToolTip: 'Delete the job',
|
||||
ngShow: "queued_job.status != 'pending' && queued_job.status != 'running' && queued_job.status != 'waiting'",
|
||||
dataPlacement: 'top'
|
||||
},
|
||||
dropdown: {
|
||||
type: 'DropDown',
|
||||
label: 'View',
|
||||
icon: 'fa-search-plus',
|
||||
'class': 'btn-default btn-xs',
|
||||
options: [
|
||||
{ ngClick: 'editJob(queued_job.id, queued_job.summary_fields.job_template.name)', label: 'Status' },
|
||||
{ ngClick: 'viewEvents(queued_job.id, queued_job.summary_fields.job_template.name)', label: 'Events',
|
||||
ngHide: "queued_job.status == 'new'" },
|
||||
{ ngClick: 'viewSummary(queued_job.id, queued_job.summary_fields.job_template.name)', label: 'Host Summary',
|
||||
ngHide: "queued_job.status == 'new'" }
|
||||
]
|
||||
}
|
||||
}
|
||||
});
|
@ -23,7 +23,8 @@ angular.module('RunningJobsDefinition', [])
|
||||
label: 'Job ID',
|
||||
key: true,
|
||||
desc: true,
|
||||
searchType: 'int'
|
||||
searchType: 'int',
|
||||
columnClass: 'col-lg-1 col-md-2 col-sm-2 col-xs-2'
|
||||
},
|
||||
inventory: {
|
||||
label: 'Inventory ID',
|
||||
@ -34,7 +35,8 @@ angular.module('RunningJobsDefinition', [])
|
||||
label: 'Create On',
|
||||
link: false,
|
||||
searchable: false,
|
||||
filter: "date:'MM/dd HH:mm:ss'"
|
||||
filter: "date:'MM/dd/yy HH:mm:ss'",
|
||||
columnClass: 'hidden-sm hidden-xs'
|
||||
},
|
||||
job_template: {
|
||||
label: 'Job Template',
|
||||
@ -42,7 +44,8 @@ angular.module('RunningJobsDefinition', [])
|
||||
//ngHref: "{{ '/#/job_templates/?name=' + running_job.summary_fields.job_template.name }}",
|
||||
ngHref:"{{ '/#/job_templates/' + running_job.job_template }}",
|
||||
sourceModel: 'job_template',
|
||||
sourceField: 'name'
|
||||
sourceField: 'name',
|
||||
columnClass: 'col-lg-4 col-md-4 col-sm-4 col-xs-3'
|
||||
},
|
||||
failed: {
|
||||
label: 'Job failed?',
|
||||
|
@ -997,8 +997,7 @@ input[type="checkbox"].checkbox-no-label {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.job_list {
|
||||
padding-right: 15px;
|
||||
.job-list {
|
||||
margin-top: 30px;
|
||||
.row {
|
||||
margin-left: 0;
|
||||
@ -1010,12 +1009,20 @@ input[type="checkbox"].checkbox-no-label {
|
||||
.title {
|
||||
padding-left: 8px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
thead >tr >th, tbody >tr >td, .page-row, .title {
|
||||
color: #666;
|
||||
}
|
||||
.pagination li a {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
#completed-jobs-container {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Inventory job status badge */
|
||||
.failures-true {
|
||||
background-color: @red;
|
||||
|
@ -6,21 +6,21 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="well">
|
||||
<div class="job_list">
|
||||
<div class="title"><a href="/#/jobs/completed">Completed</a></div>
|
||||
<div id="completed_jobs"></div>
|
||||
<div class="job-list" id="completed-jobs-container">
|
||||
<div class="title">Completed</div>
|
||||
<div id="completed-jobs"></div>
|
||||
</div>
|
||||
<div class="job_list">
|
||||
<div class="title"><a href="/#/jobs/running">Running</a></div>
|
||||
<div id="running_jobs"></div>
|
||||
<div class="job-list" id="active-jobs-container">
|
||||
<div class="title">Active</div>
|
||||
<div id="active-jobs"></div>
|
||||
</div>
|
||||
<div class="job_list">
|
||||
<div class="title"><a href="/#/jobs/queued">Queued</a></div>
|
||||
<div id="queued_jobs"></div>
|
||||
<div class="job-list" id="queued-jobs-container">
|
||||
<div class="title">Queued</div>
|
||||
<div id="queued-jobs"></div>
|
||||
</div>
|
||||
<div class="job_list">
|
||||
<div class="title"><a href="/#/jobs/scheduled">Scheduled</a></div>
|
||||
<div id="scheduled_jobs"></div>
|
||||
<div class="job-list" id="scheduled-jobs-container">
|
||||
<div class="title">Scheduled</div>
|
||||
<div id="scheduled-jobs"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
343
awx/ui/static/sample/data/jobs/queued/data.json
Normal file
343
awx/ui/static/sample/data/jobs/queued/data.json
Normal file
@ -0,0 +1,343 @@
|
||||
{
|
||||
"count": 3,
|
||||
"next": null,
|
||||
"previous": null,
|
||||
"results": [
|
||||
{
|
||||
"id": 30,
|
||||
"url": "/api/v1/jobs/1/",
|
||||
"related": {
|
||||
"job_host_summaries": "/api/v1/jobs/1/job_host_summaries/",
|
||||
"activity_stream": "/api/v1/jobs/1/activity_stream/",
|
||||
"job_events": "/api/v1/jobs/1/job_events/",
|
||||
"job_template": "/api/v1/job_templates/3/",
|
||||
"inventory": "/api/v1/inventories/4/",
|
||||
"project": "/api/v1/projects/1/",
|
||||
"credential": "/api/v1/credentials/8/",
|
||||
"start": "/api/v1/jobs/1/start/",
|
||||
"cancel": "/api/v1/jobs/1/cancel/"
|
||||
},
|
||||
"summary_fields": {
|
||||
"credential": {
|
||||
"name": "ssh",
|
||||
"description": "machine creds",
|
||||
"kind": "ssh",
|
||||
"cloud": false
|
||||
},
|
||||
"job_template": {
|
||||
"name": "Hello World",
|
||||
"description": ""
|
||||
},
|
||||
"project": {
|
||||
"name": "Examples",
|
||||
"description": "Ansible example project",
|
||||
"status": "successful"
|
||||
},
|
||||
"inventory": {
|
||||
"name": "Rackspace",
|
||||
"description": "",
|
||||
"has_active_failures": true,
|
||||
"total_hosts": 20,
|
||||
"hosts_with_active_failures": 20,
|
||||
"total_groups": 3,
|
||||
"groups_with_active_failures": 3,
|
||||
"has_inventory_sources": true,
|
||||
"total_inventory_sources": 1,
|
||||
"inventory_sources_with_failures": 1
|
||||
}
|
||||
},
|
||||
"created": "2014-03-06T16:51:04.557Z",
|
||||
"modified": "2014-03-06T16:51:14.272Z",
|
||||
"job_template": 3,
|
||||
"job_type": "playbook_run",
|
||||
"inventory": 4,
|
||||
"project": 1,
|
||||
"playbook": "lamp_simple/site.yml",
|
||||
"credential": 8,
|
||||
"cloud_credential": null,
|
||||
"forks": 0,
|
||||
"limit": "",
|
||||
"verbosity": 0,
|
||||
"extra_vars": "{\n\t\"variable1\": \"some value\",\n\t\"variable2\": \"another value\"\n}",
|
||||
"job_tags": "",
|
||||
"launch_type": "manual",
|
||||
"status": "pending",
|
||||
"failed": false,
|
||||
"result_traceback": "",
|
||||
"passwords_needed_to_start": [],
|
||||
"job_args": "[\"ssh-agent\", \"sh\", \"-c\", \"ssh-add /tmp/tmp5N437j && ansible-playbook -i /vagrant/ansible-commander/awx/plugins/inventory/awxrest.py -u vagrant -e '{\\\"variable1\\\": \\\"some value\\\", \\\"variable2\\\": \\\"another value\\\"}' lamp_simple/site.yml\"]",
|
||||
"job_cwd": "/vagrant/ansible-commander/awx/projects/_1__examples",
|
||||
"job_env": {
|
||||
"CELERY_LOG_REDIRECT_LEVEL": "WARNING",
|
||||
"ANSIBLE_PARAMIKO_RECORD_HOST_KEYS": "False",
|
||||
"DJANGO_LIVE_TEST_SERVER_ADDRESS": "localhost:9013-9199",
|
||||
"LESSOPEN": "|/usr/bin/lesspipe.sh %s",
|
||||
"_MP_FORK_LOGFILE_": "",
|
||||
"SSH_CLIENT": "10.0.2.2 61378 22",
|
||||
"CVS_RSH": "ssh",
|
||||
"LOGNAME": "vagrant",
|
||||
"USER": "vagrant",
|
||||
"HOME": "/home/vagrant",
|
||||
"PATH": "/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin",
|
||||
"REST_API_TOKEN": "**********************************",
|
||||
"CALLBACK_CONSUMER_PORT": "tcp://127.0.0.1:5557",
|
||||
"ANSIBLE_CALLBACK_PLUGINS": "/vagrant/ansible-commander/awx/plugins/callback",
|
||||
"LANG": "en_US.UTF-8",
|
||||
"HISTCONTROL": "ignoredups",
|
||||
"TERM": "xterm",
|
||||
"SHELL": "/bin/bash",
|
||||
"TZ": "America/New_York",
|
||||
"_MP_FORK_LOGFORMAT_": "[%(asctime)s: %(levelname)s/%(processName)s] %(message)s",
|
||||
"SHLVL": "1",
|
||||
"G_BROKEN_FILENAMES": "1",
|
||||
"HISTSIZE": "1000",
|
||||
"CELERY_LOG_FILE": "",
|
||||
"DJANGO_PROJECT_DIR": "/vagrant/ansible-commander",
|
||||
"ANSIBLE_HOST_KEY_CHECKING": "False",
|
||||
"JOB_ID": "1",
|
||||
"PYTHONPATH": "/vagrant/ansible-commander/awx/lib/site-packages:",
|
||||
"CELERY_LOADER": "djcelery.loaders.DjangoLoader",
|
||||
"_MP_FORK_LOGLEVEL_": "10",
|
||||
"ANSIBLE_NOCOLOR": "1",
|
||||
"JOB_CALLBACK_DEBUG": "1",
|
||||
"REST_API_URL": "http://127.0.0.1:8013",
|
||||
"_": "/usr/bin/nohup",
|
||||
"SSH_CONNECTION": "10.0.2.2 61378 10.0.2.15 22",
|
||||
"INVENTORY_HOSTVARS": "True",
|
||||
"SSH_TTY": "/dev/pts/0",
|
||||
"CELERY_LOG_LEVEL": "10",
|
||||
"HOSTNAME": "vagrant-centos64.vagrantup.com",
|
||||
"INVENTORY_ID": "4",
|
||||
"PWD": "/home/vagrant",
|
||||
"CELERY_LOG_REDIRECT": "1",
|
||||
"DJANGO_SETTINGS_MODULE": "awx.settings.development",
|
||||
"MAIL": "/var/spool/mail/vagrant",
|
||||
"LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 31,
|
||||
"url": "/api/v1/jobs/2/",
|
||||
"related": {
|
||||
"job_host_summaries": "/api/v1/jobs/2/job_host_summaries/",
|
||||
"activity_stream": "/api/v1/jobs/2/activity_stream/",
|
||||
"job_events": "/api/v1/jobs/2/job_events/",
|
||||
"job_template": "/api/v1/job_templates/3/",
|
||||
"inventory": "/api/v1/inventories/4/",
|
||||
"project": "/api/v1/projects/1/",
|
||||
"credential": "/api/v1/credentials/8/",
|
||||
"start": "/api/v1/jobs/2/start/",
|
||||
"cancel": "/api/v1/jobs/2/cancel/"
|
||||
},
|
||||
"summary_fields": {
|
||||
"credential": {
|
||||
"name": "ssh",
|
||||
"description": "machine creds",
|
||||
"kind": "ssh",
|
||||
"cloud": false
|
||||
},
|
||||
"job_template": {
|
||||
"name": "Hello World",
|
||||
"description": ""
|
||||
},
|
||||
"project": {
|
||||
"name": "Examples",
|
||||
"description": "Ansible example project",
|
||||
"status": "successful"
|
||||
},
|
||||
"inventory": {
|
||||
"name": "Rackspace",
|
||||
"description": "",
|
||||
"has_active_failures": true,
|
||||
"total_hosts": 20,
|
||||
"hosts_with_active_failures": 20,
|
||||
"total_groups": 3,
|
||||
"groups_with_active_failures": 3,
|
||||
"has_inventory_sources": true,
|
||||
"total_inventory_sources": 1,
|
||||
"inventory_sources_with_failures": 1
|
||||
}
|
||||
},
|
||||
"created": "2014-03-07T23:28:06.999Z",
|
||||
"modified": "2014-03-07T23:28:16.424Z",
|
||||
"job_template": 3,
|
||||
"job_type": "playbook_run",
|
||||
"inventory": 4,
|
||||
"project": 1,
|
||||
"playbook": "lamp_simple/site.yml",
|
||||
"credential": 8,
|
||||
"cloud_credential": null,
|
||||
"forks": 0,
|
||||
"limit": "",
|
||||
"verbosity": 0,
|
||||
"extra_vars": "{\n\t\"variable1\": \"some value\",\n\t\"variable2\": \"another value\"\n}",
|
||||
"job_tags": "",
|
||||
"launch_type": "manual",
|
||||
"status": "pending",
|
||||
"failed": false,
|
||||
"result_traceback": "",
|
||||
"passwords_needed_to_start": [],
|
||||
"job_args": "[\"ssh-agent\", \"sh\", \"-c\", \"ssh-add /tmp/tmpoeaDyc && ansible-playbook -i /vagrant/ansible-commander/awx/plugins/inventory/awxrest.py -u vagrant -e '{\\\"variable1\\\": \\\"some value\\\", \\\"variable2\\\": \\\"another value\\\"}' lamp_simple/site.yml\"]",
|
||||
"job_cwd": "/vagrant/ansible-commander/awx/projects/_1__examples",
|
||||
"job_env": {
|
||||
"CELERY_LOG_REDIRECT_LEVEL": "WARNING",
|
||||
"ANSIBLE_PARAMIKO_RECORD_HOST_KEYS": "False",
|
||||
"DJANGO_LIVE_TEST_SERVER_ADDRESS": "localhost:9013-9199",
|
||||
"LESSOPEN": "|/usr/bin/lesspipe.sh %s",
|
||||
"_MP_FORK_LOGFILE_": "",
|
||||
"SSH_CLIENT": "10.0.2.2 61378 22",
|
||||
"CVS_RSH": "ssh",
|
||||
"LOGNAME": "vagrant",
|
||||
"USER": "vagrant",
|
||||
"HOME": "/home/vagrant",
|
||||
"PATH": "/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin",
|
||||
"REST_API_TOKEN": "**********************************",
|
||||
"CALLBACK_CONSUMER_PORT": "tcp://127.0.0.1:5557",
|
||||
"ANSIBLE_CALLBACK_PLUGINS": "/vagrant/ansible-commander/awx/plugins/callback",
|
||||
"LANG": "en_US.UTF-8",
|
||||
"HISTCONTROL": "ignoredups",
|
||||
"TERM": "xterm",
|
||||
"SHELL": "/bin/bash",
|
||||
"TZ": "America/New_York",
|
||||
"_MP_FORK_LOGFORMAT_": "[%(asctime)s: %(levelname)s/%(processName)s] %(message)s",
|
||||
"SHLVL": "1",
|
||||
"G_BROKEN_FILENAMES": "1",
|
||||
"HISTSIZE": "1000",
|
||||
"CELERY_LOG_FILE": "",
|
||||
"DJANGO_PROJECT_DIR": "/vagrant/ansible-commander",
|
||||
"ANSIBLE_HOST_KEY_CHECKING": "False",
|
||||
"JOB_ID": "2",
|
||||
"PYTHONPATH": "/vagrant/ansible-commander/awx/lib/site-packages:",
|
||||
"CELERY_LOADER": "djcelery.loaders.DjangoLoader",
|
||||
"_MP_FORK_LOGLEVEL_": "10",
|
||||
"ANSIBLE_NOCOLOR": "1",
|
||||
"JOB_CALLBACK_DEBUG": "1",
|
||||
"REST_API_URL": "http://127.0.0.1:8013",
|
||||
"_": "/usr/bin/nohup",
|
||||
"SSH_CONNECTION": "10.0.2.2 61378 10.0.2.15 22",
|
||||
"INVENTORY_HOSTVARS": "True",
|
||||
"SSH_TTY": "/dev/pts/0",
|
||||
"CELERY_LOG_LEVEL": "10",
|
||||
"HOSTNAME": "vagrant-centos64.vagrantup.com",
|
||||
"INVENTORY_ID": "4",
|
||||
"PWD": "/home/vagrant",
|
||||
"CELERY_LOG_REDIRECT": "1",
|
||||
"DJANGO_SETTINGS_MODULE": "awx.settings.development",
|
||||
"MAIL": "/var/spool/mail/vagrant",
|
||||
"LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 32,
|
||||
"url": "/api/v1/jobs/2/",
|
||||
"related": {
|
||||
"job_host_summaries": "/api/v1/jobs/2/job_host_summaries/",
|
||||
"activity_stream": "/api/v1/jobs/2/activity_stream/",
|
||||
"job_events": "/api/v1/jobs/2/job_events/",
|
||||
"job_template": "/api/v1/job_templates/3/",
|
||||
"inventory": "/api/v1/inventories/4/",
|
||||
"project": "/api/v1/projects/1/",
|
||||
"credential": "/api/v1/credentials/8/",
|
||||
"start": "/api/v1/jobs/2/start/",
|
||||
"cancel": "/api/v1/jobs/2/cancel/"
|
||||
},
|
||||
"summary_fields": {
|
||||
"credential": {
|
||||
"name": "ssh",
|
||||
"description": "machine creds",
|
||||
"kind": "ssh",
|
||||
"cloud": false
|
||||
},
|
||||
"job_template": {
|
||||
"name": "Hello World",
|
||||
"description": ""
|
||||
},
|
||||
"project": {
|
||||
"name": "Examples",
|
||||
"description": "Ansible example project",
|
||||
"status": "successful"
|
||||
},
|
||||
"inventory": {
|
||||
"name": "Rackspace",
|
||||
"description": "",
|
||||
"has_active_failures": true,
|
||||
"total_hosts": 20,
|
||||
"hosts_with_active_failures": 20,
|
||||
"total_groups": 3,
|
||||
"groups_with_active_failures": 3,
|
||||
"has_inventory_sources": true,
|
||||
"total_inventory_sources": 1,
|
||||
"inventory_sources_with_failures": 1
|
||||
}
|
||||
},
|
||||
"created": "2014-03-07T23:28:06.999Z",
|
||||
"modified": "2014-03-07T23:28:16.424Z",
|
||||
"job_template": 3,
|
||||
"job_type": "playbook_run",
|
||||
"inventory": 4,
|
||||
"project": 1,
|
||||
"playbook": "lamp_simple/site.yml",
|
||||
"credential": 8,
|
||||
"cloud_credential": null,
|
||||
"forks": 0,
|
||||
"limit": "",
|
||||
"verbosity": 0,
|
||||
"extra_vars": "{\n\t\"variable1\": \"some value\",\n\t\"variable2\": \"another value\"\n}",
|
||||
"job_tags": "",
|
||||
"launch_type": "manual",
|
||||
"status": "new",
|
||||
"failed": false,
|
||||
"result_traceback": "",
|
||||
"passwords_needed_to_start": [],
|
||||
"job_args": "[\"ssh-agent\", \"sh\", \"-c\", \"ssh-add /tmp/tmpoeaDyc && ansible-playbook -i /vagrant/ansible-commander/awx/plugins/inventory/awxrest.py -u vagrant -e '{\\\"variable1\\\": \\\"some value\\\", \\\"variable2\\\": \\\"another value\\\"}' lamp_simple/site.yml\"]",
|
||||
"job_cwd": "/vagrant/ansible-commander/awx/projects/_1__examples",
|
||||
"job_env": {
|
||||
"CELERY_LOG_REDIRECT_LEVEL": "WARNING",
|
||||
"ANSIBLE_PARAMIKO_RECORD_HOST_KEYS": "False",
|
||||
"DJANGO_LIVE_TEST_SERVER_ADDRESS": "localhost:9013-9199",
|
||||
"LESSOPEN": "|/usr/bin/lesspipe.sh %s",
|
||||
"_MP_FORK_LOGFILE_": "",
|
||||
"SSH_CLIENT": "10.0.2.2 61378 22",
|
||||
"CVS_RSH": "ssh",
|
||||
"LOGNAME": "vagrant",
|
||||
"USER": "vagrant",
|
||||
"HOME": "/home/vagrant",
|
||||
"PATH": "/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin",
|
||||
"REST_API_TOKEN": "**********************************",
|
||||
"CALLBACK_CONSUMER_PORT": "tcp://127.0.0.1:5557",
|
||||
"ANSIBLE_CALLBACK_PLUGINS": "/vagrant/ansible-commander/awx/plugins/callback",
|
||||
"LANG": "en_US.UTF-8",
|
||||
"HISTCONTROL": "ignoredups",
|
||||
"TERM": "xterm",
|
||||
"SHELL": "/bin/bash",
|
||||
"TZ": "America/New_York",
|
||||
"_MP_FORK_LOGFORMAT_": "[%(asctime)s: %(levelname)s/%(processName)s] %(message)s",
|
||||
"SHLVL": "1",
|
||||
"G_BROKEN_FILENAMES": "1",
|
||||
"HISTSIZE": "1000",
|
||||
"CELERY_LOG_FILE": "",
|
||||
"DJANGO_PROJECT_DIR": "/vagrant/ansible-commander",
|
||||
"ANSIBLE_HOST_KEY_CHECKING": "False",
|
||||
"JOB_ID": "2",
|
||||
"PYTHONPATH": "/vagrant/ansible-commander/awx/lib/site-packages:",
|
||||
"CELERY_LOADER": "djcelery.loaders.DjangoLoader",
|
||||
"_MP_FORK_LOGLEVEL_": "10",
|
||||
"ANSIBLE_NOCOLOR": "1",
|
||||
"JOB_CALLBACK_DEBUG": "1",
|
||||
"REST_API_URL": "http://127.0.0.1:8013",
|
||||
"_": "/usr/bin/nohup",
|
||||
"SSH_CONNECTION": "10.0.2.2 61378 10.0.2.15 22",
|
||||
"INVENTORY_HOSTVARS": "True",
|
||||
"SSH_TTY": "/dev/pts/0",
|
||||
"CELERY_LOG_LEVEL": "10",
|
||||
"HOSTNAME": "vagrant-centos64.vagrantup.com",
|
||||
"INVENTORY_ID": "4",
|
||||
"PWD": "/home/vagrant",
|
||||
"CELERY_LOG_REDIRECT": "1",
|
||||
"DJANGO_SETTINGS_MODULE": "awx.settings.development",
|
||||
"MAIL": "/var/spool/mail/vagrant",
|
||||
"LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"count": 2,
|
||||
"count": 6,
|
||||
"next": null,
|
||||
"previous": null,
|
||||
"results": [
|
||||
@ -61,8 +61,8 @@
|
||||
"extra_vars": "{\n\t\"variable1\": \"some value\",\n\t\"variable2\": \"another value\"\n}",
|
||||
"job_tags": "",
|
||||
"launch_type": "manual",
|
||||
"status": "failed",
|
||||
"failed": true,
|
||||
"status": "pending",
|
||||
"failed": false,
|
||||
"result_traceback": "",
|
||||
"passwords_needed_to_start": [],
|
||||
"job_args": "[\"ssh-agent\", \"sh\", \"-c\", \"ssh-add /tmp/tmp5N437j && ansible-playbook -i /vagrant/ansible-commander/awx/plugins/inventory/awxrest.py -u vagrant -e '{\\\"variable1\\\": \\\"some value\\\", \\\"variable2\\\": \\\"another value\\\"}' lamp_simple/site.yml\"]",
|
||||
@ -173,8 +173,8 @@
|
||||
"extra_vars": "{\n\t\"variable1\": \"some value\",\n\t\"variable2\": \"another value\"\n}",
|
||||
"job_tags": "",
|
||||
"launch_type": "manual",
|
||||
"status": "failed",
|
||||
"failed": true,
|
||||
"status": "running",
|
||||
"failed": false,
|
||||
"result_traceback": "",
|
||||
"passwords_needed_to_start": [],
|
||||
"job_args": "[\"ssh-agent\", \"sh\", \"-c\", \"ssh-add /tmp/tmpoeaDyc && ansible-playbook -i /vagrant/ansible-commander/awx/plugins/inventory/awxrest.py -u vagrant -e '{\\\"variable1\\\": \\\"some value\\\", \\\"variable2\\\": \\\"another value\\\"}' lamp_simple/site.yml\"]",
|
||||
@ -285,8 +285,8 @@
|
||||
"extra_vars": "{\n\t\"variable1\": \"some value\",\n\t\"variable2\": \"another value\"\n}",
|
||||
"job_tags": "",
|
||||
"launch_type": "manual",
|
||||
"status": "failed",
|
||||
"failed": true,
|
||||
"status": "running",
|
||||
"failed": false,
|
||||
"result_traceback": "",
|
||||
"passwords_needed_to_start": [],
|
||||
"job_args": "[\"ssh-agent\", \"sh\", \"-c\", \"ssh-add /tmp/tmpoeaDyc && ansible-playbook -i /vagrant/ansible-commander/awx/plugins/inventory/awxrest.py -u vagrant -e '{\\\"variable1\\\": \\\"some value\\\", \\\"variable2\\\": \\\"another value\\\"}' lamp_simple/site.yml\"]",
|
||||
@ -397,8 +397,8 @@
|
||||
"extra_vars": "{\n\t\"variable1\": \"some value\",\n\t\"variable2\": \"another value\"\n}",
|
||||
"job_tags": "",
|
||||
"launch_type": "manual",
|
||||
"status": "failed",
|
||||
"failed": true,
|
||||
"status": "new",
|
||||
"failed": false,
|
||||
"result_traceback": "",
|
||||
"passwords_needed_to_start": [],
|
||||
"job_args": "[\"ssh-agent\", \"sh\", \"-c\", \"ssh-add /tmp/tmpoeaDyc && ansible-playbook -i /vagrant/ansible-commander/awx/plugins/inventory/awxrest.py -u vagrant -e '{\\\"variable1\\\": \\\"some value\\\", \\\"variable2\\\": \\\"another value\\\"}' lamp_simple/site.yml\"]",
|
||||
@ -509,8 +509,8 @@
|
||||
"extra_vars": "{\n\t\"variable1\": \"some value\",\n\t\"variable2\": \"another value\"\n}",
|
||||
"job_tags": "",
|
||||
"launch_type": "manual",
|
||||
"status": "failed",
|
||||
"failed": true,
|
||||
"status": "running",
|
||||
"failed": false,
|
||||
"result_traceback": "",
|
||||
"passwords_needed_to_start": [],
|
||||
"job_args": "[\"ssh-agent\", \"sh\", \"-c\", \"ssh-add /tmp/tmpoeaDyc && ansible-playbook -i /vagrant/ansible-commander/awx/plugins/inventory/awxrest.py -u vagrant -e '{\\\"variable1\\\": \\\"some value\\\", \\\"variable2\\\": \\\"another value\\\"}' lamp_simple/site.yml\"]",
|
||||
@ -621,8 +621,8 @@
|
||||
"extra_vars": "{\n\t\"variable1\": \"some value\",\n\t\"variable2\": \"another value\"\n}",
|
||||
"job_tags": "",
|
||||
"launch_type": "manual",
|
||||
"status": "failed",
|
||||
"failed": true,
|
||||
"status": "running",
|
||||
"failed": false,
|
||||
"result_traceback": "",
|
||||
"passwords_needed_to_start": [],
|
||||
"job_args": "[\"ssh-agent\", \"sh\", \"-c\", \"ssh-add /tmp/tmpoeaDyc && ansible-playbook -i /vagrant/ansible-commander/awx/plugins/inventory/awxrest.py -u vagrant -e '{\\\"variable1\\\": \\\"some value\\\", \\\"variable2\\\": \\\"another value\\\"}' lamp_simple/site.yml\"]",
|
||||
|
@ -109,6 +109,7 @@
|
||||
<script src="{{ STATIC_URL }}js/lists/Projects.js"></script>
|
||||
<script src="{{ STATIC_URL }}js/lists/CompletedJobs.js"></script>
|
||||
<script src="{{ STATIC_URL }}js/lists/RunningJobs.js"></script>
|
||||
<script src="{{ STATIC_URL }}js/lists/QueuedJobs.js"></script>
|
||||
<script src="{{ STATIC_URL }}js/lists/JobEvents.js"></script>
|
||||
<script src="{{ STATIC_URL }}js/lists/JobHosts.js"></script>
|
||||
<script src="{{ STATIC_URL }}js/lists/Permissions.js"></script>
|
||||
|
Loading…
Reference in New Issue
Block a user