Merge "system host-lvg-list keyword"
This commit is contained in:
commit
07895ca868
@ -0,0 +1,114 @@
|
||||
|
||||
|
||||
class SystemHostLvgObject:
|
||||
|
||||
"""
|
||||
This class represents system host-lvg as an object.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
self.uuid: str = None
|
||||
self.lvg_name: str = None
|
||||
self.state: str = None
|
||||
self.access: str = None
|
||||
self.total_size: float = -1.0
|
||||
self.avail_size: float = -1.0
|
||||
self.current_pvs: int = -1
|
||||
self.current_lvs: int = -1
|
||||
|
||||
|
||||
def set_uuid(self, uuid):
|
||||
"""
|
||||
Setter for host-lvg uuid
|
||||
"""
|
||||
self.uuid = uuid
|
||||
|
||||
def get_uuid(self) -> str:
|
||||
"""
|
||||
Getter for host-lvg UUID
|
||||
"""
|
||||
return self.uuid
|
||||
|
||||
def set_lvg_name(self, lvg_name):
|
||||
"""
|
||||
Setter for the lvg_name
|
||||
"""
|
||||
self.lvg_name = lvg_name
|
||||
|
||||
def get_lvg_name(self) -> str:
|
||||
"""
|
||||
Getter for the lvg_name
|
||||
"""
|
||||
return self.lvg_name
|
||||
|
||||
def set_state(self, state):
|
||||
"""
|
||||
Setter for the state
|
||||
"""
|
||||
self.state = state
|
||||
|
||||
def get_state(self) -> str:
|
||||
"""
|
||||
Getter for the state
|
||||
"""
|
||||
return self.state
|
||||
|
||||
def set_access(self, access):
|
||||
"""
|
||||
Setter for access
|
||||
"""
|
||||
self.access = access
|
||||
|
||||
def get_access(self) -> str:
|
||||
"""
|
||||
Getter for access
|
||||
"""
|
||||
return self.access
|
||||
|
||||
def set_total_size(self, total_size):
|
||||
"""
|
||||
Setter for total_size
|
||||
"""
|
||||
self.total_size = total_size
|
||||
|
||||
def get_total_size(self) -> float:
|
||||
"""
|
||||
Getter for total_size
|
||||
"""
|
||||
return self.total_size
|
||||
|
||||
def set_avail_size(self, avail_size):
|
||||
"""
|
||||
Setter for avail_size
|
||||
"""
|
||||
self.avail_size = avail_size
|
||||
|
||||
def get_avail_size(self) -> float:
|
||||
"""
|
||||
Getter for avail_size
|
||||
"""
|
||||
return self.avail_size
|
||||
|
||||
def set_current_pvs(self, current_pvs):
|
||||
"""
|
||||
Setter for current_pvs
|
||||
"""
|
||||
self.current_pvs = current_pvs
|
||||
|
||||
def get_current_pvs(self) -> int:
|
||||
"""
|
||||
Getter for current_pvs
|
||||
"""
|
||||
return self.current_pvs
|
||||
|
||||
def set_current_lvs(self, current_lvs):
|
||||
"""
|
||||
Setter for current_lvs
|
||||
"""
|
||||
self.current_lvs = current_lvs
|
||||
|
||||
def get_current_lvs(self) -> int:
|
||||
"""
|
||||
Getter for current_lvs
|
||||
"""
|
||||
return self.current_lvs
|
@ -0,0 +1,71 @@
|
||||
from framework.exceptions.keyword_exception import KeywordException
|
||||
from framework.logging.automation_logger import get_logger
|
||||
from keywords.cloud_platform.system.host.objects.system_host_lvg_object import SystemHostLvgObject
|
||||
from keywords.cloud_platform.system.system_table_parser import SystemTableParser
|
||||
|
||||
class SystemHostLvgOutput:
|
||||
"""
|
||||
This class parses the output of 'system host-lvg-list' command into an object of type SystemHostLvgObject.
|
||||
"""
|
||||
|
||||
def __init__(self, system_output):
|
||||
"""
|
||||
Constructor
|
||||
|
||||
Args:
|
||||
system_output (str): Output of the 'system host-lvg-list' command.
|
||||
|
||||
Raises:
|
||||
KeywordException: If the output is not valid.
|
||||
"""
|
||||
|
||||
self.system_host_lvg : [SystemHostLvgObject] = []
|
||||
system_table_parser = SystemTableParser(system_output)
|
||||
output_values = system_table_parser.get_output_values_list()
|
||||
|
||||
for value in output_values:
|
||||
if self.is_valid_output(value):
|
||||
system_host_lvg = SystemHostLvgObject()
|
||||
system_host_lvg.set_uuid(value['UUID'])
|
||||
system_host_lvg.set_lvg_name(value['LVG Name'])
|
||||
system_host_lvg.set_state(value['State'])
|
||||
system_host_lvg.set_access(value['Access'])
|
||||
system_host_lvg.set_total_size(value['Total Size (GiB)'])
|
||||
system_host_lvg.set_avail_size(value['Avail Size (GiB)'])
|
||||
system_host_lvg.set_current_pvs(value['Current PVs'])
|
||||
system_host_lvg.set_current_lvs(value['Current LVs'])
|
||||
self.system_host_lvg.append(system_host_lvg)
|
||||
else:
|
||||
raise KeywordException(f"The output line {value} was not valid")
|
||||
|
||||
def get_system_host_lvg(self):
|
||||
"""
|
||||
Returns the parsed system host-lvg object.
|
||||
|
||||
Returns:
|
||||
SystemHostAddrObject: The parsed system host-lvg object.
|
||||
"""
|
||||
|
||||
return self.system_host_lvg
|
||||
|
||||
@staticmethod
|
||||
def is_valid_output(value):
|
||||
"""
|
||||
Checks if the output contains all the expected fields.
|
||||
|
||||
Args:
|
||||
value (dict): The dictionary of output values.
|
||||
|
||||
Returns:
|
||||
bool: True if the output contains all required fields, False otherwise.
|
||||
"""
|
||||
|
||||
required_fields = ["UUID", "LVG Name", "State", "Access", "Total Size (GiB)", "Avail Size (GiB)",
|
||||
"Current PVs", "Current LVs"]
|
||||
valid = True
|
||||
for field in required_fields:
|
||||
if field not in value:
|
||||
get_logger().log_error(f'{field} is not in the output value')
|
||||
valid = False
|
||||
break
|
||||
return valid
|
@ -0,0 +1,34 @@
|
||||
from keywords.base_keyword import BaseKeyword
|
||||
from keywords.cloud_platform.command_wrappers import source_openrc
|
||||
from keywords.cloud_platform.system.host.objects.system_host_lvg_output import SystemHostLvgOutput
|
||||
|
||||
|
||||
class SystemHostLvgKeywords(BaseKeyword):
|
||||
"""
|
||||
This class contains all the keywords related to the 'system host-lvg' commands.
|
||||
"""
|
||||
|
||||
def __init__(self, ssh_connection):
|
||||
"""
|
||||
Constructor
|
||||
Args:
|
||||
ssh_connection:
|
||||
"""
|
||||
self.ssh_connection = ssh_connection
|
||||
|
||||
def get_system_host_lvg_list(self, host_id) -> SystemHostLvgOutput:
|
||||
"""
|
||||
Gets the system host-lvg-list
|
||||
|
||||
Args:
|
||||
host_id: name or id of the host
|
||||
Returns:
|
||||
SystemHostLvgOutput object with the list of host-lvg.
|
||||
|
||||
"""
|
||||
command = source_openrc(f'system host-lvg-list {host_id}')
|
||||
output = self.ssh_connection.send(command)
|
||||
self.validate_success_return_code(self.ssh_connection)
|
||||
system_host_lvg_output = SystemHostLvgOutput(output)
|
||||
return system_host_lvg_output
|
||||
|
Loading…
Reference in New Issue
Block a user