spec.in: Migrate to SPDX license && fence_eaton_ssh: new fence agent for Eaton ePDU G3 over SSH
(cherry picked from commit e6f6687e49faa2231eada7a7fe38c04619814318)
This commit is contained in:
parent
64b51c930c
commit
cf480ea671
@ -0,0 +1,714 @@
|
||||
From 849861d2bdf76f70c7ee0b97387a27082f8a3fdd Mon Sep 17 00:00:00 2001
|
||||
From: Enno G <matrixfueller@gmail.com>
|
||||
Date: Mon, 26 Jun 2023 11:05:59 +0200
|
||||
Subject: [PATCH 16/46] fence_eaton_ssh: new fence agent for Eaton ePDU G3 over
|
||||
SSH (#549)
|
||||
|
||||
* fence_eaton_ssh: Initial add
|
||||
* Docker: Add dockerized build environment
|
||||
* Fix incorrect repository path in configure.ac
|
||||
---
|
||||
README.md | 19 +-
|
||||
agents/eaton_ssh/fence_eaton_ssh.py | 318 ++++++++++++++++++++++++
|
||||
configure.ac | 2 +-
|
||||
docker/Dockerfile | 34 +++
|
||||
docker/README.md | 10 +
|
||||
docker/entrypoint.sh | 8 +
|
||||
fence-agents.spec.in | 13 +
|
||||
tests/data/metadata/fence_eaton_ssh.xml | 206 +++++++++++++++
|
||||
8 files changed, 603 insertions(+), 7 deletions(-)
|
||||
create mode 100644 agents/eaton_ssh/fence_eaton_ssh.py
|
||||
create mode 100644 docker/Dockerfile
|
||||
create mode 100644 docker/README.md
|
||||
create mode 100755 docker/entrypoint.sh
|
||||
create mode 100644 tests/data/metadata/fence_eaton_ssh.xml
|
||||
|
||||
diff --git a/README.md b/README.md
|
||||
index d9fcb94b..0f3ebbde 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -1,18 +1,25 @@
|
||||
# Fence agents
|
||||
|
||||
-Fence agents were developed as device "drivers" which are able to prevent computers from destroying data on shared storage. Their aim is to isolate a corrupted computer, using one of three methods:
|
||||
+Fence agents were developed as device "drivers" which are able to prevent computers from destroying data on shared
|
||||
+storage. Their aim is to isolate a corrupted computer, using one of three methods:
|
||||
|
||||
- * Power - A computer that is switched off cannot corrupt data, but it is important to not do a "soft-reboot" as we won't know if this is possible. This also works for virtual machines when the fence device is a hypervisor.
|
||||
- * Network - Switches can prevent routing to a given computer, so even if a computer is powered on it won't be able to harm the data.
|
||||
+ * Power - A computer that is switched off cannot corrupt data, but it is important to not do a "soft-reboot" as we
|
||||
+ won't know if this is possible. This also works for virtual machines when the fence device is a hypervisor.
|
||||
+ * Network - Switches can prevent routing to a given computer, so even if a computer is powered on it won't be able to
|
||||
+ harm the data.
|
||||
* Configuration - Fibre-channel switches or SCSI devices allow us to limit who can write to managed disks.
|
||||
|
||||
-Fence agents do not use configuration files, as configuration management is outside of their scope. All of the configuration has to be specified either as command-line arguments or lines of standard input (see the complete list for more info).
|
||||
+Fence agents do not use configuration files, as configuration management is outside of their scope. All of the
|
||||
+configuration has to be specified either as command-line arguments or lines of standard input (see the complete list
|
||||
+for more info).
|
||||
|
||||
-Because many fence agents are quite similar to each other, a fencing library (in Python) was developed. Please use it for further development. Creating or modifying a new fence agent should be quite simple using this library.
|
||||
+Because many fence agents are quite similar to each other, a fencing library (in Python) was developed. Please use it
|
||||
+for further development. Creating or modifying a new fence agent should be quite simple using this library.
|
||||
|
||||
## Where can I find more information?
|
||||
|
||||
* [ClusterLabs website](http://www.clusterlabs.org/)
|
||||
* [User and developer documentation](https://github.com/ClusterLabs/fence-agents/tree/master/doc/FenceAgentAPI.md)
|
||||
-* Mailing lists for [users](http://oss.clusterlabs.org/mailman/listinfo/users) and [developers](http://oss.clusterlabs.org/mailman/listinfo/developers)
|
||||
+* Mailing lists for [users](http://oss.clusterlabs.org/mailman/listinfo/users) and
|
||||
+ [developers](http://oss.clusterlabs.org/mailman/listinfo/developers)
|
||||
* #clusterlabs IRC channel on [freenode](http://freenode.net/)
|
||||
diff --git a/agents/eaton_ssh/fence_eaton_ssh.py b/agents/eaton_ssh/fence_eaton_ssh.py
|
||||
new file mode 100644
|
||||
index 00000000..8e536a2e
|
||||
--- /dev/null
|
||||
+++ b/agents/eaton_ssh/fence_eaton_ssh.py
|
||||
@@ -0,0 +1,318 @@
|
||||
+#!@PYTHON@ -tt
|
||||
+
|
||||
+"""
|
||||
+Plug numbering starts with 1! There were no tests performed so far with daisy chained PDUs.
|
||||
+
|
||||
+Example usage:
|
||||
+ fence_eaton_ssh -v -a <IP> -l <USER> -p <PASSWORD> --login-timeout=60 --action status --plug 1
|
||||
+"""
|
||||
+
|
||||
+#####
|
||||
+##
|
||||
+## The Following Agent Has Been Tested On:
|
||||
+##
|
||||
+## Model Firmware
|
||||
+## +---------------------------------------------+
|
||||
+## EMAB04 04.02.0001
|
||||
+#####
|
||||
+
|
||||
+import enum
|
||||
+import sys
|
||||
+import atexit
|
||||
+
|
||||
+sys.path.append("@FENCEAGENTSLIBDIR@")
|
||||
+from fencing import *
|
||||
+from fencing import fail, EC_STATUS, EC_LOGIN_DENIED
|
||||
+
|
||||
+
|
||||
+class FenceEatonPowerActions(enum.Enum):
|
||||
+ """
|
||||
+ Status of the plug on the PDU.
|
||||
+ """
|
||||
+ ERROR = -1
|
||||
+ OFF = 0
|
||||
+ ON = 1
|
||||
+ PENDING_OFF = 2
|
||||
+ PENDING_ON = 3
|
||||
+
|
||||
+
|
||||
+def get_plug_names(conn, plug_ids, command_prompt, shell_timout):
|
||||
+ """
|
||||
+ Get the names of plugs via their ID.
|
||||
+
|
||||
+ :param conn: The "fspawn" object.
|
||||
+ :param plug_ids: The list of plug IDs. Plugs start with the ID 1.
|
||||
+ :param command_prompt: The characters that make up the base prompt. This is important to detect a finished command.
|
||||
+ :param shell_timeout: The maximum time the shell should wait for a response.
|
||||
+ :returns: The name of the requested plugs.
|
||||
+ """
|
||||
+ # fspawn is subclassed from pexpect which is not correctly type annotated in all cases.
|
||||
+ result = {}
|
||||
+ full_node_mapping = {}
|
||||
+ conn.send_eol("get PDU.OutletSystem.Outlet[x].iName")
|
||||
+ conn.log_expect(command_prompt, shell_timout)
|
||||
+ result_plug_names = conn.before.split("\n") # type: ignore
|
||||
+ if len(result_plug_names) != 3:
|
||||
+ fail(EC_STATUS)
|
||||
+ plug_names = result_plug_names.split("|")
|
||||
+ for counter in range(1, len(plug_names)):
|
||||
+ full_node_mapping[counter] = plug_names[counter]
|
||||
+ for plug_id in plug_ids:
|
||||
+ result[plug_id] = full_node_mapping[plug_id]
|
||||
+ return result
|
||||
+
|
||||
+
|
||||
+def get_plug_ids(conn, nodenames, command_prompt, shell_timout):
|
||||
+ """
|
||||
+ Get the IDs that map to the given nodenames. Non existing names are skipped.
|
||||
+
|
||||
+ :param conn: The "fspawn" object.
|
||||
+ :param nodenames: The list of human readable names that should be converted to IDs.
|
||||
+ :param command_prompt: The characters that make up the base prompt. This is important to detect a finished command.
|
||||
+ :param shell_timeout: The maximum time the shell should wait for a response.
|
||||
+ :returns: A dictionary - possibly empty - where the keys are the node names and the values are the node IDs.
|
||||
+ """
|
||||
+ result = {}
|
||||
+ full_node_mapping = {}
|
||||
+ conn.send_eol("get PDU.OutletSystem.Outlet[x].iName")
|
||||
+ conn.log_expect(command_prompt, shell_timout)
|
||||
+ result_plug_names = conn.before.split("\n") # type: ignore
|
||||
+ if len(result_plug_names) != 3:
|
||||
+ fail(EC_STATUS)
|
||||
+ plug_names = result_plug_names.split("|")
|
||||
+ for counter in range(1, len(plug_names)):
|
||||
+ full_node_mapping[plug_names[counter]] = counter
|
||||
+ for node in nodenames:
|
||||
+ if node in full_node_mapping:
|
||||
+ result[node] = full_node_mapping[node]
|
||||
+ return result
|
||||
+
|
||||
+
|
||||
+def get_plug_count(conn, command_prompt, shell_timout):
|
||||
+ """
|
||||
+ Get the number of plugs that the PDU has.
|
||||
+
|
||||
+ In case the PDU is daisy chained this also contains the plugs of the other PDUs.
|
||||
+
|
||||
+ :param conn: The "fspawn" object.
|
||||
+ :param command_prompt: The characters that make up the base prompt. This is important to detect a finished command.
|
||||
+ :param shell_timeout: The maximum time the shell should wait for a response.
|
||||
+ :returns: The number of plugs that the PDU has.
|
||||
+ """
|
||||
+ # fspawn is subclassed from pexpect which is not correctly type annotated in all cases.
|
||||
+ conn.send_eol("get PDU.OutletSystem.Outlet.Count")
|
||||
+ conn.log_expect(command_prompt, shell_timout)
|
||||
+ result_plug_count = conn.before.split("\n") # type: ignore
|
||||
+ if len(result_plug_count) != 3:
|
||||
+ fail(EC_STATUS)
|
||||
+ return int(result_plug_count[1].strip())
|
||||
+
|
||||
+
|
||||
+def get_plug_status(conn, plug_id, command_prompt, shell_timout):
|
||||
+ """
|
||||
+ Get the current status of the plug. The return value of this doesn't account for operations that will act via
|
||||
+ schedules or a delay. As such the status is only valid at the time of retrieval.
|
||||
+
|
||||
+ :param conn: The "fspawn" object.
|
||||
+ :param plug_id: The ID of the plug that should be powered off. Counting plugs starts at 1.
|
||||
+ :returns: The current status of the plug.
|
||||
+ """
|
||||
+ # fspawn is subclassed from pexpect which is not correctly type annotated in all cases.
|
||||
+ conn.send_eol(f"get PDU.OutletSystem.Outlet[{plug_id}].PresentStatus.SwitchOnOff")
|
||||
+ conn.log_expect(command_prompt, shell_timout)
|
||||
+ result_plug_status = conn.before.split("\n") # type: ignore
|
||||
+ if len(result_plug_status) != 3:
|
||||
+ fail(EC_STATUS)
|
||||
+ if result_plug_status[1].strip() == "0":
|
||||
+ return FenceEatonPowerActions.OFF
|
||||
+ elif result_plug_status[1].strip() == "1":
|
||||
+ return FenceEatonPowerActions.ON
|
||||
+ else:
|
||||
+ return FenceEatonPowerActions.ERROR
|
||||
+
|
||||
+
|
||||
+def power_on_plug(conn, plug_id, command_prompt, shell_timout, delay=0):
|
||||
+ """
|
||||
+ Powers on a plug with an optional delay.
|
||||
+
|
||||
+ :param conn: The "fspawn" object.
|
||||
+ :param plug_id: The ID of the plug that should be powered off. Counting plugs starts at 1.
|
||||
+ :param command_prompt: The characters that make up the base prompt. This is important to detect a finished command.
|
||||
+ :param shell_timeout: The maximum time the shell should wait for a response.
|
||||
+ :param delay: The delay in seconds. Passing "-1" aborts the power off action.
|
||||
+ """
|
||||
+ conn.send_eol(f"set PDU.OutletSystem.Outlet[{plug_id}].DelayBeforeStartup {delay}")
|
||||
+ conn.log_expect(command_prompt, shell_timout)
|
||||
+
|
||||
+
|
||||
+def power_off_plug(conn, plug_id, command_prompt, shell_timout, delay=0):
|
||||
+ """
|
||||
+ Powers off a plug with an optional delay.
|
||||
+
|
||||
+ :param conn: The "fspawn" object.
|
||||
+ :param plug_id: The ID of the plug that should be powered off. Counting plugs starts at 1.
|
||||
+ :param command_prompt: The characters that make up the base prompt. This is important to detect a finished command.
|
||||
+ :param shell_timeout: The maximum time the shell should wait for a response.
|
||||
+ :param delay: The delay in seconds. Passing "-1" aborts the power off action.
|
||||
+ """
|
||||
+ conn.send_eol(f"set PDU.OutletSystem.Outlet[{plug_id}].DelayBeforeShutdown {delay}")
|
||||
+ conn.log_expect(command_prompt, shell_timout)
|
||||
+
|
||||
+
|
||||
+def get_power_status(conn, options):
|
||||
+ """
|
||||
+ Retrieve the power status for the requested plug. Since we have a serial like interface via SSH we need to parse the
|
||||
+ output of the SSH session manually.
|
||||
+
|
||||
+ If abnormal behavior is detected the method will exit via "fail()".
|
||||
+
|
||||
+ :param conn: The "fspawn" object.
|
||||
+ :param options: The option dictionary.
|
||||
+ :returns: In case there is an error this method does not return but instead calls "sys.exit". Otherwhise one of
|
||||
+ "off", "on" or "error" is returned.
|
||||
+ """
|
||||
+ if conn is None:
|
||||
+ fail(EC_LOGIN_DENIED)
|
||||
+
|
||||
+ requested_plug = options.get("--plug", "")
|
||||
+ if not requested_plug:
|
||||
+ fail(EC_STATUS)
|
||||
+ plug_status = get_plug_status(
|
||||
+ conn, # type: ignore
|
||||
+ int(requested_plug),
|
||||
+ options["--command-prompt"],
|
||||
+ int(options["--shell-timeout"])
|
||||
+ )
|
||||
+ if plug_status == FenceEatonPowerActions.OFF:
|
||||
+ return "off"
|
||||
+ elif plug_status == FenceEatonPowerActions.ON:
|
||||
+ return "on"
|
||||
+ else:
|
||||
+ return "error"
|
||||
+
|
||||
+
|
||||
+def set_power_status(conn, options):
|
||||
+ """
|
||||
+ Set the power status for the requested plug. Only resposible for powering on and off.
|
||||
+
|
||||
+ If abnormal behavior is detected the method will exit via "fail()".
|
||||
+
|
||||
+ :param conn: The "fspawn" object.
|
||||
+ :param options: The option dictionary.
|
||||
+ :returns: In case there is an error this method does not return but instead calls "sys.exit".
|
||||
+ """
|
||||
+ if conn is None:
|
||||
+ fail(EC_LOGIN_DENIED)
|
||||
+
|
||||
+ requested_plug = options.get("--plug", "")
|
||||
+ if not requested_plug:
|
||||
+ fail(EC_STATUS)
|
||||
+ requested_action = options.get("--action", "")
|
||||
+ if not requested_action:
|
||||
+ fail(EC_STATUS)
|
||||
+
|
||||
+ if requested_action == "off":
|
||||
+ power_off_plug(
|
||||
+ conn, # type: ignore
|
||||
+ int(requested_plug),
|
||||
+ options["--command-prompt"],
|
||||
+ int(options["--shell-timeout"])
|
||||
+ )
|
||||
+ elif requested_action == "on":
|
||||
+ power_on_plug(
|
||||
+ conn, # type: ignore
|
||||
+ int(requested_plug),
|
||||
+ options["--command-prompt"],
|
||||
+ int(options["--shell-timeout"])
|
||||
+ )
|
||||
+ else:
|
||||
+ fail(EC_STATUS)
|
||||
+
|
||||
+
|
||||
+def get_outlet_list(conn, options):
|
||||
+ """
|
||||
+ Retrieves the list of plugs with their correspondin status.
|
||||
+
|
||||
+ :param conn: The "fspawn" object.
|
||||
+ :param options: The option dictionary.
|
||||
+ :returns: Keys are the Plug IDs which each have a Tuple with the alias for the plug and its status.
|
||||
+ """
|
||||
+ if conn is None:
|
||||
+ fail(EC_LOGIN_DENIED)
|
||||
+
|
||||
+ result = {}
|
||||
+ plug_count = get_plug_count(conn, options["--command-prompt"], int(options["--shell-timeout"])) # type: ignore
|
||||
+ for counter in range(1, plug_count):
|
||||
+ plug_names = get_plug_names(
|
||||
+ conn, # type: ignore
|
||||
+ [counter],
|
||||
+ options["--command-prompt"],
|
||||
+ int(options["--shell-timeout"])
|
||||
+ )
|
||||
+ plug_status_enum = get_plug_status(
|
||||
+ conn, # type: ignore
|
||||
+ counter,
|
||||
+ options["--command-prompt"],
|
||||
+ int(options["--shell-timeout"])
|
||||
+ )
|
||||
+ if plug_status_enum == FenceEatonPowerActions.OFF:
|
||||
+ plug_status = "OFF"
|
||||
+ elif plug_status_enum == FenceEatonPowerActions.ON:
|
||||
+ plug_status = "ON"
|
||||
+ else:
|
||||
+ plug_status = None
|
||||
+ result[str(counter)] = (plug_names[counter], plug_status)
|
||||
+ return result
|
||||
+
|
||||
+
|
||||
+def reboot_cycle(conn, options) -> None:
|
||||
+ """
|
||||
+ Responsible for power cycling a machine. Not responsible for singular on and off actions.
|
||||
+
|
||||
+ :param conn: The "fspawn" object.
|
||||
+ :param options: The option dictionary.
|
||||
+ """
|
||||
+ requested_plug = options.get("--plug", "")
|
||||
+ if not requested_plug:
|
||||
+ fail(EC_STATUS)
|
||||
+
|
||||
+ power_off_plug(
|
||||
+ conn, # type: ignore
|
||||
+ int(requested_plug),
|
||||
+ options["--command-prompt"],
|
||||
+ int(options["--shell-timeout"])
|
||||
+ )
|
||||
+ power_on_plug(
|
||||
+ conn, # type: ignore
|
||||
+ int(requested_plug),
|
||||
+ options["--command-prompt"],
|
||||
+ int(options["--shell-timeout"])
|
||||
+ )
|
||||
+
|
||||
+
|
||||
+def main():
|
||||
+ """
|
||||
+ Main entrypoint for the fence_agent.
|
||||
+ """
|
||||
+ device_opt = ["secure", "ipaddr", "login", "passwd", "port", "cmd_prompt"]
|
||||
+ atexit.register(atexit_handler)
|
||||
+ options = check_input(device_opt, process_input(device_opt))
|
||||
+ options["--ssh"] = None
|
||||
+ options["--ipport"] = 22
|
||||
+ options["--command-prompt"] = "pdu#0>"
|
||||
+
|
||||
+ docs = {}
|
||||
+ docs["shortdesc"] = "Fence agent for Eaton ePDU G3 over SSH"
|
||||
+ docs["longdesc"] = "fence_eaton_ssh is a fence agent that connects to Eaton ePDU devices. It logs into \
|
||||
+device via ssh and reboot a specified outlet."
|
||||
+ docs["vendorurl"] = "https://www.eaton.com/"
|
||||
+ show_docs(options, docs)
|
||||
+
|
||||
+ conn = fence_login(options)
|
||||
+ result = fence_action(conn, options, set_power_status, get_power_status, get_outlet_list, reboot_cycle)
|
||||
+ fence_logout(conn, "quit")
|
||||
+ sys.exit(result)
|
||||
+
|
||||
+
|
||||
+if __name__ == "__main__":
|
||||
+ main()
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 65a9718d..8436ba25 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -567,7 +567,7 @@ if test "x$VERSION" = "xUNKNOWN"; then
|
||||
configure was unable to determine the source tree's current version. This
|
||||
generally happens when using git archive (or the github download button)
|
||||
generated tarball/zip file. In order to workaround this issue, either use git
|
||||
- clone https://github.com/ClusterLabs/fence-virt.git or use an official release
|
||||
+ clone https://github.com/ClusterLabs/fence-agents.git or use an official release
|
||||
tarball. Alternatively you can add a compatible version in a .tarball-version
|
||||
file at the top of the source tree, wipe your autom4te.cache dir and generated
|
||||
configure, and rerun autogen.sh.
|
||||
diff --git a/docker/Dockerfile b/docker/Dockerfile
|
||||
new file mode 100644
|
||||
index 00000000..6ac9480c
|
||||
--- /dev/null
|
||||
+++ b/docker/Dockerfile
|
||||
@@ -0,0 +1,34 @@
|
||||
+FROM opensuse/leap:15.5
|
||||
+
|
||||
+RUN zypper in -y \
|
||||
+ git \
|
||||
+ autoconf \
|
||||
+ automake \
|
||||
+ libtool \
|
||||
+ make \
|
||||
+ gcc \
|
||||
+ libcorosync-devel \
|
||||
+ libxslt1 \
|
||||
+ libxslt-tools \
|
||||
+ python3-devel \
|
||||
+ python3-httplib2 \
|
||||
+ python3-pexpect \
|
||||
+ python3-pycurl \
|
||||
+ python3-requests \
|
||||
+ python3-suds-jurko \
|
||||
+ python3-openwsman \
|
||||
+ python3-boto3 \
|
||||
+ python3-novaclient \
|
||||
+ python3-keystoneclient \
|
||||
+ mozilla-nss-devel \
|
||||
+ mozilla-nspr-devel \
|
||||
+ libvirt-devel \
|
||||
+ libxml2-devel \
|
||||
+ flex \
|
||||
+ bison \
|
||||
+ libuuid-devel \
|
||||
+ systemd
|
||||
+
|
||||
+WORKDIR /code
|
||||
+VOLUME /code
|
||||
+ENTRYPOINT ["./docker/entrypoint.sh"]
|
||||
diff --git a/docker/README.md b/docker/README.md
|
||||
new file mode 100644
|
||||
index 00000000..2aef7421
|
||||
--- /dev/null
|
||||
+++ b/docker/README.md
|
||||
@@ -0,0 +1,10 @@
|
||||
+# Dockerfile to build the fence-agents locally
|
||||
+
|
||||
+Usage is as follows:
|
||||
+
|
||||
+```
|
||||
+podman build -f docker/Dockerfile -t fence-agents:main .
|
||||
+podman run -it -v $PWD:/code --rm localhost/fence-agents:main
|
||||
+```
|
||||
+
|
||||
+In case you are running docker replace `podman` with `docker` and it should work the same.
|
||||
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
|
||||
new file mode 100755
|
||||
index 00000000..caa778e2
|
||||
--- /dev/null
|
||||
+++ b/docker/entrypoint.sh
|
||||
@@ -0,0 +1,8 @@
|
||||
+#!/usr/bin/bash
|
||||
+
|
||||
+echo "### Running autogen"
|
||||
+./autogen.sh
|
||||
+echo "### Running configure"
|
||||
+./configure
|
||||
+echo "### Running make"
|
||||
+make
|
||||
diff --git a/fence-agents.spec.in b/fence-agents.spec.in
|
||||
index b6af20d9..343f1c1a 100644
|
||||
--- a/fence-agents.spec.in
|
||||
+++ b/fence-agents.spec.in
|
||||
@@ -55,6 +55,7 @@ fence-agents-docker \\
|
||||
fence-agents-drac \\
|
||||
fence-agents-drac5 \\
|
||||
fence-agents-eaton-snmp \\
|
||||
+fence-agents-eaton-ssh \\
|
||||
fence-agents-ecloud \\
|
||||
fence-agents-emerson \\
|
||||
fence-agents-eps \\
|
||||
@@ -631,6 +632,18 @@ via the SNMP protocol.
|
||||
%{_sbindir}/fence_eaton_snmp
|
||||
%{_mandir}/man8/fence_eaton_snmp.8*
|
||||
|
||||
+%package eaton-ssh
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
+Summary: Fence agent for Eaton network power switches
|
||||
+Requires: fence-agents-common = %{version}-%{release}
|
||||
+BuildArch: noarch
|
||||
+%description eaton-ssh
|
||||
+Fence agent for Eaton network power switches that are accessed
|
||||
+via the serial protocol tunnel over SSH.
|
||||
+%files eaton-ssh
|
||||
+%{_sbindir}/fence_eaton_ssh
|
||||
+%{_mandir}/man8/fence_eaton_ssh.8*
|
||||
+
|
||||
%package ecloud
|
||||
License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for eCloud and eCloud VPC
|
||||
diff --git a/tests/data/metadata/fence_eaton_ssh.xml b/tests/data/metadata/fence_eaton_ssh.xml
|
||||
new file mode 100644
|
||||
index 00000000..a3be1ac6
|
||||
--- /dev/null
|
||||
+++ b/tests/data/metadata/fence_eaton_ssh.xml
|
||||
@@ -0,0 +1,206 @@
|
||||
+<?xml version="1.0" ?>
|
||||
+<resource-agent name="fence_eaton_ssh" shortdesc="Fence agent for Eaton ePDU G3 over SSH" >
|
||||
+<longdesc>fence_eaton_ssh is a fence agent that connects to Eaton ePDU devices. It logs into device via ssh and reboot a specified outlet.</longdesc>
|
||||
+<vendor-url>https://www.eaton.com/</vendor-url>
|
||||
+<parameters>
|
||||
+ <parameter name="action" unique="0" required="1">
|
||||
+ <getopt mixed="-o, --action=[action]" />
|
||||
+ <content type="string" default="reboot" />
|
||||
+ <shortdesc lang="en">Fencing action</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="cmd_prompt" unique="0" required="0" deprecated="1">
|
||||
+ <getopt mixed="-c, --command-prompt=[prompt]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="command_prompt" unique="0" required="0" obsoletes="cmd_prompt">
|
||||
+ <getopt mixed="-c, --command-prompt=[prompt]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Force Python regex for command prompt</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="identity_file" unique="0" required="0">
|
||||
+ <getopt mixed="-k, --identity-file=[filename]" />
|
||||
+ <shortdesc lang="en">Identity file (private key) for SSH</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="inet4_only" unique="0" required="0">
|
||||
+ <getopt mixed="-4, --inet4-only" />
|
||||
+ <content type="boolean" />
|
||||
+ <shortdesc lang="en">Forces agent to use IPv4 addresses only</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="inet6_only" unique="0" required="0">
|
||||
+ <getopt mixed="-6, --inet6-only" />
|
||||
+ <content type="boolean" />
|
||||
+ <shortdesc lang="en">Forces agent to use IPv6 addresses only</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
|
||||
+ <getopt mixed="-a, --ip=[ip]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
|
||||
+ <getopt mixed="-a, --ip=[ip]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="ipport" unique="0" required="0">
|
||||
+ <getopt mixed="-u, --ipport=[port]" />
|
||||
+ <content type="integer" />
|
||||
+ <shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="login" unique="0" required="1" deprecated="1">
|
||||
+ <getopt mixed="-l, --username=[name]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Login name</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
|
||||
+ <getopt mixed="-p, --password=[password]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
|
||||
+ <getopt mixed="-S, --password-script=[script]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
|
||||
+ <getopt mixed="-p, --password=[password]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
|
||||
+ <getopt mixed="-S, --password-script=[script]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
|
||||
+ <getopt mixed="-n, --plug=[id]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="port" unique="0" required="1" deprecated="1">
|
||||
+ <getopt mixed="-n, --plug=[id]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="secure" unique="0" required="0" deprecated="1">
|
||||
+ <getopt mixed="-x, --ssh" />
|
||||
+ <content type="boolean" />
|
||||
+ <shortdesc lang="en">Use SSH connection</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="ssh" unique="0" required="0" obsoletes="secure">
|
||||
+ <getopt mixed="-x, --ssh" />
|
||||
+ <content type="boolean" />
|
||||
+ <shortdesc lang="en">Use SSH connection</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="ssh_options" unique="0" required="0">
|
||||
+ <getopt mixed="--ssh-options=[options]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">SSH options to use</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="username" unique="0" required="1" obsoletes="login">
|
||||
+ <getopt mixed="-l, --username=[name]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Login name</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="quiet" unique="0" required="0">
|
||||
+ <getopt mixed="-q, --quiet" />
|
||||
+ <content type="boolean" />
|
||||
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="verbose" unique="0" required="0">
|
||||
+ <getopt mixed="-v, --verbose" />
|
||||
+ <content type="boolean" />
|
||||
+ <shortdesc lang="en">Verbose mode. Multiple -v flags can be stacked on the command line (e.g., -vvv) to increase verbosity.</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="verbose_level" unique="0" required="0">
|
||||
+ <getopt mixed="--verbose-level" />
|
||||
+ <content type="integer" />
|
||||
+ <shortdesc lang="en">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).</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="debug" unique="0" required="0" deprecated="1">
|
||||
+ <getopt mixed="-D, --debug-file=[debugfile]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
|
||||
+ <getopt mixed="-D, --debug-file=[debugfile]" />
|
||||
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="version" unique="0" required="0">
|
||||
+ <getopt mixed="-V, --version" />
|
||||
+ <content type="boolean" />
|
||||
+ <shortdesc lang="en">Display version information and exit</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="help" unique="0" required="0">
|
||||
+ <getopt mixed="-h, --help" />
|
||||
+ <content type="boolean" />
|
||||
+ <shortdesc lang="en">Display help and exit</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="plug_separator" unique="0" required="0">
|
||||
+ <getopt mixed="--plug-separator=[char]" />
|
||||
+ <content type="string" default="," />
|
||||
+ <shortdesc lang="en">Separator for plug parameter when specifying more than 1 plug</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="separator" unique="0" required="0">
|
||||
+ <getopt mixed="-C, --separator=[char]" />
|
||||
+ <content type="string" default="," />
|
||||
+ <shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="delay" unique="0" required="0">
|
||||
+ <getopt mixed="--delay=[seconds]" />
|
||||
+ <content type="second" default="0" />
|
||||
+ <shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="disable_timeout" unique="0" required="0">
|
||||
+ <getopt mixed="--disable-timeout=[true/false]" />
|
||||
+ <content type="string" />
|
||||
+ <shortdesc lang="en">Disable timeout (true/false) (default: true when run from Pacemaker 2.0+)</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="login_timeout" unique="0" required="0">
|
||||
+ <getopt mixed="--login-timeout=[seconds]" />
|
||||
+ <content type="second" default="5" />
|
||||
+ <shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="power_timeout" unique="0" required="0">
|
||||
+ <getopt mixed="--power-timeout=[seconds]" />
|
||||
+ <content type="second" default="20" />
|
||||
+ <shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="power_wait" unique="0" required="0">
|
||||
+ <getopt mixed="--power-wait=[seconds]" />
|
||||
+ <content type="second" default="0" />
|
||||
+ <shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="shell_timeout" unique="0" required="0">
|
||||
+ <getopt mixed="--shell-timeout=[seconds]" />
|
||||
+ <content type="second" default="3" />
|
||||
+ <shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="stonith_status_sleep" unique="0" required="0">
|
||||
+ <getopt mixed="--stonith-status-sleep=[seconds]" />
|
||||
+ <content type="second" default="1" />
|
||||
+ <shortdesc lang="en">Sleep X seconds between status calls during a STONITH action</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="retry_on" unique="0" required="0">
|
||||
+ <getopt mixed="--retry-on=[attempts]" />
|
||||
+ <content type="integer" default="1" />
|
||||
+ <shortdesc lang="en">Count of attempts to retry power on</shortdesc>
|
||||
+ </parameter>
|
||||
+ <parameter name="ssh_path" unique="0" required="0">
|
||||
+ <getopt mixed="--ssh-path=[path]" />
|
||||
+ <shortdesc lang="en">Path to ssh binary</shortdesc>
|
||||
+ </parameter>
|
||||
+</parameters>
|
||||
+<actions>
|
||||
+ <action name="on" automatic="0"/>
|
||||
+ <action name="off" />
|
||||
+ <action name="reboot" />
|
||||
+ <action name="status" />
|
||||
+ <action name="list" />
|
||||
+ <action name="list-status" />
|
||||
+ <action name="monitor" />
|
||||
+ <action name="metadata" />
|
||||
+ <action name="manpage" />
|
||||
+ <action name="validate-all" />
|
||||
+</actions>
|
||||
+</resource-agent>
|
||||
--
|
||||
2.25.1
|
||||
|
||||
644
backport-spec-Migrate-to-SPDX-license.patch
Normal file
644
backport-spec-Migrate-to-SPDX-license.patch
Normal file
@ -0,0 +1,644 @@
|
||||
From 6e41bc2e69a9b5395c7d0c48aa2fc5424365f8d1 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Friesse <jfriesse@redhat.com>
|
||||
Date: Tue, 6 Jun 2023 18:08:00 +0200
|
||||
Subject: [PATCH 11/46] spec: Migrate to SPDX license
|
||||
|
||||
Both Fedora and openSUSE now recommends to use SPDX shortname format for
|
||||
License.
|
||||
|
||||
This work is 1:1 based on Fedora patch made by Antonio Torres
|
||||
<antorres@redhat.com> and he should get all credit.
|
||||
|
||||
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
|
||||
---
|
||||
fence-agents.spec.in | 138 +++++++++++++++++++++----------------------
|
||||
1 file changed, 69 insertions(+), 69 deletions(-)
|
||||
|
||||
diff --git a/fence-agents.spec.in b/fence-agents.spec.in
|
||||
index 38296937..b6af20d9 100644
|
||||
--- a/fence-agents.spec.in
|
||||
+++ b/fence-agents.spec.in
|
||||
@@ -19,7 +19,7 @@ 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+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Group: System Environment/Base
|
||||
URL: https://github.com/ClusterLabs/fence-agents
|
||||
Source0: %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.bz2
|
||||
@@ -256,7 +256,7 @@ 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+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Common base for Fence Agents
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
Requires: python3-pexpect python3-pycurl
|
||||
@@ -293,7 +293,7 @@ This package contains support files including the Python fencing library.
|
||||
%endif
|
||||
|
||||
%package all
|
||||
-License: GPLv2+ and LGPLv2+ and ASL 2.0
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later AND Apache-2.0
|
||||
Summary: Set of unified programs capable of host isolation ("fencing")
|
||||
Requires: %{allfenceagents}
|
||||
Provides: fence-agents = %{version}-%{release}
|
||||
@@ -308,7 +308,7 @@ This package serves as a catch-all for all supported fence agents.
|
||||
|
||||
%ifarch x86_64
|
||||
%package aliyun
|
||||
-License: GPLv2+ and LGPLv2+ and ASL 2.0 and BSD and MIT
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later AND Apache-2.0 AND BSD-3-Clause AND MIT
|
||||
Group: System Environment/Base
|
||||
Summary: Fence agent for Alibaba Cloud (Aliyun)
|
||||
Requires: fence-agents-common >= %{version}-%{release}
|
||||
@@ -323,7 +323,7 @@ The fence-agents-aliyun package contains a fence agent for Alibaba Cloud (Aliyun
|
||||
%endif
|
||||
|
||||
%package alom
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -342,7 +342,7 @@ Fence agent for SUN ALOM.
|
||||
%{_mandir}/man8/fence_alom.8*
|
||||
|
||||
%package amt
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Intel AMT devices
|
||||
Requires: amtterm
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -355,7 +355,7 @@ Fence agent for AMT compatibile devices that are accessed via
|
||||
%{_mandir}/man8/fence_amt.8*
|
||||
|
||||
%package amt-ws
|
||||
-License: ASL 2.0
|
||||
+License: Apache-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}
|
||||
@@ -376,7 +376,7 @@ Fence agent for AMT (WS-Man) devices.
|
||||
%{_mandir}/man8/fence_amt_ws.8*
|
||||
|
||||
%package apc
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -395,7 +395,7 @@ Fence agent for APC devices that are accessed via telnet or SSH.
|
||||
%{_mandir}/man8/fence_apc.8*
|
||||
|
||||
%package apc-snmp
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agents for APC devices (SNMP)
|
||||
Requires: net-snmp-utils
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -410,7 +410,7 @@ Fence agents for APC devices that are accessed via the SNMP protocol.
|
||||
|
||||
%if ! %{defined rhel7_s390x}
|
||||
%package aws
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Amazon AWS
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
@@ -428,7 +428,7 @@ Fence agent for Amazon AWS instances.
|
||||
%endif
|
||||
|
||||
%package azure-arm
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -457,7 +457,7 @@ Fence agent for Azure Resource Manager instances.
|
||||
%{_mandir}/man8/fence_azure_arm.8*
|
||||
|
||||
%package bladecenter
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -477,7 +477,7 @@ via telnet or SSH.
|
||||
%{_mandir}/man8/fence_bladecenter.8*
|
||||
|
||||
%package brocade
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -496,7 +496,7 @@ Fence agent for Brocade devices that are accessed via telnet or SSH.
|
||||
%{_mandir}/man8/fence_brocade.8*
|
||||
|
||||
%package cdu
|
||||
-License: GPLv3-only
|
||||
+License: GPL-3.0-only
|
||||
Summary: Fence agent for a Sentry Switch CDU
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -507,7 +507,7 @@ Fence agent for Sentry Switch CDU power switch.
|
||||
%{_mandir}/man8/fence_cdu.8*
|
||||
|
||||
%package cisco-mds
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Cisco MDS 9000 series
|
||||
Requires: net-snmp-utils
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -520,7 +520,7 @@ via the SNMP protocol.
|
||||
%{_mandir}/man8/fence_cisco_mds.8*
|
||||
|
||||
%package cisco-ucs
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Cisco UCS series
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
Requires: python3-pycurl
|
||||
@@ -538,7 +538,7 @@ via the SNMP protocol.
|
||||
|
||||
%ifarch x86_64 ppc64le
|
||||
%package compute
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Nova compute nodes
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
Requires: python3-requests
|
||||
@@ -559,7 +559,7 @@ Fence agent for Nova compute nodes.
|
||||
%endif
|
||||
|
||||
%package cyberpower-ssh
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for CyberPower network PDUs
|
||||
Requires: openssh-clients
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -570,7 +570,7 @@ BuildArch: noarch
|
||||
%{_mandir}/man8/fence_cyberpower_ssh.8*
|
||||
|
||||
%package docker
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Docker
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
Requires: python3-pycurl
|
||||
@@ -586,7 +586,7 @@ Fence agent for Docker images that are accessed over HTTP.
|
||||
%{_mandir}/man8/fence_docker.8*
|
||||
|
||||
%package drac
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Dell DRAC
|
||||
Requires: telnet
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -599,7 +599,7 @@ via telnet.
|
||||
%{_mandir}/man8/fence_drac.8*
|
||||
|
||||
%package drac5
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -619,7 +619,7 @@ via telnet or SSH.
|
||||
%{_mandir}/man8/fence_drac5.8*
|
||||
|
||||
%package eaton-snmp
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Eaton network power switches
|
||||
Requires: net-snmp-utils
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -632,7 +632,7 @@ via the SNMP protocol.
|
||||
%{_mandir}/man8/fence_eaton_snmp.8*
|
||||
|
||||
%package ecloud
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for eCloud and eCloud VPC
|
||||
Requires: python3-requests
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
@@ -649,7 +649,7 @@ Fence agent for eCloud and eCloud VPC from ANS Group Limited
|
||||
%{_mandir}/man8/fence_ecloud.8*
|
||||
|
||||
%package emerson
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Emerson devices (SNMP)
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -661,7 +661,7 @@ the SNMP protocol.
|
||||
%{_mandir}/man8/fence_emerson.8*
|
||||
|
||||
%package eps
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for ePowerSwitch 8M+ power switches
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -674,7 +674,7 @@ via the HTTP(s) protocol.
|
||||
|
||||
%if ! %{defined rhel7_s390x}
|
||||
%package gce
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -697,7 +697,7 @@ Fence agent for GCE (Google Cloud Engine) instances.
|
||||
%endif
|
||||
|
||||
%package hds-cb
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Hitachi Compute Blade systems
|
||||
Requires: telnet
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -709,7 +709,7 @@ Fence agent for Hitachi Compute Blades that are accessed via telnet.
|
||||
%{_mandir}/man8/fence_hds_cb.8*
|
||||
|
||||
%package heuristics-ping
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Pseudo fence agent to affect other agents based on ping-heuristics
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -722,7 +722,7 @@ ping-heuristics.
|
||||
%{_mandir}/man8/fence_heuristics_ping.8*
|
||||
|
||||
%package hpblade
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -742,7 +742,7 @@ or SSH.
|
||||
%{_mandir}/man8/fence_hpblade.8*
|
||||
|
||||
%package ibmblade
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for IBM BladeCenter
|
||||
Requires: net-snmp-utils
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -755,7 +755,7 @@ via the SNMP protocol.
|
||||
%{_mandir}/man8/fence_ibmblade.8*
|
||||
|
||||
%package ibmz
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for IBM z LPARs
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
Requires: python3-requests
|
||||
@@ -772,7 +772,7 @@ Web Services REST API.
|
||||
%{_mandir}/man8/fence_ibmz.8*
|
||||
|
||||
%package ibm-powervs
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for IBM PowerVS
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -783,7 +783,7 @@ Fence agent for IBM PowerVS that are accessed via REST API.
|
||||
%{_mandir}/man8/fence_ibm_powervs.8*
|
||||
|
||||
%package ibm-vpc
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for IBM Cloud VPC
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -794,7 +794,7 @@ Fence agent for IBM Cloud VPC that are accessed via REST API.
|
||||
%{_mandir}/man8/fence_ibm_vpc.8*
|
||||
|
||||
%package ifmib
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for devices with IF-MIB interfaces
|
||||
Requires: net-snmp-utils
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -807,7 +807,7 @@ the SNMP protocol.
|
||||
%{_mandir}/man8/fence_ifmib.8*
|
||||
|
||||
%package ilo2
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agents for HP iLO2 devices
|
||||
Requires: gnutls-utils
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -822,7 +822,7 @@ the HTTP(s) protocol.
|
||||
%{_mandir}/man8/fence_ilo2.8*
|
||||
|
||||
%package ilo-moonshot
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -842,7 +842,7 @@ via telnet or SSH.
|
||||
%{_mandir}/man8/fence_ilo_moonshot.8*
|
||||
|
||||
%package ilo-mp
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -861,7 +861,7 @@ Fence agent for HP iLO MP devices that are accessed via telnet or SSH.
|
||||
%{_mandir}/man8/fence_ilo_mp.8*
|
||||
|
||||
%package ilo-ssh
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agents for HP iLO devices over SSH
|
||||
Requires: openssh-clients
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -879,7 +879,7 @@ Fence agents for HP iLO devices that are accessed via telnet or SSH.
|
||||
%{_mandir}/man8/fence_ilo5_ssh.8*
|
||||
|
||||
%package intelmodular
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for devices with Intel Modular interfaces
|
||||
Requires: net-snmp-utils
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -892,7 +892,7 @@ via the SNMP protocol.
|
||||
%{_mandir}/man8/fence_intelmodular.8*
|
||||
|
||||
%package ipdu
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for IBM iPDU network power switches
|
||||
Requires: net-snmp-utils
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -905,7 +905,7 @@ via the SNMP protocol.
|
||||
%{_mandir}/man8/fence_ipdu.8*
|
||||
|
||||
%package ipmilan
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agents for devices with IPMI interface
|
||||
Requires: /usr/bin/ipmitool
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -930,7 +930,7 @@ Fence agents for devices with IPMI interface.
|
||||
|
||||
%ifarch x86_64 ppc64le
|
||||
%package ironic
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for OpenStack's Ironic (Bare Metal as a service)
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -942,7 +942,7 @@ Fence agent for OpenStack's Ironic (Bare Metal as a service) service.
|
||||
%endif
|
||||
|
||||
%package kdump
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for use with kdump crash recovery service
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
# this cannot be noarch since it's compiled
|
||||
@@ -955,7 +955,7 @@ Fence agent for use with kdump crash recovery service.
|
||||
%{_mandir}/man8/fence_kdump_send.8*
|
||||
|
||||
%package kubevirt
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for KubeVirt platform
|
||||
Requires: python3-openshift >= 0.12.1
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -967,7 +967,7 @@ Fence agent for KubeVirt platform.
|
||||
%{_mandir}/man8/fence_kubevirt.8*
|
||||
|
||||
%package ldom
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -986,7 +986,7 @@ Fence agent for APC devices that are accessed via telnet or SSH.
|
||||
%{_mandir}/man8/fence_ldom.8*
|
||||
|
||||
%package lpar
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -1005,7 +1005,7 @@ Fence agent for IBM LPAR devices that are accessed via telnet or SSH.
|
||||
%{_mandir}/man8/fence_lpar.8*
|
||||
|
||||
%package mpath
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for reservations over Device Mapper Multipath
|
||||
Requires: device-mapper-multipath
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -1019,7 +1019,7 @@ Device Mapper Multipath.
|
||||
%{_mandir}/man8/fence_mpath.8*
|
||||
|
||||
%package netio
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -1040,7 +1040,7 @@ via telnet or SSH.
|
||||
|
||||
%ifarch x86_64 ppc64le
|
||||
%package openstack
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for OpenStack's Nova service
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
Requires: python3-requests
|
||||
@@ -1057,7 +1057,7 @@ Fence agent for OpenStack's Nova service.
|
||||
%endif
|
||||
|
||||
%package ovh
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for OVH provider
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
%if 0%{?suse_version} > 1500
|
||||
@@ -1078,7 +1078,7 @@ Fence agent for OVH hosting provider.
|
||||
|
||||
# skipped from allfenceagents
|
||||
%package pve
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for PVE
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
Requires: python3-pycurl
|
||||
@@ -1095,7 +1095,7 @@ Fence agent for PVE.
|
||||
|
||||
# skipped from allfenceagents
|
||||
%package raritan
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Raritan Dominion PX
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -1107,7 +1107,7 @@ Fence agent for Raritan Dominion PX.
|
||||
|
||||
# skipped from allfenceagents
|
||||
%package rcd-serial
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for RCD serial
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -1118,7 +1118,7 @@ Fence agent for RCD serial.
|
||||
%{_mandir}/man8/fence_rcd_serial.8*
|
||||
|
||||
%package redfish
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Group: System Environment/Base
|
||||
Summary: Fence agent for Redfish
|
||||
Requires: fence-agents-common >= %{version}-%{release}
|
||||
@@ -1136,7 +1136,7 @@ The fence-agents-redfish package contains a fence agent for Redfish
|
||||
%{_mandir}/man8/fence_redfish.8*
|
||||
|
||||
%package rhevm
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for RHEV-M
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -1147,7 +1147,7 @@ Fence agent for RHEV-M via REST API.
|
||||
%{_mandir}/man8/fence_rhevm.8*
|
||||
|
||||
%package rsa
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -1167,7 +1167,7 @@ via telnet or SSH.
|
||||
%{_mandir}/man8/fence_rsa.8*
|
||||
|
||||
%package rsb
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -1187,7 +1187,7 @@ via telnet or SSH.
|
||||
%{_mandir}/man8/fence_rsb.8*
|
||||
|
||||
%package sanbox2
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for QLogic SANBox2 FC switches
|
||||
Requires: telnet
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -1199,7 +1199,7 @@ Fence agent for QLogic SANBox2 switches that are accessed via telnet.
|
||||
%{_mandir}/man8/fence_sanbox2.8*
|
||||
|
||||
%package sbd
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for SBD (storage-based death)
|
||||
Requires: sbd
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -1211,7 +1211,7 @@ Fence agent for SBD (storage-based death).
|
||||
%{_mandir}/man8/fence_sbd.8*
|
||||
|
||||
%package scsi
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for SCSI persistent reservations
|
||||
Requires: sg3_utils
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -1225,7 +1225,7 @@ Fence agent for SCSI persistent reservations.
|
||||
%{_mandir}/man8/fence_scsi.8*
|
||||
|
||||
%package vbox
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for VirtualBox
|
||||
Requires: openssh-clients
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -1238,7 +1238,7 @@ Fence agent for VirtualBox dom0 accessed via SSH.
|
||||
|
||||
# skipped from allfenceagents
|
||||
%package virsh
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for virtual machines based on libvirt
|
||||
Requires: openssh-clients /usr/bin/virsh
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
@@ -1250,7 +1250,7 @@ Fence agent for virtual machines that are accessed via SSH.
|
||||
%{_mandir}/man8/fence_virsh.8*
|
||||
|
||||
%package vmware
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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
|
||||
@@ -1266,7 +1266,7 @@ Fence agent for VMWare accessed with VI Perl Toolkit or vmrun.
|
||||
%{_mandir}/man8/fence_vmware.8*
|
||||
|
||||
%package vmware-rest
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for VMWare with REST API
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -1278,7 +1278,7 @@ Fence agent for VMWare with REST API.
|
||||
%{_mandir}/man8/fence_vmware_rest.8*
|
||||
|
||||
%package vmware-soap
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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
|
||||
@@ -1298,7 +1298,7 @@ Fence agent for VMWare with SOAP API v4.1+.
|
||||
%{_mandir}/man8/fence_vmware_soap.8*
|
||||
|
||||
%package vmware-vcloud
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for VMWare vCloud Director
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
@@ -1310,7 +1310,7 @@ Fence agent for VMWare vCloud Director.
|
||||
%{_mandir}/man8/fence_vmware_vcloud.8*
|
||||
|
||||
%package wti
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
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}
|
||||
@@ -1330,7 +1330,7 @@ via telnet or SSH.
|
||||
%{_mandir}/man8/fence_wti.8*
|
||||
|
||||
%package xenapi
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Citrix XenServer over XenAPI
|
||||
%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
|
||||
Requires: python3-pexpect
|
||||
@@ -1350,7 +1350,7 @@ Fence agent for Citrix XenServer accessed over XenAPI.
|
||||
%{_mandir}/man8/fence_xenapi.8*
|
||||
|
||||
%package zvm
|
||||
-License: GPLv2+ and LGPLv2+
|
||||
+License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for IBM z/VM over IP
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
Name: fence-agents
|
||||
Summary: Set of unified programs capable of host isolation ("fencing")
|
||||
Version: 4.12.1
|
||||
Release: 9
|
||||
Release: 10
|
||||
License: GPLv2+ and LGPLv2+
|
||||
Group: System Environment/Base
|
||||
URL: https://github.com/ClusterLabs/fence-agents
|
||||
@ -20,6 +20,8 @@ Patch5: backport-fence_scsi-Automatically-detect-devices-for-shared-VGs.patch
|
||||
Patch6: backport-fence_scsi-Add-support-for-space-separated-devices-and-update-in-meta-data.patch
|
||||
Patch7: backport-fence_azure_arm-add-stack-cloud-support.patch
|
||||
Patch8: backport-azure_fence-use-correct-credential_scope-and-profile.patch
|
||||
Patch9: backport-spec-Migrate-to-SPDX-license.patch
|
||||
Patch10: backport-fence_eaton_ssh-new-fence-agent-for-Eaton-ePDU-G3-over-ssh.patch
|
||||
|
||||
# skipped: pve, raritan, rcd-serial, virsh
|
||||
%global allfenceagents %(cat <<EOF
|
||||
@ -39,6 +41,7 @@ fence-agents-docker \\
|
||||
fence-agents-drac \\
|
||||
fence-agents-drac5 \\
|
||||
fence-agents-eaton-snmp \\
|
||||
fence-agents-eaton-ssh \\
|
||||
fence-agents-ecloud \\
|
||||
fence-agents-emerson \\
|
||||
fence-agents-eps \\
|
||||
@ -472,6 +475,18 @@ via the SNMP protocol.
|
||||
%{_sbindir}/fence_eaton_snmp
|
||||
%{_mandir}/man8/fence_eaton_snmp.8*
|
||||
|
||||
%package eaton-ssh
|
||||
License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
Summary: Fence agent for Eaton network power switches
|
||||
Requires: fence-agents-common = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
%description eaton-ssh
|
||||
Fence agent for Eaton network power switches that are accessed
|
||||
via the serial protocol tunnel over SSH.
|
||||
%files eaton-ssh
|
||||
%{_sbindir}/fence_eaton_ssh
|
||||
%{_mandir}/man8/fence_eaton_ssh.8*
|
||||
|
||||
%package ecloud
|
||||
License: GPLv2+ and LGPLv2+
|
||||
Summary: Fence agent for eCloud and eCloud VPC
|
||||
@ -1135,6 +1150,10 @@ are located on corosync cluster nodes.
|
||||
%{_libdir}/fence-virt/cpg.so
|
||||
|
||||
%changelog
|
||||
* Wed May 29 2024 liupei <liupei@kylinos.cn> - 4.12.1-10
|
||||
- spec: Migrate to SPDX license
|
||||
- fence_eaton_ssh: new fence agent for Eaton ePDU G3 over SSH
|
||||
|
||||
* Fri May 24 2024 liupei <liupei@kylinos.cn> - 4.12.1-9
|
||||
- fence_azure_arm:add stack cloud support
|
||||
- azure_fence: use correct credential_scope and profile for stack hub
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user