mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-04-27 22:19:02 +00:00
Reformat everything.
This commit is contained in:
parent
3f2213791a
commit
340ff8586d
1008 changed files with 61301 additions and 58309 deletions
|
|
@ -138,7 +138,7 @@ from ansible.module_utils.basic import AnsibleModule
|
|||
|
||||
def convert_size(module, size):
|
||||
unit = size[-1].upper()
|
||||
units = ['M', 'G', 'T']
|
||||
units = ["M", "G", "T"]
|
||||
try:
|
||||
multiplier = 1024 ** units.index(unit)
|
||||
except ValueError:
|
||||
|
|
@ -181,13 +181,11 @@ def parse_lv(data):
|
|||
|
||||
size = lps * pp_size
|
||||
|
||||
return {'name': name, 'vg': vg, 'size': size, 'policy': policy}
|
||||
return {"name": name, "vg": vg, "size": size, "policy": policy}
|
||||
|
||||
|
||||
def parse_vg(data):
|
||||
|
||||
for line in data.splitlines():
|
||||
|
||||
match = re.search(r"VOLUME GROUP:\s+(\w+)", line)
|
||||
if match is not None:
|
||||
name = match.group(1)
|
||||
|
|
@ -208,39 +206,39 @@ def parse_vg(data):
|
|||
free = int(match.group(1))
|
||||
continue
|
||||
|
||||
return {'name': name, 'size': size, 'free': free, 'pp_size': pp_size}
|
||||
return {"name": name, "size": size, "free": free, "pp_size": pp_size}
|
||||
|
||||
|
||||
def main():
|
||||
module = AnsibleModule(
|
||||
argument_spec=dict(
|
||||
vg=dict(type='str', required=True),
|
||||
lv=dict(type='str', required=True),
|
||||
lv_type=dict(type='str', default='jfs2'),
|
||||
size=dict(type='str'),
|
||||
opts=dict(type='str', default=''),
|
||||
copies=dict(type='int', default=1),
|
||||
state=dict(type='str', default='present', choices=['absent', 'present']),
|
||||
policy=dict(type='str', default='maximum', choices=['maximum', 'minimum']),
|
||||
pvs=dict(type='list', elements='str', default=list())
|
||||
vg=dict(type="str", required=True),
|
||||
lv=dict(type="str", required=True),
|
||||
lv_type=dict(type="str", default="jfs2"),
|
||||
size=dict(type="str"),
|
||||
opts=dict(type="str", default=""),
|
||||
copies=dict(type="int", default=1),
|
||||
state=dict(type="str", default="present", choices=["absent", "present"]),
|
||||
policy=dict(type="str", default="maximum", choices=["maximum", "minimum"]),
|
||||
pvs=dict(type="list", elements="str", default=list()),
|
||||
),
|
||||
supports_check_mode=True,
|
||||
)
|
||||
|
||||
vg = module.params['vg']
|
||||
lv = module.params['lv']
|
||||
lv_type = module.params['lv_type']
|
||||
size = module.params['size']
|
||||
opts = module.params['opts']
|
||||
copies = module.params['copies']
|
||||
policy = module.params['policy']
|
||||
state = module.params['state']
|
||||
pvs = module.params['pvs']
|
||||
vg = module.params["vg"]
|
||||
lv = module.params["lv"]
|
||||
lv_type = module.params["lv_type"]
|
||||
size = module.params["size"]
|
||||
opts = module.params["opts"]
|
||||
copies = module.params["copies"]
|
||||
policy = module.params["policy"]
|
||||
state = module.params["state"]
|
||||
pvs = module.params["pvs"]
|
||||
|
||||
if policy == 'maximum':
|
||||
lv_policy = 'x'
|
||||
if policy == "maximum":
|
||||
lv_policy = "x"
|
||||
else:
|
||||
lv_policy = 'm'
|
||||
lv_policy = "m"
|
||||
|
||||
# Add echo command when running in check-mode
|
||||
if module.check_mode:
|
||||
|
|
@ -256,7 +254,7 @@ def main():
|
|||
rc, vg_info, err = module.run_command([lsvg_cmd, vg])
|
||||
|
||||
if rc != 0:
|
||||
if state == 'absent':
|
||||
if state == "absent":
|
||||
module.exit_json(changed=False, msg=f"Volume group {vg} does not exist.")
|
||||
else:
|
||||
module.fail_json(msg=f"Volume group {vg} does not exist.", rc=rc, out=vg_info, err=err)
|
||||
|
|
@ -265,57 +263,63 @@ def main():
|
|||
|
||||
if size is not None:
|
||||
# Calculate pp size and round it up based on pp size.
|
||||
lv_size = round_ppsize(convert_size(module, size), base=this_vg['pp_size'])
|
||||
lv_size = round_ppsize(convert_size(module, size), base=this_vg["pp_size"])
|
||||
|
||||
# Get information on logical volume requested
|
||||
rc, lv_info, err = module.run_command([lslv_cmd, lv])
|
||||
|
||||
if rc != 0:
|
||||
if state == 'absent':
|
||||
if state == "absent":
|
||||
module.exit_json(changed=False, msg=f"Logical Volume {lv} does not exist.")
|
||||
|
||||
changed = False
|
||||
|
||||
this_lv = parse_lv(lv_info)
|
||||
|
||||
if state == 'present' and not size:
|
||||
if state == "present" and not size:
|
||||
if this_lv is None:
|
||||
module.fail_json(msg="No size given.")
|
||||
|
||||
if this_lv is None:
|
||||
if state == 'present':
|
||||
if lv_size > this_vg['free']:
|
||||
module.fail_json(msg=f"Not enough free space in volume group {this_vg['name']}: {this_vg['free']} MB free.")
|
||||
if state == "present":
|
||||
if lv_size > this_vg["free"]:
|
||||
module.fail_json(
|
||||
msg=f"Not enough free space in volume group {this_vg['name']}: {this_vg['free']} MB free."
|
||||
)
|
||||
|
||||
# create LV
|
||||
mklv_cmd = module.get_bin_path("mklv", required=True)
|
||||
|
||||
cmd = test_opt + [mklv_cmd, "-t", lv_type, "-y", lv, "-c", copies, "-e", lv_policy, opts, vg, f"{lv_size}M"] + pvs
|
||||
cmd = (
|
||||
test_opt
|
||||
+ [mklv_cmd, "-t", lv_type, "-y", lv, "-c", copies, "-e", lv_policy, opts, vg, f"{lv_size}M"]
|
||||
+ pvs
|
||||
)
|
||||
rc, out, err = module.run_command(cmd)
|
||||
if rc == 0:
|
||||
module.exit_json(changed=True, msg=f"Logical volume {lv} created.")
|
||||
else:
|
||||
module.fail_json(msg=f"Creating logical volume {lv} failed.", rc=rc, out=out, err=err)
|
||||
else:
|
||||
if state == 'absent':
|
||||
if state == "absent":
|
||||
# remove LV
|
||||
rmlv_cmd = module.get_bin_path("rmlv", required=True)
|
||||
rc, out, err = module.run_command(test_opt + [rmlv_cmd, "-f", this_lv['name']])
|
||||
rc, out, err = module.run_command(test_opt + [rmlv_cmd, "-f", this_lv["name"]])
|
||||
if rc == 0:
|
||||
module.exit_json(changed=True, msg=f"Logical volume {lv} deleted.")
|
||||
else:
|
||||
module.fail_json(msg=f"Failed to remove logical volume {lv}.", rc=rc, out=out, err=err)
|
||||
else:
|
||||
if this_lv['policy'] != policy:
|
||||
if this_lv["policy"] != policy:
|
||||
# change lv allocation policy
|
||||
chlv_cmd = module.get_bin_path("chlv", required=True)
|
||||
rc, out, err = module.run_command(test_opt + [chlv_cmd, "-e", lv_policy, this_lv['name']])
|
||||
rc, out, err = module.run_command(test_opt + [chlv_cmd, "-e", lv_policy, this_lv["name"]])
|
||||
if rc == 0:
|
||||
module.exit_json(changed=True, msg=f"Logical volume {lv} policy changed: {policy}.")
|
||||
else:
|
||||
module.fail_json(msg=f"Failed to change logical volume {lv} policy.", rc=rc, out=out, err=err)
|
||||
|
||||
if vg != this_lv['vg']:
|
||||
if vg != this_lv["vg"]:
|
||||
module.fail_json(msg=f"Logical volume {lv} already exist in volume group {this_lv['vg']}")
|
||||
|
||||
# from here the last remaining action is to resize it, if no size parameter is passed we do nothing.
|
||||
|
|
@ -323,7 +327,7 @@ def main():
|
|||
module.exit_json(changed=False, msg=f"Logical volume {lv} already exist.")
|
||||
|
||||
# resize LV based on absolute values
|
||||
if int(lv_size) > this_lv['size']:
|
||||
if int(lv_size) > this_lv["size"]:
|
||||
extendlv_cmd = module.get_bin_path("extendlv", required=True)
|
||||
cmd = test_opt + [extendlv_cmd, lv, f"{lv_size - this_lv['size']}M"]
|
||||
rc, out, err = module.run_command(cmd)
|
||||
|
|
@ -331,11 +335,13 @@ def main():
|
|||
module.exit_json(changed=True, msg=f"Logical volume {lv} size extended to {lv_size}MB.")
|
||||
else:
|
||||
module.fail_json(msg=f"Unable to resize {lv} to {lv_size}MB.", rc=rc, out=out, err=err)
|
||||
elif lv_size < this_lv['size']:
|
||||
module.fail_json(msg=f"No shrinking of Logical Volume {lv} permitted. Current size: {this_lv['size']} MB")
|
||||
elif lv_size < this_lv["size"]:
|
||||
module.fail_json(
|
||||
msg=f"No shrinking of Logical Volume {lv} permitted. Current size: {this_lv['size']} MB"
|
||||
)
|
||||
else:
|
||||
module.exit_json(changed=False, msg=f"Logical volume {lv} size is already {lv_size}MB.")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue