library: flake8 ceph-ansible modules

This commit ensure all ceph-ansible modules pass flake8 properly.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
(cherry picked from commit beda1fe773)
pull/6786/head
Wong Hoi Sing Edison 2021-06-18 00:18:07 +08:00 committed by Guillaume Abrioux
parent d7edc71fd5
commit c475d84310
17 changed files with 316 additions and 263 deletions

View File

@ -112,7 +112,7 @@ option:
default: unlimited default: unlimited
bucketmaxobjects: bucketmaxobjects:
description: description:
- with bucket quota enabled specify maximum number of objects # noqa E501 - with bucket quota enabled specify maximum number of objects # noqa: E501
required: false required: false
default: unlimited default: unlimited
buckets: buckets:
@ -263,7 +263,7 @@ error_messages:
returned: always returned: always
type: list type: list
sample: [ sample: [
"test2: could not modify user: unable to modify user, cannot add duplicate email\n" # noqa E501 "test2: could not modify user: unable to modify user, cannot add duplicate email\n" # noqa: E501
] ]
failed_users: failed_users:
@ -334,36 +334,36 @@ def create_users(rgw, users, result):
if email: if email:
if autogenkey: if autogenkey:
try: try:
rgw.create_user(username, fullname, email=email, key_type='s3', # noqa E501 rgw.create_user(username, fullname, email=email, key_type='s3', # noqa: E501
generate_key=autogenkey, generate_key=autogenkey,
max_buckets=maxbucket, suspended=suspend) # noqa E501 max_buckets=maxbucket, suspended=suspend) # noqa: E501
except radosgw.exception.RadosGWAdminError as e: except radosgw.exception.RadosGWAdminError as e:
result['error_messages'].append(username + ' ' + e.get_code()) # noqa E501 result['error_messages'].append(username + ' ' + e.get_code()) # noqa: E501
fail_flag = True fail_flag = True
else: else:
try: try:
rgw.create_user(username, fullname, email=email, key_type='s3', # noqa E501 rgw.create_user(username, fullname, email=email, key_type='s3', # noqa: E501
access_key=accesskey, secret_key=secretkey, # noqa E501 access_key=accesskey, secret_key=secretkey, # noqa: E501
max_buckets=maxbucket, suspended=suspend) # noqa E501 max_buckets=maxbucket, suspended=suspend) # noqa: E501
except radosgw.exception.RadosGWAdminError as e: except radosgw.exception.RadosGWAdminError as e:
result['error_messages'].append(username + ' ' + e.get_code()) # noqa E501 result['error_messages'].append(username + ' ' + e.get_code()) # noqa: E501
fail_flag = True fail_flag = True
else: else:
if autogenkey: if autogenkey:
try: try:
rgw.create_user(username, fullname, key_type='s3', rgw.create_user(username, fullname, key_type='s3',
generate_key=autogenkey, generate_key=autogenkey,
max_buckets=maxbucket, suspended=suspend) # noqa E501 max_buckets=maxbucket, suspended=suspend) # noqa: E501
except radosgw.exception.RadosGWAdminError as e: except radosgw.exception.RadosGWAdminError as e:
result['error_messages'].append(username + ' ' + e.get_code()) # noqa E501 result['error_messages'].append(username + ' ' + e.get_code()) # noqa: E501
fail_flag = True fail_flag = True
else: else:
try: try:
rgw.create_user(username, fullname, key_type='s3', rgw.create_user(username, fullname, key_type='s3',
access_key=accesskey, secret_key=secretkey, # noqa E501 access_key=accesskey, secret_key=secretkey, # noqa: E501
max_buckets=maxbucket, suspended=suspend) # noqa E501 max_buckets=maxbucket, suspended=suspend) # noqa: E501
except radosgw.exception.RadosGWAdminError as e: except radosgw.exception.RadosGWAdminError as e:
result['error_messages'].append(username + ' ' + e.get_code()) # noqa E501 result['error_messages'].append(username + ' ' + e.get_code()) # noqa: E501
fail_flag = True fail_flag = True
if not fail_flag and userquota: if not fail_flag and userquota:
@ -371,15 +371,15 @@ def create_users(rgw, users, result):
rgw.set_quota(username, 'user', max_objects=usermaxobjects, rgw.set_quota(username, 'user', max_objects=usermaxobjects,
max_size_kb=usermaxsize, enabled=True) max_size_kb=usermaxsize, enabled=True)
except radosgw.exception.RadosGWAdminError as e: except radosgw.exception.RadosGWAdminError as e:
result['error_messages'].append(username + ' ' + e.get_code()) # noqa E501 result['error_messages'].append(username + ' ' + e.get_code()) # noqa: E501
fail_flag = True fail_flag = True
if not fail_flag and bucketquota: if not fail_flag and bucketquota:
try: try:
rgw.set_quota(username, 'bucket', max_objects=bucketmaxobjects, # noqa E501 rgw.set_quota(username, 'bucket', max_objects=bucketmaxobjects, # noqa: E501
max_size_kb=bucketmaxsize, enabled=True) max_size_kb=bucketmaxsize, enabled=True)
except radosgw.exception.RadosGWAdminError as e: except radosgw.exception.RadosGWAdminError as e:
result['error_messages'].append(username + ' ' + e.get_code()) # noqa E501 result['error_messages'].append(username + ' ' + e.get_code()) # noqa: E501
fail_flag = True fail_flag = True
if fail_flag: if fail_flag:
@ -450,12 +450,12 @@ def create_buckets(rgw, buckets, result):
except radosgw.exception.RadosGWAdminError: except radosgw.exception.RadosGWAdminError:
pass pass
failed_buckets.append(bucket) failed_buckets.append(bucket)
result['error_messages'].append(bucket + ' could not be linked' + ', NoSuchUser ' + user) # noqa E501 result['error_messages'].append(bucket + ' could not be linked' + ', NoSuchUser ' + user) # noqa: E501
else: else:
# something went wrong # something went wrong
failed_buckets.append(bucket) failed_buckets.append(bucket)
result['error_messages'].append(bucket + ' could not be created') # noqa E501 result['error_messages'].append(bucket + ' could not be created') # noqa: E501
result['added_buckets'] = ", ".join(added_buckets) result['added_buckets'] = ", ".join(added_buckets)
result['failed_buckets'] = ", ".join(failed_buckets) result['failed_buckets'] = ", ".join(failed_buckets)
@ -467,7 +467,7 @@ def create_bucket(rgw, bucket):
host=rgw._connection[0], host=rgw._connection[0],
port=rgw.port, port=rgw.port,
is_secure=rgw.is_secure, is_secure=rgw.is_secure,
calling_format=boto.s3.connection.OrdinaryCallingFormat(), # noqa E501 calling_format=boto.s3.connection.OrdinaryCallingFormat(), # noqa: E501
) )
try: try:
@ -489,23 +489,23 @@ def main():
admin_access_key=dict(type='str', required=True), admin_access_key=dict(type='str', required=True),
admin_secret_key=dict(type='str', required=True), admin_secret_key=dict(type='str', required=True),
buckets=dict(type='list', required=False, elements='dict', buckets=dict(type='list', required=False, elements='dict',
options=dict(bucket=dict(type='str', required=True), # noqa E501 options=dict(bucket=dict(type='str', required=True), # noqa: E501
user=dict(type='str', required=True))), # noqa E501 user=dict(type='str', required=True))), # noqa: E501
users=dict(type='list', required=False, elements='dict', users=dict(type='list', required=False, elements='dict',
options=dict(username=dict(type='str', required=True), # noqa E501 options=dict(username=dict(type='str', required=True), # noqa: E501
fullname=dict(type='str', required=True), # noqa E501 fullname=dict(type='str', required=True), # noqa: E501
email=dict(type='str', required=False), # noqa E501 email=dict(type='str', required=False), # noqa: E501
maxbucket=dict(type='int', required=False, default=1000), # noqa E501 maxbucket=dict(type='int', required=False, default=1000), # noqa: E501
suspend=dict(type='bool', required=False, default=False), # noqa E501 suspend=dict(type='bool', required=False, default=False), # noqa: E501
autogenkey=dict(type='bool', required=False, default=True), # noqa E501 autogenkey=dict(type='bool', required=False, default=True), # noqa: E501
accesskey=dict(type='str', required=False), # noqa E501 accesskey=dict(type='str', required=False), # noqa: E501
secretkey=dict(type='str', required=False), # noqa E501 secretkey=dict(type='str', required=False), # noqa: E501
userquota=dict(type='bool', required=False, default=False), # noqa E501 userquota=dict(type='bool', required=False, default=False), # noqa: E501
usermaxsize=dict(type='str', required=False, default='-1'), # noqa E501 usermaxsize=dict(type='str', required=False, default='-1'), # noqa: E501
usermaxobjects=dict(type='int', required=False, default=-1), # noqa E501 usermaxobjects=dict(type='int', required=False, default=-1), # noqa: E501
bucketquota=dict(type='bool', required=False, default=False), # noqa E501 bucketquota=dict(type='bool', required=False, default=False), # noqa: E501
bucketmaxsize=dict(type='str', required=False, default='-1'), # noqa E501 bucketmaxsize=dict(type='str', required=False, default='-1'), # noqa: E501
bucketmaxobjects=dict(type='int', required=False, default=-1)))) # noqa E501 bucketmaxobjects=dict(type='int', required=False, default=-1)))) # noqa: E501
# the AnsibleModule object # the AnsibleModule object
module = AnsibleModule(argument_spec=fields, module = AnsibleModule(argument_spec=fields,
@ -533,8 +533,8 @@ def main():
# radosgw connection # radosgw connection
rgw = radosgw.connection.RadosGWAdminConnection(host=rgw_host, rgw = radosgw.connection.RadosGWAdminConnection(host=rgw_host,
port=port, port=port,
access_key=admin_access_key, # noqa E501 access_key=admin_access_key, # noqa: E501
secret_key=admin_secret_key, # noqa E501 secret_key=admin_secret_key, # noqa: E501
aws_signature='AWS4', aws_signature='AWS4',
is_secure=is_secure) is_secure=is_secure)

View File

@ -114,9 +114,9 @@ def sort_osd_crush_location(location, module):
"region", "region",
"root", "root",
] ]
return sorted(location, key=lambda crush: crush_bucket_types.index(crush[0])) # noqa E501 return sorted(location, key=lambda crush: crush_bucket_types.index(crush[0])) # noqa: E501
except ValueError as error: except ValueError as error:
fatal("{} is not a valid CRUSH bucket, valid bucket types are {}".format(error.args[0].split()[0], crush_bucket_types), module) # noqa E501 fatal("{} is not a valid CRUSH bucket, valid bucket types are {}".format(error.args[0].split()[0], crush_bucket_types), module) # noqa: E501
def create_and_move_buckets_list(cluster, location, containerized=None): def create_and_move_buckets_list(cluster, location, containerized=None):
@ -128,10 +128,10 @@ def create_and_move_buckets_list(cluster, location, containerized=None):
for item in location: for item in location:
bucket_type, bucket_name = item bucket_type, bucket_name = item
# ceph osd crush add-bucket maroot root # ceph osd crush add-bucket maroot root
cmd_list.append(generate_cmd(cluster, "add-bucket", bucket_name, bucket_type, containerized)) # noqa E501 cmd_list.append(generate_cmd(cluster, "add-bucket", bucket_name, bucket_type, containerized)) # noqa: E501
if previous_bucket: if previous_bucket:
# ceph osd crush move monrack root=maroot # ceph osd crush move monrack root=maroot
cmd_list.append(generate_cmd(cluster, "move", previous_bucket, "%s=%s" % (bucket_type, bucket_name), containerized)) # noqa E501 cmd_list.append(generate_cmd(cluster, "move", previous_bucket, "%s=%s" % (bucket_type, bucket_name), containerized)) # noqa: E501
previous_bucket = item[1] previous_bucket = item[1]
return cmd_list return cmd_list
@ -178,7 +178,7 @@ def run_module():
startd = datetime.datetime.now() startd = datetime.datetime.now()
# run the Ceph command to add buckets # run the Ceph command to add buckets
rc, cmd, out, err = exec_commands(module, create_and_move_buckets_list(cluster, location, containerized)) # noqa E501 rc, cmd, out, err = exec_commands(module, create_and_move_buckets_list(cluster, location, containerized)) # noqa: E501
endd = datetime.datetime.now() endd = datetime.datetime.now()
delta = endd - startd delta = endd - startd

View File

@ -103,12 +103,12 @@ EXAMPLES = '''
RETURN = '''# ''' RETURN = '''# '''
from ansible.module_utils.basic import AnsibleModule # noqa E402 from ansible.module_utils.basic import AnsibleModule # noqa: E402
import datetime # noqa E402 import datetime # noqa: E402
import json # noqa E402 import json # noqa: E402
import os # noqa E402 import os # noqa: E402
import stat # noqa E402 import stat # noqa: E402
import time # noqa E402 import time # noqa: E402
def container_exec(binary, container_image, interactive=False): def container_exec(binary, container_image, interactive=False):
@ -202,7 +202,10 @@ def create_user(module, container_image=None):
password = module.params.get('password') password = module.params.get('password')
args = ['ac-user-create', name, password] args = ['ac-user-create', name, password]
cmd = generate_ceph_cmd(cluster=cluster, args=args, container_image=container_image, interactive=interactive) cmd = generate_ceph_cmd(cluster=cluster,
args=args,
container_image=container_image,
interactive=interactive)
return cmd return cmd
@ -220,7 +223,9 @@ def set_roles(module, container_image=None):
args.extend(roles) args.extend(roles)
cmd = generate_ceph_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_ceph_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -240,7 +245,10 @@ def set_password(module, container_image=None):
password = module.params.get('password') password = module.params.get('password')
args = ['ac-user-set-password', name, password] args = ['ac-user-set-password', name, password]
cmd = generate_ceph_cmd(cluster=cluster, args=args, container_image=container_image, interactive=interactive) cmd = generate_ceph_cmd(cluster=cluster,
args=args,
container_image=container_image,
interactive=interactive)
return cmd return cmd
@ -255,7 +263,9 @@ def get_user(module, container_image=None):
args = ['ac-user-show', name, '--format=json'] args = ['ac-user-show', name, '--format=json']
cmd = generate_ceph_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_ceph_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -270,7 +280,9 @@ def remove_user(module, container_image=None):
args = ['ac-user-delete', name] args = ['ac-user-delete', name]
cmd = generate_ceph_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_ceph_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -296,11 +308,11 @@ def run_module():
module_args = dict( module_args = dict(
cluster=dict(type='str', required=False, default='ceph'), cluster=dict(type='str', required=False, default='ceph'),
name=dict(type='str', required=True), name=dict(type='str', required=True),
state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), # noqa: E501
password=dict(type='str', required=False, no_log=True), password=dict(type='str', required=False, no_log=True),
roles=dict(type='list', roles=dict(type='list',
required=False, required=False,
choices=['administrator', 'read-only', 'block-manager', 'rgw-manager', 'cluster-manager', 'pool-manager', 'cephfs-manager'], choices=['administrator', 'read-only', 'block-manager', 'rgw-manager', 'cluster-manager', 'pool-manager', 'cephfs-manager'], # noqa: E501
default=[]), default=[]),
interactive=dict(type='bool', required=False, default=True), interactive=dict(type='bool', required=False, default=True),
) )
@ -336,7 +348,7 @@ def run_module():
container_image = is_containerized() container_image = is_containerized()
if state == "present": if state == "present":
rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) # noqa: E501
stdin = password stdin = password
if not interactive: if not interactive:
stdin = None stdin = None
@ -345,27 +357,27 @@ def run_module():
user['roles'].sort() user['roles'].sort()
roles.sort() roles.sort()
if user['roles'] != roles: if user['roles'] != roles:
rc, cmd, out, err = exec_commands(module, set_roles(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, set_roles(module, container_image=container_image)) # noqa: E501
changed = True changed = True
rc, cmd, out, err = exec_commands(module, set_password(module, container_image=container_image), stdin=stdin) rc, cmd, out, err = exec_commands(module, set_password(module, container_image=container_image), stdin=stdin) # noqa: E501
else: else:
rc, cmd, out, err = exec_commands(module, create_user(module, container_image=container_image), stdin=stdin) rc, cmd, out, err = exec_commands(module, create_user(module, container_image=container_image), stdin=stdin) # noqa: E501
rc, cmd, out, err = exec_commands(module, set_roles(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, set_roles(module, container_image=container_image)) # noqa: E501
changed = True changed = True
elif state == "absent": elif state == "absent":
rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
rc, cmd, out, err = exec_commands(module, remove_user(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, remove_user(module, container_image=container_image)) # noqa: E501
changed = True changed = True
else: else:
rc = 0 rc = 0
out = "Dashboard User {} doesn't exist".format(name) out = "Dashboard User {} doesn't exist".format(name)
elif state == "info": elif state == "info":
rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) # noqa: E501
exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) # noqa: E501
def main(): def main():

View File

@ -91,12 +91,12 @@ EXAMPLES = '''
RETURN = '''# ''' RETURN = '''# '''
from ansible.module_utils.basic import AnsibleModule # noqa E402 from ansible.module_utils.basic import AnsibleModule # noqa: E402
import datetime # noqa E402 import datetime # noqa: E402
import json # noqa E402 import json # noqa: E402
import os # noqa E402 import os # noqa: E402
import stat # noqa E402 import stat # noqa: E402
import time # noqa E402 import time # noqa: E402
def container_exec(binary, container_image): def container_exec(binary, container_image):
@ -181,7 +181,9 @@ def create_fs(module, container_image=None):
args = ['new', name, metadata, data] args = ['new', name, metadata, data]
cmd = generate_ceph_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_ceph_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -196,7 +198,9 @@ def get_fs(module, container_image=None):
args = ['get', name, '--format=json'] args = ['get', name, '--format=json']
cmd = generate_ceph_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_ceph_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -211,7 +215,9 @@ def remove_fs(module, container_image=None):
args = ['rm', name, '--yes-i-really-mean-it'] args = ['rm', name, '--yes-i-really-mean-it']
cmd = generate_ceph_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_ceph_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -226,7 +232,9 @@ def fail_fs(module, container_image=None):
args = ['fail', name] args = ['fail', name]
cmd = generate_ceph_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_ceph_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -242,7 +250,9 @@ def set_fs(module, container_image=None):
args = ['set', name, 'max_mds', str(max_mds)] args = ['set', name, 'max_mds', str(max_mds)]
cmd = generate_ceph_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_ceph_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -268,7 +278,7 @@ def run_module():
module_args = dict( module_args = dict(
cluster=dict(type='str', required=False, default='ceph'), cluster=dict(type='str', required=False, default='ceph'),
name=dict(type='str', required=True), name=dict(type='str', required=True),
state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), # noqa: E501
data=dict(type='str', required=False), data=dict(type='str', required=False),
metadata=dict(type='str', required=False), metadata=dict(type='str', required=False),
max_mds=dict(type='int', required=False), max_mds=dict(type='int', required=False),
@ -303,25 +313,25 @@ def run_module():
container_image = is_containerized() container_image = is_containerized()
if state == "present": if state == "present":
rc, cmd, out, err = exec_commands(module, get_fs(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_fs(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
fs = json.loads(out) fs = json.loads(out)
if max_mds and fs["mdsmap"]["max_mds"] != max_mds: if max_mds and fs["mdsmap"]["max_mds"] != max_mds:
rc, cmd, out, err = exec_commands(module, set_fs(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, set_fs(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
changed = True changed = True
else: else:
rc, cmd, out, err = exec_commands(module, create_fs(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, create_fs(module, container_image=container_image)) # noqa: E501
if max_mds and max_mds > 1: if max_mds and max_mds > 1:
exec_commands(module, set_fs(module, container_image=container_image)) exec_commands(module, set_fs(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
changed = True changed = True
elif state == "absent": elif state == "absent":
rc, cmd, out, err = exec_commands(module, get_fs(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_fs(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
exec_commands(module, fail_fs(module, container_image=container_image)) exec_commands(module, fail_fs(module, container_image=container_image)) # noqa: E501
rc, cmd, out, err = exec_commands(module, remove_fs(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, remove_fs(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
changed = True changed = True
else: else:
@ -329,9 +339,9 @@ def run_module():
out = "Ceph File System {} doesn't exist".format(name) out = "Ceph File System {} doesn't exist".format(name)
elif state == "info": elif state == "info":
rc, cmd, out, err = exec_commands(module, get_fs(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_fs(module, container_image=container_image)) # noqa: E501
exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) # noqa: E501
def main(): def main():

View File

@ -100,7 +100,7 @@ options:
description: description:
- Fetch client.admin and bootstrap key. - Fetch client.admin and bootstrap key.
This is only needed for Nautilus and above. This is only needed for Nautilus and above.
Writes down to the filesystem the initial keys generated by the monitor. # noqa E501 Writes down to the filesystem the initial keys generated by the monitor. # noqa: E501
This command can ONLY run from a monitor node. This command can ONLY run from a monitor node.
required: false required: false
default: false default: false
@ -109,8 +109,8 @@ options:
EXAMPLES = ''' EXAMPLES = '''
keys_to_create: keys_to_create:
- { name: client.key, key: "AQAin8tUUK84ExAA/QgBtI7gEMWdmnvKBzlXdQ==", caps: { mon: "allow rwx", mds: "allow *" } , mode: "0600" } # noqa e501 - { name: client.key, key: "AQAin8tUUK84ExAA/QgBtI7gEMWdmnvKBzlXdQ==", caps: { mon: "allow rwx", mds: "allow *" } , mode: "0600" } # noqa: E501
- { name: client.cle, caps: { mon: "allow r", osd: "allow *" } , mode: "0600" } # noqa e501 - { name: client.cle, caps: { mon: "allow r", osd: "allow *" } , mode: "0600" } # noqa: E501
caps: caps:
mon: "allow rwx" mon: "allow rwx"
@ -175,20 +175,20 @@ caps:
RETURN = '''# ''' RETURN = '''# '''
from ansible.module_utils.basic import AnsibleModule # noqa E402 from ansible.module_utils.basic import AnsibleModule # noqa: E402
import datetime # noqa E402 import datetime # noqa: E402
import grp # noqa E402 import grp # noqa: E402
import json # noqa E402 import json # noqa: E402
import os # noqa E402 import os # noqa: E402
import pwd # noqa E402 import pwd # noqa: E402
import stat # noqa E402 import stat # noqa: E402
import struct # noqa E402 import struct # noqa: E402
import time # noqa E402 import time # noqa: E402
import base64 # noqa E402 import base64 # noqa: E402
import socket # noqa E402 import socket # noqa: E402
CEPH_INITIAL_KEYS = ['client.admin', 'client.bootstrap-mds', 'client.bootstrap-mgr', # noqa E501 CEPH_INITIAL_KEYS = ['client.admin', 'client.bootstrap-mds', 'client.bootstrap-mgr', # noqa: E501
'client.bootstrap-osd', 'client.bootstrap-rbd', 'client.bootstrap-rbd-mirror', 'client.bootstrap-rgw'] # noqa E501 'client.bootstrap-osd', 'client.bootstrap-rbd', 'client.bootstrap-rbd-mirror', 'client.bootstrap-rgw'] # noqa: E501
def str_to_bool(val): def str_to_bool(val):
@ -304,7 +304,7 @@ def generate_ceph_cmd(cluster, args, user, user_key_path, container_image=None):
return cmd return cmd
def generate_ceph_authtool_cmd(cluster, name, secret, caps, dest, container_image=None): # noqa E501 def generate_ceph_authtool_cmd(cluster, name, secret, caps, dest, container_image=None): # noqa: E501
''' '''
Generate 'ceph-authtool' command line to execute Generate 'ceph-authtool' command line to execute
''' '''
@ -332,7 +332,7 @@ def generate_ceph_authtool_cmd(cluster, name, secret, caps, dest, container_imag
return cmd return cmd
def create_key(module, result, cluster, user, user_key_path, name, secret, caps, import_key, dest, container_image=None): # noqa E501 def create_key(module, result, cluster, user, user_key_path, name, secret, caps, import_key, dest, container_image=None): # noqa: E501
''' '''
Create a CephX key Create a CephX key
''' '''
@ -396,7 +396,7 @@ def get_key(cluster, user, user_key_path, name, dest, container_image=None):
return cmd_list return cmd_list
def info_key(cluster, name, user, user_key_path, output_format, container_image=None): # noqa E501 def info_key(cluster, name, user, user_key_path, output_format, container_image=None): # noqa: E501
''' '''
Get information about a CephX key Get information about a CephX key
''' '''
@ -457,7 +457,7 @@ def lookup_ceph_initial_entities(module, out):
try: try:
out_dict = json.loads(out) out_dict = json.loads(out)
except ValueError as e: except ValueError as e:
fatal("Could not decode 'ceph auth list' json output: {}".format(e), module) # noqa E501 fatal("Could not decode 'ceph auth list' json output: {}".format(e), module) # noqa: E501
entities = [] entities = []
if "auth_dump" in out_dict: if "auth_dump" in out_dict:
@ -467,16 +467,16 @@ def lookup_ceph_initial_entities(module, out):
if v in CEPH_INITIAL_KEYS: if v in CEPH_INITIAL_KEYS:
entities.append(v) entities.append(v)
else: else:
fatal("'auth_dump' key not present in json output:", module) # noqa E501 fatal("'auth_dump' key not present in json output:", module) # noqa: E501
if len(entities) != len(CEPH_INITIAL_KEYS) and not str_to_bool(os.environ.get('CEPH_ROLLING_UPDATE', False)): # noqa E501 if len(entities) != len(CEPH_INITIAL_KEYS) and not str_to_bool(os.environ.get('CEPH_ROLLING_UPDATE', False)): # noqa: E501
# must be missing in auth_dump, as if it were in CEPH_INITIAL_KEYS # must be missing in auth_dump, as if it were in CEPH_INITIAL_KEYS
# it'd be in entities from the above test. Report what's missing. # it'd be in entities from the above test. Report what's missing.
missing = [] missing = []
for e in CEPH_INITIAL_KEYS: for e in CEPH_INITIAL_KEYS:
if e not in entities: if e not in entities:
missing.append(e) missing.append(e)
fatal("initial keyring does not contain keys: " + ' '.join(missing), module) # noqa E501 fatal("initial keyring does not contain keys: " + ' '.join(missing), module) # noqa: E501
return entities return entities
@ -507,8 +507,8 @@ def run_module():
module_args = dict( module_args = dict(
cluster=dict(type='str', required=False, default='ceph'), cluster=dict(type='str', required=False, default='ceph'),
name=dict(type='str', required=False), name=dict(type='str', required=False),
state=dict(type='str', required=False, default='present', choices=['present', 'update', 'absent', state=dict(type='str', required=False, default='present', choices=['present', 'update', 'absent', # noqa: E501
'list', 'info', 'fetch_initial_keys', 'generate_secret']), 'list', 'info', 'fetch_initial_keys', 'generate_secret']), # noqa: E501
caps=dict(type='dict', required=False, default=None), caps=dict(type='dict', required=False, default=None),
secret=dict(type='str', required=False, default=None, no_log=True), secret=dict(type='str', required=False, default=None, no_log=True),
import_key=dict(type='bool', required=False, default=True), import_key=dict(type='bool', required=False, default=True),
@ -591,12 +591,12 @@ def run_module():
if import_key: if import_key:
_info_key = [] _info_key = []
rc, cmd, out, err = exec_commands( rc, cmd, out, err = exec_commands(
module, info_key(cluster, name, user, user_key_path, output_format, container_image)) # noqa E501 module, info_key(cluster, name, user, user_key_path, output_format, container_image)) # noqa: E501
key_exist = rc key_exist = rc
if not caps and key_exist != 0: if not caps and key_exist != 0:
fatal("Capabilities must be provided when state is 'present'", module) # noqa E501 fatal("Capabilities must be provided when state is 'present'", module) # noqa: E501
if key_exist != 0 and secret is None and caps is None: if key_exist != 0 and secret is None and caps is None:
fatal("Keyring doesn't exist, you must provide 'secret' and 'caps'", module) # noqa E501 fatal("Keyring doesn't exist, you must provide 'secret' and 'caps'", module) # noqa: E501
if key_exist == 0: if key_exist == 0:
_info_key = json.loads(out) _info_key = json.loads(out)
if not secret: if not secret:
@ -607,25 +607,25 @@ def run_module():
_caps = _info_key[0]['caps'] _caps = _info_key[0]['caps']
if secret == _secret and caps == _caps: if secret == _secret and caps == _caps:
if not os.path.isfile(file_path): if not os.path.isfile(file_path):
rc, cmd, out, err = exec_commands(module, get_key(cluster, user, user_key_path, name, file_path, container_image)) # noqa E501 rc, cmd, out, err = exec_commands(module, get_key(cluster, user, user_key_path, name, file_path, container_image)) # noqa: E501
result["rc"] = rc result["rc"] = rc
if rc != 0: if rc != 0:
result["stdout"] = "Couldn't fetch the key {0} at {1}.".format(name, file_path) # noqa E501 result["stdout"] = "Couldn't fetch the key {0} at {1}.".format(name, file_path) # noqa: E501
module.exit_json(**result) module.exit_json(**result)
result["stdout"] = "fetched the key {0} at {1}.".format(name, file_path) # noqa E501 result["stdout"] = "fetched the key {0} at {1}.".format(name, file_path) # noqa: E501
result["stdout"] = "{0} already exists and doesn't need to be updated.".format(name) # noqa E501 result["stdout"] = "{0} already exists and doesn't need to be updated.".format(name) # noqa: E501
result["rc"] = 0 result["rc"] = 0
module.set_fs_attributes_if_different(file_args, False) module.set_fs_attributes_if_different(file_args, False)
module.exit_json(**result) module.exit_json(**result)
else: else:
if os.path.isfile(file_path) and not secret or not caps: if os.path.isfile(file_path) and not secret or not caps:
result["stdout"] = "{0} already exists in {1} you must provide secret *and* caps when import_key is {2}".format(name, dest, import_key) # noqa E501 result["stdout"] = "{0} already exists in {1} you must provide secret *and* caps when import_key is {2}".format(name, dest, import_key) # noqa: E501
result["rc"] = 0 result["rc"] = 0
module.exit_json(**result) module.exit_json(**result)
if (key_exist == 0 and (secret != _secret or caps != _caps)) or key_exist != 0: # noqa E501 if (key_exist == 0 and (secret != _secret or caps != _caps)) or key_exist != 0: # noqa: E501
rc, cmd, out, err = exec_commands(module, create_key( rc, cmd, out, err = exec_commands(module, create_key(
module, result, cluster, user, user_key_path, name, secret, caps, import_key, file_path, container_image)) # noqa E501 module, result, cluster, user, user_key_path, name, secret, caps, import_key, file_path, container_image)) # noqa: E501
if rc != 0: if rc != 0:
result["stdout"] = "Couldn't create or update {0}".format(name) result["stdout"] = "Couldn't create or update {0}".format(name)
result["stderr"] = err result["stderr"] = err
@ -636,7 +636,7 @@ def run_module():
elif state == "absent": elif state == "absent":
if key_exist == 0: if key_exist == 0:
rc, cmd, out, err = exec_commands( rc, cmd, out, err = exec_commands(
module, delete_key(cluster, user, user_key_path, name, container_image)) module, delete_key(cluster, user, user_key_path, name, container_image)) # noqa: E501
if rc == 0: if rc == 0:
changed = True changed = True
else: else:
@ -644,7 +644,7 @@ def run_module():
elif state == "info": elif state == "info":
rc, cmd, out, err = exec_commands( rc, cmd, out, err = exec_commands(
module, info_key(cluster, name, user, user_key_path, output_format, container_image)) # noqa E501 module, info_key(cluster, name, user, user_key_path, output_format, container_image)) # noqa: E501
elif state == "list": elif state == "list":
rc, cmd, out, err = exec_commands( rc, cmd, out, err = exec_commands(
@ -685,7 +685,7 @@ def run_module():
# we use info_cmd[0] because info_cmd is an array made of an array # we use info_cmd[0] because info_cmd is an array made of an array
info_cmd[0].extend(extra_args) info_cmd[0].extend(extra_args)
rc, cmd, out, err = exec_commands( rc, cmd, out, err = exec_commands(
module, info_cmd) # noqa E501 module, info_cmd) # noqa: E501
file_args = module.load_file_common_arguments(module.params) file_args = module.load_file_common_arguments(module.params)
file_args['path'] = key_path file_args['path'] = key_path

View File

@ -38,7 +38,8 @@ options:
description: description:
- name of the ceph OSD flag. - name of the ceph OSD flag.
required: true required: true
choices: ['noup', 'nodown', 'noout', 'nobackfill', 'norebalance', 'norecover', 'noscrub', 'nodeep-scrub'] choices: ['noup', 'nodown', 'noout', 'nobackfill', 'norebalance',
'norecover', 'noscrub', 'nodeep-scrub']
cluster: cluster:
description: description:
- The ceph cluster name. - The ceph cluster name.
@ -158,9 +159,9 @@ def generate_ceph_cmd(sub_cmd, args, user_key=None, cluster='ceph', user='client
def main(): def main():
module = AnsibleModule( module = AnsibleModule(
argument_spec=dict( argument_spec=dict(
name=dict(type='str', required=True, choices=['noup', 'nodown', 'noout', 'nobackfill', 'norebalance', 'norecover', 'noscrub', 'nodeep-scrub']), name=dict(type='str', required=True, choices=['noup', 'nodown', 'noout', 'nobackfill', 'norebalance', 'norecover', 'noscrub', 'nodeep-scrub']), # noqa: E501
cluster=dict(type='str', required=False, default='ceph'), cluster=dict(type='str', required=False, default='ceph'),
state=dict(type='str', required=False, default='present', choices=['present', 'absent']), state=dict(type='str', required=False, default='present', choices=['present', 'absent']), # noqa: E501
), ),
supports_check_mode=True, supports_check_mode=True,
) )
@ -174,9 +175,9 @@ def main():
container_image = is_containerized() container_image = is_containerized()
if state == 'present': if state == 'present':
cmd = generate_ceph_cmd(['osd', 'set'], [name], cluster=cluster, container_image=container_image) cmd = generate_ceph_cmd(['osd', 'set'], [name], cluster=cluster, container_image=container_image) # noqa: E501
else: else:
cmd = generate_ceph_cmd(['osd', 'unset'], [name], cluster=cluster, container_image=container_image) cmd = generate_ceph_cmd(['osd', 'unset'], [name], cluster=cluster, container_image=container_image) # noqa: E501
if module.check_mode: if module.check_mode:
exit_module( exit_module(

View File

@ -135,12 +135,12 @@ pools:
RETURN = '''# ''' RETURN = '''# '''
from ansible.module_utils.basic import AnsibleModule # noqa E402 from ansible.module_utils.basic import AnsibleModule # noqa: E402
import datetime # noqa E402 import datetime # noqa: E402
import json # noqa E402 import json # noqa: E402
import os # noqa E402 import os # noqa: E402
import stat # noqa E402 import stat # noqa: E402
import time # noqa E402 import time # noqa: E402
def container_exec(binary, container_image): def container_exec(binary, container_image):
@ -356,7 +356,8 @@ def get_pool_details(module,
user_key, # noqa: E501 user_key, # noqa: E501
container_image=container_image)) # noqa: E501 container_image=container_image)) # noqa: E501
# This is a trick because "target_size_ratio" isn't present at the same level in the dict # This is a trick because "target_size_ratio" isn't present at the same
# level in the dict
# ie: # ie:
# { # {
# 'pg_num': 8, # 'pg_num': 8,
@ -366,8 +367,8 @@ def get_pool_details(module,
# 'target_size_ratio': 0.1 # 'target_size_ratio': 0.1
# } # }
# } # }
# If 'target_size_ratio' is present in 'options', we set it, this way we end up # If 'target_size_ratio' is present in 'options', we set it, this way we
# with a dict containing all needed keys at the same level. # end up with a dict containing all needed keys at the same level.
if 'target_size_ratio' in out['options'].keys(): if 'target_size_ratio' in out['options'].keys():
out['target_size_ratio'] = out['options']['target_size_ratio'] out['target_size_ratio'] = out['options']['target_size_ratio']
else: else:
@ -392,7 +393,7 @@ def compare_pool_config(user_pool_config, running_pool_details):
filter_keys = ['pg_num', 'pg_placement_num', 'size', filter_keys = ['pg_num', 'pg_placement_num', 'size',
'pg_autoscale_mode', 'target_size_ratio'] 'pg_autoscale_mode', 'target_size_ratio']
for key in filter_keys: for key in filter_keys:
if (str(running_pool_details[key]) != user_pool_config[key]['value'] and if (str(running_pool_details[key]) != user_pool_config[key]['value'] and # noqa: E501
user_pool_config[key]['value']): user_pool_config[key]['value']):
delta[key] = user_pool_config[key] delta[key] = user_pool_config[key]

View File

@ -74,7 +74,7 @@ options:
required: false required: false
db_vg: db_vg:
description: description:
- If db is a lv, this must be the name of the volume group it belongs to. # noqa E501 - If db is a lv, this must be the name of the volume group it belongs to. # noqa: E501
- Only applicable if objectstore is 'bluestore'. - Only applicable if objectstore is 'bluestore'.
required: false required: false
wal: wal:
@ -84,7 +84,7 @@ options:
required: false required: false
wal_vg: wal_vg:
description: description:
- If wal is a lv, this must be the name of the volume group it belongs to. # noqa E501 - If wal is a lv, this must be the name of the volume group it belongs to. # noqa: E501
- Only applicable if objectstore is 'bluestore'. - Only applicable if objectstore is 'bluestore'.
required: false required: false
crush_device_class: crush_device_class:
@ -174,7 +174,7 @@ EXAMPLES = '''
action: create action: create
- name: set up a bluestore osd with an lv for data and partitions for block.wal and block.db # noqa e501 - name: set up a bluestore osd with an lv for data and partitions for block.wal and block.db # noqa: E501
ceph_volume: ceph_volume:
objectstore: bluestore objectstore: bluestore
data: data-lv data: data-lv
@ -185,7 +185,7 @@ EXAMPLES = '''
''' '''
from ansible.module_utils.basic import AnsibleModule # noqa 4502 from ansible.module_utils.basic import AnsibleModule # noqa: E402
def fatal(message, module): def fatal(message, module):
@ -306,7 +306,7 @@ def batch(module, container_image, report=None):
fatal('osds_per_device must be provided if action is "batch"', module) fatal('osds_per_device must be provided if action is "batch"', module)
if osds_per_device < 1: if osds_per_device < 1:
fatal('osds_per_device must be greater than 0 if action is "batch"', module) # noqa E501 fatal('osds_per_device must be greater than 0 if action is "batch"', module) # noqa: E501
if not batch_devices: if not batch_devices:
fatal('batch_devices must be provided if action is "batch"', module) fatal('batch_devices must be provided if action is "batch"', module)
@ -475,7 +475,7 @@ def is_lv(module, vg, lv, container_image):
Check if an LV exists Check if an LV exists
''' '''
args = ['--noheadings', '--reportformat', 'json', '--select', 'lv_name={},vg_name={}'.format(lv, vg)] # noqa E501 args = ['--noheadings', '--reportformat', 'json', '--select', 'lv_name={},vg_name={}'.format(lv, vg)] # noqa: E501
cmd = build_cmd(args, container_image, binary='lvs') cmd = build_cmd(args, container_image, binary='lvs')
@ -548,7 +548,7 @@ def run_module():
'bluestore', 'filestore'], default='bluestore'), 'bluestore', 'filestore'], default='bluestore'),
action=dict(type='str', required=False, choices=[ action=dict(type='str', required=False, choices=[
'create', 'zap', 'batch', 'prepare', 'activate', 'list', 'create', 'zap', 'batch', 'prepare', 'activate', 'list',
'inventory'], default='create'), # noqa 4502 'inventory'], default='create'), # noqa: 4502
data=dict(type='str', required=False), data=dict(type='str', required=False),
data_vg=dict(type='str', required=False), data_vg=dict(type='str', required=False),
journal=dict(type='str', required=False), journal=dict(type='str', required=False),
@ -623,11 +623,11 @@ def run_module():
try: try:
out_dict = json.loads(out) out_dict = json.loads(out)
except ValueError: except ValueError:
fatal("Could not decode json output: {} from the command {}".format(out, cmd), module) # noqa E501 fatal("Could not decode json output: {} from the command {}".format(out, cmd), module) # noqa: E501
if out_dict: if out_dict:
data = module.params['data'] data = module.params['data']
result['stdout'] = 'skipped, since {0} is already used for an osd'.format(data) # noqa E501 result['stdout'] = 'skipped, since {0} is already used for an osd'.format(data) # noqa: E501
result['rc'] = 0 result['rc'] = 0
module.exit_json(**result) module.exit_json(**result)
@ -638,7 +638,7 @@ def run_module():
elif action == 'activate': elif action == 'activate':
if container_image: if container_image:
fatal( fatal(
"This is not how container's activation happens, nothing to activate", module) # noqa E501 "This is not how container's activation happens, nothing to activate", module) # noqa: E501
# Activate the OSD # Activate the OSD
rc, cmd, out, err = exec_command( rc, cmd, out, err = exec_command(
@ -649,16 +649,16 @@ def run_module():
skip = [] skip = []
for device_type in ['journal', 'data', 'db', 'wal']: for device_type in ['journal', 'data', 'db', 'wal']:
# 1/ if we passed vg/lv # 1/ if we passed vg/lv
if module.params.get('{}_vg'.format(device_type), None) and module.params.get(device_type, None): # noqa E501 if module.params.get('{}_vg'.format(device_type), None) and module.params.get(device_type, None): # noqa: E501
# 2/ check this is an actual lv/vg # 2/ check this is an actual lv/vg
ret = is_lv(module, module.params['{}_vg'.format(device_type)], module.params[device_type], container_image) # noqa E501 ret = is_lv(module, module.params['{}_vg'.format(device_type)], module.params[device_type], container_image) # noqa: E501
skip.append(ret) skip.append(ret)
# 3/ This isn't a lv/vg device # 3/ This isn't a lv/vg device
if not ret: if not ret:
module.params['{}_vg'.format(device_type)] = False module.params['{}_vg'.format(device_type)] = False
module.params[device_type] = False module.params[device_type] = False
# 4/ no journal|data|db|wal|_vg was passed, so it must be a raw device # noqa E501 # 4/ no journal|data|db|wal|_vg was passed, so it must be a raw device # noqa: E501
elif not module.params.get('{}_vg'.format(device_type), None) and module.params.get(device_type, None): # noqa E501 elif not module.params.get('{}_vg'.format(device_type), None) and module.params.get(device_type, None): # noqa: E501
skip.append(True) skip.append(True)
cmd = zap_devices(module, container_image) cmd = zap_devices(module, container_image)
@ -751,7 +751,7 @@ def run_module():
else: else:
module.fail_json( module.fail_json(
msg='State must either be "create" or "prepare" or "activate" or "list" or "zap" or "batch" or "inventory".', changed=False, rc=1) # noqa E501 msg='State must either be "create" or "prepare" or "activate" or "list" or "zap" or "batch" or "inventory".', changed=False, rc=1) # noqa: E501
endd = datetime.datetime.now() endd = datetime.datetime.now()
delta = endd - startd delta = endd - startd

View File

@ -143,7 +143,7 @@ def main():
if image: if image:
cmd.extend(['--image', image]) cmd.extend(['--image', image])
cmd.extend(['adopt', '--cluster', cluster, '--name', name, '--style', style]) cmd.extend(['adopt', '--cluster', cluster, '--name', name, '--style', style]) # noqa: E501
if not pull: if not pull:
cmd.append('--skip-pull') cmd.append('--skip-pull')

View File

@ -53,13 +53,13 @@ author:
""" """
import os # noqa E402 import os # noqa: E402
import logging # noqa E402 import logging # noqa: E402
from logging.handlers import RotatingFileHandler # noqa E402 from logging.handlers import RotatingFileHandler # noqa: E402
from ansible.module_utils.basic import * # noqa E402 from ansible.module_utils.basic import * # noqa: E402,F403
from ceph_iscsi_config.client import GWClient # noqa E402 from ceph_iscsi_config.client import GWClient # noqa: E402
import ceph_iscsi_config.settings as settings # noqa E402 import ceph_iscsi_config.settings as settings # noqa: E402
# the main function is called ansible_main to allow the call stack # the main function is called ansible_main to allow the call stack
@ -78,7 +78,7 @@ def ansible_main():
}, },
} }
module = AnsibleModule(argument_spec=fields, # noqa F405 module = AnsibleModule(argument_spec=fields, # noqa: F405
supports_check_mode=False) supports_check_mode=False)
client_iqn = module.params['client_iqn'] client_iqn = module.params['client_iqn']

View File

@ -56,17 +56,17 @@ author:
""" """
import os # noqa E402 import os # noqa: E402
import logging # noqa E402 import logging # noqa: E402
from logging.handlers import RotatingFileHandler # noqa E402 from logging.handlers import RotatingFileHandler # noqa: E402
from ansible.module_utils.basic import * # noqa E402 from ansible.module_utils.basic import * # noqa: E402,F403
import ceph_iscsi_config.settings as settings # noqa E402 import ceph_iscsi_config.settings as settings # noqa: E402
from ceph_iscsi_config.common import Config # noqa E402 from ceph_iscsi_config.common import Config # noqa: E402
from ceph_iscsi_config.gateway import GWTarget # noqa E402 from ceph_iscsi_config.gateway import GWTarget # noqa: E402
from ceph_iscsi_config.utils import valid_ip # noqa E402 from ceph_iscsi_config.utils import valid_ip # noqa: E402
# the main function is called ansible_main to allow the call stack # the main function is called ansible_main to allow the call stack
@ -83,7 +83,7 @@ def ansible_main():
} }
} }
module = AnsibleModule(argument_spec=fields, # noqa F405 module = AnsibleModule(argument_spec=fields, # noqa: F405
supports_check_mode=False) supports_check_mode=False)
cfg = Config(logger) cfg = Config(logger)

View File

@ -8,11 +8,11 @@ module: igw_lun
short_description: Manage ceph rbd images to present as iscsi LUNs to clients short_description: Manage ceph rbd images to present as iscsi LUNs to clients
description: description:
- This module calls the 'lun' configuration management module installed - This module calls the 'lun' configuration management module installed
on the iscsi gateway node(s). The lun module handles the creation and resize # noqa E501 on the iscsi gateway node(s). The lun module handles the creation and resize # noqa: E501
of rbd images, and then maps these rbd devices to the gateway node(s) to be of rbd images, and then maps these rbd devices to the gateway node(s) to be
exposed through the kernel's LIO target. exposed through the kernel's LIO target.
To support module debugging, this module logs to /var/log/ansible-module-igw_config.log # noqa E501 To support module debugging, this module logs to /var/log/ansible-module-igw_config.log # noqa: E501
on the target machine(s). on the target machine(s).
option: option:
@ -70,15 +70,15 @@ author:
""" """
import os # noqa E402 import os # noqa: E402
import logging # noqa E402 import logging # noqa: E402
from logging.handlers import RotatingFileHandler # noqa E402 from logging.handlers import RotatingFileHandler # noqa: E402
from ansible.module_utils.basic import * # noqa E402 from ansible.module_utils.basic import * # noqa: E402,F403
from ceph_iscsi_config.lun import LUN # noqa E402 from ceph_iscsi_config.lun import LUN # noqa: E402
from ceph_iscsi_config.utils import valid_size # noqa E402 from ceph_iscsi_config.utils import valid_size # noqa: E402
import ceph_iscsi_config.settings as settings # noqa E402 import ceph_iscsi_config.settings as settings # noqa: E402
# the main function is called ansible_main to allow the call stack # the main function is called ansible_main to allow the call stack
@ -103,7 +103,7 @@ def ansible_main():
} }
# not supporting check mode currently # not supporting check mode currently
module = AnsibleModule(argument_spec=fields, # noqa F405 module = AnsibleModule(argument_spec=fields, # noqa: F405
supports_check_mode=False) supports_check_mode=False)
pool = module.params["pool"] pool = module.params["pool"]

View File

@ -34,18 +34,18 @@ author:
""" """
import os # noqa E402 import os # noqa: E402
import logging # noqa E402 import logging # noqa: E402
import socket # noqa E402 import socket # noqa: E402,F401
import rados # noqa E402 import rados # noqa: E402
import rbd # noqa E402 import rbd # noqa: E402
from logging.handlers import RotatingFileHandler # noqa E402 from logging.handlers import RotatingFileHandler # noqa: E402
from ansible.module_utils.basic import * # noqa E402 from ansible.module_utils.basic import * # noqa: E402,F403
import ceph_iscsi_config.settings as settings # noqa E402 import ceph_iscsi_config.settings as settings # noqa: E402
from ceph_iscsi_config.common import Config # noqa E402 from ceph_iscsi_config.common import Config # noqa: E402
from ceph_iscsi_config.lun import RBDDev # noqa E402 from ceph_iscsi_config.lun import RBDDev # noqa: E402
__author__ = 'pcuzner@redhat.com' __author__ = 'pcuzner@redhat.com'
@ -81,7 +81,7 @@ def delete_images(cfg):
if rbd_dev.error: if rbd_dev.error:
if rbd_dev.error_msg: if rbd_dev.error_msg:
logger.error("Could not remove {}. Error: {}. Manually run the " # noqa E501 logger.error("Could not remove {}. Error: {}. Manually run the " # noqa: E501
"rbd command line tool to delete.". "rbd command line tool to delete.".
format(image, rbd_dev.error_msg)) format(image, rbd_dev.error_msg))
else: else:
@ -117,7 +117,7 @@ def ansible_main():
} }
} }
module = AnsibleModule(argument_spec=fields, # noqa F405 module = AnsibleModule(argument_spec=fields, # noqa: F405
supports_check_mode=False) supports_check_mode=False)
run_mode = module.params['mode'] run_mode = module.params['mode']

View File

@ -81,12 +81,12 @@ EXAMPLES = '''
RETURN = '''# ''' RETURN = '''# '''
from ansible.module_utils.basic import AnsibleModule # noqa E402 from ansible.module_utils.basic import AnsibleModule # noqa: E402
import datetime # noqa E402 import datetime # noqa: E402
import json # noqa E402 import json # noqa: E402
import os # noqa E402 import os # noqa: E402
import stat # noqa E402 import stat # noqa: E402
import time # noqa E402 import time # noqa: E402
def container_exec(binary, container_image): def container_exec(binary, container_image):
@ -173,7 +173,9 @@ def create_realm(module, container_image=None):
if default: if default:
args.append('--default') args.append('--default')
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -188,7 +190,9 @@ def get_realm(module, container_image=None):
args = ['get', '--rgw-realm=' + name, '--format=json'] args = ['get', '--rgw-realm=' + name, '--format=json']
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -203,7 +207,9 @@ def remove_realm(module, container_image=None):
args = ['delete', '--rgw-realm=' + name] args = ['delete', '--rgw-realm=' + name]
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -229,7 +235,7 @@ def run_module():
module_args = dict( module_args = dict(
cluster=dict(type='str', required=False, default='ceph'), cluster=dict(type='str', required=False, default='ceph'),
name=dict(type='str', required=True), name=dict(type='str', required=True),
state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), # noqa: E501
default=dict(type='bool', required=False, default=False), default=dict(type='bool', required=False, default=False),
) )
@ -260,24 +266,24 @@ def run_module():
container_image = is_containerized() container_image = is_containerized()
if state == "present": if state == "present":
rc, cmd, out, err = exec_commands(module, get_realm(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_realm(module, container_image=container_image)) # noqa: E501
if rc != 0: if rc != 0:
rc, cmd, out, err = exec_commands(module, create_realm(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, create_realm(module, container_image=container_image)) # noqa: E501
changed = True changed = True
elif state == "absent": elif state == "absent":
rc, cmd, out, err = exec_commands(module, get_realm(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_realm(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
rc, cmd, out, err = exec_commands(module, remove_realm(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, remove_realm(module, container_image=container_image)) # noqa: E501
changed = True changed = True
else: else:
rc = 0 rc = 0
out = "Realm {} doesn't exist".format(name) out = "Realm {} doesn't exist".format(name)
elif state == "info": elif state == "info":
rc, cmd, out, err = exec_commands(module, get_realm(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_realm(module, container_image=container_image)) # noqa: E501
exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) # noqa: E501
def main(): def main():

View File

@ -129,12 +129,12 @@ EXAMPLES = '''
RETURN = '''# ''' RETURN = '''# '''
from ansible.module_utils.basic import AnsibleModule # noqa E402 from ansible.module_utils.basic import AnsibleModule # noqa: E402
import datetime # noqa E402 import datetime # noqa: E402
import json # noqa E402 import json # noqa: E402
import os # noqa E402 import os # noqa: E402
import stat # noqa E402 import stat # noqa: E402
import time # noqa E402 import time # noqa: E402
def container_exec(binary, container_image): def container_exec(binary, container_image):
@ -252,7 +252,9 @@ def create_user(module, container_image=None):
if admin: if admin:
args.append('--admin') args.append('--admin')
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -305,7 +307,9 @@ def modify_user(module, container_image=None):
if admin: if admin:
args.append('--admin') args.append('--admin')
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -361,7 +365,9 @@ def remove_user(module, container_image=None):
if zone: if zone:
args.extend(['--rgw-zone=' + zone]) args.extend(['--rgw-zone=' + zone])
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -387,7 +393,7 @@ def run_module():
module_args = dict( module_args = dict(
cluster=dict(type='str', required=False, default='ceph'), cluster=dict(type='str', required=False, default='ceph'),
name=dict(type='str', required=True), name=dict(type='str', required=True),
state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), # noqa: E501
display_name=dict(type='str', required=False), display_name=dict(type='str', required=False),
email=dict(type='str', required=False), email=dict(type='str', required=False),
access_key=dict(type='str', required=False), access_key=dict(type='str', required=False),
@ -434,7 +440,7 @@ def run_module():
container_image = is_containerized() container_image = is_containerized()
if state == "present": if state == "present":
rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
user = json.loads(out) user = json.loads(out)
current = { current = {
@ -458,25 +464,25 @@ def run_module():
asked['secret_key'] = secret_key asked['secret_key'] = secret_key
if current != asked: if current != asked:
rc, cmd, out, err = exec_commands(module, modify_user(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, modify_user(module, container_image=container_image)) # noqa: E501
changed = True changed = True
else: else:
rc, cmd, out, err = exec_commands(module, create_user(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, create_user(module, container_image=container_image)) # noqa: E501
changed = True changed = True
elif state == "absent": elif state == "absent":
rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
rc, cmd, out, err = exec_commands(module, remove_user(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, remove_user(module, container_image=container_image)) # noqa: E501
changed = True changed = True
else: else:
rc = 0 rc = 0
out = "User {} doesn't exist".format(name) out = "User {} doesn't exist".format(name)
elif state == "info": elif state == "info":
rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_user(module, container_image=container_image)) # noqa: E501
exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) # noqa: E501
def main(): def main():

View File

@ -114,12 +114,12 @@ EXAMPLES = '''
RETURN = '''# ''' RETURN = '''# '''
from ansible.module_utils.basic import AnsibleModule # noqa E402 from ansible.module_utils.basic import AnsibleModule # noqa: E402
import datetime # noqa E402 import datetime # noqa: E402
import json # noqa E402 import json # noqa: E402
import os # noqa E402 import os # noqa: E402
import stat # noqa E402 import stat # noqa: E402
import time # noqa E402 import time # noqa: E402
def fatal(message, module): def fatal(message, module):
@ -239,7 +239,9 @@ def create_zone(module, container_image=None):
if master: if master:
args.append('--master') args.append('--master')
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -281,7 +283,9 @@ def modify_zone(module, container_image=None):
if master: if master:
args.append('--master') args.append('--master')
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -354,7 +358,9 @@ def remove_zone(module, container_image=None):
'--rgw-zone=' + name '--rgw-zone=' + name
] ]
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -380,7 +386,7 @@ def run_module():
module_args = dict( module_args = dict(
cluster=dict(type='str', required=False, default='ceph'), cluster=dict(type='str', required=False, default='ceph'),
name=dict(type='str', required=True), name=dict(type='str', required=True),
state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), # noqa: E501
realm=dict(type='str', require=True), realm=dict(type='str', require=True),
zonegroup=dict(type='str', require=True), zonegroup=dict(type='str', require=True),
endpoints=dict(type='list', require=False, default=[]), endpoints=dict(type='list', require=False, default=[]),
@ -420,10 +426,10 @@ def run_module():
container_image = is_containerized() container_image = is_containerized()
if state == "present": if state == "present":
rc, cmd, out, err = exec_commands(module, get_zone(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_zone(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
zone = json.loads(out) zone = json.loads(out)
_rc, _cmd, _out, _err = exec_commands(module, get_zonegroup(module, container_image=container_image)) _rc, _cmd, _out, _err = exec_commands(module, get_zonegroup(module, container_image=container_image)) # noqa: E501
if _rc == 0: if _rc == 0:
zonegroup = json.loads(_out) zonegroup = json.loads(_out)
if not access_key: if not access_key:
@ -431,7 +437,7 @@ def run_module():
if not secret_key: if not secret_key:
secret_key = '' secret_key = ''
current = { current = {
'endpoints': next(zone['endpoints'] for zone in zonegroup['zones'] if zone['name'] == name), 'endpoints': next(zone['endpoints'] for zone in zonegroup['zones'] if zone['name'] == name), # noqa: E501
'access_key': zone['system_key']['access_key'], 'access_key': zone['system_key']['access_key'],
'secret_key': zone['system_key']['secret_key'] 'secret_key': zone['system_key']['secret_key']
} }
@ -441,27 +447,27 @@ def run_module():
'secret_key': secret_key 'secret_key': secret_key
} }
if current != asked: if current != asked:
rc, cmd, out, err = exec_commands(module, modify_zone(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, modify_zone(module, container_image=container_image)) # noqa: E501
changed = True changed = True
else: else:
fatal(_err, module) fatal(_err, module)
else: else:
rc, cmd, out, err = exec_commands(module, create_zone(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, create_zone(module, container_image=container_image)) # noqa: E501
changed = True changed = True
elif state == "absent": elif state == "absent":
rc, cmd, out, err = exec_commands(module, get_zone(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_zone(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
rc, cmd, out, err = exec_commands(module, remove_zone(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, remove_zone(module, container_image=container_image)) # noqa: E501
changed = True changed = True
else: else:
rc = 0 rc = 0
out = "Zone {} doesn't exist".format(name) out = "Zone {} doesn't exist".format(name)
elif state == "info": elif state == "info":
rc, cmd, out, err = exec_commands(module, get_zone(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_zone(module, container_image=container_image)) # noqa: E501
exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) # noqa: E501
def main(): def main():

View File

@ -101,12 +101,12 @@ EXAMPLES = '''
RETURN = '''# ''' RETURN = '''# '''
from ansible.module_utils.basic import AnsibleModule # noqa E402 from ansible.module_utils.basic import AnsibleModule # noqa: E402
import datetime # noqa E402 import datetime # noqa: E402
import json # noqa E402 import json # noqa: E402
import os # noqa E402 import os # noqa: E402
import stat # noqa E402 import stat # noqa: E402
import time # noqa E402 import time # noqa: E402
def container_exec(binary, container_image): def container_exec(binary, container_image):
@ -202,7 +202,9 @@ def create_zonegroup(module, container_image=None):
if master: if master:
args.append('--master') args.append('--master')
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -230,7 +232,9 @@ def modify_zonegroup(module, container_image=None):
if master: if master:
args.append('--master') args.append('--master')
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -244,7 +248,12 @@ def get_zonegroup(module, container_image=None):
name = module.params.get('name') name = module.params.get('name')
realm = module.params.get('realm') realm = module.params.get('realm')
args = ['get', '--rgw-realm=' + realm, '--rgw-zonegroup=' + name, '--format=json'] args = [
'get',
'--rgw-realm=' + realm,
'--rgw-zonegroup=' + name,
'--format=json'
]
cmd = generate_radosgw_cmd(cluster=cluster, cmd = generate_radosgw_cmd(cluster=cluster,
args=args, args=args,
@ -264,7 +273,9 @@ def remove_zonegroup(module, container_image=None):
args = ['delete', '--rgw-realm=' + realm, '--rgw-zonegroup=' + name] args = ['delete', '--rgw-realm=' + realm, '--rgw-zonegroup=' + name]
cmd = generate_radosgw_cmd(cluster=cluster, args=args, container_image=container_image) cmd = generate_radosgw_cmd(cluster=cluster,
args=args,
container_image=container_image)
return cmd return cmd
@ -290,7 +301,7 @@ def run_module():
module_args = dict( module_args = dict(
cluster=dict(type='str', required=False, default='ceph'), cluster=dict(type='str', required=False, default='ceph'),
name=dict(type='str', required=True), name=dict(type='str', required=True),
state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), # noqa: E501
realm=dict(type='str', require=True), realm=dict(type='str', require=True),
endpoints=dict(type='list', require=False, default=[]), endpoints=dict(type='list', require=False, default=[]),
default=dict(type='bool', required=False, default=False), default=dict(type='bool', required=False, default=False),
@ -326,7 +337,7 @@ def run_module():
container_image = is_containerized() container_image = is_containerized()
if state == "present": if state == "present":
rc, cmd, out, err = exec_commands(module, get_zonegroup(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_zonegroup(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
zonegroup = json.loads(out) zonegroup = json.loads(out)
current = { current = {
@ -338,25 +349,25 @@ def run_module():
'master': master 'master': master
} }
if current != asked: if current != asked:
rc, cmd, out, err = exec_commands(module, modify_zonegroup(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, modify_zonegroup(module, container_image=container_image)) # noqa: E501
changed = True changed = True
else: else:
rc, cmd, out, err = exec_commands(module, create_zonegroup(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, create_zonegroup(module, container_image=container_image)) # noqa: E501
changed = True changed = True
elif state == "absent": elif state == "absent":
rc, cmd, out, err = exec_commands(module, get_zonegroup(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_zonegroup(module, container_image=container_image)) # noqa: E501
if rc == 0: if rc == 0:
rc, cmd, out, err = exec_commands(module, remove_zonegroup(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, remove_zonegroup(module, container_image=container_image)) # noqa: E501
changed = True changed = True
else: else:
rc = 0 rc = 0
out = "Zonegroup {} doesn't exist".format(name) out = "Zonegroup {} doesn't exist".format(name)
elif state == "info": elif state == "info":
rc, cmd, out, err = exec_commands(module, get_zonegroup(module, container_image=container_image)) rc, cmd, out, err = exec_commands(module, get_zonegroup(module, container_image=container_image)) # noqa: E501
exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) exit_module(module=module, out=out, rc=rc, cmd=cmd, err=err, startd=startd, changed=changed) # noqa: E501
def main(): def main():