标签:jobs
/usr/lib/python2.6/site-packages/salt/runners/jobs.py
jobs runner模块用于方便管理正在运行或者处于活动状态的job
返回所有正在运行的job的报告
def active():
‘‘‘
Return a report on all actively running jobs from a job id centric
perspective
CLI Example:
.. code-block:: bash
salt-run jobs.active
‘‘‘
ret = {}
client = salt.client.get_local_client(__opts__[‘conf_file‘])
active_ = client.cmd(‘*‘, ‘saltutil.running‘, timeout=__opts__[‘timeout‘])
for minion, data in active_.items():
if not isinstance(data, list):
continue
for job in data:
if not job[‘jid‘] in ret:
ret[job[‘jid‘]] = _format_job_instance(job)
ret[job[‘jid‘]].update({‘Running‘: [{minion: job.get(‘pid‘, None)}], ‘Returned‘: []})
else:
ret[job[‘jid‘]][‘Running‘].append({minion: job[‘pid‘]})
mminion = salt.minion.MasterMinion(__opts__)
for jid in ret:
returner = _get_returner((__opts__[‘ext_job_cache‘], __opts__[‘master_job_cache‘]))
data = mminion.returners[‘{0}.get_jid‘.format(returner)](jid)
for minion in data:
if minion not in ret[jid][‘Returned‘]:
ret[jid][‘Returned‘].append(minion)
salt.output.display_output(ret, opts=__opts__)
return ret$ sudo salt-run jobs.active 20150529112431115487: ---------- Arguments: Function: state.highstate Returned: - jialebi-qa-server - jidong-fileserver - gintama-qa-server - localhost.localdomain Running: |_ ---------- jialebi-qa-server: 30690 |_ ---------- jidong-fileserver: 23521 |_ ---------- gintama-qa-server: 16806 |_ ---------- localhost.localdomain: 10146 Target: * Target-type: glob User: sudo_caribbean
返回之前一个job的输出
def lookup_jid(jid, ext_source=None, missing=False):
‘‘‘
Return the printout from a previously executed job
CLI Example:
.. code-block:: bash
salt-run jobs.lookup_jid 20130916125524463507
‘‘‘
ret = {}
mminion = salt.minion.MasterMinion(__opts__)
returner = _get_returner((__opts__[‘ext_job_cache‘], ext_source, __opts__[‘master_job_cache‘]))
data = mminion.returners[‘{0}.get_jid‘.format(returner)](jid)
for minion in data:
if u‘return‘ in data[minion]:
ret[minion] = data[minion].get(u‘return‘)
else:
ret[minion] = data[minion].get(‘return‘)
if ‘out‘ in data[minion]:
out = data[minion][‘out‘]
if missing:
ckminions = salt.utils.minions.CkMinions(__opts__)
exp = ckminions.check_minions(data[‘tgt‘], data[‘tgt_type‘])
for minion_id in exp:
if minion_id not in data:
ret[minion_id] = ‘Minion did not return‘
salt.output.display_output(ret, opts=__opts__)
return ret$ sudo salt-run jobs.list_job 20150529112431115487 Arguments: Function: state.highstate Minions: - localhost.localdomain - jialebi-qa-server - jidong-fileserver - zg2-develp-server - gintama-qa-server Result: ---------- gintama-qa-server: ---------- out: highstate return: ---------- file_|-/etc/httpd/conf/httpd.conf_|-/etc/httpd/conf/httpd.conf_|-managed: ---------- __run_num__: 1 changes: ---------- comment: File /etc/httpd/conf/httpd.conf is in the correct state name: /etc/httpd/conf/httpd.conf result: True group_|-apache_|-apache_|-present: ---------- __run_num__: 2 changes: ---------- comment: No change name: apache result: True retcode: 2 pkg_|-apache_|-httpd_|-installed: ---------- __run_num__: 0 changes: ---------- comment: Package httpd is already installed name: httpd result: True pkg_|-mod_python_|-mod_python_|-installed: ---------- __run_num__: 4 changes: ---------- comment: Package mod_python is already installed name: mod_python result: True retcode: 2
列出所有可以检测到的jobs
def list_jobs(ext_source=None):
‘‘‘
List all detectable jobs and associated functions
CLI Example:
.. code-block:: bash
salt-run jobs.list_jobs
‘‘‘
returner = _get_returner((__opts__[‘ext_job_cache‘], ext_source, __opts__[‘master_job_cache‘]))
mminion = salt.minion.MasterMinion(__opts__)
ret = mminion.returners[‘{0}.get_jids‘.format(returner)]()
salt.output.display_output(ret, opts=__opts__)
return ret$ sudo salt-run jobs.list_jobs 20150528154601461997: ---------- Arguments: Function: state.highstate StartTime: 2015, May 28 15:46:01.461997 Target: jialebi-qa-server Target-type: glob User: root 20150528154733362383: ---------- Arguments: Function: state.highstate StartTime: 2015, May 28 15:47:33.362383 Target: jialebi-qa-server Target-type: glob User: root
def print_job(jid, ext_source=None):
‘‘‘
Print job available details, including return data.
CLI Example:
.. code-block:: bash
salt-run jobs.print_job
‘‘‘
ret = {}
returner = _get_returner((__opts__[‘ext_job_cache‘], ext_source, __opts__[‘master_job_cache‘]))
mminion = salt.minion.MasterMinion(__opts__)
job = mminion.returners[‘{0}.get_load‘.format(returner)](jid)
ret[jid] = _format_jid_instance(jid, job)
ret[jid][‘Result‘] = mminion.returners[‘{0}.get_jid‘.format(returner)](jid)
salt.output.display_output(ret, opts=__opts__)
return ret$ sudo salt-run jobs.print_job 20150529112431115487 20150529112431115487: ---------- Arguments: Function: state.highstate Minions: - localhost.localdomain - jialebi-qa-server - jidong-fileserver - zg2-develp-server - gintama-qa-server Result: ---------- gintama-qa-server: ---------- out: highstate return: ---------- file_|-/etc/httpd/conf/httpd.conf_|-/etc/httpd/conf/httpd.conf_|-managed: ---------- __run_num__: 1 changes: ---------- comment: File /etc/httpd/conf/httpd.conf is in the correct state name: /etc/httpd/conf/httpd.conf result: True group_|-apache_|-apache_|-present: ---------- __run_num__: 2 changes: ---------- comment: No change name: apache result: True retcode: 2 pkg_|-apache_|-httpd_|-installed: ---------- __run_num__: 0 changes: ---------- comment: Package httpd is already installed name: httpd result: True
本文出自 “Linux SA John” 博客,请务必保留此出处http://john88wang.blog.51cto.com/2165294/1656269
标签:jobs
原文地址:http://john88wang.blog.51cto.com/2165294/1656269