Add space in status messages

This commit is contained in:
2025-03-01 10:52:42 +00:00
parent 865a945233
commit a5205ea14c
8 changed files with 928 additions and 776 deletions

View File

@@ -69,13 +69,12 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
# Get singleton data for each panel
sub get_data_for_panel_STATUS {
sub get_data_for_panel_STATUS {
# Return a hash with the fields required which will be loaded into the shared data
my $c = shift;
my %ret = (
'Data1'=>'Data for STATUS', #Example
# fields from Inputs in STATUS $fields['STATUS']
'UPSStatus'=>'UPSStatus contents',
'UPSStatus'=>get_ups_details()
);
return %ret;
@@ -85,18 +84,18 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
# Return a hash with the fields required which will be loaded into the shared data
my $c = shift;
my %ret = (
'Data1'=>'Data for CONFIG', #Example
# fields from Inputs in CONFIG $fields['CONFIG']
'status'=>'status contents',
'Nutmode'=>'Nutmode contents',
'SlaveUPS_Name'=>'SlaveUPS_Name contents',
'MasterUPS_Name'=>'MasterUPS_Name contents',
'UPS_Model'=>'UPS_Model contents',
'UPS_Device'=>'UPS_Device contents',
'UPS_gen_Type'=>'UPS_gen_Type contents',
'UPS_gen_Mfr'=>'UPS_gen_Mfr contents',
'UPS_gen_Model'=>'UPS_gen_Model contents',
'status'=>$cdb->get_prop('nut', 'status', 'disabled'),
'Nutmode'=>$cdb->get_prop('nut', 'mode', 'standalone'),
'SlaveUPS_Name'=>$cdb->get_prop('nut', 'SlaveUPS', ''),
'MasterUPS_Name'=>$cdb->get_prop('nut', 'MasterUPS', ''),
'UPS_Model'=>$cdb->get_prop('nut', 'Model', 'usbhid-ups'),
'UPS_Device'=>$cdb->get_prop('nut', 'Device', 'auto'),
'UPS_gen_Type'=>$cdb->get_prop('nut', 'Type', ''),
'UPS_gen_Mfr'=>$cdb->get_prop('nut', 'mfr', ''),
'UPS_gen_Model'=>$cdb->get_prop('nut', 'mdl', ''),
'MasterUPS_Password'=>$cdb->get_prop('nut', 'MasterPass', ''),
'SlaveUPS_Password'=>$cdb->get_prop('nut', 'SlavePass', ''),
);
return %ret;
}
@@ -114,7 +113,7 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
my $selected = shift; #Parameter is name of selected row.
my $is_new_record = shift; #Indicates new record required (defaults)
my %ret = {};
return $ret;
return %ret;
}
sub get_selected_CONFIG {
@@ -122,7 +121,7 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
my $selected = shift; #Parameter is name of selected row.
my $is_new_record = shift; #Indicates new record required (defaults)
my %ret = {};
return $ret;
return %ret;
}
@@ -146,27 +145,28 @@ our $ddb = esmith::DomainsDB->open() || die("Couldn't open Domains db");
my $c = shift;
my $prefix_data = shift; #Data hash as parameter
my $ret = "";
our $cdb = esmith::ConfigDB->open() || die("Couldn't open config db");
my $db = $cdb; #maybe one of the others
my $dbkey = 'ChangeThis';
my $dbkey = 'nut';
# To make it write to DB as comment, delete this (regex) string in each if statement "TRUE\) \#copy or perform with value: .* e.g."
if (! TRUE) #copy or perform with value: status e.g. $db->set_prop($dbkey,'status',$c->param('status'),type=>'service'))
if (!$db->set_prop($dbkey,'status',$c->param('status'),type=>'service'))
{$ret .= 'Perform/save failed for status';}
if (! TRUE) #copy or perform with value: Nutmode e.g. $db->set_prop($dbkey,'Nutmode',$c->param('Nutmode'),type=>'service'))
if (!$db->set_prop($dbkey,'Nutmode',$c->param('Nutmode'),type=>'service'))
{$ret .= 'Perform/save failed for Nutmode';}
if (! TRUE) #copy or perform with value: SlaveUPS_Name e.g. $db->set_prop($dbkey,'SlaveUPS_Name',$c->param('SlaveUPS_Name'),type=>'service'))
if (!$db->set_prop($dbkey,'SlaveUPS_Name',$c->param('SlaveUPS_Name'),type=>'service'))
{$ret .= 'Perform/save failed for SlaveUPS_Name';}
if (! TRUE) #copy or perform with value: MasterUPS_Name e.g. $db->set_prop($dbkey,'MasterUPS_Name',$c->param('MasterUPS_Name'),type=>'service'))
if (!$db->set_prop($dbkey,'MasterUPS_Name',$c->param('MasterUPS_Name'),type=>'service'))
{$ret .= 'Perform/save failed for MasterUPS_Name';}
if (! TRUE) #copy or perform with value: UPS_Model e.g. $db->set_prop($dbkey,'UPS_Model',$c->param('UPS_Model'),type=>'service'))
if (!$db->set_prop($dbkey,'Model',$c->param('UPS_Model'),type=>'service'))
{$ret .= 'Perform/save failed for UPS_Model';}
if (! TRUE) #copy or perform with value: UPS_Device e.g. $db->set_prop($dbkey,'UPS_Device',$c->param('UPS_Device'),type=>'service'))
if (!$db->set_prop($dbkey,'Device',$c->param('UPS_Device'),type=>'service'))
{$ret .= 'Perform/save failed for UPS_Device';}
if (! TRUE) #copy or perform with value: UPS_gen_Type e.g. $db->set_prop($dbkey,'UPS_gen_Type',$c->param('UPS_gen_Type'),type=>'service'))
if (!$db->set_prop($dbkey,'Type',$c->param('UPS_gen_Type'),type=>'service'))
{$ret .= 'Perform/save failed for UPS_gen_Type';}
if (! TRUE) #copy or perform with value: UPS_gen_Mfr e.g. $db->set_prop($dbkey,'UPS_gen_Mfr',$c->param('UPS_gen_Mfr'),type=>'service'))
if (!$db->set_prop($dbkey,'mfr',$c->param('UPS_gen_Mfr'),type=>'service'))
{$ret .= 'Perform/save failed for UPS_gen_Mfr';}
if (! TRUE) #copy or perform with value: UPS_gen_Model e.g. $db->set_prop($dbkey,'UPS_gen_Model',$c->param('UPS_gen_Model'),type=>'service'))
if (!$db->set_prop($dbkey,'mdl',$c->param('UPS_gen_Model'),type=>'service'))
{$ret .= 'Perform/save failed for UPS_gen_Model';}
if ($ret eq "") {$ret = 'ok';}
return $ret;
@@ -183,7 +183,7 @@ sub create_link{
sub get_model_options {
# Execute the RPM command and capture the output
my @output = qx{rpm -ql nut | grep /usr/sbin};
my @output = qx{rpm -ql nut | grep /usr/sbin/};
# Check for errors
if ($? != 0) {
@@ -192,10 +192,43 @@ sub get_model_options {
}
# Remove "/usr/sbin" from the front of each line
s{^/usr/sbin}{} for @output;
s{^/usr/sbin/}{} for @output;
# Trim whitespace from each element and return the array
chomp(@output); # Remove newline characters from each line
return ["fred","Art"] #@output; # Return the array of modified output lines
return @output; # Return the array of modified output lines
}
sub get_ups_details {
my ($ups_system_name) = @_;
# Determine the default based on $nut
if ( ($cdb->get_prop('nut', 'Master', 'yes')) eq 'yes' ) {
$ups_system_name //= $cdb->get_prop('nut', 'MasterUPS', 'UPS\@localhost'); # Master from DB
} else {
$ups_system_name //= $cdb->get_prop('nut', 'SlaveUPS', 'apc\@192.168.1.99'); # Use Slave UPS if Master is "no"
}
# If ups_system_name is still empty or undefined, use the hardcoded default
#$ups_system_name //= "apc\@192.168.1.99"; # Fallback default
# Execute the 'upsc' command
my $command = "/usr/bin/upsc $ups_system_name";
my $result = qx/$command/;
# Check for execution errors
if ($? != 0) {
return "Error executing command: $! ($command)";
}
# Format the output
my @lines = split /\n/, $result; # Split the result into lines
my $formatted_output = "UPS Details for $ups_system_name:\n";
foreach my $line (@lines) {
$formatted_output .= " - $line\n"; # Format each line
}
return $formatted_output;
}
1;