commit
44eba65964
@ -0,0 +1,3 @@
|
|||||||
|
SOURCES/rhc-0.2.1.tar.gz
|
||||||
|
SOURCES/yggdrasil-0.2.1.tar.gz
|
||||||
|
SOURCES/yggdrasil-worker-package-manager-0.1.0.tar.gz
|
@ -0,0 +1,3 @@
|
|||||||
|
2209827b582aff0a0ddea854c116de223e8ee604 SOURCES/rhc-0.2.1.tar.gz
|
||||||
|
55a3abc8515dede8b7ff41905447e08f5e6c01d7 SOURCES/yggdrasil-0.2.1.tar.gz
|
||||||
|
0582350e1001af0d608772860045f7f4964aa321 SOURCES/yggdrasil-worker-package-manager-0.1.0.tar.gz
|
@ -0,0 +1,28 @@
|
|||||||
|
--- main.go.orig 2022-02-11 15:41:53.199642591 -0500
|
||||||
|
+++ main.go 2022-02-11 15:42:43.738219604 -0500
|
||||||
|
@@ -6,6 +6,7 @@
|
||||||
|
"fmt"
|
||||||
|
"net"
|
||||||
|
"os"
|
||||||
|
+ "path/filepath"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
@@ -21,7 +22,7 @@
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
- fs := flag.NewFlagSet("yggd-package-manager-worker", flag.ExitOnError)
|
||||||
|
+ fs := flag.NewFlagSet(filepath.Base(os.Args[0]), flag.ExitOnError)
|
||||||
|
|
||||||
|
var (
|
||||||
|
socketAddr = ""
|
||||||
|
@@ -32,7 +33,7 @@
|
||||||
|
fs.StringVar(&socketAddr, "socket-addr", "", "dispatcher socket address")
|
||||||
|
fs.Var(&logLevel, "log-level", "log verbosity level (error (default), warn, info, debug, trace)")
|
||||||
|
fs.Var(&allowPatterns, "allow-pattern", "regular expression pattern to allow package operations\n(can be specified multiple times)")
|
||||||
|
- _ = fs.String("config", "", "path to `file` containing configuration values (optional)")
|
||||||
|
+ _ = fs.String("config", filepath.Join("/", "etc", "rhc", "workers", "rhc-package-manager.toml"), "path to `file` containing configuration values (optional)")
|
||||||
|
|
||||||
|
ff.Parse(fs, os.Args[1:], ff.WithEnvVarPrefix("YGG"), ff.WithConfigFileFlag("config"), ff.WithConfigFileParser(fftoml.Parser))
|
||||||
|
|
@ -0,0 +1,102 @@
|
|||||||
|
From 0e3ce2489f92cc037936866a1d6d7901fb14d440 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Link Dupont <link@sub-pop.net>
|
||||||
|
Date: Mon, 14 Feb 2022 15:15:54 -0500
|
||||||
|
Subject: [PATCH] fix: collect error messages during disconnect
|
||||||
|
|
||||||
|
If an error occurs during disconnect, the error is collected and
|
||||||
|
reported at the end of the operation instead of aborting the operation
|
||||||
|
part-way through.
|
||||||
|
|
||||||
|
Fixes: ESSNTL-2281
|
||||||
|
---
|
||||||
|
main.go | 42 +++++++++++++++++++++++++++++++++---------
|
||||||
|
1 file changed, 33 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/main.go b/main.go
|
||||||
|
index 0e6cc07..db5a34d 100644
|
||||||
|
--- a/main.go
|
||||||
|
+++ b/main.go
|
||||||
|
@@ -6,6 +6,7 @@ import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
+ "text/tabwriter"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"git.sr.ht/~spc/go-log"
|
||||||
|
@@ -18,6 +19,7 @@ import (
|
||||||
|
|
||||||
|
const successPrefix = "\033[32m●\033[0m"
|
||||||
|
const failPrefix = "\033[31m●\033[0m"
|
||||||
|
+const errorPrefix = "\033[31m!\033[0m"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
app := cli.NewApp()
|
||||||
|
@@ -169,6 +171,7 @@ func main() {
|
||||||
|
UsageText: fmt.Sprintf("%v disconnect", app.Name),
|
||||||
|
Description: fmt.Sprintf("The disconnect command disconnects the system from Red Hat Subscription Management, Red Hat Insights and %v and deactivates the %v daemon. %v will no longer be able to interact with the system.", Provider, BrandName, Provider),
|
||||||
|
Action: func(c *cli.Context) error {
|
||||||
|
+ errorMessages := make(map[string]error)
|
||||||
|
hostname, err := os.Hostname()
|
||||||
|
if err != nil {
|
||||||
|
return cli.Exit(err, 1)
|
||||||
|
@@ -180,29 +183,50 @@ func main() {
|
||||||
|
s.Suffix = fmt.Sprintf(" Deactivating the %v daemon", BrandName)
|
||||||
|
s.Start()
|
||||||
|
if err := deactivate(); err != nil {
|
||||||
|
- return cli.Exit(err, 1)
|
||||||
|
+ errorMessages[BrandName] = fmt.Errorf("cannot deactivate daemon: %w", err)
|
||||||
|
+ s.Stop()
|
||||||
|
+ fmt.Printf(errorPrefix+" Cannot deactivate the %v daemon\n", BrandName)
|
||||||
|
+ } else {
|
||||||
|
+ s.Stop()
|
||||||
|
+ fmt.Printf(failPrefix+" Deactivated the %v daemon\n", BrandName)
|
||||||
|
}
|
||||||
|
- s.Stop()
|
||||||
|
- fmt.Printf(failPrefix+" Deactivated the %v daemon\n", BrandName)
|
||||||
|
|
||||||
|
s.Suffix = " Disconnecting from Red Hat Insights..."
|
||||||
|
s.Start()
|
||||||
|
if err := unregisterInsights(); err != nil {
|
||||||
|
- return cli.Exit(err, 1)
|
||||||
|
+ errorMessages["insights"] = fmt.Errorf("cannot disconnect from Red Hat Insights: %w", err)
|
||||||
|
+ s.Stop()
|
||||||
|
+ fmt.Printf(errorPrefix + " Cannot disconnect from Red Hat Insights\n")
|
||||||
|
+ } else {
|
||||||
|
+ s.Stop()
|
||||||
|
+ fmt.Print(failPrefix + " Disconnected from Red Hat Insights\n")
|
||||||
|
}
|
||||||
|
- s.Stop()
|
||||||
|
- fmt.Print(failPrefix + " Disconnected from Red Hat Insights\n")
|
||||||
|
|
||||||
|
s.Suffix = " Disconnecting from Red Hat Subscription Management..."
|
||||||
|
s.Start()
|
||||||
|
if err := unregister(); err != nil {
|
||||||
|
- return cli.Exit(err, 1)
|
||||||
|
+ errorMessages["rhsm"] = fmt.Errorf("cannot disconnect from Red Hat Subscription Management: %w", err)
|
||||||
|
+ s.Stop()
|
||||||
|
+ fmt.Printf(errorPrefix + " Cannot disconnect from Red Hat Subscription Management\n")
|
||||||
|
+ } else {
|
||||||
|
+ s.Stop()
|
||||||
|
+ fmt.Printf(failPrefix + " Disconnected from Red Hat Subscription Management\n")
|
||||||
|
}
|
||||||
|
- s.Stop()
|
||||||
|
- fmt.Printf(failPrefix + " Disconnected from Red Hat Subscription Management\n")
|
||||||
|
|
||||||
|
fmt.Printf("\nManage your Red Hat connector systems: https://red.ht/connector\n")
|
||||||
|
|
||||||
|
+ if len(errorMessages) > 0 {
|
||||||
|
+ fmt.Println()
|
||||||
|
+ fmt.Printf("The following errors were encountered during disconnect:\n\n")
|
||||||
|
+ w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0)
|
||||||
|
+ fmt.Fprintln(w, "STEP\tERROR\t")
|
||||||
|
+ for svc, err := range errorMessages {
|
||||||
|
+ fmt.Fprintf(w, "%v\t%v\n", svc, err)
|
||||||
|
+ }
|
||||||
|
+ w.Flush()
|
||||||
|
+ return cli.Exit("", 1)
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
},
|
@ -0,0 +1,6 @@
|
|||||||
|
# rhc global configuration settings
|
||||||
|
|
||||||
|
broker = ["wss://connect.cloud.redhat.com:443"]
|
||||||
|
cert-file = "/etc/pki/consumer/cert.pem"
|
||||||
|
key-file = "/etc/pki/consumer/key.pem"
|
||||||
|
log-level = "error"
|
@ -0,0 +1,5 @@
|
|||||||
|
# regular expression patterns to allow package operations
|
||||||
|
allow-pattern = ["^rhc-worker-playbook$"]
|
||||||
|
|
||||||
|
# log verbosity level (error (default), warn, info, debug, trace)
|
||||||
|
log-level = "error"
|
@ -0,0 +1,212 @@
|
|||||||
|
%define debug_package %{nil}
|
||||||
|
|
||||||
|
%global buildflags -buildmode pie -compiler gc -a -v -x
|
||||||
|
%global goldflags %{expand:-linkmode=external -compressdwarf=false -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '%__global_ldflags'}
|
||||||
|
|
||||||
|
%global yggdrasil_ver 0.2.1
|
||||||
|
%global ygg_pkg_mgr_ver 0.1.0
|
||||||
|
|
||||||
|
Name: rhc
|
||||||
|
Version: 0.2.1
|
||||||
|
Release: 9%{?dist}
|
||||||
|
Epoch: 1
|
||||||
|
Summary: rhc connects the system to Red Hat hosted services
|
||||||
|
License: GPLv3
|
||||||
|
URL: https://github.com/redhatinsights/rhc
|
||||||
|
|
||||||
|
Source0: https://github.com/RedHatInsights/rhc/releases/download/%{version}/%{name}-%{version}.tar.gz
|
||||||
|
Source1: config.toml
|
||||||
|
Source2: https://github.com/RedHatInsights/yggdrasil/releases/download/%{yggdrasil_ver}/yggdrasil-%{yggdrasil_ver}.tar.gz
|
||||||
|
Source3: https://github.com/RedHatInsights/yggdrasil-worker-package-manager/releases/download/%{ygg_pkg_mgr_ver}/yggdrasil-worker-package-manager-%{ygg_pkg_mgr_ver}.tar.gz
|
||||||
|
Source4: rhc-package-manager.toml
|
||||||
|
|
||||||
|
# Fixed upstream https://github.com/RedHatInsights/yggdrasil-worker-package-manager/commit/22105b0016abfc7c743c1eadb0372e4ef93cc65e
|
||||||
|
Patch0: 0001-feat-default-config-file-location.patch
|
||||||
|
# Fixed upstream https://github.com/RedHatInsights/rhc/commit/0e3ce2489f92cc037936866a1d6d7901fb14d440
|
||||||
|
Patch1: 0003-fix-collect-error-messages-during-disconnect.patch
|
||||||
|
|
||||||
|
ExclusiveArch: %{go_arches}
|
||||||
|
|
||||||
|
Recommends: insights-client
|
||||||
|
|
||||||
|
BuildRequires: git
|
||||||
|
BuildRequires: golang
|
||||||
|
BuildRequires: go-rpm-macros
|
||||||
|
BuildRequires: dbus-devel
|
||||||
|
BuildRequires: systemd-devel
|
||||||
|
|
||||||
|
|
||||||
|
%define _description %{expand:%{name} is a client tool and daemon that connects the system to Red Hat hosted
|
||||||
|
services enabling system and subscription management.}
|
||||||
|
|
||||||
|
%description
|
||||||
|
%{_description}
|
||||||
|
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development files for %{name}
|
||||||
|
Requires: %{name} = %{epoch}:%{version}-%{release}
|
||||||
|
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
%{_description}
|
||||||
|
|
||||||
|
This package includes files necessary for building rhc workers.
|
||||||
|
|
||||||
|
|
||||||
|
%global makeflags %{expand:PREFIX=%{_prefix} \\
|
||||||
|
SYSCONFDIR=%{_sysconfdir} \\
|
||||||
|
LOCALSTATEDIR=%{_localstatedir} \\
|
||||||
|
SHORTNAME=%{name} \\
|
||||||
|
LONGNAME=%{name} \\
|
||||||
|
PKGNAME=%{name} \\
|
||||||
|
'BRANDNAME=Red Hat connector' \\
|
||||||
|
TOPICPREFIX=redhat/insights \\
|
||||||
|
VERSION=%{version} \\
|
||||||
|
DATAHOST=cert.cloud.redhat.com \\
|
||||||
|
'PROVIDER=Red Hat'}
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -T -D -c -n %{name} -a 0
|
||||||
|
%setup -T -D -c -n %{name} -a 2
|
||||||
|
%setup -T -D -c -n %{name} -a 3
|
||||||
|
sed -i -e "s/LDFLAGS :=/LDFLAGS ?=/" %{_builddir}/%{name}/yggdrasil-%{yggdrasil_ver}/Makefile
|
||||||
|
sed -i -e "s/LDFLAGS :=/LDFLAGS ?=/" %{_builddir}/%{name}/%{name}-%{version}/Makefile
|
||||||
|
cd %{_builddir}/%{name}/yggdrasil-worker-package-manager
|
||||||
|
%patch0 -p0
|
||||||
|
cd %{_builddir}/%{name}/%{name}-%{version}
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
%set_build_flags
|
||||||
|
export BUILDFLAGS="%{buildflags}"
|
||||||
|
export LDFLAGS="%{goldflags}"
|
||||||
|
cd %{_builddir}/%{name}/yggdrasil-%{yggdrasil_ver}
|
||||||
|
make %{makeflags}
|
||||||
|
|
||||||
|
cd %{_builddir}/%{name}/yggdrasil-worker-package-manager
|
||||||
|
go build %{buildflags} -ldflags="%{goldflags}" -o rhc-package-manager-worker -mod vendor .
|
||||||
|
|
||||||
|
cd %{_builddir}/%{name}/%{name}-%{version}
|
||||||
|
make %{makeflags}
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
%set_build_flags
|
||||||
|
export BUILDFLAGS="%{buildflags}"
|
||||||
|
export LDFLAGS="%{goldflags}"
|
||||||
|
cd %{_builddir}/%{name}/yggdrasil-%{yggdrasil_ver}
|
||||||
|
make %{makeflags} \
|
||||||
|
DESTDIR=%{buildroot} \
|
||||||
|
install
|
||||||
|
|
||||||
|
%{__install} -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/
|
||||||
|
|
||||||
|
cd %{_builddir}/%{name}/yggdrasil-worker-package-manager
|
||||||
|
%{__install} -D -m 755 rhc-package-manager-worker %{buildroot}%{_libexecdir}/%{name}/
|
||||||
|
%{__install} -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/%{name}/workers/rhc-package-manager.toml
|
||||||
|
|
||||||
|
cd %{_builddir}/%{name}/%{name}-%{version}
|
||||||
|
make %{makeflags} \
|
||||||
|
DESTDIR=%{buildroot} \
|
||||||
|
install
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%doc %{name}-%{version}/README.md yggdrasil-%{yggdrasil_ver}/doc/tags.toml
|
||||||
|
%{_bindir}/%{name}
|
||||||
|
%{_sbindir}/%{name}d
|
||||||
|
%config(noreplace) %{_sysconfdir}/%{name}/config.toml
|
||||||
|
%config(noreplace) %{_sysconfdir}/%{name}/workers/rhc-package-manager.toml
|
||||||
|
%{_unitdir}/%{name}d.service
|
||||||
|
%{_datadir}/bash-completion/completions/*
|
||||||
|
%{_mandir}/man1/*
|
||||||
|
%{_libexecdir}/%{name}
|
||||||
|
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_prefix}/share/pkgconfig/%{name}.pc
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Jun 03 2022 Link Dupont <link@redhat.com> - 0.2.1-9
|
||||||
|
- Correct config file installation name (RHBZ#2082689)
|
||||||
|
|
||||||
|
* Fri Jun 03 2022 Link Dupont <link@redhat.com> - 0.2.1-8
|
||||||
|
- Correct default config file name (RHBZ#2082689)
|
||||||
|
|
||||||
|
* Mon May 09 2022 Link Dupont <link@redhat.com> - 0.2.1-7
|
||||||
|
- Correct default config file path (RHBZ#2082689)
|
||||||
|
|
||||||
|
* Thu Mar 17 2022 Link Dupont <link@redhat.com> - 0.2.1-6
|
||||||
|
- Change dependency on insights-client to weak (RHBZ#2064944)
|
||||||
|
|
||||||
|
* Tue Mar 1 2022 Link Dupont <link@redhat.com> - 0.2.1-5
|
||||||
|
- Ensure worker is built with hardening compiler flags (RHBZ#2060539)
|
||||||
|
|
||||||
|
* Tue Feb 22 2022 Link Dupont <link@redhat.com> - 0.2.1-4
|
||||||
|
- Update summary and description (RHBZ#2057029)
|
||||||
|
|
||||||
|
* Tue Feb 15 2022 Link Dupont <link@redhat.com> - 0.2.1-3
|
||||||
|
- Include patch to collect and report errors during disconnect
|
||||||
|
|
||||||
|
* Fri Feb 11 2022 Link Dupont <link@redhat.com> - 0.2.1-2
|
||||||
|
- Include patch to default worker config location
|
||||||
|
|
||||||
|
* Fri Feb 11 2022 Link Dupont <link@redhat.com> - 0.2.1-1
|
||||||
|
- New upstream version
|
||||||
|
|
||||||
|
* Wed Dec 01 2021 Link Dupont <link@redhat.com> - 0.2.0-6
|
||||||
|
- Require full NEVR in devel subpackage
|
||||||
|
|
||||||
|
* Wed Dec 01 2021 Link Dupont <link@redhat.com> - 0.2.0-5
|
||||||
|
- Enable building with PIE and other build flags
|
||||||
|
|
||||||
|
* Fri Sep 24 2021 Link Dupont <link@redhat.com> - 0.2.0-4
|
||||||
|
- Fix an issue reporting workers on reconnect (Resolves: RHBZ#2007767)
|
||||||
|
|
||||||
|
* Wed Sep 1 2021 Link Dupont <link@redhat.com> - 0.2.0-3
|
||||||
|
- Split out development files into subpackage
|
||||||
|
|
||||||
|
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 1:0.2.0-2
|
||||||
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||||
|
Related: rhbz#1991688
|
||||||
|
|
||||||
|
* Mon Jun 28 2021 Link Dupont <link@redhat.com> - 0.2.0-1
|
||||||
|
- New upstream release
|
||||||
|
|
||||||
|
* Fri Jun 25 2021 Link Dupont <link@redhat.com> - 0.1.99-5
|
||||||
|
- Mark config file as such
|
||||||
|
|
||||||
|
* Fri Jun 25 2021 Link Dupont <link@redhat.com> - 0.1.99-4
|
||||||
|
- New upstream snapshot
|
||||||
|
|
||||||
|
* Fri Jun 11 2021 Link Dupont <link@redhat.com> - 0.1.99-3
|
||||||
|
- Build executables as PIE programs
|
||||||
|
|
||||||
|
* Thu Jun 10 2021 Link Dupont <link@redhat.com> - 0.1.99-2
|
||||||
|
- Include missing disttag
|
||||||
|
|
||||||
|
* Tue May 25 2021 Link Dupont <link@redhat.com> - 0.1.99-1
|
||||||
|
- New upstream development release
|
||||||
|
|
||||||
|
* Wed Apr 28 2021 Link Dupont <link@redhat.com> - 0.1.4-2
|
||||||
|
- Rebuild for fixed binutils on aarch64 (Resolves: RHBZ#1954449)
|
||||||
|
|
||||||
|
* Fri Apr 9 2021 Link Dupont <link@redhat.com> - 0.1.4-1
|
||||||
|
- New upstream release
|
||||||
|
|
||||||
|
* Fri Feb 19 2021 Link Dupont <link@redhat.com> - 0.1.2-2
|
||||||
|
- Update default broker URI
|
||||||
|
- Set Epoch to 1
|
||||||
|
|
||||||
|
* Thu Feb 18 2021 Link Dupont <link@redhat.com> - 0.1.2-1
|
||||||
|
- New upstream release
|
||||||
|
|
||||||
|
* Wed Feb 17 2021 Link Dupont <link@redhat.com> - 0.1.1-1
|
||||||
|
- New upstream release
|
||||||
|
|
||||||
|
* Fri Feb 12 2021 Link Dupont <link@redhat.com> - 0.1-1
|
||||||
|
- Initial release
|
Loading…
Reference in new issue