From 141a5d698a9c14b04766abf16b09bb2f7ff22f98 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Fri, 22 Jul 2022 06:10:15 +0000 Subject: [PATCH] import resource-agents-4.9.0-27.el8 --- ...agents-set-domain-parameters-default.patch | 55 ++++ ...k-agents-warn-when-openstackcli-slow.patch | 282 ++++++++++++++++++ ...147-bz1949114-openstack-agents-fixes.patch | 72 +++++ ...bz1908148-openstack-info-fix-bashism.patch | 26 ++ SOURCES/bz2103370-ocf-tester-1-update.patch | 39 +++ ...remove-deprecated-lrmd-lrmadmin-code.patch | 166 +++++++++++ SPECS/resource-agents.spec | 36 ++- 7 files changed, 666 insertions(+), 10 deletions(-) create mode 100644 SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-openstack-agents-set-domain-parameters-default.patch create mode 100644 SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-openstack-agents-warn-when-openstackcli-slow.patch create mode 100644 SOURCES/bz1908146-bz1908147-bz1949114-openstack-agents-fixes.patch create mode 100644 SOURCES/bz1908148-openstack-info-fix-bashism.patch create mode 100644 SOURCES/bz2103370-ocf-tester-1-update.patch create mode 100644 SOURCES/bz2103370-ocf-tester-2-remove-deprecated-lrmd-lrmadmin-code.patch diff --git a/SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-openstack-agents-set-domain-parameters-default.patch b/SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-openstack-agents-set-domain-parameters-default.patch new file mode 100644 index 0000000..8ee70e5 --- /dev/null +++ b/SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-openstack-agents-set-domain-parameters-default.patch @@ -0,0 +1,55 @@ +From bb5cfa172ca58cd8adcedcaca92bde54d0645661 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Thu, 14 Jul 2022 10:55:19 +0200 +Subject: [PATCH] openstack-agents: set domain parameter's default to Default + and fix missing parameter name in ocf_exit_reason + +--- + heartbeat/openstack-common.sh | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/heartbeat/openstack-common.sh b/heartbeat/openstack-common.sh +index b6eec09c..14d290bd 100644 +--- a/heartbeat/openstack-common.sh ++++ b/heartbeat/openstack-common.sh +@@ -1,6 +1,10 @@ ++OCF_RESKEY_user_domain_name_default="Default" ++OCF_RESKEY_project_domain_name_default="Default" + OCF_RESKEY_openstackcli_default="/usr/bin/openstack" + OCF_RESKEY_insecure_default="false" + ++: ${OCF_RESKEY_user_domain_name=${OCF_RESKEY_user_domain_name_default}} ++: ${OCF_RESKEY_project_domain_name=${OCF_RESKEY_project_domain_name_default}} + : ${OCF_RESKEY_openstackcli=${OCF_RESKEY_openstackcli_default}} + : ${OCF_RESKEY_insecure=${OCF_RESKEY_insecure_default}} + +@@ -64,7 +68,7 @@ Keystone Project. + Keystone User Domain Name. + + Keystone User Domain Name +- ++ + + + +@@ -72,7 +76,7 @@ Keystone User Domain Name. + Keystone Project Domain Name. + + Keystone Project Domain Name +- ++ + + + +@@ -133,7 +137,7 @@ get_config() { + exit $OCF_ERR_CONFIGURED + fi + if [ -z "$OCF_RESKEY_project_domain_name" ]; then +- ocf_exit_reason " not set" ++ ocf_exit_reason "project_domain_name not set" + exit $OCF_ERR_CONFIGURED + fi + +-- +2.36.1 + diff --git a/SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-openstack-agents-warn-when-openstackcli-slow.patch b/SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-openstack-agents-warn-when-openstackcli-slow.patch new file mode 100644 index 0000000..3f8bf0c --- /dev/null +++ b/SOURCES/bz1908146-bz1908147-bz1908148-bz1949114-openstack-agents-warn-when-openstackcli-slow.patch @@ -0,0 +1,282 @@ +From ebea4c3620261c529cad908c0e52064df84b0c61 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Mon, 11 Jul 2022 10:28:11 +0200 +Subject: [PATCH] openstack-agents: warn when openstackcli is slow + +--- + heartbeat/openstack-cinder-volume | 19 +++++++++++-------- + heartbeat/openstack-common.sh | 22 ++++++++++++++++++++++ + heartbeat/openstack-floating-ip | 17 ++++++++++------- + heartbeat/openstack-info.in | 20 ++++++++++---------- + heartbeat/openstack-virtual-ip | 20 ++++++++++---------- + 5 files changed, 63 insertions(+), 35 deletions(-) + +diff --git a/heartbeat/openstack-cinder-volume b/heartbeat/openstack-cinder-volume +index 19bf04faf..116442c41 100755 +--- a/heartbeat/openstack-cinder-volume ++++ b/heartbeat/openstack-cinder-volume +@@ -113,11 +113,14 @@ _get_node_id() { + } + + osvol_validate() { ++ local result ++ + check_binary "$OCF_RESKEY_openstackcli" + + get_config + +- if ! $OCF_RESKEY_openstackcli volume list|grep -q $OCF_RESKEY_volume_id ; then ++ result=$(run_openstackcli "volume list") ++ if ! echo "$result" | grep -q $OCF_RESKEY_volume_id; then + ocf_exit_reason "volume-id $OCF_RESKEY_volume_id not found" + return $OCF_ERR_CONFIGURED + fi +@@ -156,17 +159,17 @@ osvol_monitor() { + # Is the volue attached? + # We use the API + # +- result=$($OCF_RESKEY_openstackcli volume show \ ++ result=$(run_openstackcli "volume show \ + --column status \ + --column attachments \ + --format value \ +- $OCF_RESKEY_volume_id) ++ $OCF_RESKEY_volume_id") + +- if echo "$result" | grep -q available ; then ++ if echo "$result" | grep -q available; then + ocf_log warn "$OCF_RESKEY_volume_id is not attached to any instance" + return $OCF_NOT_RUNNING + else +- export attached_server_id=$(echo $result|head -n1| ++ export attached_server_id=$(echo "$result"|head -n1| + grep -P -o "'server_id': '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}'"| + grep -P -o "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}") + ocf_log info "$OCF_RESKEY_volume_id is attached to instance $attached_server_id" +@@ -199,7 +202,7 @@ osvol_stop() { + # + # Detach the volume + # +- if ! $OCF_RESKEY_openstackcli server remove volume $node_id $OCF_RESKEY_volume_id ; then ++ if ! run_openstackcli "server remove volume $node_id $OCF_RESKEY_volume_id"; then + ocf_log error "Couldn't remove volume $OCF_RESKEY_volume_id from instance $node_id" + return $OCF_ERR_GENERIC + fi +@@ -225,7 +228,7 @@ osvol_start() { + # TODO: make it optional in case multi-attachment is allowed by Cinder + # + if [ ! -z $attached_server_id ] ; then +- if ! $OCF_RESKEY_openstackcli server remove volume $attached_server_id $OCF_RESKEY_volume_id ; then ++ if ! run_openstackcli "server remove volume $attached_server_id $OCF_RESKEY_volume_id"; then + ocf_log error "Couldn't remove volume $OCF_RESKEY_volume_id from instance $attached_server_id" + return $OCF_ERR_GENERIC + fi +@@ -238,7 +241,7 @@ osvol_start() { + # + # Attach the volume + # +- $OCF_RESKEY_openstackcli server add volume $node_id $OCF_RESKEY_volume_id ++ run_openstackcli "server add volume $node_id $OCF_RESKEY_volume_id" + if [ $? != $OCF_SUCCESS ]; then + ocf_log error "Couldn't add volume $OCF_RESKEY_volume_id to instance $node_id" + return $OCF_ERR_GENERIC +diff --git a/heartbeat/openstack-common.sh b/heartbeat/openstack-common.sh +index 4763c90db..b6eec09c2 100644 +--- a/heartbeat/openstack-common.sh ++++ b/heartbeat/openstack-common.sh +@@ -145,3 +145,25 @@ get_config() { + OCF_RESKEY_openstackcli="${OCF_RESKEY_openstackcli} --os-project-domain-name $OCF_RESKEY_project_domain_name" + fi + } ++ ++run_openstackcli() { ++ local cmd="${OCF_RESKEY_openstackcli} $1" ++ local result ++ local rc ++ local start_time=$(date +%s) ++ local end_time ++ local elapsed_time ++ ++ result=$($cmd) ++ rc=$? ++ end_time=$(date +%s) ++ elapsed_time=$(expr $end_time - $start_time) ++ ++ if [ $elapsed_time -gt 20 ]; then ++ ocf_log warn "$cmd took ${elapsed_time}s to complete" ++ fi ++ ++ echo "$result" ++ ++ return $rc ++} +diff --git a/heartbeat/openstack-floating-ip b/heartbeat/openstack-floating-ip +index 6e2895654..7317f19a8 100755 +--- a/heartbeat/openstack-floating-ip ++++ b/heartbeat/openstack-floating-ip +@@ -101,11 +101,14 @@ END + } + + osflip_validate() { ++ local result ++ + check_binary "$OCF_RESKEY_openstackcli" + + get_config + +- if ! $OCF_RESKEY_openstackcli floating ip list|grep -q $OCF_RESKEY_ip_id ; then ++ result=$(run_openstackcli "floating ip list") ++ if ! echo "$result" | grep -q $OCF_RESKEY_ip_id; then + ocf_exit_reason "ip-id $OCF_RESKEY_ip_id not found" + return $OCF_ERR_CONFIGURED + fi +@@ -132,14 +135,14 @@ osflip_monitor() { + | awk '{gsub("[^ ]*:", "");print}') + + # Is the IP active and attached? +- result=$($OCF_RESKEY_openstackcli floating ip show \ ++ result=$(run_openstackcli "floating ip show \ + --column port_id --column floating_ip_address \ + --format yaml \ +- $OCF_RESKEY_ip_id) ++ $OCF_RESKEY_ip_id") + + for port in $node_port_ids ; do +- if echo $result | grep -q $port ; then +- floating_ip=$(echo $result | awk '/floating_ip_address/ {print $2}') ++ if echo "$result" | grep -q $port ; then ++ floating_ip=$(echo "$result" | awk '/floating_ip_address/ {print $2}') + ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -S status -n openstack_floating_ip -v $floating_ip + + return $OCF_SUCCESS +@@ -160,7 +163,7 @@ osflip_stop() { + return $OCF_SUCCESS + fi + +- if ! $OCF_RESKEY_openstackcli floating ip unset --port $OCF_RESKEY_ip_id ; then ++ if ! run_openstackcli "floating ip unset --port $OCF_RESKEY_ip_id"; then + return $OCF_ERR_GENERIC + fi + +@@ -194,7 +197,7 @@ osflip_start() { + + ocf_log info "Moving IP address $OCF_RESKEY_ip_id to port ID $node_port_id" + +- $OCF_RESKEY_openstackcli floating ip set --port $node_port_id $OCF_RESKEY_ip_id ++ run_openstackcli "floating ip set --port $node_port_id $OCF_RESKEY_ip_id" + if [ $? != $OCF_SUCCESS ]; then + ocf_log error "$OCF_RESKEY_ip_id Cannot be set to port $node_port_id" + return $OCF_ERR_GENERIC +diff --git a/heartbeat/openstack-info.in b/heartbeat/openstack-info.in +index f3a59fc7a..6502f1df1 100755 +--- a/heartbeat/openstack-info.in ++++ b/heartbeat/openstack-info.in +@@ -119,9 +119,7 @@ END + ####################################################################### + + OSInfoStats() { +- local result + local value +- local node + local node_id + + get_config +@@ -141,31 +139,33 @@ OSInfoStats() { + ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_id -v "$node_id" + + # Nova data: flavor +- value=$($OCF_RESKEY_openstackcli server show \ ++ value=$(run_openstackcli "server show \ + --format value \ + --column flavor \ +- $node_id) ++ $node_id") + + ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_flavor -v "$value" + + # Nova data: availability zone +- value=$($OCF_RESKEY_openstackcli server show \ ++ value=$(run_openstackcli "server show \ + --format value \ + --column OS-EXT-AZ:availability_zone \ +- $node_id) ++ $node_id") + + ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_az -v "$value" + + # Network data: ports + value="" +- for port_id in $($OCF_RESKEY_openstackcli port list \ ++ for port_id in $(run_openstackcli "port list \ + --format value \ + --column id \ +- --server $node_id); do +- subnet_id=$($OCF_RESKEY_openstackcli port show \ ++ --server $node_id"); do ++ subnet_result=$(run_openstackcli "port show \ + --format json \ + --column fixed_ips \ +- ${port_id} | grep -P '\"subnet_id\": \".*\",$' | ++ ${port_id}") ++ subnet_id=$(echo "$subnet_result" | ++ grep -P '\"subnet_id\": \".*\",$' | + grep -P -o '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}') + value="${value}${subnet_id}:${port_id}," + done +diff --git a/heartbeat/openstack-virtual-ip b/heartbeat/openstack-virtual-ip +index c654d980a..361357d55 100755 +--- a/heartbeat/openstack-virtual-ip ++++ b/heartbeat/openstack-virtual-ip +@@ -132,11 +132,11 @@ osvip_monitor() { + + node_port_id=$(osvip_port_id) + +- result=$($OCF_RESKEY_openstackcli port show \ ++ result=$(run_openstackcli "port show \ + --format value \ + --column allowed_address_pairs \ +- ${node_port_id}) +- if echo $result | grep -q "$OCF_RESKEY_ip"; then ++ ${node_port_id}") ++ if echo "$result" | grep -q "$OCF_RESKEY_ip"; then + ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -S status -n openstack_virtual_ip -v $OCF_RESKEY_ip + + return $OCF_SUCCESS +@@ -158,20 +158,20 @@ osvip_stop() { + return $OCF_SUCCESS + fi + +- mac_address=$($OCF_RESKEY_openstackcli port show \ ++ mac_address=$(run_openstackcli "port show \ + --format value \ + --column mac_address \ +- $node_port_id) +- echo ${mac_address} | grep -q -P "^([0-9a-f]{2}:){5}[0-9a-f]{2}$" ++ $node_port_id") ++ echo "${mac_address}" | grep -q -P "^([0-9a-f]{2}:){5}[0-9a-f]{2}$" + if [ $? -ne 0 ]; then + ocf_log error "MAC address '${mac_address}' is not valid." + return $OCF_ERR_GENERIC + fi + +- if ! $OCF_RESKEY_openstackcli port unset \ ++ if ! run_openstackcli "port unset \ + --allowed-address \ + ip-address=$OCF_RESKEY_ip,mac-address=${mac_address} \ +- $node_port_id; then ++ $node_port_id"; then + return $OCF_ERR_GENERIC + fi + +@@ -196,9 +196,9 @@ osvip_start() { + + ocf_log info "Moving IP address $OCF_RESKEY_ip to port ID $node_port_id" + +- $OCF_RESKEY_openstackcli port set \ ++ run_openstackcli "port set \ + --allowed-address ip-address=$OCF_RESKEY_ip \ +- $node_port_id ++ $node_port_id" + if [ $? != $OCF_SUCCESS ]; then + ocf_log error "$OCF_RESKEY_ip Cannot be set to port $node_port_id" + return $OCF_ERR_GENERIC diff --git a/SOURCES/bz1908146-bz1908147-bz1949114-openstack-agents-fixes.patch b/SOURCES/bz1908146-bz1908147-bz1949114-openstack-agents-fixes.patch new file mode 100644 index 0000000..451fba7 --- /dev/null +++ b/SOURCES/bz1908146-bz1908147-bz1949114-openstack-agents-fixes.patch @@ -0,0 +1,72 @@ +From 64f434014bc198055478a139532c7cc133967c5d Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Fri, 8 Jul 2022 15:41:34 +0200 +Subject: [PATCH] openstack-agents: fixes + +- openstack-cinder-volume: dont do volume_local_check during start/stop-action +- openstack-floating-ip/openstack-virtual-ip: dont fail in validate() + during probe-calls +- openstack-floating-ip: fix awk only catching last id for node_port_ids +--- + heartbeat/openstack-cinder-volume | 2 +- + heartbeat/openstack-floating-ip | 4 ++-- + heartbeat/openstack-virtual-ip | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/heartbeat/openstack-cinder-volume b/heartbeat/openstack-cinder-volume +index cc12e58ae..19bf04faf 100755 +--- a/heartbeat/openstack-cinder-volume ++++ b/heartbeat/openstack-cinder-volume +@@ -138,7 +138,7 @@ osvol_monitor() { + + node_id=$(_get_node_id) + +- if ocf_is_true $OCF_RESKEY_volume_local_check ; then ++ if [ "$__OCF_ACTION" = "monitor" ] && ocf_is_true $OCF_RESKEY_volume_local_check ; then + # + # Is the volue attached? + # We check the local devices +diff --git a/heartbeat/openstack-floating-ip b/heartbeat/openstack-floating-ip +index 8c135cc24..6e2895654 100755 +--- a/heartbeat/openstack-floating-ip ++++ b/heartbeat/openstack-floating-ip +@@ -111,7 +111,7 @@ osflip_validate() { + fi + + ${HA_SBIN_DIR}/attrd_updater --query -n openstack_ports -N $(crm_node -n) > /dev/null 2>&1 +- if [ $? -ne 0 ] ; then ++ if [ $? -ne 0 ] && ! ocf_is_probe; then + ocf_log warn "attr_updater failed to get openstack_ports attribute of node $OCF_RESOURCE_INSTANCE" + return $OCF_ERR_GENERIC + fi +@@ -129,7 +129,7 @@ osflip_monitor() { + node_port_ids=$(${HA_SBIN_DIR}/attrd_updater --query -n openstack_ports -N $(crm_node -n) \ + | awk -F= '{gsub("\"","");print $NF}' \ + | tr ',' ' ' \ +- | awk -F: '{print $NF}') ++ | awk '{gsub("[^ ]*:", "");print}') + + # Is the IP active and attached? + result=$($OCF_RESKEY_openstackcli floating ip show \ +diff --git a/heartbeat/openstack-virtual-ip b/heartbeat/openstack-virtual-ip +index a1084c420..c654d980a 100755 +--- a/heartbeat/openstack-virtual-ip ++++ b/heartbeat/openstack-virtual-ip +@@ -119,7 +119,7 @@ osvip_validate() { + get_config + + ${HA_SBIN_DIR}/attrd_updater --query -n openstack_ports -N $(crm_node -n) > /dev/null 2>&1 +- if [ $? -ne 0 ] ; then ++ if [ $? -ne 0 ] && ! ocf_is_probe; then + ocf_log warn "attr_updater failed to get openstack_ports attribute of node $OCF_RESOURCE_INSTANCE" + return $OCF_ERR_GENERIC + fi +@@ -136,7 +136,7 @@ osvip_monitor() { + --format value \ + --column allowed_address_pairs \ + ${node_port_id}) +- if echo $result | grep -q $OCF_RESKEY_ip ; then ++ if echo $result | grep -q "$OCF_RESKEY_ip"; then + ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -S status -n openstack_virtual_ip -v $OCF_RESKEY_ip + + return $OCF_SUCCESS diff --git a/SOURCES/bz1908148-openstack-info-fix-bashism.patch b/SOURCES/bz1908148-openstack-info-fix-bashism.patch new file mode 100644 index 0000000..4f78d54 --- /dev/null +++ b/SOURCES/bz1908148-openstack-info-fix-bashism.patch @@ -0,0 +1,26 @@ +From 8b1d3257e5176a2f50a843a21888c4b4f51f370b Mon Sep 17 00:00:00 2001 +From: Valentin Vidic +Date: Sun, 3 Apr 2022 20:31:50 +0200 +Subject: [PATCH] openstack-info: fix bashism + +Also simplify striping of trailing comma. +--- + heartbeat/openstack-info.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/heartbeat/openstack-info.in b/heartbeat/openstack-info.in +index f6dc1ee4d..f3a59fc7a 100755 +--- a/heartbeat/openstack-info.in ++++ b/heartbeat/openstack-info.in +@@ -167,9 +167,9 @@ OSInfoStats() { + --column fixed_ips \ + ${port_id} | grep -P '\"subnet_id\": \".*\",$' | + grep -P -o '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}') +- value+="${subnet_id}:${port_id}," ++ value="${value}${subnet_id}:${port_id}," + done +- value=$(echo ${value} | sed -e 's/,$//g') ++ value=${value%,} + + ${HA_SBIN_DIR}/attrd_updater ${OCF_RESKEY_delay} -n openstack_ports -v "$value" + diff --git a/SOURCES/bz2103370-ocf-tester-1-update.patch b/SOURCES/bz2103370-ocf-tester-1-update.patch new file mode 100644 index 0000000..0e32ed2 --- /dev/null +++ b/SOURCES/bz2103370-ocf-tester-1-update.patch @@ -0,0 +1,39 @@ +From 46e8d346ca4803245f51a157591c4df1126d3b49 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Tue, 12 Jul 2022 12:45:52 +0200 +Subject: [PATCH] ocf-tester: use promotable terms + +--- + tools/ocf-tester.in | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tools/ocf-tester.in b/tools/ocf-tester.in +index 10822a5a06..f1703ba1b7 100755 +--- a/tools/ocf-tester.in ++++ b/tools/ocf-tester.in +@@ -295,10 +295,10 @@ if [ $rc -eq 3 ]; then + + elif [ $rc -eq 8 ]; then + test_command demote "Cleanup, demote" +- assert $? 0 "Your agent was a master and could not be demoted" 1 ++ assert $? 0 "Your agent was promoted and could not be demoted" 1 + + test_command stop "Cleanup, stop" +- assert $? 0 "Your agent was a master and could not be stopped" 1 ++ assert $? 0 "Your agent was promoted and could not be stopped" 1 + + elif [ $rc -ne 7 ]; then + test_command stop +@@ -370,10 +370,10 @@ if [ $has_promote -eq 1 -a $has_demote -eq 1 ]; then + assert $? 0 "Demote failed" 1 + + elif [ $has_promote -eq 0 -a $has_demote -eq 0 ]; then +- info "* Your agent does not support master/slave (optional)" ++ info "* Your agent does not support promotable clones (optional)" + + else +- echo "* Your agent partially supports master/slave" ++ echo "* Your agent partially supports promotable clones" + num_errors=`expr $num_errors + 1` + fi + diff --git a/SOURCES/bz2103370-ocf-tester-2-remove-deprecated-lrmd-lrmadmin-code.patch b/SOURCES/bz2103370-ocf-tester-2-remove-deprecated-lrmd-lrmadmin-code.patch new file mode 100644 index 0000000..a932397 --- /dev/null +++ b/SOURCES/bz2103370-ocf-tester-2-remove-deprecated-lrmd-lrmadmin-code.patch @@ -0,0 +1,166 @@ +From 687aa646852d5fd5d4e811b2ec562ebffa15e23d Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Thu, 14 Jul 2022 14:52:07 +0200 +Subject: [PATCH] ocf-tester: remove deprecated lrmd/lrmadmin code that hasnt + worked since pre-pacemaker days + +--- + tools/ocf-tester.8 | 12 ++----- + tools/ocf-tester.in | 81 --------------------------------------------- + 2 files changed, 2 insertions(+), 91 deletions(-) + +diff --git a/tools/ocf-tester.8 b/tools/ocf-tester.8 +index 850ec0be04..3f398282d2 100644 +--- a/tools/ocf-tester.8 ++++ b/tools/ocf-tester.8 +@@ -1,9 +1,9 @@ +-.TH OCF-TESTER "8" "January 2012" "Tool for testing if a cluster resource is OCF compliant" "System Administration Utilities" ++.TH OCF-TESTER "8" "July 2022" "Tool for testing if a cluster resource is OCF compliant" "System Administration Utilities" + .SH NAME + ocf-tester \- Part of the Linux-HA project + .SH SYNOPSIS + .B ocf-tester +-[\fI-LhvqdX\fR] \fI-n resource_name \fR[\fI-o name=value\fR]\fI* /full/path/to/resource/agent\fR ++[\fI-hvqdX\fR] \fI-n resource_name \fR[\fI-o name=value\fR]\fI* /full/path/to/resource/agent\fR + .SH DESCRIPTION + Tool for testing if a cluster resource is OCF compliant + .SH OPTIONS +@@ -26,11 +26,6 @@ Name of the resource + \fB\-o\fR name=value + Name and value of any parameters required by the agent + .TP +-\fB\-L\fR +-Use lrmadmin/lrmd for tests +-.PP +-Usage: ocf\-tester [\-Lh] \fB\-n\fR resource_name [\-o name=value]* /full/path/to/resource/agent +-.TP + \fB\-h\fR + This text + .TP +@@ -51,6 +46,3 @@ Name of the resource + .TP + \fB\-o\fR name=value + Name and value of any parameters required by the agent +-.TP +-\fB\-L\fR +-Use lrmadmin/lrmd for tests +diff --git a/tools/ocf-tester.in b/tools/ocf-tester.in +index 10822a5a06..15b14e51ea 100755 +--- a/tools/ocf-tester.in ++++ b/tools/ocf-tester.in +@@ -25,8 +25,6 @@ + # Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. + # + +-LRMD=@libdir@/heartbeat/lrmd +-LRMADMIN=@sbindir@/lrmadmin + DATADIR=@datadir@ + METADATA_LINT="xmllint --noout --valid -" + +@@ -61,7 +59,6 @@ usage() { + echo " -X Turn on RA tracing (expect large output)" + echo " -n name Name of the resource" + echo " -o name=value Name and value of any parameters required by the agent" +- echo " -L Use lrmadmin/lrmd for tests" + exit $1 + } + +@@ -104,7 +101,6 @@ while test "$done" = "0"; do + -o) name=${2%%=*}; value=${2#*=}; + lrm_ra_args="$lrm_ra_args $2"; + ra_args="$ra_args OCF_RESKEY_$name='$value'"; shift; shift;; +- -L) use_lrmd=1; shift;; + -v) verbose=1; shift;; + -d) export HA_debug=1; shift;; + -X) export OCF_TRACE_RA=1; verbose=1; shift;; +@@ -140,79 +136,6 @@ stopped_rc=7 + has_demote=1 + has_promote=1 + +-start_lrmd() { +- lrmd_timeout=0 +- lrmd_interval=0 +- lrmd_target_rc=EVERYTIME +- lrmd_started="" +- $LRMD -s 2>/dev/null +- rc=$? +- if [ $rc -eq 3 ]; then +- lrmd_started=1 +- $LRMD & +- sleep 1 +- $LRMD -s 2>/dev/null +- else +- return $rc +- fi +-} +-add_resource() { +- $LRMADMIN -A $OCF_RESOURCE_INSTANCE \ +- ocf \ +- `basename $agent` \ +- $(basename `dirname $agent`) \ +- $lrm_ra_args > /dev/null +-} +-del_resource() { +- $LRMADMIN -D $OCF_RESOURCE_INSTANCE +-} +-parse_lrmadmin_output() { +- awk ' +-BEGIN{ rc=1; } +-/Waiting for lrmd to callback.../ { n=1; next; } +-n==1 && /----------------operation--------------/ { n++; next; } +-n==2 && /return code:/ { rc=$0; sub("return code: *","",rc); next } +-n==2 && /---------------------------------------/ { +- n++; +- next; +-} +-END{ +- if( n!=3 ) exit 1; +- else exit rc; +-} +-' +-} +-exec_resource() { +- op="$1" +- args="$2" +- $LRMADMIN -E $OCF_RESOURCE_INSTANCE \ +- $op $lrmd_timeout $lrmd_interval \ +- $lrmd_target_rc \ +- $args | parse_lrmadmin_output +-} +- +-if [ "$use_lrmd" = 1 ]; then +- echo "Using lrmd/lrmadmin for all tests" +- start_lrmd || { +- echo "could not start lrmd" >&2 +- exit 1 +- } +- trap ' +- [ "$lrmd_started" = 1 ] && $LRMD -k +- ' EXIT +- add_resource || { +- echo "failed to add resource to lrmd" >&2 +- exit 1 +- } +-fi +- +-lrm_test_command() { +- action="$1" +- msg="$2" +- debug "$msg" +- exec_resource $action "$lrm_ra_args" +-} +- + test_permissions() { + action=meta-data + debug ${1:-"Testing permissions with uid nobody"} +@@ -233,10 +156,6 @@ test_command() { + action=$1; shift + export __OCF_ACTION=$action + msg=${1:-"Testing: $action"} +- if [ "$use_lrmd" = 1 ]; then +- lrm_test_command $action "$msg" +- return $? +- fi + #echo Running: "export $ra_args; $agent $action 2>&1 > /dev/null" + if [ $verbose -eq 0 ]; then + command_output=`$agent $action 2>&1` diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec index 5fe9bc4..8c44a40 100644 --- a/SPECS/resource-agents.spec +++ b/SPECS/resource-agents.spec @@ -69,7 +69,7 @@ Name: resource-agents Summary: Open Source HA Reusable Cluster Resource Scripts Version: 4.9.0 -Release: 22%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist} +Release: 27%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist} License: GPLv2+ and LGPLv2+ URL: https://github.com/ClusterLabs/resource-agents %if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel} @@ -112,6 +112,12 @@ Patch20: bz2049414-Filesystem-1-fix-uuid-label-device-whitespace.patch Patch21: bz2049414-Filesystem-2-improve-uuid-label-device-logic.patch Patch22: bz2086889-lvmlockd-fail-when-use_lvmlockd-not-set.patch Patch23: bz2093214-aws-vpc-move-ip-add-interface-label-support.patch +Patch24: bz1908148-openstack-info-fix-bashism.patch +Patch25: bz1908146-bz1908147-bz1949114-openstack-agents-fixes.patch +Patch26: bz1908146-bz1908147-bz1908148-bz1949114-openstack-agents-warn-when-openstackcli-slow.patch +Patch27: bz2103370-ocf-tester-1-update.patch +Patch28: bz2103370-ocf-tester-2-remove-deprecated-lrmd-lrmadmin-code.patch +Patch29: bz1908146-bz1908147-bz1908148-bz1949114-openstack-agents-set-domain-parameters-default.patch # bundle patches Patch1000: 7-gcp-bundled.patch @@ -315,6 +321,12 @@ exit 1 %patch21 -p1 %patch22 -p1 %patch23 -p1 +%patch24 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch28 -p1 +%patch29 -p1 chmod 755 heartbeat/nova-compute-wait chmod 755 heartbeat/NovaEvacuate @@ -659,6 +671,7 @@ rm -rf %{buildroot} %exclude %{_datadir}/%{name}/ocft/runocft %exclude %{_datadir}/%{name}/ocft/runocft.prereq +%{_sbindir}/ocf-tester %{_sbindir}/ocft %{_includedir}/heartbeat @@ -670,6 +683,7 @@ rm -rf %{buildroot} %endif %{_mandir}/man7/*.7* +%{_mandir}/man8/ocf-tester.8* ### # Supported, but in another sub package @@ -825,9 +839,6 @@ rm -rf %{buildroot} ### # Other excluded files. ### -# This tool has to be updated for the new pacemaker lrmd. -%exclude %{_sbindir}/ocf-tester -%exclude %{_mandir}/man8/ocf-tester.8* # ldirectord is not supported %exclude /etc/ha.d/resource.d/ldirectord %exclude /etc/init.d/ldirectord @@ -891,6 +902,17 @@ ccs_update_schema > /dev/null 2>&1 ||: %{_usr}/lib/ocf/lib/heartbeat/OCF_*.pm %changelog +* Thu Jul 14 2022 Oyvind Albrigtsen - 4.9.0-27 +- ocf-tester: add testing tool + + Resolves: rhbz#2103370 + +* Thu Jul 14 2022 Oyvind Albrigtsen - 4.9.0-26 +- openstack-cinder-volume/openstack-floating-ip/openstack-info/ + openstack-virtual-ip: new resource agents + + Resolves: rhbz#1908146, rhbz#1908147, rhbz#1908148, rhbz#1949114 + * Thu Jun 16 2022 Oyvind Albrigtsen - 4.9.0-22 - gcp-vpc-move-route/gcp-vpc-move-vip: upgrade bundled python-httplib2 to fix SSL issue @@ -918,12 +940,6 @@ ccs_update_schema > /dev/null 2>&1 ||: Resolves: rhbz#2072043 -* Wed Mar 16 2022 Oyvind Albrigtsen - 4.9.0-17 -- openstack-cinder-volume/openstack-floating-ip/openstack-info/ - openstack-virtual-ip: new resource agents - - Resolves: rhbz#1908146, rhbz#1908147, rhbz#1908148, rhbz#1949114 - * Thu Mar 3 2022 Oyvind Albrigtsen - 4.9.0-16 - IPsrcaddr: add warning about possible issues when used with DHCP, and add error message when matching route not found