From bf32059e26f6a7d019df0f7949ce66adf997bc21 Mon Sep 17 00:00:00 2001 From: Oyvind Albrigtsen Date: Fri, 8 Feb 2019 14:16:31 +0100 Subject: [PATCH] log exceptions to be more detailed when failing --- agents/apc/fence_apc.py | 6 ++++-- agents/cisco_ucs/fence_cisco_ucs.py | 3 ++- agents/eps/fence_eps.py | 3 ++- agents/ilo_moonshot/fence_ilo_moonshot.py | 3 ++- agents/lpar/fence_lpar.py | 6 ++++-- agents/ovh/fence_ovh.py | 3 ++- agents/sanbox2/fence_sanbox2.py | 12 ++++++++---- agents/vmware_soap/fence_vmware_soap.py | 9 ++++++--- 8 files changed, 30 insertions(+), 15 deletions(-) diff --git a/agents/apc/fence_apc.py b/agents/apc/fence_apc.py index 24a5a4232..dd0287f83 100644 --- a/agents/apc/fence_apc.py +++ b/agents/apc/fence_apc.py @@ -90,7 +90,8 @@ def get_power_status(conn, options): try: (_, status) = outlets[options["--plug"]] return status.lower().strip() - except KeyError: + except KeyError as e: + logging.error("Failed: {}".format(str(e))) fail(EC_STATUS) def set_power_status(conn, options): @@ -199,7 +200,8 @@ def get_power_status5(conn, options): try: (_, status) = outlets[options["--plug"]] return status.lower().strip() - except KeyError: + except KeyError as e: + logging.error("Failed: {}".format(str(e))) fail(EC_STATUS) def set_power_status5(conn, options): diff --git a/agents/cisco_ucs/fence_cisco_ucs.py b/agents/cisco_ucs/fence_cisco_ucs.py index ec3117548..2280dbbc7 100644 --- a/agents/cisco_ucs/fence_cisco_ucs.py +++ b/agents/cisco_ucs/fence_cisco_ucs.py @@ -174,7 +174,8 @@ def main(): if result == None: ## Cookie is absenting in response fail(EC_LOGIN_DENIED) - except Exception: + except Exception as e: + logging.error("Failed: {}".format(str(e))) fail(EC_LOGIN_DENIED) options_global["cookie"] = result.group(1) diff --git a/agents/eps/fence_eps.py b/agents/eps/fence_eps.py index 74c89b95b..f0df86231 100644 --- a/agents/eps/fence_eps.py +++ b/agents/eps/fence_eps.py @@ -56,7 +56,8 @@ def eps_run_command(options, params): conn.close() except socket.timeout: fail(EC_TIMED_OUT) - except socket.error: + except socket.error as e: + logging.error("Failed: {}".format(str(e))) fail(EC_LOGIN_DENIED) return result diff --git a/agents/ilo_moonshot/fence_ilo_moonshot.py b/agents/ilo_moonshot/fence_ilo_moonshot.py index a066a9c91..6f5cca320 100644 --- a/agents/ilo_moonshot/fence_ilo_moonshot.py +++ b/agents/ilo_moonshot/fence_ilo_moonshot.py @@ -21,7 +21,8 @@ def get_power_status(conn, options): try: (_, status) = nodes[options["--plug"]] return status.lower() - except KeyError: + except KeyError as e: + logging.error("Failed: {}".format(str(e))) fail(EC_STATUS) def set_power_status(conn, options): diff --git a/agents/lpar/fence_lpar.py b/agents/lpar/fence_lpar.py index a16103733..66cb65e41 100644 --- a/agents/lpar/fence_lpar.py +++ b/agents/lpar/fence_lpar.py @@ -37,7 +37,8 @@ def get_power_status(conn, options): try: status = re.compile("^" + options["--plug"] + ",(.*?),.*$", re.IGNORECASE | re.MULTILINE).search(conn.before).group(1) - except AttributeError: + except AttributeError as e: + logging.error("Failed: {}".format(str(e))) fail(EC_STATUS_HMC) elif options["--hmc-version"] in ["4", "IVM"]: conn.send("lssyscfg -r lpar -m "+ options["--managed"] + @@ -49,7 +50,8 @@ def get_power_status(conn, options): try: status = re.compile(",state=(.*?),", re.IGNORECASE).search(conn.before).group(1) - except AttributeError: + except AttributeError as e: + logging.error("Failed: {}".format(str(e))) fail(EC_STATUS_HMC) return _normalize_status(status) diff --git a/agents/ovh/fence_ovh.py b/agents/ovh/fence_ovh.py index f5403c54d..2b7eb864f 100644 --- a/agents/ovh/fence_ovh.py +++ b/agents/ovh/fence_ovh.py @@ -66,7 +66,8 @@ def soap_login(options): try: soap = Client(url, doctor=d) session = soap.service.login(options["--username"], options["--password"], 'en', 0) - except Exception: + except Exception as e: + logging.error("Failed: {}".format(str(e))) fail(EC_LOGIN_DENIED) options["session"] = session diff --git a/agents/sanbox2/fence_sanbox2.py b/agents/sanbox2/fence_sanbox2.py index 679d1d983..179fe0e8b 100644 --- a/agents/sanbox2/fence_sanbox2.py +++ b/agents/sanbox2/fence_sanbox2.py @@ -28,7 +28,8 @@ def get_power_status(conn, options): conn.send_eol("admin end") conn.send_eol("exit") conn.close() - except Exception: + except Exception as e: + logging.error("Failed: {}".format(str(e))) pass fail(EC_TIMED_OUT) @@ -54,7 +55,8 @@ def set_power_status(conn, options): conn.send_eol("admin end") conn.send_eol("exit") conn.close() - except Exception: + except Exception as e: + logging.error("Failed: {}".format(str(e))) pass fail(EC_TIMED_OUT) @@ -66,7 +68,8 @@ def set_power_status(conn, options): conn.send_eol("admin end") conn.send_eol("exit") conn.close() - except Exception: + except Exception as e: + logging.error("Failed: {}".format(str(e))) pass fail(EC_TIMED_OUT) @@ -91,7 +94,8 @@ def get_list_devices(conn, options): conn.send_eol("admin end") conn.send_eol("exit") conn.close() - except Exception: + except Exception as e: + logging.error("Failed: {}".format(str(e))) pass fail(EC_TIMED_OUT) diff --git a/agents/vmware_soap/fence_vmware_soap.py b/agents/vmware_soap/fence_vmware_soap.py index f2ab68b02..a7f08b3d6 100644 --- a/agents/vmware_soap/fence_vmware_soap.py +++ b/agents/vmware_soap/fence_vmware_soap.py @@ -68,7 +68,8 @@ def soap_login(options): conn.service.Login(mo_SessionManager, options["--username"], options["--password"]) except requests.exceptions.SSLError as ex: fail_usage("Server side certificate verification failed: %s" % ex) - except Exception: + except Exception as e: + logging.error("Server side certificate verification failed: {}".format(str(e))) fail(EC_LOGIN_DENIED) options["ServiceContent"] = ServiceContent @@ -126,7 +127,8 @@ def get_power_status(conn, options): try: raw_machines = conn.service.RetrievePropertiesEx(mo_PropertyCollector, propFilterSpec) - except Exception: + except Exception as e: + logging.error("Failed: {}".format(str(e))) fail(EC_STATUS) (machines, uuid, mappingToUUID) = process_results(raw_machines, {}, {}, {}) @@ -135,7 +137,8 @@ def get_power_status(conn, options): while hasattr(raw_machines, 'token'): try: raw_machines = conn.service.ContinueRetrievePropertiesEx(mo_PropertyCollector, raw_machines.token) - except Exception: + except Exception as e: + logging.error("Failed: {}".format(str(e))) fail(EC_STATUS) (more_machines, more_uuid, more_mappingToUUID) = process_results(raw_machines, {}, {}, {}) machines.update(more_machines)