mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 13:52:54 +00:00
PEP8 fixes: Ansible system module and playbook base.py (#32322)
* Ansible files module sanity pep8 fixes * Ansible system module and playbook base.py * Undo empty lines not required by sanity checks * Undo empty lines not required by sanity checks * Undo empty lines not required by sanity checks * Undo empty lines not required by sanity checks * Undo empty lines not required by sanity checks * Undo empty lines not required by sanity checks * Undo empty lines not required by sanity checks * Undo empty lines not required by sanity checks * Undo empty lines not required by sanity checks * Undo empty lines not required by sanity checks * Undo empty lines not required by sanity checks * Various changes * Various changes * Various changes * Various changes * Undo blank lines not required by sanity checks * Various changes * Various changes * Various changes * Various changes * Various changes * Undo blank line changes not required by sanity checks * Various changes * Various changes * Various changes * Various changes * Various changes * Missing piece after merge * Blank lines * Blank line * Line too long * Fix typo * Unnecessary quotes * Fix example error
This commit is contained in:
committed by
Dag Wieers
parent
a5da2e44a1
commit
a2d34e914e
@@ -1,18 +1,16 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# (c) 2014, Taneli Leppä <taneli@crasman.fi>
|
||||
# Copyright: (c) 2014, Taneli Leppä <taneli@crasman.fi>
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
__metaclass__ = type
|
||||
|
||||
|
||||
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
||||
'status': ['preview'],
|
||||
'supported_by': 'community'}
|
||||
|
||||
|
||||
DOCUMENTATION = """
|
||||
module: gluster_volume
|
||||
short_description: Manage GlusterFS volumes
|
||||
@@ -22,75 +20,76 @@ version_added: '1.9'
|
||||
options:
|
||||
name:
|
||||
description:
|
||||
- The volume name
|
||||
- The volume name.
|
||||
required: true
|
||||
state:
|
||||
description:
|
||||
- Use present/absent ensure if a volume exists or not.
|
||||
Use started/stopped to control its availability.
|
||||
required: true
|
||||
choices: ['present', 'absent', 'started', 'stopped']
|
||||
choices: ['absent', 'present', 'started', 'stopped']
|
||||
cluster:
|
||||
description:
|
||||
- List of hosts to use for probing and brick setup
|
||||
- List of hosts to use for probing and brick setup.
|
||||
host:
|
||||
description:
|
||||
- Override local hostname (for peer probing purposes)
|
||||
- Override local hostname (for peer probing purposes).
|
||||
replicas:
|
||||
description:
|
||||
- Replica count for volume
|
||||
- Replica count for volume.
|
||||
arbiter:
|
||||
description:
|
||||
- Arbiter count for volume
|
||||
- Arbiter count for volume.
|
||||
version_added: '2.3'
|
||||
stripes:
|
||||
description:
|
||||
- Stripe count for volume
|
||||
- Stripe count for volume.
|
||||
disperses:
|
||||
description:
|
||||
- Disperse count for volume
|
||||
- Disperse count for volume.
|
||||
version_added: '2.2'
|
||||
redundancies:
|
||||
description:
|
||||
- Redundancy count for volume
|
||||
- Redundancy count for volume.
|
||||
version_added: '2.2'
|
||||
transport:
|
||||
description:
|
||||
- Transport type for volume
|
||||
default: 'tcp'
|
||||
choices: ['tcp', 'rdma', 'tcp,rdma']
|
||||
- Transport type for volume.
|
||||
default: tcp
|
||||
choices: [ rdma, tcp, tcp,rdma ]
|
||||
bricks:
|
||||
description:
|
||||
- Brick paths on servers. Multiple brick paths can be separated by commas.
|
||||
aliases: ['brick']
|
||||
aliases: [ brick ]
|
||||
start_on_create:
|
||||
description:
|
||||
- Controls whether the volume is started after creation or not
|
||||
default: 'yes'
|
||||
- Controls whether the volume is started after creation or not.
|
||||
type: bool
|
||||
default: 'yes'
|
||||
rebalance:
|
||||
description:
|
||||
- Controls whether the cluster is rebalanced after changes
|
||||
default: 'no'
|
||||
- Controls whether the cluster is rebalanced after changes.
|
||||
type: bool
|
||||
default: 'no'
|
||||
directory:
|
||||
description:
|
||||
- Directory for limit-usage
|
||||
- Directory for limit-usage.
|
||||
options:
|
||||
description:
|
||||
- A dictionary/hash with options/settings for the volume
|
||||
- A dictionary/hash with options/settings for the volume.
|
||||
quota:
|
||||
description:
|
||||
- Quota value for limit-usage (be sure to use 10.0MB instead of 10MB, see quota list)
|
||||
- Quota value for limit-usage (be sure to use 10.0MB instead of 10MB, see quota list).
|
||||
force:
|
||||
description:
|
||||
- If brick is being created in the root partition, module will fail.
|
||||
Set force to true to override this behaviour.
|
||||
type: bool
|
||||
notes:
|
||||
- Requires cli tools for GlusterFS on servers
|
||||
- Will add new bricks, but not remove them
|
||||
author: Taneli Leppä (@rosmo)
|
||||
- Requires cli tools for GlusterFS on servers.
|
||||
- Will add new bricks, but not remove them.
|
||||
author:
|
||||
- Taneli Leppä (@rosmo)
|
||||
"""
|
||||
|
||||
EXAMPLES = """
|
||||
@@ -153,7 +152,6 @@ import traceback
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils._text import to_native
|
||||
|
||||
|
||||
glusterbin = ''
|
||||
|
||||
|
||||
@@ -166,12 +164,13 @@ def run_gluster(gargs, **kwargs):
|
||||
rc, out, err = module.run_command(args, **kwargs)
|
||||
if rc != 0:
|
||||
module.fail_json(msg='error running gluster (%s) command (rc=%d): %s' %
|
||||
(' '.join(args), rc, out or err), exception=traceback.format_exc())
|
||||
(' '.join(args), rc, out or err), exception=traceback.format_exc())
|
||||
except Exception as e:
|
||||
module.fail_json(msg='error running gluster (%s) command: %s' % (' '.join(args),
|
||||
to_native(e)), exception=traceback.format_exc())
|
||||
to_native(e)), exception=traceback.format_exc())
|
||||
return out
|
||||
|
||||
|
||||
def run_gluster_nofail(gargs, **kwargs):
|
||||
global glusterbin
|
||||
global module
|
||||
@@ -182,8 +181,9 @@ def run_gluster_nofail(gargs, **kwargs):
|
||||
return None
|
||||
return out
|
||||
|
||||
|
||||
def get_peers():
|
||||
out = run_gluster([ 'peer', 'status'])
|
||||
out = run_gluster(['peer', 'status'])
|
||||
peers = {}
|
||||
hostname = None
|
||||
uuid = None
|
||||
@@ -208,8 +208,9 @@ def get_peers():
|
||||
shortNames = False
|
||||
return peers
|
||||
|
||||
|
||||
def get_volumes():
|
||||
out = run_gluster([ 'volume', 'info' ])
|
||||
out = run_gluster(['volume', 'info'])
|
||||
|
||||
volumes = {}
|
||||
volume = {}
|
||||
@@ -227,17 +228,17 @@ def get_volumes():
|
||||
if key.lower() == 'transport-type':
|
||||
volume['transport'] = value
|
||||
if value.lower().endswith(' (arbiter)'):
|
||||
if not 'arbiters' in volume:
|
||||
if 'arbiters' not in volume:
|
||||
volume['arbiters'] = []
|
||||
value = value[:-10]
|
||||
volume['arbiters'].append(value)
|
||||
if key.lower() != 'bricks' and key.lower()[:5] == 'brick':
|
||||
if not 'bricks' in volume:
|
||||
if 'bricks' not in volume:
|
||||
volume['bricks'] = []
|
||||
volume['bricks'].append(value)
|
||||
# Volume options
|
||||
if '.' in key:
|
||||
if not 'options' in volume:
|
||||
if 'options' not in volume:
|
||||
volume['options'] = {}
|
||||
volume['options'][key] = value
|
||||
if key == 'features.quota' and value == 'on':
|
||||
@@ -249,20 +250,22 @@ def get_volumes():
|
||||
volume = {}
|
||||
return volumes
|
||||
|
||||
|
||||
def get_quotas(name, nofail):
|
||||
quotas = {}
|
||||
if nofail:
|
||||
out = run_gluster_nofail([ 'volume', 'quota', name, 'list' ])
|
||||
out = run_gluster_nofail(['volume', 'quota', name, 'list'])
|
||||
if not out:
|
||||
return quotas
|
||||
else:
|
||||
out = run_gluster([ 'volume', 'quota', name, 'list' ])
|
||||
out = run_gluster(['volume', 'quota', name, 'list'])
|
||||
for row in out.split('\n'):
|
||||
if row[:1] == '/':
|
||||
q = re.split('\s+', row)
|
||||
quotas[q[0]] = q[1]
|
||||
return quotas
|
||||
|
||||
|
||||
def wait_for_peer(host):
|
||||
for x in range(0, 4):
|
||||
peers = get_peers()
|
||||
@@ -271,20 +274,23 @@ def wait_for_peer(host):
|
||||
time.sleep(1)
|
||||
return False
|
||||
|
||||
|
||||
def probe(host, myhostname):
|
||||
global module
|
||||
out = run_gluster([ 'peer', 'probe', host ])
|
||||
out = run_gluster(['peer', 'probe', host])
|
||||
if out.find('localhost') == -1 and not wait_for_peer(host):
|
||||
module.fail_json(msg='failed to probe peer %s on %s' % (host, myhostname))
|
||||
|
||||
|
||||
def probe_all_peers(hosts, peers, myhostname):
|
||||
for host in hosts:
|
||||
host = host.strip() # Clean up any extra space for exact comparison
|
||||
host = host.strip() # Clean up any extra space for exact comparison
|
||||
if host not in peers:
|
||||
probe(host, myhostname)
|
||||
|
||||
|
||||
def create_volume(name, stripe, replica, arbiter, disperse, redundancy, transport, hosts, bricks, force):
|
||||
args = [ 'volume', 'create' ]
|
||||
args = ['volume', 'create']
|
||||
args.append(name)
|
||||
if stripe:
|
||||
args.append('stripe')
|
||||
@@ -310,17 +316,21 @@ def create_volume(name, stripe, replica, arbiter, disperse, redundancy, transpor
|
||||
args.append('force')
|
||||
run_gluster(args)
|
||||
|
||||
|
||||
def start_volume(name):
|
||||
run_gluster([ 'volume', 'start', name ])
|
||||
run_gluster(['volume', 'start', name])
|
||||
|
||||
|
||||
def stop_volume(name):
|
||||
run_gluster([ 'volume', 'stop', name ])
|
||||
run_gluster(['volume', 'stop', name])
|
||||
|
||||
|
||||
def set_volume_option(name, option, parameter):
|
||||
run_gluster([ 'volume', 'set', name, option, parameter ])
|
||||
run_gluster(['volume', 'set', name, option, parameter])
|
||||
|
||||
|
||||
def add_bricks(name, new_bricks, stripe, replica, force):
|
||||
args = [ 'volume', 'add-brick', name ]
|
||||
args = ['volume', 'add-brick', name]
|
||||
if stripe:
|
||||
args.append('stripe')
|
||||
args.append(str(stripe))
|
||||
@@ -332,41 +342,44 @@ def add_bricks(name, new_bricks, stripe, replica, force):
|
||||
args.append('force')
|
||||
run_gluster(args)
|
||||
|
||||
|
||||
def do_rebalance(name):
|
||||
run_gluster([ 'volume', 'rebalance', name, 'start' ])
|
||||
run_gluster(['volume', 'rebalance', name, 'start'])
|
||||
|
||||
|
||||
def enable_quota(name):
|
||||
run_gluster([ 'volume', 'quota', name, 'enable' ])
|
||||
run_gluster(['volume', 'quota', name, 'enable'])
|
||||
|
||||
|
||||
def set_quota(name, directory, value):
|
||||
run_gluster([ 'volume', 'quota', name, 'limit-usage', directory, value ])
|
||||
run_gluster(['volume', 'quota', name, 'limit-usage', directory, value])
|
||||
|
||||
|
||||
def main():
|
||||
### MAIN ###
|
||||
# MAIN
|
||||
|
||||
global module
|
||||
module = AnsibleModule(
|
||||
argument_spec=dict(
|
||||
name=dict(required=True, aliases=['volume']),
|
||||
state=dict(required=True, choices=['present', 'absent', 'started', 'stopped']),
|
||||
cluster=dict(default=None, type='list'),
|
||||
host=dict(default=None),
|
||||
stripes=dict(default=None, type='int'),
|
||||
replicas=dict(default=None, type='int'),
|
||||
arbiters=dict(default=None, type='int'),
|
||||
disperses=dict(default=None, type='int'),
|
||||
redundancies=dict(default=None, type='int'),
|
||||
transport=dict(default='tcp', choices=['tcp', 'rdma', 'tcp,rdma']),
|
||||
bricks=dict(default=None, aliases=['brick']),
|
||||
start_on_create=dict(default=True, type='bool'),
|
||||
rebalance=dict(default=False, type='bool'),
|
||||
options=dict(default={}, type='dict'),
|
||||
quota=dict(),
|
||||
directory=dict(default=None),
|
||||
force=dict(default=False, type='bool'),
|
||||
)
|
||||
)
|
||||
name=dict(type='str', required=True, aliases=['volume']),
|
||||
state=dict(type='str', required=True, choices=['absent', 'started', 'stopped', 'present']),
|
||||
cluster=dict(type='list'),
|
||||
host=dict(type='str'),
|
||||
stripes=dict(type='int'),
|
||||
replicas=dict(type='int'),
|
||||
arbiters=dict(type='int'),
|
||||
disperses=dict(type='int'),
|
||||
redundancies=dict(type='int'),
|
||||
transport=dict(type='str', default='tcp', choices=['tcp', 'rdma', 'tcp,rdma']),
|
||||
bricks=dict(type='str', aliases=['brick']),
|
||||
start_on_create=dict(type='bool', default=True),
|
||||
rebalance=dict(type='bool', default=False),
|
||||
options=dict(type='dict', default={}),
|
||||
quota=dict(type='str'),
|
||||
directory=dict(type='str'),
|
||||
force=dict(type='bool', default=False),
|
||||
),
|
||||
)
|
||||
|
||||
global glusterbin
|
||||
glusterbin = module.get_bin_path('gluster', True)
|
||||
@@ -375,7 +388,7 @@ def main():
|
||||
|
||||
action = module.params['state']
|
||||
volume_name = module.params['name']
|
||||
cluster= module.params['cluster']
|
||||
cluster = module.params['cluster']
|
||||
brick_paths = module.params['bricks']
|
||||
stripes = module.params['stripes']
|
||||
replicas = module.params['replicas']
|
||||
@@ -408,7 +421,6 @@ def main():
|
||||
quota = module.params['quota']
|
||||
directory = module.params['directory']
|
||||
|
||||
|
||||
# get current state info
|
||||
peers = get_peers()
|
||||
volumes = get_volumes()
|
||||
@@ -421,7 +433,7 @@ def main():
|
||||
if volume_name in volumes:
|
||||
if volumes[volume_name]['status'].lower() != 'stopped':
|
||||
stop_volume(volume_name)
|
||||
run_gluster([ 'volume', 'delete', volume_name ])
|
||||
run_gluster(['volume', 'delete', volume_name])
|
||||
changed = True
|
||||
|
||||
if action == 'present':
|
||||
@@ -495,7 +507,7 @@ def main():
|
||||
do_rebalance(volume_name)
|
||||
|
||||
facts = {}
|
||||
facts['glusterfs'] = { 'peers': peers, 'volumes': volumes, 'quotas': quotas }
|
||||
facts['glusterfs'] = {'peers': peers, 'volumes': volumes, 'quotas': quotas}
|
||||
|
||||
module.exit_json(changed=changed, ansible_facts=facts)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user