improve logging and metadata/usage text
This commit is contained in:
parent
e69a9aaa2d
commit
f13d3c0efe
@ -0,0 +1,120 @@
|
||||
diff --git a/agents/aws/fence_aws.py b/agents/aws/fence_aws.py
|
||||
index 647b66fc..74321e8e 100644
|
||||
--- a/agents/aws/fence_aws.py
|
||||
+++ b/agents/aws/fence_aws.py
|
||||
@@ -5,7 +5,7 @@
|
||||
import atexit
|
||||
sys.path.append("@FENCEAGENTSLIBDIR@")
|
||||
from fencing import *
|
||||
-from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay
|
||||
+from fencing import fail, fail_usage, run_delay, EC_STATUS
|
||||
|
||||
import boto3
|
||||
from botocore.exceptions import ClientError, EndpointConnectionError, NoRegionError
|
||||
@@ -19,6 +19,8 @@ def get_nodes_list(conn, options):
|
||||
fail_usage("Failed: Incorrect Access Key or Secret Key.")
|
||||
except EndpointConnectionError:
|
||||
fail_usage("Failed: Incorrect Region.")
|
||||
+ except Exception as e:
|
||||
+ logging.error("Failed to get node list: %s", e)
|
||||
|
||||
return result
|
||||
|
||||
@@ -38,20 +40,26 @@ def get_power_status(conn, options):
|
||||
except EndpointConnectionError:
|
||||
fail_usage("Failed: Incorrect Region.")
|
||||
except IndexError:
|
||||
- return "fail"
|
||||
+ fail(EC_STATUS)
|
||||
+ except Exception as e:
|
||||
+ logging.error("Failed to get power status: %s", e)
|
||||
+ fail(EC_STATUS)
|
||||
|
||||
def set_power_status(conn, options):
|
||||
- if (options["--action"]=="off"):
|
||||
- conn.instances.filter(InstanceIds=[options["--plug"]]).stop(Force=True)
|
||||
- elif (options["--action"]=="on"):
|
||||
- conn.instances.filter(InstanceIds=[options["--plug"]]).start()
|
||||
-
|
||||
+ try:
|
||||
+ if (options["--action"]=="off"):
|
||||
+ conn.instances.filter(InstanceIds=[options["--plug"]]).stop(Force=True)
|
||||
+ elif (options["--action"]=="on"):
|
||||
+ conn.instances.filter(InstanceIds=[options["--plug"]]).start()
|
||||
+ except Exception as e:
|
||||
+ logging.error("Failed to power %s %s: %s", \
|
||||
+ options["--action"], options["--plug"], e)
|
||||
|
||||
def define_new_opts():
|
||||
all_opt["region"] = {
|
||||
"getopt" : "r:",
|
||||
"longopt" : "region",
|
||||
- "help" : "-r, --region=[name] Region, e.g. us-east-1",
|
||||
+ "help" : "-r, --region=[region] Region, e.g. us-east-1",
|
||||
"shortdesc" : "Region.",
|
||||
"required" : "0",
|
||||
"order" : 2
|
||||
@@ -59,7 +67,7 @@ def define_new_opts():
|
||||
all_opt["access_key"] = {
|
||||
"getopt" : "a:",
|
||||
"longopt" : "access-key",
|
||||
- "help" : "-a, --access-key=[name] Access Key",
|
||||
+ "help" : "-a, --access-key=[key] Access Key",
|
||||
"shortdesc" : "Access Key.",
|
||||
"required" : "0",
|
||||
"order" : 3
|
||||
@@ -67,7 +75,7 @@ def define_new_opts():
|
||||
all_opt["secret_key"] = {
|
||||
"getopt" : "s:",
|
||||
"longopt" : "secret-key",
|
||||
- "help" : "-s, --secret-key=[name] Secret Key",
|
||||
+ "help" : "-s, --secret-key=[key] Secret Key",
|
||||
"shortdesc" : "Secret Key.",
|
||||
"required" : "0",
|
||||
"order" : 4
|
||||
@@ -107,16 +115,16 @@ def main():
|
||||
conn = boto3.resource('ec2', region_name=region,
|
||||
aws_access_key_id=access_key,
|
||||
aws_secret_access_key=secret_key)
|
||||
- except:
|
||||
- fail_usage("Failed: Unable to connect to AWS. Check your configuration.")
|
||||
+ except Exception as e:
|
||||
+ fail_usage("Failed: Unable to connect to AWS: " + str(e))
|
||||
else:
|
||||
# If setup with "aws configure" or manually in
|
||||
# ~/.aws/credentials
|
||||
try:
|
||||
conn = boto3.resource('ec2')
|
||||
- except:
|
||||
+ except Exception as e:
|
||||
# If any of region/access/secret are missing
|
||||
- fail_usage("Failed: Unable to connect to AWS. Check your configuration.")
|
||||
+ fail_usage("Failed: Unable to connect to AWS: " + str(e))
|
||||
|
||||
# Operate the fencing device
|
||||
result = fence_action(conn, options, set_power_status, get_power_status, get_nodes_list)
|
||||
diff --git a/tests/data/metadata/fence_aws.xml b/tests/data/metadata/fence_aws.xml
|
||||
index 4dea4418..5e5d5d99 100644
|
||||
--- a/tests/data/metadata/fence_aws.xml
|
||||
+++ b/tests/data/metadata/fence_aws.xml
|
||||
@@ -22,17 +22,17 @@ For instructions see: https://boto3.readthedocs.io/en/latest/guide/quickstart.ht
|
||||
<shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
|
||||
</parameter>
|
||||
<parameter name="region" unique="0" required="0">
|
||||
- <getopt mixed="-r, --region=[name]" />
|
||||
+ <getopt mixed="-r, --region=[region]" />
|
||||
<content type="string" />
|
||||
<shortdesc lang="en">Region.</shortdesc>
|
||||
</parameter>
|
||||
<parameter name="access_key" unique="0" required="0">
|
||||
- <getopt mixed="-a, --access-key=[name]" />
|
||||
+ <getopt mixed="-a, --access-key=[key]" />
|
||||
<content type="string" />
|
||||
<shortdesc lang="en">Access Key.</shortdesc>
|
||||
</parameter>
|
||||
<parameter name="secret_key" unique="0" required="0">
|
||||
- <getopt mixed="-s, --secret-key=[name]" />
|
||||
+ <getopt mixed="-s, --secret-key=[key]" />
|
||||
<content type="string" />
|
||||
<shortdesc lang="en">Secret Key.</shortdesc>
|
||||
</parameter>
|
||||
@ -29,7 +29,7 @@
|
||||
Name: fence-agents
|
||||
Summary: Set of unified programs capable of host isolation ("fencing")
|
||||
Version: 4.2.1
|
||||
Release: 33
|
||||
Release: 34
|
||||
License: GPLv2+ and LGPLv2+ and ASL 2.0 and BSD and MIT and Python-2.0 and Artistic-1.0-Perl
|
||||
Group: System Environment/Base
|
||||
URL: https://github.com/ClusterLabs/fence-agents
|
||||
@ -77,6 +77,7 @@ Patch37: bz1732773-fence_vmware_rest-fix-keyerror-suspended-vms.patch
|
||||
Patch38: bz1748443-fence_zvmip-python3-fixes.patch
|
||||
Patch39: bz1762432-fence_compute-disable-service-after-force-down.patch
|
||||
Patch40: bz1751704-fence_mpath-fix-watchdog-trigger-multipath-disconnect.patch
|
||||
Patch41: bz1781357-fence_aws-improve-logging-and-metadata-usage-text.patch
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} > 7
|
||||
%global supportedagents amt_ws apc apc_snmp bladecenter brocade cisco_mds cisco_ucs compute drac5 eaton_snmp emerson eps evacuate hpblade ibmblade ifmib ilo ilo_moonshot ilo_mp ilo_ssh intelmodular ipdu ipmilan mpath kdump redfish rhevm rsa rsb sbd scsi vmware_rest vmware_soap wti
|
||||
@ -193,7 +194,7 @@ BuildRequires: python3-google-api-client
|
||||
%patch38 -p1
|
||||
%patch39 -p1
|
||||
%patch40 -p1
|
||||
|
||||
%patch41 -p1
|
||||
# prevent compilation of something that won't get used anyway
|
||||
sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac
|
||||
|
||||
@ -965,6 +966,9 @@ Fence agent for IBM z/VM over IP.
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Jul 25 2022 zhaochaoxiang <zhaochaoxiang@kylinos.cn> - 4.2.1-34
|
||||
- improve logging and metadata/usage text
|
||||
|
||||
* Mon Jul 25 2022 zhaochaoxiang <zhaochaoxiang@kylinos.cn> - 4.2.1-33
|
||||
- fix watchdog trigger multipath disconnect
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user