From 0c9c0c59f27b122c818006c2dd09a558e43c1c7e Mon Sep 17 00:00:00 2001 From: Reid Wahl <30487349+nrwahl2@users.noreply.github.com> Date: Tue, 29 Aug 2017 09:08:24 -0500 Subject: [PATCH] Skip confirmation prompts in gluster_volume (#22402) (#28712) --- lib/ansible/modules/system/gluster_volume.py | 120 +++++++------------ 1 file changed, 42 insertions(+), 78 deletions(-) diff --git a/lib/ansible/modules/system/gluster_volume.py b/lib/ansible/modules/system/gluster_volume.py index 6063250e1f6..a019c82bfde 100644 --- a/lib/ansible/modules/system/gluster_volume.py +++ b/lib/ansible/modules/system/gluster_volume.py @@ -18,105 +18,79 @@ module: gluster_volume short_description: Manage GlusterFS volumes description: - Create, remove, start, stop and tune GlusterFS volumes -version_added: "1.9" +version_added: '1.9' options: name: - required: true description: - The volume name - state: required: true - choices: [ 'present', 'absent', 'started', 'stopped' ] + state: description: - - Use present/absent ensure if a volume exists or not, - use started/stopped to control it's availability. + - Use present/absent ensure if a volume exists or not. + Use started/stopped to control its availability. + required: true + choices: ['present', 'absent', 'started', 'stopped'] cluster: - required: false - default: null description: - List of hosts to use for probing and brick setup host: - required: false - default: null description: - Override local hostname (for peer probing purposes) replicas: - required: false - default: null description: - Replica count for volume arbiter: - required: false - default: null description: - Arbiter count for volume - version_added: "2.3" + version_added: '2.3' stripes: - required: false - default: null description: - Stripe count for volume disperses: - required: false - default: null description: - Disperse count for volume - version_added: "2.2" + version_added: '2.2' redundancies: - required: false - default: null description: - Redundancy count for volume - version_added: "2.2" + version_added: '2.2' transport: - required: false - choices: [ 'tcp', 'rdma', 'tcp,rdma' ] - default: 'tcp' description: - Transport type for volume + default: 'tcp' + choices: ['tcp', 'rdma', 'tcp,rdma'] bricks: - required: false - default: null description: - - Brick paths on servers. Multiple brick paths can be separated by commas + - Brick paths on servers. Multiple brick paths can be separated by commas. aliases: ['brick'] start_on_create: - choices: [ 'yes', 'no'] - required: false - default: 'yes' description: - - Controls whether the volume is started after creation or not, defaults to yes + - Controls whether the volume is started after creation or not + default: 'yes' + type: bool rebalance: - choices: [ 'yes', 'no'] - required: false - default: 'no' description: - Controls whether the cluster is rebalanced after changes + default: 'no' + type: bool directory: - required: false - default: null description: - Directory for limit-usage options: - required: false - default: null description: - A dictionary/hash with options/settings for the volume quota: - required: false - default: null description: - Quota value for limit-usage (be sure to use 10.0MB instead of 10MB, see quota list) force: - required: false - default: null description: - If brick is being created in the root partition, module will fail. - Set force to true to override this behaviour + 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 = """ @@ -186,7 +160,7 @@ glusterbin = '' def run_gluster(gargs, **kwargs): global glusterbin global module - args = [glusterbin] + args = [glusterbin, '--mode=script'] args.extend(gargs) try: rc, out, err = module.run_command(args, **kwargs) @@ -208,16 +182,6 @@ def run_gluster_nofail(gargs, **kwargs): return None return out -def run_gluster_yes(gargs): - global glusterbin - global module - args = [glusterbin] - args.extend(gargs) - rc, out, err = module.run_command(args, data='y\n') - if rc != 0: - module.fail_json(msg='error running gluster (%s) command (rc=%d): %s' % (' '.join(args), rc, out or err)) - return out - def get_peers(): out = run_gluster([ 'peer', 'status']) peers = {} @@ -350,7 +314,7 @@ def start_volume(name): run_gluster([ 'volume', 'start', name ]) def stop_volume(name): - run_gluster_yes([ 'volume', 'stop', name ]) + run_gluster([ 'volume', 'stop', name ]) def set_volume_option(name, option, parameter): run_gluster([ 'volume', 'set', name, option, parameter ]) @@ -384,23 +348,23 @@ def main(): global module module = AnsibleModule( argument_spec=dict( - name=dict(required=True, default=None, aliases=['volume']), - state=dict(required=True, choices=[ 'present', 'absent', 'started', 'stopped', 'rebalanced' ]), - cluster=dict(required=False, default=None, type='list'), - host=dict(required=False, default=None), - stripes=dict(required=False, default=None, type='int'), - replicas=dict(required=False, default=None, type='int'), - arbiters=dict(required=False, default=None, type='int'), - disperses=dict(required=False, default=None, type='int'), - redundancies=dict(required=False, default=None, type='int'), - transport=dict(required=False, default='tcp', choices=[ 'tcp', 'rdma', 'tcp,rdma' ]), - bricks=dict(required=False, default=None, aliases=['brick']), - start_on_create=dict(required=False, default=True, type='bool'), - rebalance=dict(required=False, default=False, type='bool'), - options=dict(required=False, default={}, type='dict'), - quota=dict(required=False), - directory=dict(required=False, default=None), - force=dict(required=False, default=False, type='bool'), + 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'), ) ) @@ -457,7 +421,7 @@ def main(): if volume_name in volumes: if volumes[volume_name]['status'].lower() != 'stopped': stop_volume(volume_name) - run_gluster_yes([ 'volume', 'delete', volume_name ]) + run_gluster([ 'volume', 'delete', volume_name ]) changed = True if action == 'present':