import fence-agents-4.10.0-30.el9_1.1
This commit is contained in:
parent
e4e00581c8
commit
5b1a41389c
@ -8,6 +8,7 @@ bda476965c380701795849179ed91e9d8134ec7c SOURCES/aliyun-python-sdk-core-2.11.5.t
|
|||||||
32a9b6bff51343ab89221da66f6f67ba798ddcd6 SOURCES/aliyuncli-2.1.10-py2.py3-none-any.whl
|
32a9b6bff51343ab89221da66f6f67ba798ddcd6 SOURCES/aliyuncli-2.1.10-py2.py3-none-any.whl
|
||||||
459383a3bcb16956030e302008a0f140a5fec0fb SOURCES/awscli-2.2.15.tar.gz
|
459383a3bcb16956030e302008a0f140a5fec0fb SOURCES/awscli-2.2.15.tar.gz
|
||||||
a08c16f613cb0b9a9f8ce7cae782ea20c40ce2af SOURCES/awscrt-0.11.13-cp39-cp39-manylinux2014_x86_64.whl
|
a08c16f613cb0b9a9f8ce7cae782ea20c40ce2af SOURCES/awscrt-0.11.13-cp39-cp39-manylinux2014_x86_64.whl
|
||||||
|
46d2d17d958ae305ced32fdd6aa847b0cdf31989 SOURCES/azure-identity-1.10.0.zip
|
||||||
70a8e279429feaa0ed39bf2da123e5d53c37b0e6 SOURCES/azure_common-1.1.27-py2.py3-none-any.whl
|
70a8e279429feaa0ed39bf2da123e5d53c37b0e6 SOURCES/azure_common-1.1.27-py2.py3-none-any.whl
|
||||||
63fee5e61283d1c972abd3786ed609da6fd7ea5b SOURCES/azure_core-1.15.0-py2.py3-none-any.whl
|
63fee5e61283d1c972abd3786ed609da6fd7ea5b SOURCES/azure_core-1.15.0-py2.py3-none-any.whl
|
||||||
584ff1897b56673bee12e77aec07e68ebe9f789b SOURCES/azure_mgmt_compute-21.0.0-py2.py3-none-any.whl
|
584ff1897b56673bee12e77aec07e68ebe9f789b SOURCES/azure_mgmt_compute-21.0.0-py2.py3-none-any.whl
|
||||||
@ -42,6 +43,8 @@ dc553afa7a3f23b92ee9ecd27d0b15153c0e9f75 SOURCES/googleapis_common_protos-1.53.0
|
|||||||
240cc4206740fafacb74bbf0d0c4ff70e41c8a85 SOURCES/isodate-0.6.0-py2.py3-none-any.whl
|
240cc4206740fafacb74bbf0d0c4ff70e41c8a85 SOURCES/isodate-0.6.0-py2.py3-none-any.whl
|
||||||
68904717c48e95adb47d815178fff8d80f39b2ab SOURCES/jmespath-0.7.1-py2.py3-none-any.whl
|
68904717c48e95adb47d815178fff8d80f39b2ab SOURCES/jmespath-0.7.1-py2.py3-none-any.whl
|
||||||
d06a9547b1a87e9c51b0a7c708189d993f2e3d89 SOURCES/kubernetes-12.0.1.tar.gz
|
d06a9547b1a87e9c51b0a7c708189d993f2e3d89 SOURCES/kubernetes-12.0.1.tar.gz
|
||||||
|
ecd73099139d222059443ad19dfeee3f715e1ab0 SOURCES/msal-1.18.0.tar.gz
|
||||||
|
04e016bd1fa4ed6ddb852095a45d4f8c81a5b54a SOURCES/msal-extensions-1.0.0.tar.gz
|
||||||
ba59fbd147307e7ef92a1fad259e7dc0b07e79e0 SOURCES/msrest-0.6.21-py2.py3-none-any.whl
|
ba59fbd147307e7ef92a1fad259e7dc0b07e79e0 SOURCES/msrest-0.6.21-py2.py3-none-any.whl
|
||||||
3d65a50b68e3aa506b6af42be485ed2710afa9da SOURCES/msrestazure-0.6.4-py2.py3-none-any.whl
|
3d65a50b68e3aa506b6af42be485ed2710afa9da SOURCES/msrestazure-0.6.4-py2.py3-none-any.whl
|
||||||
0b5ba4c47bdd7ff17ca4954349d7213a95d03f25 SOURCES/oauthlib-3.1.1-py2.py3-none-any.whl
|
0b5ba4c47bdd7ff17ca4954349d7213a95d03f25 SOURCES/oauthlib-3.1.1-py2.py3-none-any.whl
|
||||||
@ -51,6 +54,7 @@ f6efa66f6106b069b5c0e0cf8cc677e4e96c91ca SOURCES/oauthlib-3.1.1.tar.gz
|
|||||||
bccbc1bf76a9db46998eb8e1ffa2f2a2baf9237a SOURCES/packaging-21.2-py3-none-any.whl
|
bccbc1bf76a9db46998eb8e1ffa2f2a2baf9237a SOURCES/packaging-21.2-py3-none-any.whl
|
||||||
0c3fc83ca045abeec9ce82bb7ee3e77f0390bca4 SOURCES/pexpect-4.8.0-py2.py3-none-any.whl
|
0c3fc83ca045abeec9ce82bb7ee3e77f0390bca4 SOURCES/pexpect-4.8.0-py2.py3-none-any.whl
|
||||||
18659a0dea5600df33eab90dec1b597e2437aebd SOURCES/poetry-core-1.0.7.tar.gz
|
18659a0dea5600df33eab90dec1b597e2437aebd SOURCES/poetry-core-1.0.7.tar.gz
|
||||||
|
8fd43e96c5d0ad701cf3e332fb80c7e92e9ab883 SOURCES/portalocker-2.5.1.tar.gz
|
||||||
b09c4655a4c8bd24c54a078e960750ec9e8688d6 SOURCES/prompt_toolkit-2.0.10-py3-none-any.whl
|
b09c4655a4c8bd24c54a078e960750ec9e8688d6 SOURCES/prompt_toolkit-2.0.10-py3-none-any.whl
|
||||||
5a90b79a9630873c7f2db79544c46146bb6af5e8 SOURCES/protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
|
5a90b79a9630873c7f2db79544c46146bb6af5e8 SOURCES/protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
|
||||||
0827aaa6fdc3dc4256e06fa1c3991fb4ed20a693 SOURCES/ptyprocess-0.7.0-py2.py3-none-any.whl
|
0827aaa6fdc3dc4256e06fa1c3991fb4ed20a693 SOURCES/ptyprocess-0.7.0-py2.py3-none-any.whl
|
||||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -8,6 +8,7 @@ SOURCES/aliyun_python_sdk_ecs-4.24.7-py2.py3-none-any.whl
|
|||||||
SOURCES/aliyuncli-2.1.10-py2.py3-none-any.whl
|
SOURCES/aliyuncli-2.1.10-py2.py3-none-any.whl
|
||||||
SOURCES/awscli-2.2.15.tar.gz
|
SOURCES/awscli-2.2.15.tar.gz
|
||||||
SOURCES/awscrt-0.11.13-cp39-cp39-manylinux2014_x86_64.whl
|
SOURCES/awscrt-0.11.13-cp39-cp39-manylinux2014_x86_64.whl
|
||||||
|
SOURCES/azure-identity-1.10.0.zip
|
||||||
SOURCES/azure_common-1.1.27-py2.py3-none-any.whl
|
SOURCES/azure_common-1.1.27-py2.py3-none-any.whl
|
||||||
SOURCES/azure_core-1.15.0-py2.py3-none-any.whl
|
SOURCES/azure_core-1.15.0-py2.py3-none-any.whl
|
||||||
SOURCES/azure_mgmt_compute-21.0.0-py2.py3-none-any.whl
|
SOURCES/azure_mgmt_compute-21.0.0-py2.py3-none-any.whl
|
||||||
@ -42,6 +43,8 @@ SOURCES/idna-3.3.tar.gz
|
|||||||
SOURCES/isodate-0.6.0-py2.py3-none-any.whl
|
SOURCES/isodate-0.6.0-py2.py3-none-any.whl
|
||||||
SOURCES/jmespath-0.7.1-py2.py3-none-any.whl
|
SOURCES/jmespath-0.7.1-py2.py3-none-any.whl
|
||||||
SOURCES/kubernetes-12.0.1.tar.gz
|
SOURCES/kubernetes-12.0.1.tar.gz
|
||||||
|
SOURCES/msal-1.18.0.tar.gz
|
||||||
|
SOURCES/msal-extensions-1.0.0.tar.gz
|
||||||
SOURCES/msrest-0.6.21-py2.py3-none-any.whl
|
SOURCES/msrest-0.6.21-py2.py3-none-any.whl
|
||||||
SOURCES/msrestazure-0.6.4-py2.py3-none-any.whl
|
SOURCES/msrestazure-0.6.4-py2.py3-none-any.whl
|
||||||
SOURCES/oauthlib-3.1.1-py2.py3-none-any.whl
|
SOURCES/oauthlib-3.1.1-py2.py3-none-any.whl
|
||||||
@ -51,6 +54,7 @@ SOURCES/packaging-20.9-py2.py3-none-any.whl
|
|||||||
SOURCES/packaging-21.2-py3-none-any.whl
|
SOURCES/packaging-21.2-py3-none-any.whl
|
||||||
SOURCES/pexpect-4.8.0-py2.py3-none-any.whl
|
SOURCES/pexpect-4.8.0-py2.py3-none-any.whl
|
||||||
SOURCES/poetry-core-1.0.7.tar.gz
|
SOURCES/poetry-core-1.0.7.tar.gz
|
||||||
|
SOURCES/portalocker-2.5.1.tar.gz
|
||||||
SOURCES/prompt_toolkit-2.0.10-py3-none-any.whl
|
SOURCES/prompt_toolkit-2.0.10-py3-none-any.whl
|
||||||
SOURCES/protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
|
SOURCES/protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
|
||||||
SOURCES/ptyprocess-0.7.0-py2.py3-none-any.whl
|
SOURCES/ptyprocess-0.7.0-py2.py3-none-any.whl
|
||||||
|
432
SOURCES/bz2127878-fence_ibm_vpc-add-token-cache-support.patch
Normal file
432
SOURCES/bz2127878-fence_ibm_vpc-add-token-cache-support.patch
Normal file
@ -0,0 +1,432 @@
|
|||||||
|
From bccac64a5135815ada30d385ab573409f1176905 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
Date: Thu, 7 Jul 2022 14:18:21 +0200
|
||||||
|
Subject: [PATCH 1/3] build: make xml-check: ignore detected paths in *_file
|
||||||
|
parameters not matching saved metadata
|
||||||
|
|
||||||
|
---
|
||||||
|
make/agentpycheck.mk | 2 +-
|
||||||
|
83 files changed, 1 insertion(+), 108 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/make/agentpycheck.mk b/make/agentpycheck.mk
|
||||||
|
index f686c4c89..4044dbad3 100644
|
||||||
|
--- a/make/agentpycheck.mk
|
||||||
|
+++ b/make/agentpycheck.mk
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
DATADIR:=$(abs_top_srcdir)/tests/data/metadata
|
||||||
|
-AWK_VAL='BEGIN {store=-1} /name=".*_path"/ {store=2} {if (store!=0) {print}; store--}'
|
||||||
|
+AWK_VAL='BEGIN {store=-1} /name=".*_path"/ || /name=".*_file"/ {store=2} {if (store!=0) {print}; store--}'
|
||||||
|
|
||||||
|
TEST_TARGET=$(filter-out $(TEST_TARGET_SKIP),$(TARGET))
|
||||||
|
|
||||||
|
From 1b7f3cc431ca53962506e6d96e7a4938c4388416 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
Date: Fri, 1 Jul 2022 13:29:16 +0200
|
||||||
|
Subject: [PATCH 2/3] build: add FENCETMPDIR for state files
|
||||||
|
|
||||||
|
---
|
||||||
|
Makefile.am | 3 ++-
|
||||||
|
configure.ac | 30 ++++++++++++++++++++++++++++++
|
||||||
|
m4/PKG_CHECK_VAR.m4 | 24 ++++++++++++++++++++++++
|
||||||
|
make/fencebuild.mk | 1 +
|
||||||
|
systemd/Makefile.am | 24 ++++++++++++++++++++++++
|
||||||
|
systemd/fence-agents.conf.in | 1 +
|
||||||
|
7 files changed, 97 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 m4/PKG_CHECK_VAR.m4
|
||||||
|
create mode 100644 systemd/Makefile.am
|
||||||
|
create mode 100644 systemd/fence-agents.conf.in
|
||||||
|
|
||||||
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
|
index c1091b93a..1d115e5aa 100644
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -23,7 +23,7 @@ TARFILES = $(PACKAGE_NAME)-$(VERSION).tar.bz2 \
|
||||||
|
|
||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
|
-SUBDIRS = lib agents doc
|
||||||
|
+SUBDIRS = lib agents doc systemd
|
||||||
|
|
||||||
|
.PHONY: $(SUBDIRS)
|
||||||
|
|
||||||
|
@@ -34,6 +34,7 @@ doc: agents
|
||||||
|
install-exec-local:
|
||||||
|
$(INSTALL) -d $(DESTDIR)/$(LOGDIR)
|
||||||
|
$(INSTALL) -d $(DESTDIR)/$(CLUSTERVARRUN)
|
||||||
|
+ $(INSTALL) -d -m 1755 $(DESTDIR)$(FENCETMPDIR)
|
||||||
|
|
||||||
|
uninstall-local:
|
||||||
|
rmdir $(DESTDIR)/$(LOGDIR) || :;
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 1bad8e3b0..d7afb8dbe 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -135,10 +135,38 @@ AC_ARG_WITH([agents],
|
||||||
|
[ AGENTS_LIST="$withval" ],
|
||||||
|
[ AGENTS_LIST="all" ])
|
||||||
|
|
||||||
|
+FENCETMPDIR=${localstatedir}/run/fence-agents
|
||||||
|
+AC_ARG_WITH(fencetmpdir,
|
||||||
|
+ [ --with-fencetmpdir=DIR directory for fence agents state files [${FENCETMPDIR}]],
|
||||||
|
+ [ FENCETMPDIR="$withval" ])
|
||||||
|
+
|
||||||
|
+# Expand $prefix
|
||||||
|
+eval FENCETMPDIR="`eval echo ${FENCETMPDIR}`"
|
||||||
|
+AC_DEFINE_UNQUOTED(FENCETMPDIR,"$FENCETMPDIR", Where Fence agents keep state files)
|
||||||
|
+AC_SUBST(FENCETMPDIR)
|
||||||
|
+
|
||||||
|
+
|
||||||
|
if test "x$AGENTS_LIST" = x; then
|
||||||
|
AC_ERROR([No agents selected])
|
||||||
|
fi
|
||||||
|
|
||||||
|
+# PKG_CHECK_MODULES will fail if systemd is not found by default, so make sure
|
||||||
|
+# we set the proper vars and deal with it
|
||||||
|
+PKG_CHECK_MODULES([systemd], [systemd], [HAS_SYSTEMD=yes], [HAS_SYSTEMD=no])
|
||||||
|
+if test "x$HAS_SYSTEMD" == "xyes"; then
|
||||||
|
+ PKG_CHECK_VAR([SYSTEMD_TMPFILES_DIR], [systemd], [tmpfilesdir])
|
||||||
|
+ if test "x$SYSTEMD_TMPFILES_DIR" == "x"; then
|
||||||
|
+ AC_MSG_ERROR([Unable to detect systemd tmpfiles directory automatically])
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ # sanitize systed vars when using non standard prefix
|
||||||
|
+ if test "$prefix" != "/usr"; then
|
||||||
|
+ SYSTEMD_TMPFILES_DIR="$prefix/$SYSTEMD_TMPFILES_DIR"
|
||||||
|
+ AC_SUBST([SYSTEMD_TMPFILES_DIR])
|
||||||
|
+ fi
|
||||||
|
+fi
|
||||||
|
+AM_CONDITIONAL(HAVE_SYSTEMD, [test "x$HAS_SYSTEMD" == xyes ])
|
||||||
|
+
|
||||||
|
FENCE_KDUMP=0
|
||||||
|
if echo "$AGENTS_LIST" | grep -q -E "all|kdump"; then
|
||||||
|
case "$host_os" in
|
||||||
|
@@ -552,6 +580,8 @@ AC_CONFIG_FILES([Makefile
|
||||||
|
agents/Makefile
|
||||||
|
lib/Makefile
|
||||||
|
doc/Makefile
|
||||||
|
+ systemd/Makefile
|
||||||
|
+ systemd/fence-agents.conf
|
||||||
|
agents/virt/Makefile
|
||||||
|
agents/virt/config/Makefile
|
||||||
|
agents/virt/common/Makefile
|
||||||
|
diff --git a/m4/PKG_CHECK_VAR.m4 b/m4/PKG_CHECK_VAR.m4
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..2221a69eb
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/m4/PKG_CHECK_VAR.m4
|
||||||
|
@@ -0,0 +1,24 @@
|
||||||
|
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
||||||
|
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||||
|
+dnl -------------------------------------------
|
||||||
|
+dnl Since: 0.28
|
||||||
|
+dnl
|
||||||
|
+dnl Retrieves the value of the pkg-config variable for the given module.
|
||||||
|
+dnl
|
||||||
|
+dnl Origin (declared license: GPLv2+ with less restrictive exception):
|
||||||
|
+dnl https://cgit.freedesktop.org/pkg-config/tree/pkg.m4.in?h=pkg-config-0.29.1#n261
|
||||||
|
+dnl (AS_VAR_COPY replaced with backward-compatible equivalent and guard
|
||||||
|
+dnl to prefer system-wide variant by Jan Pokorny <jpokorny@redhat.com>)
|
||||||
|
+
|
||||||
|
+m4_ifndef([PKG_CHECK_VAR],[
|
||||||
|
+AC_DEFUN([PKG_CHECK_VAR],
|
||||||
|
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||||
|
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
|
||||||
|
+
|
||||||
|
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
|
||||||
|
+dnl AS_VAR_COPY([$1], [pkg_cv_][$1])
|
||||||
|
+$1=AS_VAR_GET([pkg_cv_][$1])
|
||||||
|
+
|
||||||
|
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
||||||
|
+])dnl PKG_CHECK_VAR
|
||||||
|
+])dnl m4_ifndef
|
||||||
|
diff --git a/make/fencebuild.mk b/make/fencebuild.mk
|
||||||
|
index 762db62c4..9a3c6d6dd 100644
|
||||||
|
--- a/make/fencebuild.mk
|
||||||
|
+++ b/make/fencebuild.mk
|
||||||
|
@@ -8,6 +8,7 @@ define gen_agent_from_py
|
||||||
|
-e 's#@''LOGDIR@#${LOGDIR}#g' \
|
||||||
|
-e 's#@''SBINDIR@#${sbindir}#g' \
|
||||||
|
-e 's#@''LIBEXECDIR@#${libexecdir}#g' \
|
||||||
|
+ -e 's#@''FENCETMPDIR@#${FENCETMPDIR}#g' \
|
||||||
|
-e 's#@''IPMITOOL_PATH@#${IPMITOOL_PATH}#g' \
|
||||||
|
-e 's#@''OPENSTACK_PATH@#${OPENSTACK_PATH}#g' \
|
||||||
|
-e 's#@''AMTTOOL_PATH@#${AMTTOOL_PATH}#g' \
|
||||||
|
diff --git a/systemd/Makefile.am b/systemd/Makefile.am
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..aa3a01679
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/systemd/Makefile.am
|
||||||
|
@@ -0,0 +1,24 @@
|
||||||
|
+#
|
||||||
|
+# Copyright (C) 2017 Oyvind Albrigtsen
|
||||||
|
+#
|
||||||
|
+# This program is free software; you can redistribute it and/or
|
||||||
|
+# modify it under the terms of the GNU General Public License
|
||||||
|
+# as published by the Free Software Foundation; either version 2
|
||||||
|
+# of the License, or (at your option) any later version.
|
||||||
|
+#
|
||||||
|
+# This program 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 General Public License for more details.
|
||||||
|
+#
|
||||||
|
+# You should have received a copy of the GNU General Public License
|
||||||
|
+# along with this program; if not, write to the Free Software
|
||||||
|
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
+#
|
||||||
|
+
|
||||||
|
+MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
+
|
||||||
|
+if HAVE_SYSTEMD
|
||||||
|
+tmpfilesdir = $(SYSTEMD_TMPFILES_DIR)
|
||||||
|
+tmpfiles_DATA = fence-agents.conf
|
||||||
|
+endif
|
||||||
|
diff --git a/systemd/fence-agents.conf.in b/systemd/fence-agents.conf.in
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..4181287da
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/systemd/fence-agents.conf.in
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+d @FENCETMPDIR@ 1755 root root
|
||||||
|
|
||||||
|
From d5a12d9c30b66eb8720e037c4dce5fe0f3ad7dbb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
Date: Thu, 30 Jun 2022 13:20:37 +0200
|
||||||
|
Subject: [PATCH 3/3] fence_ibm_vpc: add token cache support
|
||||||
|
|
||||||
|
---
|
||||||
|
agents/ibm_vpc/fence_ibm_vpc.py | 126 ++++++++++++++++++++----
|
||||||
|
tests/data/metadata/fence_ibm_vpc.xml | 4 +
|
||||||
|
3 files changed, 110 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
|
def auth_connect(opt):
|
||||||
|
diff --git a/agents/ibm_vpc/fence_ibm_vpc.py b/agents/ibm_vpc/fence_ibm_vpc.py
|
||||||
|
index 3da3ce056..847010584 100755
|
||||||
|
--- a/agents/ibm_vpc/fence_ibm_vpc.py
|
||||||
|
+++ b/agents/ibm_vpc/fence_ibm_vpc.py
|
||||||
|
@@ -4,9 +4,10 @@
|
||||||
|
import pycurl, io, json
|
||||||
|
import logging
|
||||||
|
import atexit
|
||||||
|
+import hashlib
|
||||||
|
sys.path.append("@FENCEAGENTSLIBDIR@")
|
||||||
|
from fencing import *
|
||||||
|
-from fencing import fail, run_delay, EC_LOGIN_DENIED, EC_STATUS
|
||||||
|
+from fencing import fail, run_delay, EC_LOGIN_DENIED, EC_STATUS, EC_GENERIC_ERROR
|
||||||
|
|
||||||
|
state = {
|
||||||
|
"running": "on",
|
||||||
|
@@ -22,7 +23,7 @@ def get_list(conn, options):
|
||||||
|
|
||||||
|
try:
|
||||||
|
command = "instances?version=2021-05-25&generation=2&limit={}".format(options["--limit"])
|
||||||
|
- res = send_command(conn, command)
|
||||||
|
+ res = send_command(conn, options, command)
|
||||||
|
except Exception as e:
|
||||||
|
logging.debug("Failed: Unable to get list: {}".format(e))
|
||||||
|
return outlets
|
||||||
|
@@ -38,7 +39,7 @@ def get_list(conn, options):
|
||||||
|
def get_power_status(conn, options):
|
||||||
|
try:
|
||||||
|
command = "instances/{}?version=2021-05-25&generation=2".format(options["--plug"])
|
||||||
|
- res = send_command(conn, command)
|
||||||
|
+ res = send_command(conn, options, command)
|
||||||
|
result = state[res["status"]]
|
||||||
|
if options["--verbose-level"] > 1:
|
||||||
|
logging.debug("Result:\n{}".format(json.dumps(res, indent=2)))
|
||||||
|
@@ -57,27 +58,71 @@ def set_power_status(conn, options):
|
||||||
|
|
||||||
|
try:
|
||||||
|
command = "instances/{}/actions?version=2021-05-25&generation=2".format(options["--plug"])
|
||||||
|
- send_command(conn, command, "POST", action, 201)
|
||||||
|
+ send_command(conn, options, command, "POST", action, 201)
|
||||||
|
except Exception as e:
|
||||||
|
logging.debug("Failed: Unable to set power to {} for {}".format(options["--action"], e))
|
||||||
|
fail(EC_STATUS)
|
||||||
|
|
||||||
|
def get_bearer_token(conn, options):
|
||||||
|
+ import os, errno
|
||||||
|
+
|
||||||
|
+ try:
|
||||||
|
+ # FIPS requires usedforsecurity=False and might not be
|
||||||
|
+ # available on all distros: https://bugs.python.org/issue9216
|
||||||
|
+ hash = hashlib.sha256(options["--apikey"].encode("utf-8"), usedforsecurity=False).hexdigest()
|
||||||
|
+ except (AttributeError, TypeError):
|
||||||
|
+ hash = hashlib.sha256(options["--apikey"].encode("utf-8")).hexdigest()
|
||||||
|
+ file_path = options["--token-file"].replace("[hash]", hash)
|
||||||
|
token = None
|
||||||
|
+
|
||||||
|
+ if not os.path.isdir(os.path.dirname(file_path)):
|
||||||
|
+ os.makedirs(os.path.dirname(file_path))
|
||||||
|
+
|
||||||
|
+ # For security, remove file with potentially elevated mode
|
||||||
|
try:
|
||||||
|
- conn.setopt(pycurl.HTTPHEADER, [
|
||||||
|
- "Content-Type: application/x-www-form-urlencoded",
|
||||||
|
- "User-Agent: curl",
|
||||||
|
- ])
|
||||||
|
- token = send_command(conn, "https://iam.cloud.ibm.com/identity/token", "POST", "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey={}".format(options["--apikey"]))["access_token"]
|
||||||
|
- except Exception:
|
||||||
|
- logging.error("Failed: Unable to authenticate")
|
||||||
|
- fail(EC_LOGIN_DENIED)
|
||||||
|
+ os.remove(file_path)
|
||||||
|
+ except OSError:
|
||||||
|
+ pass
|
||||||
|
+
|
||||||
|
+ try:
|
||||||
|
+ oldumask = os.umask(0)
|
||||||
|
+ file_handle = os.open(file_path, os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0o600)
|
||||||
|
+ except OSError as e:
|
||||||
|
+ if e.errno == errno.EEXIST: # Failed as the file already exists.
|
||||||
|
+ logging.error("Failed: File already exists: {}".format(e))
|
||||||
|
+ sys.exit(EC_GENERIC_ERROR)
|
||||||
|
+ else: # Something unexpected went wrong
|
||||||
|
+ logging.error("Failed: Unable to open file: {}".format(e))
|
||||||
|
+ sys.exit(EC_GENERIC_ERROR)
|
||||||
|
+ else: # No exception, so the file must have been created successfully.
|
||||||
|
+ with os.fdopen(file_handle, 'w') as file_obj:
|
||||||
|
+ try:
|
||||||
|
+ conn.setopt(pycurl.HTTPHEADER, [
|
||||||
|
+ "Content-Type: application/x-www-form-urlencoded",
|
||||||
|
+ "User-Agent: curl",
|
||||||
|
+ ])
|
||||||
|
+ token = send_command(conn, options, "https://iam.cloud.ibm.com/identity/token", "POST", "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey={}".format(options["--apikey"]))["access_token"]
|
||||||
|
+ except Exception as e:
|
||||||
|
+ logging.error("Failed: Unable to authenticate: {}".format(e))
|
||||||
|
+ fail(EC_LOGIN_DENIED)
|
||||||
|
+ file_obj.write(token)
|
||||||
|
+ finally:
|
||||||
|
+ os.umask(oldumask)
|
||||||
|
|
||||||
|
return token
|
||||||
|
|
||||||
|
+def set_bearer_token(conn, bearer_token):
|
||||||
|
+ conn.setopt(pycurl.HTTPHEADER, [
|
||||||
|
+ "Content-Type: application/json",
|
||||||
|
+ "Authorization: Bearer {}".format(bearer_token),
|
||||||
|
+ "User-Agent: curl",
|
||||||
|
+ ])
|
||||||
|
+
|
||||||
|
+ return conn
|
||||||
|
+
|
||||||
|
def connect(opt):
|
||||||
|
conn = pycurl.Curl()
|
||||||
|
+ bearer_token = ""
|
||||||
|
|
||||||
|
## setup correct URL
|
||||||
|
conn.base_url = "https://" + opt["--region"] + ".iaas.cloud.ibm.com/v1/"
|
||||||
|
@@ -91,21 +136,28 @@ def connect(opt):
|
||||||
|
conn.setopt(pycurl.PROXY, "{}".format(opt["--proxy"]))
|
||||||
|
|
||||||
|
# get bearer token
|
||||||
|
- bearer_token = get_bearer_token(conn, opt)
|
||||||
|
+ try:
|
||||||
|
+ try:
|
||||||
|
+ # FIPS requires usedforsecurity=False and might not be
|
||||||
|
+ # available on all distros: https://bugs.python.org/issue9216
|
||||||
|
+ hash = hashlib.sha256(opt["--apikey"].encode("utf-8"), usedforsecurity=False).hexdigest()
|
||||||
|
+ except (AttributeError, TypeError):
|
||||||
|
+ hash = hashlib.sha256(opt["--apikey"].encode("utf-8")).hexdigest()
|
||||||
|
+ f = open(opt["--token-file"].replace("[hash]", hash))
|
||||||
|
+ bearer_token = f.read()
|
||||||
|
+ f.close()
|
||||||
|
+ except IOError:
|
||||||
|
+ bearer_token = get_bearer_token(conn, opt)
|
||||||
|
|
||||||
|
# set auth token for later requests
|
||||||
|
- conn.setopt(pycurl.HTTPHEADER, [
|
||||||
|
- "Content-Type: application/json",
|
||||||
|
- "Authorization: Bearer {}".format(bearer_token),
|
||||||
|
- "User-Agent: curl",
|
||||||
|
- ])
|
||||||
|
+ conn = set_bearer_token(conn, bearer_token)
|
||||||
|
|
||||||
|
return conn
|
||||||
|
|
||||||
|
def disconnect(conn):
|
||||||
|
conn.close()
|
||||||
|
|
||||||
|
-def send_command(conn, command, method="GET", action=None, expected_rc=200):
|
||||||
|
+def send_command(conn, options, command, method="GET", action=None, expected_rc=200):
|
||||||
|
if not command.startswith("https"):
|
||||||
|
url = conn.base_url + command
|
||||||
|
else:
|
||||||
|
@@ -130,6 +182,26 @@ def send_command(conn, command, method="GET", action=None, expected_rc=200):
|
||||||
|
raise(e)
|
||||||
|
|
||||||
|
rc = conn.getinfo(pycurl.HTTP_CODE)
|
||||||
|
+
|
||||||
|
+ # auth if token has expired
|
||||||
|
+ if rc in [400, 401, 415]:
|
||||||
|
+ tokenconn = pycurl.Curl()
|
||||||
|
+ token = get_bearer_token(tokenconn, options)
|
||||||
|
+ tokenconn.close()
|
||||||
|
+ conn = set_bearer_token(conn, token)
|
||||||
|
+
|
||||||
|
+ # flush web_buffer
|
||||||
|
+ web_buffer.close()
|
||||||
|
+ web_buffer = io.BytesIO()
|
||||||
|
+ conn.setopt(pycurl.WRITEFUNCTION, web_buffer.write)
|
||||||
|
+
|
||||||
|
+ try:
|
||||||
|
+ conn.perform()
|
||||||
|
+ except Exception as e:
|
||||||
|
+ raise(e)
|
||||||
|
+
|
||||||
|
+ rc = conn.getinfo(pycurl.HTTP_CODE)
|
||||||
|
+
|
||||||
|
result = web_buffer.getvalue().decode("UTF-8")
|
||||||
|
|
||||||
|
web_buffer.close()
|
||||||
|
@@ -173,7 +245,7 @@ def define_new_opts():
|
||||||
|
all_opt["proxy"] = {
|
||||||
|
"getopt" : ":",
|
||||||
|
"longopt" : "proxy",
|
||||||
|
- "help" : "--proxy=[http://<URL>:<PORT>] Proxy: 'http://<URL>:<PORT>'",
|
||||||
|
+ "help" : "--proxy=[http://<URL>:<PORT>] Proxy: 'http://<URL>:<PORT>'",
|
||||||
|
"required" : "0",
|
||||||
|
"default": "",
|
||||||
|
"shortdesc" : "Network proxy",
|
||||||
|
@@ -188,14 +260,26 @@ def define_new_opts():
|
||||||
|
"shortdesc" : "Number of nodes returned by API",
|
||||||
|
"order" : 0
|
||||||
|
}
|
||||||
|
+ all_opt["token_file"] = {
|
||||||
|
+ "getopt" : ":",
|
||||||
|
+ "longopt" : "token-file",
|
||||||
|
+ "help" : "--token-file=[path] Path to the token cache file\n"
|
||||||
|
+ "\t\t\t\t (Default: @FENCETMPDIR@/fence_ibm_vpc/[hash].token)\n"
|
||||||
|
+ "\t\t\t\t [hash] will be replaced by a hashed value",
|
||||||
|
+ "required" : "0",
|
||||||
|
+ "default": "@FENCETMPDIR@/fence_ibm_vpc/[hash].token",
|
||||||
|
+ "shortdesc" : "Path to the token cache file",
|
||||||
|
+ "order" : 0
|
||||||
|
+ }
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
device_opt = [
|
||||||
|
"apikey",
|
||||||
|
"region",
|
||||||
|
- "limit",
|
||||||
|
"proxy",
|
||||||
|
+ "limit",
|
||||||
|
+ "token_file",
|
||||||
|
"port",
|
||||||
|
"no_password",
|
||||||
|
]
|
||||||
|
diff --git a/tests/data/metadata/fence_ibm_vpc.xml b/tests/data/metadata/fence_ibm_vpc.xml
|
||||||
|
index acf4925fc..c35bc4619 100644
|
||||||
|
--- a/tests/data/metadata/fence_ibm_vpc.xml
|
||||||
|
+++ b/tests/data/metadata/fence_ibm_vpc.xml
|
||||||
|
@@ -23,6 +23,10 @@
|
||||||
|
<content type="string" />
|
||||||
|
<shortdesc lang="en">Region</shortdesc>
|
||||||
|
</parameter>
|
||||||
|
+ <parameter name="token_file" unique="0" required="0">
|
||||||
|
+ <getopt mixed="--token-file=[path]" />
|
||||||
|
+ <shortdesc lang="en">Path to the token cache file</shortdesc>
|
||||||
|
+ </parameter>
|
||||||
|
<parameter name="action" unique="0" required="1">
|
||||||
|
<getopt mixed="-o, --action=[action]" />
|
||||||
|
<content type="string" default="reboot" />
|
@ -1,3 +1,4 @@
|
|||||||
azure-mgmt-compute
|
azure-mgmt-compute
|
||||||
azure-mgmt-network
|
azure-mgmt-network
|
||||||
|
azure-identity
|
||||||
msrestazure
|
msrestazure
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
Name: fence-agents
|
Name: fence-agents
|
||||||
Summary: Set of unified programs capable of host isolation ("fencing")
|
Summary: Set of unified programs capable of host isolation ("fencing")
|
||||||
Version: 4.10.0
|
Version: 4.10.0
|
||||||
Release: 30%{?alphatag:.%{alphatag}}%{?dist}
|
Release: 30%{?alphatag:.%{alphatag}}%{?dist}.1
|
||||||
License: GPLv2+ and LGPLv2+
|
License: GPLv2+ and LGPLv2+
|
||||||
URL: https://github.com/ClusterLabs/fence-agents
|
URL: https://github.com/ClusterLabs/fence-agents
|
||||||
Source0: https://fedorahosted.org/releases/f/e/fence-agents/%{name}-%{version}.tar.gz
|
Source0: https://fedorahosted.org/releases/f/e/fence-agents/%{name}-%{version}.tar.gz
|
||||||
@ -108,83 +108,87 @@ Source1024: azure_core-1.15.0-py2.py3-none-any.whl
|
|||||||
Source1025: azure_mgmt_compute-21.0.0-py2.py3-none-any.whl
|
Source1025: azure_mgmt_compute-21.0.0-py2.py3-none-any.whl
|
||||||
Source1026: azure_mgmt_core-1.2.2-py2.py3-none-any.whl
|
Source1026: azure_mgmt_core-1.2.2-py2.py3-none-any.whl
|
||||||
Source1027: azure_mgmt_network-19.0.0-py2.py3-none-any.whl
|
Source1027: azure_mgmt_network-19.0.0-py2.py3-none-any.whl
|
||||||
Source1028: certifi-2021.5.30-py2.py3-none-any.whl
|
Source1028: azure-identity-1.10.0.zip
|
||||||
Source1029: chardet-4.0.0-py2.py3-none-any.whl
|
Source1029: certifi-2021.5.30-py2.py3-none-any.whl
|
||||||
Source1030: idna-2.10-py2.py3-none-any.whl
|
Source1030: chardet-4.0.0-py2.py3-none-any.whl
|
||||||
Source1031: isodate-0.6.0-py2.py3-none-any.whl
|
Source1031: idna-2.10-py2.py3-none-any.whl
|
||||||
Source1032: msrest-0.6.21-py2.py3-none-any.whl
|
Source1032: isodate-0.6.0-py2.py3-none-any.whl
|
||||||
Source1033: msrestazure-0.6.4-py2.py3-none-any.whl
|
Source1033: msrest-0.6.21-py2.py3-none-any.whl
|
||||||
Source1034: oauthlib-3.1.1-py2.py3-none-any.whl
|
Source1034: msrestazure-0.6.4-py2.py3-none-any.whl
|
||||||
Source1035: PyJWT-2.1.0-py3-none-any.whl
|
Source1035: oauthlib-3.1.1-py2.py3-none-any.whl
|
||||||
Source1036: requests-2.25.1-py2.py3-none-any.whl
|
Source1036: PyJWT-2.1.0-py3-none-any.whl
|
||||||
Source1037: requests_oauthlib-1.3.0-py2.py3-none-any.whl
|
Source1037: requests-2.25.1-py2.py3-none-any.whl
|
||||||
|
Source1038: requests_oauthlib-1.3.0-py2.py3-none-any.whl
|
||||||
|
Source1139: msal-1.18.0.tar.gz
|
||||||
|
Source1140: msal-extensions-1.0.0.tar.gz
|
||||||
|
Source1141: portalocker-2.5.1.tar.gz
|
||||||
# google
|
# google
|
||||||
Source1038: cachetools-4.2.2-py3-none-any.whl
|
Source1042: cachetools-4.2.2-py3-none-any.whl
|
||||||
Source1039: chardet-3.0.4-py2.py3-none-any.whl
|
Source1043: chardet-3.0.4-py2.py3-none-any.whl
|
||||||
Source1040: google_api_core-1.30.0-py2.py3-none-any.whl
|
Source1044: google_api_core-1.30.0-py2.py3-none-any.whl
|
||||||
Source1041: google_api_python_client-1.12.8-py2.py3-none-any.whl
|
Source1045: google_api_python_client-1.12.8-py2.py3-none-any.whl
|
||||||
Source1042: googleapis_common_protos-1.53.0-py2.py3-none-any.whl
|
Source1046: googleapis_common_protos-1.53.0-py2.py3-none-any.whl
|
||||||
Source1043: google_auth-1.32.0-py2.py3-none-any.whl
|
Source1047: google_auth-1.32.0-py2.py3-none-any.whl
|
||||||
Source1044: google_auth_httplib2-0.1.0-py2.py3-none-any.whl
|
Source1048: google_auth_httplib2-0.1.0-py2.py3-none-any.whl
|
||||||
Source1045: httplib2-0.19.1-py3-none-any.whl
|
Source1049: httplib2-0.19.1-py3-none-any.whl
|
||||||
Source1046: packaging-20.9-py2.py3-none-any.whl
|
Source1050: packaging-20.9-py2.py3-none-any.whl
|
||||||
Source1047: protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
|
Source1051: protobuf-3.17.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
|
||||||
Source1048: pyasn1-0.4.8-py2.py3-none-any.whl
|
Source1052: pyasn1-0.4.8-py2.py3-none-any.whl
|
||||||
Source1049: pyasn1_modules-0.2.8-py2.py3-none-any.whl
|
Source1053: pyasn1_modules-0.2.8-py2.py3-none-any.whl
|
||||||
Source1050: pyparsing-2.4.7-py2.py3-none-any.whl
|
Source1054: pyparsing-2.4.7-py2.py3-none-any.whl
|
||||||
Source1051: pyroute2-0.6.4.tar.gz
|
Source1055: pyroute2-0.6.4.tar.gz
|
||||||
Source1052: pyroute2.core-0.6.4.tar.gz
|
Source1056: pyroute2.core-0.6.4.tar.gz
|
||||||
Source1053: pyroute2.ethtool-0.6.4.tar.gz
|
Source1057: pyroute2.ethtool-0.6.4.tar.gz
|
||||||
Source1054: pyroute2.ipdb-0.6.4.tar.gz
|
Source1058: pyroute2.ipdb-0.6.4.tar.gz
|
||||||
Source1055: pyroute2.ipset-0.6.4.tar.gz
|
Source1059: pyroute2.ipset-0.6.4.tar.gz
|
||||||
Source1056: pyroute2.ndb-0.6.4.tar.gz
|
Source1060: pyroute2.ndb-0.6.4.tar.gz
|
||||||
Source1057: pyroute2.nftables-0.6.4.tar.gz
|
Source1061: pyroute2.nftables-0.6.4.tar.gz
|
||||||
Source1058: pyroute2.nslink-0.6.4.tar.gz
|
Source1062: pyroute2.nslink-0.6.4.tar.gz
|
||||||
Source1059: pytz-2021.1-py2.py3-none-any.whl
|
Source1063: pytz-2021.1-py2.py3-none-any.whl
|
||||||
Source1060: rsa-4.7.2-py3-none-any.whl
|
Source1064: rsa-4.7.2-py3-none-any.whl
|
||||||
Source1061: setuptools-57.0.0-py3-none-any.whl
|
Source1065: setuptools-57.0.0-py3-none-any.whl
|
||||||
Source1062: uritemplate-3.0.1-py2.py3-none-any.whl
|
Source1066: uritemplate-3.0.1-py2.py3-none-any.whl
|
||||||
# common (pexpect / suds)
|
# common (pexpect / suds)
|
||||||
Source1063: pexpect-4.8.0-py2.py3-none-any.whl
|
Source1067: pexpect-4.8.0-py2.py3-none-any.whl
|
||||||
Source1064: ptyprocess-0.7.0-py2.py3-none-any.whl
|
Source1068: ptyprocess-0.7.0-py2.py3-none-any.whl
|
||||||
Source1065: suds_community-0.8.5-py3-none-any.whl
|
Source1069: suds_community-0.8.5-py3-none-any.whl
|
||||||
### END ###
|
### END ###
|
||||||
# kubevirt
|
# kubevirt
|
||||||
## pip download --no-binary :all: openshift "ruamel.yaml.clib>=0.1.2"
|
## pip download --no-binary :all: openshift "ruamel.yaml.clib>=0.1.2"
|
||||||
### BEGIN
|
### BEGIN
|
||||||
Source1066: %{openshift}-%{openshift_version}.tar.gz
|
Source1070: %{openshift}-%{openshift_version}.tar.gz
|
||||||
Source1067: %{ruamelyamlclib}-%{ruamelyamlclib_version}.tar.gz
|
Source1071: %{ruamelyamlclib}-%{ruamelyamlclib_version}.tar.gz
|
||||||
Source1068: %{kubernetes}-%{kubernetes_version}.tar.gz
|
Source1072: %{kubernetes}-%{kubernetes_version}.tar.gz
|
||||||
Source1069: %{certifi}-%{certifi_version}.tar.gz
|
Source1073: %{certifi}-%{certifi_version}.tar.gz
|
||||||
Source1070: %{googleauth}-%{googleauth_version}.tar.gz
|
Source1074: %{googleauth}-%{googleauth_version}.tar.gz
|
||||||
Source1071: %{cachetools}-%{cachetools_version}.tar.gz
|
Source1075: %{cachetools}-%{cachetools_version}.tar.gz
|
||||||
Source1072: %{pyasn1modules}-%{pyasn1modules_version}.tar.gz
|
Source1076: %{pyasn1modules}-%{pyasn1modules_version}.tar.gz
|
||||||
Source1073: %{pyasn1}-%{pyasn1_version}.tar.gz
|
Source1077: %{pyasn1}-%{pyasn1_version}.tar.gz
|
||||||
Source1074: python-%{dateutil}-%{dateutil_version}.tar.gz
|
Source1078: python-%{dateutil}-%{dateutil_version}.tar.gz
|
||||||
Source1075: %{pyyaml}-%{pyyaml_version}.tar.gz
|
Source1079: %{pyyaml}-%{pyyaml_version}.tar.gz
|
||||||
## rsa is dependency for "pip install",
|
## rsa is dependency for "pip install",
|
||||||
## but gets removed to use cryptography lib instead
|
## but gets removed to use cryptography lib instead
|
||||||
Source1076: rsa-4.7.2.tar.gz
|
Source1080: rsa-4.7.2.tar.gz
|
||||||
Source1077: %{six}-%{six_version}.tar.gz
|
Source1081: %{six}-%{six_version}.tar.gz
|
||||||
Source1078: %{urllib3}-%{urllib3_version}.tar.gz
|
Source1082: %{urllib3}-%{urllib3_version}.tar.gz
|
||||||
Source1079: %{websocketclient}-%{websocketclient_version}.tar.gz
|
Source1083: %{websocketclient}-%{websocketclient_version}.tar.gz
|
||||||
Source1080: %{jinja2}-%{jinja2_version}.tar.gz
|
Source1084: %{jinja2}-%{jinja2_version}.tar.gz
|
||||||
Source1081: %{markupsafe}-%{markupsafe_version}.tar.gz
|
Source1085: %{markupsafe}-%{markupsafe_version}.tar.gz
|
||||||
Source1082: python-%{stringutils}-%{stringutils_version}.tar.gz
|
Source1086: python-%{stringutils}-%{stringutils_version}.tar.gz
|
||||||
Source1083: %{requests}-%{requests_version}.tar.gz
|
Source1087: %{requests}-%{requests_version}.tar.gz
|
||||||
Source1084: %{chrstnormalizer}-%{chrstnormalizer_version}.tar.gz
|
Source1088: %{chrstnormalizer}-%{chrstnormalizer_version}.tar.gz
|
||||||
Source1085: %{idna}-%{idna_version}.tar.gz
|
Source1089: %{idna}-%{idna_version}.tar.gz
|
||||||
Source1086: %{reqstsoauthlib}-%{reqstsoauthlib_version}.tar.gz
|
Source1090: %{reqstsoauthlib}-%{reqstsoauthlib_version}.tar.gz
|
||||||
Source1087: %{oauthlib}-%{oauthlib_version}.tar.gz
|
Source1091: %{oauthlib}-%{oauthlib_version}.tar.gz
|
||||||
Source1088: %{ruamelyaml}-%{ruamelyaml_version}.tar.gz
|
Source1092: %{ruamelyaml}-%{ruamelyaml_version}.tar.gz
|
||||||
Source1089: %{setuptools}-%{setuptools_version}.tar.gz
|
Source1093: %{setuptools}-%{setuptools_version}.tar.gz
|
||||||
## required for installation
|
## required for installation
|
||||||
Source1090: setuptools_scm-6.3.2.tar.gz
|
Source1094: setuptools_scm-6.3.2.tar.gz
|
||||||
Source1091: packaging-21.2-py3-none-any.whl
|
Source1095: packaging-21.2-py3-none-any.whl
|
||||||
Source1092: poetry-core-1.0.7.tar.gz
|
Source1096: poetry-core-1.0.7.tar.gz
|
||||||
Source1093: pyparsing-3.0.1.tar.gz
|
Source1097: pyparsing-3.0.1.tar.gz
|
||||||
Source1094: tomli-1.0.1.tar.gz
|
Source1098: tomli-1.0.1.tar.gz
|
||||||
Source1095: wheel-0.37.0-py2.py3-none-any.whl
|
Source1099: wheel-0.37.0-py2.py3-none-any.whl
|
||||||
### END
|
### END
|
||||||
|
|
||||||
Patch0: ha-cloud-support-aliyun.patch
|
Patch0: ha-cloud-support-aliyun.patch
|
||||||
@ -215,6 +219,7 @@ Patch24: bz2072420-2-fence_zvmip-connect-error.patch
|
|||||||
Patch25: bz2092385-fence_ibm_vpc-add-proxy-support.patch
|
Patch25: bz2092385-fence_ibm_vpc-add-proxy-support.patch
|
||||||
Patch26: bz2093216-fence_ibm_powervs-proxy-private-api-servers.patch
|
Patch26: bz2093216-fence_ibm_powervs-proxy-private-api-servers.patch
|
||||||
Patch27: bz2041933-bz2041935-3-fencing-source_env-dont-process-empty-lines.patch
|
Patch27: bz2041933-bz2041935-3-fencing-source_env-dont-process-empty-lines.patch
|
||||||
|
Patch28: bz2127878-fence_ibm_vpc-add-token-cache-support.patch
|
||||||
|
|
||||||
%global supportedagents amt_ws apc apc_snmp bladecenter brocade cisco_mds cisco_ucs compute drac5 eaton_snmp emerson eps evacuate hpblade ibmblade ibm_powervs ibm_vpc ifmib ilo ilo_moonshot ilo_mp ilo_ssh intelmodular ipdu ipmilan kdump kubevirt lpar mpath redfish rhevm rsa rsb sbd scsi vmware_rest vmware_soap wti
|
%global supportedagents amt_ws apc apc_snmp bladecenter brocade cisco_mds cisco_ucs compute drac5 eaton_snmp emerson eps evacuate hpblade ibmblade ibm_powervs ibm_vpc ifmib ilo ilo_moonshot ilo_mp ilo_ssh intelmodular ipdu ipmilan kdump kubevirt lpar mpath redfish rhevm rsa rsb sbd scsi vmware_rest vmware_soap wti
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
@ -353,6 +358,7 @@ BuildRequires: %{systemd_units}
|
|||||||
%patch25 -p1
|
%patch25 -p1
|
||||||
%patch26 -p1
|
%patch26 -p1
|
||||||
%patch27 -p1
|
%patch27 -p1
|
||||||
|
%patch28 -p1
|
||||||
|
|
||||||
# prevent compilation of something that won't get used anyway
|
# prevent compilation of something that won't get used anyway
|
||||||
sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac
|
sed -i.orig 's|FENCE_ZVM=1|FENCE_ZVM=0|' configure.ac
|
||||||
@ -384,7 +390,13 @@ sed -i -e "/^import awscli.clidriver/isys.path.insert(0, '/usr/lib/%{name}/suppo
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
%{configure} --disable-libvirt-qmf-plugin PYTHONPATH="support/aliyun:support/aws:support/azure:support/google:support/common" --with-agents='%{supportedagents} %{testagents}'
|
%{configure} --disable-libvirt-qmf-plugin PYTHONPATH="support/aliyun:support/aws:support/azure:support/google:support/common" \
|
||||||
|
%if %{defined _tmpfilesdir}
|
||||||
|
SYSTEMD_TMPFILES_DIR=%{_tmpfilesdir} \
|
||||||
|
--with-fencetmpdir=/run/fence-agents \
|
||||||
|
%endif
|
||||||
|
--with-agents='%{supportedagents} %{testagents}'
|
||||||
|
|
||||||
CFLAGS="$(echo '%{optflags}')" make %{_smp_mflags}
|
CFLAGS="$(echo '%{optflags}')" make %{_smp_mflags}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
@ -489,6 +501,14 @@ This package contains support files including the Python fencing library.
|
|||||||
%{_datadir}/pkgconfig/%{name}.pc
|
%{_datadir}/pkgconfig/%{name}.pc
|
||||||
%exclude %{_sbindir}/*
|
%exclude %{_sbindir}/*
|
||||||
%exclude %{_mandir}/man8/*
|
%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
|
||||||
%dir %{_usr}/lib/%{name}
|
%dir %{_usr}/lib/%{name}
|
||||||
%{_usr}/lib/%{name}/support/common
|
%{_usr}/lib/%{name}/support/common
|
||||||
|
|
||||||
@ -1405,6 +1425,12 @@ are located on corosync cluster nodes.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Sep 19 2022 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-30.1
|
||||||
|
- fence_ibm_vpc: add token cache support
|
||||||
|
Resolves: rhbz#2127878
|
||||||
|
- add azure-identity and dependencies
|
||||||
|
Resolves: rhbz#2127882
|
||||||
|
|
||||||
* Tue Aug 16 2022 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-30
|
* Tue Aug 16 2022 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.10.0-30
|
||||||
- fence_openstack: add support for reading config from clouds.yaml
|
- fence_openstack: add support for reading config from clouds.yaml
|
||||||
and openrc
|
and openrc
|
||||||
|
Loading…
Reference in New Issue
Block a user