openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- 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
September 2022
- 1 participants
- 2392 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kstars for openSUSE:Factory checked in at 2022-09-30 17:58:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kstars (Old)
and /work/SRC/openSUSE:Factory/.kstars.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kstars"
Fri Sep 30 17:58:25 2022 rev:130 rq:1007177 version:3.6.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/kstars/kstars.changes 2022-08-01 21:34:03.490286349 +0200
+++ /work/SRC/openSUSE:Factory/.kstars.new.2275/kstars.changes 2022-09-30 17:58:44.961371087 +0200
@@ -1,0 +2,13 @@
+Fri Sep 30 07:33:29 UTC 2022 - Christophe Giboudeaux <christophe(a)krop.fr>
+
+- Update constraints. Newer kstar versions need more disk space
+ and memory
+
+-------------------------------------------------------------------
+Thu Sep 29 14:29:00 UTC 2022 - Paolo Stivanin <info(a)paolostivanin.com>
+
+- Update to 3.6.1:
+ * See https://invent.kde.org/education/kstars/-/blob/stable-3.6.1/ChangeLog
+- Add lower_qt_version.patch
+
+-------------------------------------------------------------------
Old:
----
kstars-3.6.0.tar.xz
kstars-3.6.0.tar.xz.sig
New:
----
kstars-3.6.1.tar.xz
kstars-3.6.1.tar.xz.sig
lower_qt_version.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kstars.spec ++++++
--- /var/tmp/diff_new_pack.K9s7Gk/_old 2022-09-30 17:58:46.665374730 +0200
+++ /var/tmp/diff_new_pack.K9s7Gk/_new 2022-09-30 17:58:46.669374739 +0200
@@ -20,7 +20,7 @@
%global __requires_exclude qmlimport\\((KStarsLiteEnums|TelescopeLiteEnums).*
%bcond_without lang
Name: kstars
-Version: 3.6.0
+Version: 3.6.1
Release: 0
Summary: Desktop Planetarium
# Note for legal: the Apache licensed files in the tarball are for the
@@ -33,6 +33,8 @@
Source0: https://download.kde.org/stable/%{name}/%{name}-%{version}.tar.xz
Source1: https://download.kde.org/stable/%{name}/%{name}-%{version}.tar.xz.sig
Source2: %{name}.keyring
+# PATCH-FIX-UPSTREAM https://invent.kde.org/education/kstars/-/merge_requests/758
+Patch0: lower_qt_version.patch
BuildRequires: Mesa-devel
BuildRequires: extra-cmake-modules
BuildRequires: fdupes
@@ -84,8 +86,13 @@
%prep
%autosetup -p1
-# remove Catalan translations due to https://invent.kde.org/education/kstars/-/issues/186
-rm -r po/ca po/ca@valencia
+# remove Catalan docs due to https://invent.kde.org/education/kstars/-/issues/186
+%if %{pkg_vcmp cmake(KF5DocTools) < 5.92}
+rm -r po/ca/docs po/ca@valencia/docs
+%endif
+
+# remove FR docs due to https://bugs.kde.org/show_bug.cgi?id=459821
+rm -r po/fr/docs
%build
%ifarch ppc ppc64
++++++ _constraints ++++++
--- /var/tmp/diff_new_pack.K9s7Gk/_old 2022-09-30 17:58:46.701374807 +0200
+++ /var/tmp/diff_new_pack.K9s7Gk/_new 2022-09-30 17:58:46.705374816 +0200
@@ -1,18 +1,11 @@
<constraints>
- <overwrite>
- <conditions>
- <arch>ppc64</arch>
- <arch>ppc64le</arch>
- </conditions>
- <hardware>
- <physicalmemory>
- <size unit="M">3000</size>
- </physicalmemory>
- <disk>
- <size unit="G">4</size>
- </disk>
- </hardware>
- </overwrite>
+ <hardware>
+ <disk>
+ <size unit="G">5</size>
+ </disk>
+ <memory>
+ <size unit="G">5</size>
+ </memory>
+ </hardware>
</constraints>
-
++++++ kstars-3.6.0.tar.xz -> kstars-3.6.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/kstars/kstars-3.6.0.tar.xz /work/SRC/openSUSE:Factory/.kstars.new.2275/kstars-3.6.1.tar.xz differ: char 27, line 1
++++++ lower_qt_version.patch ++++++
Index: kstars-git-3.6.1~git.20220929/CMakeLists.txt
===================================================================
--- kstars-git-3.6.1~git.20220929.orig/CMakeLists.txt
+++ kstars-git-3.6.1~git.20220929/CMakeLists.txt
@@ -5,7 +5,7 @@ set (KStars_VERSION_REVISION 1)
set (KSTARS_BUILD_RELEASE "Stable")
set (CMAKE_CXX_STANDARD 17)
-set(QT_MIN_VERSION 5.12.8)
+set(QT_MIN_VERSION 5.12.7)
set(KF5_MIN_VERSION 5.68.0)
# Build KStars Lite with -DBUILD_KSTARS_LITE=ON
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package duplicity for openSUSE:Factory checked in at 2022-09-30 17:58:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/duplicity (Old)
and /work/SRC/openSUSE:Factory/.duplicity.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "duplicity"
Fri Sep 30 17:58:24 2022 rev:71 rq:1007160 version:1.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/duplicity/duplicity.changes 2022-05-17 17:24:52.495194987 +0200
+++ /work/SRC/openSUSE:Factory/.duplicity.new.2275/duplicity.changes 2022-09-30 17:58:41.553363802 +0200
@@ -1,0 +2,29 @@
+Thu Sep 29 23:22:42 UTC 2022 - Michael Gorse <mgorse(a)suse.com>
+
+- Update to version 1.0.0:
+ + Changes:
+ - New os\_options for SWIFT backend.
+ - Clarify when --s3-endpoint-url,-region-name are needed.
+ - Better defaults for S3 mac procs and chunk sizing.
+ - --s3\_multipart\_max\_procs applies to BOTO3 backend also.
+ + Fixes:
+ - Replace pydrive with pydrive2.
+ - GDrive backend: Add environment args for configuring oauth
+ flow.
+ - GDrive backend: For Google OAuth, switch to loopback flow.
+ - Reduce number of GPG file descriptors, add GPG translatable
+ errors.
+ - Webdav listing failed on responses with namespace 'ns0'.
+ - Make sure that FileChunkIO#name is a string, not a bytes-like
+ object.
+ - Fix possible memory leaks.
+ - Add check to ssh_pexpect_backend, par2backend, for version <
+ 4.5.0.
+ - Add use\_poll=True to pexpect.run in par2backend.
+ - Retry on SHA1 mismatch.
+ + Other:
+ - Doc: some reformatting for better readability.
+ - Doc: clarify when --s3-endpoint-url,-region-name are need.
+- Rebase duplicity-remove_shebang.patch.
+
+-------------------------------------------------------------------
Old:
----
duplicity-0.8.23.tar.gz
New:
----
duplicity-1.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ duplicity.spec ++++++
--- /var/tmp/diff_new_pack.C9TXIG/_old 2022-09-30 17:58:42.017364794 +0200
+++ /var/tmp/diff_new_pack.C9TXIG/_new 2022-09-30 17:58:42.021364803 +0200
@@ -17,13 +17,13 @@
Name: duplicity
-Version: 0.8.23
+Version: 1.0.0
Release: 0
Summary: Encrypted bandwidth-efficient backup using the rsync algorithm
License: GPL-3.0-or-later
Group: Productivity/Archiving/Backup
URL: https://duplicity.gitlab.io/
-Source: https://launchpad.net/duplicity/0.8-series/%{version}/+download/duplicity-%…
+Source: https://launchpad.net/duplicity/1.0/%{version}/+download/duplicity-%{versio…
Patch1: duplicity-remove_shebang.patch
BuildRequires: fdupes
BuildRequires: librsync-devel >= 0.9.6
++++++ duplicity-0.8.23.tar.gz -> duplicity-1.0.0.tar.gz ++++++
++++ 4857 lines of diff (skipped)
++++++ duplicity-remove_shebang.patch ++++++
--- /var/tmp/diff_new_pack.C9TXIG/_old 2022-09-30 17:58:42.253365299 +0200
+++ /var/tmp/diff_new_pack.C9TXIG/_new 2022-09-30 17:58:42.257365307 +0200
@@ -1,19 +1,19 @@
-diff -urEbwB duplicity-0.8.13.orig/bin/duplicity duplicity-0.8.13/bin/duplicity
---- duplicity-0.8.13.orig/bin/duplicity 2020-04-16 10:20:56.000000000 -0500
-+++ duplicity-0.8.13/bin/duplicity 2020-05-07 19:36:27.807146479 -0500
+diff -urp duplicity-1.0.0.orig/bin/duplicity duplicity-1.0.0/bin/duplicity
+--- duplicity-1.0.0.orig/bin/duplicity 2022-09-24 10:26:49.000000000 -0500
++++ duplicity-1.0.0/bin/duplicity 2022-09-29 18:37:13.118715845 -0500
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/python3
- # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4; encoding:utf8 -*-
+ # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4; encoding:utf-8 -*-
#
# duplicity -- Encrypted bandwidth efficient backup
-diff -urEbwB duplicity-0.8.13.orig/bin/rdiffdir duplicity-0.8.13/bin/rdiffdir
---- duplicity-0.8.13.orig/bin/rdiffdir 2020-04-16 10:20:56.000000000 -0500
-+++ duplicity-0.8.13/bin/rdiffdir 2020-05-07 19:36:32.607171822 -0500
+diff -urp duplicity-1.0.0.orig/bin/rdiffdir duplicity-1.0.0/bin/rdiffdir
+--- duplicity-1.0.0.orig/bin/rdiffdir 2022-09-24 10:26:49.000000000 -0500
++++ duplicity-1.0.0/bin/rdiffdir 2022-09-29 18:37:19.610750394 -0500
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/python3
- # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4; encoding:utf8 -*-
+ # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4; encoding:utf-8 -*-
#
# rdiffdir -- Extend rdiff functionality to directories
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package terragrunt for openSUSE:Factory checked in at 2022-09-30 17:58:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/terragrunt (Old)
and /work/SRC/openSUSE:Factory/.terragrunt.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "terragrunt"
Fri Sep 30 17:58:22 2022 rev:14 rq:1007141 version:0.39.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/terragrunt/terragrunt.changes 2022-09-15 23:00:13.961391958 +0200
+++ /work/SRC/openSUSE:Factory/.terragrunt.new.2275/terragrunt.changes 2022-09-30 17:58:39.977360434 +0200
@@ -1,0 +2,7 @@
+Fri Sep 30 05:12:17 UTC 2022 - kastl(a)b1-systems.de
+
+- Update to version 0.39.0:
+ * #2259 Improve handling of failures in outputs reading (#2288)
+ * Docs: update to mention run-all commands not xxx-all (#2266)
+
+-------------------------------------------------------------------
Old:
----
terragrunt-0.38.12.tar.gz
New:
----
terragrunt-0.39.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ terragrunt.spec ++++++
--- /var/tmp/diff_new_pack.Y26cZr/_old 2022-09-30 17:58:40.741362067 +0200
+++ /var/tmp/diff_new_pack.Y26cZr/_new 2022-09-30 17:58:40.745362075 +0200
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: terragrunt
-Version: 0.38.12
+Version: 0.39.0
Release: 0
Summary: Thin wrapper for Terraform for working with multiple Terraform modules
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Y26cZr/_old 2022-09-30 17:58:40.773362135 +0200
+++ /var/tmp/diff_new_pack.Y26cZr/_new 2022-09-30 17:58:40.777362143 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/gruntwork-io/terragrunt</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v0.38.12</param>
+ <param name="revision">v0.39.0</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
@@ -16,7 +16,7 @@
<param name="compression">gz</param>
</service>
<service name="go_modules" mode="disabled">
- <param name="archive">terragrunt-0.38.12.tar.gz</param>
+ <param name="archive">terragrunt-0.39.0.tar.gz</param>
</service>
</services>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Y26cZr/_old 2022-09-30 17:58:40.793362178 +0200
+++ /var/tmp/diff_new_pack.Y26cZr/_new 2022-09-30 17:58:40.793362178 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/gruntwork-io/terragrunt</param>
- <param name="changesrevision">3a23346e08ee574a4a3a23112350ea625d577a02</param></service></servicedata>
+ <param name="changesrevision">b93f6ef963edc8aa5a3927c2727494244ba5e7fa</param></service></servicedata>
(No newline at EOF)
++++++ terragrunt-0.38.12.tar.gz -> terragrunt-0.39.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.38.12/config/dependency.go new/terragrunt-0.39.0/config/dependency.go
--- old/terragrunt-0.38.12/config/dependency.go 2022-09-14 22:06:21.000000000 +0200
+++ new/terragrunt-0.39.0/config/dependency.go 2022-09-29 16:59:03.000000000 +0200
@@ -31,6 +31,8 @@
"github.com/gruntwork-io/terragrunt/util"
)
+const renderJsonCommand = "render-json"
+
type Dependency struct {
Name string `hcl:",label" cty:"name"`
ConfigPath string `hcl:"config_path,attr" cty:"config_path"`
@@ -379,7 +381,7 @@
dependencyConfig.MockOutputsAllowedTerraformCommands == nil ||
len(*dependencyConfig.MockOutputsAllowedTerraformCommands) == 0 ||
util.ListContainsElement(*dependencyConfig.MockOutputsAllowedTerraformCommands, terragruntOptions.OriginalTerraformCommand)
- return defaultOutputsSet && allowedCommand
+ return defaultOutputsSet && allowedCommand || isRenderJsonCommand(terragruntOptions)
}
// Return the output from the state of another module, managed by terragrunt. This function will parse the provided
@@ -395,7 +397,14 @@
jsonBytes, err := getOutputJsonWithCaching(targetConfig, terragruntOptions)
if err != nil {
- return nil, true, err
+ if !isRenderJsonCommand(terragruntOptions) {
+ return nil, true, err
+ }
+ terragruntOptions.Logger.Warnf("Failed to read outputs from %s referenced in %s as %s, fallback to mock outputs. Error: %v", targetConfig, terragruntOptions.TerragruntConfigPath, dependencyConfig.Name, err)
+ jsonBytes, err = json.Marshal(dependencyConfig.MockOutputs)
+ if err != nil {
+ return nil, true, err
+ }
}
isEmpty := string(jsonBytes) == "{}"
@@ -412,6 +421,11 @@
return &convertedOutput, isEmpty, errors.WithStackTrace(err)
}
+// This function will true if terragrunt was invoked with renderJsonCommand
+func isRenderJsonCommand(terragruntOptions *options.TerragruntOptions) bool {
+ return util.ListContainsElement(terragruntOptions.TerraformCliArgs, renderJsonCommand)
+}
+
// getOutputJsonWithCaching will run terragrunt output on the target config if it is not already cached.
func getOutputJsonWithCaching(targetConfig string, terragruntOptions *options.TerragruntOptions) ([]byte, error) {
// Acquire synchronization lock to ensure only one instance of output is called per config.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.38.12/configstack/stack.go new/terragrunt-0.39.0/configstack/stack.go
--- old/terragrunt-0.38.12/configstack/stack.go 2022-09-14 22:06:21.000000000 +0200
+++ new/terragrunt-0.39.0/configstack/stack.go 2022-09-29 16:59:03.000000000 +0200
@@ -123,7 +123,7 @@
dependenciesMsg = fmt.Sprintf(" contains dependencies to %v and", stack.Modules[i].Config.Dependencies.Paths)
}
terragruntOptions.Logger.Infof("%v%v refers to remote state "+
- "you may have to apply your changes in the dependencies prior running terragrunt plan-all.\n",
+ "you may have to apply your changes in the dependencies prior running terragrunt run-all plan.\n",
stack.Modules[i].Path,
dependenciesMsg,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.38.12/docs/_docs/02_features/execute-terraform-commands-on-multiple-modules-at-once.md new/terragrunt-0.39.0/docs/_docs/02_features/execute-terraform-commands-on-multiple-modules-at-once.md
--- old/terragrunt-0.38.12/docs/_docs/02_features/execute-terraform-commands-on-multiple-modules-at-once.md 2022-09-14 22:06:21.000000000 +0200
+++ new/terragrunt-0.39.0/docs/_docs/02_features/execute-terraform-commands-on-multiple-modules-at-once.md 2022-09-29 16:59:03.000000000 +0200
@@ -86,7 +86,7 @@
Note: It is important to realize that you could get errors running `run-all plan` if you have dependencies between your
projects and some of those dependencies haven���t been applied yet.
-*Ex: If module A depends on module B and module B hasn���t been applied yet, then plan-all will show the plan for B, but exit with an error when trying to show the plan for A.*
+*Ex: If module A depends on module B and module B hasn���t been applied yet, then run-all plan will show the plan for B, but exit with an error when trying to show the plan for A.*
cd root
terragrunt run-all plan
@@ -160,11 +160,11 @@
Terragrunt will return an error indicating the dependency hasn���t been applied yet if the terraform module managed by the terragrunt config referenced in a `dependency` block has not been applied yet. This is because you cannot actually fetch outputs out of an unapplied Terraform module, even if there are no resources being created in the module.
-This is most problematic when running commands that do not modify state (e.g `plan-all` and `validate-all`) on a completely new setup where no infrastructure has been deployed. You won���t be able to `plan` or `validate` a module if you can���t determine the `inputs`. If the module depends on the outputs of another module that hasn���t been applied yet, you won���t be able to compute the `inputs` unless the dependencies are all applied. However, in real life usage, you would want to run `validate-all` or `plan-all` on a completely new set of infrastructure.
+This is most problematic when running commands that do not modify state (e.g `run-all plan` and `run-all validate`) on a completely new setup where no infrastructure has been deployed. You won���t be able to `plan` or `validate` a module if you can���t determine the `inputs`. If the module depends on the outputs of another module that hasn���t been applied yet, you won���t be able to compute the `inputs` unless the dependencies are all applied. However, in real life usage, you would want to run `run-all validate` or `run-all plan` on a completely new set of infrastructure.
To address this, you can provide mock outputs to use when a module hasn���t been applied yet. This is configured using the `mock_outputs` attribute on the `dependency` block and it corresponds to a map that will be injected in place of the actual dependency outputs if the target config hasn���t been applied yet.
-For example, in the previous example with a `mysql` module and `vpc` module, suppose you wanted to place in a temporary, dummy value for the `vpc_id` during a `validate-all` for the `mysql` module. You can specify in `mysql/terragrunt.hcl`:
+For example, in the previous example with a `mysql` module and `vpc` module, suppose you wanted to place in a temporary, dummy value for the `vpc_id` during a `run-all validate` for the `mysql` module. You can specify in `mysql/terragrunt.hcl`:
dependency "vpc" {
config_path = "../vpc"
@@ -197,7 +197,7 @@
vpc_id = dependency.vpc.outputs.vpc_id
}
-Note that indicating `validate` means that the `mock_outputs` will be used either with `validate` or with `validate-all`.
+Note that indicating `validate` means that the `mock_outputs` will be used either with `validate` or with `run-all validate`.
You can also use `skip_outputs` on the `dependency` block to specify the dependency without pulling in the outputs:
@@ -292,7 +292,7 @@
If any of the modules fail to deploy, then Terragrunt will not attempt to deploy the modules that depend on them. Once you���ve fixed the error, it���s usually safe to re-run the `run-all apply` or `run-all destroy` command again, since it���ll be a no-op for the modules that already deployed successfully, and should only affect the ones that had an error the last time around.
-To check all of your dependencies and validate the code in them, you can use the `validate-all` command.
+To check all of your dependencies and validate the code in them, you can use the `run-all validate` command.
To check the dependency graph you can use the `graph-dependencies` command (similar to the `terraform graph` command),
the graph is output in DOT format The typical program that can read this format is GraphViz, but many web services are also available to read this format.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.38.12/docs/_docs/04_reference/cli-options.md new/terragrunt-0.39.0/docs/_docs/04_reference/cli-options.md
--- old/terragrunt-0.38.12/docs/_docs/04_reference/cli-options.md 2022-09-14 22:06:21.000000000 +0200
+++ new/terragrunt-0.39.0/docs/_docs/04_reference/cli-options.md 2022-09-29 16:59:03.000000000 +0200
@@ -79,10 +79,10 @@
[`dependency`](/docs/reference/config-blocks-and-attributes/#dependency) and
[`dependencies`](/docs/reference/config-blocks-and-attributes/#dependencies) blocks.
-**[WARNING] Using `run-all` with `plan` is currently broken for certain use cases**. If you have a stack of Terragrunt modules with
-dependencies between them���either via `dependency` blocks or `terraform_remote_state` data sources���and you've never
-deployed them, then `plan-all` will fail as it will not be possible to resolve the `dependency` blocks or
-`terraform_remote_state` data sources! Please [see here for more
+**[WARNING] Using `run-all` with `plan` is currently broken for certain use cases**. If you have a stack of Terragrunt
+modules with dependencies between them���either via `dependency` blocks or `terraform_remote_state` data sources���and
+you've never deployed them, then `run-all plan` will fail as it will not be possible to resolve the `dependency` blocks
+or `terraform_remote_state` data sources! Please [see here for more
information](https://github.com/gruntwork-io/terragrunt/issues/720#issuecom….
**[NOTE]** Using `run-all` with `apply` or `destroy` silently adds the `-auto-approve` flag to the command line
@@ -103,7 +103,7 @@
Example:
```bash
-terragrunt plan-all
+terragrunt run-all plan
```
This will recursively search the current working directory for any folders that contain Terragrunt modules and run
@@ -111,9 +111,9 @@
[`dependency`](/docs/reference/config-blocks-and-attributes/#dependency) and
[`dependencies`](/docs/reference/config-blocks-and-attributes/#dependencies) blocks.
-**[WARNING] `plan-all` is currently broken for certain use cases**. If you have a stack of Terragrunt modules with
+**[WARNING] `run-all plan` is currently broken for certain use cases**. If you have a stack of Terragrunt modules with
dependencies between them���either via `dependency` blocks or `terraform_remote_state` data sources���and you've never
-deployed them, then `plan-all` will fail as it will not be possible to resolve the `dependency` blocks or
+deployed them, then `run-all plan` will fail as it will not be possible to resolve the `dependency` blocks or
`terraform_remote_state` data sources! Please [see here for more
information](https://github.com/gruntwork-io/terragrunt/issues/720#issuecom….
@@ -511,8 +511,7 @@
A custom path to the `terragrunt.hcl` or `terragrunt.hcl.json` file. The
default path is `terragrunt.hcl` (preferred) or `terragrunt.hcl.json` in the current directory (see
[Configuration]({{site.baseurl}}/docs/getting-started/configuration/#configuration) for a slightly more nuanced
-explanation). This argument is not used with the `apply-all`, `destroy-all`, `output-all`, `validate-all`, and
-`plan-all` commands.
+explanation). This argument is not used with the `run-all` commands.
### terragrunt-tfpath
@@ -584,9 +583,9 @@
**Requires an argument**: `--terragrunt-working-dir /path/to/working-directory`
Set the directory where Terragrunt should execute the `terraform` command. Default is the current working directory.
-Note that for the `apply-all`, `destroy-all`, `output-all`, `validate-all`, and `plan-all` commands, this parameter has
-a different meaning: Terragrunt will apply or destroy all the Terraform modules in the subfolders of the
-`terragrunt-working-dir`, running `terraform` in the root of each module it finds.
+Note that for the `run-all` commands, this parameter has a different meaning: Terragrunt will apply or destroy all the
+Terraform modules in the subfolders of the `terragrunt-working-dir`, running `terraform` in the root of each module it
+finds.
### terragrunt-download-dir
@@ -608,10 +607,10 @@
Download Terraform configurations from the specified source into a temporary folder, and run Terraform in that temporary
folder. The source should use the same syntax as the [Terraform module
-source](https://www.terraform.io/docs/modules/sources.html) parameter. If you specify this argument for the `apply-all`,
-`destroy-all`, `output-all`, `validate-all`, or `plan-all` commands, Terragrunt will assume this is the local file path
-for all of your Terraform modules, and for each module processed by the `xxx-all` command, Terragrunt will automatically
-append the path of `source` parameter in each module to the `--terragrunt-source` parameter you passed in.
+source](https://www.terraform.io/docs/modules/sources.html) parameter. If you specify this argument for the `run-all`
+commands, Terragrunt will assume this is the local file path for all of your Terraform modules, and for each module
+processed by the `run-all` command, Terragrunt will automatically append the path of `source` parameter in each module
+to the `--terragrunt-source` parameter you passed in.
### terragrunt-source-map
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.38.12/test/fixture-render-json-mock-outputs/app/terragrunt.hcl new/terragrunt-0.39.0/test/fixture-render-json-mock-outputs/app/terragrunt.hcl
--- old/terragrunt-0.38.12/test/fixture-render-json-mock-outputs/app/terragrunt.hcl 1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.39.0/test/fixture-render-json-mock-outputs/app/terragrunt.hcl 2022-09-29 16:59:03.000000000 +0200
@@ -0,0 +1,13 @@
+include "root" {
+ path = find_in_parent_folders()
+}
+
+dependency "module" {
+ config_path = "../dependency"
+
+ mock_outputs = {
+ security_group_id = "sg-abcd1234"
+ bastion_host_security_group_id = "123"
+ }
+ mock_outputs_allowed_terraform_commands = ["validate" ]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.38.12/test/fixture-render-json-mock-outputs/dependency/terragrunt.hcl new/terragrunt-0.39.0/test/fixture-render-json-mock-outputs/dependency/terragrunt.hcl
--- old/terragrunt-0.38.12/test/fixture-render-json-mock-outputs/dependency/terragrunt.hcl 1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.39.0/test/fixture-render-json-mock-outputs/dependency/terragrunt.hcl 2022-09-29 16:59:03.000000000 +0200
@@ -0,0 +1,3 @@
+include "root" {
+ path = find_in_parent_folders()
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.38.12/test/fixture-render-json-mock-outputs/terragrunt.hcl new/terragrunt-0.39.0/test/fixture-render-json-mock-outputs/terragrunt.hcl
--- old/terragrunt-0.38.12/test/fixture-render-json-mock-outputs/terragrunt.hcl 1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.39.0/test/fixture-render-json-mock-outputs/terragrunt.hcl 2022-09-29 16:59:03.000000000 +0200
@@ -0,0 +1,14 @@
+remote_state {
+ backend = "s3"
+ config = {
+ encrypt = true
+ bucket = "test-tf-state"
+ key = "${path_relative_to_include()}/terraform.tfstate"
+ dynamodb_table = "test-terraform-locks"
+ accesslogging_bucket_name = "test-tf-logs"
+ }
+ generate = {
+ path = "backend.tf"
+ if_exists = "overwrite_terragrunt"
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.38.12/test/integration_test.go new/terragrunt-0.39.0/test/integration_test.go
--- old/terragrunt-0.38.12/test/integration_test.go 2022-09-14 22:06:21.000000000 +0200
+++ new/terragrunt-0.39.0/test/integration_test.go 2022-09-29 16:59:03.000000000 +0200
@@ -130,6 +130,7 @@
TEST_FIXTURE_BROKEN_LOCALS = "fixture-broken-locals"
TEST_FIXTURE_BROKEN_DEPENDENCY = "fixture-broken-dependency"
TEST_FIXTURE_RENDER_JSON_METADATA = "fixture-render-json-metadata"
+ TEST_FIXTURE_RENDER_JSON_MOCK_OUTPUTS = "fixture-render-json-mock-outputs"
TERRAFORM_BINARY = "terraform"
TERRAFORM_FOLDER = ".terraform"
TERRAFORM_STATE = "terraform.tfstate"
@@ -4699,6 +4700,55 @@
assert.True(t, reflect.DeepEqual(expectedDependencies, dependencies))
}
+func TestRenderJsonWithMockOutputs(t *testing.T) {
+ t.Parallel()
+
+ tmpEnvPath := copyEnvironment(t, TEST_FIXTURE_RENDER_JSON_MOCK_OUTPUTS)
+ cleanupTerraformFolder(t, tmpEnvPath)
+ tmpDir := util.JoinPath(tmpEnvPath, TEST_FIXTURE_RENDER_JSON_MOCK_OUTPUTS, "app")
+
+ var expectedMetadata = map[string]interface{}{
+ "found_in_file": util.JoinPath(tmpDir, "terragrunt.hcl"),
+ }
+
+ jsonOut := filepath.Join(tmpDir, "terragrunt_rendered.json")
+
+ runTerragrunt(t, fmt.Sprintf("terragrunt render-json --with-metadata --terragrunt-non-interactive --terragrunt-log-level debug --terragrunt-working-dir %s --terragrunt-json-out %s", tmpDir, jsonOut))
+
+ jsonBytes, err := ioutil.ReadFile(jsonOut)
+ require.NoError(t, err)
+
+ var renderedJson = map[string]interface{}{}
+ require.NoError(t, json.Unmarshal(jsonBytes, &renderedJson))
+
+ dependency := renderedJson[config.MetadataDependency]
+
+ var expectedDependency = map[string]interface{}{
+ "module": map[string]interface{}{
+ "metadata": expectedMetadata,
+ "value": map[string]interface{}{
+ "config_path": "../dependency",
+ "mock_outputs": map[string]interface{}{
+ "bastion_host_security_group_id": "123",
+ "security_group_id": "sg-abcd1234",
+ },
+ "mock_outputs_allowed_terraform_commands": [1]string{"validate"},
+ "mock_outputs_merge_strategy_with_state": nil,
+ "mock_outputs_merge_with_state": nil,
+ "name": "module",
+ "outputs": nil,
+ "skip": nil,
+ },
+ },
+ }
+ serializedDependency, err := json.Marshal(dependency)
+ assert.NoError(t, err)
+
+ serializedExpectedDependency, err := json.Marshal(expectedDependency)
+ assert.NoError(t, err)
+ assert.Equal(t, string(serializedExpectedDependency), string(serializedDependency))
+}
+
func TestRenderJsonMetadataIncludes(t *testing.T) {
t.Parallel()
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/terragrunt/vendor.tar.gz /work/SRC/openSUSE:Factory/.terragrunt.new.2275/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 python-nbxmpp for openSUSE:Factory checked in at 2022-09-30 17:58:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-nbxmpp (Old)
and /work/SRC/openSUSE:Factory/.python-nbxmpp.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-nbxmpp"
Fri Sep 30 17:58:21 2022 rev:34 rq:1007136 version:3.2.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-nbxmpp/python-nbxmpp.changes 2022-09-15 22:58:11.693046752 +0200
+++ /work/SRC/openSUSE:Factory/.python-nbxmpp.new.2275/python-nbxmpp.changes 2022-09-30 17:58:38.929358192 +0200
@@ -1,0 +2,6 @@
+Thu Sep 29 17:39:59 UTC 2022 - Alexei Sorokin <sor.alexei(a)meowr.ru>
+
+- Update to version 3.2.3:
+ * TCP: Improve detection of broken connection.
+
+-------------------------------------------------------------------
Old:
----
python-nbxmpp-3.2.2.tar.bz2
New:
----
python-nbxmpp-3.2.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-nbxmpp.spec ++++++
--- /var/tmp/diff_new_pack.8A0d6V/_old 2022-09-30 17:58:39.361359116 +0200
+++ /var/tmp/diff_new_pack.8A0d6V/_new 2022-09-30 17:58:39.365359125 +0200
@@ -22,7 +22,7 @@
%define skip_python38 1
%define _name nbxmpp
Name: python-nbxmpp
-Version: 3.2.2
+Version: 3.2.3
Release: 0
Summary: XMPP library by Gajim team
License: GPL-3.0-or-later
++++++ python-nbxmpp-3.2.2.tar.bz2 -> python-nbxmpp-3.2.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-3.2.2/ChangeLog new/python-nbxmpp-3.2.3/ChangeLog
--- old/python-nbxmpp-3.2.2/ChangeLog 2022-09-13 21:15:44.000000000 +0200
+++ new/python-nbxmpp-3.2.3/ChangeLog 2022-09-28 22:54:59.000000000 +0200
@@ -1,3 +1,9 @@
+nbxmpp 3.2.3 (28 Sep 2022)
+
+ Bug Fixes
+
+ * TCP: Improve detection of broken connection
+
nbxmpp 3.2.2 (13 Sep 2022)
New
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-3.2.2/nbxmpp/__init__.py new/python-nbxmpp-3.2.3/nbxmpp/__init__.py
--- old/python-nbxmpp-3.2.2/nbxmpp/__init__.py 2022-09-13 21:15:44.000000000 +0200
+++ new/python-nbxmpp-3.2.3/nbxmpp/__init__.py 2022-09-28 22:54:59.000000000 +0200
@@ -4,4 +4,4 @@
gi.require_version('Soup', '2.4')
-__version__: str = '3.2.2'
+__version__: str = '3.2.3'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-3.2.2/nbxmpp/modules/user_avatar.py new/python-nbxmpp-3.2.3/nbxmpp/modules/user_avatar.py
--- old/python-nbxmpp-3.2.2/nbxmpp/modules/user_avatar.py 2022-09-13 21:15:44.000000000 +0200
+++ new/python-nbxmpp-3.2.3/nbxmpp/modules/user_avatar.py 2022-09-28 22:54:59.000000000 +0200
@@ -16,6 +16,7 @@
# along with this program; If not, see <http://www.gnu.org/licenses/>.
from typing import List
+from typing import Optional
from typing import Dict
import hashlib
@@ -307,7 +308,7 @@
@dataclass
class AvatarMetaData:
infos: List[AvatarInfo] = field(default_factory=list)
- default: AvatarInfo = None
+ default: Optional[str] = None
@classmethod
def from_node(cls, node, default=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-3.2.2/nbxmpp/tcp.py new/python-nbxmpp-3.2.3/nbxmpp/tcp.py
--- old/python-nbxmpp-3.2.2/nbxmpp/tcp.py 2022-09-13 21:15:44.000000000 +0200
+++ new/python-nbxmpp-3.2.3/nbxmpp/tcp.py 2022-09-28 22:54:59.000000000 +0200
@@ -76,7 +76,7 @@
return tls_con.get_protocol_version()
@property
- def ciphersuite(self) -> Optional[int]:
+ def ciphersuite(self) -> Optional[str]:
if self._con is None:
return None
@@ -257,11 +257,8 @@
data = data.get_data()
if not data:
- if self._state == TCPState.DISCONNECTING:
- self._log.info('Reveived zero data on _read_async()')
- self._finalize('disconnected')
- else:
- self._log.warning('Reveived zero data on _read_async()')
+ self._log.info('Reveived zero data on _read_async()')
+ self._finalize('disconnected')
return
self._renew_keepalive_timer()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-nbxmpp-3.2.2/setup.cfg new/python-nbxmpp-3.2.3/setup.cfg
--- old/python-nbxmpp-3.2.2/setup.cfg 2022-09-13 21:15:44.000000000 +0200
+++ new/python-nbxmpp-3.2.3/setup.cfg 2022-09-28 22:54:59.000000000 +0200
@@ -1,6 +1,6 @@
[metadata]
name = nbxmpp
-version = 3.2.2
+version = 3.2.3
description = XMPP Library
author = Yann Leboulanger, Philipp Hoerist
author_email = gajim-devel(a)gajim.org
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package syft for openSUSE:Factory checked in at 2022-09-30 17:58:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/syft (Old)
and /work/SRC/openSUSE:Factory/.syft.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "syft"
Fri Sep 30 17:58:19 2022 rev:10 rq:1007143 version:0.58.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/syft/syft.changes 2022-09-21 14:44:15.166046731 +0200
+++ /work/SRC/openSUSE:Factory/.syft.new.2275/syft.changes 2022-09-30 17:58:36.373352729 +0200
@@ -1,0 +2,13 @@
+Fri Sep 30 05:10:45 UTC 2022 - kastl(a)b1-systems.de
+
+- Update to version 0.58.0:
+ * Add Conan (C/C++) conan.lock file support (#1230)
+ * add sequence diagrams and flesh out TODO notes (#1233)
+ * Do not fail if unable to parse `.rpm` file (#1232)
+ * fix: support exclude patterns on Windows (#1228)
+ * Update syft bootstrap tools to latest versions. (#1225)
+ * Update Stereoscope to 56552770e555d764ea72b99d3c810326b27ead4a (#1224)
+ * Update syft bootstrap tools to latest versions. (#1223)
+ * Update syft bootstrap tools to latest versions. (#1220)
+
+-------------------------------------------------------------------
Old:
----
syft-0.57.0.tar.gz
New:
----
syft-0.58.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ syft.spec ++++++
--- /var/tmp/diff_new_pack.MweLpK/_old 2022-09-30 17:58:38.049356312 +0200
+++ /var/tmp/diff_new_pack.MweLpK/_new 2022-09-30 17:58:38.053356320 +0200
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: syft
-Version: 0.57.0
+Version: 0.58.0
Release: 0
Summary: CLI tool and library for generating a Software Bill of Materials
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.MweLpK/_old 2022-09-30 17:58:38.085356389 +0200
+++ /var/tmp/diff_new_pack.MweLpK/_new 2022-09-30 17:58:38.089356397 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/anchore/syft</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v0.57.0</param>
+ <param name="revision">v0.58.0</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
@@ -16,7 +16,7 @@
<param name="compression">gz</param>
</service>
<service name="go_modules" mode="disabled">
- <param name="archive">syft-0.57.0.tar.gz</param>
+ <param name="archive">syft-0.58.0.tar.gz</param>
</service>
</services>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.MweLpK/_old 2022-09-30 17:58:38.105356431 +0200
+++ /var/tmp/diff_new_pack.MweLpK/_new 2022-09-30 17:58:38.109356440 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/anchore/syft</param>
- <param name="changesrevision">04d288b3643f906255af88108f27712bb2be5b63</param></service></servicedata>
+ <param name="changesrevision">b9b13d5525df89194d332467f692bc28bc68d07f</param></service></servicedata>
(No newline at EOF)
++++++ syft-0.57.0.tar.gz -> syft-0.58.0.tar.gz ++++++
++++ 2824 lines of diff (skipped)
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/syft/vendor.tar.gz /work/SRC/openSUSE:Factory/.syft.new.2275/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 starboard for openSUSE:Factory checked in at 2022-09-30 17:58:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/starboard (Old)
and /work/SRC/openSUSE:Factory/.starboard.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "starboard"
Fri Sep 30 17:58:18 2022 rev:8 rq:1007142 version:0.15.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/starboard/starboard.changes 2022-09-25 15:36:11.531751419 +0200
+++ /work/SRC/openSUSE:Factory/.starboard.new.2275/starboard.changes 2022-09-30 17:58:34.841349454 +0200
@@ -1,0 +2,10 @@
+Fri Sep 30 05:11:07 UTC 2022 - kastl(a)b1-systems.de
+
+- Update to version 0.15.10:
+ * release: prepare v0.15.10 (#1279)
+ * chore: disable aqua image scanning (#1282)
+ * chore: upgrade alpine v3.16.2 (#1281)
+ * chore: upgrade alpine v3.16.2 (#1280)
+ * fix: vulnerabilities (#1278)
+
+-------------------------------------------------------------------
Old:
----
starboard-0.15.9.tar.gz
New:
----
starboard-0.15.10.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ starboard.spec ++++++
--- /var/tmp/diff_new_pack.XK8IIk/_old 2022-09-30 17:58:35.925351771 +0200
+++ /var/tmp/diff_new_pack.XK8IIk/_new 2022-09-30 17:58:35.933351789 +0200
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: starboard
-Version: 0.15.9
+Version: 0.15.10
Release: 0
Summary: Kubernetes-native security toolkit
License: Apache-2.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.XK8IIk/_old 2022-09-30 17:58:35.965351857 +0200
+++ /var/tmp/diff_new_pack.XK8IIk/_new 2022-09-30 17:58:35.969351866 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/aquasecurity/starboard</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v0.15.9</param>
+ <param name="revision">v0.15.10</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
@@ -16,7 +16,7 @@
<param name="compression">gz</param>
</service>
<service name="go_modules" mode="disabled">
- <param name="archive">starboard-0.15.9.tar.gz</param>
+ <param name="archive">starboard-0.15.10.tar.gz</param>
</service>
</services>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.XK8IIk/_old 2022-09-30 17:58:35.989351908 +0200
+++ /var/tmp/diff_new_pack.XK8IIk/_new 2022-09-30 17:58:35.989351908 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/aquasecurity/starboard</param>
- <param name="changesrevision">62c56e6771d744885e902b4c2d07808fd3ee69e1</param></service></servicedata>
+ <param name="changesrevision">6bdc00396ae8d95f2d303fd447a9d9a88bce8d3a</param></service></servicedata>
(No newline at EOF)
++++++ starboard-0.15.9.tar.gz -> starboard-0.15.10.tar.gz ++++++
/work/SRC/openSUSE:Factory/starboard/starboard-0.15.9.tar.gz /work/SRC/openSUSE:Factory/.starboard.new.2275/starboard-0.15.10.tar.gz differ: char 12, line 1
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/starboard/vendor.tar.gz /work/SRC/openSUSE:Factory/.starboard.new.2275/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 python-Flask-Login for openSUSE:Factory checked in at 2022-09-30 17:58:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Flask-Login (Old)
and /work/SRC/openSUSE:Factory/.python-Flask-Login.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Flask-Login"
Fri Sep 30 17:58:17 2022 rev:6 rq:1007134 version:0.6.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Flask-Login/python-Flask-Login.changes 2022-06-05 21:28:33.397048483 +0200
+++ /work/SRC/openSUSE:Factory/.python-Flask-Login.new.2275/python-Flask-Login.changes 2022-09-30 17:58:33.809347248 +0200
@@ -1,0 +2,14 @@
+Fri Sep 30 04:41:37 UTC 2022 - Steve Kowalik <steven.kowalik(a)suse.com>
+
+- Update to 0.6.2:
+ * Fix compatibility with Werkzeug 2.2 and Flask 2.2. #691
+ * Revert change to expand_login_view that attempted to preserve a dynamic
+ subdomain value. Such values should be handled using
+ app.url_value_preprocessor and app.url_defaults. #691
+ * Ensure deprecation warnings are present for deprecated features that will be removed in the next feature release.
+ + Use request_loader instead of header_loader.
+ + Use user_loaded_from_request instead of user_loaded_from_header.
+ + Use app.config["LOGIN_DISABLED"] instead of _login_disabled.
+ + Use init_app instead of setup_app
+
+-------------------------------------------------------------------
Old:
----
Flask-Login-0.6.1.tar.gz
New:
----
Flask-Login-0.6.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Flask-Login.spec ++++++
--- /var/tmp/diff_new_pack.dqQ5rd/_old 2022-09-30 17:58:34.265348223 +0200
+++ /var/tmp/diff_new_pack.dqQ5rd/_new 2022-09-30 17:58:34.265348223 +0200
@@ -19,11 +19,10 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%bcond_without test
Name: python-Flask-Login
-Version: 0.6.1
+Version: 0.6.2
Release: 0
Summary: User session management for Flask
License: MIT
-Group: Development/Languages/Python
URL: https://github.com/maxcountryman/flask-login
Source: https://files.pythonhosted.org/packages/source/F/Flask-Login/Flask-Login-%{…
BuildRequires: %{python_module base >= 3.7}
++++++ Flask-Login-0.6.1.tar.gz -> Flask-Login-0.6.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-Login-0.6.1/CHANGES.md new/Flask-Login-0.6.2/CHANGES.md
--- old/Flask-Login-0.6.1/CHANGES.md 2022-05-02 06:10:53.000000000 +0200
+++ new/Flask-Login-0.6.2/CHANGES.md 2022-07-25 17:15:17.000000000 +0200
@@ -1,6 +1,22 @@
Flask-Login Changelog
=====================
+Version 0.6.2
+-------------
+
+Released on July 25th, 2022
+
+- Fix compatibility with Werkzeug 2.2 and Flask 2.2. #691
+- Revert change to `expand_login_view` that attempted to preserve a
+ dynamic subdomain value. Such values should be handled using
+ `app.url_value_preprocessor` and `app.url_defaults`. #691
+- Ensure deprecation warnings are present for deprecated features that
+ will be removed in the next feature release.
+ - Use `request_loader` instead of `header_loader`.
+ - Use `user_loaded_from_request` instead of `user_loaded_from_header`.
+ - Use `app.config["LOGIN_DISABLED"]` instead of `_login_disabled`.
+ - Use `init_app` instead of `setup_app`.
+
Version 0.6.1
-------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-Login-0.6.1/PKG-INFO new/Flask-Login-0.6.2/PKG-INFO
--- old/Flask-Login-0.6.1/PKG-INFO 2022-05-02 06:11:16.258674100 +0200
+++ new/Flask-Login-0.6.2/PKG-INFO 2022-07-25 17:15:38.553443000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: Flask-Login
-Version: 0.6.1
+Version: 0.6.2
Summary: User authentication and session management for Flask.
Home-page: https://github.com/maxcountryman/flask-login
Author: Matthew Frazier
@@ -11,7 +11,6 @@
Project-URL: Changes, https://github.com/maxcountryman/flask-login/blob/main/CHANGES.md
Project-URL: Source Code, https://github.com/maxcountryman/flask-login
Project-URL: Issue Tracker, https://github.com/maxcountryman/flask-login/issues
-Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
@@ -180,5 +179,3 @@
4. Submit a pull request after running `tox` (ensure it does not error!)
Please give us adequate time to review your submission. Thanks!
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-Login-0.6.1/docs/index.rst new/Flask-Login-0.6.2/docs/index.rst
--- old/Flask-Login-0.6.1/docs/index.rst 2022-05-02 06:10:53.000000000 +0200
+++ new/Flask-Login-0.6.2/docs/index.rst 2022-07-25 17:15:17.000000000 +0200
@@ -543,7 +543,7 @@
.. autoclass:: LoginManager
- .. automethod:: setup_app
+ .. automethod:: init_app
.. automethod:: unauthorized
@@ -553,7 +553,7 @@
.. automethod:: user_loader
- .. automethod:: header_loader
+ .. automethod:: request_loader
.. attribute:: anonymous_user
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-Login-0.6.1/src/Flask_Login.egg-info/PKG-INFO new/Flask-Login-0.6.2/src/Flask_Login.egg-info/PKG-INFO
--- old/Flask-Login-0.6.1/src/Flask_Login.egg-info/PKG-INFO 2022-05-02 06:11:15.000000000 +0200
+++ new/Flask-Login-0.6.2/src/Flask_Login.egg-info/PKG-INFO 2022-07-25 17:15:38.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: Flask-Login
-Version: 0.6.1
+Version: 0.6.2
Summary: User authentication and session management for Flask.
Home-page: https://github.com/maxcountryman/flask-login
Author: Matthew Frazier
@@ -11,7 +11,6 @@
Project-URL: Changes, https://github.com/maxcountryman/flask-login/blob/main/CHANGES.md
Project-URL: Source Code, https://github.com/maxcountryman/flask-login
Project-URL: Issue Tracker, https://github.com/maxcountryman/flask-login/issues
-Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
@@ -180,5 +179,3 @@
4. Submit a pull request after running `tox` (ensure it does not error!)
Please give us adequate time to review your submission. Thanks!
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-Login-0.6.1/src/flask_login/__about__.py new/Flask-Login-0.6.2/src/flask_login/__about__.py
--- old/Flask-Login-0.6.1/src/flask_login/__about__.py 2022-05-02 06:10:53.000000000 +0200
+++ new/Flask-Login-0.6.2/src/flask_login/__about__.py 2022-07-25 17:15:17.000000000 +0200
@@ -1,7 +1,7 @@
__title__ = "Flask-Login"
__description__ = "User session management for Flask"
__url__ = "https://github.com/maxcountryman/flask-login"
-__version_info__ = ("0", "6", "1")
+__version_info__ = ("0", "6", "2")
__version__ = ".".join(__version_info__)
__author__ = "Matthew Frazier"
__author_email__ = "leafstormrush(a)gmail.com"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-Login-0.6.1/src/flask_login/__init__.py new/Flask-Login-0.6.2/src/flask_login/__init__.py
--- old/Flask-Login-0.6.1/src/flask_login/__init__.py 2022-05-02 06:10:53.000000000 +0200
+++ new/Flask-Login-0.6.2/src/flask_login/__init__.py 2022-07-25 17:15:17.000000000 +0200
@@ -15,7 +15,6 @@
from .signals import session_protected
from .signals import user_accessed
from .signals import user_loaded_from_cookie
-from .signals import user_loaded_from_header
from .signals import user_loaded_from_request
from .signals import user_logged_in
from .signals import user_logged_out
@@ -55,7 +54,6 @@
"session_protected",
"user_accessed",
"user_loaded_from_cookie",
- "user_loaded_from_header",
"user_loaded_from_request",
"user_logged_in",
"user_logged_out",
@@ -77,3 +75,20 @@
"make_next_param",
"set_login_view",
]
+
+
+def __getattr__(name):
+ if name == "user_loaded_from_header":
+ import warnings
+ from .signals import _user_loaded_from_header
+
+ warnings.warn(
+ "'user_loaded_from_header' is deprecated and will be"
+ " removed in Flask-Login 0.7. Use"
+ " 'user_loaded_from_request' instead.",
+ DeprecationWarning,
+ stacklevel=2,
+ )
+ return _user_loaded_from_header
+
+ raise AttributeError(name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-Login-0.6.1/src/flask_login/login_manager.py new/Flask-Login-0.6.2/src/flask_login/login_manager.py
--- old/Flask-Login-0.6.1/src/flask_login/login_manager.py 2022-05-02 06:10:53.000000000 +0200
+++ new/Flask-Login-0.6.2/src/flask_login/login_manager.py 2022-07-25 17:15:17.000000000 +0200
@@ -1,11 +1,10 @@
-import warnings
from datetime import datetime
from datetime import timedelta
-from flask import _request_ctx_stack
from flask import abort
from flask import current_app
from flask import flash
+from flask import g
from flask import has_app_context
from flask import redirect
from flask import request
@@ -28,7 +27,6 @@
from .signals import session_protected
from .signals import user_accessed
from .signals import user_loaded_from_cookie
-from .signals import user_loaded_from_header
from .signals import user_loaded_from_request
from .signals import user_needs_refresh
from .signals import user_unauthorized
@@ -113,8 +111,13 @@
This method has been deprecated. Please use
:meth:`LoginManager.init_app` instead.
"""
+ import warnings
+
warnings.warn(
- "Warning setup_app is deprecated. Please use init_app.", DeprecationWarning
+ "'setup_app' is deprecated and will be removed in"
+ " Flask-Login 0.7. Use 'init_app' instead.",
+ DeprecationWarning,
+ stacklevel=2,
)
self.init_app(app, add_context_processor)
@@ -318,9 +321,13 @@
:param callback: The callback for retrieving a user object.
:type callback: callable
"""
- print(
- "LoginManager.header_loader is deprecated. Use"
- " LoginManager.request_loader instead."
+ import warnings
+
+ warnings.warn(
+ "'header_loader' is deprecated and will be removed in"
+ " Flask-Login 0.7. Use 'request_loader' instead.",
+ DeprecationWarning,
+ stacklevel=2,
)
self._header_callback = callback
return callback
@@ -328,8 +335,10 @@
def _update_request_context_with_user(self, user=None):
"""Store the given user as ctx.user."""
- ctx = _request_ctx_stack.top
- ctx.user = self.anonymous_user() if user is None else user
+ if user is None:
+ user = self.anonymous_user()
+
+ g._login_user = user
def _load_user(self):
"""Loads user from session or remember_me cookie as applicable"""
@@ -420,7 +429,10 @@
user = self._header_callback(header)
if user is not None:
app = current_app._get_current_object()
- user_loaded_from_header.send(app, user=user)
+
+ from .signals import _user_loaded_from_header
+
+ _user_loaded_from_header.send(app, user=user)
return user
return None
@@ -502,6 +514,16 @@
@property
def _login_disabled(self):
"""Legacy property, use app.config['LOGIN_DISABLED'] instead."""
+ import warnings
+
+ warnings.warn(
+ "'_login_disabled' is deprecated and will be removed in"
+ " Flask-Login 0.7. Use 'LOGIN_DISABLED' in 'app.config'"
+ " instead.",
+ DeprecationWarning,
+ stacklevel=2,
+ )
+
if has_app_context():
return current_app.config.get("LOGIN_DISABLED", False)
return False
@@ -509,4 +531,13 @@
@_login_disabled.setter
def _login_disabled(self, newvalue):
"""Legacy property setter, use app.config['LOGIN_DISABLED'] instead."""
+ import warnings
+
+ warnings.warn(
+ "'_login_disabled' is deprecated and will be removed in"
+ " Flask-Login 0.7. Use 'LOGIN_DISABLED' in 'app.config'"
+ " instead.",
+ DeprecationWarning,
+ stacklevel=2,
+ )
current_app.config["LOGIN_DISABLED"] = newvalue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-Login-0.6.1/src/flask_login/signals.py new/Flask-Login-0.6.2/src/flask_login/signals.py
--- old/Flask-Login-0.6.1/src/flask_login/signals.py 2022-05-02 06:10:53.000000000 +0200
+++ new/Flask-Login-0.6.2/src/flask_login/signals.py 2022-07-25 17:15:17.000000000 +0200
@@ -16,7 +16,7 @@
#: Sent when the user is loaded from the header. In addition to the app (which
#: is the #: sender), it is passed `user`, which is the user being reloaded.
-user_loaded_from_header = _signals.signal("loaded-from-header")
+_user_loaded_from_header = _signals.signal("loaded-from-header")
#: Sent when the user is loaded from the request. In addition to the app (which
#: is the #: sender), it is passed `user`, which is the user being reloaded.
@@ -43,3 +43,19 @@
#: marked non-fresh or deleted. It receives no additional arguments besides
#: the app.
session_protected = _signals.signal("session-protected")
+
+
+def __getattr__(name):
+ if name == "user_loaded_from_header":
+ import warnings
+
+ warnings.warn(
+ "'user_loaded_from_header' is deprecated and will be"
+ " removed in Flask-Login 0.7. Use"
+ " 'user_loaded_from_request' instead.",
+ DeprecationWarning,
+ stacklevel=2,
+ )
+ return _user_loaded_from_header
+
+ raise AttributeError(name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-Login-0.6.1/src/flask_login/utils.py new/Flask-Login-0.6.2/src/flask_login/utils.py
--- old/Flask-Login-0.6.1/src/flask_login/utils.py 2022-05-02 06:10:53.000000000 +0200
+++ new/Flask-Login-0.6.2/src/flask_login/utils.py 2022-07-25 17:15:17.000000000 +0200
@@ -4,14 +4,13 @@
from urllib.parse import urlparse
from urllib.parse import urlunparse
-from flask import _request_ctx_stack
from flask import current_app
+from flask import g
from flask import has_request_context
from flask import request
from flask import session
from flask import url_for
from werkzeug.local import LocalProxy
-from werkzeug.routing import parse_rule
from werkzeug.urls import url_decode
from werkzeug.urls import url_encode
@@ -94,20 +93,8 @@
"""
if login_view.startswith(("https://", "http://", "/")):
return login_view
- else:
- try:
- url_rule = request.url_rule.subdomain or request.url_rule.host
- except AttributeError:
- url_rule = None
- if request.view_args and url_rule:
- args = {}
- for _, _, key in parse_rule(url_rule):
- if not key or key not in request.view_args:
- continue
- args[key] = request.view_args[key]
- return url_for(login_view, **args)
- else:
- return url_for(login_view)
+
+ return url_for(login_view)
def login_url(login_view, next_url=None, next_field="next"):
@@ -380,10 +367,13 @@
def _get_user():
- if has_request_context() and not hasattr(_request_ctx_stack.top, "user"):
- current_app.login_manager._load_user()
+ if has_request_context():
+ if "_login_user" not in g:
+ current_app.login_manager._load_user()
+
+ return g._login_user
- return getattr(_request_ctx_stack.top, "user", None)
+ return None
def _cookie_digest(payload, key=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Flask-Login-0.6.1/tests/test_login.py new/Flask-Login-0.6.2/tests/test_login.py
--- old/Flask-Login-0.6.1/tests/test_login.py 2022-05-02 06:10:53.000000000 +0200
+++ new/Flask-Login-0.6.2/tests/test_login.py 2022-07-25 17:15:17.000000000 +0200
@@ -1,4 +1,3 @@
-import base64
import sys
import unittest
from collections.abc import Hashable
@@ -34,7 +33,6 @@
from flask_login import set_login_view
from flask_login import user_accessed
from flask_login import user_loaded_from_cookie
-from flask_login import user_loaded_from_header
from flask_login import user_loaded_from_request
from flask_login import user_logged_in
from flask_login import user_logged_out
@@ -207,13 +205,6 @@
self.assertIsInstance(login_manager, LoginManager)
- def test_login_disabled_is_set(self):
- login_manager = LoginManager(self.app, add_context_processor=True)
- self.assertFalse(login_manager._login_disabled)
- with self.app.app_context():
- login_manager._login_disabled = True
- self.assertTrue(login_manager._login_disabled)
-
def test_no_user_loader_raises(self):
login_manager = LoginManager(self.app, add_context_processor=True)
with self.app.test_request_context():
@@ -324,16 +315,6 @@
def load_user(user_id):
return USERS[int(user_id)]
- @self.login_manager.header_loader
- def load_user_from_header(header_value):
- if header_value.startswith("Basic "):
- header_value = header_value.replace("Basic ", "", 1)
- try:
- user_id = base64.b64decode(header_value)
- except TypeError:
- pass
- return USERS.get(int(user_id))
-
@self.login_manager.request_loader
def load_user_from_request(request):
user_id = request.args.get("user_id")
@@ -408,26 +389,6 @@
login_user(creeper, force=True)
self.assertEqual(current_user.name, "Creeper")
- def test_login_user_with_header(self):
- user_id = 2
- user_name = USERS[user_id].name
- self.login_manager._request_callback = None
- with self.app.test_client() as c:
- decoded = base64.b64encode(str(user_id).encode()).decode()
- headers = [("Authorization", f"Basic {decoded}")]
- result = c.get("/username", headers=headers)
- self.assertEqual(user_name, result.data.decode("utf-8"))
-
- def test_login_invalid_user_with_header(self):
- user_id = 9000
- user_name = "Anonymous"
- self.login_manager._request_callback = None
- with self.app.test_client() as c:
- decoded = base64.b64encode(str(user_id).encode()).decode()
- headers = [("Authorization", f"Basic {decoded}")]
- result = c.get("/username", headers=headers)
- self.assertEqual(user_name, result.data.decode("utf-8"))
-
def test_login_user_with_request(self):
user_id = 2
user_name = USERS[user_id].name
@@ -914,18 +875,6 @@
c.get("/username")
listener.assert_heard_one(self.app, user=notch)
- def test_user_loaded_from_header_fired(self):
- user_id = 1
- user_name = USERS[user_id].name
- self.login_manager._request_callback = None
- with self.app.test_client() as c:
- with listen_to(user_loaded_from_header) as listener:
- decoded = base64.b64encode(str(user_id).encode()).decode()
- headers = [("Authorization", f"Basic {decoded}")]
- result = c.get("/username", headers=headers)
- self.assertEqual(user_name, result.data.decode("utf-8"))
- listener.assert_heard_one(self.app, user=USERS[user_id])
-
def test_user_loaded_from_request_fired(self):
user_id = 1
user_name = USERS[user_id].name
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package crmsh for openSUSE:Factory checked in at 2022-09-30 17:58:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/crmsh (Old)
and /work/SRC/openSUSE:Factory/.crmsh.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crmsh"
Fri Sep 30 17:58:15 2022 rev:262 rq:1007132 version:4.4.1+20220928.3480aa0d
Changes:
--------
--- /work/SRC/openSUSE:Factory/crmsh/crmsh.changes 2022-09-28 17:51:56.243254489 +0200
+++ /work/SRC/openSUSE:Factory/.crmsh.new.2275/crmsh.changes 2022-09-30 17:58:32.589344640 +0200
@@ -1,0 +2,20 @@
+Wed Sep 28 08:53:06 UTC 2022 - XLiang(a)suse.com
+
+- Update to version 4.4.1+20220928.3480aa0d:
+ * Dev: behave: append more functional test for sbd and watchdog
+
+-------------------------------------------------------------------
+Wed Sep 28 08:19:45 UTC 2022 - XLiang(a)suse.com
+
+- Update to version 4.4.1+20220928.ef80f673:
+ * Dev: unittest: Adjust unit test based on previous changes
+ * Fix: sbd: Ask if overwrite when given sbd device on interactive mode(bsc#1201428)
+
+-------------------------------------------------------------------
+Wed Sep 28 06:26:30 UTC 2022 - XLiang(a)suse.com
+
+- Update to version 4.4.1+20220928.ea5c5190:
+ * Dev: history: print necessary log messages when collecting report
+ * Dev: report: make sure 'crm -d report' could increase the verbosity
+
+-------------------------------------------------------------------
Old:
----
crmsh-4.4.1+20220928.ded85d0a.tar.bz2
New:
----
crmsh-4.4.1+20220928.3480aa0d.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ crmsh.spec ++++++
--- /var/tmp/diff_new_pack.0005tr/_old 2022-09-30 17:58:33.109345752 +0200
+++ /var/tmp/diff_new_pack.0005tr/_new 2022-09-30 17:58:33.117345769 +0200
@@ -36,7 +36,7 @@
Summary: High Availability cluster command-line interface
License: GPL-2.0-or-later
Group: %{pkg_group}
-Version: 4.4.1+20220928.ded85d0a
+Version: 4.4.1+20220928.3480aa0d
Release: 0
URL: http://crmsh.github.io
Source0: %{name}-%{version}.tar.bz2
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.0005tr/_old 2022-09-30 17:58:33.165345872 +0200
+++ /var/tmp/diff_new_pack.0005tr/_new 2022-09-30 17:58:33.169345880 +0200
@@ -9,7 +9,7 @@
</service>
<service name="tar_scm">
<param name="url">https://github.com/ClusterLabs/crmsh.git</param>
- <param name="changesrevision">37d4b63487534aa9de6fbfefb8e87812bfad14be</param>
+ <param name="changesrevision">3081582137d44f867222d7161eebca796d2c3293</param>
</service>
</servicedata>
(No newline at EOF)
++++++ crmsh-4.4.1+20220928.ded85d0a.tar.bz2 -> crmsh-4.4.1+20220928.3480aa0d.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20220928.ded85d0a/crmsh/history.py new/crmsh-4.4.1+20220928.3480aa0d/crmsh/history.py
--- old/crmsh-4.4.1+20220928.ded85d0a/crmsh/history.py 2022-09-28 02:31:20.000000000 +0200
+++ new/crmsh-4.4.1+20220928.3480aa0d/crmsh/history.py 2022-09-28 10:37:09.000000000 +0200
@@ -473,19 +473,21 @@
nodes_option = "'-n %s'" % ' '.join(self.setnodes)
utils.mkdirp(os.path.dirname(d))
logger.info("Retrieving information from cluster nodes, please wait...")
- rc = utils.pipe_cmd_nosudo("%s -Z -Q -f '%s' %s %s %s %s" %
- (extcmd,
- self.from_dt.ctime(),
- to_option,
- nodes_option,
- str(config.core.report_tool_options),
- d))
+ cmd = "{} {} -Z -Q -f '{}' {} {} {} {}".format(extcmd,
+ "-v" if config.core.debug else "", self.from_dt.ctime(),
+ to_option, nodes_option, str(config.core.report_tool_options), d)
+ logger.debug("Running command: {}".format(cmd))
+ rc, out, err = utils.get_stdout_stderr(cmd)
if rc != 0:
+ if err:
+ print(err)
if os.path.isfile(tarball):
self.warn("report thinks it failed, proceeding anyway")
else:
self.error("report failed")
return None
+ if out:
+ print(out)
self.last_live_update = time.time()
return self.unpack_report(tarball)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20220928.ded85d0a/crmsh/report/constants.py new/crmsh-4.4.1+20220928.3480aa0d/crmsh/report/constants.py
--- old/crmsh-4.4.1+20220928.ded85d0a/crmsh/report/constants.py 2022-09-28 02:31:20.000000000 +0200
+++ new/crmsh-4.4.1+20220928.3480aa0d/crmsh/report/constants.py 2022-09-28 10:37:09.000000000 +0200
@@ -60,7 +60,6 @@
# UNIQUE_MSG = "Mark:HB_REPORT:%d" % now_second
USER_CLUSTER_TYPE = "Corosync/Pacemaker"
USER_NODES = ""
-VERBOSITY = 0
WE = socket.gethostname()
WORKDIR = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20220928.ded85d0a/crmsh/report/core.py new/crmsh-4.4.1+20220928.3480aa0d/crmsh/report/core.py
--- old/crmsh-4.4.1+20220928.ded85d0a/crmsh/report/core.py 2022-09-28 02:31:20.000000000 +0200
+++ new/crmsh-4.4.1+20220928.3480aa0d/crmsh/report/core.py 2022-09-28 10:37:09.000000000 +0200
@@ -52,7 +52,7 @@
env_dict["SKIP_LVL"] = constants.SKIP_LVL
env_dict["EXTRA_LOGS"] = constants.EXTRA_LOGS
env_dict["PCMK_LOG"] = constants.PCMK_LOG
- env_dict["VERBOSITY"] = int(constants.VERBOSITY)
+ env_dict["VERBOSITY"] = int(config.report.verbosity) or (1 if config.core.debug else 0)
res_str = ""
for k, v in env_dict.items():
@@ -133,8 +133,7 @@
constants.SKIP_LVL = utillib.str_to_bool(env_dict["SKIP_LVL"])
constants.EXTRA_LOGS = env_dict["EXTRA_LOGS"]
constants.PCMK_LOG = env_dict["PCMK_LOG"]
- constants.VERBOSITY = int(env_dict["VERBOSITY"])
- config.report.verbosity = constants.VERBOSITY
+ config.report.verbosity = env_dict["VERBOSITY"]
def parse_argument(argv):
@@ -151,6 +150,7 @@
else:
usage("short")
+ verbosity = 0
for args, option in opt:
if args == '-h':
usage()
@@ -191,11 +191,12 @@
if args == "-E":
constants.EXTRA_LOGS += " %s" % option
if args == "-v":
- constants.VERBOSITY += 1
- config.report.verbosity = constants.VERBOSITY
+ verbosity += 1
if args == '-d':
constants.COMPRESS = False
+ config.report.verbosity = verbosity
+
if config.report.sanitize_rule:
constants.DO_SANITIZE = True
temp_pattern_set = set()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20220928.ded85d0a/crmsh/sbd.py new/crmsh-4.4.1+20220928.3480aa0d/crmsh/sbd.py
--- old/crmsh-4.4.1+20220928.ded85d0a/crmsh/sbd.py 2022-09-28 02:31:20.000000000 +0200
+++ new/crmsh-4.4.1+20220928.3480aa0d/crmsh/sbd.py 2022-09-28 10:37:09.000000000 +0200
@@ -284,7 +284,8 @@
self._context = context
self._delay_start = False
self.timeout_inst = None
- self.no_overwrite = False
+ self.no_overwrite_map = {}
+ self.no_update_config = False
@staticmethod
def _get_device_uuid(dev, node=None):
@@ -320,6 +321,12 @@
raise ValueError("{} doesn't look like a block device".format(dev))
self._compare_device_uuid(dev, compare_node_list)
+ def _no_overwrite_check(self, dev):
+ """
+ Check if device already initialized and if need to overwrite
+ """
+ return SBDManager.has_sbd_device_already_initialized(dev) and not bootstrap.confirm("SBD is already configured to use {} - overwrite?".format(dev))
+
def _get_sbd_device_interactive(self):
"""
Get sbd device on interactive mode
@@ -335,8 +342,10 @@
return
configured_dev_list = self._get_sbd_device_from_config()
- if configured_dev_list and not bootstrap.confirm("SBD is already configured to use {} - overwrite?".format(';'.join(configured_dev_list))):
- self.no_overwrite = True
+ for dev in configured_dev_list:
+ self.no_overwrite_map[dev] = self._no_overwrite_check(dev)
+ if self.no_overwrite_map and all(self.no_overwrite_map.values()):
+ self.no_update_config = True
return configured_dev_list
dev_list = []
@@ -348,14 +357,22 @@
if dev == "none":
self.diskless_sbd = True
return
+
dev_list = utils.re_split_string(self.PARSE_RE, dev)
try:
self._verify_sbd_device(dev_list)
except ValueError as err_msg:
logger.error(str(err_msg))
continue
- for dev_item in dev_list:
- logger.warning("All data on {} will be destroyed!".format(dev_item))
+
+ for dev in dev_list:
+ if dev not in self.no_overwrite_map:
+ self.no_overwrite_map[dev] = self._no_overwrite_check(dev)
+ if self.no_overwrite_map[dev]:
+ if dev == dev_list[-1]:
+ return dev_list
+ continue
+ logger.warning("All data on {} will be destroyed!".format(dev))
if bootstrap.confirm('Are you sure you wish to use this device?'):
dev_looks_sane = True
else:
@@ -372,6 +389,10 @@
if self.sbd_devices_input:
dev_list = utils.parse_append_action_argument(self.sbd_devices_input)
self._verify_sbd_device(dev_list)
+ for dev in dev_list:
+ self.no_overwrite_map[dev] = self._no_overwrite_check(dev)
+ if all(self.no_overwrite_map.values()) and dev_list == self._get_sbd_device_from_config():
+ self.no_update_config = True
elif not self.diskless_sbd:
dev_list = self._get_sbd_device_interactive()
self._sbd_devices = dev_list
@@ -386,7 +407,7 @@
msg = ""
if self.diskless_sbd:
msg = "Configuring diskless SBD"
- elif not self.no_overwrite:
+ elif not all(self.no_overwrite_map.values()):
msg = "Initializing SBD"
if msg:
logger.info(msg)
@@ -398,7 +419,7 @@
opt = "-4 {} -1 {}".format(self.timeout_inst.sbd_msgwait, self.timeout_inst.sbd_watchdog_timeout)
for dev in self._sbd_devices:
- if self.no_overwrite and SBDManager.has_sbd_device_already_initialized(dev):
+ if dev in self.no_overwrite_map and self.no_overwrite_map[dev]:
continue
rc, _, err = bootstrap.invoke("sbd {} -d {} create".format(opt, dev))
if not rc:
@@ -408,7 +429,7 @@
"""
Update /etc/sysconfig/sbd
"""
- if self.no_overwrite:
+ if self.no_update_config:
bootstrap.csync2_update(SYSCONFIG_SBD)
return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20220928.ded85d0a/test/features/bootstrap_sbd_normal.feature new/crmsh-4.4.1+20220928.3480aa0d/test/features/bootstrap_sbd_normal.feature
--- old/crmsh-4.4.1+20220928.ded85d0a/test/features/bootstrap_sbd_normal.feature 2022-09-28 02:31:20.000000000 +0200
+++ new/crmsh-4.4.1+20220928.3480aa0d/test/features/bootstrap_sbd_normal.feature 2022-09-28 10:37:09.000000000 +0200
@@ -37,15 +37,21 @@
And Resource "stonith:external/sbd" not configured
@clean
- Scenario: Configure diskless sbd
+ Scenario: Configure diskless sbd(bsc#1181907)
Given Cluster service is "stopped" on "hanode1"
Given Cluster service is "stopped" on "hanode2"
When Run "crm cluster init -S -y" on "hanode1"
+ Then Expected "Diskless SBD requires cluster with three or more nodes." in stdout
Then Cluster service is "started" on "hanode1"
And Service "sbd" is "started" on "hanode1"
When Run "crm cluster join -c hanode1 -y" on "hanode2"
+ Then Expected "Diskless SBD requires cluster with three or more nodes." in stdout
Then Cluster service is "started" on "hanode2"
And Service "sbd" is "started" on "hanode2"
+ When Run "crm cluster join -c hanode1 -y" on "hanode3"
+ Then Expected "Diskless SBD requires cluster with three or more nodes." not in stdout
+ Then Cluster service is "started" on "hanode3"
+ And Service "sbd" is "started" on "hanode3"
And Resource "stonith:external/sbd" not configured
@clean
@@ -136,3 +142,19 @@
Then Service "sbd" is "started" on "hanode2"
When Run "sleep 20" on "hanode1"
Then Resource "stonith-sbd" type "external/sbd" is "Started"
+
+ @clean
+ Scenario: Configure sbd when no watchdog device(bsc#1154927, bsc#1178869)
+ Given Cluster service is "stopped" on "hanode1"
+ Given Cluster service is "stopped" on "hanode2"
+ When Try "lsmod |grep softdog && rmmod softdog" on "hanode1"
+ And Try "lsmod |grep softdog && rmmod softdog" on "hanode2"
+ When Run "crm cluster init -s /dev/sda1 -w softdog -y" on "hanode1"
+ Then Cluster service is "started" on "hanode1"
+ And Service "sbd" is "started" on "hanode1"
+ When Try "lsmod |grep softdog"
+ Then Expected return code is "0"
+ When Run "crm cluster join -c hanode1 -y" on "hanode2"
+ Then Cluster service is "started" on "hanode2"
+ And Service "sbd" is "started" on "hanode2"
+ And Resource "stonith-sbd" type "external/sbd" is "Started"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20220928.ded85d0a/test/unittests/test_sbd.py new/crmsh-4.4.1+20220928.3480aa0d/test/unittests/test_sbd.py
--- old/crmsh-4.4.1+20220928.ded85d0a/test/unittests/test_sbd.py 2022-09-28 02:31:20.000000000 +0200
+++ new/crmsh-4.4.1+20220928.3480aa0d/test/unittests/test_sbd.py 2022-09-28 10:37:09.000000000 +0200
@@ -335,13 +335,15 @@
mock_status.assert_called_once_with(sbd.SBDManager.SBD_STATUS_DESCRIPTION)
mock_warn.assert_called_once_with("Not configuring SBD - STONITH will be disabled.")
+ @mock.patch('crmsh.sbd.SBDManager._no_overwrite_check')
@mock.patch('crmsh.sbd.SBDManager._get_sbd_device_from_config')
@mock.patch('crmsh.bootstrap.confirm')
@mock.patch('logging.Logger.info')
- def test_get_sbd_device_interactive_already_configured(self, mock_status, mock_confirm, mock_from_config):
+ def test_get_sbd_device_interactive_already_configured(self, mock_status, mock_confirm, mock_from_config, mock_no_overwrite):
self.sbd_inst._context = mock.Mock(yes_to_all=False)
- mock_confirm.side_effect = [True, False]
+ mock_confirm.return_value = True
mock_from_config.return_value = ["/dev/sda1"]
+ mock_no_overwrite.return_value = True
res = self.sbd_inst._get_sbd_device_interactive()
self.assertEqual(res, ["/dev/sda1"])
@@ -349,19 +351,20 @@
mock_status.assert_called_once_with(sbd.SBDManager.SBD_STATUS_DESCRIPTION)
mock_confirm.assert_has_calls([
mock.call("Do you wish to use SBD?"),
- mock.call("SBD is already configured to use /dev/sda1 - overwrite?")
])
mock_status.assert_called_once_with(sbd.SBDManager.SBD_STATUS_DESCRIPTION)
mock_from_config.assert_called_once_with()
@mock.patch('crmsh.bootstrap.prompt_for_string')
+ @mock.patch('crmsh.sbd.SBDManager._no_overwrite_check')
@mock.patch('crmsh.sbd.SBDManager._get_sbd_device_from_config')
@mock.patch('crmsh.bootstrap.confirm')
@mock.patch('logging.Logger.info')
- def test_get_sbd_device_interactive_diskless(self, mock_status, mock_confirm, mock_from_config, mock_prompt):
+ def test_get_sbd_device_interactive_diskless(self, mock_status, mock_confirm, mock_from_config, mock_no_overwrite, mock_prompt):
self.sbd_inst._context = mock.Mock(yes_to_all=False)
mock_confirm.return_value = True
- mock_from_config.return_value = None
+ mock_no_overwrite.return_value = False
+ mock_from_config.return_value = []
mock_prompt.return_value = "none"
self.sbd_inst._get_sbd_device_interactive()
@@ -371,13 +374,15 @@
mock_prompt.assert_called_once_with('Path to storage device (e.g. /dev/disk/by-id/...), or "none" for diskless sbd, use ";" as separator for multi path', 'none|\\/.*')
@mock.patch('crmsh.bootstrap.prompt_for_string')
+ @mock.patch('crmsh.sbd.SBDManager._no_overwrite_check')
@mock.patch('crmsh.sbd.SBDManager._get_sbd_device_from_config')
@mock.patch('crmsh.bootstrap.confirm')
@mock.patch('logging.Logger.info')
- def test_get_sbd_device_interactive_null_and_diskless(self, mock_status, mock_confirm, mock_from_config, mock_prompt):
+ def test_get_sbd_device_interactive_null_and_diskless(self, mock_status, mock_confirm, mock_from_config, mock_no_overwrite, mock_prompt):
self.sbd_inst._context = mock.Mock(yes_to_all=False)
mock_confirm.return_value = True
- mock_from_config.return_value = None
+ mock_no_overwrite.return_value = False
+ mock_from_config.return_value = []
mock_prompt.side_effect = [None, "none"]
self.sbd_inst._get_sbd_device_interactive()
@@ -394,13 +399,15 @@
@mock.patch('logging.Logger.error')
@mock.patch('crmsh.sbd.SBDManager._verify_sbd_device')
@mock.patch('crmsh.bootstrap.prompt_for_string')
+ @mock.patch('crmsh.sbd.SBDManager._no_overwrite_check')
@mock.patch('crmsh.sbd.SBDManager._get_sbd_device_from_config')
@mock.patch('crmsh.bootstrap.confirm')
@mock.patch('logging.Logger.info')
- def test_get_sbd_device_interactive(self, mock_status, mock_confirm, mock_from_config, mock_prompt, mock_verify, mock_error_msg, mock_warn, mock_split):
+ def test_get_sbd_device_interactive(self, mock_status, mock_confirm, mock_from_config, mock_no_overwrite, mock_prompt, mock_verify, mock_error_msg, mock_warn, mock_split):
self.sbd_inst._context = mock.Mock(yes_to_all=False)
mock_confirm.side_effect = [True, False, True]
- mock_from_config.return_value = None
+ mock_from_config.return_value = []
+ mock_no_overwrite.return_value = False
mock_prompt.side_effect = ["/dev/test1", "/dev/sda1", "/dev/sdb1"]
mock_split.side_effect = [["/dev/test1"], ["/dev/sda1"], ["/dev/sdb1"]]
mock_verify.side_effect = [ValueError("/dev/test1 error"), None, None]
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-parallax for openSUSE:Factory checked in at 2022-09-30 17:58:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-parallax (Old)
and /work/SRC/openSUSE:Factory/.python-parallax.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-parallax"
Fri Sep 30 17:58:14 2022 rev:19 rq:1007131 version:1.0.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-parallax/python-parallax.changes 2022-07-28 20:59:26.931705108 +0200
+++ /work/SRC/openSUSE:Factory/.python-parallax.new.2275/python-parallax.changes 2022-09-30 17:58:31.773342896 +0200
@@ -1,0 +2,8 @@
+Wed Sep 28 02:34:51 UTC 2022 - Nicholas Yang <nicholas.yang(a)suse.com>
+
+- Dev: add parallax.run() to return non-zero rc without raising exceptions
+ Add patch 0005-Dev-add-parallax.run-to-return-non-zero-rc-without-r.patch
+- Fix: Error: inherit from Exception instead of BaseExceptin
+ Add patch 0004-Fix-Error-inherit-from-Exception-instead-of-BaseExce.patch
+
+-------------------------------------------------------------------
New:
----
0004-Fix-Error-inherit-from-Exception-instead-of-BaseExce.patch
0005-Dev-add-parallax.run-to-return-non-zero-rc-without-r.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-parallax.spec ++++++
--- /var/tmp/diff_new_pack.Q06HRN/_old 2022-09-30 17:58:32.257343931 +0200
+++ /var/tmp/diff_new_pack.Q06HRN/_new 2022-09-30 17:58:32.261343939 +0200
@@ -28,6 +28,8 @@
Patch1: 0001-Add-ssh_key-option-used-by-i-option-of-ssh-scp.patch
Patch2: 0002-Change-format-of-scp-command-for-ipv6-compatible.patch
Patch3: 0003-Fix-task-Don-t-use-ssh-if-command-running-on-local-b.patch
+Patch4: 0004-Fix-Error-inherit-from-Exception-instead-of-BaseExce.patch
+Patch5: 0005-Dev-add-parallax.run-to-return-non-zero-rc-without-r.patch
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
@@ -55,6 +57,8 @@
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
+%patch5 -p1
%build
%python_build
++++++ 0004-Fix-Error-inherit-from-Exception-instead-of-BaseExce.patch ++++++
From 31024ba3eafebbf73b188b6a102c4d8f00669705 Mon Sep 17 00:00:00 2001
From: nicholasyang <nicholas.yang(a)suse.com>
Date: Tue, 27 Sep 2022 12:08:17 +0800
Subject: [PATCH 4/5] Fix: Error: inherit from Exception instead of
BaseExceptin
---
parallax/__init__.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/parallax/__init__.py b/parallax/__init__.py
index aa6ebd9..209c6f7 100644
--- a/parallax/__init__.py
+++ b/parallax/__init__.py
@@ -55,14 +55,14 @@ def to_ascii(s):
return s
-class Error(BaseException):
+class Error(Exception):
"""
Returned instead of a result for a host
in case of an error during the processing for
that host.
"""
def __init__(self, msg, task):
- super(BaseException, self).__init__()
+ super(Exception, self).__init__()
self.msg = msg
self.task = task
--
2.37.3
++++++ 0005-Dev-add-parallax.run-to-return-non-zero-rc-without-r.patch ++++++
From 38bac0eb3cb20e9df8cbbf585cf9353793ffdba2 Mon Sep 17 00:00:00 2001
From: nicholasyang <nicholas.yang(a)suse.com>
Date: Tue, 27 Sep 2022 12:08:17 +0800
Subject: [PATCH 5/5] Dev: add parallax.run() to return non-zero rc without
raising exceptions
---
README.md | 15 ++++++++---
parallax/__init__.py | 60 +++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 70 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index beb5620..268f6db 100644
--- a/README.md
+++ b/README.md
@@ -32,10 +32,17 @@ Share and enjoy!
Executes the given command on a set of hosts, collecting the output.
- Returns a dict mapping the hostname of
- each host either to a tuple containing a return code,
- stdout and stderr, or an `parallax.Error` instance
- describing the error.
+ Returns a dict mapping the hostname of each host either to a tuple containing
+ a return code, stdout and stderr when return code is 0, or an `parallax.Error`
+ instance describing the error when return code is not 0.
+
+* `parallax.run(hosts, cmdline, opts)`
+
+ Executes the given command on a set of hosts, collecting the output.
+
+ Returns a dict mapping the hostname of each host either to a tuple containing
+ a return code, stdout and stderr, or an `parallax.Error` instance describing
+ the error when ssh error occurred.
* `parallax.copy(hosts, src, dst, opts)`
diff --git a/parallax/__init__.py b/parallax/__init__.py
index 209c6f7..a3dc75e 100644
--- a/parallax/__init__.py
+++ b/parallax/__init__.py
@@ -162,7 +162,7 @@ def _build_call_cmd(host, port, user, cmdline, opts):
def call(hosts, cmdline, opts=Options()):
"""
- Executes the given command on a set of hosts, collecting the output
+ Executes the given command on a set of hosts, collecting the output. Return Error when exit status != 0.
Returns {host: (rc, stdout, stdin) | Error}
"""
if opts.outdir and not os.path.exists(opts.outdir):
@@ -384,3 +384,61 @@ def is_local_host(host):
except:
hostname = host
return hostname == socket.gethostname()
+
+def run(hosts, cmdline, opts=Options()):
+ """
+ Executes the given command on a set of hosts, collecting the output. Return Error when ssh error occurred.
+ Returns {host: (rc, stdout, stdin) | Error}
+ """
+ if opts.outdir and not os.path.exists(opts.outdir):
+ os.makedirs(opts.outdir)
+ if opts.errdir and not os.path.exists(opts.errdir):
+ os.makedirs(opts.errdir)
+ manager = Manager(limit=opts.limit,
+ timeout=opts.timeout,
+ askpass=opts.askpass,
+ outdir=opts.outdir,
+ errdir=opts.errdir,
+ warn_message=opts.warn_message,
+ callbacks=_RunOutputBuilder())
+ for host, port, user in _expand_host_port_user(hosts):
+ is_local = is_local_host(host)
+ if is_local:
+ cmd = [cmdline]
+ else:
+ cmd = _build_call_cmd(host, port, user, cmdline, opts)
+ t = Task(host, port, user, cmd,
+ stdin=opts.input_stream,
+ verbose=opts.verbose,
+ quiet=opts.quiet,
+ print_out=opts.print_out,
+ inline=opts.inline,
+ inline_stdout=opts.inline_stdout,
+ default_user=opts.default_user,
+ is_local=is_local)
+ manager.add_task(t)
+ try:
+ return manager.run()
+ except FatalError as err:
+ raise IOError(str(err))
+
+
+class _RunOutputBuilder(object):
+ def __init__(self):
+ self.finished_tasks = []
+
+ def finished(self, task, n):
+ """Called when Task is complete"""
+ self.finished_tasks.append(task)
+
+ def result(self, manager):
+ """Called when all Tasks are complete to generate result"""
+ ret = {}
+ for task in self.finished_tasks:
+ if task.exitstatus == 255:
+ ret[task.host] = Error(', '.join(task.failures), task)
+ else:
+ ret[task.host] = (task.exitstatus,
+ task.outputbuffer or manager.outdir,
+ task.errorbuffer or manager.errdir)
+ return ret
--
2.37.3
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package wxlua for openSUSE:Factory checked in at 2022-09-30 17:58:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wxlua (Old)
and /work/SRC/openSUSE:Factory/.wxlua.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wxlua"
Fri Sep 30 17:58:11 2022 rev:8 rq:1007113 version:3.1.0.0+42
Changes:
--------
--- /work/SRC/openSUSE:Factory/wxlua/wxlua.changes 2022-04-25 23:36:24.614490670 +0200
+++ /work/SRC/openSUSE:Factory/.wxlua.new.2275/wxlua.changes 2022-09-30 17:58:29.597338245 +0200
@@ -1,0 +2,30 @@
+Thu Sep 29 08:12:01 UTC 2022 - Christophe Giboudeaux <christophe(a)krop.fr>
+
+- Add a rpmlintrc file to ignore false positive in 15.4
+
+-------------------------------------------------------------------
+Mon Aug 29 08:10:27 UTC 2022 - christophe(a)krop.fr
+
+- Update to version 3.1.0.0+42:
+ * Improve build against wxWidgets 3.2.0-rc1
+ * Updated luaopen_wx to always initialize.
+ * Fixed wxBitmap error.
+ * Missing methods in wxGraphicsPenInfo are implemented
+ * wxMouseEvent methods are updated for wxWidgets 3.1
+ * cmake: add imm32 to MINGW_EXTRA_LIBS
+ * wxLuaDataObjectSimple::GetDataHere allows wxMemoryBuffer as
+ a return value
+ * wxLuaDataObjectSimple::GetDataHere calls the derived method
+ incorrectly
+ * DataViewCtrl: ExpandChildren method added for 3.1.5 and above
+ * wxPen::SetDashes(), GetDashes() are implemented
+ * Updated cmake config to better recognize GTK3 libraries
+ * Updated wx-config targets Makefile to fix reference to Lua
+ folder
+ * Updated Makefile to fix reference to Lua folder
+ * wxYELLOW etc. and wxTheColourDatabase are implemented
+ * wxEVT_SEARCH and wxEVT_SEARCH_CANCEL require >=3.1.1
+- set CMAKE_SKIP_RPATH. wxlua writes incorrect RUNPATH to
+ libraries and executables.
+
+-------------------------------------------------------------------
Old:
----
wxlua-3.1.0.0+27.obscpio
New:
----
wxlua-3.1.0.0+42.obscpio
wxlua-rpmlintrc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wxlua.spec ++++++
--- /var/tmp/diff_new_pack.vckZh6/_old 2022-09-30 17:58:30.345339843 +0200
+++ /var/tmp/diff_new_pack.vckZh6/_new 2022-09-30 17:58:30.349339852 +0200
@@ -16,16 +16,18 @@
#
+%global wx_version %(wx-config --release | sed 's/\\.//')
%define binds webview;gl;xrc;xml;net;media;propgrid;richtext;aui;stc;html;adv;core;base
%define sover 3_1_0_0
Name: wxlua
-Version: 3.1.0.0+27
+Version: 3.1.0.0+42
Release: 0
Summary: Lua bindings for wxWidgets
License: GPL-2.0-or-later WITH WxWindows-exception-3.1
Group: Development/Languages/Other
URL: https://github.com/pkulchenko/wxlua
Source: %{name}-%{version}.tar.xz
+Source99: wxlua-rpmlintrc
BuildRequires: ccache
BuildRequires: cmake >= 2.8
BuildRequires: desktop-file-utils
@@ -46,10 +48,10 @@
%package -n lib%{name}
Summary: Set of Lua bindings to the C++ wxWidgets cross-platform GUI library
Group: System/Libraries
-Requires: libwxlua-wx31-%{sover} = %{version}
-Requires: libwxlua_bind-wx31-%{sover} = %{version}
-Requires: libwxlua_debug-wx31-%{sover} = %{version}
-Requires: libwxlua_debugger-wx31-%{sover} = %{version}
+Requires: libwxlua-wx%{wx_version}-%{sover} = %{version}
+Requires: libwxlua_bind-wx%{wx_version}-%{sover} = %{version}
+Requires: libwxlua_debug-wx%{wx_version}-%{sover} = %{version}
+Requires: libwxlua_debugger-wx%{wx_version}-%{sover} = %{version}
%description -n lib%{name}
wxLua is a set of bindings to the C++ wxWidgets cross-platform GUI library for
@@ -58,44 +60,44 @@
toolbars, controls, image loading and saving, drawing, sockets, streams,
printing, clipboard access... and much more.
-%package -n libwxlua-wx31-%{sover}
+%package -n libwxlua-wx%{wx_version}-%{sover}
Summary: Lua bindings to the C++ wxWidgets cross-platform GUI library
Group: System/Libraries
-%description -n libwxlua-wx31-%{sover}
+%description -n libwxlua-wx%{wx_version}-%{sover}
wxLua is a set of bindings to the C++ wxWidgets cross-platform GUI library for
the Lua programming language. Nearly all of the functionality of wxWidgets is
exposed to Lua, meaning that your programs can have windows, dialogs, menus,
toolbars, controls, image loading and saving, drawing, sockets, streams,
printing, clipboard access... and much more.
-%package -n libwxlua_bind-wx31-%{sover}
+%package -n libwxlua_bind-wx%{wx_version}-%{sover}
Summary: Lua bindings to the C++ wxWidgets cross-platform GUI library
Group: System/Libraries
-%description -n libwxlua_bind-wx31-%{sover}
+%description -n libwxlua_bind-wx%{wx_version}-%{sover}
wxLua is a set of bindings to the C++ wxWidgets cross-platform GUI library for
the Lua programming language. Nearly all of the functionality of wxWidgets is
exposed to Lua, meaning that your programs can have windows, dialogs, menus,
toolbars, controls, image loading and saving, drawing, sockets, streams,
printing, clipboard access... and much more.
-%package -n libwxlua_debug-wx31-%{sover}
+%package -n libwxlua_debug-wx%{wx_version}-%{sover}
Summary: Lua bindings to the C++ wxWidgets cross-platform GUI library
Group: System/Libraries
-%description -n libwxlua_debug-wx31-%{sover}
+%description -n libwxlua_debug-wx%{wx_version}-%{sover}
wxLua is a set of bindings to the C++ wxWidgets cross-platform GUI library for
the Lua programming language. Nearly all of the functionality of wxWidgets is
exposed to Lua, meaning that your programs can have windows, dialogs, menus,
toolbars, controls, image loading and saving, drawing, sockets, streams,
printing, clipboard access... and much more.
-%package -n libwxlua_debugger-wx31-%{sover}
+%package -n libwxlua_debugger-wx%{wx_version}-%{sover}
Summary: Lua bindings to the C++ wxWidgets cross-platform GUI library
Group: System/Libraries
-%description -n libwxlua_debugger-wx31-%{sover}
+%description -n libwxlua_debugger-wx%{wx_version}-%{sover}
wxLua is a set of bindings to the C++ wxWidgets cross-platform GUI library for
the Lua programming language. Nearly all of the functionality of wxWidgets is
exposed to Lua, meaning that your programs can have windows, dialogs, menus,
@@ -131,7 +133,8 @@
-DwxWidgets_COMPONENTS="%{binds}" \
-DwxLuaBind_COMPONENTS="%{binds}" \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DCMAKE_INSTALL_PREFIX=%{_prefix}
+ -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DCMAKE_SKIP_RPATH=TRUE
pushd modules/luamodule
make %{?_smp_mflags}
@@ -162,14 +165,14 @@
sed 's-#!/usr/bin/env lua-#!/usr/bin/lua%{lua_version}-g' -i %{buildroot}%{_datadir}/wxlua/apps/wxluafreeze/*
-%post -n libwxlua-wx31-%{sover} -p /sbin/ldconfig
-%postun -n libwxlua-wx31-%{sover} -p /sbin/ldconfig
-%post -n libwxlua_bind-wx31-%{sover} -p /sbin/ldconfig
-%postun -n libwxlua_bind-wx31-%{sover} -p /sbin/ldconfig
-%post -n libwxlua_debug-wx31-%{sover} -p /sbin/ldconfig
-%postun -n libwxlua_debug-wx31-%{sover} -p /sbin/ldconfig
-%post -n libwxlua_debugger-wx31-%{sover} -p /sbin/ldconfig
-%postun -n libwxlua_debugger-wx31-%{sover} -p /sbin/ldconfig
+%post -n libwxlua-wx%{wx_version}-%{sover} -p /sbin/ldconfig
+%postun -n libwxlua-wx%{wx_version}-%{sover} -p /sbin/ldconfig
+%post -n libwxlua_bind-wx%{wx_version}-%{sover} -p /sbin/ldconfig
+%postun -n libwxlua_bind-wx%{wx_version}-%{sover} -p /sbin/ldconfig
+%post -n libwxlua_debug-wx%{wx_version}-%{sover} -p /sbin/ldconfig
+%postun -n libwxlua_debug-wx%{wx_version}-%{sover} -p /sbin/ldconfig
+%post -n libwxlua_debugger-wx%{wx_version}-%{sover} -p /sbin/ldconfig
+%postun -n libwxlua_debugger-wx%{wx_version}-%{sover} -p /sbin/ldconfig
%files
%{_bindir}/wxLua
@@ -182,17 +185,17 @@
%files -n lib%{name}
%{_libdir}/lua/%{lua_version}/wx.so
-%files -n libwxlua-wx31-%{sover}
-%{_libdir}/libwxlua-wx31*.so
+%files -n libwxlua-wx%{wx_version}-%{sover}
+%{_libdir}/libwxlua-wx%{wx_version}*.so
-%files -n libwxlua_bind-wx31-%{sover}
-%{_libdir}/libwxlua_bind-wx31*.so
+%files -n libwxlua_bind-wx%{wx_version}-%{sover}
+%{_libdir}/libwxlua_bind-wx%{wx_version}*.so
-%files -n libwxlua_debug-wx31-%{sover}
-%{_libdir}/libwxlua_debug-wx31*.so
+%files -n libwxlua_debug-wx%{wx_version}-%{sover}
+%{_libdir}/libwxlua_debug-wx%{wx_version}*.so
-%files -n libwxlua_debugger-wx31-%{sover}
-%{_libdir}/libwxlua_debugger-wx31*.so
+%files -n libwxlua_debugger-wx%{wx_version}-%{sover}
+%{_libdir}/libwxlua_debugger-wx%{wx_version}*.so
%files devel
%{_includedir}/wxlua/
++++++ _service ++++++
--- /var/tmp/diff_new_pack.vckZh6/_old 2022-09-30 17:58:30.385339929 +0200
+++ /var/tmp/diff_new_pack.vckZh6/_new 2022-09-30 17:58:30.389339937 +0200
@@ -2,7 +2,7 @@
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://github.com/pkulchenko/wxlua.git</param>
- <param name="revision">a30b837fac5a812a51c57b6088551aea75482a67</param>
+ <param name="revision">376d531a7f7b031222372b2cbe0c482d1c5ac4f9</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param>
@@ -14,5 +14,4 @@
</service>
<service name="set_version" mode="manual"/>
</services>
-(No newline at EOF)
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.vckZh6/_old 2022-09-30 17:58:30.409339980 +0200
+++ /var/tmp/diff_new_pack.vckZh6/_new 2022-09-30 17:58:30.413339989 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/pkulchenko/wxlua.git</param>
- <param name="changesrevision">a30b837fac5a812a51c57b6088551aea75482a67</param></service></servicedata>
+ <param name="changesrevision">376d531a7f7b031222372b2cbe0c482d1c5ac4f9</param></service></servicedata>
(No newline at EOF)
++++++ wxlua-3.1.0.0+27.obscpio -> wxlua-3.1.0.0+42.obscpio ++++++
/work/SRC/openSUSE:Factory/wxlua/wxlua-3.1.0.0+27.obscpio /work/SRC/openSUSE:Factory/.wxlua.new.2275/wxlua-3.1.0.0+42.obscpio differ: char 28, line 1
++++++ wxlua-rpmlintrc ++++++
# Leap 15.4 complains about the library name, not the so version
addFilter("shlib-policy-name-error .*")
++++++ wxlua.obsinfo ++++++
--- /var/tmp/diff_new_pack.vckZh6/_old 2022-09-30 17:58:30.469340108 +0200
+++ /var/tmp/diff_new_pack.vckZh6/_new 2022-09-30 17:58:30.473340117 +0200
@@ -1,6 +1,5 @@
name: wxlua
-version: 3.1.0.0+27
-mtime: 1618795125
-commit: a30b837fac5a812a51c57b6088551aea75482a67
-
+version: 3.1.0.0+42
+mtime: 1659203189
+commit: 376d531a7f7b031222372b2cbe0c482d1c5ac4f9
1
0