Merge branch 'upstream_devel' into devel
Conflicts: system/lvol.py
This commit is contained in:
commit
d11e36589a
11 changed files with 75 additions and 38 deletions
|
@ -8,7 +8,7 @@ All new modules should be submitted here, and have a chance to be promoted to co
|
|||
Reporting bugs
|
||||
==============
|
||||
|
||||
Take care to submit tickets to the appropriate repo where modules are contained. The repo is mentioned at the bottom of modlue documentation page at [docs.ansible.com](http://docs.ansible.com/).
|
||||
Take care to submit tickets to the appropriate repo where modules are contained. The repo is mentioned at the bottom of module documentation page at [docs.ansible.com](http://docs.ansible.com/).
|
||||
|
||||
Testing modules
|
||||
===============
|
||||
|
@ -18,4 +18,4 @@ Ansible [module development guide](http://docs.ansible.com/developing_modules.ht
|
|||
License
|
||||
=======
|
||||
|
||||
As with Ansible, modules distributed with Ansible are GPLv3 licensed. User generated modules not part of this project can be of any license.
|
||||
As with Ansible, modules distributed with Ansible are GPLv3 licensed. User generated modules not part of this project can be of any license.
|
||||
|
|
|
@ -235,12 +235,12 @@ def main():
|
|||
master_host=dict(default=None),
|
||||
master_user=dict(default=None),
|
||||
master_password=dict(default=None),
|
||||
master_port=dict(default=None),
|
||||
master_connect_retry=dict(default=None),
|
||||
master_port=dict(default=None, type='int'),
|
||||
master_connect_retry=dict(default=None, type='int'),
|
||||
master_log_file=dict(default=None),
|
||||
master_log_pos=dict(default=None),
|
||||
master_log_pos=dict(default=None, type='int'),
|
||||
relay_log_file=dict(default=None),
|
||||
relay_log_pos=dict(default=None),
|
||||
relay_log_pos=dict(default=None, type='int'),
|
||||
master_ssl=dict(default=False, type='bool'),
|
||||
master_ssl_ca=dict(default=None),
|
||||
master_ssl_capath=dict(default=None),
|
||||
|
@ -317,7 +317,6 @@ def main():
|
|||
module.fail_json(msg="Server is not configured as mysql slave")
|
||||
|
||||
elif mode in "changemaster":
|
||||
print "Change master"
|
||||
chm=[]
|
||||
chm_params = {}
|
||||
if master_host:
|
||||
|
@ -329,22 +328,22 @@ def main():
|
|||
if master_password:
|
||||
chm.append("MASTER_PASSWORD=%(master_password)s")
|
||||
chm_params['master_password'] = master_password
|
||||
if master_port:
|
||||
if master_port is not None:
|
||||
chm.append("MASTER_PORT=%(master_port)s")
|
||||
chm_params['master_port'] = master_port
|
||||
if master_connect_retry:
|
||||
if master_connect_retry is not None:
|
||||
chm.append("MASTER_CONNECT_RETRY=%(master_connect_retry)s")
|
||||
chm_params['master_connect_retry'] = master_connect_retry
|
||||
if master_log_file:
|
||||
chm.append("MASTER_LOG_FILE=%(master_log_file)s")
|
||||
chm_params['master_log_file'] = master_log_file
|
||||
if master_log_pos:
|
||||
if master_log_pos is not None:
|
||||
chm.append("MASTER_LOG_POS=%(master_log_pos)s")
|
||||
chm_params['master_log_pos'] = master_log_pos
|
||||
if relay_log_file:
|
||||
chm.append("RELAY_LOG_FILE=%(relay_log_file)s")
|
||||
chm_params['relay_log_file'] = relay_log_file
|
||||
if relay_log_pos:
|
||||
if relay_log_pos is not None:
|
||||
chm.append("RELAY_LOG_POS=%(relay_log_pos)s")
|
||||
chm_params['relay_log_pos'] = relay_log_pos
|
||||
if master_ssl:
|
||||
|
|
|
@ -162,7 +162,11 @@ class RabbitMqUser(object):
|
|||
return dict()
|
||||
|
||||
def add(self):
|
||||
self._exec(['add_user', self.username, self.password])
|
||||
if self.password is not None:
|
||||
self._exec(['add_user', self.username, self.password])
|
||||
else:
|
||||
self._exec(['add_user', self.username, ''])
|
||||
self._exec(['clear_password', self.username])
|
||||
|
||||
def delete(self):
|
||||
self._exec(['delete_user', self.username])
|
||||
|
|
|
@ -75,8 +75,8 @@ def main():
|
|||
# Sample output lines:
|
||||
# Process 'name' Running
|
||||
# Process 'name' Running - restart pending
|
||||
parts = line.lower().split()
|
||||
if len(parts) > 2 and parts[0] == 'process' and parts[1] == "'%s'" % name:
|
||||
parts = line.split()
|
||||
if len(parts) > 2 and parts[0].lower() == 'process' and parts[1] == "'%s'" % name:
|
||||
return ' '.join(parts[2:])
|
||||
else:
|
||||
return ''
|
||||
|
|
|
@ -364,7 +364,7 @@ class Nagios(object):
|
|||
|
||||
return notif_str
|
||||
|
||||
def schedule_svc_downtime(self, host, services=[], minutes=30):
|
||||
def schedule_svc_downtime(self, host, services=None, minutes=30):
|
||||
"""
|
||||
This command is used to schedule downtime for a particular
|
||||
service.
|
||||
|
@ -378,6 +378,10 @@ class Nagios(object):
|
|||
"""
|
||||
|
||||
cmd = "SCHEDULE_SVC_DOWNTIME"
|
||||
|
||||
if services is None:
|
||||
services = []
|
||||
|
||||
for service in services:
|
||||
dt_cmd_str = self._fmt_dt_str(cmd, host, minutes, svc=service)
|
||||
self._write_command(dt_cmd_str)
|
||||
|
@ -518,7 +522,7 @@ class Nagios(object):
|
|||
notif_str = self._fmt_notif_str(cmd, host)
|
||||
self._write_command(notif_str)
|
||||
|
||||
def disable_svc_notifications(self, host, services=[]):
|
||||
def disable_svc_notifications(self, host, services=None):
|
||||
"""
|
||||
This command is used to prevent notifications from being sent
|
||||
out for the specified service.
|
||||
|
@ -530,6 +534,10 @@ class Nagios(object):
|
|||
"""
|
||||
|
||||
cmd = "DISABLE_SVC_NOTIFICATIONS"
|
||||
|
||||
if services is None:
|
||||
services = []
|
||||
|
||||
for service in services:
|
||||
notif_str = self._fmt_notif_str(cmd, host, svc=service)
|
||||
self._write_command(notif_str)
|
||||
|
@ -628,7 +636,7 @@ class Nagios(object):
|
|||
else:
|
||||
return "Fail: could not write to the command file"
|
||||
|
||||
def enable_svc_notifications(self, host, services=[]):
|
||||
def enable_svc_notifications(self, host, services=None):
|
||||
"""
|
||||
Enables notifications for a particular service.
|
||||
|
||||
|
@ -638,6 +646,10 @@ class Nagios(object):
|
|||
"""
|
||||
|
||||
cmd = "ENABLE_SVC_NOTIFICATIONS"
|
||||
|
||||
if services is None:
|
||||
services = []
|
||||
|
||||
nagios_return = True
|
||||
return_str_list = []
|
||||
for service in services:
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
# encoding: utf-8
|
||||
|
||||
# (c) 2013, Matthias Vogelgesang <matthias.vogelgesang@gmail.com>
|
||||
# (c) 2014, Justin Lecher <jlec@gentoo.org>
|
||||
#
|
||||
# This file is part of Ansible
|
||||
#
|
||||
|
@ -51,13 +52,20 @@ options:
|
|||
- A description of the repository
|
||||
disable_gpg_check:
|
||||
description:
|
||||
- Whether to disable GPG signature checking of
|
||||
all packages. Has an effect only if state is
|
||||
I(present).
|
||||
- Whether to disable GPG signature checking of
|
||||
all packages. Has an effect only if state is
|
||||
I(present).
|
||||
required: false
|
||||
default: "no"
|
||||
choices: [ "yes", "no" ]
|
||||
aliases: []
|
||||
refresh:
|
||||
description:
|
||||
- Enable autorefresh of the repository.
|
||||
required: false
|
||||
default: "yes"
|
||||
choices: [ "yes", "no" ]
|
||||
aliases: []
|
||||
notes: []
|
||||
requirements: [ zypper ]
|
||||
'''
|
||||
|
@ -145,11 +153,11 @@ def repo_exists(module, old_zypper, **kwargs):
|
|||
return False
|
||||
|
||||
|
||||
def add_repo(module, repo, alias, description, disable_gpg_check, old_zypper):
|
||||
def add_repo(module, repo, alias, description, disable_gpg_check, old_zypper, refresh):
|
||||
if old_zypper:
|
||||
cmd = ['/usr/bin/zypper', 'sa']
|
||||
else:
|
||||
cmd = ['/usr/bin/zypper', 'ar', '--check', '--refresh']
|
||||
cmd = ['/usr/bin/zypper', 'ar', '--check']
|
||||
|
||||
if repo.startswith("file:/") and old_zypper:
|
||||
cmd.extend(['-t', 'Plaindir'])
|
||||
|
@ -162,6 +170,9 @@ def add_repo(module, repo, alias, description, disable_gpg_check, old_zypper):
|
|||
if disable_gpg_check and not old_zypper:
|
||||
cmd.append('--no-gpgcheck')
|
||||
|
||||
if refresh:
|
||||
cmd.append('--refresh')
|
||||
|
||||
cmd.append(repo)
|
||||
|
||||
if not repo.endswith('.repo'):
|
||||
|
@ -216,6 +227,7 @@ def main():
|
|||
state=dict(choices=['present', 'absent'], default='present'),
|
||||
description=dict(required=False),
|
||||
disable_gpg_check = dict(required=False, default='no', type='bool'),
|
||||
refresh = dict(required=False, default='yes', type='bool'),
|
||||
),
|
||||
supports_check_mode=False,
|
||||
)
|
||||
|
@ -225,6 +237,7 @@ def main():
|
|||
name = module.params['name']
|
||||
description = module.params['description']
|
||||
disable_gpg_check = module.params['disable_gpg_check']
|
||||
refresh = module.params['refresh']
|
||||
|
||||
def exit_unchanged():
|
||||
module.exit_json(changed=False, repo=repo, state=state, name=name)
|
||||
|
@ -260,7 +273,7 @@ def main():
|
|||
if exists:
|
||||
exit_unchanged()
|
||||
|
||||
changed = add_repo(module, repo, name, description, disable_gpg_check, old_zypper)
|
||||
changed = add_repo(module, repo, name, description, disable_gpg_check, old_zypper, refresh)
|
||||
elif state == 'absent':
|
||||
if not exists:
|
||||
exit_unchanged()
|
||||
|
|
|
@ -86,8 +86,6 @@ debconf: name='oracle-java7-installer' question='shared/accepted-oracle-license-
|
|||
debconf: name='tzdata'
|
||||
'''
|
||||
|
||||
import pipes
|
||||
|
||||
def get_selections(module, pkg):
|
||||
cmd = [module.get_bin_path('debconf-show', True), pkg]
|
||||
rc, out, err = module.run_command(' '.join(cmd))
|
||||
|
@ -106,14 +104,14 @@ def get_selections(module, pkg):
|
|||
|
||||
def set_selection(module, pkg, question, vtype, value, unseen):
|
||||
|
||||
data = ' '.join([ question, vtype, value ])
|
||||
|
||||
setsel = module.get_bin_path('debconf-set-selections', True)
|
||||
cmd = ["echo %s %s |" % (pipes.quote(pkg), pipes.quote(data)), setsel]
|
||||
cmd = [setsel]
|
||||
if unseen:
|
||||
cmd.append('-u')
|
||||
|
||||
return module.run_command(' '.join(cmd), use_unsafe_shell=True)
|
||||
data = ' '.join([pkg, question, vtype, value])
|
||||
|
||||
return module.run_command(cmd, data=data)
|
||||
|
||||
def main():
|
||||
|
||||
|
@ -137,7 +135,6 @@ def main():
|
|||
unseen = module.params["unseen"]
|
||||
|
||||
prev = get_selections(module, pkg)
|
||||
diff = ''
|
||||
|
||||
changed = False
|
||||
msg = ""
|
||||
|
|
|
@ -86,7 +86,7 @@ def main():
|
|||
database = dict(required=True),
|
||||
key = dict(required=False, default=None),
|
||||
split = dict(required=False, default=None),
|
||||
fail_key = dict(required=False, default=True),
|
||||
fail_key = dict(required=False, type='bool', default=True),
|
||||
),
|
||||
supports_check_mode = True,
|
||||
)
|
||||
|
|
|
@ -24,6 +24,7 @@ module: gluster_volume
|
|||
short_description: Manage GlusterFS volumes
|
||||
description:
|
||||
- Create, remove, start, stop and tune GlusterFS volumes
|
||||
version_added: "1.9"
|
||||
options:
|
||||
name:
|
||||
required: true
|
||||
|
@ -34,7 +35,7 @@ options:
|
|||
choices: [ 'present', 'absent', 'started', 'stopped' ]
|
||||
description:
|
||||
- Use present/absent ensure if a volume exists or not,
|
||||
use started/stopped to control it's availability.
|
||||
use started/stopped to control it's availability.
|
||||
cluster:
|
||||
required: false
|
||||
description:
|
||||
|
|
|
@ -32,6 +32,11 @@ EXAMPLES = '''
|
|||
- locale_gen: name=de_CH.UTF-8 state=present
|
||||
'''
|
||||
|
||||
LOCALE_NORMALIZATION = {
|
||||
".utf8": ".UTF-8",
|
||||
".eucjp": ".EUC-JP",
|
||||
}
|
||||
|
||||
# ===========================================
|
||||
# location module specific support methods.
|
||||
#
|
||||
|
@ -44,7 +49,9 @@ def is_present(name):
|
|||
def fix_case(name):
|
||||
"""locale -a might return the encoding in either lower or upper case.
|
||||
Passing through this function makes them uniform for comparisons."""
|
||||
return name.replace(".utf8", ".UTF-8")
|
||||
for s, r in LOCALE_NORMALIZATION.iteritems():
|
||||
name = name.replace(s, r)
|
||||
return name
|
||||
|
||||
def replace_line(existing_line, new_line):
|
||||
"""Replaces lines in /etc/locale.gen"""
|
||||
|
|
|
@ -152,8 +152,9 @@ def main():
|
|||
else:
|
||||
unit = size_unit
|
||||
|
||||
lvs_cmd = module.get_bin_path("lvs", required=True)
|
||||
rc, current_lvs, err = module.run_command(
|
||||
"lvs --noheadings --nosuffix -o lv_name,size --units %s --separator ';' %s" % (unit, vg))
|
||||
"%s --noheadings --nosuffix -o lv_name,size --units %s --separator ';' %s" % (lvs_cmd, unit, vg))
|
||||
|
||||
if rc != 0:
|
||||
if state == 'absent':
|
||||
|
@ -185,7 +186,8 @@ def main():
|
|||
if module.check_mode:
|
||||
changed = True
|
||||
else:
|
||||
rc, _, err = module.run_command("lvcreate -n %s -%s %s%s %s" % (lv, size_opt, size, size_unit, vg))
|
||||
lvcreate_cmd = module.get_bin_path("lvcreate", required=True)
|
||||
rc, _, err = module.run_command("%s -n %s -%s %s%s %s" % (lvcreate_cmd, lv, size_opt, size, size_unit, vg))
|
||||
if rc == 0:
|
||||
changed = True
|
||||
else:
|
||||
|
@ -197,7 +199,8 @@ def main():
|
|||
module.exit_json(changed=True)
|
||||
if not force:
|
||||
module.fail_json(msg="Sorry, no removal of logical volume %s without force=yes." % (this_lv['name']))
|
||||
rc, _, err = module.run_command("lvremove --force %s/%s" % (vg, this_lv['name']))
|
||||
lvremove_cmd = module.get_bin_path("lvremove", required=True)
|
||||
rc, _, err = module.run_command("%s --force %s/%s" % (lvremove_cmd, vg, this_lv['name']))
|
||||
if rc == 0:
|
||||
module.exit_json(changed=True)
|
||||
else:
|
||||
|
@ -209,11 +212,12 @@ def main():
|
|||
### resize LV
|
||||
tool = None
|
||||
if size > this_lv['size']:
|
||||
tool = 'lvextend'
|
||||
tool = module.get_bin_path("lvextend", required=True)
|
||||
elif size < this_lv['size']:
|
||||
if not force:
|
||||
module.fail_json(msg="Sorry, no shrinking of %s without force=yes." % (this_lv['name']))
|
||||
tool = 'lvreduce --force'
|
||||
tool = module.get_bin_path("lvextend", required=True)
|
||||
tool.append("--force")
|
||||
|
||||
if tool:
|
||||
if module.check_mode:
|
||||
|
|
Loading…
Reference in a new issue