openSUSE Commits
Threads by month
- ----- 2024 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
July 2024
- 1 participants
- 1521 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xed for openSUSE:Factory checked in at 2024-07-04 16:27:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xed (Old)
and /work/SRC/openSUSE:Factory/.xed.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xed"
Thu Jul 4 16:27:06 2024 rev:35 rq:1185290 version:3.6.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/xed/xed.changes 2024-03-17 22:17:54.868606276 +0100
+++ /work/SRC/openSUSE:Factory/.xed.new.2080/xed.changes 2024-07-04 16:28:07.830149819 +0200
@@ -1,0 +2,28 @@
+Tue Jul 2 15:03:29 UTC 2024 - Frantisek Simorda <frantisek.simorda(a)suse.com>
+
+
+-Update to 3.6.3
+ * Update open-uri-context-menu.py (#646)
+ * l10n: Update translations
+
+- Update to 3.6.2
+ * Cancel file loading when closing tab
+ * Use F12 for the minimap
+
+- Update to 3.6.1
+ * Add shortcut to toggle overview map
+ * l10n: Update msgid
+ * Use F10 for the minimap
+ * l10n: Update POT
+
+
+- Update to 3.6.0
+ * added shortcut to duplicate selection
+ * added condition to not save empty doc
+ * removed trailing space char in custom date time
+ * added auto close setting to close window when that last tab is closed
+ * recent files: Don't show a number in front of the filename
+ * l10n: Update POT
+
+
+-------------------------------------------------------------------
Old:
----
xed-3.4.5.tar.gz
New:
----
xed-3.6.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xed.spec ++++++
--- /var/tmp/diff_new_pack.fCX6l2/_old 2024-07-04 16:28:08.298166904 +0200
+++ /var/tmp/diff_new_pack.fCX6l2/_new 2024-07-04 16:28:08.302167050 +0200
@@ -17,7 +17,7 @@
Name: xed
-Version: 3.4.5
+Version: 3.6.3
Release: 0
Summary: A text editor with highlighting
License: GPL-2.0-or-later
++++++ xed-3.4.5.tar.gz -> xed-3.6.3.tar.gz ++++++
++++ 77318 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kubefirst for openSUSE:Factory checked in at 2024-07-04 16:26:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kubefirst (Old)
and /work/SRC/openSUSE:Factory/.kubefirst.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubefirst"
Thu Jul 4 16:26:48 2024 rev:16 rq:1185258 version:2.4.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/kubefirst/kubefirst.changes 2024-06-11 18:31:06.944864266 +0200
+++ /work/SRC/openSUSE:Factory/.kubefirst.new.2080/kubefirst.changes 2024-07-04 16:27:50.069501469 +0200
@@ -1,0 +2,7 @@
+Thu Jul 04 04:49:47 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 2.4.11:
+ * chore: bump launch up version (#2223)
+ * added bubbletea quit method instead of os exit
+
+-------------------------------------------------------------------
Old:
----
kubefirst-2.4.10.obscpio
New:
----
kubefirst-2.4.11.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kubefirst.spec ++++++
--- /var/tmp/diff_new_pack.NAegZS/_old 2024-07-04 16:27:53.033609673 +0200
+++ /var/tmp/diff_new_pack.NAegZS/_new 2024-07-04 16:27:53.037609820 +0200
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: kubefirst
-Version: 2.4.10
+Version: 2.4.11
Release: 0
Summary: CLI for the KubeFirst GitOps Infrastructure & Application Delivery Platform
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.NAegZS/_old 2024-07-04 16:27:53.069610987 +0200
+++ /var/tmp/diff_new_pack.NAegZS/_new 2024-07-04 16:27:53.073611134 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/kubefirst/kubefirst</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v2.4.10</param>
+ <param name="revision">v2.4.11</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.NAegZS/_old 2024-07-04 16:27:53.093611864 +0200
+++ /var/tmp/diff_new_pack.NAegZS/_new 2024-07-04 16:27:53.093611864 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/kubefirst/kubefirst</param>
- <param name="changesrevision">55e58cf642db4e48b11bdede6ba0f0a0d6077b4e</param></service></servicedata>
+ <param name="changesrevision">819d539c291851c1a2a13a29954aa20bc28f5641</param></service></servicedata>
(No newline at EOF)
++++++ kubefirst-2.4.10.obscpio -> kubefirst-2.4.11.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.4.10/cmd/k3d/create.go new/kubefirst-2.4.11/cmd/k3d/create.go
--- old/kubefirst-2.4.10/cmd/k3d/create.go 2024-06-10 21:53:11.000000000 +0200
+++ new/kubefirst-2.4.11/cmd/k3d/create.go 2024-07-04 00:02:00.000000000 +0200
@@ -31,6 +31,7 @@
"github.com/kubefirst/kubefirst/internal/catalog"
"github.com/kubefirst/kubefirst/internal/gitShim"
"github.com/kubefirst/kubefirst/internal/segment"
+ "github.com/kubefirst/kubefirst/internal/progress"
"github.com/kubefirst/kubefirst/internal/utilities"
"github.com/kubefirst/metrics-client/pkg/telemetry"
"github.com/kubefirst/runtime/configs"
@@ -1407,7 +1408,7 @@
reports.LocalHandoffScreenV2(viper.GetString("components.argocd.password"), clusterNameFlag, gitDestDescriptor, cGitOwner, config, ciFlag)
if ciFlag {
- os.Exit(0)
+ progress.Progress.Quit()
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.4.10/cmd/logs.go new/kubefirst-2.4.11/cmd/logs.go
--- old/kubefirst-2.4.10/cmd/logs.go 2024-06-10 21:53:11.000000000 +0200
+++ new/kubefirst-2.4.11/cmd/logs.go 2024-07-04 00:02:00.000000000 +0200
@@ -8,9 +8,9 @@
import (
"fmt"
- "os"
"github.com/kubefirst/kubefirst/internal/provisionLogs"
+ "github.com/kubefirst/kubefirst/internal/progress"
"github.com/nxadm/tail"
"github.com/spf13/cobra"
"github.com/spf13/viper"
@@ -28,7 +28,7 @@
t, err := tail.TailFile(viper.GetString("k1-paths.log-file"), tail.Config{Follow: true, ReOpen: true})
if err != nil {
fmt.Printf("Error tailing log file: %v\n", err)
- os.Exit(1)
+ progress.Progress.Quit()
}
for line := range t.Lines {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.4.10/cmd/root.go new/kubefirst-2.4.11/cmd/root.go
--- old/kubefirst-2.4.10/cmd/root.go 2024-06-10 21:53:11.000000000 +0200
+++ new/kubefirst-2.4.11/cmd/root.go 2024-07-04 00:02:00.000000000 +0200
@@ -8,7 +8,6 @@
import (
"fmt"
- "os"
"github.com/kubefirst/kubefirst/cmd/aws"
"github.com/kubefirst/kubefirst/cmd/civo"
@@ -51,7 +50,7 @@
err := rootCmd.Execute()
if err != nil {
fmt.Printf("\nIf a detailed error message was available, please make the necessary corrections before retrying.\nYou can re-run the last command to try the operation again.\n\n")
- os.Exit(1)
+ progress.Progress.Quit()
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.4.10/internal/k3d/menu.go new/kubefirst-2.4.11/internal/k3d/menu.go
--- old/kubefirst-2.4.10/internal/k3d/menu.go 2024-06-10 21:53:11.000000000 +0200
+++ new/kubefirst-2.4.11/internal/k3d/menu.go 2024-07-04 00:02:00.000000000 +0200
@@ -11,7 +11,7 @@
"io"
"os"
"strings"
-
+ "github.com/kubefirst/kubefirst/internal/progress"
"github.com/charmbracelet/bubbles/list"
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/lipgloss"
@@ -125,7 +125,7 @@
model, err := tea.NewProgram(m).Run()
if err != nil {
fmt.Println("Error running program:", err)
- os.Exit(1)
+ progress.Progress.Quit()
}
var result string
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.4.10/internal/launch/constants.go new/kubefirst-2.4.11/internal/launch/constants.go
--- old/kubefirst-2.4.10/internal/launch/constants.go 2024-06-10 21:53:11.000000000 +0200
+++ new/kubefirst-2.4.11/internal/launch/constants.go 2024-07-04 00:02:00.000000000 +0200
@@ -11,7 +11,7 @@
helmChartName = "kubefirst"
helmChartRepoName = "kubefirst"
helmChartRepoURL = "https://charts.kubefirst.com"
- helmChartVersion = "2.4.10"
+ helmChartVersion = "2.4.11"
namespace = "kubefirst"
secretName = "kubefirst-initial-secrets"
)
++++++ kubefirst.obsinfo ++++++
--- /var/tmp/diff_new_pack.NAegZS/_old 2024-07-04 16:27:53.301619457 +0200
+++ /var/tmp/diff_new_pack.NAegZS/_new 2024-07-04 16:27:53.309619749 +0200
@@ -1,5 +1,5 @@
name: kubefirst
-version: 2.4.10
-mtime: 1718049191
-commit: 55e58cf642db4e48b11bdede6ba0f0a0d6077b4e
+version: 2.4.11
+mtime: 1720044120
+commit: 819d539c291851c1a2a13a29954aa20bc28f5641
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/kubefirst/vendor.tar.gz /work/SRC/openSUSE:Factory/.kubefirst.new.2080/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openQA for openSUSE:Factory checked in at 2024-07-04 16:26:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openQA (Old)
and /work/SRC/openSUSE:Factory/.openQA.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openQA"
Thu Jul 4 16:26:43 2024 rev:593 rq:1185250 version:4.6.1720013336.c526246d
Changes:
--------
openQA-devel-test.changes: same change
openQA-test.changes: same change
openQA-worker-test.changes: same change
--- /work/SRC/openSUSE:Factory/openQA/openQA.changes 2024-07-02 18:17:44.242246244 +0200
+++ /work/SRC/openSUSE:Factory/.openQA.new.2080/openQA.changes 2024-07-04 16:27:46.181359533 +0200
@@ -1,0 +2,18 @@
+Thu Jul 04 01:14:15 UTC 2024 - okurz(a)suse.com
+
+- Update to version 4.6.1720013336.c526246d:
+ * Bump acorn from 8.12.0 to 8.12.1
+ * Bump ace-builds from 1.35.1 to 1.35.2
+ * Bump @floating-ui/core from 1.6.3 to 1.6.4
+ * Adjust scheduling to consider PARALLEL_ONE_HOST_ONLY from workers
+ * Remove unused variable in worker slot picker
+ * Simplify `update_caps` after passing `PARALLEL_ONE_HOST_ONLY` setting
+ * Dependency cron 2024-07-02
+ * Provide PARALLEL_ONE_HOST_ONLY via workers config file
+ * Bump eslint from 9.5.0 to 9.6.0
+ * Bump @floating-ui/dom from 1.6.6 to 1.6.7
+ * Bump @floating-ui/utils from 0.2.3 to 0.2.4
+ * docs: Explain integration of external test results
+ * Remove unused file WebAPI::Controller::API::V1::Command
+
+-------------------------------------------------------------------
Old:
----
openQA-4.6.1719769755.f382481d.obscpio
New:
----
openQA-4.6.1720013336.c526246d.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openQA-client-test.spec ++++++
--- /var/tmp/diff_new_pack.e148St/_old 2024-07-04 16:27:47.925423200 +0200
+++ /var/tmp/diff_new_pack.e148St/_new 2024-07-04 16:27:47.929423346 +0200
@@ -18,7 +18,7 @@
%define short_name openQA-client
Name: %{short_name}-test
-Version: 4.6.1719769755.f382481d
+Version: 4.6.1720013336.c526246d
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
++++++ openQA-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.e148St/_old 2024-07-04 16:27:47.957424367 +0200
+++ /var/tmp/diff_new_pack.e148St/_new 2024-07-04 16:27:47.961424514 +0200
@@ -18,7 +18,7 @@
%define short_name openQA-devel
Name: %{short_name}-test
-Version: 4.6.1719769755.f382481d
+Version: 4.6.1720013336.c526246d
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
++++++ openQA-test.spec ++++++
--- /var/tmp/diff_new_pack.e148St/_old 2024-07-04 16:27:47.989425535 +0200
+++ /var/tmp/diff_new_pack.e148St/_new 2024-07-04 16:27:47.989425535 +0200
@@ -18,7 +18,7 @@
%define short_name openQA
Name: %{short_name}-test
-Version: 4.6.1719769755.f382481d
+Version: 4.6.1720013336.c526246d
Release: 0
Summary: Test package for openQA
License: GPL-2.0-or-later
++++++ openQA-worker-test.spec ++++++
--- /var/tmp/diff_new_pack.e148St/_old 2024-07-04 16:27:48.017426558 +0200
+++ /var/tmp/diff_new_pack.e148St/_new 2024-07-04 16:27:48.021426704 +0200
@@ -18,7 +18,7 @@
%define short_name openQA-worker
Name: %{short_name}-test
-Version: 4.6.1719769755.f382481d
+Version: 4.6.1720013336.c526246d
Release: 0
Summary: Test package for %{short_name}
License: GPL-2.0-or-later
++++++ openQA.spec ++++++
--- /var/tmp/diff_new_pack.e148St/_old 2024-07-04 16:27:48.053427872 +0200
+++ /var/tmp/diff_new_pack.e148St/_new 2024-07-04 16:27:48.057428018 +0200
@@ -78,7 +78,7 @@
%define devel_requires %devel_no_selenium_requires chromedriver
Name: openQA
-Version: 4.6.1719769755.f382481d
+Version: 4.6.1720013336.c526246d
Release: 0
Summary: The openQA web-frontend, scheduler and tools
License: GPL-2.0-or-later
++++++ node_modules.obscpio ++++++
/work/SRC/openSUSE:Factory/openQA/node_modules.obscpio /work/SRC/openSUSE:Factory/.openQA.new.2080/node_modules.obscpio differ: char 133628, line 469
++++++ node_modules.spec.inc ++++++
--- /var/tmp/diff_new_pack.e148St/_old 2024-07-04 16:27:48.137430939 +0200
+++ /var/tmp/diff_new_pack.e148St/_new 2024-07-04 16:27:48.141431084 +0200
@@ -1,12 +1,12 @@
Source1000: https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.…
Source1001: https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#/…
-Source1002: https://registry.npmjs.org/@eslint/config-array/-/config-array-0.16.0.tgz#/…
+Source1002: https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.0.tgz#/…
Source1003: https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#/@eslint-e…
-Source1004: https://registry.npmjs.org/@eslint/js/-/js-9.5.0.tgz#/@eslint-js-9.5.0.tgz
+Source1004: https://registry.npmjs.org/@eslint/js/-/js-9.6.0.tgz#/@eslint-js-9.6.0.tgz
Source1005: https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz#…
-Source1006: https://registry.npmjs.org/@floating-ui/core/-/core-1.6.3.tgz#/@floating-ui…
-Source1007: https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.6.tgz#/@floating-ui-d…
-Source1008: https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.3.tgz#/@floating-…
+Source1006: https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz#/@floating-ui…
+Source1007: https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.7.tgz#/@floating-ui-d…
+Source1008: https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.4.tgz#/@floating-…
Source1009: https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer…
Source1010: https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz#/@humanwh…
Source1011: https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#/@nod…
@@ -14,8 +14,8 @@
Source1013: https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#/@nodelib-f…
Source1014: https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz#/@pkgr-core-0.1.1.tgz
Source1015: https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz#/@popperjs-core…
-Source1016: https://registry.npmjs.org/ace-builds/-/ace-builds-1.35.1.tgz#/ace-builds-1…
-Source1017: https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz#/acorn-8.12.0.tgz
+Source1016: https://registry.npmjs.org/ace-builds/-/ace-builds-1.35.2.tgz#/ace-builds-1…
+Source1017: https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz#/acorn-8.12.1.tgz
Source1018: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz#/acorn-jsx-5.3.2…
Source1019: https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#/ajv-6.12.6.tgz
Source1020: https://registry.npmjs.org/anser/-/anser-2.1.1.tgz#/anser-2.1.1.tgz
@@ -73,7 +73,7 @@
Source1072: https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz#/deepmerge-4.3.1…
Source1073: https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz#/delaunator-5.…
Source1074: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.…
-Source1075: https://registry.npmjs.org/eslint/-/eslint-9.5.0.tgz#/eslint-9.5.0.tgz
+Source1075: https://registry.npmjs.org/eslint/-/eslint-9.6.0.tgz#/eslint-9.6.0.tgz
Source1076: https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-…
Source1077: https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-…
Source1078: https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz#/eslint-sc…
++++++ openQA-4.6.1719769755.f382481d.obscpio -> openQA-4.6.1720013336.c526246d.obscpio ++++++
/work/SRC/openSUSE:Factory/openQA/openQA-4.6.1719769755.f382481d.obscpio /work/SRC/openSUSE:Factory/.openQA.new.2080/openQA-4.6.1720013336.c526246d.obscpio differ: char 50, line 1
++++++ openQA.obsinfo ++++++
--- /var/tmp/diff_new_pack.e148St/_old 2024-07-04 16:27:48.193432983 +0200
+++ /var/tmp/diff_new_pack.e148St/_new 2024-07-04 16:27:48.197433129 +0200
@@ -1,5 +1,5 @@
name: openQA
-version: 4.6.1719769755.f382481d
-mtime: 1719769755
-commit: f382481d2d376b3f17be69945d3bd311a5bbbc7b
+version: 4.6.1720013336.c526246d
+mtime: 1720013336
+commit: c526246de527d5748d3828345178b40530e024c3
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package qrtool for openSUSE:Factory checked in at 2024-07-04 16:26:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qrtool (Old)
and /work/SRC/openSUSE:Factory/.qrtool.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qrtool"
Thu Jul 4 16:26:38 2024 rev:4 rq:1185240 version:0.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/qrtool/qrtool.changes 2024-06-29 15:17:32.680481399 +0200
+++ /work/SRC/openSUSE:Factory/.qrtool.new.2080/qrtool.changes 2024-07-04 16:27:41.233178900 +0200
@@ -1,0 +2,8 @@
+Wed Jul 3 20:46:09 UTC 2024 - Muhammad Akbar Yanuar Mantari <mantarimay(a)pm.me>
+
+- Update to version 0.11.0
+ * Change --zopfli to allow it to take a value. If the value is
+ not specified, it is assumed that 15 is specified. This is the
+ same as before the change
+
+-------------------------------------------------------------------
Old:
----
qrtool-0.10.13.tar.gz
New:
----
qrtool-0.11.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qrtool.spec ++++++
--- /var/tmp/diff_new_pack.ncreUZ/_old 2024-07-04 16:27:42.941241253 +0200
+++ /var/tmp/diff_new_pack.ncreUZ/_new 2024-07-04 16:27:42.941241253 +0200
@@ -22,7 +22,7 @@
%bcond_without test
%endif
Name: qrtool
-Version: 0.10.13
+Version: 0.11.0
Release: 0
Summary: An utility for encoding or decoding QR code
License: MIT AND CC-BY-4.0 AND Apache-2.0
++++++ qrtool-0.10.13.tar.gz -> qrtool-0.11.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qrtool-0.10.13/CHANGELOG.adoc new/qrtool-0.11.0/CHANGELOG.adoc
--- old/qrtool-0.10.13/CHANGELOG.adoc 2024-06-29 03:56:59.000000000 +0200
+++ new/qrtool-0.11.0/CHANGELOG.adoc 2024-07-03 18:27:00.000000000 +0200
@@ -14,6 +14,14 @@
The format is based on https://keepachangelog.com/[Keep a Changelog], and this
project adheres to https://semver.org/[Semantic Versioning].
+== {compare-url}/v0.10.13\...v0.11.0[0.11.0] - 2024-07-03
+
+=== Changed
+
+* Change `--zopfli` to allow it to take a value. If the value is not specified,
+ it is assumed that 15 is specified. This is the same as before the change
+ ({pull-request-url}/534[#534])
+
== {compare-url}/v0.10.12\...v0.10.13[0.10.13] - 2024-06-29
=== Fixed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qrtool-0.10.13/Cargo.lock new/qrtool-0.11.0/Cargo.lock
--- old/qrtool-0.10.13/Cargo.lock 2024-06-29 03:56:59.000000000 +0200
+++ new/qrtool-0.11.0/Cargo.lock 2024-07-03 18:27:00.000000000 +0200
@@ -196,9 +196,9 @@
[[package]]
name = "cc"
-version = "1.0.101"
+version = "1.0.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac367972e516d45567c7eafc73d24e1c193dcf200a8d94e9db7b3d38b349572d"
+checksum = "74b6a57f98764a267ff415d50a25e6e166f3831a5071af4995296ea97d210490"
[[package]]
name = "cfg-if"
@@ -823,7 +823,7 @@
[[package]]
name = "qrtool"
-version = "0.10.13"
+version = "0.11.0"
dependencies = [
"anyhow",
"assert_cmd",
@@ -1116,9 +1116,9 @@
[[package]]
name = "sysexits"
-version = "0.8.0"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaeada5433f30b34f25f70784cfc22b05d06a32eaa7e598b1433ecffb27e9499"
+checksum = "c4008983d29e823b1415f5f12732d5c9a44059795fb6218262cc0185668851e2"
[[package]]
name = "tap"
@@ -1410,18 +1410,18 @@
[[package]]
name = "zerocopy"
-version = "0.7.34"
+version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
-version = "0.7.34"
+version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qrtool-0.10.13/Cargo.toml new/qrtool-0.11.0/Cargo.toml
--- old/qrtool-0.10.13/Cargo.toml 2024-06-29 03:56:59.000000000 +0200
+++ new/qrtool-0.11.0/Cargo.toml 2024-07-03 18:27:00.000000000 +0200
@@ -4,7 +4,7 @@
[package]
name = "qrtool"
-version = "0.10.13"
+version = "0.11.0"
authors = ["Shun Sakai <sorairolake(a)protonmail.ch>"]
edition = "2021"
rust-version = "1.74.0"
@@ -30,7 +30,7 @@
qrcode = "0.14.0"
resvg = { version = "0.42.0", default-features = false, optional = true }
rqrr = "0.7.1"
-sysexits = "0.8.0"
+sysexits = "0.8.1"
[dev-dependencies]
assert_cmd = "2.0.14"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qrtool-0.10.13/docs/man/man1/qrtool-encode.1.adoc new/qrtool-0.11.0/docs/man/man1/qrtool-encode.1.adoc
--- old/qrtool-0.10.13/docs/man/man1/qrtool-encode.1.adoc 2024-06-29 03:56:59.000000000 +0200
+++ new/qrtool-0.11.0/docs/man/man1/qrtool-encode.1.adoc 2024-07-03 18:27:00.000000000 +0200
@@ -4,7 +4,7 @@
= qrtool-encode(1)
// Specify in UTC.
-:docdate: 2024-06-29
+:docdate: 2024-07-02
:doctype: manpage
ifdef::revnumber[:mansource: qrtool {revnumber}]
ifndef::revnumber[:mansource: qrtool]
@@ -116,8 +116,8 @@
*--optimize-png* [_LEVEL_]::
Set the optimization level for a PNG image. Lower levels are faster, higher
- levels provide better compression. If the value is not specified, it is
- assumed that the default level 2 is specified.
+ levels provide better compression. If _LEVEL_ is not specified, it is assumed
+ that the default level 2 is specified.
The possible values are:{blank}:::
@@ -155,9 +155,12 @@
endif::[]
ifdef::optimize-output-png,env-github,site-gen-antora[]
-*--zopfli*::
+*--zopfli* [_ITERATION_]::
- Use Zopfli to compress PNG image. This option requires *--optimize-png*.
+ Use Zopfli to compress PNG image. Perform compression for the number of
+ iterations specified by _ITERATION_. If _ITERATION_ is not specified, it is
+ assumed that 15 is specified as the number of iterations. This option
+ requires *--optimize-png*.
endif::[]
*--mode* _MODE_::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qrtool-0.10.13/src/app.rs new/qrtool-0.11.0/src/app.rs
--- old/qrtool-0.10.13/src/app.rs 2024-06-29 03:56:59.000000000 +0200
+++ new/qrtool-0.11.0/src/app.rs 2024-07-03 18:27:00.000000000 +0200
@@ -110,10 +110,7 @@
#[cfg(feature = "optimize-output-png")]
if let Some(level) = arg.optimize_png {
let mut optimize_opt = oxipng::Options::from_preset(level.into());
- if arg.zopfli {
- let iterations = std::num::NonZeroU8::new(15).expect(
- "the number of compression iterations should be non-zero",
- );
+ if let Some(iterations) = arg.zopfli {
optimize_opt.deflate = oxipng::Deflaters::Zopfli { iterations };
}
buf = oxipng::optimize_from_memory(&buf, &optimize_opt)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qrtool-0.10.13/src/cli.rs new/qrtool-0.11.0/src/cli.rs
--- old/qrtool-0.10.13/src/cli.rs 2024-06-29 03:56:59.000000000 +0200
+++ new/qrtool-0.11.0/src/cli.rs 2024-07-03 18:27:00.000000000 +0200
@@ -42,8 +42,8 @@
"See `qrtool-decode(1)` for more details."
);
-#[allow(clippy::struct_excessive_bools)]
#[derive(Debug, Parser)]
+#[allow(clippy::struct_excessive_bools)]
#[command(
version,
long_version(LONG_VERSION),
@@ -155,7 +155,7 @@
/// Set the optimization level for a PNG image.
///
/// Lower levels are faster, higher levels provide better compression. If
- /// the value is not specified, it is assumed that the default level 2 is
+ /// <LEVEL> is not specified, it is assumed that the default level 2 is
/// specified.
#[cfg(feature = "optimize-output-png")]
#[arg(
@@ -169,9 +169,19 @@
pub optimize_png: Option<PngOptimizationLevel>,
/// Use Zopfli to compress PNG image.
+ ///
+ /// Perform compression for the number of iterations specified by
+ /// <ITERATION>. If <ITERATION> is not specified, it is assumed that 15 is
+ /// specified as the number of iterations.
#[cfg(feature = "optimize-output-png")]
- #[arg(long, requires("optimize_png"))]
- pub zopfli: bool,
+ #[arg(
+ long,
+ requires("optimize_png"),
+ num_args(0..=1),
+ value_name("ITERATION"),
+ default_missing_value("15")
+ )]
+ pub zopfli: Option<std::num::NonZeroU8>,
/// The mode of the output.
///
@@ -294,8 +304,8 @@
}
}
-#[allow(clippy::doc_markdown)]
#[derive(Clone, Debug, ValueEnum)]
+#[allow(clippy::doc_markdown)]
#[value(rename_all = "lower")]
pub enum Shell {
/// Bash.
@@ -460,8 +470,8 @@
Micro,
}
-#[allow(clippy::doc_markdown)]
#[derive(Clone, Debug, ValueEnum)]
+#[allow(clippy::doc_markdown)]
#[value(rename_all = "lower")]
pub enum InputFormat {
/// Windows Bitmap.
@@ -605,8 +615,8 @@
assert_eq!(OutputFormat::default(), OutputFormat::Png);
}
- #[test]
#[cfg(feature = "optimize-output-png")]
+ #[test]
fn from_png_optimization_level_to_u8() {
assert_eq!(u8::from(PngOptimizationLevel::Level0), 0);
assert_eq!(u8::from(PngOptimizationLevel::Level1), 1);
@@ -695,8 +705,8 @@
);
}
- #[test]
#[cfg(feature = "decode-from-svg")]
+ #[test]
fn try_from_input_format_to_image_format_when_svg() {
assert!(ImageFormat::try_from(InputFormat::Svg).is_err());
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qrtool-0.10.13/src/decode.rs new/qrtool-0.11.0/src/decode.rs
--- old/qrtool-0.10.13/src/decode.rs 2024-06-29 03:56:59.000000000 +0200
+++ new/qrtool-0.11.0/src/decode.rs 2024-07-03 18:27:00.000000000 +0200
@@ -83,15 +83,15 @@
mod tests {
use super::*;
- #[test]
#[cfg(feature = "decode-from-svg")]
+ #[test]
fn valid_extension_as_svg() {
assert!(is_svg("image.svg"));
assert!(is_svg("image.svgz"));
}
- #[test]
#[cfg(feature = "decode-from-svg")]
+ #[test]
fn invalid_extension_as_svg() {
assert!(!is_svg("image.png"));
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qrtool-0.10.13/tests/decode.rs new/qrtool-0.11.0/tests/decode.rs
--- old/qrtool-0.10.13/tests/decode.rs 2024-06-29 03:56:59.000000000 +0200
+++ new/qrtool-0.11.0/tests/decode.rs 2024-07-03 18:27:00.000000000 +0200
@@ -73,8 +73,8 @@
));
}
-#[test]
#[cfg(feature = "decode-from-bmp")]
+#[test]
fn decode_from_bmp() {
utils::command::command()
.arg("decode")
@@ -102,8 +102,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-dds")]
+#[test]
fn decode_from_dds() {
utils::command::command()
.arg("decode")
@@ -131,8 +131,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-ff")]
+#[test]
fn decode_from_farbfeld() {
utils::command::command()
.arg("decode")
@@ -160,8 +160,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-gif")]
+#[test]
fn decode_from_gif() {
utils::command::command()
.arg("decode")
@@ -189,8 +189,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-hdr")]
+#[test]
fn decode_from_hdr() {
utils::command::command()
.arg("decode")
@@ -218,8 +218,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-ico")]
+#[test]
fn decode_from_bmp_cur() {
utils::command::command()
.arg("decode")
@@ -240,8 +240,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-ico")]
+#[test]
fn decode_from_png_cur() {
utils::command::command()
.arg("decode")
@@ -262,8 +262,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-ico")]
+#[test]
fn decode_from_bmp_ico() {
utils::command::command()
.arg("decode")
@@ -281,8 +281,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-ico")]
+#[test]
fn decode_from_png_ico() {
utils::command::command()
.arg("decode")
@@ -300,8 +300,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-ico")]
+#[test]
fn decode_from_ico_with_wrong_format() {
utils::command::command()
.arg("decode")
@@ -314,8 +314,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-jpeg")]
+#[test]
fn decode_from_jpeg() {
utils::command::command()
.arg("decode")
@@ -343,8 +343,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-exr")]
+#[test]
fn decode_from_open_exr() {
utils::command::command()
.arg("decode")
@@ -394,8 +394,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-pnm")]
+#[test]
fn decode_from_ascii_pbm() {
utils::command::command()
.arg("decode")
@@ -413,8 +413,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-pnm")]
+#[test]
fn decode_from_ascii_pgm() {
utils::command::command()
.arg("decode")
@@ -432,8 +432,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-pnm")]
+#[test]
fn decode_from_ascii_ppm() {
utils::command::command()
.arg("decode")
@@ -451,8 +451,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-pnm")]
+#[test]
fn decode_from_binary_pbm() {
utils::command::command()
.arg("decode")
@@ -470,8 +470,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-pnm")]
+#[test]
fn decode_from_binary_pgm() {
utils::command::command()
.arg("decode")
@@ -489,8 +489,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-pnm")]
+#[test]
fn decode_from_binary_ppm() {
utils::command::command()
.arg("decode")
@@ -508,8 +508,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-pnm")]
+#[test]
fn decode_from_pnm_with_wrong_format() {
utils::command::command()
.arg("decode")
@@ -522,8 +522,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-qoi")]
+#[test]
fn decode_from_qoi() {
utils::command::command()
.arg("decode")
@@ -551,8 +551,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-svg")]
+#[test]
fn decode_from_svg() {
utils::command::command()
.arg("decode")
@@ -570,8 +570,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-svg")]
+#[test]
fn decode_from_svgz() {
utils::command::command()
.arg("decode")
@@ -589,8 +589,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-svg")]
+#[test]
fn decode_from_svg_with_wrong_format() {
utils::command::command()
.arg("decode")
@@ -603,8 +603,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-tga")]
+#[test]
fn decode_from_tga() {
utils::command::command()
.arg("decode")
@@ -632,8 +632,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-tiff")]
+#[test]
fn decode_from_tiff() {
utils::command::command()
.arg("decode")
@@ -661,8 +661,8 @@
.stderr(predicate::str::contains("could not read the image"));
}
-#[test]
#[cfg(feature = "decode-from-webp")]
+#[test]
fn decode_from_lossy_web_p() {
utils::command::command()
.arg("decode")
@@ -680,8 +680,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-webp")]
+#[test]
fn decode_from_lossless_web_p() {
utils::command::command()
.arg("decode")
@@ -699,8 +699,8 @@
.stdout(predicate::eq("QR code"));
}
-#[test]
#[cfg(feature = "decode-from-webp")]
+#[test]
fn decode_from_web_p_with_wrong_format() {
utils::command::command()
.arg("decode")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qrtool-0.10.13/tests/encode.rs new/qrtool-0.11.0/tests/encode.rs
--- old/qrtool-0.10.13/tests/encode.rs 2024-06-29 03:56:59.000000000 +0200
+++ new/qrtool-0.11.0/tests/encode.rs 2024-07-03 18:27:00.000000000 +0200
@@ -474,9 +474,9 @@
));
}
-#[allow(clippy::too_many_lines)]
-#[test]
#[cfg(feature = "optimize-output-png")]
+#[test]
+#[allow(clippy::too_many_lines)]
fn encode_to_optimized_png() {
let default_output = utils::command::command()
.arg("encode")
@@ -627,8 +627,8 @@
assert!(level6_output.status.success());
}
-#[test]
#[cfg(feature = "optimize-output-png")]
+#[test]
fn encode_to_maximum_optimized_png() {
let level6_output = utils::command::command()
.arg("encode")
@@ -661,8 +661,8 @@
assert!(max_output.status.success());
}
-#[test]
#[cfg(feature = "optimize-output-png")]
+#[test]
fn encode_to_optimized_png_without_value() {
let level2_output = utils::command::command()
.arg("encode")
@@ -697,8 +697,8 @@
assert!(without_value_output.status.success());
}
-#[test]
#[cfg(feature = "optimize-output-png")]
+#[test]
fn encode_to_optimized_png_with_invalid_level() {
utils::command::command()
.arg("encode")
@@ -715,8 +715,8 @@
));
}
-#[test]
#[cfg(feature = "optimize-output-png")]
+#[test]
fn encode_to_optimized_png_with_invalid_output_format() {
{
utils::command::command()
@@ -746,8 +746,8 @@
}
}
-#[test]
#[cfg(feature = "optimize-output-png")]
+#[test]
fn encode_to_optimized_png_using_zopfli() {
let without_value_output = utils::command::command()
.arg("encode")
@@ -758,35 +758,58 @@
.output()
.unwrap();
- let zopfli_output = utils::command::command()
+ let zopfli_5_iterations_output = utils::command::command()
.arg("encode")
.arg("-t")
.arg("png")
.arg("--optimize-png")
.arg("--zopfli")
+ .arg("5")
.arg("QR code")
.output()
.unwrap();
assert_eq!(
DynamicImage::ImageLuma8(
- image::load_from_memory(&zopfli_output.stdout)
+ image::load_from_memory(&zopfli_5_iterations_output.stdout)
.unwrap()
.to_luma8()
),
image::open("tests/data/encode/encode.png").unwrap()
);
- assert!(zopfli_output.stdout.len() < without_value_output.stdout.len());
- assert!(zopfli_output.status.success());
+ assert!(zopfli_5_iterations_output.stdout.len() < without_value_output.stdout.len());
+ assert!(zopfli_5_iterations_output.status.success());
+
+ let zopfli_default_iterations_output = utils::command::command()
+ .arg("encode")
+ .arg("--optimize-png")
+ .arg("--zopfli")
+ .arg("-t")
+ .arg("png")
+ .arg("QR code")
+ .output()
+ .unwrap();
+ assert_eq!(
+ DynamicImage::ImageLuma8(
+ image::load_from_memory(&zopfli_default_iterations_output.stdout)
+ .unwrap()
+ .to_luma8()
+ ),
+ image::open("tests/data/encode/encode.png").unwrap()
+ );
+ assert!(
+ zopfli_default_iterations_output.stdout.len() < zopfli_5_iterations_output.stdout.len()
+ );
+ assert!(zopfli_default_iterations_output.status.success());
}
-#[test]
#[cfg(feature = "optimize-output-png")]
+#[test]
fn encode_to_optimized_png_using_zopfli_without_level() {
utils::command::command()
.arg("encode")
+ .arg("--zopfli")
.arg("-t")
.arg("png")
- .arg("--zopfli")
.arg("QR code")
.assert()
.failure()
@@ -797,6 +820,49 @@
.stderr(predicate::str::contains("--optimize-png [<LEVEL>]"));
}
+#[cfg(feature = "optimize-output-png")]
+#[test]
+fn encode_to_optimized_png_using_zopfli_with_invalid_value() {
+ {
+ utils::command::command()
+ .arg("encode")
+ .arg("-t")
+ .arg("png")
+ .arg("--optimize-png")
+ .arg("--zopfli")
+ .arg("0")
+ .arg("QR code")
+ .assert()
+ .failure()
+ .code(2)
+ .stderr(predicate::str::contains(
+ "invalid value '0' for '--zopfli [<ITERATION>]'",
+ ))
+ .stderr(predicate::str::contains(
+ "number would be zero for non-zero type",
+ ));
+ }
+ {
+ utils::command::command()
+ .arg("encode")
+ .arg("-t")
+ .arg("png")
+ .arg("--optimize-png")
+ .arg("--zopfli")
+ .arg("256")
+ .arg("QR code")
+ .assert()
+ .failure()
+ .code(2)
+ .stderr(predicate::str::contains(
+ "invalid value '256' for '--zopfli [<ITERATION>]'",
+ ))
+ .stderr(predicate::str::contains(
+ "number too large to fit in target type",
+ ));
+ }
+}
+
#[test]
fn encode_in_numeric_mode() {
let output = utils::command::command()
++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/qrtool/vendor.tar.zst /work/SRC/openSUSE:Factory/.qrtool.new.2080/vendor.tar.zst differ: char 996609, line 4082
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-rarfile for openSUSE:Factory checked in at 2024-07-04 16:26:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-rarfile (Old)
and /work/SRC/openSUSE:Factory/.python-rarfile.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-rarfile"
Thu Jul 4 16:26:27 2024 rev:8 rq:1185230 version:4.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-rarfile/python-rarfile.changes 2022-05-04 15:11:33.112201629 +0200
+++ /work/SRC/openSUSE:Factory/.python-rarfile.new.2080/python-rarfile.changes 2024-07-04 16:27:26.068625320 +0200
@@ -1,0 +2,38 @@
+Sat Jun 29 17:30:32 UTC 2024 - Luigi Baldoni <aloisio(a)gmx.com>
+
+- Update to version 4.2
+ Features:
+ * Support unrar-free >= 0.2.0.
+ * Add RarFile.is_solid to check if archive uses solid compression.
+ Fixes:
+ * Support old multi-volume archives better where ENDARC does
+ not contain NEXTVOL.
+ version 4.1:
+ Features:
+ * Support 7zip/p7zip as decompression backend.
+ * RAR5: check password before trying to read file.
+ New APIs:
+ * Make get_rar_version a public function.
+ * New option: ``part_only`` for :class:`RarFile`,
+ to read only single file and allow it to be middle-part
+ of multi-volume archive.
+ * Add :meth:`RarFile.printdir`, use it in dumprar. Needed to
+ examine FILE_COPY or HARD_LINK entries that do not contain
+ data.
+ Fixes:
+ * Use OS separator to access filename.
+ * DirectReader: check seek position on each read.
+ Fixes read reading from multiple entries in parallel
+ on RarFile backed by file object.
+ * DirectReader: properly disable CRC check when seeking.
+ * Reset _hdrenc_main before processing a new volume.
+ Fixes CRC checks on multi-volume reads.
+ * Adapt to Python 3.10 argparse.
+ * SFX: Handle volume numbering special cases better.
+ * nsdatetime: support pypy internal use
+ * Throw error if backend does not support passwords.
+ Cleanups:
+ * Avoid isascii, not in 3.6
+- Drop help.patch (merged upstream)
+
+-------------------------------------------------------------------
Old:
----
help.patch
rarfile-4.0.tar.gz
New:
----
rarfile-4.2.tar.gz
BETA DEBUG BEGIN:
Old: * Avoid isascii, not in 3.6
- Drop help.patch (merged upstream)
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-rarfile.spec ++++++
--- /var/tmp/diff_new_pack.mypUn0/_old 2024-07-04 16:27:26.664647077 +0200
+++ /var/tmp/diff_new_pack.mypUn0/_new 2024-07-04 16:27:26.668647223 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-rarfile
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,16 +18,15 @@
%define skip_python2 1
Name: python-rarfile
-Version: 4.0
+Version: 4.2
Release: 0
Summary: RAR Archive Reader for Python
License: ISC
URL: https://rarfile.readthedocs.org/
Source0: https://files.pythonhosted.org/packages/source/r/rarfile/rarfile-%{version}…
-# https://github.com/markokr/rarfile/pull/85
-Patch0: help.patch
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
+BuildRequires: 7zip
BuildRequires: bsdtar
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@@ -55,8 +54,7 @@
This package contains technical documentation.
%prep
-%setup -q -n rarfile-%{version}
-%autopatch -p1
+%autosetup -p1 -n rarfile-%{version}
%build
%python_build
@@ -68,7 +66,7 @@
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
-%pytest
+%pytest -k "not (test_unrar_tool or test_reading or test_rar3_header_encryption)"
%files %{python_files}
%license LICENSE
++++++ rarfile-4.0.tar.gz -> rarfile-4.2.tar.gz ++++++
++++ 2347 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package argocd-cli for openSUSE:Factory checked in at 2024-07-04 16:25:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/argocd-cli (Old)
and /work/SRC/openSUSE:Factory/.argocd-cli.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "argocd-cli"
Thu Jul 4 16:25:32 2024 rev:17 rq:1185227 version:2.11.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/argocd-cli/argocd-cli.changes 2024-06-09 20:24:12.546129808 +0200
+++ /work/SRC/openSUSE:Factory/.argocd-cli.new.2080/argocd-cli.changes 2024-07-04 16:27:03.463800133 +0200
@@ -1,0 +2,23 @@
+Wed Jul 03 19:09:39 UTC 2024 - opensuse_buildservice(a)ojkastl.de
+
+- Update to version 2.11.4:
+ * remove unwanted updating of source-position in app set command
+ (#18887) (#18896)
+ * Bump version to 2.11.4 (#18894)
+ * fix: update static schemas (#18889)
+ * fix(controller): bad server-side diffs (#18213) (2.11) (#18868)
+ * docs: Fix .path to .path.segments go template (#18872) (#18874)
+ * fix(webhook): bitbucket and azure not triggering refresh
+ (#18289) (#18765) (#18819)
+ * fix(appset): revert "keep reconciling even when params error
+ occurred" (#17062) (#18781)
+ * fix: docs site version selector broken (#18378) (#18724)
+ * fix: Update braces package to 3.0.3 (#18459) (#18663)
+ * Revert "feat(server): log app Spec along with event (#16416)"
+ (#18458) (#18639)
+ * test: fix e2e tests after GHSA-3cqf-953p-h5cp (#18543) (#18641)
+ * chore(deps): upgrade redis to 7.2.15-alpine (cherry-pick
+ release-2.11) (#18640)
+ * chore: bump go version to 1.21.10 (#18540)
+
+-------------------------------------------------------------------
Old:
----
argo-cd-2.11.3.obscpio
New:
----
argo-cd-2.11.4.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ argocd-cli.spec ++++++
--- /var/tmp/diff_new_pack.csXhPT/_old 2024-07-04 16:27:04.883851972 +0200
+++ /var/tmp/diff_new_pack.csXhPT/_new 2024-07-04 16:27:04.887852118 +0200
@@ -21,7 +21,7 @@
%define executable_name argocd
Name: argocd-cli
-Version: 2.11.3
+Version: 2.11.4
Release: 0
Summary: CLI for the ArgoCD declarative continuous deployment tool
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.csXhPT/_old 2024-07-04 16:27:04.919853286 +0200
+++ /var/tmp/diff_new_pack.csXhPT/_new 2024-07-04 16:27:04.923853432 +0200
@@ -3,8 +3,8 @@
<param name="url">https://github.com/argoproj/argo-cd</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v2.11.3</param>
- <param name="match-tag">v2.11.3</param>
+ <param name="revision">v2.11.4</param>
+ <param name="match-tag">v2.11.4</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
@@ -18,7 +18,7 @@
<param name="compression">gz</param>
</service>
<service name="go_modules" mode="manual">
- <param name="archive">argo-cd-2.11.3.obscpio</param>
+ <param name="archive">argo-cd-2.11.4.obscpio</param>
</service>
</services>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.csXhPT/_old 2024-07-04 16:27:04.939854016 +0200
+++ /var/tmp/diff_new_pack.csXhPT/_new 2024-07-04 16:27:04.943854163 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/argoproj/argo-cd</param>
- <param name="changesrevision">3f344d54a4e0bbbb4313e1c19cfe1e544b162598</param></service></servicedata>
+ <param name="changesrevision">e1284e19e03c9abab2ea55314b14b1e0381c4045</param></service></servicedata>
(No newline at EOF)
++++++ argo-cd-2.11.3.obscpio -> argo-cd-2.11.4.obscpio ++++++
/work/SRC/openSUSE:Factory/argocd-cli/argo-cd-2.11.3.obscpio /work/SRC/openSUSE:Factory/.argocd-cli.new.2080/argo-cd-2.11.4.obscpio differ: char 49, line 1
++++++ argo-cd.obsinfo ++++++
--- /var/tmp/diff_new_pack.csXhPT/_old 2024-07-04 16:27:04.983855623 +0200
+++ /var/tmp/diff_new_pack.csXhPT/_new 2024-07-04 16:27:04.987855769 +0200
@@ -1,5 +1,5 @@
name: argo-cd
-version: 2.11.3
-mtime: 1717662985
-commit: 3f344d54a4e0bbbb4313e1c19cfe1e544b162598
+version: 2.11.4
+mtime: 1719940451
+commit: e1284e19e03c9abab2ea55314b14b1e0381c4045
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/argocd-cli/vendor.tar.gz /work/SRC/openSUSE:Factory/.argocd-cli.new.2080/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package istioctl for openSUSE:Factory checked in at 2024-07-04 16:25:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/istioctl (Old)
and /work/SRC/openSUSE:Factory/.istioctl.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "istioctl"
Thu Jul 4 16:25:28 2024 rev:21 rq:1185225 version:1.22.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/istioctl/istioctl.changes 2024-06-06 12:32:34.720386835 +0200
+++ /work/SRC/openSUSE:Factory/.istioctl.new.2080/istioctl.changes 2024-07-04 16:26:58.231609133 +0200
@@ -1,0 +2,45 @@
+Wed Jul 3 19:03:11 UTC 2024 - Johannes Kastl <opensuse_buildservice(a)ojkastl.de>
+
+- update to 1.22.2:
+ https://istio.io/latest/news/releases/1.22.x/announcing-1.22.2/
+ This release implements the security updates described in our
+ 27th of June post, ISTIO-SECURITY-2024-005 along with bug fixes
+ to improve robustness.
+ https://istio.io/latest/news/security/istio-security-2024-005/
+ * Improved waypoint proxies to no longer run as root.
+ * Added gateways.securityContext to manifests to provide an
+ option to customize the gateway securityContext. (Issue #49549)
+ * Added a new option in ztunnel to completely disable IPv6, to
+ enable running on kernels with IPv6 disabled.
+ * Fixed an issue where istioctl analyze returned IST0162 false
+ positives. (Issue #51257)
+ * Fixed ENABLE_ENHANCED_RESOURCE_SCOPING not being part of helm
+ compatibility profiles for Istio 1.20/1.21. (Issue #51399)
+ * Fixed Kubernetes job pod IPs may not be fully unenrolled from
+ ambient despite being in a terminated state.
+ * Fixed false positives in IST0128 and IST0129 when
+ credentialName and workloadSelector were set. (Issue #51567)
+ * Fixed an issue where JWKS fetched from URIs were not updated
+ promptly when there are errors fetching other URIs. (Issue
+ #51636)
+ * Fixed an issue causing workloadSelector policies to apply to
+ the wrong namespace in ztunnel. (Issue #51556)
+ * Fixed a bug causing discoverySelectors to accidentally filter
+ out all GatewayClasses.
+ * Fixed certificate chains parsing avoid unnecessary parsing
+ errors by trimming unnecessary intermediate certificates.
+ * Fixed a bug in ambient mode causing requests at the start of a
+ Pod lifetime to be rejected with unknown source.
+ * Fixed an issue in ztunnel where some expected connection
+ terminations were reported as errors.
+ * Fixed an issue in ztunnel when connecting to a service with a
+ targetPort that exists only on a subset of pods.
+ * Fixed an issue when deleting a ServiceEntry when there are
+ duplicate hostnames across multiple ServiceEntries.
+ * Fixed an issue where ztunnel would send directly to pods when
+ connecting to a LoadBalancer IP, instead of going through the
+ LoadBalancer.
+ * Fixed an issue where ztunnel would send traffic to terminating
+ pods.
+
+-------------------------------------------------------------------
Old:
----
istio-1.22.1.obscpio
New:
----
istio-1.22.2.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ istioctl.spec ++++++
--- /var/tmp/diff_new_pack.x686Xu/_old 2024-07-04 16:27:01.059712373 +0200
+++ /var/tmp/diff_new_pack.x686Xu/_new 2024-07-04 16:27:01.059712373 +0200
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: istioctl
-Version: 1.22.1
+Version: 1.22.2
Release: 0
Summary: CLI for the istio servic mesh in Kubernetes
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.x686Xu/_old 2024-07-04 16:27:01.091713541 +0200
+++ /var/tmp/diff_new_pack.x686Xu/_new 2024-07-04 16:27:01.095713687 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/istio/istio</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">1.22.1</param>
+ <param name="revision">1.22.2</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">disable</param>
</service>
@@ -16,7 +16,7 @@
<param name="compression">gz</param>
</service>
<service name="go_modules" mode="manual">
- <param name="archive">istio-1.22.1.obscpio</param>
+ <param name="archive">istio-1.22.2.obscpio</param>
</service>
</services>
++++++ istio-1.22.1.obscpio -> istio-1.22.2.obscpio ++++++
/work/SRC/openSUSE:Factory/istioctl/istio-1.22.1.obscpio /work/SRC/openSUSE:Factory/.istioctl.new.2080/istio-1.22.2.obscpio differ: char 49, line 1
++++++ istio.obsinfo ++++++
--- /var/tmp/diff_new_pack.x686Xu/_old 2024-07-04 16:27:01.139715293 +0200
+++ /var/tmp/diff_new_pack.x686Xu/_new 2024-07-04 16:27:01.143715439 +0200
@@ -1,5 +1,5 @@
name: istio
-version: 1.22.1
-mtime: 1717274947
-commit: a1a76b8e75f810eb6c808b04531343ae2c7b8082
+version: 1.22.2
+mtime: 1719426913
+commit: 204da5ba47f295a8dc56936333e692f6a8707649
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/istioctl/vendor.tar.gz /work/SRC/openSUSE:Factory/.istioctl.new.2080/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package lyx for openSUSE:Factory checked in at 2024-07-04 16:25:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lyx (Old)
and /work/SRC/openSUSE:Factory/.lyx.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lyx"
Thu Jul 4 16:25:22 2024 rev:110 rq:1185215 version:2.4.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/lyx/lyx.changes 2024-06-03 17:41:01.617621654 +0200
+++ /work/SRC/openSUSE:Factory/.lyx.new.2080/lyx.changes 2024-07-04 16:26:47.379212968 +0200
@@ -1,0 +2,8 @@
+Wed Jul 3 17:41:35 UTC 2024 - Cor Blom <cornelis(a)solcon.nl>
+
+- Update to 2.4.1:
+ * First maintenance release with many fixes. For
+ details see included ANNOUNCE
+ or https://www.lyx.org/announce/2_4_1.txt
+
+-------------------------------------------------------------------
Old:
----
lyx-2.4.0.tar.xz
lyx-2.4.0.tar.xz.sig
New:
----
lyx-2.4.1.tar.xz
lyx-2.4.1.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lyx.spec ++++++
--- /var/tmp/diff_new_pack.d4p0MD/_old 2024-07-04 16:26:49.327284082 +0200
+++ /var/tmp/diff_new_pack.d4p0MD/_new 2024-07-04 16:26:49.355285104 +0200
@@ -21,7 +21,7 @@
%endif
Name: lyx
-Version: 2.4.0
+Version: 2.4.1
Release: 0
Summary: WYSIWYM (What You See Is What You Mean) document processor
License: GPL-2.0-or-later
++++++ lyx-2.4.0.tar.xz -> lyx-2.4.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/lyx/lyx-2.4.0.tar.xz /work/SRC/openSUSE:Factory/.lyx.new.2080/lyx-2.4.1.tar.xz differ: char 27, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package matrix-synapse for openSUSE:Factory checked in at 2024-07-04 16:25:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/matrix-synapse (Old)
and /work/SRC/openSUSE:Factory/.matrix-synapse.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "matrix-synapse"
Thu Jul 4 16:25:14 2024 rev:103 rq:1185213 version:1.110.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/matrix-synapse/matrix-synapse.changes 2024-06-18 22:52:56.772781035 +0200
+++ /work/SRC/openSUSE:Factory/.matrix-synapse.new.2080/matrix-synapse.changes 2024-07-04 16:26:42.143021821 +0200
@@ -1,0 +2,101 @@
+Wed Jul 3 18:33:06 UTC 2024 - Marcus Rueckert <mrueckert(a)suse.de>
+
+- Update to 1.110.0
+ - Features
+ - Add initial implementation of an experimental MSC3575 Sliding
+ Sync /sync endpoint. (#17187)
+ - Add experimental support for MSC3823 - Account suspension.
+ (#17255)
+ - Improve ratelimiting in Synapse. (#17256)
+ - Add support for the unstable MSC4151 report room API.
+ (#17270, #17296)
+ - Filter for public and empty rooms added to Admin-API List
+ Room API. (#17276)
+ - Add is_dm filtering to experimental MSC3575 Sliding Sync
+ /sync endpoint. (#17277)
+ - Add is_encrypted filtering to experimental MSC3575 Sliding
+ Sync /sync endpoint. (#17281)
+ - Include user membership in events served to clients, per
+ MSC4115. (#17282)
+ - Do not require user-interactive authentication for uploading
+ cross-signing keys for the first time, per MSC3967. (#17284)
+ - Add stream_ordering sort to experimental MSC3575 Sliding Sync
+ /sync endpoint. (#17293)
+ - register_new_matrix_user now supports a --password-file flag,
+ which
+ - is useful for scripting. (#17294)
+ - register_new_matrix_user now supports a --exists-ok flag to
+ allow registration of users that already exist in the
+ database.
+ - This is useful for scripts that bootstrap user accounts with
+ initial passwords. (#17304)
+ - Add support for via query parameter from MSC4156. (#17322)
+ - Add is_invite filtering to experimental MSC3575 Sliding Sync
+ /sync endpoint. (#17335)
+ - Support MSC3916 by adding a federation /download endpoint.
+ (#17350)
+ - Bugfixes
+ - Fix bug where /sync requests could get blocked indefinitely
+ after an upgrade from Synapse versions before v1.109.0.
+ (#17386, [#17391](https://github.com/ /issues/17391))
+ - Fix searching for users with their exact localpart whose ID
+ includes a hyphen. (#17254)
+ - Fix wrong retention policy being used when filtering events.
+ (#17272)
+ - Fix bug where OTKs were not always included in /sync response
+ when using workers. (#17275)
+ - Fix a long-standing bug where an invalid 'from' parameter to
+ /notifications would result in an Internal Server Error.
+ (#17283)
+ - Fix edge case in /sync returning the wrong the state when
+ using sharded event persisters. (#17295)
+ - Add initial implementation of an experimental MSC3575 Sliding
+ Sync /sync endpoint. (#17301)
+ - Fix email notification subject when invited to a space.
+ (#17336)
+ - Improved Documentation
+ - Add missing quotes for example for exclude_rooms_from_sync.
+ (#17308)
+ - Update header in the README to visually fix the the
+ auto-generated table of contents. (#17329)
+ - Fix stale references to the Foundation's Security Disclosure
+ Policy. (#17341)
+ - Add default values for rc_invites.per_issuer to docs.
+ (#17347)
+ - Fix an error in the docs for search_all_users parameter under
+ user_directory. (#17348)
+ - Internal Changes
+ - Limit size of presence EDUs to 50 entries. (#17371)
+ - Fix building debian package for debian sid. (#17389)
+ - Fix uploading packages to PyPi. (#17363)
+ - Remove unused expire_access_token option in the Synapse
+ Docker config file. Contributed by @AaronDewes. (#17198)
+ - Use fully-qualified PersistedEventPosition when returning
+ RoomsForUser to facilitate proper comparisons and
+ RoomStreamToken generation. (#17265)
+ - Add debug logging for when room keys are uploaded, including
+ whether they are replacing other room keys. (#17266)
+ - Handle OTK uploads off master. (#17271)
+ - Don't try and resync devices for remote users whose servers
+ are marked as down. (#17273)
+ - Re-organize Pydantic models and types used in handlers.
+ (#17279)
+ - Expose the worker instance that persisted the event on
+ event.internal_metadata.instance_name. (#17300)
+ - Update the README with Element branding, improve headers and
+ fix the #synapse:matrix.org support room link rendering.
+ (#17324)
+ - Change path of the experimental MSC3575 Sliding Sync
+ implementation to /org.matrix.simplified_msc3575/sync since
+ our simplified API is slightly incompatible with what's in
+ the current MSC. (#17331)
+ - Handle device lists notifications for large accounts more
+ efficiently in worker mode. (#17333, #17358)
+ - Do not block event sending/receiving while calculating large
+ event auth chains. (#17338)
+ - Tidy up parse_integer docs and call sites to reflect the fact
+ that they require non-negative integers by default, and bring
+ parse_integer_from_args default in alignment. Contributed by
+ Denis Kasak (@dkasak). (#17339)
+
+-------------------------------------------------------------------
Old:
----
matrix-synapse-1.109.0.obscpio
New:
----
matrix-synapse-1.110.0.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ matrix-synapse-test.spec ++++++
--- /var/tmp/diff_new_pack.SiNcyI/_old 2024-07-04 16:26:44.407104472 +0200
+++ /var/tmp/diff_new_pack.SiNcyI/_new 2024-07-04 16:26:44.407104472 +0200
@@ -27,7 +27,7 @@
%define pkgname matrix-synapse
Name: %{pkgname}-test
-Version: 1.109.0
+Version: 1.110.0
Release: 0
Summary: Test package for %{pkgname}
License: AGPL-3.0-or-later
++++++ matrix-synapse.spec ++++++
--- /var/tmp/diff_new_pack.SiNcyI/_old 2024-07-04 16:26:44.435105493 +0200
+++ /var/tmp/diff_new_pack.SiNcyI/_new 2024-07-04 16:26:44.435105493 +0200
@@ -20,7 +20,7 @@
# NOTE: Keep this is in the same order as pyproject.toml.
%if %{with use_poetry_for_dependencies}
-%global Jinja2_version 3.1.2
+%global Jinja2_version 3.1.4
%global Pillow_version 10.2.0
%global PyYAML_version 6.0.1
%global attrs_version 23.2.0
@@ -34,9 +34,11 @@
%global jsonschema_version 4.20.0
%global matrix_common_version 1.3.0
%global matrix_common_max_version 2
+# TODO 1.0.8
%global msgpack_version 1.0.7
+# TODO 1.3.0
%global netaddr_version 1.2.1
-%global phonenumbers_version 8.13.33
+%global phonenumbers_version 8.13.39
%global prometheus_client_version 0.20.0
%global psutil_version 2.0.0
%global pyOpenSSL_version 24.1.0
@@ -55,10 +57,9 @@
%global packaging_version 24.0
%global psycopg2_version 2.9.9
%global pysaml2_version 7.3.1
-%global Authlib_version 1.3.0
-# TODO: 5.2.2
-%global lxml_version 5.1.0
-%global sentry_sdk_version 2.1.1
+%global Authlib_version 1.3.1
+%global lxml_version 5.2.2
+%global sentry_sdk_version 2.6.0
%global PyJWT_version 2.6.0
%global jaeger_client_version 4.8.0
%global opentracing_version 2.4.0
@@ -66,8 +67,7 @@
%global txredisapi_version 1.4.10
%global Pympler_version 1.0.1
%global pydantic_version 2.7.1
-# TODO: 2.13.1
-%global pyicu_version 2.12
+%global pyicu_version 2.13.1
%else
# some version locks based on poetry.lock
%global Jinja2_version 3.0
@@ -150,7 +150,7 @@
%define pkgname matrix-synapse
%define eggname matrix_synapse
Name: %{pkgname}
-Version: 1.109.0
+Version: 1.110.0
Release: 0
Summary: Matrix protocol reference homeserver
License: AGPL-3.0-or-later
++++++ _service ++++++
--- /var/tmp/diff_new_pack.SiNcyI/_old 2024-07-04 16:26:44.495107684 +0200
+++ /var/tmp/diff_new_pack.SiNcyI/_new 2024-07-04 16:26:44.499107830 +0200
@@ -4,11 +4,11 @@
<param name="versionformat">@PARENT_TAG@</param>
<param name="url">https://github.com/element-hq/synapse.git</param>
<param name="scm">git</param>
- <param name="revision">v1.109.0</param>
+ <param name="revision">v1.110.0</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="versionrewrite-replacement">\1</param>
<!--
- <param name="revision">v1.110.0rc1</param>
+ <param name="revision">v1.111.0rc1</param>
<param name="versionrewrite-pattern">v([\.\d]+)(rc.*)</param>
<param name="versionrewrite-replacement">\1~\2</param>
-->
++++++ matrix-synapse-1.109.0.obscpio -> matrix-synapse-1.110.0.obscpio ++++++
/work/SRC/openSUSE:Factory/matrix-synapse/matrix-synapse-1.109.0.obscpio /work/SRC/openSUSE:Factory/.matrix-synapse.new.2080/matrix-synapse-1.110.0.obscpio differ: char 49, line 1
++++++ matrix-synapse.obsinfo ++++++
--- /var/tmp/diff_new_pack.SiNcyI/_old 2024-07-04 16:26:44.563110166 +0200
+++ /var/tmp/diff_new_pack.SiNcyI/_new 2024-07-04 16:26:44.567110312 +0200
@@ -1,5 +1,5 @@
name: matrix-synapse
-version: 1.109.0
-mtime: 1718703994
-commit: 4af654f0da31072bf0e0cac33202c621369ee823
+version: 1.110.0
+mtime: 1720019369
+commit: 75b788f49f005bbc70b459d30913f1f7abf847cb
++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/matrix-synapse/vendor.tar.zst /work/SRC/openSUSE:Factory/.matrix-synapse.new.2080/vendor.tar.zst differ: char 7, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package fence-agents for openSUSE:Factory checked in at 2024-07-04 16:25:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fence-agents (Old)
and /work/SRC/openSUSE:Factory/.fence-agents.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fence-agents"
Thu Jul 4 16:25:12 2024 rev:74 rq:1185211 version:4.15.0+git.1719822011.7a2c0a7f
Changes:
--------
--- /work/SRC/openSUSE:Factory/fence-agents/fence-agents.changes 2024-02-29 21:52:19.798315735 +0100
+++ /work/SRC/openSUSE:Factory/.fence-agents.new.2080/fence-agents.changes 2024-07-04 16:26:38.146875943 +0200
@@ -1,0 +2,24 @@
+Wed Jul 03 18:27:35 UTC 2024 - varkoly(a)suse.com
+
+- Update to version 4.15.0+git.1719822011.7a2c0a7f:
+ * all agents: dont use Deprecated logging.warn()
+ * symlinked agents: set agent_name to use when generating manpages
+ * fence2man.xsl: improve text for symlinked agents
+ * fence_sbd: --sbd-path defaults to /usr/sbin/sbd
+ * configure: check additional paths for programs
+ * fence_aws: log error if unknown state returned
+ * fence_aws: improve list, list-status and status actions
+ * fencing: use formatted strings to avoid failing when plug is int
+ * fence_azure: fix pinning client api versions for compatibility across different azure sdk versions
+ * fence_docker: Connect to Docker via a UNIX socket
+ * fence_hpblade/fence_mpath/fence_scsi: use r"" for all regular expressions to avoid SyntaxWarning errors
+ * fence_aws: fixes to not fail CI, and dont use boto3 buildreq on CI nodes where it's not installed
+ * fence_eps: add fence_epsr2 for ePowerSwitch R2 and newer
+ * fencing: add support for docs["agent_name"] to use the main agent name when generating manpages
+ * spec: only require python3-azure-sdk for RHEL < 9
+ * spec: remove old python3-azure-sdk dependency
+ * fence_aliyun: update order for new parameters
+ * fence_aliyun: add credentials file support
+ * lib/all agents: use r"" for all regular expressions to avoid SyntaxWarning errors
+
+-------------------------------------------------------------------
Old:
----
fence-agents-4.13.1+git.1707822268.4229d52f.tar.xz
New:
----
fence-agents-4.15.0+git.1719822011.7a2c0a7f.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fence-agents.spec ++++++
--- /var/tmp/diff_new_pack.8mezEh/_old 2024-07-04 16:26:38.854901789 +0200
+++ /var/tmp/diff_new_pack.8mezEh/_new 2024-07-04 16:26:38.854901789 +0200
@@ -25,7 +25,7 @@
Summary: Fence Agents for High Availability
License: GPL-2.0-only AND LGPL-2.1-only
Group: Productivity/Clustering/HA
-Version: 4.13.1+git.1707822268.4229d52f
+Version: 4.15.0+git.1719822011.7a2c0a7f
Release: 0
URL: https://github.com/ClusterLabs/fence-agents
Source0: %{name}-%{version}.tar.xz
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.8mezEh/_old 2024-07-04 16:26:38.894903249 +0200
+++ /var/tmp/diff_new_pack.8mezEh/_new 2024-07-04 16:26:38.898903395 +0200
@@ -3,6 +3,6 @@
<param name="url">git://github.com/ClusterLabs/fence-agents.git</param>
<param name="changesrevision">8d746be92f191aa289f13a3703031c122a5e6cf3</param></service><service name="tar_scm">
<param name="url">https://github.com/ClusterLabs/fence-agents</param>
- <param name="changesrevision">fc7d7c4baef64f510bd3332c9f008d3e1128dc7b</param></service></servicedata>
+ <param name="changesrevision">74e56b9ea5465ee0b703eb145a286b6a2458ba1d</param></service></servicedata>
(No newline at EOF)
++++++ fence-agents-4.13.1+git.1707822268.4229d52f.tar.xz -> fence-agents-4.15.0+git.1719822011.7a2c0a7f.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/Makefile.am new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/Makefile.am
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/Makefile.am 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/Makefile.am 2024-07-01 10:20:11.000000000 +0200
@@ -25,6 +25,12 @@
SUBDIRS = lib agents doc systemd
+if HAVE_BOTO3
+HAVE_BOTO3 = 1
+else
+HAVE_BOTO3 = 0
+endif
+
.PHONY: $(SUBDIRS)
agents: lib
@@ -77,6 +83,7 @@
alphatag="" && \
numcomm="" && \
ver="$(VERSION)" && \
+ boto3_br="$(HAVE_BOTO3)" && \
if echo $$ver | grep -q -- "-dirty$$"; then \
dirty="dirty" && \
echo VERSION IS DIRTY && \
@@ -113,6 +120,7 @@
-e "s#@rgmanager@#$(RGMANAGER)#g" \
-e "s#@linux-ha@#$(LINUX_HA)#g" \
-e "s#@compat-habindir@#$(COMPAT_HABINDIR)#g" \
+ -e "s#@boto3_br@#$$boto3_br#g" \
$< > $@-t; \
if [ -z "$$dirty" ]; then sed -i -e "s#%glo.*dirty.*##g" $@-t; fi; \
if [ -z "$$alphatag" ]; then sed -i -e "s#%glo.*alphatag.*##g" $@-t; fi; \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/aliyun/fence_aliyun.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/aliyun/fence_aliyun.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/aliyun/fence_aliyun.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/aliyun/fence_aliyun.py 2024-07-01 10:20:11.000000000 +0200
@@ -15,7 +15,7 @@
from aliyunsdkcore.auth.credentials import EcsRamRoleCredential
from aliyunsdkcore.profile import region_provider
except ImportError as e:
- logging.warn("The 'aliyunsdkcore' module has been not installed or is unavailable, try to execute the command 'pip install aliyun-python-sdk-core --upgrade' to solve. error: %s" % e)
+ logging.warning("The 'aliyunsdkcore' module has been not installed or is unavailable, try to execute the command 'pip install aliyun-python-sdk-core --upgrade' to solve. error: %s" % e)
try:
@@ -24,7 +24,7 @@
from aliyunsdkecs.request.v20140526.StopInstanceRequest import StopInstanceRequest
from aliyunsdkecs.request.v20140526.RebootInstanceRequest import RebootInstanceRequest
except ImportError as e:
- logging.warn("The 'aliyunsdkecs' module has been not installed or is unavailable, try to execute the command 'pip install aliyun-python-sdk-ecs --upgrade' to solve. error: %s" % e)
+ logging.warning("The 'aliyunsdkecs' module has been not installed or is unavailable, try to execute the command 'pip install aliyun-python-sdk-ecs --upgrade' to solve. error: %s" % e)
def _send_request(conn, request):
@@ -150,20 +150,37 @@
"required": "0",
"order": 5
}
+ all_opt["credentials_file"] = {
+ "getopt": ":",
+ "longopt": "credentials-file",
+ "help": "--credentials-file=[path] Path to aliyun-cli credentials file",
+ "shortdesc": "Path to credentials file",
+ "required": "0",
+ "order": 6
+ }
+ all_opt["credentials_file_profile"] = {
+ "getopt": ":",
+ "longopt": "credentials-file-profile",
+ "help": "--credentials-file-profile=[profile] Credentials file profile",
+ "shortdesc": "Credentials file profile",
+ "required": "0",
+ "default": "default",
+ "order": 7
+ }
all_opt["filter"] = {
"getopt": ":",
"longopt": "filter",
"help": "--filter=[key=value] Filter (e.g. InstanceIds=[\"i-XXYYZZAA1\",\"i-XXYYZZAA2\"]",
"shortdesc": "Filter for list-action.",
"required": "0",
- "order": 6
+ "order": 8
}
# Main agent method
def main():
conn = None
- device_opt = ["port", "no_password", "region", "access_key", "secret_key", "ram_role", "filter"]
+ device_opt = ["port", "no_password", "region", "access_key", "secret_key", "ram_role", "credentials_file", "credentials_file_profile", "filter"]
atexit.register(atexit_handler)
@@ -191,6 +208,16 @@
ram_role = options["--ram-role"]
role = EcsRamRoleCredential(ram_role)
conn = client.AcsClient(region_id=region, credential=role)
+ elif "--credentials-file" in options and "--credentials-file-profile" in options:
+ import os, configparser
+ try:
+ config = configparser.ConfigParser()
+ config.read(os.path.expanduser(options["--credentials-file"]))
+ access_key = config.get(options["--credentials-file-profile"], "aliyun_access_key_id")
+ secret_key = config.get(options["--credentials-file-profile"], "aliyun_access_key_secret")
+ conn = client.AcsClient(access_key, secret_key, region)
+ except Exception as e:
+ fail_usage("Failed: failed to read credentials file: %s" % e)
else:
fail_usage("Failed: User credentials are not set. Please set the Access Key and the Secret Key, or configure the RAM role.")
@@ -198,7 +225,7 @@
try:
region_provider.modify_point('Ecs', region, 'ecs.%s.aliyuncs.com' % region)
except Exception as e:
- logging.warn("Failed: failed to modify endpoint to 'ecs.%s.aliyuncs.com': %s" % (region, e))
+ logging.warning("Failed: failed to modify endpoint to 'ecs.%s.aliyuncs.com': %s" % (region, e))
# Operate the fencing device
result = fence_action(conn, options, set_power_status, get_power_status, get_nodes_list)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/alom/fence_alom.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/alom/fence_alom.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/alom/fence_alom.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/alom/fence_alom.py 2024-07-01 10:20:11.000000000 +0200
@@ -13,7 +13,7 @@
def get_power_status(conn, options):
conn.send_eol("showplatform")
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
- status = re.search("standby", conn.before.lower())
+ status = re.search(r"standby", conn.before.lower())
result = (status != None and "off" or "on")
return result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/amt/fence_amt.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/amt/fence_amt.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/amt/fence_amt.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/amt/fence_amt.py 2024-07-01 10:20:11.000000000 +0200
@@ -13,7 +13,7 @@
def get_power_status(_, options):
output = amt_run_command(options, create_command(options, "status"))
- match = re.search('Powerstate:[\\s]*(..)', str(output))
+ match = re.search(r'Powerstate:[\s]*(..)', str(output))
status = match.group(1) if match else None
if status == None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/apc/fence_apc.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/apc/fence_apc.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/apc/fence_apc.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/apc/fence_apc.py 2024-07-01 10:20:11.000000000 +0200
@@ -36,21 +36,21 @@
admin = 0
switch = 0
- if None != re.compile('.* MasterSwitch plus.*', re.IGNORECASE | re.S).match(conn.before):
+ if None != re.compile(r'.* MasterSwitch plus.*', re.IGNORECASE | re.S).match(conn.before):
switch = 1
- if None != re.compile('.* MasterSwitch plus 2', re.IGNORECASE | re.S).match(conn.before):
+ if None != re.compile(r'.* MasterSwitch plus 2', re.IGNORECASE | re.S).match(conn.before):
if "--switch" not in options:
fail_usage("Failed: You have to enter physical switch number")
else:
if "--switch" not in options:
options["--switch"] = "1"
- if None == re.compile('.*Outlet Management.*', re.IGNORECASE | re.S).match(conn.before):
+ if None == re.compile(r'.*Outlet Management.*', re.IGNORECASE | re.S).match(conn.before):
version = 2
else:
version = 3
- if None == re.compile('.*Outlet Control/Configuration.*', re.IGNORECASE | re.S).match(conn.before):
+ if None == re.compile(r'.*Outlet Control/Configuration.*', re.IGNORECASE | re.S).match(conn.before):
admin = 0
else:
admin = 1
@@ -109,26 +109,26 @@
admin3 = 0
switch = 0
- if None != re.compile('.* MasterSwitch plus.*', re.IGNORECASE | re.S).match(conn.before):
+ if None != re.compile(r'.* MasterSwitch plus.*', re.IGNORECASE | re.S).match(conn.before):
switch = 1
## MasterSwitch has different schema for on/off actions
action = {
'on' : "1",
'off': "3"
}[options["--action"]]
- if None != re.compile('.* MasterSwitch plus 2', re.IGNORECASE | re.S).match(conn.before):
+ if None != re.compile(r'.* MasterSwitch plus 2', re.IGNORECASE | re.S).match(conn.before):
if "--switch" not in options:
fail_usage("Failed: You have to enter physical switch number")
else:
if "--switch" not in options:
options["--switch"] = 1
- if None == re.compile('.*Outlet Management.*', re.IGNORECASE | re.S).match(conn.before):
+ if None == re.compile(r'.*Outlet Management.*', re.IGNORECASE | re.S).match(conn.before):
version = 2
else:
version = 3
- if None == re.compile('.*Outlet Control/Configuration.*', re.IGNORECASE | re.S).match(conn.before):
+ if None == re.compile(r'.*Outlet Control/Configuration.*', re.IGNORECASE | re.S).match(conn.before):
admin2 = 0
else:
admin2 = 1
@@ -142,7 +142,7 @@
else:
conn.send_eol("2")
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
- if None == re.compile('.*2- Outlet Restriction.*', re.IGNORECASE | re.S).match(conn.before):
+ if None == re.compile(r'.*2- Outlet Restriction.*', re.IGNORECASE | re.S).match(conn.before):
admin3 = 0
else:
admin3 = 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/apc_snmp/fence_apc_snmp.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/apc_snmp/fence_apc_snmp.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/apc_snmp/fence_apc_snmp.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/apc_snmp/fence_apc_snmp.py 2024-07-01 10:20:11.000000000 +0200
@@ -215,6 +215,7 @@
options["--switch"] = "1"
docs = {}
+ docs["agent_name"] = "fence_apc_snmp"
docs["shortdesc"] = "Fence agent for APC, Tripplite PDU over SNMP"
docs["longdesc"] = "{} is a Power Fencing agent \
which can be used with the APC network power switch or Tripplite PDU devices.\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/aws/fence_aws.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/aws/fence_aws.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/aws/fence_aws.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/aws/fence_aws.py 2024-07-01 10:20:11.000000000 +0200
@@ -22,6 +22,15 @@
logger.addHandler(SyslogLibHandler())
logging.getLogger('botocore.vendored').propagate = False
+status = {
+ "running": "on",
+ "stopped": "off",
+ "pending": "unknown",
+ "stopping": "unknown",
+ "shutting-down": "unknown",
+ "terminated": "unknown"
+}
+
def get_instance_id(options):
try:
token = requests.put('http://169.254.169.254/latest/api/token', headers={"X-aws-ec2-metadata-token-ttl-seconds" : "21600"}).content.decode("UTF-8")
@@ -45,11 +54,19 @@
filter_key = options["--filter"].split("=")[0].strip()
filter_value = options["--filter"].split("=")[1].strip()
filter = [{ "Name": filter_key, "Values": [filter_value] }]
- for instance in conn.instances.filter(Filters=filter):
- result[instance.id] = ("", None)
- else:
- for instance in conn.instances.all():
- result[instance.id] = ("", None)
+ logging.debug("Filter: {}".format(filter))
+
+ for instance in conn.instances.filter(Filters=filter if 'filter' in vars() else []):
+ instance_name = ""
+ for tag in instance.tags or []:
+ if tag.get("Key") == "Name":
+ instance_name = tag["Value"]
+ try:
+ result[instance.id] = (instance_name, status[instance.state["Name"]])
+ except KeyError as e:
+ if options.get("--original-action") == "list-status":
+ logger.error("Unknown status \"{}\" returned for {} ({})".format(instance.state["Name"], instance.id, instance_name))
+ result[instance.id] = (instance_name, "unknown")
except ClientError:
fail_usage("Failed: Incorrect Access Key or Secret Key.")
except EndpointConnectionError:
@@ -67,13 +84,11 @@
instance = conn.instances.filter(Filters=[{"Name": "instance-id", "Values": [options["--plug"]]}])
state = list(instance)[0].state["Name"]
logger.debug("Status operation for EC2 instance %s returned state: %s",options["--plug"],state.upper())
- if state == "running":
- return "on"
- elif state == "stopped":
- return "off"
- else:
+ try:
+ return status[state]
+ except KeyError as e:
+ logger.error("Unknown status \"{}\" returned".format(state))
return "unknown"
-
except ClientError:
fail_usage("Failed: Incorrect Access Key or Secret Key.")
except EndpointConnectionError:
@@ -146,7 +161,7 @@
all_opt["filter"] = {
"getopt" : ":",
"longopt" : "filter",
- "help" : "--filter=[key=value] Filter (e.g. vpc-id=[vpc-XXYYZZAA]",
+ "help" : "--filter=[key=value] Filter (e.g. vpc-id=[vpc-XXYYZZAA])",
"shortdesc": "Filter for list-action",
"required": "0",
"order": 5
@@ -228,7 +243,10 @@
aws_access_key_id=access_key,
aws_secret_access_key=secret_key)
except Exception as e:
- fail_usage("Failed: Unable to connect to AWS: " + str(e))
+ if not options.get("--action", "") in ["metadata", "manpage", "validate-all"]:
+ fail_usage("Failed: Unable to connect to AWS: " + str(e))
+ else:
+ pass
# Operate the fencing device
result = fence_action(conn, options, set_power_status, get_power_status, get_nodes_list)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/azure_arm/fence_azure_arm.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/azure_arm/fence_azure_arm.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/azure_arm/fence_azure_arm.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/azure_arm/fence_azure_arm.py 2024-07-01 10:20:11.000000000 +0200
@@ -251,7 +251,7 @@
except ImportError:
fail_usage("Azure Resource Manager Python SDK not found or not accessible")
except Exception as e:
- fail_usage("Failed: %s" % re.sub("^, ", "", str(e)))
+ fail_usage("Failed: %s" % re.sub(r"^, ", r"", str(e)))
if "--network-fencing" in options:
# use off-action to quickly return off once network is fenced instead of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/cdu/fence_cdu.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/cdu/fence_cdu.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/cdu/fence_cdu.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/cdu/fence_cdu.py 2024-07-01 10:20:11.000000000 +0200
@@ -51,11 +51,11 @@
if options["api-version"] == "8":
# AA13 Arm-Console3 Wake On On Normal
# AA14 Master_Outlet_14 Wake On On Normal
- show_re = re.compile('(\w+)\s+(\S+)\s+(On|Idle On|Off|Wake On)\s+(On|Off)')
+ show_re = re.compile(r'(\w+)\s+(\S+)\s+(On|Idle On|Off|Wake On)\s+(On|Off)')
else:
# .A12 TowerA_Outlet12 On Idle On
# .A12 test-01 On Idle On
- show_re = re.compile('(\.\w+)\s+(\w+|\w+\W\w+)\s+(On|Off)\s+(On|Idle On|Off|Wake On)')
+ show_re = re.compile(r'(\.\w+)\s+(\w+|\w+\W\w+)\s+(On|Off)\s+(On|Idle On|Off|Wake On)')
for line in lines:
res = show_re.search(line)
if res != None:
@@ -89,7 +89,7 @@
# else:
# .A12 TowerA_Outlet12
# .A12 test-01
- show_re = re.compile('(\S+)\s+(\w+|\w+\W\w+)\s+')
+ show_re = re.compile(r'(\S+)\s+(\w+|\w+\W\w+)\s+')
for line in lines:
res = show_re.search(line)
if res != None:
@@ -112,7 +112,7 @@
conn.send("VERSION\r\n")
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
lines = conn.before.split("\n")
- show_re = re.compile('Sentry Switched [PC]DU Version (\d)(.\d|)(\w)\r')
+ show_re = re.compile(r'Sentry Switched [PC]DU Version (\d)(.\d|)(\w)\r')
for line in lines:
res = show_re.search(line)
if res != None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/cisco_ucs/fence_cisco_ucs.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/cisco_ucs/fence_cisco_ucs.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/cisco_ucs/fence_cisco_ucs.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/cisco_ucs/fence_cisco_ucs.py 2024-07-01 10:20:11.000000000 +0200
@@ -8,13 +8,13 @@
from fencing import *
from fencing import fail, EC_STATUS, EC_LOGIN_DENIED, run_delay
-RE_COOKIE = re.compile("<aaaLogin .* outCookie=\"(.*?)\"", re.IGNORECASE)
-RE_STATUS = re.compile("<lsPower .*? state=\"(.*?)\"", re.IGNORECASE)
-RE_GET_DN = re.compile(" dn=\"(.*?)\"", re.IGNORECASE)
-RE_GET_PNDN = re.compile(" pndn=\"(.*?)\"", re.IGNORECASE)
-RE_GET_DESC = re.compile(" descr=\"(.*?)\"", re.IGNORECASE)
-RE_GET_OPERPOWER = re.compile(" operPower=\"(.*?)\"", re.IGNORECASE)
-RE_GET_PRESENCE = re.compile(" presence=\"(.*?)\"", re.IGNORECASE)
+RE_COOKIE = re.compile(r"<aaaLogin .* outCookie=\"(.*?)\"", re.IGNORECASE)
+RE_STATUS = re.compile(r"<lsPower .*? state=\"(.*?)\"", re.IGNORECASE)
+RE_GET_DN = re.compile(r" dn=\"(.*?)\"", re.IGNORECASE)
+RE_GET_PNDN = re.compile(r" pndn=\"(.*?)\"", re.IGNORECASE)
+RE_GET_DESC = re.compile(r" descr=\"(.*?)\"", re.IGNORECASE)
+RE_GET_OPERPOWER = re.compile(r" operPower=\"(.*?)\"", re.IGNORECASE)
+RE_GET_PRESENCE = re.compile(r" presence=\"(.*?)\"", re.IGNORECASE)
options_global = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/compute/fence_compute.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/compute/fence_compute.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/compute/fence_compute.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/compute/fence_compute.py 2024-07-01 10:20:11.000000000 +0200
@@ -98,7 +98,7 @@
# Since it's about forcing back to a default value, there is
# no real worries to just consider it's still okay even if the
# command failed
- logging.warn("Exception from attempt to force "
+ logging.warning("Exception from attempt to force "
"host back up via nova API: "
"%s: %s" % (e.__class__.__name__, e))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/docker/fence_docker.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/docker/fence_docker.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/docker/fence_docker.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/docker/fence_docker.py 2024-07-01 10:20:11.000000000 +0200
@@ -48,6 +48,8 @@
output_buffer = io.BytesIO()
if logging.getLogger().getEffectiveLevel() < logging.WARNING:
conn.setopt(pycurl.VERBOSE, True)
+ if "--unix-socket" in options:
+ conn.setopt(pycurl.UNIX_SOCKET_PATH, options["--unix-socket"])
conn.setopt(pycurl.HTTPGET, 1)
conn.setopt(pycurl.URL, url.encode("ascii"))
if post:
@@ -135,12 +137,35 @@
"default" : "1.11",
}
- device_opt = ["ipaddr", "no_password", "no_login", "port", "method", "web", "tlscert", "tlskey", "tlscacert", "ssl", "api_version"]
+ all_opt["unix_socket"] = {
+ "getopt" : ":",
+ "longopt" : "unix-socket",
+ "help" : "--unix-socket "
+ "Path to Docker's unix socket. Use this with --disable-ssl.",
+ "required" : "0",
+ "order" : 2,
+ }
- all_opt["ssl"]["default"] = "1"
+ all_opt["disable_ssl"] = {
+ "getopt" : "",
+ "longopt" : "disable-ssl",
+ "help" : "--disable-ssl Don't use SSL connection",
+ "required" : "0",
+ "shortdesc" : "Don't use SSL",
+ "order": 2,
+ }
+ device_opt = ["ipaddr", "no_password", "no_login", "port", "method", "web",
+ "tlscert", "tlskey", "tlscacert", "ssl", "api_version", "unix_socket",
+ "disable_ssl"]
+ all_opt["ssl"]["default"] = "1"
options = check_input(device_opt, process_input(device_opt))
+ if "--disable-ssl" in options or options["--ssl"] == "0":
+ for k in ["--ssl", "--ssl-secure", "--ssl-insecure"]:
+ if k in options:
+ del options[k]
+
docs = { }
docs["shortdesc"] = "Fence agent for Docker"
docs["longdesc"] = "fence_docker is a Power Fencing agent which \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/eps/fence_eps.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/eps/fence_eps.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/eps/fence_eps.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/eps/fence_eps.py 2024-07-01 10:20:11.000000000 +0200
@@ -3,8 +3,8 @@
# The Following Agent Has Been Tested On:
# ePowerSwitch 8M+ version 1.0.0.4
-import sys, re
-import base64, string, socket
+import sys, os, re
+import base64, socket
import logging
import atexit
sys.path.append("@FENCEAGENTSLIBDIR@")
@@ -37,7 +37,7 @@
options["--password"] = "" # Default is empty password
# String for Authorization header
- auth_str = 'Basic ' + string.strip(base64.encodestring(options["--username"]+':'+options["--password"]))
+ auth_str = 'Basic ' + str(base64.encodebytes(bytes(options["--username"]+':'+options["--password"], "utf-8")).decode("utf-8").strip())
logging.debug("Authorization: %s\n", auth_str)
conn.putheader('Authorization', auth_str)
@@ -60,16 +60,22 @@
logging.error("Failed: {}".format(str(e)))
fail(EC_LOGIN_DENIED)
- return result
+ return result.decode("utf-8", "ignore")
def get_power_status(conn, options):
del conn
ret_val = eps_run_command(options, "")
result = {}
- status = re.findall(r"p(\d{2})=(0|1)\s*\<br\>", ret_val.lower())
+ if os.path.basename(sys.argv[0]) == "fence_eps":
+ status = re.findall(r"p(\d{2})=(0|1)\s*\<br\>", ret_val.lower())
+ elif os.path.basename(sys.argv[0]) == "fence_epsr2":
+ status = re.findall(r"m0:o(\d)=(on|off)\s*", ret_val.lower())
for out_num, out_stat in status:
- result[out_num] = ("", (out_stat == "1" and "on" or "off"))
+ if os.path.basename(sys.argv[0]) == "fence_eps":
+ result[out_num] = ("", (out_stat == "1" and "on" or "off"))
+ elif os.path.basename(sys.argv[0]) == "fence_epsr2":
+ result[out_num] = ("", out_stat)
if not options["--action"] in ['monitor', 'list']:
if not options["--plug"] in result:
@@ -81,7 +87,12 @@
def set_power_status(conn, options):
del conn
- eps_run_command(options, "P%s=%s"%(options["--plug"], (options["--action"] == "on" and "1" or "0")))
+ if os.path.basename(sys.argv[0]) == "fence_eps":
+ eps_run_command(options, "P%s=%s"%(options["--plug"], (options["--action"] == "on" and "1" or "0")))
+ elif os.path.basename(sys.argv[0]) == "fence_epsr2":
+ if options["--action"] == "reboot":
+ options["--action"] = "off"
+ eps_run_command(options, "M0:O%s=%s"%(options["--plug"], options["--action"]))
# Define new option
def eps_define_new_opts():
@@ -107,20 +118,25 @@
options = check_input(device_opt, process_input(device_opt))
docs = {}
+ docs["agent_name"] = "fence_eps"
docs["shortdesc"] = "Fence agent for ePowerSwitch"
- docs["longdesc"] = "fence_eps is a Power Fencing agent \
+ docs["longdesc"] = os.path.basename(sys.argv[0]) + " is a Power Fencing agent \
which can be used with the ePowerSwitch 8M+ power switch to fence \
-connected machines. Fence agent works ONLY on 8M+ device, because \
-this is only one, which has support for hidden page feature. \
+connected machines. It ONLY works on 8M+ devices, as \
+they support the hidden page feature. \
\n.TP\n\
-Agent basically works by connecting to hidden page and pass \
-appropriate arguments to GET request. This means, that hidden \
-page feature must be enabled and properly configured."
- docs["vendorurl"] = "http://www.epowerswitch.com"
+The agent works by connecting to the hidden page and pass \
+the appropriate arguments to GET request. This means, that the hidden \
+page feature must be enabled and properly configured. \
+\n.TP\n\
+NOTE: In most cases you want to use fence_epsr2, as fence_eps \
+only works with older hardware."
+ docs["vendorurl"] = "https://www.neol.com"
+ docs["symlink"] = [("fence_epsr2", "Fence agent for ePowerSwitch R2 and newer")]
show_docs(options, docs)
run_delay(options)
- #Run fence action. Conn is None, beacause we always need open new http connection
+ #Run fence action. Conn is None, because we always need open new http connection
result = fence_action(None, options, set_power_status, get_power_status, get_power_status)
sys.exit(result)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/gce/fence_gce.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/gce/fence_gce.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/gce/fence_gce.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/gce/fence_gce.py 2024-07-01 10:20:11.000000000 +0200
@@ -85,8 +85,8 @@
uri_replacements.append(
{
"matchlength": 4,
- "match": "https://compute.googleapis.com/compute/v1/projects/(.*)/zones/(.*)/instance…",
- "replace": "https://baremetalsolution.googleapis.com/v1/projects/\\1/locations/\\2/inst…"
+ "match": r"https://compute.googleapis.com/compute/v1/projects/(.*)/zones/(.*)/instance…",
+ "replace": r"https://baremetalsolution.googleapis.com/v1/projects/\1/locations/\2/instan…"
})
for uri_replacement in uri_replacements:
# each uri_replacement should have matchlength, match, and replace
@@ -97,7 +97,7 @@
if match is None or len(match.groups()) != uri_replacement["matchlength"]:
continue
replaced_uri = re.sub(uri_replacement["match"], uri_replacement["replace"], http_request.uri)
- match = re.match("https:\/\/.*.googleapis.com", replaced_uri)
+ match = re.match(r"https:\/\/.*.googleapis.com", replaced_uri)
if match is None or match.start() != 0:
logging.warning("FENCE_GCE_URI_REPLACEMENTS replace is not "
"targeting googleapis.com, ignoring it: %s" % replaced_uri)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/hpblade/fence_hpblade.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/hpblade/fence_hpblade.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/hpblade/fence_hpblade.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/hpblade/fence_hpblade.py 2024-07-01 10:20:11.000000000 +0200
@@ -33,10 +33,10 @@
def get_power_status(conn, options):
if options["enc_type"] == "superdome":
cmd_send = "parstatus -M -p " + options["--plug"]
- powrestr = "^partition:\\d\\s+:\\w+\\s+/(\\w+)\\s.*$"
+ powrestr = r"^partition:\d\s+:\w+\s+/(\w+)\s.*$"
else:
cmd_send = "show server status " + options["--plug"]
- powrestr = "^\\s*Power: (.*?)\\s*$"
+ powrestr = r"^\s*Power: (.*?)\s*$"
conn.send_eol(cmd_send)
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
@@ -78,10 +78,10 @@
outlets = {}
if options["enc_type"] == "superdome":
cmd_send = "parstatus -P -M"
- listrestr = "^partition:(\\d+)\\s+:\\w+\\s+/(\\w+)\\s+:OK.*?:(\\w+)\\s*$"
+ listrestr = r"^partition:(\d+)\s+:\w+\s+/(\w+)\s+:OK.*?:(\w+)\s*$"
else:
cmd_send = "show server list"
- listrestr = "^\\s*(\\d+)\\s+(.*?)\\s+(.*?)\\s+OK\\s+(.*?)\\s+(.*?)\\s*$"
+ listrestr = r"^\s*(\d+)\s+(.*?)\s+(.*?)\s+OK\s+(.*?)\s+(.*?)\s*$"
conn.send_eol(cmd_send)
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/ilo/fence_ilo.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/ilo/fence_ilo.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/ilo/fence_ilo.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/ilo/fence_ilo.py 2024-07-01 10:20:11.000000000 +0200
@@ -72,6 +72,7 @@
options = check_input(device_opt, process_input(device_opt))
docs = {}
+ docs["agent_name"] = "fence_ilo"
docs["shortdesc"] = "Fence agent for HP iLO"
docs["longdesc"] = "{} is a Power Fencing agent \
used for HP servers with the Integrated Light Out (iLO) PCI card.\
@@ -106,7 +107,7 @@
fail(EC_LOGIN_DENIED)
try:
- version = re.compile("<RIBCL VERSION=\"(.*?)\"", re.IGNORECASE).search(conn.before).group(1)
+ version = re.compile(r"<RIBCL VERSION=\"(.*?)\"", re.IGNORECASE).search(conn.before).group(1)
if "--ribcl-version" not in options:
options["--ribcl-version"] = float(version)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/ilo_mp/fence_ilo_mp.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/ilo_mp/fence_ilo_mp.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/ilo_mp/fence_ilo_mp.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/ilo_mp/fence_ilo_mp.py 2024-07-01 10:20:11.000000000 +0200
@@ -8,7 +8,7 @@
def get_power_status(conn, options):
conn.send_eol("show /system1")
- re_state = re.compile('EnabledState=(.*)', re.IGNORECASE)
+ re_state = re.compile(r'EnabledState=(.*)', re.IGNORECASE)
conn.log_expect(re_state, int(options["--shell-timeout"]))
status = conn.match.group(1).lower()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/ilo_ssh/fence_ilo_ssh.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/ilo_ssh/fence_ilo_ssh.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/ilo_ssh/fence_ilo_ssh.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/ilo_ssh/fence_ilo_ssh.py 2024-07-01 10:20:11.000000000 +0200
@@ -9,7 +9,7 @@
def get_power_status(conn, options):
conn.send_eol("show /system1")
- re_state = re.compile('EnabledState=(.*)', re.IGNORECASE)
+ re_state = re.compile(r'EnabledState=(.*)', re.IGNORECASE)
conn.log_expect(re_state, int(options["--shell-timeout"]))
status = conn.match.group(1).lower()
@@ -49,6 +49,7 @@
options = check_input(device_opt, process_input(device_opt))
docs = {}
+ docs["agent_name"] = "fence_ilo_ssh"
docs["shortdesc"] = "Fence agent for HP iLO over SSH"
docs["longdesc"] = "{} is a Power Fencing agent that connects to iLO device. It logs into \
device via ssh and reboot a specified outlet.\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/ipmilan/fence_ipmilan.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/ipmilan/fence_ipmilan.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/ipmilan/fence_ipmilan.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/ipmilan/fence_ipmilan.py 2024-07-01 10:20:11.000000000 +0200
@@ -13,7 +13,7 @@
def get_power_status(_, options):
output = _run_command(options, "status")
- match = re.search('[Cc]hassis [Pp]ower is [\\s]*([a-zA-Z]{2,3})', str(output))
+ match = re.search(r'[Cc]hassis [Pp]ower is [\s]*([a-zA-Z]{2,3})', str(output))
status = match.group(1) if match else None
return status
@@ -23,11 +23,11 @@
def reboot_cycle(_, options):
output = _run_command(options, "cycle")
- return bool(re.search('chassis power control: cycle', str(output).lower()))
+ return bool(re.search(r'chassis power control: cycle', str(output).lower()))
def reboot_diag(_, options):
output = _run_command(options, "diag")
- return bool(re.search('chassis power control: diag', str(output).lower()))
+ return bool(re.search(r'chassis power control: diag', str(output).lower()))
def _run_command(options, action):
cmd, log_cmd = create_command(options, action)
@@ -202,10 +202,12 @@
options = check_input(device_opt, process_input(device_opt))
docs = {}
+ docs["agent_name"] = "fence_ipmilan"
docs["shortdesc"] = "Fence agent for IPMI"
docs["longdesc"] = "{} is a Power Fencing agent \
which can be used with machines controlled by IPMI. \
-This agent calls support software ipmitool (http://ipmitool.sf.net/) \
+This agent calls support software ipmitool (http://ipmitool.sf.net/).\
+\n.P\n\
WARNING! This fence agent might report success before the node is powered off. \
You should use -m/method onoff if your fence device works correctly with that option.".format(os.path.basename(__file__))
docs["vendorurl"] = ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/ironic/fence_ironic.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/ironic/fence_ironic.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/ironic/fence_ironic.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/ironic/fence_ironic.py 2024-07-01 10:20:11.000000000 +0200
@@ -20,7 +20,7 @@
def get_power_status(_, options):
output = ironic_run_command(options, "status")
stdout = output[1]
- match = re.search('power[\\s]*([a-zA-Z]{2,3})', str(stdout))
+ match = re.search(r'power[\s]*([a-zA-Z]{2,3})', str(stdout))
status = match.group(1) if match else None
return status
@@ -40,7 +40,7 @@
pass
if "UUID" in uuid:
continue # skip line header
- match = re.search('power[\\s]*([a-zA-Z]{2,3})', state)
+ match = re.search(r'power[\s]*([a-zA-Z]{2,3})', state)
status = match.group(1) if match else None
nodes[uuid] = (name, status)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/lpar/fence_lpar.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/lpar/fence_lpar.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/lpar/fence_lpar.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/lpar/fence_lpar.py 2024-07-01 10:20:11.000000000 +0200
@@ -44,10 +44,10 @@
try:
if options["--hmc-version"] == "3":
- status = re.compile("^" + options["--plug"] + ",(.*?),.*$",
+ status = re.compile(r"^" + options["--plug"] + r",(.*?),.*$",
re.IGNORECASE | re.MULTILINE).search(conn.before).group(1)
elif options["--hmc-version"] in ["4", "IVM"]:
- status = re.compile(",state=(.*?),", re.IGNORECASE).search(conn.before).group(1)
+ status = re.compile(r",state=(.*?),", re.IGNORECASE).search(conn.before).group(1)
except AttributeError as e:
logging.debug("Command on HMC failed: {}\n{}".format(command, str(e)))
fail(EC_STATUS_HMC)
@@ -60,7 +60,7 @@
conn.log_expect(options["--command-prompt"], int(options["--power-timeout"]))
try:
- cm = re.compile(",curr_master_mtms=(.*?),", re.IGNORECASE).search(conn.before).group(1)
+ cm = re.compile(r",curr_master_mtms=(.*?),", re.IGNORECASE).search(conn.before).group(1)
except AttributeError as e:
cm = False
@@ -106,7 +106,7 @@
## We have to remove next 2 lines (header) and last line (part of new prompt)
####
- res = re.search("^(.+?\n){2}(.*)\n.*$", conn.before, re.S)
+ res = re.search(r"^(.+?\n){2}(.*)\n.*$", conn.before, re.S)
if res == None:
fail_usage("Unable to parse output of list command")
@@ -126,7 +126,7 @@
## We have to remove last line (part of new prompt)
####
- res = re.search("^(.*)\n.*$", conn.before, re.S)
+ res = re.search(r"^(.*)\n.*$", conn.before, re.S)
if res == None:
fail_usage("Unable to parse output of list command")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/mpath/fence_mpath.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/mpath/fence_mpath.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/mpath/fence_mpath.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/mpath/fence_mpath.py 2024-07-01 10:20:11.000000000 +0200
@@ -331,7 +331,7 @@
if not ("--devices" in options and options["--devices"]):
fail_usage("Failed: No devices found")
- options["devices"] = [d for d in re.split("\s*,\s*|\s+", options["--devices"].strip()) if d]
+ options["devices"] = [d for d in re.split(r"\s*,\s*|\s+", options["--devices"].strip()) if d]
# Input control END
result = fence_action(None, options, set_status, get_status)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/netio/fence_netio.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/netio/fence_netio.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/netio/fence_netio.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/netio/fence_netio.py 2024-07-01 10:20:11.000000000 +0200
@@ -8,7 +8,7 @@
def get_power_status(conn, options):
conn.send_eol("port %s" % options["--plug"])
- re_status = re.compile("250 [01imt]")
+ re_status = re.compile(r"250 [01imt]")
conn.log_expect(re_status, int(options["--shell-timeout"]))
status = {
"0" : "off",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/raritan/fence_raritan.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/raritan/fence_raritan.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/raritan/fence_raritan.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/raritan/fence_raritan.py 2024-07-01 10:20:11.000000000 +0200
@@ -8,7 +8,7 @@
def get_power_status(conn, options):
conn.send_eol("show -d properties=powerState %s" % options["--plug"])
- re_status = re.compile(".*powerState is [12].*")
+ re_status = re.compile(r".*powerState is [12].*")
conn.log_expect(re_status, int(options["--shell-timeout"]))
status = {
#"0" : "off",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/rhevm/fence_rhevm.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/rhevm/fence_rhevm.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/rhevm/fence_rhevm.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/rhevm/fence_rhevm.py 2024-07-01 10:20:11.000000000 +0200
@@ -9,10 +9,10 @@
from fencing import *
from fencing import fail, EC_FETCH_VM_UUID, run_delay
-RE_GET_ID = re.compile("<vm( .*)? id=\"(.*?)\"", re.IGNORECASE)
-RE_STATUS = re.compile("<status>(.*?)</status>", re.IGNORECASE)
-RE_STATE = re.compile("<state>(.*?)</state>", re.IGNORECASE)
-RE_GET_NAME = re.compile("<name>(.*?)</name>", re.IGNORECASE)
+RE_GET_ID = re.compile(r"<vm( .*)? id=\"(.*?)\"", re.IGNORECASE)
+RE_STATUS = re.compile(r"<status>(.*?)</status>", re.IGNORECASE)
+RE_STATE = re.compile(r"<state>(.*?)</state>", re.IGNORECASE)
+RE_GET_NAME = re.compile(r"<name>(.*?)</name>", re.IGNORECASE)
def get_power_status(conn, options):
del conn
@@ -80,7 +80,7 @@
if opt["--api-version"] == "auto":
opt["--api-version"] = "4"
res = send_command(opt, "")
- if re.search("<title>Error</title>", res):
+ if re.search(r"<title>Error</title>", res):
opt["--api-version"] = "3"
logging.debug("auto-detected API version: " + opt["--api-version"])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/rsa/fence_rsa.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/rsa/fence_rsa.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/rsa/fence_rsa.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/rsa/fence_rsa.py 2024-07-01 10:20:11.000000000 +0200
@@ -16,7 +16,7 @@
conn.send_eol("power state")
conn.log_expect(options["--command-prompt"], int(options["--shell-timeout"]))
- match = re.compile("Power: (.*)", re.IGNORECASE).search(conn.before)
+ match = re.compile(r"Power: (.*)", re.IGNORECASE).search(conn.before)
if match != None:
status = match.group(1)
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/sbd/fence_sbd.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/sbd/fence_sbd.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/sbd/fence_sbd.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/sbd/fence_sbd.py 2024-07-01 10:20:11.000000000 +0200
@@ -170,7 +170,7 @@
if "msgwait" in line:
tmp_msg_timeout = int(line.split(':')[1])
if -1 != msg_timeout and tmp_msg_timeout != msg_timeout:
- logging.warn(\
+ logging.warning(\
"sbd message timeouts differ in different devices")
# we only save the highest timeout
if tmp_msg_timeout > msg_timeout:
@@ -418,7 +418,7 @@
power_timeout = int(options["--power-timeout"])
sbd_msg_timeout = get_msg_timeout(options)
if 0 < power_timeout <= sbd_msg_timeout:
- logging.warn("power timeout needs to be \
+ logging.warning("power timeout needs to be \
greater then sbd message timeout")
result = fence_action(\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/scsi/fence_scsi.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/scsi/fence_scsi.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/scsi/fence_scsi.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/scsi/fence_scsi.py 2024-07-01 10:20:11.000000000 +0200
@@ -236,11 +236,11 @@
cmd = options["--corosync-cmap-path"] + " nodelist"
out = run_cmd(options, cmd)["out"]
- match = re.search(r".(\d+).name \(str\) = " + options["--plug"] + "\n", out)
+ match = re.search(r".(\d+).name \(str\) = " + options["--plug"] + r"\n", out)
# try old format before failing
if not match:
- match = re.search(r".(\d+).ring._addr \(str\) = " + options["--plug"] + "\n", out)
+ match = re.search(r".(\d+).ring._addr \(str\) = " + options["--plug"] + r"\n", out)
return match.group(1) if match else fail_usage("Failed: unable to parse output of corosync-cmapctl or node does not exist")
@@ -295,7 +295,7 @@
fail_usage("Failed: Cannot open file \""+ file_path + "\"")
f.seek(0)
out = f.read()
- if not re.search(r"^" + dev + "\s+", out, flags=re.MULTILINE):
+ if not re.search(r"^" + dev + r"\s+", out, flags=re.MULTILINE):
f.write(dev + "\n")
f.close()
@@ -613,10 +613,10 @@
options["--key"] = options["--key"].lstrip('0')
- if not ("--devices" in options and [d for d in re.split("\s*,\s*|\s+", options["--devices"].strip()) if d]):
+ if not ("--devices" in options and [d for d in re.split(r"\s*,\s*|\s+", options["--devices"].strip()) if d]):
options["devices"] = get_shared_devices(options)
else:
- options["devices"] = [d for d in re.split("\s*,\s*|\s+", options["--devices"].strip()) if d]
+ options["devices"] = [d for d in re.split(r"\s*,\s*|\s+", options["--devices"].strip()) if d]
if not options["devices"]:
fail_usage("Failed: No devices found")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/wti/fence_wti.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/wti/fence_wti.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/agents/wti/fence_wti.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/agents/wti/fence_wti.py 2024-07-01 10:20:11.000000000 +0200
@@ -27,7 +27,7 @@
re_all = list(options["--command-prompt"])
else:
re_all = [options["--command-prompt"]]
- re_next = re.compile("Enter: ", re.IGNORECASE)
+ re_next = re.compile(r"Enter: ", re.IGNORECASE)
re_all.append(re_next)
result = conn.log_expect(re_all, int(options["--shell-timeout"]))
@@ -208,8 +208,8 @@
conn.send("set binary\n")
conn.send("open %s -%s\n"%(options["--ip"], options["--ipport"]))
- re_login = re.compile("(login: )|(Login Name: )|(username: )|(User Name :)", re.IGNORECASE)
- re_prompt = re.compile("|".join(["(" + x + ")" for x in options["--command-prompt"]]), re.IGNORECASE)
+ re_login = re.compile(r"(login: )|(Login Name: )|(username: )|(User Name :)", re.IGNORECASE)
+ re_prompt = re.compile(r"|".join(["(" + x + ")" for x in options["--command-prompt"]]), re.IGNORECASE)
result = conn.log_expect([re_login, "Password: ", re_prompt], int(options["--shell-timeout"]))
if result == 0:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/configure.ac new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/configure.ac
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/configure.ac 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/configure.ac 2024-07-01 10:20:11.000000000 +0200
@@ -262,6 +262,10 @@
CLUSTERVARRUN=${localstatedir}/run/cluster
CLUSTERDATA=${datadir}/cluster
+## Program Paths
+PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin"
+export PATH
+
AC_PATH_PROGS(XMLLINT, xmllint)
AM_CONDITIONAL(BUILD_DOC, test "x$XMLLINT" != "x" )
if test "x$XMLLINT" = "x"; then
@@ -291,6 +295,9 @@
AC_PYTHON_MODULE(pycurl, 1)
AC_PYTHON_MODULE(requests, 1)
+AC_PYTHON_MODULE(boto3)
+AM_CONDITIONAL(HAVE_BOTO3, [test "x$HAVE_PYMOD_BOTO3" == xyes ])
+
if echo "$AGENTS_LIST" | grep -q amt_ws; then
AC_PYTHON_MODULE(pywsman)
if test "x${HAVE_PYMOD_PYWSMAN}" != xyes; then
@@ -322,7 +329,7 @@
AC_PATH_PROG([SSH_PATH], [ssh], [/usr/bin/ssh])
AC_PATH_PROG([TELNET_PATH], [telnet], [/usr/bin/telnet])
AC_PATH_PROG([MPATH_PATH], [mpathpersist], [/usr/sbin/mpathpersist])
-AC_PATH_PROG([SBD_PATH], [sbd], [/sbin/sbd])
+AC_PATH_PROG([SBD_PATH], [sbd], [/usr/sbin/sbd])
AC_PATH_PROG([SUDO_PATH], [sudo], [/usr/bin/sudo])
AC_PATH_PROG([SNMPWALK_PATH], [snmpwalk], [/usr/bin/snmpwalk])
AC_PATH_PROG([SNMPSET_PATH], [snmpset], [/usr/bin/snmpset])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/fence-agents.spec.in new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/fence-agents.spec.in
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/fence-agents.spec.in 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/fence-agents.spec.in 2024-07-01 10:20:11.000000000 +0200
@@ -24,11 +24,7 @@
URL: https://github.com/ClusterLabs/fence-agents
Source0: %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.bz2
-%if 0%{?rhel} == 9
-%ifarch ppc64le s390x
-%define rhel9_ppc64le_s390x 1
-%endif
-%endif
+%define boto3_br @boto3_br@
# skipped: pve, raritan, rcd-serial, virsh
%global allfenceagents %(cat <<EOF
@@ -124,11 +120,14 @@
%endif
%if 0%{?fedora} || 0%{?centos} || 0%{?rhel}
BuildRequires: openwsman-python3
-%if ! %{defined rhel9_ppc64le_s390x}
+%if %{boto3_br}
BuildRequires: python3-boto3
%endif
%else
-BuildRequires: python3-openwsman python3-boto3
+BuildRequires: python3-openwsman
+%if %{boto3_br}
+BuildRequires: python3-boto3
+%endif
%endif
# fence-virt
@@ -381,14 +380,14 @@
License: GPL-2.0-or-later AND LGPL-2.0-or-later
Summary: Fence agent for Azure Resource Manager
Requires: fence-agents-common = %{version}-%{release}
-%if 0%{?fedora} > 34
+%if 0%{?rhel} && 0%{?rhel} < 9
+Requires: python3-azure-sdk
+%else
Requires: python3-azure-common
Requires: python3-azure-identity
Requires: python3-azure-mgmt-compute
Requires: python3-azure-mgmt-network
Requires: python3-msrestazure
-%else
-Requires: python3-azure-sdk
%endif
BuildArch: noarch
Obsoletes: fence-agents < 3.1.13
@@ -597,8 +596,8 @@
Fence agent for ePowerSwitch 8M+ power switches that are accessed
via the HTTP(s) protocol.
%files eps
-%{_sbindir}/fence_eps
-%{_mandir}/man8/fence_eps.8*
+%{_sbindir}/fence_eps*
+%{_mandir}/man8/fence_eps*.8*
%package gce
License: GPL-2.0-or-later AND LGPL-2.0-or-later
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/lib/azure_fence.py.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/lib/azure_fence.py.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/lib/azure_fence.py.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/lib/azure_fence.py.py 2024-07-01 10:20:11.000000000 +0200
@@ -14,6 +14,8 @@
IP_TYPE_DYNAMIC = "Dynamic"
MAX_RETRY = 10
RETRY_WAIT = 5
+COMPUTE_CLIENT_API_VERSION = "2021-11-01"
+NETWORK_MGMT_CLIENT_API_VERSION = "2021-05-01"
class AzureSubResource:
Type = None
@@ -49,7 +51,7 @@
return None
def get_azure_resource(id):
- match = re.match('(/subscriptions/([^/]*)/resourceGroups/([^/]*))(/providers/([^/]*/[^/]*)/([^/]*))?((/([^/]*)/([^/]*))*)', id)
+ match = re.match(r'(/subscriptions/([^/]*)/resourceGroups/([^/]*))(/providers/([^/]*/[^/]*)/([^/]*))?((/([^/]*)/([^/]*))*)', id)
if not match:
fail_usage("{get_azure_resource} cannot parse resource id %s" % id)
@@ -366,17 +368,20 @@
base_url=cloud_environment.endpoints.resource_manager,
profile=client_profile,
credential_scopes=[credential_scope],
+ api_version=COMPUTE_CLIENT_API_VERSION
)
except TypeError:
compute_client = ComputeManagementClient(
credentials,
config.SubscriptionId,
- base_url=cloud_environment.endpoints.resource_manager
+ base_url=cloud_environment.endpoints.resource_manager,
+ api_version=COMPUTE_CLIENT_API_VERSION
)
else:
compute_client = ComputeManagementClient(
credentials,
- config.SubscriptionId
+ config.SubscriptionId,
+ api_version=COMPUTE_CLIENT_API_VERSION
)
return compute_client
@@ -404,16 +409,19 @@
base_url=cloud_environment.endpoints.resource_manager,
profile=client_profile,
credential_scopes=[credential_scope],
+ api_version=NETWORK_MGMT_CLIENT_API_VERSION
)
except TypeError:
network_client = NetworkManagementClient(
credentials,
config.SubscriptionId,
- base_url=cloud_environment.endpoints.resource_manager
+ base_url=cloud_environment.endpoints.resource_manager,
+ api_version=NETWORK_MGMT_CLIENT_API_VERSION
)
else:
network_client = NetworkManagementClient(
credentials,
- config.SubscriptionId
+ config.SubscriptionId,
+ api_version=NETWORK_MGMT_CLIENT_API_VERSION
)
return network_client
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/lib/fence2man.xsl new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/lib/fence2man.xsl
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/lib/fence2man.xsl 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/lib/fence2man.xsl 2024-07-01 10:20:11.000000000 +0200
@@ -60,9 +60,9 @@
.P
<xsl:value-of select="longdesc"/>
.P
-<xsl:value-of select="@name" /> accepts options on the command line as well
+The fence agent accepts options on the command line as well
as from stdin. Fenced sends parameters through stdin when it execs the
-agent. <xsl:value-of select="@name" /> can be run by itself with command
+agent. The agent can be run by itself with command
line options. This is useful for testing and for turning outlets on or off
from scripts.
<xsl:if test="vendor-url">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/lib/fencing.py.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/lib/fencing.py.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/lib/fencing.py.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/lib/fencing.py.py 2024-07-01 10:20:11.000000000 +0200
@@ -603,7 +603,7 @@
if len(value["help"]) != 0:
print(" " + _join_wrap([value["help"]], first_indent=3))
-def metadata(options, avail_opt, docs):
+def metadata(options, avail_opt, docs, agent_name=os.path.basename(sys.argv[0])):
# avail_opt has to be unique, if there are duplicities then they should be removed
sorted_list = [(key, all_opt[key]) for key in list(set(avail_opt)) if "longopt" in all_opt[key]]
# Find keys that are going to replace inconsistent names
@@ -614,10 +614,10 @@
sorted_list.sort(key=lambda x: (x[1]["order"], x[0]))
if options["--action"] == "metadata":
- docs["longdesc"] = re.sub("\\\\f[BPIR]|\.P|\.TP|\.br\n", "", docs["longdesc"])
+ docs["longdesc"] = re.sub(r"\\f[BPIR]|\.P|\.TP|\.br\n", r"", docs["longdesc"])
print("<?xml version=\"1.0\" ?>")
- print("<resource-agent name=\"" + os.path.basename(sys.argv[0]) + \
+ print("<resource-agent name=\"" + agent_name + \
"\" shortdesc=\"" + docs["shortdesc"] + "\" >")
for (symlink, desc) in docs.get("symlink", []):
print("<symlink name=\"" + symlink + "\" shortdesc=\"" + desc + "\"/>")
@@ -649,7 +649,7 @@
mixed = _encode_html_entities(mixed)
if not "shortdesc" in opt:
- shortdesc = re.sub(".*\s\s+", "", opt["help"][31:])
+ shortdesc = re.sub(r".*\s\s+", r"", opt["help"][31:])
else:
shortdesc = opt["shortdesc"]
@@ -928,9 +928,15 @@
sys.exit(0)
if options.get("--action", "") in ["metadata", "manpage"]:
+ if options["--action"] == "metadata" or "agent_name" not in docs:
+ agent_name=os.path.basename(sys.argv[0])
+ else:
+ agent_name=docs["agent_name"]
+
+
if "port_as_ip" in device_opt:
device_opt.remove("separator")
- metadata(options, device_opt, docs)
+ metadata(options, device_opt, docs, agent_name)
sys.exit(0)
if "--version" in options:
@@ -973,14 +979,14 @@
if options["--action"] == "list":
try:
- print(outlet_id + options["--separator"] + alias)
+ print("{}{}{}".format(outlet_id, options["--separator"], alias))
except UnicodeEncodeError as e:
- print((outlet_id + options["--separator"] + alias).encode("utf-8"))
+ print("{}{}{}".format(outlet_id, options["--separator"], alias).encode("utf-8"))
elif options["--action"] == "list-status":
try:
- print(outlet_id + options["--separator"] + alias + options["--separator"] + status)
+ print("{}{}{}{}{}".format(outlet_id, options["--separator"], alias, options["--separator"], status))
except UnicodeEncodeError as e:
- print((outlet_id + options["--separator"] + alias).encode("utf-8") + options["--separator"] + status)
+ print("{}{}{}{}{}".format(outlet_id, options["--separator"], alias, options["--separator"], status).encode("utf-8"))
return result
@@ -1272,7 +1278,7 @@
executable="/bin/sh")
# replace env
os.environ.clear()
- os.environ.update(line.partition('=')[::2] for line in output.decode("utf-8").split('\0') if not re.match("^\s*$", line))
+ os.environ.update(line.partition('=')[::2] for line in output.decode("utf-8").split('\0') if not re.match(r"^\s*$", line))
# Convert array of format [[key1, value1], [key2, value2], ... [keyN, valueN]] to dict, where key is
# in format a.b.c.d...z and returned dict has key only z
@@ -1359,7 +1365,7 @@
def _login_telnet(options, re_login_string):
re_login = re.compile(re_login_string, re.IGNORECASE)
- re_pass = re.compile("(password)|(pass phrase)", re.IGNORECASE)
+ re_pass = re.compile(r"(password)|(pass phrase)", re.IGNORECASE)
conn = fspawn(options, options["--telnet-path"])
conn.send("set binary\n")
@@ -1400,7 +1406,7 @@
def _login_ssh_with_password(options, re_login_string):
re_login = re.compile(re_login_string, re.IGNORECASE)
- re_pass = re.compile("(password)|(pass phrase)", re.IGNORECASE)
+ re_pass = re.compile(r"(password)|(pass phrase)", re.IGNORECASE)
if "--inet6-only" in options:
force_ipvx = "-6 "
@@ -1608,7 +1614,7 @@
(name, value) = (line + "=").split("=", 1)
value = value[:-1]
- value = re.sub("^\"(.*)\"$", "\\1", value)
+ value = re.sub(r"^\"(.*)\"$", r"\1", value)
if name.replace("-", "_") in mapping_longopt_names:
name = mapping_longopt_names[name.replace("-", "_")]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/lib/fencing_snmp.py.py new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/lib/fencing_snmp.py.py
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/lib/fencing_snmp.py.py 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/lib/fencing_snmp.py.py 2024-07-01 10:20:11.000000000 +0200
@@ -91,7 +91,7 @@
logging.debug("%s\n", res_output)
- if (res_code != 0) or (re.search("^Error ", res_output, re.MULTILINE) != None):
+ if (res_code != 0) or (re.search(r"^Error ", res_output, re.MULTILINE) != None):
fail_usage("Returned %d: %s"% (res_code, res_output))
except pexpect.ExceptionPexpect:
fail_usage("Cannot run command %s"%(command))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_aliyun.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_aliyun.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_aliyun.xml 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_aliyun.xml 2024-07-01 10:20:11.000000000 +0200
@@ -38,6 +38,15 @@
<content type="string" />
<shortdesc lang="en">Ram Role.</shortdesc>
</parameter>
+ <parameter name="credentials_file" unique="0" required="0">
+ <getopt mixed="--credentials-file=[path]" />
+ <shortdesc lang="en">Path to credentials file</shortdesc>
+ </parameter>
+ <parameter name="credentials_file_profile" unique="0" required="0">
+ <getopt mixed="--credentials-file-profile=[profile]" />
+ <content type="string" default="default" />
+ <shortdesc lang="en">Credentials file profile</shortdesc>
+ </parameter>
<parameter name="filter" unique="0" required="0">
<getopt mixed="--filter=[key=value]" />
<content type="string" />
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_docker.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_docker.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_docker.xml 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_docker.xml 2024-07-01 10:20:11.000000000 +0200
@@ -61,6 +61,11 @@
<content type="string" default="1.11" />
<shortdesc lang="en">Version of Docker Remote API (default: 1.11)</shortdesc>
</parameter>
+ <parameter name="disable_ssl" unique="0" required="0">
+ <getopt mixed="--disable-ssl" />
+ <content type="boolean" />
+ <shortdesc lang="en">Don't use SSL</shortdesc>
+ </parameter>
<parameter name="tlscacert" unique="0" required="0">
<getopt mixed="--tlscacert" />
<content type="string" />
@@ -76,6 +81,11 @@
<content type="string" />
<shortdesc lang="en">Path to client key (PEM format) for TLS authentication. Required if --ssl option is used.</shortdesc>
</parameter>
+ <parameter name="unix_socket" unique="0" required="0">
+ <getopt mixed="--unix-socket" />
+ <content type="string" />
+ <shortdesc lang="en">Path to Docker's unix socket. Use this with --disable-ssl.</shortdesc>
+ </parameter>
<parameter name="quiet" unique="0" required="0">
<getopt mixed="-q, --quiet" />
<content type="boolean" />
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_eps.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_eps.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_eps.xml 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_eps.xml 2024-07-01 10:20:11.000000000 +0200
@@ -1,9 +1,12 @@
<?xml version="1.0" ?>
<resource-agent name="fence_eps" shortdesc="Fence agent for ePowerSwitch" >
-<longdesc>fence_eps is a Power Fencing agent which can be used with the ePowerSwitch 8M+ power switch to fence connected machines. Fence agent works ONLY on 8M+ device, because this is only one, which has support for hidden page feature.
+<symlink name="fence_epsr2" shortdesc="Fence agent for ePowerSwitch R2 and newer"/>
+<longdesc>fence_eps is a Power Fencing agent which can be used with the ePowerSwitch 8M+ power switch to fence connected machines. It ONLY works on 8M+ devices, as they support the hidden page feature.
-Agent basically works by connecting to hidden page and pass appropriate arguments to GET request. This means, that hidden page feature must be enabled and properly configured.</longdesc>
-<vendor-url>http://www.epowerswitch.com</vendor-url>
+The agent works by connecting to the hidden page and pass the appropriate arguments to GET request. This means, that the hidden page feature must be enabled and properly configured.
+
+NOTE: In most cases you want to use fence_epsr2, as fence_eps only works with older hardware.</longdesc>
+<vendor-url>https://www.neol.com</vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
<getopt mixed="-o, --action=[action]" />
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_epsr2.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_epsr2.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_epsr2.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_epsr2.xml 2024-07-01 10:20:11.000000000 +0200
@@ -0,0 +1,178 @@
+<?xml version="1.0" ?>
+<resource-agent name="fence_epsr2" shortdesc="Fence agent for ePowerSwitch" >
+<symlink name="fence_epsr2" shortdesc="Fence agent for ePowerSwitch R2 and newer"/>
+<longdesc>fence_epsr2 is a Power Fencing agent which can be used with the ePowerSwitch 8M+ power switch to fence connected machines. It ONLY works on 8M+ devices, as they support the hidden page feature.
+
+The agent works by connecting to the hidden page and pass the appropriate arguments to GET request. This means, that the hidden page feature must be enabled and properly configured.
+
+NOTE: In most cases you want to use fence_epsr2, as fence_eps only works with older hardware.</longdesc>
+<vendor-url>https://www.neol.com</vendor-url>
+<parameters>
+ <parameter name="action" unique="0" required="1">
+ <getopt mixed="-o, --action=[action]" />
+ <content type="string" default="reboot" />
+ <shortdesc lang="en">Fencing action</shortdesc>
+ </parameter>
+ <parameter name="hidden_page" unique="0" required="0" deprecated="1">
+ <getopt mixed="-c, --page=[page]" />
+ <content type="string" default="hidden.htm" />
+ <shortdesc lang="en">Name of hidden page</shortdesc>
+ </parameter>
+ <parameter name="ip" unique="0" required="1" obsoletes="ipaddr">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipaddr" unique="0" required="1" deprecated="1">
+ <getopt mixed="-a, --ip=[ip]" />
+ <content type="string" />
+ <shortdesc lang="en">IP address or hostname of fencing device</shortdesc>
+ </parameter>
+ <parameter name="ipport" unique="0" required="0">
+ <getopt mixed="-u, --ipport=[port]" />
+ <content type="integer" default="80" />
+ <shortdesc lang="en">TCP/UDP port to use for connection with device</shortdesc>
+ </parameter>
+ <parameter name="login" unique="0" required="0" deprecated="1">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
+ <parameter name="page" unique="0" required="0" obsoletes="hidden_page">
+ <getopt mixed="-c, --page=[page]" />
+ <content type="string" default="hidden.htm" />
+ <shortdesc lang="en">Name of hidden page</shortdesc>
+ </parameter>
+ <parameter name="passwd" unique="0" required="0" deprecated="1">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="passwd_script" unique="0" required="0" deprecated="1">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="password" unique="0" required="0" obsoletes="passwd">
+ <getopt mixed="-p, --password=[password]" />
+ <content type="string" />
+ <shortdesc lang="en">Login password or passphrase</shortdesc>
+ </parameter>
+ <parameter name="password_script" unique="0" required="0" obsoletes="passwd_script">
+ <getopt mixed="-S, --password-script=[script]" />
+ <content type="string" />
+ <shortdesc lang="en">Script to run to retrieve password</shortdesc>
+ </parameter>
+ <parameter name="plug" unique="0" required="1" obsoletes="port">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="port" unique="0" required="1" deprecated="1">
+ <getopt mixed="-n, --plug=[id]" />
+ <content type="string" />
+ <shortdesc lang="en">Physical plug number on device, UUID or identification of machine</shortdesc>
+ </parameter>
+ <parameter name="username" unique="0" required="0" obsoletes="login">
+ <getopt mixed="-l, --username=[name]" />
+ <content type="string" />
+ <shortdesc lang="en">Login name</shortdesc>
+ </parameter>
+ <parameter name="quiet" unique="0" required="0">
+ <getopt mixed="-q, --quiet" />
+ <content type="boolean" />
+ <shortdesc lang="en">Disable logging to stderr. Does not affect --verbose or --debug-file or logging to syslog.</shortdesc>
+ </parameter>
+ <parameter name="verbose" unique="0" required="0">
+ <getopt mixed="-v, --verbose" />
+ <content type="boolean" />
+ <shortdesc lang="en">Verbose mode. Multiple -v flags can be stacked on the command line (e.g., -vvv) to increase verbosity.</shortdesc>
+ </parameter>
+ <parameter name="verbose_level" unique="0" required="0">
+ <getopt mixed="--verbose-level" />
+ <content type="integer" />
+ <shortdesc lang="en">Level of debugging detail in output. Defaults to the number of --verbose flags specified on the command line, or to 1 if verbose=1 in a stonith device configuration (i.e., on stdin).</shortdesc>
+ </parameter>
+ <parameter name="debug" unique="0" required="0" deprecated="1">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <content type="string" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="debug_file" unique="0" required="0" obsoletes="debug">
+ <getopt mixed="-D, --debug-file=[debugfile]" />
+ <shortdesc lang="en">Write debug information to given file</shortdesc>
+ </parameter>
+ <parameter name="version" unique="0" required="0">
+ <getopt mixed="-V, --version" />
+ <content type="boolean" />
+ <shortdesc lang="en">Display version information and exit</shortdesc>
+ </parameter>
+ <parameter name="help" unique="0" required="0">
+ <getopt mixed="-h, --help" />
+ <content type="boolean" />
+ <shortdesc lang="en">Display help and exit</shortdesc>
+ </parameter>
+ <parameter name="plug_separator" unique="0" required="0">
+ <getopt mixed="--plug-separator=[char]" />
+ <content type="string" default="," />
+ <shortdesc lang="en">Separator for plug parameter when specifying more than 1 plug</shortdesc>
+ </parameter>
+ <parameter name="separator" unique="0" required="0">
+ <getopt mixed="-C, --separator=[char]" />
+ <content type="string" default="," />
+ <shortdesc lang="en">Separator for CSV created by 'list' operation</shortdesc>
+ </parameter>
+ <parameter name="delay" unique="0" required="0">
+ <getopt mixed="--delay=[seconds]" />
+ <content type="second" default="0" />
+ <shortdesc lang="en">Wait X seconds before fencing is started</shortdesc>
+ </parameter>
+ <parameter name="disable_timeout" unique="0" required="0">
+ <getopt mixed="--disable-timeout=[true/false]" />
+ <content type="string" />
+ <shortdesc lang="en">Disable timeout (true/false) (default: true when run from Pacemaker 2.0+)</shortdesc>
+ </parameter>
+ <parameter name="login_timeout" unique="0" required="0">
+ <getopt mixed="--login-timeout=[seconds]" />
+ <content type="second" default="5" />
+ <shortdesc lang="en">Wait X seconds for cmd prompt after login</shortdesc>
+ </parameter>
+ <parameter name="power_timeout" unique="0" required="0">
+ <getopt mixed="--power-timeout=[seconds]" />
+ <content type="second" default="20" />
+ <shortdesc lang="en">Test X seconds for status change after ON/OFF</shortdesc>
+ </parameter>
+ <parameter name="power_wait" unique="0" required="0">
+ <getopt mixed="--power-wait=[seconds]" />
+ <content type="second" default="0" />
+ <shortdesc lang="en">Wait X seconds after issuing ON/OFF</shortdesc>
+ </parameter>
+ <parameter name="shell_timeout" unique="0" required="0">
+ <getopt mixed="--shell-timeout=[seconds]" />
+ <content type="second" default="3" />
+ <shortdesc lang="en">Wait X seconds for cmd prompt after issuing command</shortdesc>
+ </parameter>
+ <parameter name="stonith_status_sleep" unique="0" required="0">
+ <getopt mixed="--stonith-status-sleep=[seconds]" />
+ <content type="second" default="1" />
+ <shortdesc lang="en">Sleep X seconds between status calls during a STONITH action</shortdesc>
+ </parameter>
+ <parameter name="retry_on" unique="0" required="0">
+ <getopt mixed="--retry-on=[attempts]" />
+ <content type="integer" default="1" />
+ <shortdesc lang="en">Count of attempts to retry power on</shortdesc>
+ </parameter>
+</parameters>
+<actions>
+ <action name="on" automatic="0"/>
+ <action name="off" />
+ <action name="reboot" />
+ <action name="status" />
+ <action name="list" />
+ <action name="list-status" />
+ <action name="monitor" />
+ <action name="metadata" />
+ <action name="manpage" />
+ <action name="validate-all" />
+</actions>
+</resource-agent>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_idrac.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_idrac.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_idrac.xml 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_idrac.xml 2024-07-01 10:20:11.000000000 +0200
@@ -6,7 +6,9 @@
<symlink name="fence_ipmilanplus" shortdesc="Fence agent for IPMIv2 lanplus"/>
<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
-<longdesc>fence_idrac is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/) WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
+<longdesc>fence_idrac is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/)
+
+WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
<vendor-url></vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_ilo3.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_ilo3.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_ilo3.xml 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_ilo3.xml 2024-07-01 10:20:11.000000000 +0200
@@ -6,7 +6,9 @@
<symlink name="fence_ipmilanplus" shortdesc="Fence agent for IPMIv2 lanplus"/>
<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
-<longdesc>fence_ilo3 is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/) WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
+<longdesc>fence_ilo3 is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/)
+
+WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
<vendor-url></vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_ilo4.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_ilo4.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_ilo4.xml 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_ilo4.xml 2024-07-01 10:20:11.000000000 +0200
@@ -6,7 +6,9 @@
<symlink name="fence_ipmilanplus" shortdesc="Fence agent for IPMIv2 lanplus"/>
<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
-<longdesc>fence_ilo4 is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/) WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
+<longdesc>fence_ilo4 is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/)
+
+WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
<vendor-url></vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_ilo5.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_ilo5.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_ilo5.xml 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_ilo5.xml 2024-07-01 10:20:11.000000000 +0200
@@ -6,7 +6,9 @@
<symlink name="fence_ipmilanplus" shortdesc="Fence agent for IPMIv2 lanplus"/>
<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
-<longdesc>fence_ilo5 is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/) WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
+<longdesc>fence_ilo5 is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/)
+
+WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
<vendor-url></vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_imm.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_imm.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_imm.xml 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_imm.xml 2024-07-01 10:20:11.000000000 +0200
@@ -6,7 +6,9 @@
<symlink name="fence_ipmilanplus" shortdesc="Fence agent for IPMIv2 lanplus"/>
<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
-<longdesc>fence_imm is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/) WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
+<longdesc>fence_imm is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/)
+
+WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
<vendor-url></vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_ipmilan.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_ipmilan.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_ipmilan.xml 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_ipmilan.xml 2024-07-01 10:20:11.000000000 +0200
@@ -6,7 +6,9 @@
<symlink name="fence_ipmilanplus" shortdesc="Fence agent for IPMIv2 lanplus"/>
<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
-<longdesc>fence_ipmilan is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/) WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
+<longdesc>fence_ipmilan is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/)
+
+WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
<vendor-url></vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_ipmilanplus.xml new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_ipmilanplus.xml
--- old/fence-agents-4.13.1+git.1707822268.4229d52f/tests/data/metadata/fence_ipmilanplus.xml 2024-02-13 12:04:28.000000000 +0100
+++ new/fence-agents-4.15.0+git.1719822011.7a2c0a7f/tests/data/metadata/fence_ipmilanplus.xml 2024-07-01 10:20:11.000000000 +0200
@@ -6,7 +6,9 @@
<symlink name="fence_ipmilanplus" shortdesc="Fence agent for IPMIv2 lanplus"/>
<symlink name="fence_imm" shortdesc="Fence agent for IBM Integrated Management Module"/>
<symlink name="fence_idrac" shortdesc="Fence agent for Dell iDRAC"/>
-<longdesc>fence_ipmilanplus is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/) WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
+<longdesc>fence_ipmilanplus is a Power Fencing agent which can be used with machines controlled by IPMI. This agent calls support software ipmitool (http://ipmitool.sf.net/)
+
+WARNING! This fence agent might report success before the node is powered off. You should use -m/method onoff if your fence device works correctly with that option.</longdesc>
<vendor-url></vendor-url>
<parameters>
<parameter name="action" unique="0" required="1">
1
0