diff --git a/agents/ecloud/fence_ecloud.py b/agents/ecloud/fence_ecloud.py new file mode 100644 index 00000000..0707e102 --- /dev/null +++ b/agents/ecloud/fence_ecloud.py @@ -0,0 +1,169 @@ +#!@PYTHON@ -tt +# +# Fence agent for eCloud and eCloud VPC +# https://www.ans.co.uk/cloud-and-infrastructure/ecloud/ +# +# Copyright (c) 2022 ANS Group Limited +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library. If not, see +# . + +import sys +import time +import atexit +import logging +import requests +sys.path.append("@FENCEAGENTSLIBDIR@") +from fencing import * +from fencing import run_delay, fail_usage, fail, EC_TIMED_OUT + +API_BASE = "https://api.ukfast.io/ecloud" +API_MONITOR = API_BASE + "/ping" +API_VPC_INSTANCE_DATA = API_BASE + "/v2/instances/:ID" +API_VPC_POWER_ON = API_BASE + "/v2/instances/:ID/power-on" +API_VPC_POWER_OFF = API_BASE + "/v2/instances/:ID/power-off" +API_V1_INSTANCE_DATA = API_BASE + "/v1/vms/:ID" +API_V1_POWER_ON = API_BASE + "/v1/vms/:ID/power-on" +API_V1_POWER_OFF = API_BASE + "/v1/vms/:ID/power-off" + + +def set_power_fn(conn, options): + logging.debug("setting power {}".format(options['--action'])) + del conn + + action = options['--action'] + vpc = options['--ecloud-vpc'] + plug = options['--plug'] + + url = fence_url(vpc, action, plug) + hdrs = headers(options['--apikey']) + + logging.info("executing '{}' action on '{}'".format(action, plug)) + + retries = 0 + while True: + resp = requests.put(url, headers=hdrs) + if resp.status_code == 409: + # If we attempt to power the instance back on too soon after powering it off, + # e.g. during a reboot, the API will return a 409 because while the power status + # has changed, the task is still executing. Retry the action until we exceed + # retries or get a different status code. + if retries >= 6: + logging.error("timed out trying to execute '{}' action after repeated 409 codes from API", action) + fail(EC_TIMED_OUT) + + time.sleep(2) + retries += 1 + continue + + if resp.status_code != 202: + logging.error("unexpected status code '{}' from endpoint '{}': {}".format( + resp.status_code, url, resp.text + )) + + break + + +def get_power_fn(conn, options): + logging.debug("getting power state") + del conn + + vpc = options['--ecloud-vpc'] + plug = options['--plug'] + + url = instance_data_url(vpc, plug) + hdrs = headers(options['--apikey']) + + resp = requests.get(url, headers=hdrs) + if resp.status_code != 200: + logging.error("unexpected status code ('{}') from endpoint '{}': {}".format( + resp.status_code, url, resp.text + )) + return "bad status {}".format(resp.status_code) + + instance = resp.json()['data'] + if vpc: + logging.debug("power state return value: {}".format(instance['online'])) + return "on" if instance['online'] else "off" + else: + if instance['power_status'] == "Online": + return "on" + elif instance['power_status'] == "Offline": + return "off" + else: + # Could be 'Unknown' or other value + return instance['power_status'] + + +def headers(apikey): + return { + "Authorization": apikey, + "User-Agent": "fence_ecloud" + } + + +def itp(url, plug): + return url.replace(':ID', plug) + + +def fence_url(vpc, action, plug): + if action == "on": + return itp(API_VPC_POWER_ON, plug) if vpc else itp(API_V1_POWER_ON, plug) + if action == "off": + return itp(API_VPC_POWER_OFF, plug) if vpc else itp(API_V1_POWER_OFF, plug) + + fail_usage("no available API configured for action '{}'".format(action)) + + +def instance_data_url(vpc, plug): + return itp(API_VPC_INSTANCE_DATA, plug) if vpc else itp(API_V1_INSTANCE_DATA, plug) + + +def main(): + device_opt = ["apikey", "port", "no_login", "no_password"] + + all_opt["apikey"] = { + "getopt": ":", + "longopt": "apikey", + "help": "--apikey=[key] eCloud API Key", + "required": "1", + "shortdesc": "API Key", + "order": 0, + } + all_opt["port"]["help"] = "-n, --plug=[instance] Instance ID (VPC) or server ID (v1)" + + atexit.register(atexit_handler) + + options = check_input(device_opt, process_input(device_opt)) + + docs = {} + docs["shortdesc"] = "Fence Agent for ANS eCloud" + docs["longdesc"] = "fence_ecloud is a fence agent for use with the ANS \ +eCloud platform which is compatible with eCloud VPC and eCloud v1." + docs["vendorurl"] = "https://www.ans.co.uk" + show_docs(options, docs) + + if options['--action'] in ['on', 'off', 'reboot', 'status']: + plug = options['--plug'] + + options['--ecloud-vpc'] = True + if not plug.startswith("i-"): + options['--ecloud-vpc'] = False + + run_delay(options) + fence_action(None, options, set_power_fn, get_power_fn) + + +if __name__ == '__main__': + main() diff --git a/doc/COPYRIGHT b/doc/COPYRIGHT index 7aac93c4..4594455b 100644 --- a/doc/COPYRIGHT +++ b/doc/COPYRIGHT @@ -1,82 +1,86 @@ Unless specified otherwise in the "exceptions section" below: Copyright (C) 1997-2003 Sistina Software, Inc. All rights reserved. Copyright (C) 2004-2011 Red Hat, Inc. All rights reserved. Exceptions: agents/raritan_px3/*: Copyright (c) 2021 SUSE LLC Contributed by Thomas Renninger agents/ibmz/*: Copyright (c) 2020 IBM Corp. Contributed by Paulo de Rezende Pinatti agents/hds_cb/*: Copyright (C) 2012 Matthew Clark. Author: Matthew Clark agents/xenapi/*: Copyright (C) 2011 Matthew Clark. Author: Matthew Clark agents/apc_snmp/powernet369.mib: Copyright (c) 2005 American Power Conversion, Inc. PowerNet is a Trademark of American Power Conversion Corp. agents/eaton_snmp/fence_eaton_snmp.py: Copyright (c) 2011 eaton.com Author: Arnaud Quette agents/ifmib/fence_ifmib.py: Copyright (C) 2008-2011 Ross Vandegrift. Written by Ross Vandegrift agents/intelmodular/fence_intelmodular.pl: Contributed by Matthew Kent agents/ipmilan/expect.{c,h}: Copyright (C) 2000 Alan Robertson agents/node_assassin/* Copyright (C) 2009-2011 Madison Kelly/Alteeve's Niche! Author: Digimer +agents/ecloud/fence_ecloud.py: + Copyright (C) 2022 ANS Group Limited + Author: Dane Elwell + man/fence_ifmib.8: Copyright (C) 2008-2011 Ross Vandegrift. Written by Ross Vandegrift Authors as known by current RCS as of the time of writing: Abhijith Das Adam Manthei A. J. Lewis Alasdair G. Kergon Andrew Price Benjamin Marzinski Bob Peterson Chris Feist Christine Caulfield Daniel Phillips David Teigland Fabio M. Di Nitto James Parsons Joel Becker Jonathan Brassow jparsons Ken Preslan Klaus Wenninger Lon Hohberger Marc - A. Dahlhaus Marek 'marx' Grac Mark Hlawatschek Michael Conrad Tadpol Tilstra Patrick Caulfield Robert Peterson Ross Vandegrift Ryan McCabe Ryan O'Hara Stanko Kupcevic Steven Whitehouse Wendy Cheng diff --git a/fence-agents.spec.in b/fence-agents.spec.in index 9bf009ff..34b14cb4 100644 --- a/fence-agents.spec.in +++ b/fence-agents.spec.in @@ -1,1428 +1,1446 @@ ############################################################################### ############################################################################### ## ## Copyright (C) 2019-2021 Red Hat, Inc. All rights reserved. ## ## This copyrighted material is made available to anyone wishing to use, ## modify, copy, or redistribute it subject to the terms and conditions ## of the GNU General Public License v.2. ## ############################################################################### ############################################################################### %global rcver @rcver@ %global alphatag @alphatag@ %global numcomm @numcomm@ %global dirty @dirty@ Name: fence-agents Summary: Set of unified programs capable of host isolation ("fencing") Version: @version@ Release: @specver@%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Base URL: https://github.com/ClusterLabs/fence-agents Source0: %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.bz2 %if 0%{?rhel} == 7 %ifarch s390x %define rhel7_s390x 1 %endif %endif %if 0%{?rhel} == 9 %ifarch ppc64le s390x %define rhel9_ppc64le_s390x 1 %endif %endif # skipped: pve, raritan, rcd-serial, virsh %global allfenceagents %(cat < 7 || 0%{?rhel} > 7 || 0%{?suse_version} BuildRequires: python3-devel BuildRequires: python3-httplib2 python3-pexpect python3-pycurl python3-requests %if 0%{?suse_version} > 1500 BuildRequires: python3-suds-community %else BuildRequires: python3-suds %endif %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 BuildRequires: openwsman-python3 %if ! %{defined rhel9_ppc64le_s390x} BuildRequires: python3-boto3 %endif %endif %if 0%{?suse_version} BuildRequires: python3-openwsman python3-boto3 %endif %else BuildRequires: python-devel BuildRequires: pexpect python-pycurl python-requests BuildRequires: python-suds openwsman-python %if ! %{defined rhel7_s390x} BuildRequires: python-boto3 python-httplib2 %endif # (-openstack) %ifarch x86_64 ppc64le BuildRequires: python-novaclient python-keystoneclient %endif %endif # fence-virt %if 0%{?suse_version} %define nss_devel mozilla-nss-devel %define nspr_devel mozilla-nspr-devel %define systemd_units systemd %else %define nss_devel nss-devel %define nspr_devel nspr-devel %define systemd_units systemd-units %endif BuildRequires: corosynclib-devel libvirt-devel BuildRequires: libxml2-devel %{nss_devel} %{nspr_devel} BuildRequires: flex bison libuuid-devel BuildRequires: %{systemd_units} # turn off the brp-python-bytecompile script # (for F28+ or equivalent, the latter is the preferred form) %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompilespace:.*$!!g') #undefine __brp_python_bytecompile %prep %setup -q -n %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}} %autopatch -p1 # prevent compilation of something that won't get used anyway sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac %build %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} export PYTHON="%{__python3}" %endif ./autogen.sh %{configure} \ %if %{defined _tmpfilesdir} SYSTEMD_TMPFILES_DIR=%{_tmpfilesdir} \ --with-fencetmpdir=/run/fence-agents \ %endif --disable-libvirt-qmf-plugin CFLAGS="$(echo '%{optflags}')" make %{_smp_mflags} %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} mkdir -p %{buildroot}/%{_unitdir}/ install -m 0644 agents/virt/fence_virtd.service %{buildroot}/%{_unitdir}/ # bytecompile Python source code in a non-standard location %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 %py_byte_compile %{__python3} %{buildroot}%{_datadir}/fence %endif # XXX unsure if /usr/sbin/fence_* should be compiled as well ## tree fix up # fix libfence permissions chmod 0755 %{buildroot}%{_datadir}/fence/*.py # remove docs rm -rf %{buildroot}/usr/share/doc/fence-agents # remove .a files rm -f %{buildroot}/%{_libdir}/%{name}/*.*a rm -f %{buildroot}/%{_libdir}/fence-virt/*.*a %post ccs_update_schema > /dev/null 2>&1 ||: # https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd if [ $1 -eq 1 ] ; then # Initial installation /bin/systemctl daemon-reload >/dev/null 2>&1 || : fi %preun # https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd if [ $1 -eq 0 ] ; then # Package removal, not upgrade /bin/systemctl --no-reload disable fence_virtd.service &> /dev/null || : /bin/systemctl stop fence_virtd.service &> /dev/null || : fi %postun # https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd /bin/systemctl daemon-reload &> /dev/null || : if [ $1 -ge 1 ] ; then # Package upgrade, not uninstall /bin/systemctl try-restart fence_virtd.service &> /dev/null || : fi %triggerun -- fence_virtd < 0.3.0-1 # https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Packages_migrating_to_a_systemd_unit_file_from_a_SysV_initscript /usr/bin/systemd-sysv-convert --save fence_virtd &> /dev/null || : /sbin/chkconfig --del fence_virtd &> /dev/null || : /bin/systemctl daemon-reload >/dev/null 2>&1 || : /bin/systemctl try-restart fence_virtd.service &> /dev/null || : %description A collection of executables to handle isolation ("fencing") of possibly misbehaving hosts by the means of remote power management, blocking network, storage, or similar. They operate through a unified interface (calling conventions) devised for the original Red Hat clustering solution. %package common License: GPLv2+ and LGPLv2+ Summary: Common base for Fence Agents %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-pexpect python3-pycurl %else Requires: pexpect python-pycurl %endif BuildArch: noarch %description common A collection of executables to handle isolation ("fencing") of possibly misbehaving hosts by the means of remote power management, blocking network, storage, or similar. This package contains support files including the Python fencing library. %files common %doc doc/COPYING.* doc/COPYRIGHT doc/README.licence %{_datadir}/fence %exclude %{_datadir}/fence/azure_fence.* %exclude %{_datadir}/fence/__pycache__/azure_fence.* %exclude %{_datadir}/fence/XenAPI.* %exclude %{_datadir}/fence/__pycache__/XenAPI.* %{_datadir}/cluster %exclude %{_datadir}/cluster/fence_mpath_check* %exclude %{_datadir}/cluster/fence_scsi_check* %{_datadir}/pkgconfig/%{name}.pc %exclude %{_sbindir}/* %exclude %{_mandir}/man8/* %if %{defined _tmpfilesdir} %{_tmpfilesdir}/%{name}.conf %endif %if %{defined _tmpfilesdir} %dir %attr (1755, root, root) /run/%{name} %else %dir %attr (1755, root, root) %{_var}/run/%{name} %endif %package all License: GPLv2+ and LGPLv2+ and ASL 2.0 Summary: Set of unified programs capable of host isolation ("fencing") Requires: %{allfenceagents} Provides: fence-agents = %{version}-%{release} Obsoletes: fence-agents < 3.1.13 %description all A collection of executables to handle isolation ("fencing") of possibly misbehaving hosts by the means of remote power management, blocking network, storage, or similar. This package serves as a catch-all for all supported fence agents. %files all %ifarch x86_64 %package aliyun License: GPLv2+ and LGPLv2+ and ASL 2.0 and BSD and MIT Group: System Environment/Base Summary: Fence agent for Alibaba Cloud (Aliyun) Requires: fence-agents-common >= %{version}-%{release} Requires: python3-jmespath >= 0.9.0 Obsoletes: %{name} < %{version}-%{release} %description aliyun The fence-agents-aliyun package contains a fence agent for Alibaba Cloud (Aliyun) instances. %files aliyun %defattr(-,root,root,-) %{_sbindir}/fence_aliyun %{_mandir}/man8/fence_aliyun.8* %endif %package alom License: GPLv2+ and LGPLv2+ Summary: Fence agent for SUN ALOM Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description alom Fence agent for SUN ALOM. %files alom %{_sbindir}/fence_alom %{_mandir}/man8/fence_alom.8* %package amt License: GPLv2+ and LGPLv2+ Summary: Fence agent for Intel AMT devices Requires: amtterm Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description amt Fence agent for AMT compatibile devices that are accessed via 3rd party software. %files amt %{_sbindir}/fence_amt %{_mandir}/man8/fence_amt.8* %package amt-ws License: ASL 2.0 Summary: Fence agent for Intel AMT (WS-Man) devices Requires: fence-agents-common = %{version}-%{release} %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 Requires: openwsman-python3 %endif %if 0%{?suse_version} Requires: python3-openwsman %endif %else Requires: openwsman-python %endif BuildArch: noarch %description amt-ws Fence agent for AMT (WS-Man) devices. %files amt-ws %{_sbindir}/fence_amt_ws %{_mandir}/man8/fence_amt_ws.8* %package apc License: GPLv2+ and LGPLv2+ Summary: Fence agent for APC devices Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description apc Fence agent for APC devices that are accessed via telnet or SSH. %files apc %{_sbindir}/fence_apc %{_mandir}/man8/fence_apc.8* %package apc-snmp License: GPLv2+ and LGPLv2+ Summary: Fence agents for APC devices (SNMP) Requires: net-snmp-utils Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description apc-snmp Fence agents for APC devices that are accessed via the SNMP protocol. %files apc-snmp %{_sbindir}/fence_apc_snmp %{_mandir}/man8/fence_apc_snmp.8* %{_sbindir}/fence_tripplite_snmp %{_mandir}/man8/fence_tripplite_snmp.8* %if ! %{defined rhel7_s390x} %package aws License: GPLv2+ and LGPLv2+ Summary: Fence agent for Amazon AWS Requires: fence-agents-common = %{version}-%{release} %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-boto3 %else Requires: python-boto3 %endif BuildArch: noarch Obsoletes: fence-agents < 3.1.13 %description aws Fence agent for Amazon AWS instances. %files aws %{_sbindir}/fence_aws %{_mandir}/man8/fence_aws.8* %endif %package azure-arm License: GPLv2+ and LGPLv2+ Summary: Fence agent for Azure Resource Manager Requires: fence-agents-common = %{version}-%{release} %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} %if 0%{?fedora} > 34 Requires: python3-azure-common Requires: python3-azure-identity Requires: python3-azure-mgmt-compute Requires: python3-azure-mgmt-network Requires: python3-msrestazure %else Requires: python3-azure-sdk %endif %else Requires: python-azure-sdk %endif BuildArch: noarch Obsoletes: fence-agents < 3.1.13 %description azure-arm Fence agent for Azure Resource Manager instances. %files azure-arm %{_sbindir}/fence_azure_arm %{_datadir}/fence/azure_fence.py* %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 %{_datadir}/fence/__pycache__/azure_fence.* %endif %{_mandir}/man8/fence_azure_arm.8* %package bladecenter License: GPLv2+ and LGPLv2+ Summary: Fence agent for IBM BladeCenter Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description bladecenter Fence agent for IBM BladeCenter devices that are accessed via telnet or SSH. %files bladecenter %{_sbindir}/fence_bladecenter %{_mandir}/man8/fence_bladecenter.8* %package brocade License: GPLv2+ and LGPLv2+ Summary: Fence agent for Brocade switches Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description brocade Fence agent for Brocade devices that are accessed via telnet or SSH. %files brocade %{_sbindir}/fence_brocade %{_mandir}/man8/fence_brocade.8* %package cdu License: GPLv3-only Summary: Fence agent for a Sentry Switch CDU Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description cdu Fence agent for Sentry Switch CDU power switch. %files cdu %{_sbindir}/fence_cdu %{_mandir}/man8/fence_cdu.8* %package cisco-mds License: GPLv2+ and LGPLv2+ Summary: Fence agent for Cisco MDS 9000 series Requires: net-snmp-utils Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description cisco-mds Fence agent for Cisco MDS 9000 series devices that are accessed via the SNMP protocol. %files cisco-mds %{_sbindir}/fence_cisco_mds %{_mandir}/man8/fence_cisco_mds.8* %package cisco-ucs License: GPLv2+ and LGPLv2+ Summary: Fence agent for Cisco UCS series %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-pycurl %else Requires: python-pycurl %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description cisco-ucs Fence agent for Cisco UCS series devices that are accessed via the SNMP protocol. %files cisco-ucs %{_sbindir}/fence_cisco_ucs %{_mandir}/man8/fence_cisco_ucs.8* %ifarch x86_64 ppc64le %package compute License: GPLv2+ and LGPLv2+ Summary: Fence agent for Nova compute nodes %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-requests Requires: python3-novaclient %else Requires: python-requests Requires: python2-novaclient %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description compute Fence agent for Nova compute nodes. %files compute %{_sbindir}/fence_compute %{_sbindir}/fence_evacuate %{_mandir}/man8/fence_compute.8* %{_mandir}/man8/fence_evacuate.8* %endif %package cyberpower-ssh License: GPLv2+ and LGPLv2+ Summary: Fence agent for CyberPower network PDUs Requires: openssh-clients Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description cyberpower-ssh %files cyberpower-ssh %{_sbindir}/fence_cyberpower_ssh %{_mandir}/man8/fence_cyberpower_ssh.8* %package docker License: GPLv2+ and LGPLv2+ Summary: Fence agent for Docker %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-pycurl %else Requires: python-pycurl %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description docker Fence agent for Docker images that are accessed over HTTP. %files docker %{_sbindir}/fence_docker %{_mandir}/man8/fence_docker.8* %package drac License: GPLv2+ and LGPLv2+ Summary: Fence agent for Dell DRAC Requires: telnet Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description drac Fence agent for Dell DRAC IV series devices that are accessed via telnet. %files drac %{_sbindir}/fence_drac %{_mandir}/man8/fence_drac.8* %package drac5 License: GPLv2+ and LGPLv2+ Summary: Fence agent for Dell DRAC 5 Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description drac5 Fence agent for Dell DRAC 5 series devices that are accessed via telnet or SSH. %files drac5 %{_sbindir}/fence_drac5 %{_mandir}/man8/fence_drac5.8* %package eaton-snmp License: GPLv2+ and LGPLv2+ Summary: Fence agent for Eaton network power switches Requires: net-snmp-utils Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description eaton-snmp Fence agent for Eaton network power switches that are accessed via the SNMP protocol. %files eaton-snmp %{_sbindir}/fence_eaton_snmp %{_mandir}/man8/fence_eaton_snmp.8* +%package ecloud +License: GPLv2+ and LGPLv2+ +Summary: Fence agent for eCloud and eCloud VPC +Requires: python3-requests +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} +Requires: python3-requests +%else +Requires: python-requests +%endif +Requires: fence-agents-common = %{version}-%{release} +BuildArch: noarch +%description ecloud +Fence agent for eCloud and eCloud VPC from ANS Group Limited +%files ecloud +%{_sbindir}/fence_ecloud +%{_mandir}/man8/fence_ecloud.8* + %package emerson License: GPLv2+ and LGPLv2+ Summary: Fence agent for Emerson devices (SNMP) Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description emerson Fence agent for Emerson devices that are accessed via the SNMP protocol. %files emerson %{_sbindir}/fence_emerson %{_mandir}/man8/fence_emerson.8* %package eps License: GPLv2+ and LGPLv2+ Summary: Fence agent for ePowerSwitch 8M+ power switches Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description eps Fence agent for ePowerSwitch 8M+ power switches that are accessed via the HTTP(s) protocol. %files eps %{_sbindir}/fence_eps %{_mandir}/man8/fence_eps.8* %if ! %{defined rhel7_s390x} %package gce License: GPLv2+ and LGPLv2+ Summary: Fence agent for GCE (Google Cloud Engine) Requires: fence-agents-common = %{version}-%{release} %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 Requires: python3-google-api-client %endif %if 0%{?suse_version} Requires: python3-google-api-python-client %endif %else Requires: python-google-api-client %endif BuildArch: noarch Obsoletes: fence-agents < 3.1.13 %description gce Fence agent for GCE (Google Cloud Engine) instances. %files gce %{_sbindir}/fence_gce %{_mandir}/man8/fence_gce.8* %endif %package hds-cb License: GPLv2+ and LGPLv2+ Summary: Fence agent for Hitachi Compute Blade systems Requires: telnet Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description hds-cb Fence agent for Hitachi Compute Blades that are accessed via telnet. %files hds-cb %{_sbindir}/fence_hds_cb %{_mandir}/man8/fence_hds_cb.8* %package heuristics-ping License: GPLv2+ and LGPLv2+ Summary: Pseudo fence agent to affect other agents based on ping-heuristics Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch Obsoletes: fence-agents < 3.1.13 %description heuristics-ping Fence pseudo agent used to affect other agents based on ping-heuristics. %files heuristics-ping %{_sbindir}/fence_heuristics_ping %{_mandir}/man8/fence_heuristics_ping.8* %package hpblade License: GPLv2+ and LGPLv2+ Summary: Fence agent for HP BladeSystem devices Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description hpblade Fence agent for HP BladeSystem devices that are accessed via telnet or SSH. %files hpblade %{_sbindir}/fence_hpblade %{_mandir}/man8/fence_hpblade.8* %package ibmblade License: GPLv2+ and LGPLv2+ Summary: Fence agent for IBM BladeCenter Requires: net-snmp-utils Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ibmblade Fence agent for IBM BladeCenter devices that are accessed via the SNMP protocol. %files ibmblade %{_sbindir}/fence_ibmblade %{_mandir}/man8/fence_ibmblade.8* %package ibmz License: GPLv2+ and LGPLv2+ Summary: Fence agent for IBM z LPARs %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-requests %else Requires: python-requests %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ibmz Fence agent for IBM z LPARs that are accessed via the HMC Web Services REST API. %files ibmz %{_sbindir}/fence_ibmz %{_mandir}/man8/fence_ibmz.8* %package ibm-powervs License: GPLv2+ and LGPLv2+ Summary: Fence agent for IBM PowerVS Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ibm-powervs Fence agent for IBM PowerVS that are accessed via REST API. %files ibm-powervs %{_sbindir}/fence_ibm_powervs %{_mandir}/man8/fence_ibm_powervs.8* %package ibm-vpc License: GPLv2+ and LGPLv2+ Summary: Fence agent for IBM Cloud VPC Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ibm-vpc Fence agent for IBM Cloud VPC that are accessed via REST API. %files ibm-vpc %{_sbindir}/fence_ibm_vpc %{_mandir}/man8/fence_ibm_vpc.8* %package ifmib License: GPLv2+ and LGPLv2+ Summary: Fence agent for devices with IF-MIB interfaces Requires: net-snmp-utils Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ifmib Fence agent for IF-MIB interfaces that are accessed via the SNMP protocol. %files ifmib %{_sbindir}/fence_ifmib %{_mandir}/man8/fence_ifmib.8* %package ilo2 License: GPLv2+ and LGPLv2+ Summary: Fence agents for HP iLO2 devices Requires: gnutls-utils Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ilo2 Fence agents for HP iLO2 devices that are accessed via the HTTP(s) protocol. %files ilo2 %{_sbindir}/fence_ilo %{_sbindir}/fence_ilo2 %{_mandir}/man8/fence_ilo.8* %{_mandir}/man8/fence_ilo2.8* %package ilo-moonshot License: GPLv2+ and LGPLv2+ Summary: Fence agent for HP iLO Moonshot devices Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ilo-moonshot Fence agent for HP iLO Moonshot devices that are accessed via telnet or SSH. %files ilo-moonshot %{_sbindir}/fence_ilo_moonshot %{_mandir}/man8/fence_ilo_moonshot.8* %package ilo-mp License: GPLv2+ and LGPLv2+ Summary: Fence agent for HP iLO MP devices Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ilo-mp Fence agent for HP iLO MP devices that are accessed via telnet or SSH. %files ilo-mp %{_sbindir}/fence_ilo_mp %{_mandir}/man8/fence_ilo_mp.8* %package ilo-ssh License: GPLv2+ and LGPLv2+ Summary: Fence agents for HP iLO devices over SSH Requires: openssh-clients Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ilo-ssh Fence agents for HP iLO devices that are accessed via telnet or SSH. %files ilo-ssh %{_sbindir}/fence_ilo_ssh %{_mandir}/man8/fence_ilo_ssh.8* %{_sbindir}/fence_ilo3_ssh %{_mandir}/man8/fence_ilo3_ssh.8* %{_sbindir}/fence_ilo4_ssh %{_mandir}/man8/fence_ilo4_ssh.8* %{_sbindir}/fence_ilo5_ssh %{_mandir}/man8/fence_ilo5_ssh.8* %package intelmodular License: GPLv2+ and LGPLv2+ Summary: Fence agent for devices with Intel Modular interfaces Requires: net-snmp-utils Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description intelmodular Fence agent for Intel Modular interfaces that are accessed via the SNMP protocol. %files intelmodular %{_sbindir}/fence_intelmodular %{_mandir}/man8/fence_intelmodular.8* %package ipdu License: GPLv2+ and LGPLv2+ Summary: Fence agent for IBM iPDU network power switches Requires: net-snmp-utils Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ipdu Fence agent for IBM iPDU network power switches that are accessed via the SNMP protocol. %files ipdu %{_sbindir}/fence_ipdu %{_mandir}/man8/fence_ipdu.8* %package ipmilan License: GPLv2+ and LGPLv2+ Summary: Fence agents for devices with IPMI interface Requires: /usr/bin/ipmitool Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ipmilan Fence agents for devices with IPMI interface. %files ipmilan %{_sbindir}/fence_ipmilan %{_mandir}/man8/fence_ipmilan.8* %{_sbindir}/fence_idrac %{_mandir}/man8/fence_idrac.8* %{_sbindir}/fence_ilo3 %{_mandir}/man8/fence_ilo3.8* %{_sbindir}/fence_ilo4 %{_mandir}/man8/fence_ilo4.8* %{_sbindir}/fence_ilo5 %{_mandir}/man8/fence_ilo5.8* %{_sbindir}/fence_ipmilanplus %{_mandir}/man8/fence_ipmilanplus.8* %{_sbindir}/fence_imm %{_mandir}/man8/fence_imm.8* %ifarch x86_64 ppc64le %package ironic License: GPLv2+ and LGPLv2+ Summary: Fence agent for OpenStack's Ironic (Bare Metal as a service) Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ironic Fence agent for OpenStack's Ironic (Bare Metal as a service) service. %files ironic %{_sbindir}/fence_ironic %{_mandir}/man8/fence_ironic.8* %endif %package kdump License: GPLv2+ and LGPLv2+ Summary: Fence agent for use with kdump crash recovery service Requires: fence-agents-common = %{version}-%{release} # this cannot be noarch since it's compiled %description kdump Fence agent for use with kdump crash recovery service. %files kdump %{_sbindir}/fence_kdump %{_libexecdir}/fence_kdump_send %{_mandir}/man8/fence_kdump.8* %{_mandir}/man8/fence_kdump_send.8* %package kubevirt License: GPLv2+ and LGPLv2+ Summary: Fence agent for KubeVirt platform Requires: python3-openshift >= 0.12.1 Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description kubevirt Fence agent for KubeVirt platform. %files kubevirt %{_sbindir}/fence_kubevirt %{_mandir}/man8/fence_kubevirt.8* %package ldom License: GPLv2+ and LGPLv2+ Summary: Fence agent for Sun LDom virtual machines Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ldom Fence agent for APC devices that are accessed via telnet or SSH. %files ldom %{_sbindir}/fence_ldom %{_mandir}/man8/fence_ldom.8* %package lpar License: GPLv2+ and LGPLv2+ Summary: Fence agent for IBM LPAR Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description lpar Fence agent for IBM LPAR devices that are accessed via telnet or SSH. %files lpar %{_sbindir}/fence_lpar %{_mandir}/man8/fence_lpar.8* %package mpath License: GPLv2+ and LGPLv2+ Summary: Fence agent for reservations over Device Mapper Multipath Requires: device-mapper-multipath Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description mpath Fence agent for SCSI persistent reservation over Device Mapper Multipath. %files mpath %{_sbindir}/fence_mpath %{_datadir}/cluster/fence_mpath_check* %{_mandir}/man8/fence_mpath.8* %package netio License: GPLv2+ and LGPLv2+ Summary: Fence agent for Koukaam NETIO devices Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description netio Fence agent for Koukaam NETIO devices that are accessed via telnet or SSH. %files netio %{_sbindir}/fence_netio %{_mandir}/man8/fence_netio.8* %ifarch x86_64 ppc64le %package openstack License: GPLv2+ and LGPLv2+ Summary: Fence agent for OpenStack's Nova service %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-requests %else Requires: python-requests %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description openstack Fence agent for OpenStack's Nova service. %files openstack %{_sbindir}/fence_openstack %{_mandir}/man8/fence_openstack.8* %endif %package ovh License: GPLv2+ and LGPLv2+ Summary: Fence agent for OVH provider %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} %if 0%{?suse_version} > 1500 Requires: python3-suds-community %else Requires: python3-suds %endif %else Requires: python-suds %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description ovh Fence agent for OVH hosting provider. %files ovh %{_sbindir}/fence_ovh %{_mandir}/man8/fence_ovh.8* # skipped from allfenceagents %package pve License: GPLv2+ and LGPLv2+ Summary: Fence agent for PVE %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-pycurl %else Requires: python-pycurl %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description pve Fence agent for PVE. %files pve %{_sbindir}/fence_pve %{_mandir}/man8/fence_pve.8* # skipped from allfenceagents %package raritan License: GPLv2+ and LGPLv2+ Summary: Fence agent for Raritan Dominion PX Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description raritan Fence agent for Raritan Dominion PX. %files raritan %{_sbindir}/fence_raritan %{_mandir}/man8/fence_raritan.8* # skipped from allfenceagents %package rcd-serial License: GPLv2+ and LGPLv2+ Summary: Fence agent for RCD serial Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description rcd-serial Fence agent for RCD serial. %files rcd-serial %{_sbindir}/fence_rcd_serial %{_mandir}/man8/fence_rcd_serial.8* %package redfish License: GPLv2+ and LGPLv2+ Group: System Environment/Base Summary: Fence agent for Redfish Requires: fence-agents-common >= %{version}-%{release} %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-requests %else Requires: python-requests %endif Obsoletes: fence-agents < 3.1.13 %description redfish The fence-agents-redfish package contains a fence agent for Redfish %files redfish %defattr(-,root,root,-) %{_sbindir}/fence_redfish %{_mandir}/man8/fence_redfish.8* %package rhevm License: GPLv2+ and LGPLv2+ Summary: Fence agent for RHEV-M Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description rhevm Fence agent for RHEV-M via REST API. %files rhevm %{_sbindir}/fence_rhevm %{_mandir}/man8/fence_rhevm.8* %package rsa License: GPLv2+ and LGPLv2+ Summary: Fence agent for IBM RSA II Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description rsa Fence agent for IBM RSA II devices that are accessed via telnet or SSH. %files rsa %{_sbindir}/fence_rsa %{_mandir}/man8/fence_rsa.8* %package rsb License: GPLv2+ and LGPLv2+ Summary: Fence agent for Fujitsu RSB Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description rsb Fence agent for Fujitsu RSB devices that are accessed via telnet or SSH. %files rsb %{_sbindir}/fence_rsb %{_mandir}/man8/fence_rsb.8* %package sanbox2 License: GPLv2+ and LGPLv2+ Summary: Fence agent for QLogic SANBox2 FC switches Requires: telnet Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description sanbox2 Fence agent for QLogic SANBox2 switches that are accessed via telnet. %files sanbox2 %{_sbindir}/fence_sanbox2 %{_mandir}/man8/fence_sanbox2.8* %package sbd License: GPLv2+ and LGPLv2+ Summary: Fence agent for SBD (storage-based death) Requires: sbd Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description sbd Fence agent for SBD (storage-based death). %files sbd %{_sbindir}/fence_sbd %{_mandir}/man8/fence_sbd.8* %package scsi License: GPLv2+ and LGPLv2+ Summary: Fence agent for SCSI persistent reservations Requires: sg3_utils Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description scsi Fence agent for SCSI persistent reservations. %files scsi %{_sbindir}/fence_scsi %{_datadir}/cluster/fence_scsi_check %{_datadir}/cluster/fence_scsi_check_hardreboot %{_mandir}/man8/fence_scsi.8* %package vbox License: GPLv2+ and LGPLv2+ Summary: Fence agent for VirtualBox Requires: openssh-clients Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description vbox Fence agent for VirtualBox dom0 accessed via SSH. %files vbox %{_sbindir}/fence_vbox %{_mandir}/man8/fence_vbox.8* # skipped from allfenceagents %package virsh License: GPLv2+ and LGPLv2+ Summary: Fence agent for virtual machines based on libvirt Requires: openssh-clients /usr/bin/virsh Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description virsh Fence agent for virtual machines that are accessed via SSH. %files virsh %{_sbindir}/fence_virsh %{_mandir}/man8/fence_virsh.8* %package vmware License: GPLv2+ and LGPLv2+ Summary: Fence agent for VMWare with VI Perl Toolkit or vmrun %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-pexpect %else Requires: pexpect %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description vmware Fence agent for VMWare accessed with VI Perl Toolkit or vmrun. %files vmware %{_sbindir}/fence_vmware %{_mandir}/man8/fence_vmware.8* %package vmware-rest License: GPLv2+ and LGPLv2+ Summary: Fence agent for VMWare with REST API Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch Obsoletes: fence-agents < 3.1.13 %description vmware-rest Fence agent for VMWare with REST API. %files vmware-rest %{_sbindir}/fence_vmware_rest %{_mandir}/man8/fence_vmware_rest.8* %package vmware-soap License: GPLv2+ and LGPLv2+ Summary: Fence agent for VMWare with SOAP API v4.1+ %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} %if 0%{?suse_version} > 1500 Requires: python3-suds-community %else Requires: python3-suds %endif %else Requires: python-suds %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description vmware-soap Fence agent for VMWare with SOAP API v4.1+. %files vmware-soap %{_sbindir}/fence_vmware_soap %{_mandir}/man8/fence_vmware_soap.8* %package vmware-vcloud License: GPLv2+ and LGPLv2+ Summary: Fence agent for VMWare vCloud Director Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch Obsoletes: fence-agents < 3.1.13 %description vmware-vcloud Fence agent for VMWare vCloud Director. %files vmware-vcloud %{_sbindir}/fence_vmware_vcloud %{_mandir}/man8/fence_vmware_vcloud.8* %package wti License: GPLv2+ and LGPLv2+ Summary: Fence agent for WTI Network power switches Requires: openssh-clients %if 0%{?fedora} < 33 || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version} %if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8) Requires: telnet %else Recommends: telnet %endif %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description wti Fence agent for WTI network power switches that are accessed via telnet or SSH. %files wti %{_sbindir}/fence_wti %{_mandir}/man8/fence_wti.8* %package xenapi License: GPLv2+ and LGPLv2+ Summary: Fence agent for Citrix XenServer over XenAPI %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} Requires: python3-pexpect %else Requires: pexpect %endif Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description xenapi Fence agent for Citrix XenServer accessed over XenAPI. %files xenapi %{_sbindir}/fence_xenapi %{_datadir}/fence/XenAPI.py* %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 %{_datadir}/fence/__pycache__/XenAPI.* %endif %{_mandir}/man8/fence_xenapi.8* %package zvm License: GPLv2+ and LGPLv2+ Summary: Fence agent for IBM z/VM over IP Requires: fence-agents-common = %{version}-%{release} BuildArch: noarch %description zvm Fence agent for IBM z/VM over IP. %files zvm %{_sbindir}/fence_zvmip %{_mandir}/man8/fence_zvmip.8* # fence-virt %package -n fence-virt Summary: A pluggable fencing framework for virtual machines Requires(post): systemd-sysv %{systemd_units} Requires(preun): %{systemd_units} Requires(postun): %{systemd_units} %description -n fence-virt Fencing agent for virtual machines. %files -n fence-virt %doc agents/virt/docs/* %{_sbindir}/fence_virt %{_sbindir}/fence_xvm %{_mandir}/man8/fence_virt.* %{_mandir}/man8/fence_xvm.* %package -n fence-virtd Summary: Daemon which handles requests from fence-virt %description -n fence-virtd This package provides the host server framework, fence_virtd, for fence_virt. The fence_virtd host daemon is resposible for processing fencing requests from virtual machines and routing the requests to the appropriate physical machine for action. %files -n fence-virtd %{_sbindir}/fence_virtd %{_unitdir}/fence_virtd.service %config(noreplace) %{_sysconfdir}/fence_virt.conf %dir %{_libdir}/fence-virt %{_libdir}/fence-virt/vsock.so %{_mandir}/man5/fence_virt.conf.* %{_mandir}/man8/fence_virtd.* %package -n fence-virtd-multicast Summary: Multicast listener for fence-virtd Requires: fence-virtd %description -n fence-virtd-multicast Provides multicast listener capability for fence-virtd. %files -n fence-virtd-multicast %{_libdir}/fence-virt/multicast.so %package -n fence-virtd-serial Summary: Serial VMChannel listener for fence-virtd Requires: libvirt >= 0.6.2 Requires: fence-virtd %description -n fence-virtd-serial Provides serial VMChannel listener capability for fence-virtd. %files -n fence-virtd-serial %{_libdir}/fence-virt/serial.so %package -n fence-virtd-tcp Summary: TCP listener for fence-virtd Requires: fence-virtd %description -n fence-virtd-tcp Provides TCP listener capability for fence-virtd. %files -n fence-virtd-tcp %{_libdir}/fence-virt/tcp.so %package -n fence-virtd-libvirt Summary: Libvirt backend for fence-virtd Requires: libvirt >= 0.6.0 Requires: fence-virtd %description -n fence-virtd-libvirt Provides fence_virtd with a connection to libvirt to fence virtual machines. Useful for running a cluster of virtual machines on a desktop. %files -n fence-virtd-libvirt %{_libdir}/fence-virt/virt.so %package -n fence-virtd-cpg Summary: CPG/libvirt backend for fence-virtd Requires: corosynclib Requires: fence-virtd %description -n fence-virtd-cpg Provides fence_virtd with a connection to libvirt to fence virtual machines. Uses corosync CPG to keep track of VM locations to allow for non-local VMs to be fenced when VMs are located on corosync cluster nodes. %files -n fence-virtd-cpg %{_libdir}/fence-virt/cpg.so %changelog * @date@ Autotools generated version - @version@-@specver@-@numcomm@.@alphatag@.@dirty@ - Autotools generated version diff --git a/tests/data/metadata/fence_ecloud.xml b/tests/data/metadata/fence_ecloud.xml new file mode 100644 index 00000000..4d3e1548 --- /dev/null +++ b/tests/data/metadata/fence_ecloud.xml @@ -0,0 +1,118 @@ + + +fence_ecloud is a fence agent for use with the ANS eCloud platform which is compatible with eCloud VPC and eCloud v1. +https://www.ans.co.uk + + + + + API Key + + + + + Fencing action + + + + + Instance ID (VPC) or server ID (v1) + + + + + Instance ID (VPC) or server ID (v1) + + + + + Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog. + + + + + Verbose mode. Multiple -v flags can be stacked on the command line (e.g., -vvv) to increase verbosity. + + + + + Level of debugging detail in output. Defaults to the number of --verbose flags specified on the command line, or to 1 if verbose=1 in a stonith device configuration (i.e., on stdin). + + + + + Write debug information to given file + + + + Write debug information to given file + + + + + Display version information and exit + + + + + Display help and exit + + + + + Separator for CSV created by 'list' operation + + + + + Wait X seconds before fencing is started + + + + + Disable timeout (true/false) (default: true when run from Pacemaker 2.0+) + + + + + Wait X seconds for cmd prompt after login + + + + + Test X seconds for status change after ON/OFF + + + + + Wait X seconds after issuing ON/OFF + + + + + Wait X seconds for cmd prompt after issuing command + + + + + Sleep X seconds between status calls during a STONITH action + + + + + Count of attempts to retry power on + + + + + + + + + + + + + + +