Skip to content

bmctools.cli.utils

CLI utilities for bmctools.

Colors

ANSI color codes for terminal output.

is_tty

def is_tty() -> bool

Check if stdout is a TTY (supports colors).

Returns: bool

should_use_color

def should_use_color(args: argparse.Namespace) -> bool

Determine if color output should be used.

Args: args: Parsed arguments with no_color attribute

Returns: True if colors should be used, False otherwise

Parameters:

NameTypeDefaultDescription
argsargparse.Namespace

Returns: bool

colorize

def colorize(text: str, color: str, args: Optional[argparse.Namespace] = None) -> str

Colorize text if color output is enabled.

Args: text: Text to colorize color: Color code from Colors class args: Parsed arguments (optional)

Returns: Colorized text if colors enabled, plain text otherwise

Parameters:

NameTypeDefaultDescription
textstr
colorstr
argsOptional[argparse.Namespace]None

Returns: str

def print_error(message: str, args: Optional[argparse.Namespace] = None) -> None

Print error message to stderr.

Args: message: Error message args: Parsed arguments (optional)

Parameters:

NameTypeDefaultDescription
messagestr
argsOptional[argparse.Namespace]None

Returns: None

def print_warning(message: str, args: Optional[argparse.Namespace] = None) -> None

Print warning message to stderr.

Args: message: Warning message args: Parsed arguments (optional)

Parameters:

NameTypeDefaultDescription
messagestr
argsOptional[argparse.Namespace]None

Returns: None

def print_success(message: str, args: Optional[argparse.Namespace] = None) -> None

Print success message to stdout.

Args: message: Success message args: Parsed arguments (optional)

Parameters:

NameTypeDefaultDescription
messagestr
argsOptional[argparse.Namespace]None

Returns: None

def print_verbose(message: str, args: argparse.Namespace) -> None

Print verbose message if verbose mode is enabled.

Args: message: Message to print args: Parsed arguments with verbose attribute

Parameters:

NameTypeDefaultDescription
messagestr
argsargparse.Namespace

Returns: None

def print_debug(message: str, args: argparse.Namespace) -> None

Print debug message if debug mode is enabled.

Args: message: Message to print args: Parsed arguments with debug attribute

Parameters:

NameTypeDefaultDescription
messagestr
argsargparse.Namespace

Returns: None

get_exit_code

def get_exit_code(exception: Exception) -> int

Map exception type to exit code.

Args: exception: Exception instance

Returns: Exit code integer

Parameters:

NameTypeDefaultDescription
exceptionException

Returns: int

handle_error

def handle_error(exception: Exception, args: argparse.Namespace) -> None

Handle and display error to user.

Args: exception: Exception that occurred args: Parsed arguments

Parameters:

NameTypeDefaultDescription
exceptionException
argsargparse.Namespace

Returns: None

apply_env_vars

def apply_env_vars(args: argparse.Namespace) -> argparse.Namespace

Apply environment variables to arguments if not already set.

Args: args: Parsed arguments namespace

Returns: Modified args namespace

Parameters:

NameTypeDefaultDescription
argsargparse.Namespace

Returns: argparse.Namespace

validate_connection_args

def validate_connection_args(args: argparse.Namespace, required_fields: Optional[list] = None) -> None

Validate that required connection arguments are present.

Args: args: Parsed arguments required_fields: List of required field names (default: [‘ip’, ‘username’, ‘password’])

Raises: ValueError: If required fields are missing

Parameters:

NameTypeDefaultDescription
argsargparse.Namespace
required_fieldsOptional[list]None

Returns: None

establish_redfish_connection

def establish_redfish_connection(args: argparse.Namespace)

Establish Redfish connection with error handling.

Args: args: Parsed arguments with connection parameters

Returns: Redfish instance

Raises: ValueError: If connection parameters are invalid ConnectionError: If connection fails

Parameters:

NameTypeDefaultDescription
argsargparse.Namespace

establish_ipmi_connection

def establish_ipmi_connection(args: argparse.Namespace)

Establish IPMI connection.

Args: args: Parsed arguments with connection parameters

Returns: IpmiTool instance

Raises: ValueError: If connection parameters are invalid

Parameters:

NameTypeDefaultDescription
argsargparse.Namespace

establish_racadm_connection

def establish_racadm_connection(args: argparse.Namespace)

Establish RACADM connection.

Args: args: Parsed arguments with connection parameters

Returns: Racadm instance

Raises: ValueError: If connection parameters are invalid

Parameters:

NameTypeDefaultDescription
argsargparse.Namespace