2021-08-08 10:40:22 +02:00
|
|
|
# -*- coding: utf-8 -*-
|
2022-08-05 12:28:29 +02:00
|
|
|
# Copyright (c) 2018, Hewlett Packard Enterprise Development LP
|
|
|
|
# Simplified BSD License (see LICENSES/BSD-2-Clause.txt or https://opensource.org/licenses/BSD-2-Clause)
|
|
|
|
# SPDX-License-Identifier: BSD-2-Clause
|
2020-03-09 10:11:07 +01:00
|
|
|
|
2020-06-24 21:50:36 +02:00
|
|
|
from __future__ import (absolute_import, division, print_function)
|
|
|
|
__metaclass__ = type
|
|
|
|
|
|
|
|
|
2020-03-09 10:11:07 +01:00
|
|
|
from ansible.module_utils import basic
|
|
|
|
|
|
|
|
|
|
|
|
def convert_to_binary_multiple(size_with_unit):
|
|
|
|
if size_with_unit is None:
|
|
|
|
return -1
|
|
|
|
valid_units = ['MiB', 'GiB', 'TiB']
|
|
|
|
valid_unit = False
|
|
|
|
for unit in valid_units:
|
|
|
|
if size_with_unit.strip().endswith(unit):
|
|
|
|
valid_unit = True
|
|
|
|
size = size_with_unit.split(unit)[0]
|
|
|
|
if float(size) < 0:
|
|
|
|
return -1
|
|
|
|
if not valid_unit:
|
|
|
|
raise ValueError("%s does not have a valid unit. The unit must be one of %s" % (size_with_unit, valid_units))
|
|
|
|
|
|
|
|
size = size_with_unit.replace(" ", "").split('iB')[0]
|
|
|
|
size_kib = basic.human_to_bytes(size)
|
|
|
|
return int(size_kib / (1024 * 1024))
|
|
|
|
|
|
|
|
|
|
|
|
storage_system_spec = {
|
|
|
|
"storage_system_ip": {
|
|
|
|
"required": True,
|
|
|
|
"type": "str"
|
|
|
|
},
|
|
|
|
"storage_system_username": {
|
|
|
|
"required": True,
|
|
|
|
"type": "str",
|
|
|
|
"no_log": True
|
|
|
|
},
|
|
|
|
"storage_system_password": {
|
|
|
|
"required": True,
|
|
|
|
"type": "str",
|
|
|
|
"no_log": True
|
|
|
|
},
|
|
|
|
"secure": {
|
|
|
|
"type": "bool",
|
|
|
|
"default": False
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
def cpg_argument_spec():
|
|
|
|
spec = {
|
|
|
|
"state": {
|
|
|
|
"required": True,
|
|
|
|
"choices": ['present', 'absent'],
|
|
|
|
"type": 'str'
|
|
|
|
},
|
|
|
|
"cpg_name": {
|
|
|
|
"required": True,
|
|
|
|
"type": "str"
|
|
|
|
},
|
|
|
|
"domain": {
|
|
|
|
"type": "str"
|
|
|
|
},
|
|
|
|
"growth_increment": {
|
|
|
|
"type": "str",
|
|
|
|
},
|
|
|
|
"growth_limit": {
|
|
|
|
"type": "str",
|
|
|
|
},
|
|
|
|
"growth_warning": {
|
|
|
|
"type": "str",
|
|
|
|
},
|
|
|
|
"raid_type": {
|
|
|
|
"required": False,
|
|
|
|
"type": "str",
|
|
|
|
"choices": ['R0', 'R1', 'R5', 'R6']
|
|
|
|
},
|
|
|
|
"set_size": {
|
|
|
|
"required": False,
|
|
|
|
"type": "int"
|
|
|
|
},
|
|
|
|
"high_availability": {
|
|
|
|
"type": "str",
|
|
|
|
"choices": ['PORT', 'CAGE', 'MAG']
|
|
|
|
},
|
|
|
|
"disk_type": {
|
|
|
|
"type": "str",
|
|
|
|
"choices": ['FC', 'NL', 'SSD']
|
|
|
|
}
|
|
|
|
}
|
|
|
|
spec.update(storage_system_spec)
|
|
|
|
return spec
|