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/7385/head
Wong Hoi Sing Edison 2021-06-18 00:18:07 +08:00 committed by Guillaume Abrioux
parent 87c8e565ef
commit 5938034e5e
22 changed files with 349 additions and 253 deletions

View File

@ -112,7 +112,7 @@ option:
default: unlimited
bucketmaxobjects:
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
default: unlimited
buckets:
@ -263,7 +263,7 @@ error_messages:
returned: always
type: list
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:
@ -334,36 +334,36 @@ def create_users(rgw, users, result):
if email:
if autogenkey:
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,
max_buckets=maxbucket, suspended=suspend) # noqa E501
max_buckets=maxbucket, suspended=suspend) # noqa: E501
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
else:
try:
rgw.create_user(username, fullname, email=email, key_type='s3', # noqa E501
access_key=accesskey, secret_key=secretkey, # noqa E501
max_buckets=maxbucket, suspended=suspend) # noqa E501
rgw.create_user(username, fullname, email=email, key_type='s3', # noqa: E501
access_key=accesskey, secret_key=secretkey, # noqa: E501
max_buckets=maxbucket, suspended=suspend) # noqa: E501
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
else:
if autogenkey:
try:
rgw.create_user(username, fullname, key_type='s3',
generate_key=autogenkey,
max_buckets=maxbucket, suspended=suspend) # noqa E501
max_buckets=maxbucket, suspended=suspend) # noqa: E501
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
else:
try:
rgw.create_user(username, fullname, key_type='s3',
access_key=accesskey, secret_key=secretkey, # noqa E501
max_buckets=maxbucket, suspended=suspend) # noqa E501
access_key=accesskey, secret_key=secretkey, # noqa: E501
max_buckets=maxbucket, suspended=suspend) # noqa: E501
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
if not fail_flag and userquota:
@ -371,15 +371,15 @@ def create_users(rgw, users, result):
rgw.set_quota(username, 'user', max_objects=usermaxobjects,
max_size_kb=usermaxsize, enabled=True)
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
if not fail_flag and bucketquota:
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)
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
if fail_flag:
@ -450,12 +450,12 @@ def create_buckets(rgw, buckets, result):
except radosgw.exception.RadosGWAdminError:
pass
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:
# something went wrong
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['failed_buckets'] = ", ".join(failed_buckets)
@ -467,7 +467,7 @@ def create_bucket(rgw, bucket):
host=rgw._connection[0],
port=rgw.port,
is_secure=rgw.is_secure,
calling_format=boto.s3.connection.OrdinaryCallingFormat(), # noqa E501
calling_format=boto.s3.connection.OrdinaryCallingFormat(), # noqa: E501
)
try:
@ -489,23 +489,23 @@ def main():
admin_access_key=dict(type='str', required=True),
admin_secret_key=dict(type='str', required=True),
buckets=dict(type='list', required=False, elements='dict',
options=dict(bucket=dict(type='str', required=True), # noqa E501
user=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
users=dict(type='list', required=False, elements='dict',
options=dict(username=dict(type='str', required=True), # noqa E501
fullname=dict(type='str', required=True), # noqa E501
email=dict(type='str', required=False), # noqa E501
maxbucket=dict(type='int', required=False, default=1000), # noqa E501
suspend=dict(type='bool', required=False, default=False), # noqa E501
autogenkey=dict(type='bool', required=False, default=True), # noqa E501
accesskey=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
usermaxsize=dict(type='str', 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
bucketmaxsize=dict(type='str', required=False, default='-1'), # noqa E501
bucketmaxobjects=dict(type='int', required=False, default=-1)))) # noqa E501
options=dict(username=dict(type='str', required=True), # noqa: E501
fullname=dict(type='str', required=True), # noqa: E501
email=dict(type='str', required=False), # noqa: E501
maxbucket=dict(type='int', required=False, default=1000), # noqa: E501
suspend=dict(type='bool', required=False, default=False), # noqa: E501
autogenkey=dict(type='bool', required=False, default=True), # noqa: E501
accesskey=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
usermaxsize=dict(type='str', 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
bucketmaxsize=dict(type='str', required=False, default='-1'), # noqa: E501
bucketmaxobjects=dict(type='int', required=False, default=-1)))) # noqa: E501
# the AnsibleModule object
module = AnsibleModule(argument_spec=fields,
@ -533,8 +533,8 @@ def main():
# radosgw connection
rgw = radosgw.connection.RadosGWAdminConnection(host=rgw_host,
port=port,
access_key=admin_access_key, # noqa E501
secret_key=admin_secret_key, # noqa E501
access_key=admin_access_key, # noqa: E501
secret_key=admin_secret_key, # noqa: E501
aws_signature='AWS4',
is_secure=is_secure)

View File

@ -108,9 +108,9 @@ def sort_osd_crush_location(location, module):
"region",
"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:
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):
@ -122,10 +122,10 @@ def create_and_move_buckets_list(cluster, location, containerized=None):
for item in location:
bucket_type, bucket_name = item
# 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:
# 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]
return cmd_list
@ -172,7 +172,7 @@ def run_module():
startd = datetime.datetime.now()
# 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()
delta = endd - startd

View File

@ -17,9 +17,15 @@ __metaclass__ = type
from ansible.module_utils.basic import AnsibleModule
try:
from ansible.module_utils.ca_common import exit_module, generate_ceph_cmd, is_containerized, exec_command
from ansible.module_utils.ca_common import exit_module, \
generate_ceph_cmd, \
is_containerized, \
exec_command
except ImportError:
from module_utils.ca_common import exit_module, generate_ceph_cmd, is_containerized, exec_command
from module_utils.ca_common import exit_module, \
generate_ceph_cmd, \
is_containerized, \
exec_command
import datetime
import json
@ -71,7 +77,8 @@ options:
description:
- The ceph bucket type for replicated rule.
required: false
choices: ['osd', 'host', 'chassis', 'rack', 'row', 'pdu', 'pod', 'room', 'datacenter', 'zone', 'region', 'root']
choices: ['osd', 'host', 'chassis', 'rack', 'row', 'pdu', 'pod',
'room', 'datacenter', 'zone', 'region', 'root']
device_class:
description:
- The ceph device class for replicated rule.
@ -135,7 +142,10 @@ def create_rule(module, container_image=None):
if profile:
args.append(profile)
cmd = generate_ceph_cmd(['osd', 'crush', 'rule'], args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(['osd', 'crush', 'rule'],
args,
cluster=cluster,
container_image=container_image)
return cmd
@ -150,7 +160,10 @@ def get_rule(module, container_image=None):
args = ['dump', name, '--format=json']
cmd = generate_ceph_cmd(['osd', 'crush', 'rule'], args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(['osd', 'crush', 'rule'],
args,
cluster=cluster,
container_image=container_image)
return cmd
@ -165,7 +178,10 @@ def remove_rule(module, container_image=None):
args = ['rm', name]
cmd = generate_ceph_cmd(['osd', 'crush', 'rule'], args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(['osd', 'crush', 'rule'],
args,
cluster=cluster,
container_image=container_image)
return cmd
@ -175,11 +191,11 @@ def main():
argument_spec=dict(
name=dict(type='str', required=True),
cluster=dict(type='str', required=False, default='ceph'),
state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'),
rule_type=dict(type='str', required=False, choices=['replicated', 'erasure']),
state=dict(type='str', required=False, choices=['present', 'absent', 'info'], default='present'), # noqa: E501
rule_type=dict(type='str', required=False, choices=['replicated', 'erasure']), # noqa: E501
bucket_root=dict(type='str', required=False),
bucket_type=dict(type='str', required=False, choices=['osd', 'host', 'chassis', 'rack', 'row', 'pdu', 'pod',
'room', 'datacenter', 'zone', 'region', 'root']),
bucket_type=dict(type='str', required=False, choices=['osd', 'host', 'chassis', 'rack', 'row', 'pdu', 'pod', # noqa: E501
'room', 'datacenter', 'zone', 'region', 'root']), # noqa: E501
device_class=dict(type='str', required=False),
profile=dict(type='str', required=False)
),
@ -214,28 +230,28 @@ def main():
container_image = is_containerized()
if state == "present":
rc, cmd, out, err = exec_command(module, get_rule(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, get_rule(module, container_image=container_image)) # noqa: E501
if rc != 0:
rc, cmd, out, err = exec_command(module, create_rule(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, create_rule(module, container_image=container_image)) # noqa: E501
changed = True
else:
rule = json.loads(out)
if (rule['type'] == 1 and rule_type == 'erasure') or (rule['type'] == 3 and rule_type == 'replicated'):
module.fail_json(msg="Can not convert crush rule {} to {}".format(name, rule_type), changed=False, rc=1)
if (rule['type'] == 1 and rule_type == 'erasure') or (rule['type'] == 3 and rule_type == 'replicated'): # noqa: E501
module.fail_json(msg="Can not convert crush rule {} to {}".format(name, rule_type), changed=False, rc=1) # noqa: E501
elif state == "absent":
rc, cmd, out, err = exec_command(module, get_rule(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, get_rule(module, container_image=container_image)) # noqa: E501
if rc == 0:
rc, cmd, out, err = exec_command(module, remove_rule(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, remove_rule(module, container_image=container_image)) # noqa: E501
changed = True
else:
rc = 0
out = "Crush Rule {} doesn't exist".format(name)
elif state == "info":
rc, cmd, out, err = exec_command(module, get_rule(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, get_rule(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
if __name__ == '__main__':

View File

@ -22,7 +22,7 @@ try:
exec_command, \
exit_module
except ImportError:
from module_utils.ca_common import generate_ceph_cmd, is_containerized, exec_command, exit_module
from module_utils.ca_common import generate_ceph_cmd, is_containerized, exec_command, exit_module # noqa: E501
import datetime
import json
@ -122,7 +122,11 @@ def create_user(module, container_image=None):
args = ['ac-user-create', '-i', '-', name]
cmd = generate_ceph_cmd(sub_cmd=['dashboard'], args=args, cluster=cluster, container_image=container_image, interactive=True)
cmd = generate_ceph_cmd(sub_cmd=['dashboard'],
args=args,
cluster=cluster,
container_image=container_image,
interactive=True)
return cmd
@ -140,7 +144,10 @@ def set_roles(module, container_image=None):
args.extend(roles)
cmd = generate_ceph_cmd(sub_cmd=['dashboard'], args=args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(sub_cmd=['dashboard'],
args=args,
cluster=cluster,
container_image=container_image)
return cmd
@ -155,7 +162,11 @@ def set_password(module, container_image=None):
args = ['ac-user-set-password', '-i', '-', name]
cmd = generate_ceph_cmd(sub_cmd=['dashboard'], args=args, cluster=cluster, container_image=container_image, interactive=True)
cmd = generate_ceph_cmd(sub_cmd=['dashboard'],
args=args,
cluster=cluster,
container_image=container_image,
interactive=True)
return cmd
@ -170,7 +181,10 @@ def get_user(module, container_image=None):
args = ['ac-user-show', name, '--format=json']
cmd = generate_ceph_cmd(sub_cmd=['dashboard'], args=args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(sub_cmd=['dashboard'],
args=args,
cluster=cluster,
container_image=container_image)
return cmd
@ -185,7 +199,10 @@ def remove_user(module, container_image=None):
args = ['ac-user-delete', name]
cmd = generate_ceph_cmd(sub_cmd=['dashboard'], args=args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(sub_cmd=['dashboard'],
args=args,
cluster=cluster,
container_image=container_image)
return cmd
@ -194,11 +211,11 @@ def run_module():
module_args = dict(
cluster=dict(type='str', required=False, default='ceph'),
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),
roles=dict(type='list',
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=[]),
)
@ -232,33 +249,33 @@ def run_module():
container_image = is_containerized()
if state == "present":
rc, cmd, out, err = exec_command(module, get_user(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, get_user(module, container_image=container_image)) # noqa: E501
if rc == 0:
user = json.loads(out)
user['roles'].sort()
roles.sort()
if user['roles'] != roles:
rc, cmd, out, err = exec_command(module, set_roles(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, set_roles(module, container_image=container_image)) # noqa: E501
changed = True
rc, cmd, out, err = exec_command(module, set_password(module, container_image=container_image), stdin=password)
rc, cmd, out, err = exec_command(module, set_password(module, container_image=container_image), stdin=password) # noqa: E501
else:
rc, cmd, out, err = exec_command(module, create_user(module, container_image=container_image), stdin=password)
rc, cmd, out, err = exec_command(module, set_roles(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, create_user(module, container_image=container_image), stdin=password) # noqa: E501
rc, cmd, out, err = exec_command(module, set_roles(module, container_image=container_image)) # noqa: E501
changed = True
elif state == "absent":
rc, cmd, out, err = exec_command(module, get_user(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, get_user(module, container_image=container_image)) # noqa: E501
if rc == 0:
rc, cmd, out, err = exec_command(module, remove_user(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, remove_user(module, container_image=container_image)) # noqa: E501
changed = True
else:
rc = 0
out = "Dashboard User {} doesn't exist".format(name)
elif state == "info":
rc, cmd, out, err = exec_command(module, get_user(module, container_image=container_image))
rc, cmd, out, err = exec_command(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():

View File

@ -121,7 +121,7 @@ def get_profile(module, name, cluster='ceph', container_image=None):
return cmd
def create_profile(module, name, k, m, stripe_unit, cluster='ceph', force=False, container_image=None):
def create_profile(module, name, k, m, stripe_unit, cluster='ceph', force=False, container_image=None): # noqa: E501
'''
Create a profile
'''
@ -198,9 +198,10 @@ def run_module():
container_image = is_containerized()
if state == "present":
rc, cmd, out, err = exec_command(module, get_profile(module, name, cluster, container_image=container_image))
rc, cmd, out, err = exec_command(module, get_profile(module, name, cluster, container_image=container_image)) # noqa: E501
if rc == 0:
# the profile already exists, let's check whether we have to update it
# the profile already exists, let's check whether we have to
# update it
current_profile = json.loads(out)
if current_profile['k'] != k or \
current_profile['m'] != m or \
@ -212,7 +213,7 @@ def run_module():
m,
stripe_unit,
cluster,
force=True, container_image=container_image))
force=True, container_image=container_image)) # noqa: E501
changed = True
else:
# the profile doesn't exist, it has to be created
@ -220,14 +221,14 @@ def run_module():
name,
k,
m,
stripe_unit,
stripe_unit, # noqa: E501
cluster,
container_image=container_image))
container_image=container_image)) # noqa: E501
if rc == 0:
changed = True
elif state == "absent":
rc, cmd, out, err = exec_command(module, delete_profile(module, name, cluster, container_image=container_image))
rc, cmd, out, err = exec_command(module, delete_profile(module, name, cluster, container_image=container_image)) # noqa: E501
if not err:
out = 'Profile {} removed.'.format(name)
changed = True
@ -235,7 +236,7 @@ def run_module():
rc = 0
out = "Skipping, the profile {} doesn't exist".format(name)
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():

View File

@ -119,7 +119,10 @@ def create_fs(module, container_image=None):
args = ['new', name, metadata, data]
cmd = generate_ceph_cmd(sub_cmd=['fs'], args=args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(sub_cmd=['fs'],
args=args,
cluster=cluster,
container_image=container_image)
return cmd
@ -134,7 +137,10 @@ def get_fs(module, container_image=None):
args = ['get', name, '--format=json']
cmd = generate_ceph_cmd(sub_cmd=['fs'], args=args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(sub_cmd=['fs'],
args=args,
cluster=cluster,
container_image=container_image)
return cmd
@ -149,7 +155,10 @@ def remove_fs(module, container_image=None):
args = ['rm', name, '--yes-i-really-mean-it']
cmd = generate_ceph_cmd(sub_cmd=['fs'], args=args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(sub_cmd=['fs'],
args=args,
cluster=cluster,
container_image=container_image)
return cmd
@ -164,7 +173,10 @@ def fail_fs(module, container_image=None):
args = ['fail', name]
cmd = generate_ceph_cmd(sub_cmd=['fs'], args=args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(sub_cmd=['fs'],
args=args,
cluster=cluster,
container_image=container_image)
return cmd
@ -180,7 +192,10 @@ def set_fs(module, container_image=None):
args = ['set', name, 'max_mds', str(max_mds)]
cmd = generate_ceph_cmd(sub_cmd=['fs'], args=args, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(sub_cmd=['fs'],
args=args,
cluster=cluster,
container_image=container_image)
return cmd
@ -189,7 +204,7 @@ def run_module():
module_args = dict(
cluster=dict(type='str', required=False, default='ceph'),
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),
metadata=dict(type='str', required=False),
max_mds=dict(type='int', required=False),
@ -224,25 +239,25 @@ def run_module():
container_image = is_containerized()
if state == "present":
rc, cmd, out, err = exec_command(module, get_fs(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, get_fs(module, container_image=container_image)) # noqa: E501
if rc == 0:
fs = json.loads(out)
if max_mds and fs["mdsmap"]["max_mds"] != max_mds:
rc, cmd, out, err = exec_command(module, set_fs(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, set_fs(module, container_image=container_image)) # noqa: E501
if rc == 0:
changed = True
else:
rc, cmd, out, err = exec_command(module, create_fs(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, create_fs(module, container_image=container_image)) # noqa: E501
if max_mds and max_mds > 1:
exec_command(module, set_fs(module, container_image=container_image))
exec_command(module, set_fs(module, container_image=container_image)) # noqa: E501
if rc == 0:
changed = True
elif state == "absent":
rc, cmd, out, err = exec_command(module, get_fs(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, get_fs(module, container_image=container_image)) # noqa: E501
if rc == 0:
exec_command(module, fail_fs(module, container_image=container_image))
rc, cmd, out, err = exec_command(module, remove_fs(module, container_image=container_image))
exec_command(module, fail_fs(module, container_image=container_image)) # noqa: E501
rc, cmd, out, err = exec_command(module, remove_fs(module, container_image=container_image)) # noqa: E501
if rc == 0:
changed = True
else:
@ -250,9 +265,9 @@ def run_module():
out = "Ceph File System {} doesn't exist".format(name)
elif state == "info":
rc, cmd, out, err = exec_command(module, get_fs(module, container_image=container_image))
rc, cmd, out, err = exec_command(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():

View File

@ -113,7 +113,7 @@ options:
description:
- Fetch client.admin and bootstrap key.
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.
required: false
default: false
@ -128,8 +128,8 @@ options:
EXAMPLES = '''
keys_to_create:
- { 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.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
caps:
mon: "allow rwx"
@ -202,8 +202,8 @@ caps:
RETURN = '''# '''
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
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
def str_to_bool(val):
@ -278,7 +278,7 @@ def generate_ceph_cmd(cluster, args, user, user_key_path, container_image=None):
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
'''
@ -306,7 +306,7 @@ def generate_ceph_authtool_cmd(cluster, name, secret, caps, dest, container_imag
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
'''
@ -370,7 +370,7 @@ def get_key(cluster, user, user_key_path, name, dest, container_image=None):
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
'''
@ -431,7 +431,7 @@ def lookup_ceph_initial_entities(module, out):
try:
out_dict = json.loads(out)
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 = []
if "auth_dump" in out_dict:
@ -441,16 +441,16 @@ def lookup_ceph_initial_entities(module, out):
if v in CEPH_INITIAL_KEYS:
entities.append(v)
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
# it'd be in entities from the above test. Report what's missing.
missing = []
for e in CEPH_INITIAL_KEYS:
if e not in entities:
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
@ -481,15 +481,15 @@ def run_module():
module_args = dict(
cluster=dict(type='str', required=False, default='ceph'),
name=dict(type='str', required=False),
state=dict(type='str', required=False, default='present', choices=['present', 'update', 'absent',
'list', 'info', 'fetch_initial_keys', 'generate_secret']),
state=dict(type='str', required=False, default='present', choices=['present', 'update', 'absent', # noqa: E501
'list', 'info', 'fetch_initial_keys', 'generate_secret']), # noqa: E501
caps=dict(type='dict', required=False, default=None),
secret=dict(type='str', required=False, default=None, no_log=True),
import_key=dict(type='bool', required=False, default=True),
dest=dict(type='str', required=False, default='/etc/ceph/'),
user=dict(type='str', required=False, default='client.admin'),
user_key=dict(type='str', required=False, default=None),
output_format=dict(type='str', required=False, default='json', choices=['json', 'plain', 'xml', 'yaml'])
output_format=dict(type='str', required=False, default='json', choices=['json', 'plain', 'xml', 'yaml']) # noqa: E501
)
module = AnsibleModule(
@ -565,12 +565,12 @@ def run_module():
if import_key:
_info_key = []
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
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:
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:
_info_key = json.loads(out)
if not secret:
@ -581,25 +581,25 @@ def run_module():
_caps = _info_key[0]['caps']
if secret == _secret and caps == _caps:
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
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)
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
module.set_fs_attributes_if_different(file_args, False)
module.exit_json(**result)
else:
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
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(
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:
result["stdout"] = "Couldn't create or update {0}".format(name)
result["stderr"] = err
@ -610,7 +610,7 @@ def run_module():
elif state == "absent":
if key_exist == 0:
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:
changed = True
else:
@ -618,7 +618,7 @@ def run_module():
elif state == "info":
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":
rc, cmd, out, err = exec_commands(
@ -659,7 +659,7 @@ def run_module():
# we use info_cmd[0] because info_cmd is an array made of an array
info_cmd[0].extend(extra_args)
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['path'] = key_path

View File

@ -17,9 +17,13 @@ __metaclass__ = type
from ansible.module_utils.basic import AnsibleModule
try:
from ansible.module_utils.ca_common import exit_module, generate_ceph_cmd, is_containerized
from ansible.module_utils.ca_common import exit_module, \
generate_ceph_cmd, \
is_containerized
except ImportError:
from module_utils.ca_common import exit_module, generate_ceph_cmd, is_containerized
from module_utils.ca_common import exit_module, \
generate_ceph_cmd, \
is_containerized
import datetime
@ -80,7 +84,7 @@ def main():
argument_spec=dict(
name=dict(type='str', required=True),
cluster=dict(type='str', required=False, default='ceph'),
state=dict(type='str', required=False, default='enable', choices=['enable', 'disable']),
state=dict(type='str', required=False, default='enable', choices=['enable', 'disable']), # noqa: E501
),
supports_check_mode=True,
)
@ -93,7 +97,10 @@ def main():
container_image = is_containerized()
cmd = generate_ceph_cmd(['mgr', 'module'], [state, name], cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(['mgr', 'module'],
[state, name],
cluster=cluster,
container_image=container_image)
if module.check_mode:
exit_module(

View File

@ -17,9 +17,9 @@ __metaclass__ = type
from ansible.module_utils.basic import AnsibleModule
try:
from ansible.module_utils.ca_common import exit_module, generate_ceph_cmd, is_containerized
from ansible.module_utils.ca_common import exit_module, generate_ceph_cmd, is_containerized # noqa: E501
except ImportError:
from module_utils.ca_common import exit_module, generate_ceph_cmd, is_containerized
from module_utils.ca_common import exit_module, generate_ceph_cmd, is_containerized # noqa: E501
import datetime
@ -95,7 +95,7 @@ def main():
argument_spec=dict(
ids=dict(type='list', required=True),
cluster=dict(type='str', required=False, default='ceph'),
state=dict(type='str', required=True, choices=['destroy', 'down', 'in', 'out', 'purge', 'rm']),
state=dict(type='str', required=True, choices=['destroy', 'down', 'in', 'out', 'purge', 'rm']), # noqa: E501
),
supports_check_mode=True,
)
@ -105,13 +105,13 @@ def main():
state = module.params.get('state')
if state in ['destroy', 'purge'] and len(ids) > 1:
module.fail_json(msg='destroy and purge only support one OSD at at time', rc=1)
module.fail_json(msg='destroy and purge only support one OSD at at time', rc=1) # noqa: E501
startd = datetime.datetime.now()
container_image = is_containerized()
cmd = generate_ceph_cmd(['osd', state], ids, cluster=cluster, container_image=container_image)
cmd = generate_ceph_cmd(['osd', state], ids, cluster=cluster, container_image=container_image) # noqa: E501
if state in ['destroy', 'purge']:
cmd.append('--yes-i-really-mean-it')

View File

@ -17,9 +17,13 @@ __metaclass__ = type
from ansible.module_utils.basic import AnsibleModule
try:
from ansible.module_utils.ca_common import exit_module, generate_ceph_cmd, is_containerized
from ansible.module_utils.ca_common import exit_module, \
generate_ceph_cmd, \
is_containerized
except ImportError:
from module_utils.ca_common import exit_module, generate_ceph_cmd, is_containerized
from module_utils.ca_common import exit_module, \
generate_ceph_cmd, \
is_containerized
import datetime
@ -41,7 +45,8 @@ options:
description:
- name of the ceph OSD flag.
required: true
choices: ['noup', 'nodown', 'noout', 'nobackfill', 'norebalance', 'norecover', 'noscrub', 'nodeep-scrub']
choices: ['noup', 'nodown', 'noout', 'nobackfill', 'norebalance',
'norecover', 'noscrub', 'nodeep-scrub']
cluster:
description:
- The ceph cluster name.
@ -78,9 +83,9 @@ RETURN = '''# '''
def main():
module = AnsibleModule(
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'),
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,
)
@ -94,9 +99,9 @@ def main():
container_image = is_containerized()
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:
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:
exit_module(

View File

@ -298,7 +298,8 @@ def get_pool_details(module,
user_key, # 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:
# {
# 'pg_num': 8,
@ -308,8 +309,8 @@ def get_pool_details(module,
# 'target_size_ratio': 0.1
# }
# }
# If 'target_size_ratio' is present in 'options', we set it, this way we end up
# with a dict containing all needed keys at the same level.
# If 'target_size_ratio' is present in 'options', we set it, this way we
# end up with a dict containing all needed keys at the same level.
if 'target_size_ratio' in out['options'].keys():
out['target_size_ratio'] = out['options']['target_size_ratio']
else:
@ -334,7 +335,7 @@ def compare_pool_config(user_pool_config, running_pool_details):
filter_keys = ['pg_num', 'pg_placement_num', 'size',
'pg_autoscale_mode', 'target_size_ratio']
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']):
delta[key] = user_pool_config[key]

View File

@ -2,9 +2,13 @@
from ansible.module_utils.basic import AnsibleModule
try:
from ansible.module_utils.ca_common import exec_command, is_containerized, fatal
from ansible.module_utils.ca_common import exec_command, \
is_containerized, \
fatal
except ImportError:
from module_utils.ca_common import exec_command, is_containerized, fatal
from module_utils.ca_common import exec_command, \
is_containerized, \
fatal
import datetime
import copy
import json
@ -79,7 +83,7 @@ options:
required: false
db_vg:
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'.
required: false
wal:
@ -89,7 +93,7 @@ options:
required: false
wal_vg:
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'.
required: false
crush_device_class:
@ -179,7 +183,7 @@ EXAMPLES = '''
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:
objectstore: bluestore
data: data-lv
@ -291,7 +295,7 @@ def batch(module, container_image, report=None):
fatal('osds_per_device must be provided if action is "batch"', module)
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:
fatal('batch_devices must be provided if action is "batch"', module)
@ -463,7 +467,7 @@ def is_lv(module, vg, lv, container_image):
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')
@ -536,7 +540,7 @@ def run_module():
'bluestore', 'filestore'], default='bluestore'),
action=dict(type='str', required=False, choices=[
'create', 'zap', 'batch', 'prepare', 'activate', 'list',
'inventory'], default='create'), # noqa 4502
'inventory'], default='create'), # noqa: 4502
data=dict(type='str', required=False),
data_vg=dict(type='str', required=False),
journal=dict(type='str', required=False),
@ -611,11 +615,11 @@ def run_module():
try:
out_dict = json.loads(out)
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:
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
module.exit_json(**result)
@ -626,7 +630,7 @@ def run_module():
elif action == 'activate':
if container_image:
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
rc, cmd, out, err = exec_command(
@ -637,16 +641,16 @@ def run_module():
skip = []
for device_type in ['journal', 'data', 'db', 'wal']:
# 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
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)
# 3/ This isn't a lv/vg device
if not ret:
module.params['{}_vg'.format(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
elif not module.params.get('{}_vg'.format(device_type), None) and module.params.get(device_type, None): # 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
skip.append(True)
cmd = zap_devices(module, container_image)

View File

@ -139,7 +139,7 @@ def main():
rc, out, err = module.run_command(cmd)
if rc == 0:
if name in [x["name"] for x in json.loads(out) if x["style"] == "cephadm:v1"]:
if name in [x["name"] for x in json.loads(out) if x["style"] == "cephadm:v1"]: # noqa: E501
exit_module(
module=module,
out='{} is already adopted'.format(name),
@ -160,7 +160,7 @@ def main():
if 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:
cmd.append('--skip-pull')

View File

@ -100,7 +100,8 @@ options:
required: false
registry_json:
description:
- JSON file with custom registry login info (URL, username, password).
- JSON file with custom registry login info (URL,
username, password).
required: false
ssh_user:
description:

View File

@ -53,13 +53,13 @@ author:
"""
import os # noqa E402
import logging # noqa E402
from logging.handlers import RotatingFileHandler # noqa E402
from ansible.module_utils.basic import * # noqa E402
import os # noqa: E402
import logging # noqa: E402
from logging.handlers import RotatingFileHandler # noqa: E402
from ansible.module_utils.basic import * # noqa: E402,F403
from ceph_iscsi_config.client import GWClient # noqa E402
import ceph_iscsi_config.settings as settings # noqa E402
from ceph_iscsi_config.client import GWClient # noqa: E402
import ceph_iscsi_config.settings as settings # noqa: E402
# 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)
client_iqn = module.params['client_iqn']

View File

@ -56,17 +56,17 @@ author:
"""
import os # noqa E402
import logging # noqa E402
import os # noqa: E402
import logging # noqa: E402
from logging.handlers import RotatingFileHandler # noqa E402
from ansible.module_utils.basic import * # noqa E402
from logging.handlers import RotatingFileHandler # noqa: E402
from ansible.module_utils.basic import * # noqa: E402,F403
import ceph_iscsi_config.settings as settings # noqa E402
from ceph_iscsi_config.common import Config # noqa E402
import ceph_iscsi_config.settings as settings # noqa: E402
from ceph_iscsi_config.common import Config # 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.gateway import GWTarget # noqa: E402
from ceph_iscsi_config.utils import valid_ip # noqa: E402
# 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)
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
description:
- 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
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).
option:
@ -70,15 +70,15 @@ author:
"""
import os # noqa E402
import logging # noqa E402
from logging.handlers import RotatingFileHandler # noqa E402
import os # noqa: E402
import logging # 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.utils import valid_size # noqa E402
import ceph_iscsi_config.settings as settings # noqa E402
from ceph_iscsi_config.lun import LUN # noqa: E402
from ceph_iscsi_config.utils import valid_size # noqa: E402
import ceph_iscsi_config.settings as settings # noqa: E402
# the main function is called ansible_main to allow the call stack
@ -103,7 +103,7 @@ def ansible_main():
}
# not supporting check mode currently
module = AnsibleModule(argument_spec=fields, # noqa F405
module = AnsibleModule(argument_spec=fields, # noqa: F405
supports_check_mode=False)
pool = module.params["pool"]

View File

@ -34,18 +34,18 @@ author:
"""
import os # noqa E402
import logging # noqa E402
import socket # noqa E402
import rados # noqa E402
import rbd # noqa E402
import os # noqa: E402
import logging # noqa: E402
import socket # noqa: E402,F401
import rados # noqa: E402
import rbd # noqa: E402
from logging.handlers import RotatingFileHandler # noqa E402
from ansible.module_utils.basic import * # noqa E402
from logging.handlers import RotatingFileHandler # noqa: E402
from ansible.module_utils.basic import * # noqa: E402,F403
import ceph_iscsi_config.settings as settings # noqa E402
from ceph_iscsi_config.common import Config # noqa E402
from ceph_iscsi_config.lun import RBDDev # noqa E402
import ceph_iscsi_config.settings as settings # noqa: E402
from ceph_iscsi_config.common import Config # noqa: E402
from ceph_iscsi_config.lun import RBDDev # noqa: E402
__author__ = 'pcuzner@redhat.com'
@ -81,7 +81,7 @@ def delete_images(cfg):
if rbd_dev.error:
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.".
format(image, rbd_dev.error_msg))
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)
run_mode = module.params['mode']

View File

@ -170,7 +170,9 @@ def create_realm(module, container_image=None):
if 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
@ -185,7 +187,9 @@ def get_realm(module, container_image=None):
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
@ -200,7 +204,9 @@ def remove_realm(module, container_image=None):
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
@ -226,7 +232,7 @@ def run_module():
module_args = dict(
cluster=dict(type='str', required=False, default='ceph'),
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),
)
@ -257,24 +263,24 @@ def run_module():
container_image = is_containerized()
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:
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
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:
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
else:
rc = 0
out = "Realm {} doesn't exist".format(name)
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():

View File

@ -250,7 +250,9 @@ def create_user(module, container_image=None):
if 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
@ -301,7 +303,9 @@ def modify_user(module, container_image=None):
if 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
@ -357,7 +361,9 @@ def remove_user(module, container_image=None):
if 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
@ -383,7 +389,7 @@ def run_module():
module_args = dict(
cluster=dict(type='str', required=False, default='ceph'),
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),
email=dict(type='str', required=False),
access_key=dict(type='str', required=False, no_log=True),
@ -430,7 +436,7 @@ def run_module():
container_image = is_containerized()
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:
user = json.loads(out)
current = {
@ -454,25 +460,25 @@ def run_module():
asked['secret_key'] = secret_key
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
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
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:
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
else:
rc = 0
out = "User {} doesn't exist".format(name)
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():

View File

@ -231,7 +231,9 @@ def create_zone(module, container_image=None):
if 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
@ -273,7 +275,9 @@ def modify_zone(module, container_image=None):
if 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
@ -370,7 +374,9 @@ def remove_zone(module, container_image=None):
'--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
@ -396,7 +402,7 @@ def run_module():
module_args = dict(
cluster=dict(type='str', required=False, default='ceph'),
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),
zonegroup=dict(type='str', require=True),
endpoints=dict(type='list', require=False, default=[]),
@ -436,14 +442,14 @@ def run_module():
container_image = is_containerized()
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:
zone = json.loads(out)
_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:
fatal(_err, module)
realm = 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:
fatal(_err, module)
zonegroup = json.loads(_out)
@ -452,7 +458,7 @@ def run_module():
if not secret_key:
secret_key = ''
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'],
'secret_key': zone['system_key']['secret_key'],
'realm_id': zone['realm_id']
@ -464,25 +470,25 @@ def run_module():
'realm_id': realm['id']
}
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
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
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:
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
else:
rc = 0
out = "Zone {} doesn't exist".format(name)
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():

View File

@ -204,7 +204,9 @@ def create_zonegroup(module, container_image=None):
if 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
@ -232,7 +234,9 @@ def modify_zonegroup(module, container_image=None):
if 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
@ -246,7 +250,12 @@ def get_zonegroup(module, container_image=None):
name = module.params.get('name')
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,
args=args,
@ -290,7 +299,9 @@ def remove_zonegroup(module, container_image=None):
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
@ -316,7 +327,7 @@ def run_module():
module_args = dict(
cluster=dict(type='str', required=False, default='ceph'),
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),
endpoints=dict(type='list', require=False, default=[]),
default=dict(type='bool', required=False, default=False),
@ -352,10 +363,10 @@ def run_module():
container_image = is_containerized()
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:
zonegroup = json.loads(out)
_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:
fatal(_err, module)
realm = json.loads(_out)
@ -370,25 +381,25 @@ def run_module():
'realm_id': realm['id']
}
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
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
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:
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
else:
rc = 0
out = "Zonegroup {} doesn't exist".format(name)
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():