diff --git a/.gitignore b/.gitignore index a293e03..9642254 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -SOURCES/pcp-6.0.1.src.tar.gz -SOURCES/redhat-bugzilla-2219731-hacluster-metrics.patch +SOURCES/pcp-6.0.5.src.tar.gz diff --git a/.pcp.metadata b/.pcp.metadata index b5e38e2..4842a31 100644 --- a/.pcp.metadata +++ b/.pcp.metadata @@ -1,2 +1 @@ -4f405e26a6c651b2f094134e0648cd5fd201d310 SOURCES/pcp-6.0.1.src.tar.gz -bb84c58586e078343c975ed61a8b53d4fd4393e8 SOURCES/redhat-bugzilla-2219731-hacluster-metrics.patch +b6fccadd38606aa79ef36fdad30947fb3aadee55 SOURCES/pcp-6.0.5.src.tar.gz diff --git a/SOURCES/redhat-bugzilla-2117074-ppc_arm_vmlinux.h.patch b/SOURCES/redhat-bugzilla-2117074-ppc_arm_vmlinux.h.patch deleted file mode 100644 index 90ecd66..0000000 --- a/SOURCES/redhat-bugzilla-2117074-ppc_arm_vmlinux.h.patch +++ /dev/null @@ -1,88 +0,0 @@ -diff --git a/vendor/github.com/iovisor/bcc/libbpf-tools/arm64/vmlinux_510.h b/vendor/github.com/iovisor/bcc/libbpf-tools/arm64/vmlinux_510.h -index f84b1347bf..3c032f5230 100644 ---- a/vendor/github.com/iovisor/bcc/libbpf-tools/arm64/vmlinux_510.h -+++ b/vendor/github.com/iovisor/bcc/libbpf-tools/arm64/vmlinux_510.h -@@ -1678,6 +1678,7 @@ struct perf_event { - int pending_wakeup; - int pending_kill; - int pending_disable; -+ long unsigned int pending_addr; - struct irq_work pending; - atomic_t event_limit; - struct perf_addr_filters_head addr_filters; -@@ -1693,6 +1694,7 @@ struct perf_event { - void *overflow_handler_context; - perf_overflow_handler_t orig_overflow_handler; - struct bpf_prog *prog; -+ u64 bpf_cookie; - struct trace_event_call *tp_event; - struct event_filter *filter; - struct ftrace_ops ftrace_ops; -@@ -26070,7 +26072,10 @@ enum bpf_link_type { - BPF_LINK_TYPE_ITER = 4, - BPF_LINK_TYPE_NETNS = 5, - BPF_LINK_TYPE_XDP = 6, -- MAX_BPF_LINK_TYPE = 7, -+ BPF_LINK_TYPE_PERF_EVENT = 7, -+ BPF_LINK_TYPE_KPROBE_MULTI = 8, -+ BPF_LINK_TYPE_STRUCT_OPS = 9, -+ MAX_BPF_LINK_TYPE = 10, - }; - - struct bpf_link_info { -@@ -30363,6 +30368,11 @@ struct bpf_raw_tp_link { - struct bpf_raw_event_map *btp; - }; - -+struct bpf_perf_link { -+ struct bpf_link link; -+ struct file *perf_file; -+}; -+ - struct btf_member { - __u32 name_off; - __u32 type; -diff --git a/vendor/github.com/iovisor/bcc/libbpf-tools/powerpc/vmlinux_510.h b/vendor/github.com/iovisor/bcc/libbpf-tools/powerpc/vmlinux_510.h -index 3b1b0127d1..052db391d4 100644 ---- a/vendor/github.com/iovisor/bcc/libbpf-tools/powerpc/vmlinux_510.h -+++ b/vendor/github.com/iovisor/bcc/libbpf-tools/powerpc/vmlinux_510.h -@@ -4345,6 +4345,7 @@ struct perf_event { - int pending_wakeup; - int pending_kill; - int pending_disable; -+ long unsigned int pending_addr; - struct irq_work pending; - atomic_t event_limit; - struct perf_addr_filters_head addr_filters; -@@ -4360,6 +4361,7 @@ struct perf_event { - void *overflow_handler_context; - perf_overflow_handler_t orig_overflow_handler; - struct bpf_prog *prog; -+ u64 bpf_cookie; - struct trace_event_call *tp_event; - struct event_filter *filter; - struct ftrace_ops ftrace_ops; -@@ -36449,7 +36451,10 @@ enum bpf_link_type { - BPF_LINK_TYPE_ITER = 4, - BPF_LINK_TYPE_NETNS = 5, - BPF_LINK_TYPE_XDP = 6, -- MAX_BPF_LINK_TYPE = 7, -+ BPF_LINK_TYPE_PERF_EVENT = 7, -+ BPF_LINK_TYPE_KPROBE_MULTI = 8, -+ BPF_LINK_TYPE_STRUCT_OPS = 9, -+ MAX_BPF_LINK_TYPE = 10, - }; - - struct bpf_link_info { -@@ -40756,6 +40761,11 @@ struct bpf_raw_tp_link { - struct bpf_raw_event_map *btp; - }; - -+struct bpf_perf_link { -+ struct bpf_link link; -+ struct file *perf_file; -+}; -+ - struct btf_member { - __u32 name_off; - __u32 type; diff --git a/SOURCES/redhat-bugzilla-2117074-vendored_vmlinux.h.patch b/SOURCES/redhat-bugzilla-2117074-vendored_vmlinux.h.patch deleted file mode 100644 index 7b01f83..0000000 --- a/SOURCES/redhat-bugzilla-2117074-vendored_vmlinux.h.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit 23bfdcbac0b0fb7bd33f092c6f2ad56889480335 -Author: Andreas Gerstmayr -Date: Thu Oct 27 14:22:37 2022 +0200 - - build: use vendored vmlinux.h when compiling bpftool - -diff --git a/vendor/GNUmakefile b/vendor/GNUmakefile -index a0c29d4b45..57151e4671 100644 ---- a/vendor/GNUmakefile -+++ b/vendor/GNUmakefile -@@ -3,7 +3,7 @@ include $(TOPDIR)/src/include/builddefs - - default_pcp default: - ifeq "$(PMDA_BPF)" "true" -- $(MAKE) -C github.com/libbpf/bpftool/src -+ $(MAKE) -C github.com/libbpf/bpftool/src VMLINUX_H=$(PMDABPF_VMLINUXH) - endif - - install_pcp install: diff --git a/SOURCES/redhat-bugzilla-2175602.patch b/SOURCES/redhat-bugzilla-2175602.patch new file mode 100644 index 0000000..2d01881 --- /dev/null +++ b/SOURCES/redhat-bugzilla-2175602.patch @@ -0,0 +1,69 @@ +commit e97d64cfab956e3542a0f25442086ee2fd74d9a5 +Author: Nathan Scott +Date: Tue Jul 18 16:22:30 2023 +1000 + + pmieconf: move test_action from primary into a separate group + + Problem with using primary is that it is automatically enabled + as part of the primary pmie startup and thats not whats needed + for this diagnostic rule. + + Resolves Red Hat BZ #2223348 + +diff --git a/src/pmieconf/.gitignore b/src/pmieconf/.gitignore +index 3c0b7b51ef..0670d80057 100644 +--- a/src/pmieconf/.gitignore ++++ b/src/pmieconf/.gitignore +@@ -9,6 +9,7 @@ perdisk/GNUmakefile + pernetif/GNUmakefile + power/GNUmakefile + primary/GNUmakefile ++testing/GNUmakefile + zeroconf/GNUmakefile + pmieconf + pmieconf.static +diff --git a/src/pmieconf/GNUmakefile b/src/pmieconf/GNUmakefile +index 567d94dce1..7a82e45a28 100644 +--- a/src/pmieconf/GNUmakefile ++++ b/src/pmieconf/GNUmakefile +@@ -18,7 +18,7 @@ include $(TOPDIR)/src/include/builddefs + include $(TOPDIR)/src/libpcp/src/GNUlibrarydefs + + MKFILE_SUBDIRS = cpu entropy filesys memory network percpu perdisk pernetif \ +- power global primary zeroconf ++ power global primary testing zeroconf + SUBDIRS = $(MKFILE_SUBDIRS) + + CMDTARGET = pmieconf$(EXECSUFFIX) +diff --git a/src/pmieconf/primary/localdefs b/src/pmieconf/primary/localdefs +index 3d51dd69d9..ca21fca8b5 100644 +--- a/src/pmieconf/primary/localdefs ++++ b/src/pmieconf/primary/localdefs +@@ -1,2 +1,2 @@ +-ALL_RULES = pmda_status test_actions ++ALL_RULES = pmda_status + LOCAL_RULES = $(ALL_RULES) +diff --git a/src/pmieconf/testing/localdefs b/src/pmieconf/testing/localdefs +new file mode 100644 +index 0000000000..a2af94f1c0 +--- /dev/null ++++ b/src/pmieconf/testing/localdefs +@@ -0,0 +1,2 @@ ++ALL_RULES = test_actions ++LOCAL_RULES = $(ALL_RULES) +diff --git a/src/pmieconf/primary/test_actions b/src/pmieconf/testing/test_actions +similarity index 97% +rename from src/pmieconf/primary/test_actions +rename to src/pmieconf/testing/test_actions +index cc0ee1f7cb..56c89787a0 100644 +--- a/src/pmieconf/primary/test_actions ++++ b/src/pmieconf/testing/test_actions +@@ -2,7 +2,7 @@ + # --- DO NOT MODIFY THIS FILE --- see pmieconf(5) + # + +-rule primary.test_actions ++rule testing.test_actions + default = "$rule$" + predicate = "hinv.ncpu > 0" + enabled = no diff --git a/SOURCES/redhat-bugzilla-2185803.patch b/SOURCES/redhat-bugzilla-2185803.patch new file mode 100644 index 0000000..995c714 --- /dev/null +++ b/SOURCES/redhat-bugzilla-2185803.patch @@ -0,0 +1,94 @@ +commit b4869520fd98f8b2ad09d39fb4466100d508b926 +Author: Nathan Scott +Date: Mon Aug 7 13:04:38 2023 +1000 + + pmieconf: update webhook action for better EDA integration + + The pmieconf webhook action was initially created for Event + Driven Ansible (EDA); two issues have been resolved related + - using the JSON key "values" conflicts with something deep + down in EDA that also interprets this JSON. Use "message", + which is more descriptive of the content anyway. + - there is no easily accessible hostname JSON key - add one + via the usual %h pmie action string expansion. + + Related to Red Hat BZ #2185803 + +diff --git a/qa/1567 b/qa/1567 +index ba90aa9cc8..10c1756ca4 100755 +--- a/qa/1567 ++++ b/qa/1567 +@@ -53,7 +53,7 @@ sleep 2 # let nc start up + ( sleep 2; $signal $pid1 ) >>$seq.full 2>&1 & + + echo "pmie webhook invocation" | tee -a $here/$seq.full +-pmie_webhook "http://localhost:$port/webhook|Busy CPU|100%hosta|100%@hostb" 2> $tmp.webhook.err ++pmie_webhook "http://localhost:$port/webhook|Busy CPU|www.abc.com|100%@www.abc.com" 2> $tmp.webhook.err + cat $tmp.webhook.err >> $here/$seq.full + echo + +diff --git a/qa/1567.out b/qa/1567.out +index e3fce64bb3..153aec9581 100644 +--- a/qa/1567.out ++++ b/qa/1567.out +@@ -9,5 +9,5 @@ Content-Type: application/json + Host: localhost:PORT + POST /webhook HTTP/1.1 + User-Agent: curl VERSION +-{"pcp":{"pmie":{"rule":"Busy CPU","values":"100%hosta 100%@hostb"}}} ++{"pcp":{"pmie":{"rule":"Busy CPU","hostname":"www.abc.com","message":"100%@www.abc.com"}}} + +diff --git a/src/pmieconf/global/pcp_actions b/src/pmieconf/global/pcp_actions +index 476bef0553..61e787f21e 100644 +--- a/src/pmieconf/global/pcp_actions ++++ b/src/pmieconf/global/pcp_actions +@@ -95,7 +95,7 @@ the rule condition is true."; + + shell global.webhook_action + enabled = no +- default = "pmie_webhook '$webhook_endpoint$|$rule$^|$action_expand$^'" ++ default = "pmie_webhook '$webhook_endpoint$|$rule$^|%h|$action_expand$^'" + help = + "HTTP POST message will be sent to \"webhook_endpoint\" when a + rule condition is true. The message will be in JSON format."; +diff --git a/src/pmieconf/pmie_webhook b/src/pmieconf/pmie_webhook +index 87193fca60..8d386f1ae6 100755 +--- a/src/pmieconf/pmie_webhook ++++ b/src/pmieconf/pmie_webhook +@@ -19,7 +19,8 @@ + # + # "line" 1 - HTTP/HTTPS endpoint, as passed to a http client + # "line" 2 - pmie rule name +-# "line" 3,4,.. - values from predicate evaluation [optional] ++# "line" 3 - rule evaluated for hostname ++# "line" 4,5,.. - values from predicate evaluation [optional] + + # source the PCP configuration environment variables + . /etc/pcp.env +@@ -28,7 +29,7 @@ prog=`basename $0` + + if [ $# -ne 1 ] + then +- echo "Usage: $prog url|rule|message" ++ echo "Usage: $prog url|rule|hostname|message" + exit 1 + fi + +@@ -46,14 +47,14 @@ if [ -z "$CURL" ] ; then + fi + + cat <= 33 || 0%{?rhel} > 8 -%ifarch x86_64 ppc64 ppc64le aarch64 +%if 0%{?fedora} >= 37 || 0%{?rhel} > 8 +%ifarch x86_64 %{power64} aarch64 %global disable_bpf 0 %else %global disable_bpf 1 @@ -281,7 +279,7 @@ BuildRequires: perl-devel perl(strict) BuildRequires: perl(ExtUtils::MakeMaker) perl(LWP::UserAgent) perl(JSON) BuildRequires: perl(Time::HiRes) perl(Digest::MD5) BuildRequires: perl(XML::LibXML) perl(File::Slurp) -BuildRequires: man %{_hostname_executable} +BuildRequires: %{_hostname_executable} %if !%{disable_systemd} BuildRequires: systemd-devel %endif @@ -2290,10 +2288,7 @@ updated policy package. %prep -%setup -q -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 +%autosetup -p1 %build # the buildsubdir macro gets defined in %%setup and is apparently only available in the next step (i.e. the %%build step) @@ -3369,10 +3364,27 @@ fi %files zeroconf -f pcp-zeroconf-files.rpm %changelog -* Mon Jul 17 2023 Nathan Scott - 6.0.1-5 -- Fix hacluster metrics with current Pacemaker (BZ 2222858) +* Mon Aug 07 2023 Nathan Scott - 6.0.5-4 +- Improve Event Driven Ansible integration (BZ 2185803) + +* Fri Jul 28 2023 Stan Cox - 6.0.5-3 +- Pickup the new gating configuration + +* Mon Jun 26 2023 Nathan Scott - 6.0.5-2 +- Resolve regression in pmieconf from rebase (BZ 2175602) + +* Mon Jun 26 2023 Nathan Scott - 6.0.5-1 +- Rebase to latest stable version of PCP (BZ 2175602) + +* Thu Jun 15 2023 Nathan Scott - 6.0.4-2 +- Resolve an selinux issue with pmlogger_daily (BZ 2208154) + +* Mon May 15 2023 Nathan Scott - 6.0.4-1 +- Ensure pmcd.conf not rewritten needlessly (BZ 2166819) +- Add support for pmieconf webhook action (BZ 2185803) +- Rebase to latest stable version of PCP (BZ 2175602) -* Wed Mar 15 2023 MSVSphere Packaging Team - 5.3.7-7 +* Wed Mar 15 2023 MSVSphere Packaging Team - 6.0.1-4 - Rebuilt for MSVSphere 9.1. * Tue Jan 17 2023 Nathan Scott - 6.0.1-4