openSUSE Commits
Threads by month
- ----- 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
May 2019
- 1 participants
- 2232 discussions
Hello community,
here is the log from the commit of package gnome-nibbles for openSUSE:Factory checked in at 2019-05-03 22:45:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-nibbles (Old)
and /work/SRC/openSUSE:Factory/.gnome-nibbles.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-nibbles"
Fri May 3 22:45:38 2019 rev:28 rq:695751 version:3.31.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-nibbles/gnome-nibbles.changes 2018-08-24 17:10:39.878539253 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-nibbles.new.5148/gnome-nibbles.changes 2019-05-03 22:45:48.363683743 +0200
@@ -1,0 +2,8 @@
+Fri Jan 4 21:01:21 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.3:
+ + Fix display of level completed label and next level button.
+ + Replace app menu with window menu.
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
gnome-nibbles-3.24.1.tar.xz
New:
----
gnome-nibbles-3.31.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-nibbles.spec ++++++
--- /var/tmp/diff_new_pack.VEYO4l/_old 2019-05-03 22:45:48.923685028 +0200
+++ /var/tmp/diff_new_pack.VEYO4l/_new 2019-05-03 22:45:48.923685028 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gnome-nibbles
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: gnome-nibbles
-Version: 3.24.1
+Version: 3.31.3
Release: 0
Summary: Worm Game for GNOME
License: GPL-3.0-or-later
Group: Amusements/Games/Action/Arcade
URL: https://live.gnome.org/Lightsoff
-Source0: https://download.gnome.org/sources/gnome-nibbles/3.24/%{name}-%{version}.ta…
+Source0: https://download.gnome.org/sources/gnome-nibbles/3.31/%{name}-%{version}.ta…
BuildRequires: fdupes
BuildRequires: intltool >= 0.50.2
++++++ gnome-nibbles-3.24.1.tar.xz -> gnome-nibbles-3.31.3.tar.xz ++++++
++++ 506515 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gtk4 for openSUSE:Factory checked in at 2019-05-03 22:45:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gtk4 (Old)
and /work/SRC/openSUSE:Factory/.gtk4.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtk4"
Fri May 3 22:45:34 2019 rev:15 rq:695737 version:3.94.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/gtk4/gtk4.changes 2018-09-28 08:54:01.961674428 +0200
+++ /work/SRC/openSUSE:Factory/.gtk4.new.5148/gtk4.changes 2019-05-03 22:45:46.079678499 +0200
@@ -1,0 +2,6 @@
+Fri Sep 28 14:17:47 UTC 2018 - bjorn.lie(a)gmail.com
+
+- Update options passed to meson, bring back lost support for
+ broadway and cloudprint following upstreams changes.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gtk4.spec ++++++
--- /var/tmp/diff_new_pack.pH55nO/_old 2019-05-03 22:45:48.143683238 +0200
+++ /var/tmp/diff_new_pack.pH55nO/_new 2019-05-03 22:45:48.147683247 +0200
@@ -13,7 +13,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -211,15 +211,14 @@
%meson \
-Dbuild-tests=false \
-Ddocumentation=true \
- -Denable-broadway-backend=true \
- -Denable-cloudprint-print-backend=yes \
- -Denable-cloudproviders=false \
- -Denable-colord=yes \
- -Denable-cups-print-backend=yes \
- -Denable-vulkan=yes \
- -Denable-wayland-backend=true \
- -Denable-x11-backend=true \
- -Denable-xinerama=yes \
+ -Dbroadway-backend=true \
+ -Dcloudproviders=false \
+ -Dcolord=yes \
+ -Dprint-backends=all \
+ -Dvulkan=yes \
+ -Dwayland-backend=true \
+ -Dx11-backend=true \
+ -Dxinerama=yes \
-Dintrospection=true \
-Dman-pages=true
%meson_build
@@ -258,6 +257,7 @@
%dir %{_libdir}/gtk-4.0/%{gtk_binary_version}
%dir %{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/
%{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/libprintbackend-cups.so
+%{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/libprintbackend-cloudprint.so
%{_libdir}/gtk-4.0/%{gtk_binary_version}/printbackends/libprintbackend-file.so
%dir %{_libdir}/gtk-4.0/%{gtk_binary_version}/media/
%{_libdir}/gtk-4.0/%{gtk_binary_version}/media/libmedia-gstreamer.so
@@ -272,6 +272,7 @@
%{_libdir}/girepository-1.0/Gtk-4.0.typelib
%files tools
+%{_bindir}/gtk4-broadwayd
%{_bindir}/gtk4-icon-browser
%{_bindir}/gtk4-builder-tool
%{_bindir}/gtk4-encode-symbolic-svg
@@ -321,6 +322,7 @@
%{_datadir}/icons/hicolor/*/apps/gtk4-widget-factory-symbolic.symbolic.png
%{_includedir}/gtk-4.0/
%{_libdir}/pkgconfig/gtk+-4.0.pc
+%{_libdir}/pkgconfig/gtk+-broadway-4.0.pc
%{_libdir}/pkgconfig/gtk+-wayland-4.0.pc
%{_libdir}/pkgconfig/gtk+-unix-print-4.0.pc
%{_libdir}/pkgconfig/gtk+-x11-4.0.pc
1
0
Hello community,
here is the log from the commit of package gnome-backgrounds for openSUSE:Factory checked in at 2019-05-03 22:45:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-backgrounds (Old)
and /work/SRC/openSUSE:Factory/.gnome-backgrounds.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-backgrounds"
Fri May 3 22:45:30 2019 rev:73 rq:695718 version:3.32.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-backgrounds/gnome-backgrounds.changes 2018-10-01 08:16:04.794019309 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-backgrounds.new.5148/gnome-backgrounds.changes 2019-05-03 22:45:44.391674624 +0200
@@ -1,0 +2,12 @@
+Mon Mar 18 18:00:50 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.0:
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Feb 19 20:11:17 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.91:
+ + New default & supplemental updates.
+
+-------------------------------------------------------------------
Old:
----
gnome-backgrounds-3.30.0.tar.xz
New:
----
gnome-backgrounds-3.32.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-backgrounds.spec ++++++
--- /var/tmp/diff_new_pack.Wke5ew/_old 2019-05-03 22:45:45.119676295 +0200
+++ /var/tmp/diff_new_pack.Wke5ew/_new 2019-05-03 22:45:45.119676295 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gnome-backgrounds
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: gnome-backgrounds
-Version: 3.30.0
+Version: 3.32.0
Release: 0
Summary: GNOME Backgrounds
License: GPL-2.0-or-later AND CC-BY-2.0 AND CC-BY-SA-2.0 AND CC-BY-SA-3.0
Group: System/GUI/GNOME
-URL: https://www.gnome.org/
-Source0: https://download.gnome.org/sources/gnome-backgrounds/3.30/%{name}-%{version…
+URL: https://gitlab.gnome.org/GNOME/gnome-backgrounds
+Source0: https://download.gnome.org/sources/gnome-backgrounds/3.32/%{name}-%{version…
BuildRequires: meson
BuildRequires: pkgconfig
++++++ gnome-backgrounds-3.30.0.tar.xz -> gnome-backgrounds-3.32.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/gnome-backgrounds/gnome-backgrounds-3.30.0.tar.xz /work/SRC/openSUSE:Factory/.gnome-backgrounds.new.5148/gnome-backgrounds-3.32.0.tar.xz differ: char 26, line 1
1
0
Hello community,
here is the log from the commit of package gnome-characters for openSUSE:Factory checked in at 2019-05-03 22:45:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-characters (Old)
and /work/SRC/openSUSE:Factory/.gnome-characters.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-characters"
Fri May 3 22:45:26 2019 rev:20 rq:695715 version:3.32.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-characters/gnome-characters.changes 2018-10-11 12:01:17.809577698 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-characters.new.5148/gnome-characters.changes 2019-05-03 22:45:41.411667783 +0200
@@ -1,0 +2,16 @@
+Tue Apr 9 09:04:09 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.1:
+ + SearchProvider: Fix deprecation fixes.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Fri Mar 15 12:51:18 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.0:
+ + Update the icon to follow the GNOME 3.32 guidelines.
+ + Remove app menu following GNOME 3.32 guidelines.
+ + Fix various javascript deprecation warnings.
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
gnome-characters-3.30.0.tar.xz
New:
----
gnome-characters-3.32.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-characters.spec ++++++
--- /var/tmp/diff_new_pack.X8eWkO/_old 2019-05-03 22:45:41.955669032 +0200
+++ /var/tmp/diff_new_pack.X8eWkO/_new 2019-05-03 22:45:41.963669050 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gnome-characters
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
Name: gnome-characters
-Version: 3.30.0
+Version: 3.32.1
Release: 0
Summary: Character Map
License: GPL-3.0-or-later
Group: System/GUI/GNOME
URL: https://wiki.gnome.org/Design/Apps/CharacterMap
-Source0: https://download.gnome.org/sources/gnome-characters/3.30/%{name}-%{version}…
+Source0: https://download.gnome.org/sources/gnome-characters/3.32/%{name}-%{version}…
BuildRequires: gobject-introspection-devel >= 1.35.9
BuildRequires: intltool >= 0.50.1
++++++ gnome-characters-3.30.0.tar.xz -> gnome-characters-3.32.1.tar.xz ++++++
++++ 11284 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package accerciser for openSUSE:Factory checked in at 2019-05-03 22:45:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/accerciser (Old)
and /work/SRC/openSUSE:Factory/.accerciser.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "accerciser"
Fri May 3 22:45:23 2019 rev:59 rq:695714 version:3.32.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/accerciser/accerciser.changes 2018-03-14 19:36:40.822226297 +0100
+++ /work/SRC/openSUSE:Factory/.accerciser.new.5148/accerciser.changes 2019-05-03 22:45:39.987664514 +0200
@@ -1,0 +2,35 @@
+Tue Apr 9 07:27:23 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.1:
+ + Fix accessing items without a compositor.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Fri Mar 22 20:39:51 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.0:
+ + Updated maintainers info.
+ + Stopped using intltool.
+ + Desktop: Dropped obsolete X-GNOME-Full-Name fields.
+ + Updated bug reporting links.
+ + Help: Replace git.gnome.org by gitlab.gnome.org.
+ + Updated translations.
+- Drop intltool BuildRequires, no longer needed.
+
+-------------------------------------------------------------------
+Sat Jan 12 14:26:05 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.4:
+ + Updated maintainers info.
+ + Fixed appdata file name.
+ + Fixed duplicate section ID on help.
+ + Marked missing string for translation.
+ + Removed unused images from localized user docs accerciser.png.
+ + ipython: Update to support IPython version 5 (bgo#776301).
+ + Python 3.7+ support, async is a keyword.
+ + Replace Bugzilla by Gitlab URL in DOAP file.
+- Stop post(un) handling of glib2_gsettings_schema_post(un),
+ desktop_database_post(un) and icon_theme_cache_post(un) + drop
+ glib2_gsettings_schema_requires, no longer needed.
+
+-------------------------------------------------------------------
Old:
----
accerciser-3.22.0.tar.xz
New:
----
accerciser-3.32.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ accerciser.spec ++++++
--- /var/tmp/diff_new_pack.XxMC24/_old 2019-05-03 22:45:40.547665799 +0200
+++ /var/tmp/diff_new_pack.XxMC24/_new 2019-05-03 22:45:40.551665808 +0200
@@ -1,7 +1,7 @@
#
# spec file for package accerciser
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,21 +12,21 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: accerciser
-Version: 3.22.0
+Version: 3.32.1
Release: 0
Summary: Accessibility debugging tool
License: BSD-3-Clause
Group: Development/Tools/Other
-URL: http://live.gnome.org/Accerciser
-Source0: http://download.gnome.org/sources/accerciser/3.22/%{name}-%{version}.tar.xz
+URL: https://wiki.gnome.org/Apps/Accerciser
+Source0: https://download.gnome.org/sources/accerciser/3.32/%{name}-%{version}.tar.xz
+
BuildRequires: fdupes
BuildRequires: gobject-introspection
-BuildRequires: intltool
BuildRequires: pkgconfig
# py3atspi is a virtual name that is provided by the default at-spi stack
BuildRequires: py3atspi
@@ -41,7 +41,6 @@
Requires: python3-gobject-Gdk
Recommends: %{name}-lang
BuildArch: noarch
-%glib2_gsettings_schema_requires
%description
Accerciser is an interactive Python accessibility explorer for the
@@ -71,12 +70,13 @@
%lang_package
%prep
-%setup -q
+%autosetup -p1
translation-update-upstream
%build
-%configure
-make %{?_smp_mflags}
+%configure \
+ %{nil}
+%make_build
%install
%make_install
@@ -84,16 +84,6 @@
%find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}
-%post
-%glib2_gsettings_schema_post
-%desktop_database_post
-%icon_theme_cache_post
-
-%postun
-%glib2_gsettings_schema_postun
-%desktop_database_postun
-%icon_theme_cache_postun
-
%files
%license COPYING
%doc AUTHORS NEWS README
@@ -101,7 +91,7 @@
%{_bindir}/%{name}
%{_datadir}/%{name}/
%exclude %{_datadir}/%{name}/plugins/ipython_view.py
-%{_datadir}/appdata/org.gnome.accerciser.appdata.xml
+%{_datadir}/metainfo/accerciser.appdata.xml
%{_datadir}/glib-2.0/schemas/org.a11y.Accerciser.gschema.xml
%{_datadir}/icons/hicolor/*/apps/%{name}*
%{_datadir}/applications/%{name}.desktop
++++++ accerciser-3.22.0.tar.xz -> accerciser-3.32.1.tar.xz ++++++
++++ 51088 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package evolution-rss for openSUSE:Factory checked in at 2019-05-03 22:45:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution-rss (Old)
and /work/SRC/openSUSE:Factory/.evolution-rss.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "evolution-rss"
Fri May 3 22:45:19 2019 rev:42 rq:695699 version:0.3.95+git.20171129
Changes:
--------
--- /work/SRC/openSUSE:Factory/evolution-rss/evolution-rss.changes 2018-06-19 11:59:46.538693126 +0200
+++ /work/SRC/openSUSE:Factory/.evolution-rss.new.5148/evolution-rss.changes 2019-05-03 22:45:38.539661189 +0200
@@ -1,0 +2,5 @@
+Thu Mar 28 22:35:15 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Drop unused pkgconfig(gtkhtml-editor-4.0) BuildRequires.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evolution-rss.spec ++++++
--- /var/tmp/diff_new_pack.VeBdkK/_old 2019-05-03 22:45:39.711663880 +0200
+++ /var/tmp/diff_new_pack.VeBdkK/_new 2019-05-03 22:45:39.723663908 +0200
@@ -1,7 +1,7 @@
#
# spec file for package evolution-rss
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -44,7 +44,6 @@
BuildRequires: pkgconfig(evolution-shell-3.0)
BuildRequires: pkgconfig(glib-2.0) >= 2.26
BuildRequires: pkgconfig(gtk+-3.0)
-BuildRequires: pkgconfig(gtkhtml-editor-4.0)
BuildRequires: pkgconfig(libebook-1.2)
BuildRequires: pkgconfig(libemail-engine)
BuildRequires: pkgconfig(libsoup-2.4)
1
0
Hello community,
here is the log from the commit of package gnome-games for openSUSE:Factory checked in at 2019-05-03 22:45:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-games (Old)
and /work/SRC/openSUSE:Factory/.gnome-games.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-games"
Fri May 3 22:45:16 2019 rev:9 rq:695698 version:3.32.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-games/gnome-games.changes 2018-10-25 09:12:47.342273760 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-games.new.5148/gnome-games.changes 2019-05-03 22:45:37.319658389 +0200
@@ -1,0 +2,106 @@
+Wed Apr 10 16:09:24 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.1:
+ + Help does not show up as a game anymore.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Mon Mar 11 10:13:49 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.0:
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Mar 5 16:56:51 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.31.92:
+ + Fix compile-time warnings when building with recent librsvg and
+ gtk.
+ + Fix compile-time warning introduced in the 3.31.91.
+ + Various cleanups.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Thu Feb 21 16:34:11 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.91:
+ + New application icons from GNOME Design team.
+ + Collection loading is now paused in game, leading to vastly
+ improved performance when opening a game from file manager.
+ + Binding directional pads should work for more gamepads now.
+ + Fixes:
+ - It's not possible to open multiple main windows anymore.
+ - Invalid discs in PlayStation disc selector are now disabled.
+ + Updated translations.
+- Changes from version 3.31.90:
+ + During search, developers and platforms without any games to
+ show are now hidden.
+ + Fixes:
+ - Quit dialog now actually appears when exiting a game that
+ doesn't support snapshots.
+ - Opening a game by double-clicking while another game is
+ running now quits the previous game correctly.
+ - Database file is now correctly created even if data directory
+ didn't exist.
+ - Steam plugin now works if ~/.steam directory contains invalid
+ symlinks.
+ + Symbolic icon is now installed into symbolic/ directory instead
+ of scalable/.
+ + Deprecated HighContrast app icons have been removed.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Jan 8 13:27:48 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.4:
+ + UI:
+ - Make preferences window adaptive.
+ - Preferences window should now work better with window buttons
+ on the left side.
+ + Revert to non-portal file chooser for Flatpak, to allow adding
+ games consisting of multiple files.
+ + Update appdata to add launchable, provides and developer_name
+ tags, remove .desktop from application id.
+ + Appdata and desktop files are now validated when building.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Sat Jan 5 00:30:35 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.3:
+ + UI:
+ - Introduce a widget for switching between gamepad and keyboard
+ input. This is currently enabled for DOS and standalone
+ Libretro games.
+ - Make search bar in the collection adaptive.
+ + Fixes:
+ - Keyboard doesn't control every player in multiplayer games
+ anymore.
+ - Prevent a crash when creating snapshots of standalone
+ libretro games.
+ - Various code cleanups.
+ + Updated translations.
+- Changes from version 3.31.2:
+ + Drop custom development build style.
+ + Fixes:
+ - Fix build on upcoming Vala versions.
+ - Skip symlinked Steam directories to avoid duplicating games.
+ - Fix header bar buttons grabbing arrow keys in fullscreen.
+ - Various code cleanups.
+ + Updated translations.
+- Changes from version 3.31.1:
+ + UI:
+ - Update primary menu layout according to app menu retirement
+ initiative.
+ - Refine controller preferences: hide sidebar while testing
+ controllers and use better transitions.
+ - Wrap plugin descriptions in preferences.
+ - Remove double border on preferences sidebar.
+ - Use HdyColumn to allow preferences dialog to get smaller.
+ - Use HdyTitleBar in main and preferences windows.
+ - Update development build style.
+ + Don't build MAME plugin by default. It can still be enabled via
+ '-Dmame-plugin=true' build option.
+- Add pkgconfig(libhandy-0.0) BuildRequires: New dependency.
+
+-------------------------------------------------------------------
Old:
----
gnome-games-3.30.2.tar.xz
New:
----
gnome-games-3.32.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-games.spec ++++++
--- /var/tmp/diff_new_pack.gaWUF0/_old 2019-05-03 22:45:37.855659619 +0200
+++ /var/tmp/diff_new_pack.gaWUF0/_new 2019-05-03 22:45:37.859659628 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gnome-games
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
Name: gnome-games
-Version: 3.30.2
+Version: 3.32.1
Release: 0
Summary: Browse and play your games - all of them
License: GPL-3.0-only
Group: System/GUI/GNOME
URL: https://wiki.gnome.org/Apps/Games
-Source0: https://download.gnome.org/sources/gnome-games/3.30/%{name}-%{version}.tar.…
+Source0: https://download.gnome.org/sources/gnome-games/3.32/%{name}-%{version}.tar.…
BuildRequires: fdupes
BuildRequires: meson >= 0.46.1
@@ -35,6 +35,7 @@
BuildRequires: pkgconfig(grilo-0.3)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(libarchive)
+BuildRequires: pkgconfig(libhandy-0.0) >= 0.0.8
BuildRequires: pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(libsoup-2.4)
BuildRequires: pkgconfig(libxml-2.0)
@@ -68,7 +69,6 @@
%files
%license COPYING
%{_bindir}/%{name}
-%{_datadir}/icons/HighContrast/
%{_datadir}/icons/hicolor/*/apps/org.gnome.Games*
%{_datadir}/applications/org.gnome.Games.desktop
%{_datadir}/glib-2.0/schemas/org.gnome.Games.gschema.xml
++++++ gnome-games-3.30.2.tar.xz -> gnome-games-3.32.1.tar.xz ++++++
++++ 26973 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package dconf-editor for openSUSE:Factory checked in at 2019-05-03 22:45:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dconf-editor (Old)
and /work/SRC/openSUSE:Factory/.dconf-editor.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dconf-editor"
Fri May 3 22:45:10 2019 rev:24 rq:695693 version:3.32.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/dconf-editor/dconf-editor.changes 2018-09-28 08:53:00.961762457 +0200
+++ /work/SRC/openSUSE:Factory/.dconf-editor.new.5148/dconf-editor.changes 2019-05-03 22:45:36.419656323 +0200
@@ -1,0 +2,48 @@
+Tue Mar 12 16:13:57 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.0:
+ + No code changes since last unstable release, new stable
+ release.
+
+-------------------------------------------------------------------
+Thu Feb 21 10:09:22 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.91:
+ + There was an hidden way to toggle search by clicking on an
+ empty space of the headerbar, but it was blocking the use of a
+ double-click to maximize the window, so that was removed. There
+ is also some strings capitalization fixes, an improvement for
+ the --help text, various small changes, and some relocatable
+ schemas added.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Fri Feb 15 19:00:20 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.90:
+ + Many code changes, but nothing big since 3.31.4.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Jan 8 13:33:18 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.4:
+ + The UI and the features should mostly stay the same now until
+ the future release 3.32 (planned in March). They include a
+ search running from current folder, some new keyboard shortcuts
+ and functionalities, the ability to run on a really small
+ screen (vertically and horizontally), the (temporary) remove of
+ the "Show folder informations", and various big or small
+ improvements everywhere.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Sat Jan 5 18:30:45 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.3:
+ + Many changes in the UI (rough edges), including a great new
+ editable pathbar, an improved bookmarks popover, a night mode,
+ and (in progress) an ability to run on really small screens
+ (phones like the future Librem 5 by Purism).
+
+-------------------------------------------------------------------
Old:
----
dconf-editor-3.30.2.tar.xz
New:
----
dconf-editor-3.32.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dconf-editor.spec ++++++
--- /var/tmp/diff_new_pack.pM44qP/_old 2019-05-03 22:45:36.835657278 +0200
+++ /var/tmp/diff_new_pack.pM44qP/_new 2019-05-03 22:45:36.839657287 +0200
@@ -1,7 +1,7 @@
#
# spec file for package dconf-editor
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
Name: dconf-editor
-Version: 3.30.2
+Version: 3.32.0
Release: 0
Summary: Graphical editor for the dconf key-based configuration system
License: GPL-3.0-or-later
Group: System/GUI/GNOME
URL: https://wiki.gnome.org/Apps/DconfEditor
-Source0: https://download.gnome.org/sources/dconf-editor/3.30/%{name}-%{version}.tar…
+Source0: https://download.gnome.org/sources/dconf-editor/3.32/%{name}-%{version}.tar…
BuildRequires: appstream-glib-devel
BuildRequires: meson
@@ -62,13 +62,12 @@
%files
%license COPYING
%{_bindir}/dconf-editor
-%dir %{_datadir}/metainfo
%{_datadir}/metainfo/ca.desrt.dconf-editor.appdata.xml
%{_datadir}/applications/ca.desrt.dconf-editor.desktop
%{_datadir}/bash-completion/completions/dconf-editor
%{_datadir}/dbus-1/services/ca.desrt.dconf-editor.service
%{_datadir}/glib-2.0/schemas/ca.desrt.dconf-editor.gschema.xml
-%{_datadir}/icons/hicolor/*/apps/ca.desrt.dconf-editor*
+%{_datadir}/icons/hicolor/
%{_mandir}/man1/dconf-editor.1%{?ext_man}
%files lang -f %{name}.lang
++++++ dconf-editor-3.30.2.tar.xz -> dconf-editor-3.32.0.tar.xz ++++++
++++ 119416 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package sushi for openSUSE:Factory checked in at 2019-05-03 22:45:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sushi (Old)
and /work/SRC/openSUSE:Factory/.sushi.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sushi"
Fri May 3 22:45:05 2019 rev:41 rq:695689 version:3.32.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/sushi/sushi.changes 2018-10-01 08:17:50.605951520 +0200
+++ /work/SRC/openSUSE:Factory/.sushi.new.5148/sushi.changes 2019-05-03 22:45:35.423654036 +0200
@@ -1,0 +2,16 @@
+Sun Mar 10 13:00:13 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.0:
+ + Update DOAP file for GitLab move.
+ + Explicitly hide minimize and maximize.
+
+-------------------------------------------------------------------
+Wed Jan 2 22:00:58 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.2:
+ + Port to meson build system.
+ + Replace some deprecated API.
+- Switch to meson build system, add meson BuildRequires and macros.
+- Drop intltool BuildRequires, no longer used nor needed.
+
+-------------------------------------------------------------------
Old:
----
sushi-3.30.0.tar.xz
New:
----
sushi-3.32.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sushi.spec ++++++
--- /var/tmp/diff_new_pack.esOMyz/_old 2019-05-03 22:45:36.131655661 +0200
+++ /var/tmp/diff_new_pack.esOMyz/_new 2019-05-03 22:45:36.135655670 +0200
@@ -1,7 +1,7 @@
#
# spec file for package sushi
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,15 +17,15 @@
Name: sushi
-Version: 3.30.0
+Version: 3.32.0
Release: 0
Summary: Quick Previewer for Nautilus
License: SUSE-GPL-2.0-with-plugin-exception
Group: Productivity/File utilities
URL: https://www.gnome.org
-Source0: https://download.gnome.org/sources/sushi/3.30/%{name}-%{version}.tar.xz
+Source0: https://download.gnome.org/sources/sushi/3.32/%{name}-%{version}.tar.xz
-BuildRequires: intltool
+BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: pkgconfig(clutter-1.0) >= 1.11.4
BuildRequires: pkgconfig(clutter-gst-3.0)
@@ -60,12 +60,11 @@
%autosetup -p1
%build
-%configure
-%make_build
+%meson
+%meson_build
%install
-%make_install
-find %{buildroot} -type f -name "*.la" -delete -print
+%meson_install
%find_lang %{name} %{?no_lang_C}
%files
++++++ sushi-3.30.0.tar.xz -> sushi-3.32.0.tar.xz ++++++
++++ 51429 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gnome-initial-setup for openSUSE:Factory checked in at 2019-05-03 22:45:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-initial-setup (Old)
and /work/SRC/openSUSE:Factory/.gnome-initial-setup.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-initial-setup"
Fri May 3 22:45:01 2019 rev:26 rq:695679 version:3.32.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-initial-setup/gnome-initial-setup.changes 2018-10-01 08:17:34.501961822 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-initial-setup.new.5148/gnome-initial-setup.changes 2019-05-03 22:45:33.371649325 +0200
@@ -1,0 +2,36 @@
+Fri Apr 5 11:54:14 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.1:
+ + Updated translations.
+
+-------------------------------------------------------------------
+Mon Mar 11 13:19:04 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.32.0:
+ + Updated translations.
+
+-------------------------------------------------------------------
+Tue Mar 5 06:03:49 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.31.92:
+ + Connect to GDM as soon as gnome-initial-setup starts and fix
+ memory leaks.
+ + Improve account page behaviour when offline.
+ + Updated translations.
+
+-------------------------------------------------------------------
+Wed Feb 20 12:12:27 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.31.90:
+ + Generate default user account pictures.
+ + Fix Meson build with (buggy) Meson 0.48.0 and 0.48.1.
+ + Remove Autotools build.
+ + Fix various compiler warnings.
+ + Add welcome distro logo for openSUSE.
+ + Updated translations.
+- Switch to meson build system, add meson BuildRequires and macros.
+- Drop obsolete intltool BuildRequires: No longer needed.
+- Add pkgconfig(packagekit-glib2) BuildRequires: New dependency.
+- Refresh patch with refresh_patches service.
+
+-------------------------------------------------------------------
Old:
----
gnome-initial-setup-3.30.0.tar.xz
New:
----
gnome-initial-setup-3.32.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-initial-setup.spec ++++++
--- /var/tmp/diff_new_pack.vyQJPb/_old 2019-05-03 22:45:34.083650960 +0200
+++ /var/tmp/diff_new_pack.vyQJPb/_new 2019-05-03 22:45:34.103651005 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gnome-initial-setup
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,14 @@
Name: gnome-initial-setup
-Version: 3.30.0
+Version: 3.32.1
Release: 0
Summary: GNOME Initial Setup Assistant
License: GPL-2.0-or-later
Group: System/GUI/GNOME
Url: https://wiki.gnome.org/Design/OS/InitialSetup
-Source0: https://download.gnome.org/sources/gnome-initial-setup/3.30/%{name}-%{versi…
+Source0: https://download.gnome.org/sources/gnome-initial-setup/3.32/%{name}-%{versi…
+
# PATCH-FEATURE-SLE gnome-initial-setup-only-launch-CJK.patch FATE#321126 qzhao(a)suse.com -- Make gnome-initial-setup only work for CJK
Patch0: gnome-initial-setup-only-launch-CJK.patch
# PATCH-FEATURE-SLE gnome-initial-setup-only-setup-keyboard.patch FATE#321126 yfjiang(a)suse.com -- Only launch the keyboard and IM setup
@@ -32,8 +33,9 @@
Patch2: gnome-initial-setup-disable-dep-on-started-docs.patch
# PATCH-FIX-OPENSUSE gnome-initial-setup-mozc-engine-prioritized.patch boo#1067288 bnc#1029083 qzhao(a)suse.com -- Make the Mozc input engine as the 1st choice for Japanese environment.
Patch3: gnome-initial-setup-mozc-engine-prioritized.patch
-BuildRequires: intltool >= 0.40
+
BuildRequires: krb5-devel
+BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: vala
BuildRequires: pkgconfig(accountsservice)
@@ -57,6 +59,7 @@
BuildRequires: pkgconfig(libnm) >= 1.2
BuildRequires: pkgconfig(libnma) >= 1.0
BuildRequires: pkgconfig(libsecret-1)
+BuildRequires: pkgconfig(packagekit-glib2)
BuildRequires: pkgconfig(pango) >= 1.32.5
BuildRequires: pkgconfig(polkit-gobject-1) >= 0.103
BuildRequires: pkgconfig(pwquality)
@@ -84,11 +87,12 @@
%patch3 -p1
%build
-%configure
-make %{?_smp_mflags}
+%meson \
+ %{nil}
+%meson_build
%install
-%make_install
+%meson_install
%find_lang %{name} %{?no_lang_C}
%pre
++++++ gnome-initial-setup-3.30.0.tar.xz -> gnome-initial-setup-3.32.1.tar.xz ++++++
++++ 255203 lines of diff (skipped)
++++++ gnome-initial-setup-mozc-engine-prioritized.patch ++++++
--- /var/tmp/diff_new_pack.vyQJPb/_old 2019-05-03 22:45:34.959652971 +0200
+++ /var/tmp/diff_new_pack.vyQJPb/_new 2019-05-03 22:45:34.959652971 +0200
@@ -1,7 +1,8 @@
-diff -Nura gnome-initial-setup-3.26.0/gnome-initial-setup/pages/keyboard/cc-input-chooser.c gnome-initial-setup-3.26.0_new/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
---- gnome-initial-setup-3.26.0/gnome-initial-setup/pages/keyboard/cc-input-chooser.c 2016-10-22 15:09:29.000000000 +0800
-+++ gnome-initial-setup-3.26.0_new/gnome-initial-setup/pages/keyboard/cc-input-chooser.c 2017-11-10 14:43:56.748638684 +0800
-@@ -274,6 +274,14 @@
+Index: gnome-initial-setup-3.31.90/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+===================================================================
+--- gnome-initial-setup-3.31.90.orig/gnome-initial-setup/pages/keyboard/cc-input-chooser.c 2019-02-04 23:16:02.000000000 +0100
++++ gnome-initial-setup-3.31.90/gnome-initial-setup/pages/keyboard/cc-input-chooser.c 2019-02-20 13:26:23.074350247 +0100
+@@ -273,6 +273,14 @@ sync_checkmark (GtkWidget *row,
should_be_visible = FALSE;
else
should_be_visible = g_strcmp0 (widget->id, priv->id) == 0 && g_strcmp0 (widget->type, priv->type) == 0;
@@ -16,7 +17,7 @@
gtk_widget_set_opacity (widget->checkmark, should_be_visible ? 1.0 : 0.0);
if (widget->is_extra && should_be_visible)
-@@ -452,6 +460,13 @@
+@@ -451,6 +459,13 @@ input_visible (GtkListBoxRow *row,
widget = get_input_widget (child);
@@ -30,7 +31,7 @@
if (!priv->showing_extra && widget->is_extra)
return FALSE;
-@@ -479,6 +494,14 @@
+@@ -478,6 +493,14 @@ sort_inputs (GtkListBoxRow *a,
if (lb == NULL)
return -1;
1
0
Hello community,
here is the log from the commit of package gnome-usage for openSUSE:Factory checked in at 2019-05-03 22:44:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-usage (Old)
and /work/SRC/openSUSE:Factory/.gnome-usage.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-usage"
Fri May 3 22:44:57 2019 rev:4 rq:695663 version:3.32.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-usage/gnome-usage.changes 2018-09-28 08:53:01.813761222 +0200
+++ /work/SRC/openSUSE:Factory/.gnome-usage.new.5148/gnome-usage.changes 2019-05-03 22:45:32.223646689 +0200
@@ -1,0 +2,14 @@
+Fri Mar 22 16:10:39 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.32.0:
+ + Retire application menu.
+ + Simplify the build scripts.
+ + Drop RG and EGG libraries.
+ + Use libdazzle.
+ + Add filter processes option.
+ + Support grouping system processes.
+ + Add new application icon.
+ + Updated translations.
+- Add pkgconfig(libdazzle-1.0) BuildRequires: New dependency.
+
+-------------------------------------------------------------------
Old:
----
gnome-usage-3.30.0.tar.xz
New:
----
gnome-usage-3.32.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-usage.spec ++++++
--- /var/tmp/diff_new_pack.Fl9qme/_old 2019-05-03 22:45:32.883648205 +0200
+++ /var/tmp/diff_new_pack.Fl9qme/_new 2019-05-03 22:45:32.887648214 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gnome-usage
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2017 Bjørn Lie, Bryne, Norway.
#
# All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
Name: gnome-usage
-Version: 3.30.0
+Version: 3.32.0
Release: 0
Summary: System resources viewer for GNOME
License: GPL-3.0-only
@@ -33,6 +33,7 @@
BuildRequires: pkgconfig(glib-2.0) >= 2.38
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gtk+-3.0) >= 3.20.10
+BuildRequires: pkgconfig(libdazzle-1.0) >= 3.30
BuildRequires: pkgconfig(libgtop-2.0)
Recommends: %{name}-lang
@@ -43,10 +44,11 @@
%lang_package
%prep
-%autosetup
+%autosetup -p1
%build
-%meson
+%meson \
+ %{nil}
%meson_build
%install
@@ -59,7 +61,7 @@
%{_bindir}/%{name}
%{_datadir}/applications/org.gnome.Usage.desktop
%{_datadir}/glib-2.0/schemas/org.gnome.Usage.gschema.xml
-%{_datadir}/icons/hicolor/*/apps/*.png
+%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Usage.svg
%{_datadir}/metainfo/org.gnome.Usage.appdata.xml
%files lang -f %{name}.lang
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Fl9qme/_old 2019-05-03 22:45:32.907648260 +0200
+++ /var/tmp/diff_new_pack.Fl9qme/_new 2019-05-03 22:45:32.907648260 +0200
@@ -2,8 +2,8 @@
<service mode="disabled" name="tar_scm">
<param name="url">https://gitlab.gnome.org/GNOME/gnome-usage.git</param>
<param name="scm">git</param>
- <param name="revision">v3.30.0</param>
- <param name="versionformat">3.30.0</param>
+ <param name="revision">v3.32.0</param>
+ <param name="versionformat">3.32.0</param>
<param name="changesgenerate">enable</param>
</service>
<service mode="disabled" name="recompress">
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Fl9qme/_old 2019-05-03 22:45:32.919648287 +0200
+++ /var/tmp/diff_new_pack.Fl9qme/_new 2019-05-03 22:45:32.919648287 +0200
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://gitlab.gnome.org/GNOME/gnome-usage.git</param>
- <param name="changesrevision">488677b057006c13ed94d34afe0cf68c8b12fe5c</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">1540a395cd89f517d55b1d0052d18c60685c9dd2</param></service></servicedata>
\ No newline at end of file
++++++ gnome-usage-3.30.0.tar.xz -> gnome-usage-3.32.0.tar.xz ++++++
++++ 34656 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kicad-packages3D for openSUSE:Factory checked in at 2019-05-03 22:44:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kicad-packages3D (Old)
and /work/SRC/openSUSE:Factory/.kicad-packages3D.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kicad-packages3D"
Fri May 3 22:44:18 2019 rev:6 rq:694881 version:5.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/kicad-packages3D/kicad-packages3D.changes 2019-03-22 15:05:28.433592819 +0100
+++ /work/SRC/openSUSE:Factory/.kicad-packages3D.new.5148/kicad-packages3D.changes 2019-05-03 22:45:15.667608681 +0200
@@ -1,0 +2,6 @@
+Mon Apr 15 19:07:28 UTC 2019 - Stefan Brüns <stefan.bruens(a)rwth-aachen.de>
+
+- Update to version 5.1.1
+ See http://kicad-pcb.org/blog/2019/04/KiCad-5.1.1-Release/ for details.
+
+-------------------------------------------------------------------
Old:
----
kicad-packages3D-5.1.0.tar.gz
New:
----
kicad-packages3D-5.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kicad-packages3D.spec ++++++
--- /var/tmp/diff_new_pack.6Asl6g/_old 2019-05-03 22:45:31.095644100 +0200
+++ /var/tmp/diff_new_pack.6Asl6g/_new 2019-05-03 22:45:31.139644201 +0200
@@ -20,7 +20,7 @@
%define compatversion 5.0.0
Name: kicad-packages3D
-Version: 5.1.0
+Version: 5.1.1
Release: 0
Summary: 3D model libraries for rendering and MCAD integration
# License is CC-BY-SA-4.0 but there is an exception
++++++ kicad-packages3D-5.1.0.tar.gz -> kicad-packages3D-5.1.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/kicad-packages3D/kicad-packages3D-5.1.0.tar.gz /work/SRC/openSUSE:Factory/.kicad-packages3D.new.5148/kicad-packages3D-5.1.1.tar.gz differ: char 14, line 1
1
0
Hello community,
here is the log from the commit of package kicad-i18n for openSUSE:Factory checked in at 2019-05-03 22:44:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kicad-i18n (Old)
and /work/SRC/openSUSE:Factory/.kicad-i18n.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kicad-i18n"
Fri May 3 22:44:15 2019 rev:12 rq:694879 version:5.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/kicad-i18n/kicad-i18n.changes 2019-03-22 15:04:13.721657459 +0100
+++ /work/SRC/openSUSE:Factory/.kicad-i18n.new.5148/kicad-i18n.changes 2019-05-03 22:44:20.039482411 +0200
@@ -1,0 +2,7 @@
+Wed Apr 17 00:42:15 UTC 2019 - Stefan Brüns <stefan.bruens(a)rwth-aachen.de>
+
+- Update to version 5.1.1
+ + Updates to Italian, Japanese, Polish, Portuguese and Simplified
+ Chinese translations.
+
+-------------------------------------------------------------------
Old:
----
kicad-i18n-5.1.0.tar.gz
New:
----
kicad-i18n-5.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kicad-i18n.spec ++++++
--- /var/tmp/diff_new_pack.LosMjL/_old 2019-05-03 22:44:21.775486066 +0200
+++ /var/tmp/diff_new_pack.LosMjL/_new 2019-05-03 22:44:21.803486125 +0200
@@ -17,7 +17,7 @@
Name: kicad-i18n
-Version: 5.1.0
+Version: 5.1.1
Release: 0
Summary: Localization for KiCad
# license same as KiCad package
++++++ kicad-i18n-5.1.0.tar.gz -> kicad-i18n-5.1.1.tar.gz ++++++
++++ 77379 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kicad-templates for openSUSE:Factory checked in at 2019-05-03 22:44:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kicad-templates (Old)
and /work/SRC/openSUSE:Factory/.kicad-templates.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kicad-templates"
Fri May 3 22:44:12 2019 rev:4 rq:694878 version:5.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/kicad-templates/kicad-templates.changes 2019-03-22 15:04:53.893622703 +0100
+++ /work/SRC/openSUSE:Factory/.kicad-templates.new.5148/kicad-templates.changes 2019-05-03 22:44:16.627475228 +0200
@@ -1,0 +2,6 @@
+Mon Apr 15 19:07:28 UTC 2019 - Stefan Brüns <stefan.bruens(a)rwth-aachen.de>
+
+- Update to version 5.1.1
+ See http://kicad-pcb.org/blog/2019/04/KiCad-5.1.1-Release/ for details.
+
+-------------------------------------------------------------------
Old:
----
kicad-templates-5.1.0.tar.gz
New:
----
kicad-templates-5.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kicad-templates.spec ++++++
--- /var/tmp/diff_new_pack.9ESR9M/_old 2019-05-03 22:44:18.331478815 +0200
+++ /var/tmp/diff_new_pack.9ESR9M/_new 2019-05-03 22:44:18.351478858 +0200
@@ -20,7 +20,7 @@
%define compatversion 5.0.0
Name: kicad-templates
-Version: 5.1.0
+Version: 5.1.1
Release: 0
Summary: Project templates for KiCad
# License is CC-BY-SA-4.0 but there is an exception
++++++ kicad-templates-5.1.0.tar.gz -> kicad-templates-5.1.1.tar.gz ++++++
1
0
Hello community,
here is the log from the commit of package kicad-symbols for openSUSE:Factory checked in at 2019-05-03 22:44:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kicad-symbols (Old)
and /work/SRC/openSUSE:Factory/.kicad-symbols.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kicad-symbols"
Fri May 3 22:44:08 2019 rev:5 rq:694877 version:5.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/kicad-symbols/kicad-symbols.changes 2019-03-22 15:04:46.181629375 +0100
+++ /work/SRC/openSUSE:Factory/.kicad-symbols.new.5148/kicad-symbols.changes 2019-05-03 22:44:12.563466671 +0200
@@ -1,0 +2,6 @@
+Mon Apr 15 19:07:28 UTC 2019 - Stefan Brüns <stefan.bruens(a)rwth-aachen.de>
+
+- Update to version 5.1.1
+ See http://kicad-pcb.org/blog/2019/04/KiCad-5.1.1-Release/ for details.
+
+-------------------------------------------------------------------
Old:
----
kicad-symbols-5.1.0.tar.gz
New:
----
kicad-symbols-5.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kicad-symbols.spec ++++++
--- /var/tmp/diff_new_pack.ySdUOM/_old 2019-05-03 22:44:13.799469274 +0200
+++ /var/tmp/diff_new_pack.ySdUOM/_new 2019-05-03 22:44:13.839469358 +0200
@@ -20,7 +20,7 @@
%define compatversion 5.0.0
Name: kicad-symbols
-Version: 5.1.0
+Version: 5.1.1
Release: 0
Summary: Schematic symbol library for KiCad
# License is CC-BY-SA-4.0 but there is an exception
++++++ kicad-symbols-5.1.0.tar.gz -> kicad-symbols-5.1.1.tar.gz ++++++
++++ 7892 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package kicad-footprints for openSUSE:Factory checked in at 2019-05-03 22:44:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kicad-footprints (Old)
and /work/SRC/openSUSE:Factory/.kicad-footprints.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kicad-footprints"
Fri May 3 22:44:05 2019 rev:11 rq:694876 version:5.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/kicad-footprints/kicad-footprints.changes 2019-03-22 15:04:37.325637037 +0100
+++ /work/SRC/openSUSE:Factory/.kicad-footprints.new.5148/kicad-footprints.changes 2019-05-03 22:44:07.891456836 +0200
@@ -1,0 +2,6 @@
+Mon Apr 15 19:07:28 UTC 2019 - Stefan Brüns <stefan.bruens(a)rwth-aachen.de>
+
+- Update to version 5.1.1
+ See http://kicad-pcb.org/blog/2019/04/KiCad-5.1.1-Release/ for details.
+
+-------------------------------------------------------------------
Old:
----
kicad-footprints-5.1.0.tar.gz
New:
----
kicad-footprints-5.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kicad-footprints.spec ++++++
--- /var/tmp/diff_new_pack.qg33fx/_old 2019-05-03 22:44:08.439457989 +0200
+++ /var/tmp/diff_new_pack.qg33fx/_new 2019-05-03 22:44:08.439457989 +0200
@@ -20,7 +20,7 @@
%define compatversion 5.0.0
Name: kicad-footprints
-Version: 5.1.0
+Version: 5.1.1
Release: 0
Summary: Footprint library for KiCad
# License is CC-BY-SA-4.0 but there is an exception
++++++ kicad-footprints-5.1.0.tar.gz -> kicad-footprints-5.1.1.tar.gz ++++++
++++ 6611 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-openstacksdk for openSUSE:Factory checked in at 2019-05-03 22:44:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-openstacksdk (Old)
and /work/SRC/openSUSE:Factory/.python-openstacksdk.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-openstacksdk"
Fri May 3 22:44:01 2019 rev:10 rq:693626 version:0.27.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-openstacksdk/python-openstacksdk.changes 2018-09-07 15:38:25.930598730 +0200
+++ /work/SRC/openSUSE:Factory/.python-openstacksdk.new.5148/python-openstacksdk.changes 2019-05-03 22:44:04.875450486 +0200
@@ -1,0 +2,150 @@
+Fri Apr 12 04:33:52 UTC 2019 - cloud-devel(a)suse.de
+
+- added 0001-add-python-3.7-unit-test-job.patch
+- added 0001-baremetal-Add-support-for-mkisofs-and-xorrisofs-for-.patch
+
+-------------------------------------------------------------------
+Wed Apr 10 06:47:44 UTC 2019 - Dirk Mueller <dmueller(a)suse.com>
+
+- update to 0.27.0:
+ * Replace TaskManager with a keystoneauth concurrency
+ * Replace openstack.org git:// URLs with https://
+ * Update UPPER\_CONSTRAINTS\_FILE for stable/stein
+
+-------------------------------------------------------------------
+Mon Apr 8 13:51:24 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 0.26.0
+ - Fix query parameters of network.port_forwarding
+ - Transform server with munch before normalizing
+ - Add network segment range resource
+ - Return retries on HTTP CONFLICT to baremetal.attach_vif_to_node
+ - Fix bugs in debugging with Tox
+ - Use pagination detection by default
+ - Stop running grenade-py3
+ - Add possibility to override base_path for resource operations
+ - Remove unused Task classes
+ - Add block_storage v3 API support
+ - Fix syntax error with exception handling
+ - use overriden base_path in remaining CRUD operations
+ - Add wait functions to orchestration proxy
+ - Add support for octavia's resuorces quota
+ - Document "Role Assignment Operations"
+ - Rename compute.service.zone to availability_zone
+ - Update cirros version for functional tests
+ - Fix pagination key detection
+ - Drop self.conn from base.TestCase
+ - Test python2 with py27
+ - Make delete_unattached_floating_ips return a count
+ - Add functional tests for masakari
+ - Properly munch for resource sub-dicts
+ - Add host aggregate missing functions
+ - Skip block storage v2 functional tests for a minute
+ - Slightly refactor vendor profile loading
+ - Make timeouts in functional tests configurable
+ - Bug : identity v3 Proxy role assignments only support instances.
+ - Fix latest flake8 issues
+ - Add port property: port-resource-request
+ - Check result of server metadata operation
+ - Add agent property: resources-synced
+ - Refactor tag support
+ - Fixed incorrect exception raising in configdrive generation
+ - Filter ports in list_ports when batching is in effect
+ - Added server diagnostics
+ - Added basic CRUD functionality around Host Aggregates
+ - Make tox tips job actually run sdk tests
+ - Make sure we pick flavors with disk
+ - Unpin dogpile.cache
+ - Support dict of links in pagination detection
+ - Support remote vendor profiles
+ - Fix dogpile.cache 0.7.0 interaction
+ - Change openstack-dev to openstack-discuss
+ - Update min tox version to 2.0
+ - Add baremetal Node fields from versions 1.47 - 1.49
+ - Add missing properties for role
+ - Use retriable_status_codes in image upload
+ - [Trivial Fix] Correct spelling error of "bandwidth"
+ - Start using direct REST in normalize tests
+ - Fix the misspelling of "configuration"
+ - Compute location properly in server
+ - Fix requesting specific fields from ironic
+ - Fix for not released thread in service_description
+ - handle "paginated" argument in test_list properly
+ - object_store: exposes the prefix parameter
+ - Add support for bodyless commits
+ - Add image attributes from v2.7
+ - Add Octavia (load_balancer) flavor API
+ - fix typos
+ - Fix some spelling in documentation
+ - Stop mocking method in fwaas test
+ - Fix/Add : Identity V3 validate user role
+ - Import code for building ironic-compatible configdrives
+ - Add image.schema resource
+ - Use mock context in test_fwaas
+ - Fixes for Unicode characters in python 2 requests
+ - Deal with double-normalization of host_id
+ - baremetal: implement set_node_power_state in the proxy
+ - Change approach to detailed listings of baremetal resources
+ - implement identity v3 Proxy "unassign_project_role_from_user"
+ - Turn off unneeded devstack services
+ - baremetal: support for allocation API
+ - Shift swift segment async code out of adapter
+ - implement block-storage backup resource
+ - Fix for not released thread in get_session_client
+ - Add support to get recovery workflow details
+ - implement identity v3 Proxy group role management
+ - Adds kwargs support when creating a Neutron subnet
+ - Add a __main__ handler, version command
+ - Fix minor issues in the baremetal proxy docs
+ - Apply list filter fix to servers and floating ips too
+ - Move image methods to sdk image proxy
+ - Fix resource deletion in clustering
+ - Add networks to Limestone vendor
+ - Add propagate_uplink_status to port
+ - Add image tasks schema methods
+ - Move server munch transformation into normalize
+ - Added Octavia load balancer and listener stats
+ - Remove mocking workaround from adapter
+ - Fix indentation for new pycodestyle E117
+ - Fix the conflict of urlparse between python2 and python3
+ - Use sdk for list_servers
+ - Tweak find_image method to search in hidden images
+ - Adds prefixlen to the request body when creating subnets
+ - Advancing the protocal of the website to HTTPS in compute.rst.
+ - Document "insecure" flag
+ - Remove setup.py check from pep8 job
+ - fix typo
+ - Adds tags support for Octavia (load_balancer)
+ - Make Connection a context manager
+ - Make all resource locations process project_id
+ - Add image.task resource
+ - do not force interface=admin for identity api v3
+ - Add close method to shutdown threadpool
+ - Restrict inventory test to devstack-admin
+ - Add a non-voting job with metalsmith
+ - Add Octavia (load_balancer) flavor profile API
+ - Add Octavia (load_balancer) amphora API
+ - Add Octavia (load_balancer) load balancer failover
+ - Revert "Replace TaskManager with a keystoneauth concurrency"
+ - baremetal: support network_data when building configdrive
+ - Fix raise create_server and attach to a network given a net-name param
+ - Add glance image import support
+ - Fix neutron endpoint mangling
+ - Register proxy directly in add_service
+ - Skip v2 block-storage tests when service is not found
+ - syntax errors and undefined exceptions in service_description.py
+ - Avoid dogpile.cache 0.7.0
+ - Support non-public volume types
+ - block_storage.backup func tests to use configurable timeout
+ - Replace TaskManager with a keystoneauth concurrency
+ - Add missing seperator between words
+ - Add Octavia (load_balancer) provider API support
+ - Replace neutron-grenade job with grenade-py3
+ - Update link address for vendor support
+ - Rework orchestration to add update preview
+ - Explicit set capabilities in VolumeDetail and SnapshotDetail
+ - new auth_url for ELASTX
+ - Add missing py37 and corrected default envlist.
+ - Add CRUD methods for Neutron Port Forwarding
+
+-------------------------------------------------------------------
Old:
----
openstacksdk-0.17.2.tar.gz
New:
----
0001-add-python-3.7-unit-test-job.patch
0001-baremetal-Add-support-for-mkisofs-and-xorrisofs-for-.patch
openstacksdk-0.27.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-openstacksdk.spec ++++++
--- /var/tmp/diff_new_pack.ICDZnW/_old 2019-05-03 22:44:05.271451320 +0200
+++ /var/tmp/diff_new_pack.ICDZnW/_new 2019-05-03 22:44:05.275451328 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-openstacksdk
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,25 +12,29 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-openstacksdk
-Version: 0.17.2
+Version: 0.27.0
Release: 0
Summary: An SDK for building applications to work with OpenStack
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/openstacksdk
-Source0: https://files.pythonhosted.org/packages/source/o/openstacksdk/openstacksdk-…
+Source0: https://files.pythonhosted.org/packages/source/o/openstacksdk/openstacksdk-…
+# https://review.openstack.org/#/c/651119/
+Patch0: 0001-add-python-3.7-unit-test-job.patch
+# https://review.openstack.org/#/c/651193/
+Patch1: 0001-baremetal-Add-support-for-mkisofs-and-xorrisofs-for-.patch
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-PyYAML >= 3.12
BuildRequires: python2-appdirs >= 1.3.0
BuildRequires: python2-beautifulsoup4
BuildRequires: python2-decorator >= 3.4.0
-BuildRequires: python2-deprecation >= 1.0
+BuildRequires: python2-deprecation
BuildRequires: python2-dogpile.cache >= 0.6.2
BuildRequires: python2-extras
BuildRequires: python2-fixtures
@@ -39,7 +43,7 @@
BuildRequires: python2-jmespath >= 0.9.0
BuildRequires: python2-jsonpatch >= 1.16
BuildRequires: python2-jsonschema
-BuildRequires: python2-keystoneauth1 >= 3.8.0
+BuildRequires: python2-keystoneauth1 >= 3.13.0
BuildRequires: python2-mock
BuildRequires: python2-munch >= 2.1.0
BuildRequires: python2-netifaces >= 0.10.4
@@ -58,7 +62,7 @@
BuildRequires: python3-appdirs >= 1.3.0
BuildRequires: python3-beautifulsoup4
BuildRequires: python3-decorator >= 3.4.0
-BuildRequires: python3-deprecation >= 1.0
+BuildRequires: python3-deprecation
BuildRequires: python3-devel
BuildRequires: python3-dogpile.cache >= 0.6.2
BuildRequires: python3-extras
@@ -66,7 +70,7 @@
BuildRequires: python3-jmespath >= 0.9.0
BuildRequires: python3-jsonpatch >= 1.16
BuildRequires: python3-jsonschema
-BuildRequires: python3-keystoneauth1 >= 3.8.0
+BuildRequires: python3-keystoneauth1 >= 3.13.0
BuildRequires: python3-mock
BuildRequires: python3-munch >= 2.1.0
BuildRequires: python3-netifaces >= 0.10.4
@@ -83,13 +87,13 @@
BuildRequires: python3-testtools
Requires: python-PyYAML >= 3.12
Requires: python-appdirs >= 1.3.0
+Requires: python-cryptography >= 2.1
Requires: python-decorator >= 3.4.0
-Requires: python-deprecation >= 1.0
Requires: python-dogpile.cache >= 0.6.2
Requires: python-iso8601 >= 0.1.11
Requires: python-jmespath >= 0.9.0
Requires: python-jsonpatch >= 1.16
-Requires: python-keystoneauth1 >= 3.8.0
+Requires: python-keystoneauth1 >= 3.13.0
Requires: python-munch >= 2.1.0
Requires: python-netifaces >= 0.10.4
Requires: python-os-service-types >= 1.2.0
@@ -135,16 +139,14 @@
applications to work with OpenStack clouds.
%prep
-%autosetup -p1 -n openstacksdk-0.17.2
+%autosetup -p1 -n openstacksdk-0.27.0
%py_req_cleanup
sed -i -e 's,coverage.*,,' test-requirements.txt || true
sed -i -e "s,'sphinx.ext.intersphinx'\,,," doc/source/conf.py
-# build fails with warnings
-sed -i 's/^warning-is-error.*/warning-is-error=0/g' setup.cfg
%build
%python_build
-PBR_VERSION=0.17.2 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=0.27.0 sphinx-build -b html doc/source doc/build/html
rm -rf doc/build/html/.{doctrees,buildinfo}
%install
++++++ 0001-add-python-3.7-unit-test-job.patch ++++++
>From b3723bed9dd2b336c63aa9bcf5a3e1ce08e2e290 Mon Sep 17 00:00:00 2001
From: Sahid Orentino Ferdjaoui <sahid.ferdjaoui(a)canonical.com>
Date: Mon, 25 Mar 2019 11:01:00 +0000
Subject: [PATCH] add python 3.7 unit test job
See ML discussion here [1] for context.
[1] http://lists.openstack.org/pipermail/openstack-dev/2018-October/135626.html
Change-Id: If472ec316c5f5aaee15aab4d72964f806d3efff7
Signed-off-by: Sahid Orentino Ferdjaoui <sahid.ferdjaoui(a)canonical.com>
---
.zuul.yaml | 1 +
openstack/tests/unit/test_resource.py | 5 ++++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/.zuul.yaml b/.zuul.yaml
index 6d0dcf81..ee9dea9f 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -396,6 +396,7 @@
- openstack-lower-constraints-jobs
- openstack-python-jobs
- openstack-python36-jobs
+ - openstack-python37-jobs
- openstacksdk-functional-tips
- openstacksdk-tox-tips
- os-client-config-tox-tips
diff --git a/openstack/tests/unit/test_resource.py b/openstack/tests/unit/test_resource.py
index ee98777f..7b44a60d 100644
--- a/openstack/tests/unit/test_resource.py
+++ b/openstack/tests/unit/test_resource.py
@@ -1901,7 +1901,10 @@ class TestResourceActions(base.TestCase):
microversion=None)
# Ensure we're done after those three items
- self.assertRaises(StopIteration, next, results)
+ # In python3.7, PEP 479 is enabled for all code, and StopIteration
+ # raised directly from code is turned into a RuntimeError.
+ # Something about how mock is implemented triggers that here.
+ self.assertRaises((StopIteration, RuntimeError), next, results)
# Ensure we only made two calls to get this done
self.assertEqual(3, len(self.session.get.call_args_list))
--
2.21.0
++++++ 0001-baremetal-Add-support-for-mkisofs-and-xorrisofs-for-.patch ++++++
>From 8fed470b09ac7db887ebdca38b369557b0b25f10 Mon Sep 17 00:00:00 2001
From: Thomas Bechtold <tbechtold(a)suse.com>
Date: Tue, 9 Apr 2019 13:01:22 +0200
Subject: [PATCH] baremetal: Add support for mkisofs and xorrisofs for
configdrive
Currently, only "genisoimage" is supported. But "genisoimage" might
not be available on all distros (like openSUSE or Debian).
So add support for "mkisofs" and "xorrisofs" which luckily support
the same command line parameters as "genisoimage".
Change-Id: I720f25921f8e52f20a631f238a528dedf65a91c6
---
openstack/baremetal/configdrive.py | 37 ++++++++++++-------
...ve-mkisofs-xorrisofs-075db4d7d80e5a13.yaml | 8 ++++
2 files changed, 32 insertions(+), 13 deletions(-)
create mode 100644 releasenotes/notes/baremetal-configdrive-mkisofs-xorrisofs-075db4d7d80e5a13.yaml
diff --git a/openstack/baremetal/configdrive.py b/openstack/baremetal/configdrive.py
index abbebf5a..b43d19b3 100644
--- a/openstack/baremetal/configdrive.py
+++ b/openstack/baremetal/configdrive.py
@@ -84,21 +84,32 @@ def pack(path):
:return: configdrive contents as a base64-encoded string.
"""
with tempfile.NamedTemporaryFile() as tmpfile:
- try:
- p = subprocess.Popen(['genisoimage',
- '-o', tmpfile.name,
- '-ldots', '-allow-lowercase',
- '-allow-multidot', '-l',
- '-publisher', 'metalsmith',
- '-quiet', '-J',
- '-r', '-V', 'config-2',
- path],
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- except OSError as e:
+ # NOTE(toabctl): Luckily, genisoimage, mkisofs and xorrisofs understand
+ # the same parameters which are currently used.
+ cmds = ['genisoimage', 'mkisofs', 'xorrisofs']
+ for c in cmds:
+ try:
+ p = subprocess.Popen([c,
+ '-o', tmpfile.name,
+ '-ldots', '-allow-lowercase',
+ '-allow-multidot', '-l',
+ '-publisher', 'metalsmith',
+ '-quiet', '-J',
+ '-r', '-V', 'config-2',
+ path],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ except OSError as e:
+ error = e
+ else:
+ error = None
+ break
+
+ if error:
raise RuntimeError(
'Error generating the configdrive. Make sure the '
- '"genisoimage" tool is installed. Error: %s' % e)
+ '"genisoimage", "mkisofs" or "xorrisofs" tool is installed. '
+ 'Error: %s' % error)
stdout, stderr = p.communicate()
if p.returncode != 0:
diff --git a/releasenotes/notes/baremetal-configdrive-mkisofs-xorrisofs-075db4d7d80e5a13.yaml b/releasenotes/notes/baremetal-configdrive-mkisofs-xorrisofs-075db4d7d80e5a13.yaml
new file mode 100644
index 00000000..008459e8
--- /dev/null
+++ b/releasenotes/notes/baremetal-configdrive-mkisofs-xorrisofs-075db4d7d80e5a13.yaml
@@ -0,0 +1,8 @@
+---
+features:
+ - |
+ When generating a config drive for baremetal, "mkisofs" and "xorrisofs"
+ are now supported beside the already available "genisoimage" binary.
+ This is useful on environment where the "genisoimage" binary is not
+ available but "mkisofs" and/or "xorrisofs" are available.
+
--
2.21.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.ICDZnW/_old 2019-05-03 22:44:05.303451387 +0200
+++ /var/tmp/diff_new_pack.ICDZnW/_new 2019-05-03 22:44:05.303451387 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-openstacksdk.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-openstacksdk/stable/rock…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-openstacksdk/stable/stei…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-openstacksdk</param>
</service>
++++++ openstacksdk-0.17.2.tar.gz -> openstacksdk-0.27.0.tar.gz ++++++
++++ 46755 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gnome-passwordsafe for openSUSE:Factory checked in at 2019-05-03 22:43:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-passwordsafe (Old)
and /work/SRC/openSUSE:Factory/.gnome-passwordsafe.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-passwordsafe"
Fri May 3 22:43:57 2019 rev:2 rq:693295 version:3.32.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-passwordsafe/gnome-passwordsafe.changes 2018-11-29 22:59:11.743595502 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-passwordsafe.new.5148/gnome-passwordsafe.changes 2019-05-03 22:43:58.623437323 +0200
@@ -1,0 +2,15 @@
+Thu Apr 4 01:54:49 UTC 2019 - Stasiek Michalski <hellcp(a)mailbox.org>
+
+- Password Safe 3.32 brings usability optimizations and some feature additions.
+ + Added references for linking of properties between multiple entries
+ + Added entry and group metadata dialog
+ + Added notes editor dialog with search utility
+ + Added entry duplication feature
+ + Reworked entry and group moving utility
+ + Improved editing mode performance
+ + Fixed various issues
+- Add new Requires: python3-pycryptodome python3-lxml
+ python3-pwquality (also BuildRequires: pkgconfig(pwquality))
+ python3-argon2-cffi
+
+-------------------------------------------------------------------
Old:
----
PasswordSafe-3.30.2.tar.bz2
New:
----
PasswordSafe-3.32.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-passwordsafe.spec ++++++
--- /var/tmp/diff_new_pack.DVhbXV/_old 2019-05-03 22:43:59.379438915 +0200
+++ /var/tmp/diff_new_pack.DVhbXV/_new 2019-05-03 22:43:59.379438915 +0200
@@ -16,14 +16,15 @@
#
%define appname PasswordSafe
+%define appid org.gnome.PasswordSafe
Name: gnome-passwordsafe
-Version: 3.30.2
+Version: 3.32.0
Release: 0
Summary: A password manager for GNOME
License: GPL-3.0-or-later
Group: Productivity/Security
-URL: https://gitlab.gnome.org/World/PasswordSafe
-Source: https://gitlab.gnome.org/World/PasswordSafe/-/archive/%{version}/PasswordSa…
+URL: https://gitlab.gnome.org/World/%{appname}
+Source: %{url}/-/archive/%{version}/%{appname}-%{version}.tar.bz2
BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: python3-base
@@ -33,8 +34,13 @@
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(libhandy-0.0)
+BuildRequires: pkgconfig(pwquality)
Requires: python3-pykeepass
Requires: python3-construct
+Requires: python3-pycryptodome
+Requires: python3-lxml
+Requires: python3-pwquality
+Requires: python3-argon2-cffi
BuildArch: noarch
%description
@@ -52,21 +58,22 @@
%install
%meson_install
-%suse_update_desktop_file org.gnome.PasswordSafe System Security
+%suse_update_desktop_file %{appid} System Security
%find_lang passwordsafe %{?no_lang_C}
%files
%license LICENSE
%doc README.md
-%{_bindir}/gnome-passwordsafe
+%{_bindir}/%{name}
%{python3_sitelib}/passwordsafe/
-%{_datadir}/applications/*.desktop
+%{_datadir}/applications/%{appid}.desktop
%{_datadir}/passwordsafe/
-%{_datadir}/glib-2.0/schemas/org.gnome.PasswordSafe.gschema.xml
-%{_datadir}/icons/hicolor/*/apps/*
+%{_datadir}/glib-2.0/schemas/%{appid}.gschema.xml
+%{_datadir}/icons/hicolor/symbolic/apps/%{appid}-symbolic.svg
+%{_datadir}/icons/hicolor/scalable/apps/%{appid}.svg
%dir %{_datadir}/metainfo
-%{_datadir}/metainfo/*.appdata.xml
+%{_datadir}/metainfo/%{appid}.appdata.xml
%files lang -f passwordsafe.lang
++++++ PasswordSafe-3.30.2.tar.bz2 -> PasswordSafe-3.32.0.tar.bz2 ++++++
++++ 22846 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package gnucash for openSUSE:Factory checked in at 2019-05-03 22:43:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnucash (Old)
and /work/SRC/openSUSE:Factory/.gnucash.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnucash"
Fri May 3 22:43:53 2019 rev:78 rq:693282 version:3.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnucash/gnucash.changes 2019-01-21 10:47:07.012256752 +0100
+++ /work/SRC/openSUSE:Factory/.gnucash.new.5148/gnucash.changes 2019-05-03 22:43:56.155432128 +0200
@@ -1,0 +2,34 @@
+Tue Apr 9 13:35:25 UTC 2019 - Paolo Stivanin <info(a)paolostivanin.com>
+
+- Update to v3.5 (github.com/Gnucash/gnucash/releases/tag/3.5)
+ + bugs fixed: bgo#639049, bgo#748431, bgo#787401, bgo#795729,
+ bgo#796498, bgo#796530, bgo#796687, bgo#796826, bgo#796827,
+ bgo#796829, bgo#796831, bgo#796877, bgo#796946, bgo#796952,
+ bgo#796956, bgo#796965, bgo#796989, bgo#797002, bgo#797011,
+ bgo#797013, bgo#797029, bgo#797030, bgo#797031, bgo#797041,
+ bgo#797046, bgo#797067, bgo#797074, bgo#797098, bgo#797105,
+ bgo#797136
+ + various fixes for i18n, gui, importing and online banking,
+ reports
+ + performance improvement
+ + deprecated some scheme
+
+-------------------------------------------------------------------
+Tue Apr 02 11:28:11 UTC 2019 - seanlew(a)opensuse.org
+
+- Update to version 3.5:
+ + Asset barchart report includes first day of next month (#639049)
+ + Wrong average balance for transactions during DST (#748431)
+ + Test for report system - HTML tests (#787401)
+ + Advanced Portfolio Report (#795729)
+ + Incorrect starting balance in TXF Report Calculations (#796498)
+ + TxnCsvImport - fix loading of saved presets (#796530)
+ + Tax Entity Name and type for an account reporting fixed (#796687)
+ + Report HTML document header suppression (#796826)
+ + Report HTML suppress document title (#796827)
+ + Report HTML table rows are prepended not as list elements (#796829)
+ + Report HTML append table column incorrectly (#796831)
+ + test-stress-options fails (#796877)
+ + Mortgage and Loan Repayment Setup tool crashes (#796946)
+
+-------------------------------------------------------------------
Old:
----
gnucash-3.4.tar.bz2
New:
----
gnucash-3.5.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnucash.spec ++++++
--- /var/tmp/diff_new_pack.f821Hh/_old 2019-05-03 22:43:56.803433492 +0200
+++ /var/tmp/diff_new_pack.f821Hh/_new 2019-05-03 22:43:56.807433500 +0200
@@ -12,13 +12,13 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define __builder ninja
Name: gnucash
-Version: 3.4
+Version: 3.5
Release: 0
Summary: Personal Finance Manager
License: SUSE-GPL-2.0-with-openssl-exception OR SUSE-GPL-3.0-with-openssl-exception
++++++ gnucash-3.4.tar.bz2 -> gnucash-3.5.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/gnucash/gnucash-3.4.tar.bz2 /work/SRC/openSUSE:Factory/.gnucash.new.5148/gnucash-3.5.tar.bz2 differ: char 11, line 1
1
0
Hello community,
here is the log from the commit of package goobox for openSUSE:Factory checked in at 2019-05-03 22:43:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/goobox (Old)
and /work/SRC/openSUSE:Factory/.goobox.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "goobox"
Fri May 3 22:43:50 2019 rev:47 rq:693281 version:3.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/goobox/goobox.changes 2018-10-11 11:50:09.786427135 +0200
+++ /work/SRC/openSUSE:Factory/.goobox.new.5148/goobox.changes 2019-05-03 22:43:52.531424498 +0200
@@ -1,0 +2,40 @@
+Wed Apr 10 08:27:28 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 3.6.0:
+ + Updated translations.
+
+-------------------------------------------------------------------
+Mon Feb 18 20:42:43 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.5.2:
+ + Updated translations.
+
+-------------------------------------------------------------------
+Wed Feb 6 21:45:26 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Fix translation-update-upstream call, needed after update of
+ translation-update-upstream in distro.
+
+-------------------------------------------------------------------
+Mon Jan 7 19:43:39 UTC 2019 - bjorn.lie(a)gmail.com
+
+- Update to version 3.5.1:
+ + New features and user visible changes:
+ - Added a volume button.
+ - Moved the toolbar on top.
+ - Removed application menu.
+ - All dialogs use the headerbar.
+ - Removed deprecated functions:
+ . GTask instead of GSimpleAsyncResult.
+ . G_ADD_PRIVATE instead of g_type_class_add_private.
+ . GNotification instead of libnotify.
+ - Use meson instead of autotools.
+ + Bugs fixed:
+ - Fixed crash after ejecting a CD.
+ - Automatically load rtl icon variants (bgo#768451).
+ - Help: change wording in two sentences (bgo#757730).
+ - Added -fPIC -DPIC to CFLAGS (bgo#777448).
+ + Updated translations.
+- Switch to meson buildsystem, add meson BuildRequires and macros.
+
+-------------------------------------------------------------------
Old:
----
goobox-3.4.3.tar.xz
New:
----
goobox-3.6.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ goobox.spec ++++++
--- /var/tmp/diff_new_pack.Ztbcff/_old 2019-05-03 22:43:53.039425567 +0200
+++ /var/tmp/diff_new_pack.Ztbcff/_new 2019-05-03 22:43:53.043425576 +0200
@@ -1,7 +1,7 @@
#
# spec file for package goobox
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,18 +17,19 @@
Name: goobox
-Version: 3.4.3
+Version: 3.6.0
Release: 0
# FIXME: Enable libcoverart support.
Summary: CD Player and Ripper for GNOME
License: GPL-2.0-or-later
Group: Productivity/Multimedia/CD/Grabbers
URL: https://www.gnome.org
-Source0: https://download.gnome.org/sources/goobox/3.4/%{name}-%{version}.tar.xz
+Source0: https://download.gnome.org/sources/goobox/3.6/%{name}-%{version}.tar.xz
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: intltool
+BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: translation-update-upstream
BuildRequires: update-desktop-files
@@ -52,15 +53,15 @@
%lang_package
%prep
-%setup -q
-translation-update-upstream
+%autosetup -p1
+translation-update-upstream po goobox
%build
-%configure
-make %{?_smp_mflags}
+%meson
+%meson_build
%install
-%make_install
+%meson_install
%suse_update_desktop_file org.gnome.Goobox AudioVideo Player CD
%find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}
@@ -79,11 +80,10 @@
%files
%license COPYING
-%doc AUTHORS ChangeLog NEWS README
+%doc AUTHORS NEWS README
%doc %{_datadir}/help/C/%{name}/
%{_bindir}/goobox
%{_datadir}/applications/org.gnome.Goobox.desktop
-%{_datadir}/GConf/gsettings/goobox.convert
%{_datadir}/glib-2.0/schemas/org.gnome.Goobox.gschema.xml
%{_datadir}/icons/hicolor/*/apps/goobox.png
%{_datadir}/icons/hicolor/scalable/apps/goobox-symbolic.svg
++++++ goobox-3.4.3.tar.xz -> goobox-3.6.0.tar.xz ++++++
++++ 89973 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package onboard for openSUSE:Factory checked in at 2019-05-03 22:43:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/onboard (Old)
and /work/SRC/openSUSE:Factory/.onboard.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "onboard"
Fri May 3 22:43:47 2019 rev:3 rq:693280 version:1.4.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/onboard/onboard.changes 2019-03-13 16:42:34.778630990 +0100
+++ /work/SRC/openSUSE:Factory/.onboard.new.5148/onboard.changes 2019-05-03 22:43:48.887416826 +0200
@@ -1,0 +2,15 @@
+Wed Apr 10 06:55:26 UTC 2019 - Yifan Jiang <yfjiang(a)suse.com>
+
+- Remove required python3-virtkey which has been not used since
+ 0.99:
+
+ https://bazaar.launchpad.net/~onboard/onboard/0.99/revision/1537.1.2
+
+-------------------------------------------------------------------
+Tue Apr 9 09:32:27 UTC 2019 - Yifan Jiang <yfjiang(a)suse.com>
+
+- Add patch onboard-remove-dep-typelib-appindicator3.patch: Remove
+ the typelib(Appindicator3) dependency because SLE does not ship
+ it (fate#326794).
+
+-------------------------------------------------------------------
New:
----
onboard-remove-dep-typelib-appindicator3.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ onboard.spec ++++++
--- /var/tmp/diff_new_pack.wm0oue/_old 2019-05-03 22:43:49.495418106 +0200
+++ /var/tmp/diff_new_pack.wm0oue/_new 2019-05-03 22:43:49.495418106 +0200
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -26,6 +26,8 @@
URL: https://launchpad.net/onboard
Source: http://launchpad.net/%{name}/%{series}/%{version}/+download/%{name}-%{versi…
Source1: onboard-defaults.conf
+# PATCH-FIX-SLE onboard-remove-dep-typelib-appindicator3.patch fate#326794 yfjiang(a)suse.com -- remove the typelib(Appindicator3) dependency because SLE does not ship it
+Patch0: onboard-remove-dep-typelib-appindicator3.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: python3-devel
@@ -55,7 +57,6 @@
Requires: python3-cairo
Requires: python3-gobject-Gdk
Requires: python3-gobject-cairo
-Requires: python3-virtkey
Recommends: %{name}-data
Recommends: %{name}-lang
%glib2_gsettings_schema_requires
@@ -89,6 +90,9 @@
%prep
%setup -q
+%if !0%{?is_opensuse}
+%patch0 -p1
+%endif
%build
python3 setup.py build
++++++ onboard-remove-dep-typelib-appindicator3.patch ++++++
Index: onboard-1.4.1/Onboard/Indicator.py
===================================================================
--- onboard-1.4.1.orig/Onboard/Indicator.py
+++ onboard-1.4.1/Onboard/Indicator.py
@@ -174,15 +174,10 @@ class Indicator():
# auto-detection
sip = config.get_preferred_statusicon_provider()
- if sip == StatusIconProviderEnum.GtkStatusIcon:
- backends = [BackendGtkStatusIcon]
- elif sip == StatusIconProviderEnum.AppIndicator:
- backends = [BackendAppIndicator, BackendGtkStatusIcon]
- elif sip is None:
+ if sip is None:
backends = []
else: # sip == StatusIconProviderEnum.auto
- backends = [BackendAppIndicator,
- BackendGtkStatusIcon]
+ backends = [BackendGtkStatusIcon]
self._backend = None
for backend in backends:
@@ -280,85 +275,3 @@ class BackendGtkStatusIcon(BackendBase):
elif len(args) == 3: # in <=Xenial?
x, y, status_icon = args
return Gtk.StatusIcon.position_menu(gtk_menu, x, y, status_icon)
-
-
-class BackendAppIndicator(BackendBase):
-
- _indicator = None
-
- STATUSNOTIFIER_OBJECT = "/org/ayatana/NotificationItem/Onboard"
- STATUSNOTIFIER_IFACE = "org.kde.StatusNotifierItem"
- ACTIVATE_METHOD = "Activate"
-
- def __init__(self, menu):
- BackendBase.__init__(self, menu)
-
- try:
- from gi.repository import AppIndicator3 as AppIndicator
- except ImportError as ex:
- raise RuntimeError(ex)
-
- self._indicator = AppIndicator.Indicator.new(
- self.id,
- self.icon_name,
- AppIndicator.IndicatorCategory.APPLICATION_STATUS)
- self._indicator.set_icon_full(self.icon_name,
- self.icon_desc)
-
- self._indicator.set_menu(menu._menu)
- self._indicator.set_secondary_activate_target(
- menu._menu.get_children()[0])
-
- if "dbus" in globals():
- # Watch left-click Activate() calls on desktops that send them
- # (KDE Plasma). There is still "No such method 'Activate'" in
- # AppIndicator.
- try:
- self._bus = dbus.SessionBus()
- except dbus.exceptions.DBusException as ex:
- _logger.warning("D-Bus session bus unavailable, "
- "no left-click Activate() for AppIndicator: " +
- unicode_str(ex))
- else:
- try:
- self._bus.add_match_string(
- "type='method_call',"
- "eavesdrop=true,"
- "path='{}',"
- "interface='{}',"
- "member='{}'"
- .format(self.STATUSNOTIFIER_OBJECT,
- self.STATUSNOTIFIER_IFACE,
- self.ACTIVATE_METHOD))
- self._bus.add_message_filter(self._on_activate_method)
- except dbus.exceptions.DBusException as ex:
- _logger.warning("Failed to setup D-Bus match rule, "
- "no left-click Activate() for AppIndicator: " +
- unicode_str(ex))
-
- def cleanup(self):
- pass
-
- def _on_activate_method(self, bus, message):
- if message.get_path() == self.STATUSNOTIFIER_OBJECT and \
- message.get_member() == self.ACTIVATE_METHOD:
- self._menu.on_show_keyboard_toggle()
- return dbus.connection.HANDLER_RESULT_NOT_YET_HANDLED
-
- def set_visible(self, visible):
- self._set_indicator_active(visible)
-
- def _set_indicator_active(self, active):
- try:
- from gi.repository import AppIndicator3 as AppIndicator
- except ImportError:
- pass
- else:
- if active:
- self._indicator.set_status(
- AppIndicator.IndicatorStatus.ACTIVE)
- else:
- self._indicator.set_status(
- AppIndicator.IndicatorStatus.PASSIVE)
-
-
Index: onboard-1.4.1/Onboard/Version.py
===================================================================
--- onboard-1.4.1.orig/Onboard/Version.py
+++ onboard-1.4.1/Onboard/Version.py
@@ -32,10 +32,3 @@ def require_gi_versions():
gi.require_version('Atspi', '2.0')
except ValueError:
pass
-
- # AppIndicator3 is not required
- try:
- gi.require_version('AppIndicator3', '0.1')
- except ValueError:
- pass
-
1
0
Hello community,
here is the log from the commit of package gnome-pomodoro for openSUSE:Factory checked in at 2019-05-03 22:43:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-pomodoro (Old)
and /work/SRC/openSUSE:Factory/.gnome-pomodoro.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-pomodoro"
Fri May 3 22:43:44 2019 rev:13 rq:693279 version:0.15.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-pomodoro/gnome-pomodoro.changes 2018-12-04 20:55:27.460777501 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-pomodoro.new.5148/gnome-pomodoro.changes 2019-05-03 22:43:45.435409558 +0200
@@ -1,0 +2,11 @@
+Mon Apr 8 08:33:03 UTC 2019 - mvetter(a)suse.com
+
+- Update to version 0.15.1:
+ + Minor code cleanups to support ES6 syntax
+ + Support for GNOME Shell 3.32
+ + Fix for build with vala 0.44.1
+ + Updated German translation
+ + Fix for handle error recreating existing folder
+ + Minor code cleanups
+
+-------------------------------------------------------------------
Old:
----
0.14.0.tar.gz
New:
----
0.15.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-pomodoro.spec ++++++
--- /var/tmp/diff_new_pack.OvdiuL/_old 2019-05-03 22:43:47.143413154 +0200
+++ /var/tmp/diff_new_pack.OvdiuL/_new 2019-05-03 22:43:47.143413154 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gnome-pomodoro
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,14 +12,14 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via https://bugs.opensuse.org/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%global __requires_exclude typelib\\(Meta\\)
Name: gnome-pomodoro
-Version: 0.14.0
+Version: 0.15.1
Release: 0
Summary: A time management utility for GNOME
License: GPL-3.0-or-later
++++++ 0.14.0.tar.gz -> 0.15.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-pomodoro-0.14.0/NEWS new/gnome-pomodoro-0.15.1/NEWS
--- old/gnome-pomodoro-0.14.0/NEWS 2018-11-24 18:30:13.000000000 +0100
+++ new/gnome-pomodoro-0.15.1/NEWS 2019-04-07 06:52:57.000000000 +0200
@@ -1,3 +1,17 @@
+2019-04-07 Arun Mahapatra <pratikarun(a)gmail.com>
+ Release version 0.15.1:
+
+ * Minor code cleanups
+
+2019-04-07 Arun Mahapatra <pratikarun(a)gmail.com>
+ Release version 0.15.0:
+
+ * Minor code cleanups to support ES6 syntax
+ * Support for GNOME Shell 3.32 (thanks @demokritos)
+ * Fix for build with vala 0.44.1 (thanks @snizovtsev)
+ * Updated German translation (thanks @c7hm4r)
+ * Fix for handle error recreating existing folder (thanks @Rj7)
+
2018-11-24 Kamil Prusko <kamilprusko(a)gmail.com>
Release version 0.14.0:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-pomodoro-0.14.0/configure.ac new/gnome-pomodoro-0.15.1/configure.ac
--- old/gnome-pomodoro-0.14.0/configure.ac 2018-11-24 18:30:13.000000000 +0100
+++ new/gnome-pomodoro-0.15.1/configure.ac 2019-04-07 06:52:57.000000000 +0200
@@ -1,6 +1,6 @@
AC_PREREQ([2.69])
AC_INIT([gnome-pomodoro],
- [0.14.0],
+ [0.15.1],
[https://github.com/codito/gnome-pomodoro/issues]
[gnome-pomodoro],
[http://gnomepomodoro.org]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-pomodoro-0.14.0/lib/about-dialog.vala new/gnome-pomodoro-0.15.1/lib/about-dialog.vala
--- old/gnome-pomodoro-0.14.0/lib/about-dialog.vala 2018-11-24 18:30:13.000000000 +0100
+++ new/gnome-pomodoro-0.15.1/lib/about-dialog.vala 2019-04-07 06:52:57.000000000 +0200
@@ -39,7 +39,7 @@
"Kamil Prusko <kamilprusko(a)gmail.com>"
};
this.translator_credits = _("translator-credits");
- this.copyright = "Copyright \xc2\xa9 2011-2018 Arun Mahapatra, Kamil Prusko";
+ this.copyright = "Copyright \xc2\xa9 2011-2019 Arun Mahapatra, Kamil Prusko";
this.license_type = Gtk.License.GPL_3_0;
this.destroy_with_parent = true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-pomodoro-0.14.0/lib/application.vala new/gnome-pomodoro-0.15.1/lib/application.vala
--- old/gnome-pomodoro-0.14.0/lib/application.vala 2018-11-24 18:30:13.000000000 +0100
+++ new/gnome-pomodoro-0.15.1/lib/application.vala 2019-04-07 06:52:57.000000000 +0200
@@ -66,7 +66,7 @@
FAILURE = 1
}
- private struct Options
+ private class Options
{
public static bool no_default_window = false;
public static bool preferences = false;
@@ -146,7 +146,7 @@
public unowned Gtk.Window get_last_focused_window ()
{
- unowned List<weak Gtk.Window> windows = this.get_windows ();
+ unowned List<Gtk.Window> windows = this.get_windows ();
return windows != null
? windows.first ().data
@@ -284,7 +284,12 @@
var adapter = new Gom.Adapter ();
try {
- file.get_parent ().make_directory_with_parents ();
+ try {
+ file.get_parent ().make_directory_with_parents ();
+ }
+ catch (GLib.Error error) {
+ GLib.debug ("Failed to create directory: %s", error.message);
+ }
/* Open database handle */
adapter.open_sync (file.get_uri ());
@@ -298,7 +303,7 @@
// var object_types = new GLib.List<GLib.Type> ();
// object_types.prepend (typeof (Pomodoro.Entry));
// object_types.prepend (typeof (Pomodoro.AggregatedEntry));
-//
+//
// repository.automatic_migrate_sync (Pomodoro.Application.REPOSITORY_VERSION,
// (owned) object_types);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-pomodoro-0.14.0/plugins/gnome/extension/dialogs.js new/gnome-pomodoro-0.15.1/plugins/gnome/extension/dialogs.js
--- old/gnome-pomodoro-0.14.0/plugins/gnome/extension/dialogs.js 2018-11-24 18:30:13.000000000 +0100
+++ new/gnome-pomodoro-0.15.1/plugins/gnome/extension/dialogs.js 2019-04-07 06:52:57.000000000 +0200
@@ -162,14 +162,12 @@
});
-var BlurredLightbox = new Lang.Class({
- Name: 'PomodoroBlurredLightbox',
- Extends: Lightbox.Lightbox,
+var BlurredLightbox = class extends Lightbox.Lightbox {
- _init(container, params) {
+ constructor(container, params) {
params.radialEffect = false;
- this.parent(container, params);
+ super(container, params);
if (Clutter.feature_available(Clutter.FeatureFlags.SHADERS_GLSL)) {
// TODO: Try consolidate these effects into one
@@ -192,7 +190,7 @@
}
this.actor.add_style_class_name('extension-pomodoro-lightbox');
- },
+ }
show(fadeInTime) {
fadeInTime = fadeInTime || 0;
@@ -225,7 +223,7 @@
}
this.actor.show();
- },
+ }
hide(fadeOutTime) {
fadeOutTime = fadeOutTime || 0;
@@ -257,7 +255,7 @@
});
}
}
-});
+};
/**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-pomodoro-0.14.0/plugins/gnome/extension/indicator.js new/gnome-pomodoro-0.15.1/plugins/gnome/extension/indicator.js
--- old/gnome-pomodoro-0.14.0/plugins/gnome/extension/indicator.js 2018-11-24 18:30:13.000000000 +0100
+++ new/gnome-pomodoro-0.15.1/plugins/gnome/extension/indicator.js 2019-04-07 06:52:57.000000000 +0200
@@ -63,12 +63,10 @@
};
-var IndicatorMenu = new Lang.Class({
- Name: 'PomodoroIndicatorMenu',
- Extends: PopupMenu.PopupMenu,
+var IndicatorMenu = class extends PopupMenu.PopupMenu {
- _init(indicator) {
- this.parent(indicator.actor, St.Align.START, St.Side.TOP);
+ constructor(indicator) {
+ super(indicator.actor, St.Align.START, St.Side.TOP);
this._isPaused = null;
this._timerState = null;
@@ -81,7 +79,7 @@
this.indicator = indicator;
this._populate();
- },
+ }
_createActionButton(iconName, accessibleName) {
let button = new St.Button({ reactive: true,
@@ -91,7 +89,7 @@
style_class: 'system-menu-action extension-pomodoro-indicator-menu-action' });
button.child = new St.Icon({ icon_name: iconName });
return button;
- },
+ }
_onTimerClicked() {
this.close();
@@ -100,19 +98,19 @@
Extension.extension.dialog.open(true);
Extension.extension.dialog.pushModal();
}
- },
+ }
_onStartClicked() {
this.indicator.timer.start();
this.close();
- },
+ }
_onStopClicked() {
this.indicator.timer.stop();
this.close();
- },
+ }
_onPauseClicked() {
if (!this.indicator.timer.isPaused ()) {
@@ -123,7 +121,7 @@
this.close();
}
- },
+ }
_populate() {
let toggleItem = new PopupMenu.PopupMenuItem(_("Pomodoro Timer"),
@@ -182,7 +180,7 @@
this.addAction(_("Preferences"), this._activatePreferences.bind(this));
this.addAction(_("Stats"), this._activateStats.bind(this));
this.addAction(_("Quit"), this._activateQuit.bind(this));
- },
+ }
addStateMenuItem(name, label) {
if (!this._stateItems) {
@@ -198,7 +196,7 @@
this._stateItems[name] = menuItem;
return menuItem;
- },
+ }
_onActorMapped(actor) {
if (actor.mapped && this._timerUpdateId == 0) {
@@ -210,7 +208,7 @@
this.indicator.timer.disconnect(this._timerUpdateId);
this._timerUpdateId = 0;
}
- },
+ }
_onTimerUpdate() {
let timer = this.indicator.timer;
@@ -253,7 +251,7 @@
}
this.timerLabel.set_text(this._formatTime(remaining));
- },
+ }
_formatTime(remaining) {
if (remaining < 0.0) {
@@ -264,27 +262,27 @@
let seconds = Math.floor(remaining % 60);
return '%02d:%02d'.format(minutes, seconds);
- },
+ }
_activateStats() {
let timestamp = global.get_current_time();
this.indicator.timer.showMainWindow('stats', timestamp);
- },
+ }
_activatePreferences() {
let timestamp = global.get_current_time();
this.indicator.timer.showPreferences(timestamp);
- },
+ }
_activateQuit() {
this.indicator.timer.quit();
- },
+ }
_activateState(stateName) {
this.indicator.timer.setState(stateName);
- },
+ }
destroy() {
if (this._timerUpdateId) {
@@ -299,15 +297,17 @@
this.indicator = null;
- this.parent();
+ super.destroy();
}
-});
+};
-var TextIndicator = new Lang.Class({
- Name: 'PomodoroTextIndicator',
+var TextIndicator = GObject.registerClass(
+class PomodoroTextIndicator extends GObject.Object {
_init(timer) {
+ super._init();
+
this._initialized = false;
this._state = Timer.State.NULL;
this._minHPadding = 0;
@@ -318,7 +318,7 @@
this.timer = timer;
- this.actor = new Shell.GenericContainer({ reactive: true });
+ this.actor = new St.Widget({ reactive: true });
this.actor._delegate = this;
this.label = new St.Label({ style_class: 'system-status-label',
@@ -335,9 +335,6 @@
});
this.actor.add_child(this.label);
- this.actor.connect('get-preferred-width', this._getPreferredWidth.bind(this));
- this.actor.connect('get-preferred-height', this._getPreferredHeight.bind(this));
- this.actor.connect('allocate', this._allocate.bind(this));
this.actor.connect('style-changed', this._onStyleChanged.bind(this));
this.actor.connect('destroy', this._onActorDestroy.bind(this));
@@ -354,7 +351,7 @@
else {
this.actor.set_opacity(FADE_OUT_OPACITY * 255);
}
- },
+ }
_onStyleChanged(actor) {
let themeNode = actor.get_theme_node();
@@ -366,46 +363,12 @@
this._natHPadding = themeNode.get_length('-natural-hpadding');
this._digitWidth = metrics.get_approximate_digit_width() / Pango.SCALE;
this._charWidth = metrics.get_approximate_char_width() / Pango.SCALE;
- },
+ }
_getWidth() {
return Math.ceil(4 * this._digitWidth + 0.5 * this._charWidth);
- },
-
- _getPreferredWidth(actor, forHeight, alloc) {
- let child = actor.get_first_child();
- let minWidth = this._getWidth();
- let naturalWidth = minWidth;
-
- minWidth += 2 * this._minHPadding;
- naturalWidth += 2 * this._natHPadding;
-
- if (child) {
- [alloc.min_size, alloc.natural_size] = child.get_preferred_width(-1);
- }
- else {
- alloc.min_size = alloc.natural_size = 0;
- }
-
- if (alloc.min_size < minWidth) {
- alloc.min_size = minWidth;
- }
-
- if (alloc.natural_size < naturalWidth) {
- alloc.natural_size = naturalWidth;
- }
- },
+ }
- _getPreferredHeight(actor, forWidth, alloc) {
- let child = actor.get_first_child();
-
- if (child) {
- [alloc.min_size, alloc.natural_size] = child.get_preferred_height(-1);
- }
- else {
- alloc.min_size = alloc.natural_size = 0;
- }
- },
_getText(state, remaining) {
if (remaining < 0.0) {
@@ -416,7 +379,7 @@
let seconds = Math.floor(remaining % 60);
return '%02d:%02d'.format(minutes, seconds);
- },
+ }
_onTimerUpdate() {
let state = this.timer.getState();
@@ -440,33 +403,8 @@
}
this.label.set_text(this._getText(state, remaining));
- },
-
- _allocate(actor, box, flags) {
- let child = actor.get_first_child();
- if (!child)
- return;
-
- let [minWidth, natWidth] = child.get_preferred_width(-1);
-
- let availWidth = box.x2 - box.x1;
- let availHeight = box.y2 - box.y1;
-
- let childBox = new Clutter.ActorBox();
- childBox.y1 = 0;
- childBox.y2 = availHeight;
-
- if (natWidth + 2 * this._natHPadding <= availWidth) {
- childBox.x1 = this._natHPadding;
- childBox.x2 = availWidth - this._natHPadding;
- }
- else {
- childBox.x1 = this._minHPadding;
- childBox.x2 = availWidth - this._minHPadding;
- }
+ }
- child.allocate(childBox, flags);
- },
_onActorDestroy() {
if (this._onTimerUpdateId) {
@@ -477,7 +415,7 @@
this.actor._delegate = null;
this.emit('destroy');
- },
+ }
destroy() {
this.actor.destroy();
@@ -486,20 +424,19 @@
Signals.addSignalMethods(TextIndicator.prototype);
-var ShortTextIndicator = new Lang.Class({
- Name: 'PomodoroShortTextIndicator',
- Extends: TextIndicator,
+var ShortTextIndicator = GObject.registerClass(
+class PomodoroShortTextIndicator extends TextIndicator {
_init(timer) {
- this.parent(timer);
+ super._init(timer);
this.label.set_x_align(Clutter.ActorAlign.END);
- },
+ }
_getWidth() {
return Math.ceil(2 * this._digitWidth +
1 * this._charWidth);
- },
+ }
_getText(state, remaining) {
if (remaining < 0.0) {
@@ -519,11 +456,12 @@
}
});
-
-var IconIndicator = new Lang.Class({
- Name: 'PomodoroIconIndicator',
+var IconIndicator = GObject.registerClass(
+class PomodoroIconIndicator extends GObject.Object {
_init(timer) {
+ super._init();
+
this._state = Timer.State.NULL;
this._progress = 0.0;
this._minHPadding = 0;
@@ -536,7 +474,7 @@
this.timer = timer;
- this.actor = new Shell.GenericContainer({ reactive: true });
+ this.actor = new St.Widget({ reactive: true });
this.actor._delegate = this;
this.icon = new St.DrawingArea({ style_class: 'system-status-icon' });
@@ -545,9 +483,6 @@
this.icon.connect('destroy', this._onIconDestroy.bind(this));
this.actor.add_child(this.icon);
- this.actor.connect('get-preferred-width', this._getPreferredWidth.bind(this));
- this.actor.connect('get-preferred-height', this._getPreferredHeight.bind(this));
- this.actor.connect('allocate', this._allocate.bind(this));
this.actor.connect('style-changed', this._onStyleChanged.bind(this));
this.actor.connect('destroy', this._onActorDestroy.bind(this));
@@ -556,7 +491,7 @@
this._onTimerUpdate();
this._state = this.timer.getState();
- },
+ }
_onIconStyleChanged(actor) {
let themeNode = actor.get_theme_node();
@@ -566,7 +501,7 @@
[actor.min_height, actor.natural_height] = themeNode.adjust_preferred_height(size, size);
this._iconSize = size;
- },
+ }
_onIconRepaint(area) {
let cr = area.get_context();
@@ -612,14 +547,14 @@
}
cr.$dispose();
- },
+ }
_onIconDestroy() {
if (this._timerUpdateId) {
this.timer.disconnect(this._timerUpdateId);
this._timerUpdateId = 0;
}
- },
+ }
_onStyleChanged(actor) {
let themeNode = actor.get_theme_node();
@@ -629,7 +564,7 @@
this._minVPadding = themeNode.get_length('-minimum-vpadding');
this._natVPadding = themeNode.get_length('-natural-vpadding');
- let color = themeNode.get_foreground_color()
+ let color = themeNode.get_foreground_color();
this._primaryColor = color;
this._secondaryColor = new Clutter.Color({
red: color.red,
@@ -637,35 +572,8 @@
blue: color.blue,
alpha: color.alpha * FADE_OUT_OPACITY
});
- },
-
- _getPreferredWidth(actor, forHeight, alloc) {
- let child = actor.get_first_child();
-
- if (child) {
- [alloc.min_size, alloc.natural_size] = child.get_preferred_width(-1);
- }
- else {
- alloc.min_size = alloc.natural_size = 0;
- }
-
- alloc.min_size += 2 * this._minHPadding;
- alloc.natural_size += 2 * this._natHPadding;
- },
-
- _getPreferredHeight(actor, forWidth, alloc) {
- let child = actor.get_first_child();
-
- if (child) {
- [alloc.min_size, alloc.natural_size] = child.get_preferred_height(-1);
- }
- else {
- alloc.min_size = alloc.natural_size = 0;
- }
+ }
- alloc.min_size += 2 * this._minVPadding;
- alloc.natural_size += 2 * this._natVPadding;
- },
_onTimerUpdate() {
let state = this.timer.getState();
@@ -676,34 +584,8 @@
this._progress = progress;
this.icon.queue_repaint();
}
- },
-
- _allocate(actor, box, flags) {
- let child = actor.get_first_child();
- if (!child) {
- return;
- }
-
- let availWidth = box.x2 - box.x1;
- let availHeight = box.y2 - box.y1;
-
- let [minWidth, natWidth] = child.get_preferred_width(availHeight);
-
- let childBox = new Clutter.ActorBox();
- childBox.y1 = 0;
- childBox.y2 = availHeight;
-
- if (natWidth + 2 * this._natHPadding <= availWidth) {
- childBox.x1 = this._natHPadding;
- childBox.x2 = availWidth - this._natHPadding;
- }
- else {
- childBox.x1 = this._minHPadding;
- childBox.x2 = availWidth - this._minHPadding;
- }
+ }
- child.allocate(childBox, flags);
- },
_onActorDestroy() {
if (this._timerUpdateId) {
@@ -717,7 +599,7 @@
this.actor._delegate = null;
this.emit('destroy');
- },
+ }
destroy() {
this.actor.destroy();
@@ -726,12 +608,11 @@
Signals.addSignalMethods(IconIndicator.prototype);
-var Indicator = new Lang.Class({
- Name: 'PomodoroIndicator',
- Extends: PanelMenu.Button,
+var Indicator = GObject.registerClass(
+class PomodoroIndicator extends PanelMenu.Button {
_init(timer, type) {
- this.parent(St.Align.START, _("Pomodoro"), true);
+ super._init(St.Align.START, _("Pomodoro"), true);
this.timer = timer;
this.widget = null;
@@ -745,6 +626,7 @@
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._hbox.pack_start = true;
+ this._hbox.set_y_align(Clutter.ActorAlign.CENTER);
this._hbox.add_child(this._arrow);
this.actor.add_child(this._hbox);
@@ -755,7 +637,7 @@
this._timerPausedId = this.timer.connect('paused', this._onTimerPaused.bind(this));
this._timerResumedId = this.timer.connect('resumed', this._onTimerResumed.bind(this));
- },
+ }
setType(type) {
if (this.widget) {
@@ -783,7 +665,7 @@
GObject.BindingFlags.SYNC_CREATE);
this._hbox.add_child(this.widget.actor);
- },
+ }
_onBlinked() {
this._blinking = false;
@@ -791,7 +673,7 @@
if (this.timer.isPaused()) {
this._blink();
}
- },
+ }
_blink() {
if (!this._blinking) {
@@ -837,11 +719,11 @@
});
}
}
- },
+ }
_onTimerPaused() {
this._blink();
- },
+ }
_onTimerResumed() {
if (this._blinking) {
@@ -865,7 +747,7 @@
this._blinkTimeoutSource = 0;
}
}
- },
+ }
_onActorDestroy() {
Tweener.removeTweens(this._hbox);
@@ -885,9 +767,9 @@
this.icon.destroy();
this.icon = null;
}
- },
+ }
destroy() {
- this.parent();
+ super.destroy();
}
});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-pomodoro-0.14.0/plugins/gnome/extension/metadata.json.in new/gnome-pomodoro-0.15.1/plugins/gnome/extension/metadata.json.in
--- old/gnome-pomodoro-0.14.0/plugins/gnome/extension/metadata.json.in 2018-11-24 18:30:13.000000000 +0100
+++ new/gnome-pomodoro-0.15.1/plugins/gnome/extension/metadata.json.in 2019-04-07 06:52:57.000000000 +0200
@@ -2,7 +2,7 @@
"uuid": "@EXTENSION_UUID@",
"name": "Pomodoro",
"description": "Desktop integration for Pomodoro application.",
- "shell-version": ["3.30", "3.28", "3.26", "3.24", "3.22", "3.20", "3.18", "3.16"],
+ "shell-version": ["3.32", "3.30", "3.28", "3.26", "3.24", "3.22", "3.20", "3.18", "3.16"],
"url": "@PACKAGE_URL@",
"version": "@PACKAGE_VERSION@"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-pomodoro-0.14.0/plugins/gnome/extension/notifications.js new/gnome-pomodoro-0.15.1/plugins/gnome/extension/notifications.js
--- old/gnome-pomodoro-0.14.0/plugins/gnome/extension/notifications.js 2018-11-24 18:30:13.000000000 +0100
+++ new/gnome-pomodoro-0.15.1/plugins/gnome/extension/notifications.js 2019-04-07 06:52:57.000000000 +0200
@@ -65,14 +65,14 @@
}
-var Source = new Lang.Class({
- Name: 'PomodoroNotificationSource',
- Extends: MessageTray.Source,
+var Source = class extends MessageTray.Source {
- ICON_NAME: 'gnome-pomodoro',
+ constructor() {
+ let icon_name = 'gnome-pomodoro';
- _init() {
- this.parent(_("Pomodoro Timer"), this.ICON_NAME);
+ super(_("Pomodoro Timer"), icon_name);
+
+ this.ICON_NAME = icon_name;
this._idleId = 0;
@@ -94,13 +94,13 @@
});
this._patch = patch;
this._patch.apply();
- },
+ }
/* override parent method */
_createPolicy() {
return new MessageTray.NotificationPolicy({ showInLockScreen: true,
detailsInLockScreen: true });
- },
+ }
_lastNotificationRemoved() {
this._idleId = Mainloop.idle_add(() => {
@@ -112,7 +112,7 @@
});
GLib.Source.set_name_by_id(this._idleId,
'[gnome-pomodoro] this._lastNotificationRemoved');
- },
+ }
/* override parent method */
_onNotificationDestroy(notification) {
@@ -127,7 +127,7 @@
}
this.countUpdated();
- },
+ }
destroyNotifications() {
let notifications = this.notifications.slice();
@@ -135,10 +135,10 @@
notifications.forEach((notification) => {
notification.destroy();
});
- },
+ }
destroy() {
- this.parent();
+ super.destroy();
if (this._patch) {
this._patch.revert();
@@ -150,27 +150,25 @@
this._idleId = 0;
}
}
-});
+};
-var Notification = new Lang.Class({
- Name: 'PomodoroNotification',
- Extends: MessageTray.Notification,
+var Notification = class extends MessageTray.Notification {
- _init(title, description, params) {
- this.parent(null, title, description, params);
+ constructor(title, description, params) {
+ super(null, title, description, params);
this._restoreForFeedback = false;
// We want notifications to be shown right after the action,
// therefore urgency bump.
this.setUrgency(MessageTray.Urgency.HIGH);
- },
+ }
activate() {
- this.parent();
+ super.activate();
Main.panel.closeCalendar();
- },
+ }
show() {
if (this.source && this.source.isPlaceholder) {
@@ -201,21 +199,19 @@
Utils.logWarning('Called Notification.show() after destroy()');
}
}
-});
+};
-var PomodoroStartNotification = new Lang.Class({
- Name: 'PomodoroStartNotification',
- Extends: Notification,
+var PomodoroStartNotification = class extends Notification {
/**
* Notification pops up a little before Pomodoro starts and changes message once started.
*/
- _init(timer) {
+ constructor(timer) {
let title = _("Pomodoro");
- this.parent(title, '', null);
+ super(title, '', null);
this.setResident(true);
this.setForFeedback(true);
@@ -226,7 +222,7 @@
this._timerStateChangedId = this.timer.connect('state-changed', this._onTimerStateChanged.bind(this));
this._onTimerStateChanged();
- },
+ }
_onTimerStateChanged() {
let title,
@@ -267,7 +263,7 @@
this.emit('changed');
}
- },
+ }
_getBodyText() {
let remaining = Math.max(this.timer.getRemaining(), 0.0);
@@ -279,7 +275,7 @@
"%d minutes remaining", minutes).format(minutes)
: ngettext("%d second remaining",
"%d seconds remaining", seconds).format(seconds);
- },
+ }
/**
* createBanner() is used only to display a notification popup.
@@ -289,7 +285,7 @@
let banner,
extendButton;
- banner = this.parent();
+ banner = super.createBanner();
banner.canClose = function() {
return false;
};
@@ -341,7 +337,7 @@
onTimerUpdate();
return banner;
- },
+ }
destroy(reason) {
if (this._timerStateChangedId != 0) {
@@ -349,19 +345,17 @@
this._timerStateChangedId = 0;
}
- return this.parent(reason);
+ return super.destroy(reason);
}
-});
+};
-var PomodoroEndNotification = new Lang.Class({
- Name: 'PomodoroEndNotification',
- Extends: Notification,
+var PomodoroEndNotification = class extends Notification {
- _init(timer) {
+ constructor(timer) {
let title = '';
- this.parent(title, null, null);
+ super(title, null, null);
this.setResident(true);
this.setForFeedback(true);
@@ -372,7 +366,7 @@
this._timerStateChangedId = this.timer.connect('state-changed', this._onTimerStateChanged.bind(this));
this._onTimerStateChanged();
- },
+ }
_onTimerStateChanged() {
let title,
@@ -412,7 +406,7 @@
this.emit('changed');
}
- },
+ }
_getBodyText() {
let remaining = Math.max(this.timer.getRemaining(), 0.0);
@@ -424,10 +418,10 @@
"%d minutes remaining", minutes).format(minutes)
: ngettext("%d second remaining",
"%d seconds remaining", seconds).format(seconds);
- },
+ }
createBanner() {
- let banner = this.parent();
+ let banner = super.createBanner();
banner.canClose = function() {
return false;
@@ -476,7 +470,7 @@
onTimerUpdate();
return banner;
- },
+ }
destroy(reason) {
if (this._timerStateChangedId != 0) {
@@ -484,17 +478,15 @@
this._timerStateChangedId = 0;
}
- return this.parent(reason);
+ return super.destroy(reason);
}
-});
+};
-var ScreenShieldNotification = new Lang.Class({
- Name: 'PomodoroScreenShieldNotification',
- Extends: Notification,
+var ScreenShieldNotification = class extends Notification {
- _init(timer) {
- this.parent('', null, null);
+ constructor(timer) {
+ super('', null, null);
this.timer = timer;
this.source = getDefaultSource();
@@ -520,7 +512,7 @@
this._screenShieldPatch = patch;
this._onTimerUpdate();
- },
+ }
_onTimerStateChanged() {
let state = this.timer.getState();
@@ -531,7 +523,7 @@
if (this.source !== null) {
this.source.setTitle(title ? title : '');
}
- },
+ }
_onTimerElapsedChanged() {
let remaining = Math.max(this.timer.getRemaining(), 0.0);
@@ -547,7 +539,7 @@
"%d minutes remaining", minutes).format(minutes)
: ngettext("%d second remaining",
"%d seconds remaining", seconds).format(seconds);
- },
+ }
_onTimerUpdate() {
let timerState = this.timer.getState(),
@@ -589,7 +581,7 @@
this._screenShieldPatch.revert();
}
}
- },
+ }
destroy(reason) {
if (this._timerUpdateId != 0) {
@@ -602,25 +594,23 @@
this._screenShieldPatch = null;
}
- return this.parent(reason);
+ return super.destroy(reason);
}
-});
+};
-var IssueNotification = new Lang.Class({
- Name: 'PomodoroIssueNotification',
+var IssueNotification = class extends MessageTray.Notification {
/* Use base class instead of PomodoroNotification, in case
* issue is caused by our implementation.
*/
- Extends: MessageTray.Notification,
- _init(message) {
+ constructor(message) {
let source = getDefaultSource();
let title = _("Pomodoro Timer");
let url = Config.PACKAGE_BUGREPORT;
- this.parent(source, title, message, { bannerMarkup: true });
+ super(source, title, message, { bannerMarkup: true });
this.setTransient(true);
this.setUrgency(MessageTray.Urgency.HIGH);
@@ -629,7 +619,7 @@
Util.trySpawnCommandLine('xdg-open ' + GLib.shell_quote(url));
this.destroy();
});
- },
+ }
show() {
if (!Main.messageTray.contains(this.source)) {
@@ -638,15 +628,13 @@
this.source.notify(this);
}
-});
+};
-var TimerBanner = new Lang.Class({
- Name: 'PomodoroTimerNotificationBanner',
- Extends: Calendar.NotificationMessage,
+var TimerBanner = class extends Calendar.NotificationMessage {
- _init(notification) {
- this.parent(notification);
+ constructor(notification) {
+ super(notification);
this.timer = notification.timer;
@@ -669,19 +657,19 @@
this.connect('close', this._onClose.bind(this));
this.actor.connect('destroy', this._onActorDestroy.bind(this));
- },
+ }
/* override parent method */
canClose() {
return false;
- },
+ }
addButton(button, callback) {
button.connect('clicked', callback);
this._mediaControls.add_actor(button);
return button;
- },
+ }
addAction(label, callback) {
let button = new St.Button({ style_class: 'extension-pomodoro-message-action',
@@ -690,7 +678,7 @@
can_focus: true });
return this.addButton(button, callback);
- },
+ }
_getBodyText() {
let remaining = Math.max(this.timer.getRemaining(), 0.0);
@@ -702,7 +690,7 @@
"%d minutes remaining", minutes).format(minutes)
: ngettext("%d second remaining",
"%d seconds remaining", seconds).format(seconds);
- },
+ }
_onTimerStateChanged() {
let state = this.timer.getState();
@@ -718,7 +706,7 @@
if (title && this.titleLabel && this.titleLabel.clutter_text) {
this.setTitle(title);
}
- },
+ }
_onTimerElapsedChanged() {
if (this.bodyLabel && this.bodyLabel.actor.clutter_text) {
@@ -729,7 +717,7 @@
this.setBody(bodyText);
}
}
- },
+ }
_onTimerUpdate() {
let timerState = this.timer.getState();
@@ -745,20 +733,20 @@
if (this._timerState != Timer.State.NULL) {
this._onTimerElapsedChanged();
}
- },
+ }
/* override parent method */
_onUpdated(n, clear) {
- },
+ }
_onClose() {
if (this._timerUpdateId != 0) {
this.timer.disconnect(this._timerUpdateId);
this._timerUpdateId = 0;
}
- },
+ }
_onActorDestroy() {
this._onClose();
}
-});
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-pomodoro-0.14.0/po/de.po new/gnome-pomodoro-0.15.1/po/de.po
--- old/gnome-pomodoro-0.14.0/po/de.po 2018-11-24 18:30:13.000000000 +0100
+++ new/gnome-pomodoro-0.15.1/po/de.po 2019-04-07 06:52:57.000000000 +0200
@@ -193,7 +193,7 @@
#: data/resources/screen-notification.ui:89
#: plugins/gnome/extension/dialogs.js:591
msgid "It's time to take a break"
-msgstr "Es ist Zeit eine Pause einzulegen"
+msgstr "Es ist Zeit, eine Pause einzulegen"
#: data/resources/stats-view.ui:28
msgid "Nothing to see yet"
@@ -561,11 +561,11 @@
#: plugins/sounds/sounds-plugin.vala:35 plugins/sounds/sounds-plugin.vala:403
msgid "Clock Ticking"
-msgstr "Uhr ticken"
+msgstr "Uhrticken"
#: plugins/sounds/sounds-plugin.vala:36 plugins/sounds/sounds-plugin.vala:404
msgid "Timer Ticking"
-msgstr "Stoppuhr ticken"
+msgstr "Stoppuhrticken"
#: plugins/sounds/sounds-plugin.vala:37 plugins/sounds/sounds-plugin.vala:405
msgid "Woodland Birds"
1
0
Hello community,
here is the log from the commit of package gnome-commander for openSUSE:Factory checked in at 2019-05-03 22:43:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-commander (Old)
and /work/SRC/openSUSE:Factory/.gnome-commander.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-commander"
Fri May 3 22:43:41 2019 rev:66 rq:693277 version:1.10.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-commander/gnome-commander.changes 2018-03-24 16:15:07.124062858 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-commander.new.5148/gnome-commander.changes 2019-05-03 22:43:42.891404202 +0200
@@ -1,0 +2,17 @@
+Sun Mar 31 11:28:07 UTC 2019 - Bjørn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 1.10.0:
+ + New features:
+ - Gnome Commander icon and internal viewer icon refreshed.
+ - Gnome Commander settings are now completely migrated to
+ GSettings under the key `org.gnome.gnome-commander`.
+ - Settings in `~/.gnome2/gnome-commander` and in
+ `~/.gnome-commander/*` are migrated automatically.
+ - Script and plugin folder in `~/.gnome-commander` is moved
+ into `~/.config/gnome-commander`.
+ + Bugs fixed:
+ - Various warnings at compile time have been fixed
+ - Several code improvements and memory leaks have been fixed
+ + Updated translations.
+
+-------------------------------------------------------------------
Old:
----
gnome-commander-1.8.1.tar.xz
New:
----
gnome-commander-1.10.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-commander.spec ++++++
--- /var/tmp/diff_new_pack.ecieH8/_old 2019-05-03 22:43:44.207406973 +0200
+++ /var/tmp/diff_new_pack.ecieH8/_new 2019-05-03 22:43:44.243407049 +0200
@@ -1,7 +1,7 @@
#
# spec file for package gnome-commander
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: gnome-commander
-Version: 1.8.1
+Version: 1.10.0
Release: 0
Summary: A file manager for the GNOME desktop environment
License: GPL-2.0-or-later
Group: Productivity/File utilities
URL: http://gcmd.github.io/
-Source: http://download.gnome.org/sources/gnome-commander/1.8/%{name}-%{version}.ta…
+Source: http://download.gnome.org/sources/gnome-commander/1.10/%{name}-%{version}.t…
BuildRequires: chmlib-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
@@ -96,7 +96,7 @@
%{_datadir}/applications/*.desktop
%{_datadir}/glib-2.0/schemas/org.gnome.gnome-commander.enums.xml
%{_datadir}/glib-2.0/schemas/org.gnome.gnome-commander.gschema.xml
-%{_datadir}/pixmaps/*.png
+%{_datadir}/pixmaps/*.svg
%{_datadir}/pixmaps/gnome-commander
%{_libdir}/gnome-commander
%{_mandir}/man1/gnome-commander.1%{ext_man}
++++++ gnome-commander-1.8.1.tar.xz -> gnome-commander-1.10.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/gnome-commander/gnome-commander-1.8.1.tar.xz /work/SRC/openSUSE:Factory/.gnome-commander.new.5148/gnome-commander-1.10.0.tar.xz differ: char 26, line 1
1
0
Hello community,
here is the log from the commit of package libgda for openSUSE:Factory checked in at 2019-05-03 22:43:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgda (Old)
and /work/SRC/openSUSE:Factory/.libgda.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgda"
Fri May 3 22:43:37 2019 rev:86 rq:693275 version:5.2.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/libgda/libgda.changes 2018-11-19 23:30:33.767289569 +0100
+++ /work/SRC/openSUSE:Factory/.libgda.new.5148/libgda.changes 2019-05-03 22:43:39.471397002 +0200
@@ -1,0 +2,48 @@
+Wed Apr 10 09:37:19 UTC 2019 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Update to version 5.2.8 (bsc#1128934):
+ + Fix a typo on sv translation
+ + Please note: releases 5.2.6 and 5.2.7 were unable to be
+ published at downdload.gnome.org
+- Changes from version 5.2.4:
+ + SQLite provider uses system installed one by default
+ + Revome build's date from documentation
+ + introspection: removed system install in favor of --prefix
+ + Fixed compilation on MacOS
+ + All Vala bindings and Vala extensions are built by default
+ using --enable-vala, added --disable* switch to disable some or
+ all of them
+ + Fixes on outdated unit tests
+ + Removed unused Vala extensions
+ + GdaConnection has removed the use of g_object_weak_*, improving
+ multi-threading behaviour
+ + Prepared statements now use GWeakRef for weak references
+ + GdaDataPivot use instance providers and locking
+ + GdaVConnectionDataModel use GRecMutex
+ + Updated SQLite to 3.8.11.1
+ + Fix SQLCipher build by embedding source code for 3.4.2 version
+ + Fix SQLCipher disabling
+ + Updated GObject Introspection annotations
+ + Fix Doc generation
+ + Bugs corrected: #787685 #789382 #761560 #761529 #760420 #761424
+ #754263 #754208
+ + Corrected HTML output containing <SCRIPT> tag
+ + Correct some truncated help strings
+ + Don't use (deprecated) g_thread_supported()
+ + MySQL meta data: fixed case where schema is incomplete in MySQL
+ database
+ + Allow introspection for gda_sql_builder_add_cond_v()
+ + SQLite: handle WITHOUT ROWID without any error
+ + Updated translations.
+- Rebase libgda-5.2.4-nojavah.patch: most of it was merged in time
+ for 5.2.8, except one chunk.
+- Drop libgda-utf.patch: no longer required.
+- Add libgda-no-libgee.patch: do not require libgee, taken from
+ upstream git.
+- Add libgda-enable-gdaui-gi.patch: Fix configure handling of
+ --enable-gdaui-gi, taken from git.
+- Add libgda-no-pg_config.patch: Don't use pg_config, but rather
+ pkgconfig: libgda does not build a postgresql server module.
+- Pass --with-postgres to configure: ensure to build pgsql support.
+
+-------------------------------------------------------------------
Old:
----
libgda-5.2.4.tar.xz
libgda-utf.patch
New:
----
libgda-5.2.8.tar.xz
libgda-enable-gdaui-gi.patch
libgda-no-libgee.patch
libgda-no-pg_config.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgda.spec ++++++
--- /var/tmp/diff_new_pack.mU4Y30/_old 2019-05-03 22:43:41.795401895 +0200
+++ /var/tmp/diff_new_pack.mU4Y30/_new 2019-05-03 22:43:41.823401954 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libgda
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: libgda
-Version: 5.2.4
+Version: 5.2.8
Release: 0
# FIXME: add bdb sql BuildRequires when available
Summary: GNU Data Access (GDA) Library
@@ -35,8 +35,12 @@
Patch4: libgda-jre10.patch
# PATCH-FIX-OPENSUSE libgda-5.2.4-nojavah.patch fstrba(a)suse.com -- Fix build with JRE 10 (not sent upstream, as it's way too hackish)
Patch5: libgda-5.2.4-nojavah.patch
-# PATCH-FIX-OPENSUSE libgda-utf.patch dimstar(a)opensuse.org -- Remove some UTF chars from headers, which messes with glib-mkenums inside OBS (needs more debug)
-Patch500: libgda-utf.patch
+# PATCH-FIx-UPSTREAM libgda-no-libgee.patch dimstar(a)opensuse.org -- Drop obsolete libgee dependency, taken from git
+Patch6: libgda-no-libgee.patch
+# PATCH-FIX-UPSTREAM libgda-no-pg_config.patch dimstar(a)opensuse.org -- Don't use pg_config to find postgresql. Patch not directly applicable as-is upstream, but fixed in master
+Patch7: libgda-no-pg_config.patch
+# PATCH-FIx-UPSTREAM libgda-enable-gdaui-gi.patch dimstar(a)opensuse.org -- Fix --enable-gdaui-gi configure parameter, taken from git
+Patch8: libgda-enable-gdaui-gi.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: db-devel
@@ -377,7 +381,9 @@
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch500 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
%build
autoreconf -fi
@@ -414,6 +420,7 @@
--disable-static \
--enable-binreloc \
--enable-default-binary \
+ --with-postgres \
--with-libdir-name=%{_lib} \
--enable-gda-gi \
--enable-gdaui-gi \
@@ -551,6 +558,7 @@
%{_libdir}/pkgconfig/*-5.0.pc
%{_datadir}/gir-1.0/*.gir
%{_datadir}/vala/vapi/libgda-5.0.vapi
+%{_datadir}/vala/vapi/libgda-ui-5.0.vapi
# demo
%{_bindir}/gdaui-demo-5.0
%{_datadir}/libgda-5.0/demo/
++++++ libgda-5.2.4-nojavah.patch ++++++
--- /var/tmp/diff_new_pack.mU4Y30/_old 2019-05-03 22:43:42.059402451 +0200
+++ /var/tmp/diff_new_pack.mU4Y30/_new 2019-05-03 22:43:42.059402451 +0200
@@ -1,12 +1,20 @@
---- libgda-5.2.4/m4/java.m4 2018-01-08 13:12:26.228444544 +0100
-+++ libgda-5.2.4/m4/java.m4 2018-01-08 13:13:52.932444872 +0100
-@@ -111,13 +111,11 @@
- AC_MSG_CHECKING([if all java programs are found])
- AC_PATH_PROGS(JAVA_PROG,java,,${JAVA_PATH})
- AC_PATH_PROGS(JAVAC,javac,,${JAVA_PATH})
-- AC_PATH_PROGS(JAVAH,javah,,${JAVA_PATH})
- AC_PATH_PROGS(JAR,jar,,${JAVA_PATH})
-
+From 10d43ce6aea0a041a776445783b4e1ca09651f57 Mon Sep 17 00:00:00 2001
+From: Kalev Lember <klember(a)redhat.com>
+Date: Tue, 4 Dec 2018 16:20:24 +0100
+Subject: [PATCH] JDBC: Drop unneeded JAVAH variable check
+
+Commit b8d0997 dropped javah detection from java.m4, but left in a JAVAH
+variable check which broke the build, as nothing ever sets the variable
+any more.
+---
+ m4/java.m4 | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/m4/java.m4 b/m4/java.m4
+index f4e64e9af..e659a1bec 100644
+--- a/m4/java.m4
++++ b/m4/java.m4
+@@ -116,7 +116,6 @@ m4_define([_JAVA_CHECK_INTERNAL],
have_all_java=yes
if test -z "$JAVA_PROG"; then have_all_java=no; fi
if test -z "$JAVAC"; then have_all_java=no; fi
@@ -14,22 +22,4 @@
if test -z "$JAR"; then have_all_java=no; fi
if test ${have_all_java} = no; then
AC_MSG_WARN([one or more Java tools are missing (JRE is not sufficient)])
---- libgda-5.2.4/providers/jdbc/Makefile.am 2018-01-08 13:12:26.180444544 +0100
-+++ libgda-5.2.4/providers/jdbc/Makefile.am 2018-01-08 13:16:14.224008270 +0100
-@@ -76,7 +76,6 @@
- CLEANFILES = $(resources)
-
- $(jni_headers): $(jdbcprov_classes)
-- $(JAVAH) -classpath . -d $(builddir) -force `basename $@ | sed -e 's/\.h$$//'`
-
- jdbcprov_jar = gdaprovider-5.0.jar
- jdbcprov_sources = \
-@@ -91,7 +90,7 @@
- jdbcprov_DATA = $(jdbcprov_jar)
-
- GdaJConnection.class: $(jdbcprov_sources)
-- $(JAVAC) -cp . $(JFLAGS) -d $(top_builddir)/providers/jdbc $^
-+ $(JAVAC) -cp . $(JFLAGS) -d $(top_builddir)/providers/jdbc -h $(builddir) $^
-
- $(jdbcprov_jar): $(jdbcprov_classes)
- $(JAR) cfm $(jdbcprov_jar) $(top_srcdir)/providers/jdbc/MANIFEST.MF *.class
+
++++++ libgda-5.2.4.tar.xz -> libgda-5.2.8.tar.xz ++++++
/work/SRC/openSUSE:Factory/libgda/libgda-5.2.4.tar.xz /work/SRC/openSUSE:Factory/.libgda.new.5148/libgda-5.2.8.tar.xz differ: char 25, line 1
++++++ libgda-enable-gdaui-gi.patch ++++++
>From bde0933ee733e2c0aa4eeec5833e7fb54f1d2acf Mon Sep 17 00:00:00 2001
From: Daniel Espinosa Ortiz <esodan(a)gmail.com>
Date: Fri, 8 Feb 2019 13:51:51 -0600
Subject: [PATCH] fix behavior of --enable-gdaui-gi
---
configure.ac | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 0990e1b96..ce761503b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -475,7 +475,16 @@ GOBJECT_INTROSPECTION_CHECK([1.30.0])
AC_ARG_ENABLE([gdaui-gi],
AS_HELP_STRING([--disable-gdaui-gi[=@<:@yes/no@:>@]], [Disable GObject Introspection for libgda-ui [default=no]]),
- [disable_gdaui_gi=yes],[disable_gdaui_gi=no])
+ [
+ if test x$enableval = xyes
+ then
+ disable_gdaui_gi=no
+ else
+ disable_gdaui_gi=yes
+ fi
+ ],[
+ disable_gdaui_gi=no
+ ])
if test x$found_introspection != xyes
then
++++++ libgda-no-libgee.patch ++++++
>From f535606c75f5fc6111fc09fc83b5d75f2c9a4a97 Mon Sep 17 00:00:00 2001
From: Daniel Espinosa Ortiz <esodan(a)gmail.com>
Date: Fri, 8 Feb 2019 13:28:53 -0600
Subject: [PATCH] Removed unused libgee dependency
Fix issue #159
---
configure.ac | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
Index: libgda-5.2.8/configure.ac
===================================================================
--- libgda-5.2.8.orig/configure.ac
+++ libgda-5.2.8/configure.ac
@@ -529,17 +529,6 @@ fi
AM_CONDITIONAL(ENABLE_GDAUI_VALA, test x$disable_gdaui_vala != xyes)
-dnl Check for libgee
-found_gee="xyes"
-GEE_REQUIRED="0.8.0"
-PKG_CHECK_MODULES(GEE, gee-0.8 >= $GEE_REQUIRED,[],found_gee=no)
-AC_SUBST(GEE_CFLAGS)
-AC_SUBST(GEE_LIBS)
-
-if test "x$disable_vala_ext" != "xyes" -a "x$found_gee" = "xno"
-then
- AC_MSG_ERROR([Vala Extensions (Utility GObject clases written in Vala) is requested but GEE library development is not present])
-fi
dnl ******************************
dnl Checks for libcrypto
++++++ libgda-no-pg_config.patch ++++++
Index: libgda-5.2.8/m4/postgresql.m4
===================================================================
--- libgda-5.2.8.orig/m4/postgresql.m4
+++ libgda-5.2.8/m4/postgresql.m4
@@ -1,40 +1,25 @@
dnl -*- mode: autoconf -*-
-dnl Copyright 2010 Vivien Malerba
+dnl Copyright 2019 Dominique Leuenberger
dnl
dnl SYNOPSIS
dnl
dnl POSTGRES_CHECK([libdirname])
dnl
-dnl [libdirname]: defaults to "lib". Can be overridden by the --with-postgres-libdir-name option
+dnl [libdirname]: IGNORED: I was simply too lazy to rewrite all of it
dnl
dnl DESCRIPTION
dnl
-dnl This macro tries to find the PostgreSQL libraries and header files
+dnl This macro tries to find the PostgreSQL using pkg-config libpq
dnl
dnl It defines two options:
-dnl --with-postgres=yes/no/<directory>
-dnl --with-postgres-libdir-name=<dir. name>
+dnl --with-postgres=yes/no
dnl
-dnl If the 1st option is "yes" then the macro tries to use pg_config to locate
-dnl the PostgreSQL package, and if it fails, it tries in several well known directories
+dnl If the 1st option is "yes" then the macro tries to use pgk-config to locate
+dnl the PostgreSQL package
dnl
dnl If the 1st option is "no" then the macro does not attempt at locating the
dnl postgresql package
dnl
-dnl If the 1st option is a directory name, then the macro tries to locate the postgresql package
-dnl in the specified directory.
-dnl
-dnl If the macro has to try to locate the postgresql package in one or more directories, it will
-dnl try to locate the header files in $dir/include and the library files in $dir/lib, unless
-dnl the second option is used to specify a directory name to be used instead of "lib" (for
-dnl example lib64).
-dnl
-dnl USED VARIABLES
-dnl
-dnl $linklibext: contains the library suffix (like ".so"). If not specified ".so" is used.
-dnl $platform_win32: contains "yes" on Windows platforms. If not specified, assumes "no"
-dnl
-dnl
dnl DEFINED VARIABLES
dnl
dnl This macro always calls:
@@ -61,122 +46,14 @@ m4_define([_POSTGRES_CHECK_INTERNAL],
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
- pg_loclibdir=$1
- if test "x$pg_loclibdir" = x
- then
- if test "x$platform_win32" = xyes
- then
- pg_loclibdir=bin
- else
- pg_loclibdir=lib
- fi
- fi
-
- # determine if PostgreSQL should be searched for
- # and use pg_config if the "yes" option is used
- postgres_found=no
- try_postgres=true
- pkgpostgres=no
- POSTGRES_LIBS=""
- postgres_test_dir=""
- AC_ARG_WITH(postgres,
- AS_HELP_STRING([--with-postgres[=@<:@yes/no/<directory>@:>@]],
- [Locate PostgreSQL files]),[
- if test $withval = no
- then
- try_postgres=false
- elif test $withval != yes
- then
- postgres_test_dir=$withval
- fi])
- AC_ARG_WITH(postgres-libdir-name,
- AS_HELP_STRING([--with-postgres-libdir-name[=@<:@<dir. name>@:>@]],
- [Locate PostgreSQL library file, related to the PostgreSQL prefix specified from --with-postgres]),
- [pg_loclibdir=$withval])
+ AC_ARG_WITH([postgres], AS_HELP_STRING([--with-postgres], [Build with the GTK+ interface]))
# try with the default available pg_config
- if test $try_postgres = true -a "x$postgres_test_dir" = x
- then
- AC_PATH_PROGS(PG_CONFIG, pg_config)
- if test "x$PG_CONFIG" != x
- then
- pkgpostgres=yes
- POSTGRES_CFLAGS="-I`$PG_CONFIG --includedir`"
- POSTGRES_LIBS="-L`$PG_CONFIG --libdir` -lpq"
- else
- postgres_test_dir="/usr /usr/local /opt/gnome"
- fi
- fi
-
- # try to locate pg_config in places in $postgres_test_dir
- if test $try_postgres = true
- then
- if test $pkgpostgres = no
- then
- if test "x$linklibext" = x
- then
- postgres_libext=".so"
- else
- postgres_libext=".dll"
- fi
- if test $platform_win32 = yes
- then
- for d in $postgres_test_dir
- do
- AC_MSG_CHECKING([checking for PostgreSQL files in $d])
- echo "looking for $d/include/libpq-fe.h -a -f $d/$pg_loclibdir/libpq$postgres_libext"
- if test -a $d/include/libpq-fe.h -a -f $d/$pg_loclibdir/libpq$postgres_libext
- then
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -I$d/include"
- save_LIBS="$LIBS"
- LIBS="$LIBS -L$d/$pg_loclibdir -lpq"
- AC_LINK_IFELSE([AC_LANG_SOURCE([
-#include <libpq-fe.h>
-int main() {
- printf("%p", PQconnectdb);
- return 0;
-}
-])],
- postgres_found=yes)
- CFLAGS="$save_CFLAGS"
- LIBS="$save_LIBS"
- if test "x$postgres_found" = xyes
- then
- AC_MSG_RESULT([found])
- POSTGRES_CFLAGS=-I$d/include
- POSTGRES_LIBS="-L$d/$pg_loclibdir -lpq"
- break
- fi
- AC_MSG_RESULT([files found but are not useable])
- else
- AC_MSG_RESULT([not found])
- fi
- done
- else
- for d in $postgres_test_dir
- do
- AC_MSG_NOTICE([checking for pg_config tool in $d])
- AC_PATH_PROGS(PG_CONFIG, pg_config,,[$d/bin])
- if test "x$PG_CONFIG" != x
- then
- pkgpostgres=yes
- POSTGRES_CFLAGS="-I`$PG_CONFIG --includedir`"
- POSTGRES_LIBS="-L`$PG_CONFIG --libdir` -lpq"
- break;
- fi
- done
- fi
- fi
- if test "x$POSTGRES_LIBS" = x
- then
- AC_MSG_NOTICE([POSTGRESQL backend not used])
- else
- postgres_found=yes
- fi
- fi
+ AS_IF([test "x$with_postgres" = "xyes"], [
+ PKG_CHECK_MODULES([POSTGRES], [libpq], postgres_found=true, postgres_found=false)
+ ])
- AM_CONDITIONAL(POSTGRES,[test "$postgres_found" = "yes"])
+ AM_CONDITIONAL(POSTGRES,[test "$postgres_found" = "true"])
AC_SUBST(POSTGRES_LIBS)
AC_SUBST(POSTGRES_CFLAGS)
])
1
0
Hello community,
here is the log from the commit of package python-zaqarclient for openSUSE:Factory checked in at 2019-05-03 22:43:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zaqarclient (Old)
and /work/SRC/openSUSE:Factory/.python-zaqarclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-zaqarclient"
Fri May 3 22:43:34 2019 rev:9 rq:693226 version:1.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-zaqarclient/python-zaqarclient.changes 2018-09-07 15:39:44.770514112 +0200
+++ /work/SRC/openSUSE:Factory/.python-zaqarclient.new.5148/python-zaqarclient.changes 2019-05-03 22:43:35.679389019 +0200
@@ -1,0 +2,20 @@
+Thu Apr 11 12:11:34 UTC 2019 - Thomas Bechtold <tbechtold(a)suse.com>
+
+- Switch to singlespec
+
+-------------------------------------------------------------------
+Mon Apr 8 12:36:49 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.11.0
+ - Import zaqarclient-dsvm-functional job
+ - Comply with Python PTI
+ - Remove PyPI downloads
+ - Replace os-client-config to openstacksdk
+ - Update reno for stable/rocky
+ - Properly pass the CA to requests
+ - Update releasenotes index for Rocky
+ - switch documentation job to new PTI
+ - add python 3.6 unit test job
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
python-zaqarclient-1.10.0.tar.gz
New:
----
python-zaqarclient-1.11.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-zaqarclient.spec ++++++
--- /var/tmp/diff_new_pack.v67M7Q/_old 2019-05-03 22:43:36.387390509 +0200
+++ /var/tmp/diff_new_pack.v67M7Q/_new 2019-05-03 22:43:36.391390518 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-zaqarclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,40 +12,57 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
-%global sname zaqarclient
Name: python-zaqarclient
-Version: 1.10.0
+Version: 1.11.0
Release: 0
Summary: Client Library for OpenStack Zaqar Queueing API
License: Apache-2.0
Group: Development/Languages/Python
-URL: https://launchpad.net/%{sname}
+URL: https://launchpad.net/python-zaqarclient
Source0: https://files.pythonhosted.org/packages/source/p/%{name}/%{name}-%{version}…
BuildRequires: openstack-macros
-BuildRequires: python-ddt
-BuildRequires: python-devel
-BuildRequires: python-fixtures
-BuildRequires: python-jsonschema >= 2.6.0
-BuildRequires: python-keystoneauth1 >= 3.4.0
-BuildRequires: python-mock
-BuildRequires: python-nose
-BuildRequires: python-nose-exclude
-BuildRequires: python-os-client-config
-BuildRequires: python-osc-lib >= 1.8.0
-BuildRequires: python-oslo.i18n >= 3.15.3
-BuildRequires: python-oslo.log >= 3.36.0
-BuildRequires: python-pbr >= 2.0.0
-BuildRequires: python-python-subunit
-BuildRequires: python-requests >= 2.14.2
-BuildRequires: python-requests-mock
-BuildRequires: python-setuptools
-BuildRequires: python-testrepository
-BuildRequires: python-testscenarios
-BuildRequires: python-testtools
+BuildRequires: python2-ddt
+BuildRequires: python2-fixtures
+BuildRequires: python2-jsonschema >= 2.6.0
+BuildRequires: python2-keystoneauth1 >= 3.4.0
+BuildRequires: python2-mock
+BuildRequires: python2-nose
+BuildRequires: python2-nose-exclude
+BuildRequires: python2-os-client-config
+BuildRequires: python2-osc-lib >= 1.8.0
+BuildRequires: python2-oslo.i18n >= 3.15.3
+BuildRequires: python2-oslo.log >= 3.36.0
+BuildRequires: python2-pbr >= 2.0.0
+BuildRequires: python2-python-subunit
+BuildRequires: python2-requests >= 2.14.2
+BuildRequires: python2-requests-mock
+BuildRequires: python2-setuptools
+BuildRequires: python2-testrepository
+BuildRequires: python2-testscenarios
+BuildRequires: python2-testtools
+BuildRequires: python3-ddt
+BuildRequires: python3-fixtures
+BuildRequires: python3-jsonschema >= 2.6.0
+BuildRequires: python3-keystoneauth1 >= 3.4.0
+BuildRequires: python3-mock
+BuildRequires: python3-nose
+BuildRequires: python3-nose-exclude
+BuildRequires: python3-os-client-config
+BuildRequires: python3-osc-lib >= 1.8.0
+BuildRequires: python3-oslo.i18n >= 3.15.3
+BuildRequires: python3-oslo.log >= 3.36.0
+BuildRequires: python3-pbr >= 2.0.0
+BuildRequires: python3-python-subunit
+BuildRequires: python3-requests >= 2.14.2
+BuildRequires: python3-requests-mock
+BuildRequires: python3-setuptools
+BuildRequires: python3-testrepository
+BuildRequires: python3-testscenarios
+BuildRequires: python3-testtools
Requires: python-jsonschema >= 2.6.0
Requires: python-keystoneauth1 >= 3.4.0
Requires: python-osc-lib >= 1.8.0
@@ -57,44 +74,46 @@
Requires: python-six >= 1.10.0
Requires: python-stevedore >= 1.20.0
BuildArch: noarch
+%python_subpackages
%description
Python client to Zaqar Queueing API.
-%package doc
+%package -n python-zaqarclient-doc
Summary: Documentation for OpenStack Zaqar Queueing API
Group: Documentation/HTML
BuildRequires: python-Sphinx
BuildRequires: python-openstackdocstheme
-%description doc
+%description -n python-zaqarclient-doc
Documentation for the client library for interacting with Openstack
Zaqar Queueing API.
%prep
-%autosetup -n %{name}-%{version}
+%autosetup -p1 -n python-zaqarclient-1.11.0
%py_req_cleanup
sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
-%py2_build
+%python_build
# Build HTML docs and man page
PBR_VERSION=%{version} sphinx-build -b html doc/source doc/build/html
+rm -r doc/build/html/.{doctrees,buildinfo}
%install
-%py2_install
+%python_install
%check
PYTHONPATH=. nosetests
-%files
+%files %{python_files}
%doc README.rst ChangeLog examples
%license LICENSE
-%{python2_sitelib}/%{sname}
-%{python2_sitelib}/python_zaqarclient-*-py?.?.egg-info
+%{python_sitelib}/zaqarclient
+%{python_sitelib}/python_zaqarclient-*-py?.?.egg-info
-%files doc
+%files -n python-zaqarclient-doc
%doc doc/build/html
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.v67M7Q/_old 2019-05-03 22:43:36.411390560 +0200
+++ /var/tmp/diff_new_pack.v67M7Q/_new 2019-05-03 22:43:36.411390560 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-zaqarclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-zaqarclient/stable/rocky…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-zaqarclient/stable/stein…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-zaqarclient</param>
</service>
++++++ python-zaqarclient-1.10.0.tar.gz -> python-zaqarclient-1.11.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/.stestr.conf new/python-zaqarclient-1.11.0/.stestr.conf
--- old/python-zaqarclient-1.10.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/python-zaqarclient-1.11.0/.stestr.conf 2018-10-24 17:53:41.000000000 +0200
@@ -0,0 +1,4 @@
+[DEFAULT]
+test_path=${OS_TEST_PATH:-./tests/}
+top_dir=./
+group_regex=([^\.]+\.)+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/.zuul.yaml new/python-zaqarclient-1.11.0/.zuul.yaml
--- old/python-zaqarclient-1.10.0/.zuul.yaml 2018-07-23 17:52:57.000000000 +0200
+++ new/python-zaqarclient-1.11.0/.zuul.yaml 2018-10-24 17:53:41.000000000 +0200
@@ -1,7 +1,29 @@
+- job:
+ name: python-zaqarclient-functional
+ parent: legacy-dsvm-base
+ run: playbooks/zaqarclient-dsvm-functional/run.yaml
+ post-run: playbooks/zaqarclient-dsvm-functional/post.yaml
+ timeout: 6000
+ required-projects:
+ - openstack-infra/devstack-gate
+ - openstack/python-zaqarclient
+ - openstack/zaqar
+ - openstack/zaqar-tempest-plugin
+ - openstack/zaqar-ui
+
- project:
+ templates:
+ - check-requirements
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstackclient-plugin-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
check:
jobs:
- - openstack-tox-lower-constraints
+ - python-zaqarclient-functional
gate:
jobs:
- - openstack-tox-lower-constraints
+ - python-zaqarclient-functional
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/AUTHORS new/python-zaqarclient-1.11.0/AUTHORS
--- old/python-zaqarclient-1.10.0/AUTHORS 2018-07-23 17:56:42.000000000 +0200
+++ new/python-zaqarclient-1.11.0/AUTHORS 2018-10-24 17:55:39.000000000 +0200
@@ -1,3 +1,4 @@
+98k <18552437190(a)163.com>
Alejandro Cabrera <alejandro.cabrera(a)rackspace.com>
Alessio Ababilov <aababilo(a)yahoo-inc.com>
Alessio Ababilov <aababilov(a)griddynamics.com>
@@ -12,6 +13,7 @@
Caleb Groom <caleb(a)calebgroom.com>
Cao Xuan Hoang <hoangcx(a)vn.fujitsu.com>
Chad Lung <chad.lung(a)gmail.com>
+Chen <dstbtgagt(a)foxmail.com>
Christian Berendt <berendt(a)b1-systems.de>
Dan Prince <dprince(a)redhat.com>
Dirk Mueller <dirk(a)dmllr.de>
@@ -39,6 +41,7 @@
Oleksii Chuprykov <ochuprykov(a)mirantis.com>
Ondřej Nový <ondrej.novy(a)firma.seznam.cz>
OpenStack Release Bot <infra-root(a)openstack.org>
+Pavlo Shchelokovskyy <shchelokovskyy(a)gmail.com>
Rajiv Kumar <rajiv.kumar(a)nectechnologies.in>
Robert Collins <rbtcollins(a)hp.com>
Rui Chen <chenrui.momo(a)gmail.com>
@@ -67,7 +70,6 @@
Yuuichi Fujioka <fujioka-yuuichi(a)zx.mxh.nes.nec.co.jp>
ZhaoBo <zhaobo6(a)huawei.com>
Zhi Yan Liu <zhiyanl(a)cn.ibm.com>
-Zuul <zuul(a)review.openstack.org>
avnish <avnish.pal(a)nectechnologies.in>
caishan <caishan1993(a)foxmail.com>
daohanli <dhli5759(a)fiberhome.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/ChangeLog new/python-zaqarclient-1.11.0/ChangeLog
--- old/python-zaqarclient-1.10.0/ChangeLog 2018-07-23 17:56:42.000000000 +0200
+++ new/python-zaqarclient-1.11.0/ChangeLog 2018-10-24 17:55:39.000000000 +0200
@@ -1,10 +1,24 @@
CHANGES
=======
+1.11.0
+------
+
+* Properly pass the CA to requests
+* Import zaqarclient-dsvm-functional job
+* Remove PyPI downloads
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Replace os-client-config to openstacksdk
+* Update reno for stable/rocky
+* Update releasenotes index for Rocky
+
1.10.0
------
* fix tox python3 overrides
+* Comply with Python PTI
* Fix doc CI failure
* Trivial: Update pypi url to new url
* Follow the new PTI for document build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/PKG-INFO new/python-zaqarclient-1.11.0/PKG-INFO
--- old/python-zaqarclient-1.10.0/PKG-INFO 2018-07-23 17:56:42.000000000 +0200
+++ new/python-zaqarclient-1.11.0/PKG-INFO 2018-10-24 17:55:39.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-zaqarclient
-Version: 1.10.0
+Version: 1.11.0
Summary: Client Library for OpenStack Zaqar Messaging API
Home-page: https://docs.openstack.org/python-zaqarclient/latest/
Author: OpenStack
@@ -22,10 +22,6 @@
:target: https://pypi.org/project/python-zaqarclient/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/python-zaqarclient.svg
- :target: https://pypi.org/project/python-zaqarclient/
- :alt: Downloads
-
:Wiki: `Zaqar Wiki`_
:Launchpad: `Zaqar Launchpad`_
:Review: `Code Review`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/README.rst new/python-zaqarclient-1.11.0/README.rst
--- old/python-zaqarclient-1.10.0/README.rst 2018-07-23 17:52:57.000000000 +0200
+++ new/python-zaqarclient-1.11.0/README.rst 2018-10-24 17:53:41.000000000 +0200
@@ -14,10 +14,6 @@
:target: https://pypi.org/project/python-zaqarclient/
:alt: Latest Version
-.. image:: https://img.shields.io/pypi/dm/python-zaqarclient.svg
- :target: https://pypi.org/project/python-zaqarclient/
- :alt: Downloads
-
:Wiki: `Zaqar Wiki`_
:Launchpad: `Zaqar Launchpad`_
:Review: `Code Review`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/lower-constraints.txt new/python-zaqarclient-1.11.0/lower-constraints.txt
--- old/python-zaqarclient-1.10.0/lower-constraints.txt 2018-07-23 17:52:57.000000000 +0200
+++ new/python-zaqarclient-1.11.0/lower-constraints.txt 2018-10-24 17:53:42.000000000 +0200
@@ -33,9 +33,6 @@
munch==2.1.0
netaddr==0.7.18
netifaces==0.10.4
-nose==1.3.7
-nose-exclude==0.3.0
-openstack.nose-plugin==0.7
openstackdocstheme==1.18.1
openstacksdk==0.11.2
os-client-config==1.28.0
@@ -62,7 +59,7 @@
PyYAML==3.12
reno==2.5.0
requests==2.14.2
-requests-mock==1.1.0
+requests-mock==1.2.0
requestsexceptions==1.2.0
rfc3986==0.3.1
simplejson==3.5.1
@@ -70,9 +67,9 @@
snowballstemmer==1.2.1
Sphinx==1.6.5
sphinxcontrib-websupport==1.0.1
+stestr==1.0.0
stevedore==1.20.0
termcolor==1.1.0
-testrepository==0.0.18
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/playbooks/zaqarclient-dsvm-functional/post.yaml new/python-zaqarclient-1.11.0/playbooks/zaqarclient-dsvm-functional/post.yaml
--- old/python-zaqarclient-1.10.0/playbooks/zaqarclient-dsvm-functional/post.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-zaqarclient-1.11.0/playbooks/zaqarclient-dsvm-functional/post.yaml 2018-10-24 17:53:42.000000000 +0200
@@ -0,0 +1,80 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=**/*nose_results.html
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=**/*testr_results.html.gz
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/.testrepository/tmp*
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=**/*testrepository.subunit.gz
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}/tox'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/.tox/*/log/*
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/playbooks/zaqarclient-dsvm-functional/run.yaml new/python-zaqarclient-1.11.0/playbooks/zaqarclient-dsvm-functional/run.yaml
--- old/python-zaqarclient-1.10.0/playbooks/zaqarclient-dsvm-functional/run.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-zaqarclient-1.11.0/playbooks/zaqarclient-dsvm-functional/run.yaml 2018-10-24 17:53:42.000000000 +0200
@@ -0,0 +1,74 @@
+- hosts: all
+ name: Autoconverted job legacy-zaqarclient-dsvm-functional from old job gate-zaqarclient-dsvm-functional-ubuntu-xenial
+ tasks:
+
+ - name: Ensure legacy workspace directory
+ file:
+ path: '{{ ansible_user_dir }}/workspace'
+ state: directory
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat > clonemap.yaml << EOF
+ clonemap:
+ - name: openstack-infra/devstack-gate
+ dest: devstack-gate
+ EOF
+ /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
+ git://git.openstack.org \
+ openstack-infra/devstack-gate
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat << 'EOF' >>"/tmp/dg-local.conf"
+ [[local|localrc]]
+ enable_plugin zaqar git://git.openstack.org/openstack/zaqar
+ # Enable Zaqar Tempest Plugin
+ TEMPEST_PLUGINS='/opt/stack/new/zaqar-tempest-plugin'
+
+ EOF
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ export PROJECTS="openstack/python-zaqarclient $PROJECTS"
+ export PROJECTS="openstack/zaqar-ui $PROJECTS"
+ export PYTHONUNBUFFERED=true
+ export FUNCTEST_TIMEOUT=30
+ export DEVSTACK_GATE_ZAQAR=1
+ export DEVSTACK_GATE_TEMPEST=0
+ export DEVSTACK_GATE_EXERCISES=0
+ export DEVSTACK_GATE_INSTALL_TESTONLY=1
+ export ENABLED_SERVICES=mysql,key,tempest
+ export DEVSTACK_GATE_TEMPEST_REGEX="zaqar_tempest_plugin.tests"
+ export BRANCH_OVERRIDE=default
+
+ if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+ export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+ fi
+
+ export PROJECTS="openstack/zaqar-tempest-plugin $PROJECTS"
+ export ZAQARCLIENT_AUTH_FUNCTIONAL=1
+ export ZAQARCLIENT_TEST_FUNCTIONAL=1
+ function post_test_hook {
+ cd /opt/stack/new/python-zaqarclient
+ nosetests tests.functional
+ }
+
+ export -f post_test_hook
+ cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
+ ./safe-devstack-vm-gate-wrap.sh
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/python_zaqarclient.egg-info/PKG-INFO new/python-zaqarclient-1.11.0/python_zaqarclient.egg-info/PKG-INFO
--- old/python-zaqarclient-1.10.0/python_zaqarclient.egg-info/PKG-INFO 2018-07-23 17:56:42.000000000 +0200
+++ new/python-zaqarclient-1.11.0/python_zaqarclient.egg-info/PKG-INFO 2018-10-24 17:55:39.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-zaqarclient
-Version: 1.10.0
+Version: 1.11.0
Summary: Client Library for OpenStack Zaqar Messaging API
Home-page: https://docs.openstack.org/python-zaqarclient/latest/
Author: OpenStack
@@ -22,10 +22,6 @@
:target: https://pypi.org/project/python-zaqarclient/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/python-zaqarclient.svg
- :target: https://pypi.org/project/python-zaqarclient/
- :alt: Downloads
-
:Wiki: `Zaqar Wiki`_
:Launchpad: `Zaqar Launchpad`_
:Review: `Code Review`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/python_zaqarclient.egg-info/SOURCES.txt new/python-zaqarclient-1.11.0/python_zaqarclient.egg-info/SOURCES.txt
--- old/python-zaqarclient-1.10.0/python_zaqarclient.egg-info/SOURCES.txt 2018-07-23 17:56:42.000000000 +0200
+++ new/python-zaqarclient-1.11.0/python_zaqarclient.egg-info/SOURCES.txt 2018-10-24 17:55:39.000000000 +0200
@@ -1,3 +1,4 @@
+.stestr.conf
.zuul.yaml
AUTHORS
ChangeLog
@@ -29,6 +30,8 @@
examples/management.py
examples/signed_url_auth.py
examples/simple.py
+playbooks/zaqarclient-dsvm-functional/post.yaml
+playbooks/zaqarclient-dsvm-functional/run.yaml
python_zaqarclient.egg-info/PKG-INFO
python_zaqarclient.egg-info/SOURCES.txt
python_zaqarclient.egg-info/dependency_links.txt
@@ -52,6 +55,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
tests/__init__.py
tests/functional/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/python_zaqarclient.egg-info/pbr.json new/python-zaqarclient-1.11.0/python_zaqarclient.egg-info/pbr.json
--- old/python-zaqarclient-1.10.0/python_zaqarclient.egg-info/pbr.json 2018-07-23 17:56:42.000000000 +0200
+++ new/python-zaqarclient-1.11.0/python_zaqarclient.egg-info/pbr.json 2018-10-24 17:55:39.000000000 +0200
@@ -1 +1 @@
-{"git_version": "1a50023", "is_release": true}
\ No newline at end of file
+{"git_version": "13e90a0", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/releasenotes/source/index.rst new/python-zaqarclient-1.11.0/releasenotes/source/index.rst
--- old/python-zaqarclient-1.10.0/releasenotes/source/index.rst 2018-07-23 17:52:57.000000000 +0200
+++ new/python-zaqarclient-1.11.0/releasenotes/source/index.rst 2018-10-24 17:53:42.000000000 +0200
@@ -1,18 +1,12 @@
-.. Zaqar-Client documentation master file, created by
- sphinx-quickstart on Tue Dec 20 11:53:00 2016.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
-Welcome to Zaqar-Client's documentation!
-========================================
-
-Contents
---------
+===========================
+ Zaqar Client Release Notes
+===========================
.. toctree::
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
@@ -26,6 +20,9 @@
================= ===================
OpenStack Release ZaqarClient Release
================= ===================
+Rocky 1.10.0
+Queens 1.9.0
+Pike 1.7.0
Ocata 1.4.0
Newton 1.2.0
================= ===================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/releasenotes/source/rocky.rst new/python-zaqarclient-1.11.0/releasenotes/source/rocky.rst
--- old/python-zaqarclient-1.10.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-zaqarclient-1.11.0/releasenotes/source/rocky.rst 2018-10-24 17:53:42.000000000 +0200
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/test-requirements.txt new/python-zaqarclient-1.11.0/test-requirements.txt
--- old/python-zaqarclient-1.10.0/test-requirements.txt 2018-07-23 17:52:57.000000000 +0200
+++ new/python-zaqarclient-1.11.0/test-requirements.txt 2018-10-24 17:53:42.000000000 +0200
@@ -7,13 +7,10 @@
# Unit testing
fixtures>=3.0.0 # Apache-2.0/BSD
mock>=2.0.0 # BSD
-testrepository>=0.0.18 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
# Test runner
-nose>=1.3.7 # LGPL
-nose-exclude>=0.3.0 # LGPL
-openstack.nose-plugin>=0.7 # Apache-2.0
+stestr>=1.0.0 # Apache-2.0
# Metrics and style
coverage!=4.4,>=4.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/tests/unit/transport/test_http.py new/python-zaqarclient-1.11.0/tests/unit/transport/test_http.py
--- old/python-zaqarclient-1.10.0/tests/unit/transport/test_http.py 2018-07-23 17:52:57.000000000 +0200
+++ new/python-zaqarclient-1.11.0/tests/unit/transport/test_http.py 2018-10-24 17:53:42.000000000 +0200
@@ -63,8 +63,7 @@
params=final_params,
headers=final_headers,
data=None,
- verify=True,
- cert=None)
+ verify=True)
@mock.patch.object(prequest.packages.urllib3.response.HTTPResponse,
'stream')
@@ -91,8 +90,7 @@
params=params,
headers=final_headers,
data=None,
- verify=True,
- cert=None)
+ verify=True)
@mock.patch.object(prequest.packages.urllib3.response.HTTPResponse,
'stream')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/tox.ini new/python-zaqarclient-1.11.0/tox.ini
--- old/python-zaqarclient-1.10.0/tox.ini 2018-07-23 17:52:57.000000000 +0200
+++ new/python-zaqarclient-1.11.0/tox.ini 2018-10-24 17:53:42.000000000 +0200
@@ -8,19 +8,15 @@
# Customize pip command, add -U to force updates.
install_command = pip install {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
- NOSE_WITH_OPENSTACK=1
- NOSE_OPENSTACK_COLOR=1
- NOSE_OPENSTACK_RED=0.05
- NOSE_OPENSTACK_YELLOW=0.025
- NOSE_OPENSTACK_SHOW_ELAPSED=1
- NOSE_OPENSTACK_STDOUT=1
+ OS_STDOUT_CAPTURE=1
+ OS_STDERR_CAPTURE=1
+ OS_TEST_TIMEOUT=60
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = find . -type f -name "*.pyc" -delete
- nosetests {posargs}
-
+ stestr run {posargs}
whitelist_externals = find
[tox:jenkins]
@@ -33,7 +29,12 @@
[testenv:cover]
basepython = python3
setenv = {[testenv]setenv}
- NOSE_WITH_COVERAGE=1
+ PYTHON=coverage run --source zaqarclient --parallel-mode
+commands =
+ stestr -q run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
[testenv:venv]
basepython = python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/zaqarclient/tests/base.py new/python-zaqarclient-1.11.0/zaqarclient/tests/base.py
--- old/python-zaqarclient-1.10.0/zaqarclient/tests/base.py 2018-07-23 17:52:57.000000000 +0200
+++ new/python-zaqarclient-1.11.0/zaqarclient/tests/base.py 2018-10-24 17:53:42.000000000 +0200
@@ -16,7 +16,7 @@
import os
import fixtures
-import os_client_config
+import openstack.config
from six.moves import urllib_parse
import testtools
@@ -65,7 +65,7 @@
has admin privs. This function will default to getting the
devstack-admin cloud as that is the current expected behavior.
"""
- os_cfg = os_client_config.OpenStackConfig()
+ os_cfg = openstack.config.OpenStackConfig()
try:
found = os_cfg.get_one_cloud(cloud=cloud)
except Exception:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-zaqarclient-1.10.0/zaqarclient/transport/http.py new/python-zaqarclient-1.11.0/zaqarclient/transport/http.py
--- old/python-zaqarclient-1.10.0/zaqarclient/transport/http.py 2018-07-23 17:52:57.000000000 +0200
+++ new/python-zaqarclient-1.11.0/zaqarclient/transport/http.py 2018-10-24 17:53:42.000000000 +0200
@@ -89,13 +89,19 @@
if osprofiler_web:
headers.update(osprofiler_web.get_trace_id_headers())
+ if request.verify:
+ if request.cert:
+ verify = request.cert
+ else:
+ verify = True
+ else:
+ verify = False
resp = self.client.request(method,
url=url,
params=request.params,
headers=headers,
data=request.content,
- verify=request.verify,
- cert=request.cert)
+ verify=verify)
if resp.status_code in self.http_to_zaqar:
kwargs = {}
1
0
Hello community,
here is the log from the commit of package python-oslo.reports for openSUSE:Factory checked in at 2019-05-03 22:43:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.reports (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.reports.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.reports"
Fri May 3 22:43:31 2019 rev:8 rq:692923 version:1.29.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.reports/python-oslo.reports.changes 2018-09-07 15:39:04.434557390 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.reports.new.5148/python-oslo.reports.changes 2019-05-03 22:43:32.623382585 +0200
@@ -1,0 +2,24 @@
+Mon Apr 8 11:33:59 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.29.2
+ - Update hacking version
+ - Update mailinglist from dev to discuss
+ - fix tox python3 overrides
+ - Replace deprecated "auth_uri" by "www_authenticate_uri"
+ - Update unit test to reflect latest oslo.config
+ - Remove the remaining of the removed option
+ - Trivial: Update pypi url to new url
+ - Update reno for stable/rocky
+ - import zuul job settings from project-config
+ - Imported Translations from Zanata
+ - Remove stale pip-missing-reqs and pypy tox tests
+ - Clean up .gitignore references to personal tools
+ - Add release notes link to README
+ - Use template for lower-constraints
+ - add lib-forward-testing-python3 test job
+ - add python 3.6 unit test job
+ - add python 3.7 unit test job
+ - Switch to stestr
+- remove 0001-Update-unit-test-to-reflect-latest-oslo.config.patch (merged)
+
+-------------------------------------------------------------------
Old:
----
0001-Update-unit-test-to-reflect-latest-oslo.config.patch
oslo.reports-1.28.0.tar.gz
New:
----
oslo.reports-1.29.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.reports.spec ++++++
--- /var/tmp/diff_new_pack.31XILg/_old 2019-05-03 22:43:32.999383376 +0200
+++ /var/tmp/diff_new_pack.31XILg/_new 2019-05-03 22:43:32.999383376 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.reports
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,20 +12,19 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.reports
-Version: 1.28.0
+Version: 1.29.2
Release: 0
Summary: OpenStack oslo.reports library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.reports
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.reports/oslo.reports-…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.reports/oslo.reports-…
# https://review.openstack.org/588088
-Patch0: 0001-Update-unit-test-to-reflect-latest-oslo.config.patch
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-Jinja2 >= 2.10
@@ -39,7 +38,7 @@
BuildRequires: python2-pbr >= 2.0.0
BuildRequires: python2-psutil >= 3.2.2
BuildRequires: python2-six >= 1.10.0
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python3-Jinja2 >= 2.10
BuildRequires: python3-devel
BuildRequires: python3-eventlet
@@ -52,7 +51,7 @@
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-psutil >= 3.2.2
BuildRequires: python3-six >= 1.10.0
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
Requires: python-Jinja2 >= 2.10
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.serialization >= 2.18.0
@@ -78,9 +77,8 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n oslo.reports-1.28.0
+%autosetup -p1 -n oslo.reports-1.29.2
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -94,9 +92,7 @@
%{python_install}
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.31XILg/_old 2019-05-03 22:43:33.027383435 +0200
+++ /var/tmp/diff_new_pack.31XILg/_new 2019-05-03 22:43:33.027383435 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.reports.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.reports/stable/rocky/requi…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.reports/stable/stein/requi…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.reports</param>
</service>
++++++ oslo.reports-1.28.0.tar.gz -> oslo.reports-1.29.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/.stestr.conf new/oslo.reports-1.29.2/.stestr.conf
--- old/oslo.reports-1.28.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.reports-1.29.2/.stestr.conf 2019-02-28 19:02:10.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./oslo_reports/tests
+top_path=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/.testr.conf new/oslo.reports-1.29.2/.testr.conf
--- old/oslo.reports-1.28.0/.testr.conf 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ ./oslo_reports $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/.zuul.yaml new/oslo.reports-1.29.2/.zuul.yaml
--- old/oslo.reports-1.28.0/.zuul.yaml 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/.zuul.yaml 2019-02-28 19:02:10.000000000 +0100
@@ -1,7 +1,13 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/AUTHORS new/oslo.reports-1.29.2/AUTHORS
--- old/oslo.reports-1.28.0/AUTHORS 2018-04-17 17:35:53.000000000 +0200
+++ new/oslo.reports-1.29.2/AUTHORS 2019-02-28 19:06:45.000000000 +0100
@@ -25,6 +25,7 @@
Joshua Harlow <jxharlow(a)godaddy.com>
Julien Danjou <julien(a)danjou.info>
Kashyap Chamarthy <kchamart(a)redhat.com>
+Kenneth Giusti <kgiusti(a)gmail.com>
Nikola Dipanov <ndipanov(a)redhat.com>
OpenStack Release Bot <infra-root(a)openstack.org>
Romain Soufflet <romain(a)soufflet.io>
@@ -35,8 +36,9 @@
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Zang MingJie <zealot0630(a)gmail.com>
ZhiQiang Fan <zhiqiang.fan(a)huawei.com>
+ZhijunWei <wzj334965317(a)outlook.com>
+ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
gecong1973 <ge.cong(a)zte.com.cn>
loooosy <syluo5695(a)fiberhome.com>
melissaml <ma.lei(a)99cloud.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/ChangeLog new/oslo.reports-1.29.2/ChangeLog
--- old/oslo.reports-1.28.0/ChangeLog 2018-04-17 17:35:53.000000000 +0200
+++ new/oslo.reports-1.29.2/ChangeLog 2019-02-28 19:06:45.000000000 +0100
@@ -1,6 +1,32 @@
CHANGES
=======
+1.29.2
+------
+
+* add python 3.7 unit test job
+* Update hacking version
+* Use template for lower-constraints
+* Update mailinglist from dev to discuss
+* Clean up .gitignore references to personal tools
+
+1.29.1
+------
+
+* Imported Translations from Zanata
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* Update unit test to reflect latest oslo.config
+* Update reno for stable/rocky
+* Switch to stestr
+* Add release notes link to README
+* fix tox python3 overrides
+* Remove the remaining of the removed option
+* Replace deprecated "auth\_uri" by "www\_authenticate\_uri"
+* Remove stale pip-missing-reqs and pypy tox tests
+* Trivial: Update pypi url to new url
+
1.28.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/HACKING.rst new/oslo.reports-1.29.2/HACKING.rst
--- old/oslo.reports-1.28.0/HACKING.rst 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/HACKING.rst 2019-02-28 19:02:10.000000000 +0100
@@ -1,4 +1,4 @@
oslo.reports Style Commandments
-======================================================
+===============================
Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/PKG-INFO new/oslo.reports-1.29.2/PKG-INFO
--- old/oslo.reports-1.28.0/PKG-INFO 2018-04-17 17:35:54.000000000 +0200
+++ new/oslo.reports-1.29.2/PKG-INFO 2019-02-28 19:06:45.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.reports
-Version: 1.28.0
+Version: 1.29.2
Summary: oslo.reports library
Home-page: https://docs.openstack.org/oslo.reports/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -20,11 +20,11 @@
===================================
.. image:: https://img.shields.io/pypi/v/oslo.reports.svg
- :target: https://pypi.python.org/pypi/oslo.reports/
+ :target: https://pypi.org/project/oslo.reports/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/oslo.reports.svg
- :target: https://pypi.python.org/pypi/oslo.reports/
+ :target: https://pypi.org/project/oslo.reports/
:alt: Downloads
When things go wrong in (production) deployments of OpenStack collecting debug
@@ -66,6 +66,7 @@
* Documentation: https://docs.openstack.org/oslo.reports/latest
* Source: https://git.openstack.org/cgit/openstack/oslo.reports
* Bugs: https://bugs.launchpad.net/oslo.reports
+ * Release notes: https://docs.openstack.org/releasenotes/oslo.reports/
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/README.rst new/oslo.reports-1.29.2/README.rst
--- old/oslo.reports-1.28.0/README.rst 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/README.rst 2019-02-28 19:02:10.000000000 +0100
@@ -12,11 +12,11 @@
===================================
.. image:: https://img.shields.io/pypi/v/oslo.reports.svg
- :target: https://pypi.python.org/pypi/oslo.reports/
+ :target: https://pypi.org/project/oslo.reports/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/oslo.reports.svg
- :target: https://pypi.python.org/pypi/oslo.reports/
+ :target: https://pypi.org/project/oslo.reports/
:alt: Downloads
When things go wrong in (production) deployments of OpenStack collecting debug
@@ -58,3 +58,4 @@
* Documentation: https://docs.openstack.org/oslo.reports/latest
* Source: https://git.openstack.org/cgit/openstack/oslo.reports
* Bugs: https://bugs.launchpad.net/oslo.reports
+* Release notes: https://docs.openstack.org/releasenotes/oslo.reports/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/doc/source/user/report.txt new/oslo.reports-1.29.2/doc/source/user/report.txt
--- old/oslo.reports-1.28.0/doc/source/user/report.txt 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/doc/source/user/report.txt 2019-02-28 19:02:10.000000000 +0100
@@ -317,7 +317,6 @@
nova.api.ec2.cloud:nova.notifications.notify_decorator
nova.compute.api:nova.notifications.notify_decorator
multi_host = False
- multi_instance_display_name_template = %(name)s-%(count)d
my_block_storage_ip = 10.0.0.9
my_ip = 10.0.0.9
network_allocate_retries = 0
@@ -532,7 +531,7 @@
auth_port = 35357
auth_protocol = https
auth_section = None
- auth_uri = http://10.0.0.9:5000
+ www_authenticate_uri = http://10.0.0.9:5000
auth_version = None
cache = None
cafile = /opt/stack/data/ca-bundle.pem
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/lower-constraints.txt new/oslo.reports-1.29.2/lower-constraints.txt
--- old/oslo.reports-1.28.0/lower-constraints.txt 2018-04-17 17:33:16.000000000 +0200
+++ new/oslo.reports-1.29.2/lower-constraints.txt 2019-02-28 19:02:10.000000000 +0100
@@ -53,8 +53,8 @@
snowballstemmer==1.2.1
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
+stestr==2.0.0
stevedore==1.20.0
-testrepository==0.0.18
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/oslo.reports.egg-info/PKG-INFO new/oslo.reports-1.29.2/oslo.reports.egg-info/PKG-INFO
--- old/oslo.reports-1.28.0/oslo.reports.egg-info/PKG-INFO 2018-04-17 17:35:53.000000000 +0200
+++ new/oslo.reports-1.29.2/oslo.reports.egg-info/PKG-INFO 2019-02-28 19:06:45.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.reports
-Version: 1.28.0
+Version: 1.29.2
Summary: oslo.reports library
Home-page: https://docs.openstack.org/oslo.reports/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -20,11 +20,11 @@
===================================
.. image:: https://img.shields.io/pypi/v/oslo.reports.svg
- :target: https://pypi.python.org/pypi/oslo.reports/
+ :target: https://pypi.org/project/oslo.reports/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/oslo.reports.svg
- :target: https://pypi.python.org/pypi/oslo.reports/
+ :target: https://pypi.org/project/oslo.reports/
:alt: Downloads
When things go wrong in (production) deployments of OpenStack collecting debug
@@ -66,6 +66,7 @@
* Documentation: https://docs.openstack.org/oslo.reports/latest
* Source: https://git.openstack.org/cgit/openstack/oslo.reports
* Bugs: https://bugs.launchpad.net/oslo.reports
+ * Release notes: https://docs.openstack.org/releasenotes/oslo.reports/
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/oslo.reports.egg-info/SOURCES.txt new/oslo.reports-1.29.2/oslo.reports.egg-info/SOURCES.txt
--- old/oslo.reports-1.28.0/oslo.reports.egg-info/SOURCES.txt 2018-04-17 17:35:54.000000000 +0200
+++ new/oslo.reports-1.29.2/oslo.reports.egg-info/SOURCES.txt 2019-02-28 19:06:45.000000000 +0100
@@ -1,6 +1,6 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -74,6 +74,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/oslo.reports.egg-info/pbr.json new/oslo.reports-1.29.2/oslo.reports.egg-info/pbr.json
--- old/oslo.reports-1.28.0/oslo.reports.egg-info/pbr.json 2018-04-17 17:35:53.000000000 +0200
+++ new/oslo.reports-1.29.2/oslo.reports.egg-info/pbr.json 2019-02-28 19:06:45.000000000 +0100
@@ -1 +1 @@
-{"git_version": "d743d01", "is_release": true}
\ No newline at end of file
+{"git_version": "9fb5353", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/oslo_reports/opts.py new/oslo.reports-1.29.2/oslo_reports/opts.py
--- old/oslo.reports-1.28.0/oslo_reports/opts.py 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/oslo_reports/opts.py 2019-02-28 19:02:10.000000000 +0100
@@ -10,17 +10,17 @@
# License for the specific language governing permissions and limitations
# under the License.
-__all__ = [
- 'list_opts',
- 'set_defaults',
-]
-
import copy
from oslo_config import cfg
from oslo_reports._i18n import _
+__all__ = [
+ 'list_opts',
+ 'set_defaults',
+]
+
_option_group = 'oslo_reports'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/oslo_reports/tests/test_guru_meditation_report.py new/oslo.reports-1.29.2/oslo_reports/tests/test_guru_meditation_report.py
--- old/oslo.reports-1.28.0/oslo_reports/tests/test_guru_meditation_report.py 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/oslo_reports/tests/test_guru_meditation_report.py 2019-02-28 19:02:10.000000000 +0100
@@ -52,8 +52,8 @@
def skip_body_lines(start_line, report_lines):
curr_line = start_line
- while (len(report_lines[curr_line]) == 0
- or report_lines[curr_line][0] != '='):
+ while (len(report_lines[curr_line]) == 0 or
+ report_lines[curr_line][0] != '='):
curr_line += 1
return curr_line
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/oslo_reports/tests/test_openstack_generators.py new/oslo.reports-1.29.2/oslo_reports/tests/test_openstack_generators.py
--- old/oslo.reports-1.28.0/oslo_reports/tests/test_openstack_generators.py 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/oslo_reports/tests/test_openstack_generators.py 2019-02-28 19:02:10.000000000 +0100
@@ -94,6 +94,16 @@
model = os_cgen.ConfigReportGenerator(conf)()
model.set_current_view_type('text')
+ # oslo.config added a default config_source opt which gets included
+ # in our output, but we also need to support older versions where that
+ # wasn't the case. This logic can be removed once the oslo.config
+ # lower constraint becomes >=6.4.0.
+ config_source_line = ' config_source = \n'
+ try:
+ conf.config_source
+ except cfg.NoSuchOptError:
+ config_source_line = ''
+
target_str = ('\ncheese: \n'
' from_cow = True\n'
' group_secrets = ***\n'
@@ -101,8 +111,9 @@
' sharpness = 1\n'
'\n'
'default: \n'
+ '%s'
' crackers = triscuit\n'
- ' secrets = ***')
+ ' secrets = ***') % config_source_line
self.assertEqual(target_str, six.text_type(model))
def test_package_report_generator(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/oslo_reports/views/xml/generic.py new/oslo.reports-1.29.2/oslo_reports/views/xml/generic.py
--- old/oslo.reports-1.28.0/oslo_reports/views/xml/generic.py 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/oslo_reports/views/xml/generic.py 2019-02-28 19:02:10.000000000 +0100
@@ -68,8 +68,8 @@
if isinstance(rootmodel, col.Mapping):
for key in sorted(rootmodel):
res.append(serialize(rootmodel[key], key))
- elif (isinstance(rootmodel, col.Sequence)
- and not isinstance(rootmodel, six.string_types)):
+ elif (isinstance(rootmodel, col.Sequence) and
+ not isinstance(rootmodel, six.string_types)):
for val in sorted(rootmodel, key=str):
res.append(serialize(val, 'item'))
elif ET.iselement(rootmodel):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/releasenotes/source/index.rst new/oslo.reports-1.29.2/releasenotes/source/index.rst
--- old/oslo.reports-1.28.0/releasenotes/source/index.rst 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/releasenotes/source/index.rst 2019-02-28 19:02:10.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.reports-1.29.2/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/oslo.reports-1.28.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-04-17 17:32:59.000000000 +0200
+++ new/oslo.reports-1.29.2/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-02-28 19:02:10.000000000 +0100
@@ -2,13 +2,13 @@
# Andi Chandler <andi(a)gowling.com>, 2018. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.reports Release Notes\n"
+"Project-Id-Version: oslo.reports\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-29 04:42+0000\n"
+"POT-Creation-Date: 2018-08-15 10:32+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-01-27 01:26+0000\n"
+"PO-Revision-Date: 2018-08-08 07:57+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -33,6 +33,9 @@
msgid "Queens Series Release Notes"
msgstr "Queens Series Release Notes"
+msgid "Rocky Series Release Notes"
+msgstr "Rocky Series Release Notes"
+
msgid "Unreleased Release Notes"
msgstr "Unreleased Release Notes"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/releasenotes/source/rocky.rst new/oslo.reports-1.29.2/releasenotes/source/rocky.rst
--- old/oslo.reports-1.28.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.reports-1.29.2/releasenotes/source/rocky.rst 2019-02-28 19:02:10.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/setup.cfg new/oslo.reports-1.29.2/setup.cfg
--- old/oslo.reports-1.28.0/setup.cfg 2018-04-17 17:35:54.000000000 +0200
+++ new/oslo.reports-1.29.2/setup.cfg 2019-02-28 19:06:45.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.reports/latest
classifier =
Environment :: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/test-requirements.txt new/oslo.reports-1.29.2/test-requirements.txt
--- old/oslo.reports-1.28.0/test-requirements.txt 2018-04-17 17:33:16.000000000 +0200
+++ new/oslo.reports-1.29.2/test-requirements.txt 2019-02-28 19:02:10.000000000 +0100
@@ -2,8 +2,9 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
+stestr>=2.0.0 # Apache-2.0
# These are needed for docs generation
openstackdocstheme>=1.18.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.reports-1.28.0/tox.ini new/oslo.reports-1.29.2/tox.ini
--- old/oslo.reports-1.28.0/tox.ini 2018-04-17 17:33:16.000000000 +0200
+++ new/oslo.reports-1.29.2/tox.ini 2019-02-28 19:02:10.000000000 +0100
@@ -1,20 +1,20 @@
[tox]
minversion = 2.0
-envlist = py35,py27,pypy,pep8
+envlist = py35,py27,pep8
[testenv]
-basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
install_command = pip install {opts} {packages}
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
[testenv:py27]
basepython = python2.7
[testenv:pep8]
+basepython = python3
deps =
-r{toxinidir}/test-requirements.txt
commands =
@@ -23,12 +23,15 @@
bandit -r oslo_reports tests -n5 --skip B314,B405
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:docs]
+basepython = python3
commands = python setup.py build_sphinx
[testenv:cover]
+basepython = python3
commands = python setup.py test --coverage --coverage-package-name=oslo_reports --testr-args='{posargs}'
[flake8]
@@ -41,18 +44,12 @@
[hacking]
import_exceptions =
-[testenv:pip-missing-reqs]
-# do not install test-requirements as that will pollute the virtualenv for
-# determining missing packages
-# this also means that pip-missing-reqs must be installed separately, outside
-# of the requirements.txt files
-deps = pip_missing_reqs
-commands = pip-missing-reqs -d --ignore-module=oslo_reports* --ignore-module=pkg_resources --ignore-file=oslo_reports/test.py --ignore-file=oslo_reports/tests/* oslo_reports
-
[testenv:releasenotes]
+basepython = python3
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:lower-constraints]
+basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
1
0
Hello community,
here is the log from the commit of package python-yaql for openSUSE:Factory checked in at 2019-05-03 22:43:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-yaql (Old)
and /work/SRC/openSUSE:Factory/.python-yaql.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-yaql"
Fri May 3 22:43:28 2019 rev:8 rq:692884 version:1.1.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-yaql/python-yaql.changes 2018-09-07 15:39:42.806516219 +0200
+++ /work/SRC/openSUSE:Factory/.python-yaql.new.5148/python-yaql.changes 2019-05-03 22:43:29.731376496 +0200
@@ -1,0 +2,5 @@
+Mon Apr 8 13:50:09 UTC 2019 - Dirk Mueller <dmueller(a)suse.com>
+
+- switch to stable/stein spec template
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-yaql.spec ++++++
--- /var/tmp/diff_new_pack.tOE1kg/_old 2019-05-03 22:43:30.243377574 +0200
+++ /var/tmp/diff_new_pack.tOE1kg/_new 2019-05-03 22:43:30.247377582 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-yaql
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
++++++ _service ++++++
--- /var/tmp/diff_new_pack.tOE1kg/_old 2019-05-03 22:43:30.271377633 +0200
+++ /var/tmp/diff_new_pack.tOE1kg/_new 2019-05-03 22:43:30.275377641 +0200
@@ -1,6 +1,6 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-yaql.spec</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,yaql</param>
1
0
Hello community,
here is the log from the commit of package python-watcherclient for openSUSE:Factory checked in at 2019-05-03 22:43:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-watcherclient (Old)
and /work/SRC/openSUSE:Factory/.python-watcherclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-watcherclient"
Fri May 3 22:43:26 2019 rev:2 rq:692883 version:2.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-watcherclient/python-watcherclient.changes 2019-02-08 12:14:41.661440257 +0100
+++ /work/SRC/openSUSE:Factory/.python-watcherclient.new.5148/python-watcherclient.changes 2019-05-03 22:43:27.791372412 +0200
@@ -1,0 +2,17 @@
+Mon Apr 8 12:07:23 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.2.0
+ - Use templates lower-constraints, remove cover
+ - Allow CLI to pass goal and strategy names
+ - Add audit name to CLI help doc
+ - Switch to stestr
+ - fix watcher actionplan show command
+ - Add --marker help info
+ - Update watcher strategy state in CLI
+ - switch documentation job to new PTI
+ - add python 3.6 unit test job
+ - Organize the use of 'log' and replace 'log' with LOG
+ - Fix watherclient error in py3
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
python-watcherclient-2.1.0.tar.gz
New:
----
python-watcherclient-2.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-watcherclient.spec ++++++
--- /var/tmp/diff_new_pack.hMeZRo/_old 2019-05-03 22:43:28.167373203 +0200
+++ /var/tmp/diff_new_pack.hMeZRo/_new 2019-05-03 22:43:28.167373203 +0200
@@ -17,7 +17,7 @@
Name: python-watcherclient
-Version: 2.1.0
+Version: 2.2.0
Release: 0
Summary: Python API and CLI for OpenStack Watcher
License: Apache-2.0
@@ -26,33 +26,32 @@
Source0: https://files.pythonhosted.org/packages/source/p/%{name}/%{name}-%{version}…
BuildRequires: openstack-macros
BuildRequires: openstack-tempest
-BuildRequires: python-PrettyTable >= 0.7.1
+BuildRequires: python-PrettyTable >= 0.7.2
BuildRequires: python-PyYAML >= 3.12
-BuildRequires: python-cliff >= 2.8.0
-BuildRequires: python-devel
+BuildRequires: python-cliff >= 2.11.0
BuildRequires: python-fixtures
BuildRequires: python-keystoneauth1 >= 3.4.0
BuildRequires: python-mock
-BuildRequires: python-osc-lib >= 1.8.0
-BuildRequires: python-oslo.i18n >= 3.15.3
-BuildRequires: python-oslo.utils >= 3.33.0
+BuildRequires: python-osc-lib >= 1.10.0
+BuildRequires: python-oslo.i18n >= 3.20.0
+BuildRequires: python-oslo.utils >= 3.36.0
BuildRequires: python-oslotest
-BuildRequires: python-pbr >= 2.0.0
+BuildRequires: python-pbr >= 3.1.1
BuildRequires: python-python-subunit
BuildRequires: python-setuptools
-BuildRequires: python-testrepository
+BuildRequires: python-stestr
BuildRequires: python-testscenarios
BuildRequires: python-testtools
-Requires: python-Babel >= 2.3.4
-Requires: python-PrettyTable >= 0.7.1
+Requires: python-Babel >= 2.5.3
+Requires: python-PrettyTable >= 0.7.2
Requires: python-PyYAML >= 3.12
-Requires: python-cliff >= 2.8.0
+Requires: python-cliff >= 2.11.0
Requires: python-keystoneauth1 >= 3.4.0
-Requires: python-osc-lib >= 1.8.0
-Requires: python-oslo.i18n >= 3.15.3
-Requires: python-oslo.utils >= 3.33.0
-Requires: python-pbr >= 2.0.0
-Requires: python-six >= 1.10.0
+Requires: python-osc-lib >= 1.10.0
+Requires: python-oslo.i18n >= 3.20.0
+Requires: python-oslo.utils >= 3.36.0
+Requires: python-pbr >= 3.1.1
+Requires: python-six >= 1.11.0
BuildArch: noarch
%description
@@ -86,8 +85,7 @@
%py2_install
%check
-export OS_TEST_PATH=./watcherclient/tests/unit
-%{__python2} setup.py testr
+%{__python2} -m stestr.cli --test-path=./watcherclient/tests/unit run
%files
%doc README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.hMeZRo/_old 2019-05-03 22:43:28.187373245 +0200
+++ /var/tmp/diff_new_pack.hMeZRo/_new 2019-05-03 22:43:28.187373245 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-watcherclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-watcherclient/stable/roc…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-watcherclient/stable/ste…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-watcherclient</param>
</service>
++++++ python-watcherclient-2.1.0.tar.gz -> python-watcherclient-2.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/.stestr.conf new/python-watcherclient-2.2.0/.stestr.conf
--- old/python-watcherclient-2.1.0/.stestr.conf 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/.stestr.conf 2018-10-24 18:00:30.000000000 +0200
@@ -1,3 +1,3 @@
[DEFAULT]
-test_path=${OS_TEST_PATH:-./watcherclient/tests/functional}
-top_dir=./
\ No newline at end of file
+test_path=./watcherclient/tests/functional
+top_dir=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/.testr.conf new/python-watcherclient-2.2.0/.testr.conf
--- old/python-watcherclient-2.1.0/.testr.conf 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-160} \
- ${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH:-./watcherclient/tests} $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/.zuul.yaml new/python-watcherclient-2.2.0/.zuul.yaml
--- old/python-watcherclient-2.1.0/.zuul.yaml 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/.zuul.yaml 2018-10-24 18:00:30.000000000 +0200
@@ -1,9 +1,13 @@
- project:
+ templates:
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - publish-openstack-docs-pti
+ - check-requirements
+ - openstackclient-plugin-jobs
check:
jobs:
- watcherclient-tempest-functional:
voting: false
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/AUTHORS new/python-watcherclient-2.2.0/AUTHORS
--- old/python-watcherclient-2.1.0/AUTHORS 2018-07-26 20:03:12.000000000 +0200
+++ new/python-watcherclient-2.2.0/AUTHORS 2018-10-24 18:03:01.000000000 +0200
@@ -1,4 +1,5 @@
Alexander Chadin <a.chadin(a)servionica.ru>
+Alexander Chadin <aschadin(a)sbcloud.ru>
Alexandr Stavitskiy <stavitskiy(a)servionica.ru>
Andreas Jaeger <aj(a)suse.com>
Antoine Cabot <antoine.cabot(a)b-com.com>
@@ -25,6 +26,7 @@
Luong Anh Tuan <tuanla(a)vn.fujitsu.com>
M V P Nitesh <m.nitesh(a)nectechnologies.in>
Nam Nguyen Hoai <namnh(a)vn.fujitsu.com>
+Nguyen Hai <nguyentrihai93(a)gmail.com>
PanFengyun <fengyun.pan(a)easystack.cn>
Prashanth Hari <prashanth.hari(a)walmart.com>
Steve Martinelli <stevemar(a)ca.ibm.com>
@@ -37,12 +39,12 @@
Vincent Francoise <Vincent.FRANCOISE(a)b-com.com>
Vladimir Ostroverkhov <ostroverkhov(a)servionica.ru>
Yumeng Bao <yumeng_bao(a)yahoo.com>
-Zuul <zuul(a)review.openstack.org>
aditi <adi.sky17(a)gmail.com>
aditi <aditi.s(a)nectechnologies.in>
avnish <avnish.pal(a)nectechnologies.in>
blue55 <yllan(a)fiberhome.com>
caihui <cai.hui(a)zte.com.cn>
+chenke <chen.ke14(a)zte.com.cn>
daohanli <dhli5759(a)fiberhome.com>
deepak_mourya <deepak.mourya(a)nectechnologies.in>
digambar <digambarpatil15(a)yahoo.co.in>
@@ -62,5 +64,7 @@
suzhengwei <sugar-2008(a)163.com>
venkatamahesh <venkatamaheshkotha(a)gmail.com>
zhangguoqing <zhang.guoqing(a)99cloud.net>
+zhangyangyang <yyzhang1(a)sysnew.com>
+zhurong <aaronzhu1121(a)gmail.com>
zhuzeyu <zhu.zeyu(a)zte.com.cn>
zte-hanrong <han.rong3(a)zte.com.cn>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/ChangeLog new/python-watcherclient-2.2.0/ChangeLog
--- old/python-watcherclient-2.1.0/ChangeLog 2018-07-26 20:03:12.000000000 +0200
+++ new/python-watcherclient-2.2.0/ChangeLog 2018-10-24 18:03:01.000000000 +0200
@@ -1,9 +1,26 @@
CHANGES
=======
+2.2.0
+-----
+
+* Allow CLI to pass goal and strategy names
+* Use templates lower-constraints, remove cover
+* Switch to stestr
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* fix watcher actionplan show command
+* Update watcher strategy state in CLI
+* Add --marker help info
+* Organize the use of 'log' and replace 'log' with LOG
+* Add audit name to CLI help doc
+
2.1.0
-----
+* Fix watherclient error in py3
+* Add --marker help info
* Add hostname field to support HA
* Invalid doc for Client exceptions
* Don't run voting jobs in gate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/PKG-INFO new/python-watcherclient-2.2.0/PKG-INFO
--- old/python-watcherclient-2.1.0/PKG-INFO 2018-07-26 20:03:13.000000000 +0200
+++ new/python-watcherclient-2.2.0/PKG-INFO 2018-10-24 18:03:01.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-watcherclient
-Version: 2.1.0
+Version: 2.2.0
Summary: Python client library for Watcher API
Home-page: https://docs.openstack.org/python-watcherclient/latest/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/doc/source/cli/details.rst new/python-watcherclient-2.2.0/doc/source/cli/details.rst
--- old/python-watcherclient-2.1.0/doc/source/cli/details.rst 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/doc/source/cli/details.rst 2018-10-24 18:00:30.000000000 +0200
@@ -157,7 +157,7 @@
[--quote {all,minimal,none,nonnumeric}]
[--action-plan <action-plan>] [--audit <audit>]
[--detail] [--limit <limit>] [--sort-key <field>]
- [--sort-dir <direction>]
+ [--sort-dir <direction>] [--marker <marker>]
List information on retrieved actions.
@@ -186,6 +186,10 @@
``--sort-dir <direction>``
Sort direction: "asc" (the default) or "desc".
+``--marker <marker>``
+ UUID of the last action in the previous page; displays
+ list of actions after "marker".
+
.. _watcher_action_show:
watcher action show
@@ -295,7 +299,8 @@
[--fit-width] [--print-empty] [--noindent]
[--quote {all,minimal,none,nonnumeric}]
[--audit <audit>] [--detail] [--limit <limit>]
- [--sort-key <field>] [--sort-dir <direction>]
+ [--marker <actionplan>] [--sort-key <field>]
+ [--sort-dir <direction>]
List information on retrieved action plans.
@@ -315,6 +320,10 @@
0 for no limit. Default is the maximum number used by
the Watcher API Service.
+``--marker <actionplan>``
+ The last actionplan UUID of the previous page;
+ displays list of actionplans after "marker".
+
``--sort-key <field>``
Action Plan field that will be used for sorting.
@@ -466,7 +475,7 @@
**Positional arguments:**
``<audit>``
- UUID of the audit
+ UUID or name of the audit
**Optional arguments:**
@@ -532,7 +541,7 @@
**Positional arguments:**
``<audit>``
- UUID of the audit
+ UUID or name of the audit
**Optional arguments:**
@@ -556,7 +565,7 @@
**Positional arguments:**
``<audit>``
- UUID of the audit.
+ UUID or name of the audit.
``<op>``
Operation: 'add', 'replace', or 'remove'.
@@ -680,7 +689,7 @@
[--detail] [--goal <goal>]
[--strategy <strategy>] [--limit <limit>]
[--sort-key <field>]
- [--sort-dir <direction>]
+ [--sort-dir <direction>][--marker <marker>]
List information on retrieved audit templates.
@@ -709,6 +718,10 @@
``--sort-dir <direction>``
Sort direction: "asc" (the default) or "desc".
+``--marker <marker>``
+ UUID of the last audittemplate in the previous page; displays
+ list of audittemplates after "marker".
+
.. _watcher_audittemplate_show:
watcher audittemplate show
@@ -781,7 +794,7 @@
[--print-empty] [--noindent]
[--quote {all,minimal,none,nonnumeric}] [--detail]
[--limit <limit>] [--sort-key <field>]
- [--sort-dir <direction>]
+ [--sort-dir <direction>][--marker <marker>]
List information on retrieved goals.
@@ -804,6 +817,10 @@
``--sort-dir <direction>``
Sort direction: "asc" (the default) or "desc".
+``--marker <marker>``
+ UUID of the last goal in the previous page; displays
+ list of goals after "marker".
+
.. _watcher_goal_show:
watcher goal show
@@ -841,7 +858,7 @@
[--quote {all,minimal,none,nonnumeric}]
[--detail] [--limit <limit>]
[--sort-key <field>]
- [--sort-dir <direction>]
+ [--sort-dir <direction>][--marker <marker>]
List information on retrieved scoring engines.
@@ -864,6 +881,10 @@
``--sort-dir <direction>``
Sort direction: "asc" (the default) or "desc".
+``--marker <marker>``
+ UUID of the last scoringengine in the previous page; displays
+ list of scoringengines after "marker".
+
.. _watcher_scoringengine_show:
watcher scoringengine show
@@ -961,6 +982,7 @@
[--quote {all,minimal,none,nonnumeric}]
[--goal <goal>] [--detail] [--limit <limit>]
[--sort-key <field>] [--sort-dir <direction>]
+ [--marker <marker>]
List information on retrieved strategies.
@@ -986,6 +1008,10 @@
``--sort-dir <direction>``
Sort direction: "asc" (the default) or "desc".
+``--marker <marker>``
+ UUID of the last strategy in the previous page; displays
+ list of strategies after "marker".
+
.. _watcher_strategy_show:
watcher strategy show
@@ -1010,3 +1036,28 @@
``-h, --help``
show this help message and exit
+.. _watcher_strategy_state:
+
+watcher strategy state
+----------------------
+
+.. code-block:: console
+
+ usage: watcher strategy state [-h] [-f {csv,html,json,table,value,yaml}]
+ [-c COLUMN] [--max-width <integer>]
+ [--fit-width] [--print-empty] [--noindent]
+ [--quote {all,minimal,none,nonnumeric}]
+ [--sort-column SORT_COLUMN]
+ <strategy>
+
+Retrieve information about strategy requirements.
+
+**Positional arguments:**
+
+``<strategy>``
+ Name of the strategy
+
+**Optional arguments:**
+
+``-h, --help``
+ show this help message and exit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/lower-constraints.txt new/python-watcherclient-2.2.0/lower-constraints.txt
--- old/python-watcherclient-2.1.0/lower-constraints.txt 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/lower-constraints.txt 2018-10-24 18:00:30.000000000 +0200
@@ -69,7 +69,6 @@
python-dateutil==2.5.3
python-mimeparse==1.6.0
python-subunit==1.0.0
--e git://git.openstack.org/openstack/python-watcherclient@104894958882a4877dad…
pytz==2018.3
PyYAML==3.12
requests==2.18.4
@@ -80,10 +79,9 @@
snowballstemmer==1.2.1
Sphinx==1.6.5
sphinxcontrib-websupport==1.0.1
-stestr==1.0.0
+stestr==2.0.0
stevedore==1.28.0
tempest==17.1.0
-testrepository==0.0.18
testscenarios==0.4
testtools==2.2.0
traceback2==1.4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/python_watcherclient.egg-info/PKG-INFO new/python-watcherclient-2.2.0/python_watcherclient.egg-info/PKG-INFO
--- old/python-watcherclient-2.1.0/python_watcherclient.egg-info/PKG-INFO 2018-07-26 20:03:12.000000000 +0200
+++ new/python-watcherclient-2.2.0/python_watcherclient.egg-info/PKG-INFO 2018-10-24 18:03:01.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-watcherclient
-Version: 2.1.0
+Version: 2.2.0
Summary: Python client library for Watcher API
Home-page: https://docs.openstack.org/python-watcherclient/latest/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/python_watcherclient.egg-info/SOURCES.txt new/python-watcherclient-2.2.0/python_watcherclient.egg-info/SOURCES.txt
--- old/python-watcherclient-2.1.0/python_watcherclient.egg-info/SOURCES.txt 2018-07-26 20:03:13.000000000 +0200
+++ new/python-watcherclient-2.2.0/python_watcherclient.egg-info/SOURCES.txt 2018-10-24 18:03:01.000000000 +0200
@@ -1,5 +1,4 @@
.stestr.conf
-.testr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/python_watcherclient.egg-info/pbr.json new/python-watcherclient-2.2.0/python_watcherclient.egg-info/pbr.json
--- old/python-watcherclient-2.1.0/python_watcherclient.egg-info/pbr.json 2018-07-26 20:03:12.000000000 +0200
+++ new/python-watcherclient-2.2.0/python_watcherclient.egg-info/pbr.json 2018-10-24 18:03:01.000000000 +0200
@@ -1 +1 @@
-{"git_version": "6681724", "is_release": true}
\ No newline at end of file
+{"git_version": "db7a5e4", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/python_watcherclient.egg-info/requires.txt new/python-watcherclient-2.2.0/python_watcherclient.egg-info/requires.txt
--- old/python-watcherclient-2.1.0/python_watcherclient.egg-info/requires.txt 2018-07-26 20:03:12.000000000 +0200
+++ new/python-watcherclient-2.2.0/python_watcherclient.egg-info/requires.txt 2018-10-24 18:03:01.000000000 +0200
@@ -1,10 +1,10 @@
-Babel!=2.4.0,>=2.3.4
-cliff!=2.9.0,>=2.8.0
-osc-lib>=1.8.0
-oslo.i18n>=3.15.3
-oslo.utils>=3.33.0
-pbr!=2.1.0,>=2.0.0
-PrettyTable<0.8,>=0.7.1
+Babel!=2.4.0,>=2.5.3
+cliff!=2.9.0,>=2.11.0
+osc-lib>=1.10.0
+oslo.i18n>=3.20.0
+oslo.utils>=3.36.0
+pbr!=2.1.0,>=3.1.1
+PrettyTable<0.8,>=0.7.2
keystoneauth1>=3.4.0
-six>=1.10.0
+six>=1.11.0
PyYAML>=3.12
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/requirements.txt new/python-watcherclient-2.2.0/requirements.txt
--- old/python-watcherclient-2.1.0/requirements.txt 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/requirements.txt 2018-10-24 18:00:30.000000000 +0200
@@ -2,13 +2,13 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-Babel!=2.4.0,>=2.3.4 # BSD
-cliff!=2.9.0,>=2.8.0 # Apache-2.0
-osc-lib>=1.8.0 # Apache-2.0
-oslo.i18n>=3.15.3 # Apache-2.0
-oslo.utils>=3.33.0 # Apache-2.0
-pbr!=2.1.0,>=2.0.0 # Apache-2.0
-PrettyTable<0.8,>=0.7.1 # BSD
+Babel!=2.4.0,>=2.5.3 # BSD
+cliff!=2.9.0,>=2.11.0 # Apache-2.0
+osc-lib>=1.10.0 # Apache-2.0
+oslo.i18n>=3.20.0 # Apache-2.0
+oslo.utils>=3.36.0 # Apache-2.0
+pbr!=2.1.0,>=3.1.1 # Apache-2.0
+PrettyTable<0.8,>=0.7.2 # BSD
keystoneauth1>=3.4.0 # Apache-2.0
-six>=1.10.0 # MIT
+six>=1.11.0 # MIT
PyYAML>=3.12 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/test-requirements.txt new/python-watcherclient-2.2.0/test-requirements.txt
--- old/python-watcherclient-2.1.0/test-requirements.txt 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/test-requirements.txt 2018-10-24 18:00:30.000000000 +0200
@@ -9,11 +9,8 @@
openstackdocstheme>=1.18.1 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
python-subunit>=1.0.0 # Apache-2.0/BSD
-sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
-testrepository>=0.0.18 # Apache-2.0/BSD
+sphinx!=1.6.6,!=1.6.7,>=1.6.5 # BSD
+stestr>=2.0.0 # Apache-2.0
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
tempest>=17.1.0 # Apache-2.0
-
-# Needed for pypi packaging
-wheel>=0.24.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/tox.ini new/python-watcherclient-2.2.0/tox.ini
--- old/python-watcherclient-2.1.0/tox.ini 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/tox.ini 2018-10-24 18:00:30.000000000 +0200
@@ -10,10 +10,10 @@
pip install -U {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
- OS_TEST_PATH=./watcherclient/tests/unit
deps = -r{toxinidir}/test-requirements.txt
commands = rm -f .testrepository/times.dbm
- python setup.py testr --slowest --testr-args='{posargs}'
+ stestr --test-path=./watcherclient/tests/unit run {posargs}
+ stestr slowest
[testenv:pep8]
basepython = python3
@@ -25,9 +25,14 @@
[testenv:cover]
basepython = python3
+setenv =
+ PYTHON=coverage run --source watcherclient --parallel-mode
commands =
- python setup.py testr --coverage --testr-args='{posargs}'
- coverage report
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
+ coverage report
[testenv:docs]
basepython = python3
@@ -48,9 +53,8 @@
OS_AUTH_URL
OS_IDENTITY_API_VERSION
OS_IMAGE_API_VERSION
-setenv =
- OS_TEST_PATH = ./watcherclient/tests/functional
-commands = python setup.py testr --slowest --testr-args='--concurrency=1 {posargs}'
+commands = stestr --test-path=./watcherclient/tests/functional run --concurrency=1 {posargs}
+ stestr slowest
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/watcherclient/common/httpclient.py new/python-watcherclient-2.2.0/watcherclient/common/httpclient.py
--- old/python-watcherclient-2.1.0/watcherclient/common/httpclient.py 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/watcherclient/common/httpclient.py 2018-10-24 18:00:30.000000000 +0200
@@ -354,7 +354,15 @@
# Read body into string if it isn't obviously image data
body_str = None
if resp.headers.get('Content-Type') != 'application/octet-stream':
- body_str = ''.join([chunk for chunk in body_iter])
+ # decoding byte to string is necessary for Python 3 compatibility
+ # this issues has not been found with Python 3 unit tests
+ # because the test creates a fake http response of type str
+ # the if statement satisfies test (str) and real (bytes) behavior
+ body_list = [
+ chunk.decode("utf-8") if isinstance(chunk, bytes)
+ else chunk for chunk in body_iter
+ ]
+ body_str = ''.join(body_list)
self.log_http_response(resp, body_str)
body_iter = six.StringIO(body_str)
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/watcherclient/shell.py new/python-watcherclient-2.2.0/watcherclient/shell.py
--- old/python-watcherclient-2.1.0/watcherclient/shell.py 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/watcherclient/shell.py 2018-10-24 18:00:30.000000000 +0200
@@ -47,8 +47,6 @@
class WatcherShell(app.App):
"""Watcher command line interface."""
- log = logging.getLogger(__name__)
-
def __init__(self, **kwargs):
self.client = None
@@ -194,12 +192,12 @@
except Exception as e:
if not logging.getLogger('').handlers:
logging.basicConfig()
- self.log.error('Exception raised: %s', str(e))
+ LOG.error('Exception raised: %s', str(e))
return ret_val
finally:
- self.log.info("END return value: %s", ret_val)
+ LOG.info("END return value: %s", ret_val)
def main(argv=sys.argv[1:]):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/watcherclient/v1/action_plan_shell.py new/python-watcherclient-2.2.0/watcherclient/v1/action_plan_shell.py
--- old/python-watcherclient-2.1.0/watcherclient/v1/action_plan_shell.py 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/watcherclient/v1/action_plan_shell.py 2018-10-24 18:00:30.000000000 +0200
@@ -70,7 +70,7 @@
yaml_format.YAMLFormatter().emit_one(
column_names=list(resource.capitalize()
for resource in formatted_global_efficacy),
- data=[value for value in formatted_global_efficacy.itervalues()],
+ data=[value for value in formatted_global_efficacy.values()],
stdout=out,
parsed_args=parsed_args,
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-watcherclient-2.1.0/watcherclient/v1/audit_shell.py new/python-watcherclient-2.2.0/watcherclient/v1/audit_shell.py
--- old/python-watcherclient-2.1.0/watcherclient/v1/audit_shell.py 2018-07-26 19:59:07.000000000 +0200
+++ new/python-watcherclient-2.2.0/watcherclient/v1/audit_shell.py 2018-10-24 18:00:30.000000000 +0200
@@ -200,19 +200,10 @@
if k in field_list and v is not None)
fields = common_utils.args_array_to_dict(fields, 'parameters')
- if fields.get('goal'):
- if not uuidutils.is_uuid_like(fields['goal']):
- fields['goal'] = client.goal.get(fields['goal']).uuid
-
if fields.get('audit_template_uuid'):
if not uuidutils.is_uuid_like(fields['audit_template_uuid']):
fields['audit_template_uuid'] = client.audit_template.get(
fields['audit_template_uuid']).uuid
- # optional
- if fields.get('strategy'):
- if not uuidutils.is_uuid_like(fields['strategy']):
- fields['strategy'] = client.strategy.get(
- fields['strategy']).uuid
audit = client.audit.create(**fields)
if audit.strategy_name is None:
1
0
Hello community,
here is the log from the commit of package python-troveclient for openSUSE:Factory checked in at 2019-05-03 22:43:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-troveclient (Old)
and /work/SRC/openSUSE:Factory/.python-troveclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-troveclient"
Fri May 3 22:43:23 2019 rev:12 rq:692882 version:2.17.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-troveclient/python-troveclient.changes 2018-09-07 15:39:41.570517544 +0200
+++ /work/SRC/openSUSE:Factory/.python-troveclient.new.5148/python-troveclient.changes 2019-05-03 22:43:25.223367005 +0200
@@ -1,0 +2,21 @@
+Mon Apr 8 11:57:06 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.17.0
+ - Add detailed list for instances
+ - Support configuration groups for clusters
+ - switch documentation job to new PTI
+ - Cleanup zuul.yaml
+ - Add release note link in README
+ - Switch to stestr
+ - Fix wrong keyword arguments
+ - Add extended properties support for mongo cluster.
+ - Fix python3 compatibility issues
+ - Replace assertRaisesRegexp with assertRaisesRegex
+ - Update reno for stable/rocky
+ - Don't quote {posargs} in tox.ini
+ - Remove PyPI downloads
+ - Sync two parameters of cluster-create to OSC
+ - add python 3.6 unit test job
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
python-troveclient-2.16.0.tar.gz
New:
----
python-troveclient-2.17.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-troveclient.spec ++++++
--- /var/tmp/diff_new_pack.jroLbs/_old 2019-05-03 22:43:25.751368117 +0200
+++ /var/tmp/diff_new_pack.jroLbs/_new 2019-05-03 22:43:25.751368117 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-troveclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,12 +12,12 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-troveclient
-Version: 2.16.0
+Version: 2.17.0
Release: 0
Summary: Client library for OpenStack DBaaS API
License: Apache-2.0
@@ -27,21 +27,19 @@
BuildRequires: openstack-macros
BuildRequires: python-PrettyTable >= 0.7.2
BuildRequires: python-Sphinx
-BuildRequires: python-devel
BuildRequires: python-httplib2
BuildRequires: python-keystoneauth1 >= 3.4.0
BuildRequires: python-mistralclient >= 3.1.0
BuildRequires: python-mock
BuildRequires: python-oslo.utils >= 3.33.0
-BuildRequires: python-oslosphinx
BuildRequires: python-pbr >= 2.0.0
BuildRequires: python-requests >= 2.14.2
BuildRequires: python-requests-mock
BuildRequires: python-setuptools
BuildRequires: python-simplejson >= 3.5.1
BuildRequires: python-sphinxcontrib-apidoc
+BuildRequires: python-stestr
BuildRequires: python-swiftclient >= 3.2.0
-BuildRequires: python-testrepository
BuildRequires: python-testscenarios
BuildRequires: python-testtools
Requires: python-Babel >= 2.3.4
@@ -82,16 +80,13 @@
# Generate html docs
PBR_VERSION=%version sphinx-build -b html doc/source doc/build/html
# Remove the Sphinx-build leftovers
-rm -rf html/.{doctrees,buildinfo}
+rm -r doc/build/html/.{doctrees,buildinfo}
%install
%py2_install
%check
-# Disable tests until https://bugs.launchpad.net/python-troveclient/+bug/1706538 got fixed
-%if "%{version}" != "2.11.0"
-PYTHONPATH=. %{__python2} setup.py testr
-%endif
+stestr run
%files
%doc README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.jroLbs/_old 2019-05-03 22:43:25.771368159 +0200
+++ /var/tmp/diff_new_pack.jroLbs/_new 2019-05-03 22:43:25.771368159 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-troveclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-troveclient/stable/rocky…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-troveclient/stable/stein…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-troveclient</param>
</service>
++++++ python-troveclient-2.16.0.tar.gz -> python-troveclient-2.17.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/.stestr.conf new/python-troveclient-2.17.0/.stestr.conf
--- old/python-troveclient-2.16.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/python-troveclient-2.17.0/.stestr.conf 2018-10-31 15:05:42.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./
+top_dir=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/.testr.conf new/python-troveclient-2.17.0/.testr.conf
--- old/python-troveclient-2.16.0/.testr.conf 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ ./ $LISTOPT $IDOPTION
-
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/.zuul.yaml new/python-troveclient-2.17.0/.zuul.yaml
--- old/python-troveclient-2.16.0/.zuul.yaml 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/.zuul.yaml 2018-10-31 15:05:42.000000000 +0100
@@ -1,16 +1,23 @@
- project:
templates:
+ - check-requirements
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
- openstackclient-plugin-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
check:
jobs:
- python-troveclient-tempest-neutron-src
- - openstack-tox-lower-constraints
+ - trove-functional-mysql
gate:
queue: trove
jobs:
- python-troveclient-tempest-neutron-src
+ - trove-functional-mysql
- - openstack-tox-lower-constraints
- job:
name: python-troveclient-tempest-neutron-src
parent: devstack-tempest
@@ -26,9 +33,9 @@
- openstack/tempest
- openstack/trove-tempest-plugin
vars:
- tox_envlist: 'full'
+ tox_envlist: full
devstack_localrc:
- TEMPEST_PLUGINS: '/opt/stack/trove-tempest-plugin'
+ TEMPEST_PLUGINS: /opt/stack/trove-tempest-plugin
devstack_plugins:
trove: git://git.openstack.org/openstack/trove
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/AUTHORS new/python-troveclient-2.17.0/AUTHORS
--- old/python-troveclient-2.16.0/AUTHORS 2018-07-26 16:09:16.000000000 +0200
+++ new/python-troveclient-2.17.0/AUTHORS 2018-10-31 15:08:28.000000000 +0100
@@ -12,11 +12,14 @@
Anh Tran <anhtt(a)vn.fujitsu.com>
Arata Notsu <notsu(a)virtualtech.jp>
Ashleigh Farnham <ashleighfarnham(a)gmail.com>
+Bartosz Zurkowski <b.zurkowski(a)samsung.com>
Bob Thyne <bob.thyne(a)hp.com>
Cao Xuan Hoang <hoangcx(a)vn.fujitsu.com>
Chandan Kumar <chkumar(a)redhat.com>
Chaozhe.Chen <chaozhe.chen(a)easystack.cn>
+Chen <dstbtgagt(a)foxmail.com>
Christian Berendt <berendt(a)b1-systems.de>
+Chuck Short <chucks(a)redhat.com>
Clare Springer <yidclare(a)gmail.com>
Craig Vyvial <cp16net(a)gmail.com>
Cyril Roelandt <cyril.roelandt(a)enovance.com>
@@ -54,6 +57,7 @@
Kui Shi <skuicloud(a)gmail.com>
Lance Bragstad <lbragstad(a)gmail.com>
LiuNanke <nanke.liu(a)easystack.cn>
+Marcin Piwowarczyk <m.piwowarczy(a)samsung.com>
Masaki Matsushita <glass.saga(a)gmail.com>
Matt Fischer <matt(a)mattfischer.com>
Matt Riedemann <mriedem(a)us.ibm.com>
@@ -101,12 +105,14 @@
Tovin Seven <vinhnt(a)vn.fujitsu.com>
Trevor McCasland <TM2086(a)att.com>
Valencia Serrao <vserrao(a)us.ibm.com>
+Vieri <15050873171(a)163.com>
Vipul Sabhaya <vipuls(a)gmail.com>
+Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
+Yotaro Konishi <konishi.yotaro(a)jp.fujitsu.com>
Zhao Chao <zhaochao1984(a)gmail.com>
Zhi Yan Liu <zhiyanl(a)cn.ibm.com>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
Zhiqiang Fan <aji.zqfan(a)gmail.com>
-Zuul <zuul(a)review.openstack.org>
amcrn <amcreynolds(a)ebaysf.com>
amitg.b14(a)gmail.com <amitg.b14(a)gmail.com>
caishan <caishan1993(a)foxmail.com>
@@ -133,5 +139,6 @@
venkatamahesh <venkatamaheshkotha(a)gmail.com>
wangyao <wangyao(a)cmss.chinamobile.com>
wlhc <1216083447(a)qq.com>
+wu.chunyang <wu.chunyang(a)99cloud.net>
yangyapeng <yang.yapeng(a)99cloud.net>
zhanggang <zhanggang(a)cmss.chinamobile.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/ChangeLog new/python-troveclient-2.17.0/ChangeLog
--- old/python-troveclient-2.16.0/ChangeLog 2018-07-26 16:09:16.000000000 +0200
+++ new/python-troveclient-2.17.0/ChangeLog 2018-10-31 15:08:28.000000000 +0100
@@ -1,6 +1,24 @@
CHANGES
=======
+2.17.0
+------
+
+* Add detailed list for instances
+* Don't quote {posargs} in tox.ini
+* Fix wrong keyword arguments
+* Cleanup zuul.yaml
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Fix python3 compatibility issues
+* Replace assertRaisesRegexp with assertRaisesRegex
+* Sync two parameters of cluster-create to OSC
+* Update reno for stable/rocky
+* Support configuration groups for clusters
+* Add extended properties support for mongo cluster
+* Switch to stestr
+
2.16.0
------
@@ -14,8 +32,10 @@
* fix tox python3 overrides
* Correctly mocking builtin open in test\_v1\_shell
* Replace 'raise StopIteration' with 'return'
+* Add release note link in README
* Add cluster-modules to OSC
* Update the troveclient's README
+* Remove PyPI downloads
* Trivial: Update pypi url to new url
* Follow the new PTI for document build
* Migrate to Zuul v3 native job definitions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/PKG-INFO new/python-troveclient-2.17.0/PKG-INFO
--- old/python-troveclient-2.16.0/PKG-INFO 2018-07-26 16:09:17.000000000 +0200
+++ new/python-troveclient-2.17.0/PKG-INFO 2018-10-31 15:08:28.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-troveclient
-Version: 2.16.0
+Version: 2.17.0
Summary: Client library for OpenStack DBaaS API
Home-page: https://docs.openstack.org/python-troveclient/latest
Author: OpenStack
@@ -16,10 +16,6 @@
:target: https://pypi.org/project/python-troveclient/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/python-troveclient.svg
- :target: https://pypi.org/project/python-troveclient/
- :alt: Downloads
-
This is a client for the OpenStack Trove API. There's a Python API (the
``troveclient`` module), and a command-line script (``trove``). Each
implements 100% of the OpenStack Trove API.
@@ -42,6 +38,7 @@
* `Github`_
* `Specs`_
* `How to Contribute`_
+ * `Release Notes`_
.. _Online Documentation: https://docs.openstack.org/python-troveclient/latest
.. _Bugs: https://bugs.launchpad.net/python-troveclient
@@ -51,6 +48,7 @@
.. _Github: https://github.com/openstack/python-troveclient
.. _Specs: https://specs.openstack.org/openstack/trove-specs/
.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html
+ .. _Release Notes: https://docs.openstack.org/releasenotes/python-troveclient
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/README.rst new/python-troveclient-2.17.0/README.rst
--- old/python-troveclient-2.16.0/README.rst 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/README.rst 2018-10-31 15:05:42.000000000 +0100
@@ -8,10 +8,6 @@
:target: https://pypi.org/project/python-troveclient/
:alt: Latest Version
-.. image:: https://img.shields.io/pypi/dm/python-troveclient.svg
- :target: https://pypi.org/project/python-troveclient/
- :alt: Downloads
-
This is a client for the OpenStack Trove API. There's a Python API (the
``troveclient`` module), and a command-line script (``trove``). Each
implements 100% of the OpenStack Trove API.
@@ -34,6 +30,7 @@
* `Github`_
* `Specs`_
* `How to Contribute`_
+* `Release Notes`_
.. _Online Documentation: https://docs.openstack.org/python-troveclient/latest
.. _Bugs: https://bugs.launchpad.net/python-troveclient
@@ -43,3 +40,4 @@
.. _Github: https://github.com/openstack/python-troveclient
.. _Specs: https://specs.openstack.org/openstack/trove-specs/
.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html
+.. _Release Notes: https://docs.openstack.org/releasenotes/python-troveclient
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/lower-constraints.txt new/python-troveclient-2.17.0/lower-constraints.txt
--- old/python-troveclient-2.16.0/lower-constraints.txt 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/lower-constraints.txt 2018-10-31 15:05:42.000000000 +0100
@@ -78,8 +78,8 @@
snowballstemmer==1.2.1
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
+stestr==2.0.0
stevedore==1.20.0
-testrepository==0.0.18
testscenarios==0.4
testtools==2.2.0
traceback2==1.4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/python_troveclient.egg-info/PKG-INFO new/python-troveclient-2.17.0/python_troveclient.egg-info/PKG-INFO
--- old/python-troveclient-2.16.0/python_troveclient.egg-info/PKG-INFO 2018-07-26 16:09:16.000000000 +0200
+++ new/python-troveclient-2.17.0/python_troveclient.egg-info/PKG-INFO 2018-10-31 15:08:28.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-troveclient
-Version: 2.16.0
+Version: 2.17.0
Summary: Client library for OpenStack DBaaS API
Home-page: https://docs.openstack.org/python-troveclient/latest
Author: OpenStack
@@ -16,10 +16,6 @@
:target: https://pypi.org/project/python-troveclient/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/python-troveclient.svg
- :target: https://pypi.org/project/python-troveclient/
- :alt: Downloads
-
This is a client for the OpenStack Trove API. There's a Python API (the
``troveclient`` module), and a command-line script (``trove``). Each
implements 100% of the OpenStack Trove API.
@@ -42,6 +38,7 @@
* `Github`_
* `Specs`_
* `How to Contribute`_
+ * `Release Notes`_
.. _Online Documentation: https://docs.openstack.org/python-troveclient/latest
.. _Bugs: https://bugs.launchpad.net/python-troveclient
@@ -51,6 +48,7 @@
.. _Github: https://github.com/openstack/python-troveclient
.. _Specs: https://specs.openstack.org/openstack/trove-specs/
.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html
+ .. _Release Notes: https://docs.openstack.org/releasenotes/python-troveclient
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/python_troveclient.egg-info/SOURCES.txt new/python-troveclient-2.17.0/python_troveclient.egg-info/SOURCES.txt
--- old/python-troveclient-2.16.0/python_troveclient.egg-info/SOURCES.txt 2018-07-26 16:09:17.000000000 +0200
+++ new/python-troveclient-2.17.0/python_troveclient.egg-info/SOURCES.txt 2018-10-31 15:08:28.000000000 +0100
@@ -1,5 +1,5 @@
.coveragerc
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -46,6 +46,7 @@
releasenotes/notes/add-configuration-create-to-osc-fd556891b57cce05.yaml
releasenotes/notes/add-configuration-default-to-osc-55867236d19d83c4.yaml
releasenotes/notes/add-configuration-delete-to-osc-d52e6a2cc84994e5.yaml
+releasenotes/notes/add-configuration-groups-for-clusters-6183b0b7b4fb8c9e.yaml
releasenotes/notes/add-configuration-instances-to-osc-80a7d7b9d0c79f62.yaml
releasenotes/notes/add-configuration-list-to-osc-4a12d508f6bb5472.yaml
releasenotes/notes/add-configuration-parameter-list-to-osc-3d1a383999dd2d64.yaml
@@ -66,6 +67,7 @@
releasenotes/notes/add-force-delete-to-osc-dfff1db4da937415.yaml
releasenotes/notes/add-instance-create-to-osc-77484f1c477aa864.yaml
releasenotes/notes/add-instance-delete-to-osc-bf8de501c8945d58.yaml
+releasenotes/notes/add-instance-detailed-list-23dc77ed898cc6db.yaml
releasenotes/notes/add-instance-list-to-osc-05714dfce947a57e.yaml
releasenotes/notes/add-instance-show-to-osc-d97cac1c697dcbdd.yaml
releasenotes/notes/add-log-enable-to-osc-a97bbb3a7af7b80b.yaml
@@ -95,6 +97,7 @@
releasenotes/notes/datastore-version-volume-types-62556ce5917195fd.yaml
releasenotes/notes/fix-config-param-list-output-27bf30fce5388d4b.yaml
releasenotes/notes/fix-output-of-cluster-create-584d85ffe1129d57.yaml
+releasenotes/notes/fix-wrong-datastore-flavors-args-in-osc-e0322cb5424f8c1b.yaml
releasenotes/notes/fix_admin_keystoneauth1-ed534462434.yaml
releasenotes/notes/flavor-list-disk-befd656f86592af1.yaml
releasenotes/notes/flavor-list-ephemeral-de4eee3a30b09b64.yaml
@@ -107,6 +110,7 @@
releasenotes/notes/module-ordering-2d1e1a3c37c30c71.yaml
releasenotes/notes/module-support-for-clusters-87b41dd7648275bf.yaml
releasenotes/notes/module_update_all_ds-f5cdbb71462e3de4.yaml
+releasenotes/notes/mongo-cluster-create-use-extended-perperties-be7c075585dc709a.yaml
releasenotes/notes/multi-region-ec516da866def1ed.yaml
releasenotes/notes/paginate-config-list-c311ce3c5394d437.yaml
releasenotes/notes/persist-error-message-cda8dfe485fe92ba.yaml
@@ -123,6 +127,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/python_troveclient.egg-info/pbr.json new/python-troveclient-2.17.0/python_troveclient.egg-info/pbr.json
--- old/python-troveclient-2.16.0/python_troveclient.egg-info/pbr.json 2018-07-26 16:09:16.000000000 +0200
+++ new/python-troveclient-2.17.0/python_troveclient.egg-info/pbr.json 2018-10-31 15:08:28.000000000 +0100
@@ -1 +1 @@
-{"git_version": "3adf5fe", "is_release": true}
\ No newline at end of file
+{"git_version": "ba873ae", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/releasenotes/notes/add-configuration-groups-for-clusters-6183b0b7b4fb8c9e.yaml new/python-troveclient-2.17.0/releasenotes/notes/add-configuration-groups-for-clusters-6183b0b7b4fb8c9e.yaml
--- old/python-troveclient-2.16.0/releasenotes/notes/add-configuration-groups-for-clusters-6183b0b7b4fb8c9e.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-troveclient-2.17.0/releasenotes/notes/add-configuration-groups-for-clusters-6183b0b7b4fb8c9e.yaml 2018-10-31 15:05:42.000000000 +0100
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ A --configuration flag was added to the ``trove cluster-create``
+ command, in order to allow a user to attach specific configuration
+ for cluster.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/releasenotes/notes/add-instance-detailed-list-23dc77ed898cc6db.yaml new/python-troveclient-2.17.0/releasenotes/notes/add-instance-detailed-list-23dc77ed898cc6db.yaml
--- old/python-troveclient-2.16.0/releasenotes/notes/add-instance-detailed-list-23dc77ed898cc6db.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-troveclient-2.17.0/releasenotes/notes/add-instance-detailed-list-23dc77ed898cc6db.yaml 2018-10-31 15:05:42.000000000 +0100
@@ -0,0 +1,7 @@
+---
+features:
+ - |
+ Added ``detailed`` option to instances client in ``instances.list``
+ command. Now, detailed instance list can be obtained by setting
+ ``detailed`` parameter to ``True``. Trove will then include more details
+ in the API response.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/releasenotes/notes/fix-wrong-datastore-flavors-args-in-osc-e0322cb5424f8c1b.yaml new/python-troveclient-2.17.0/releasenotes/notes/fix-wrong-datastore-flavors-args-in-osc-e0322cb5424f8c1b.yaml
--- old/python-troveclient-2.16.0/releasenotes/notes/fix-wrong-datastore-flavors-args-in-osc-e0322cb5424f8c1b.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-troveclient-2.17.0/releasenotes/notes/fix-wrong-datastore-flavors-args-in-osc-e0322cb5424f8c1b.yaml 2018-10-31 15:05:42.000000000 +0100
@@ -0,0 +1,7 @@
+---
+fixes:
+ - |
+ [`bug 1794663 <https://bugs.launchpad.net/python-troveclient/+bug/1794663>`_]
+ Fixed wrong keyword arguments to make ``openstack database flavor list``
+ command work properly with ``--datastore-type`` and
+ ``--datastore-version-id`` options.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/releasenotes/notes/mongo-cluster-create-use-extended-perperties-be7c075585dc709a.yaml new/python-troveclient-2.17.0/releasenotes/notes/mongo-cluster-create-use-extended-perperties-be7c075585dc709a.yaml
--- old/python-troveclient-2.16.0/releasenotes/notes/mongo-cluster-create-use-extended-perperties-be7c075585dc709a.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-troveclient-2.17.0/releasenotes/notes/mongo-cluster-create-use-extended-perperties-be7c075585dc709a.yaml 2018-10-31 15:05:42.000000000 +0100
@@ -0,0 +1,8 @@
+---
+features:
+ - |
+ User can specify the number and volume of mongos/configserver by using
+ the extends argument when creating mongodb cluster. Currently,
+ the supported parameters are, num_configsvr, num_mongos,
+ configsvr_volume_size, configsvr_volume_type, mongos_volume_size
+ and mongos_volume_type.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/releasenotes/source/index.rst new/python-troveclient-2.17.0/releasenotes/source/index.rst
--- old/python-troveclient-2.16.0/releasenotes/source/index.rst 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/releasenotes/source/index.rst 2018-10-31 15:05:42.000000000 +0100
@@ -8,6 +8,7 @@
:maxdepth: 2
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/releasenotes/source/rocky.rst new/python-troveclient-2.17.0/releasenotes/source/rocky.rst
--- old/python-troveclient-2.16.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-troveclient-2.17.0/releasenotes/source/rocky.rst 2018-10-31 15:05:42.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/test-requirements.txt new/python-troveclient-2.17.0/test-requirements.txt
--- old/python-troveclient-2.16.0/test-requirements.txt 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/test-requirements.txt 2018-10-31 15:05:42.000000000 +0100
@@ -7,7 +7,7 @@
oslotest>=3.2.0 # Apache-2.0
python-openstackclient>=3.12.0 # Apache-2.0
requests-mock>=1.2.0 # Apache-2.0
-testrepository>=0.0.18 # Apache-2.0/BSD
+stestr>=2.0.0 # Apache-2.0
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
mock>=2.0.0 # BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/tox.ini new/python-troveclient-2.17.0/tox.ini
--- old/python-troveclient-2.16.0/tox.ini 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/tox.ini 2018-10-31 15:05:51.000000000 +0100
@@ -19,8 +19,7 @@
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = find . -type f -name "*.pyc" -delete
- rm -f .testrepository/times.dbm
- python setup.py testr --testr-args='{posargs}'
+ stestr run {posargs}
whitelist_externals = find
rm
@@ -46,10 +45,14 @@
[testenv:cover]
basepython = python3
+setenv =
+ PYTHON=coverage run --source troveclient --parallel-mode
commands =
coverage erase
- python setup.py testr --coverage --testr-args='{posargs}'
- coverage html
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
coverage report
[testenv:docs]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/apiclient/base.py new/python-troveclient-2.17.0/troveclient/apiclient/base.py
--- old/python-troveclient-2.16.0/troveclient/apiclient/base.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/apiclient/base.py 2018-10-31 15:05:42.000000000 +0100
@@ -458,6 +458,8 @@
pass
def __getattr__(self, k):
+ if k == "__setstate__":
+ raise AttributeError(k)
if k not in self.__dict__:
# NOTE(bcwaldon): disallow lazy-loading if already loaded once
if not self.is_loaded:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/compat/base.py new/python-troveclient-2.17.0/troveclient/compat/base.py
--- old/python-troveclient-2.16.0/troveclient/compat/base.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/compat/base.py 2018-10-31 15:05:42.000000000 +0100
@@ -246,7 +246,7 @@
return None
def _add_details(self, info):
- for (k, v) in info.iteritems():
+ for (k, v) in info.items():
try:
setattr(self, k, v)
except AttributeError:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/compat/client.py new/python-troveclient-2.17.0/troveclient/compat/client.py
--- old/python-troveclient-2.16.0/troveclient/compat/client.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/compat/client.py 2018-10-31 15:05:42.000000000 +0100
@@ -200,9 +200,9 @@
if 'body' in kwargs:
kwargs['body'] = json.dumps(kwargs['body'])
- def morph_response_body(self, body_string):
+ def morph_response_body(self, raw_body):
try:
- return json.loads(body_string)
+ return json.loads(raw_body.decode())
except ValueError:
raise exceptions.ResponseFormatError()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/osc/v1/database_clusters.py new/python-troveclient-2.17.0/troveclient/osc/v1/database_clusters.py
--- old/python-troveclient-2.16.0/troveclient/osc/v1/database_clusters.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/osc/v1/database_clusters.py 2018-10-31 15:05:42.000000000 +0100
@@ -18,7 +18,10 @@
import six
from troveclient.i18n import _
+from troveclient.v1.shell import _parse_extended_properties
from troveclient.v1.shell import _parse_instance_options
+from troveclient.v1.shell import EXT_PROPS_HELP
+from troveclient.v1.shell import EXT_PROPS_METAVAR
from troveclient.v1.shell import INSTANCE_HELP
from troveclient.v1.shell import INSTANCE_METAVAR
@@ -165,16 +168,37 @@
help=_('Locality policy to use when creating cluster. '
'Choose one of %(choices)s.'),
)
+ parser.add_argument(
+ '--extended-properties',
+ dest='extended_properties',
+ metavar=EXT_PROPS_METAVAR,
+ default=None,
+ help=EXT_PROPS_HELP,
+ )
+ parser.add_argument(
+ '--configuration',
+ metavar='<configuration>',
+ type=str,
+ default=None,
+ help=_('ID of the configuration group to attach to the cluster.'),
+ )
return parser
def take_action(self, parsed_args):
database = self.app.client_manager.database
instances = _parse_instance_options(database, parsed_args.instances)
- cluster = database.clusters.create(parsed_args.name,
- parsed_args.datastore,
- parsed_args.datastore_version,
- instances=instances,
- locality=parsed_args.locality)
+ extended_properties = {}
+ if parsed_args.extended_properties:
+ extended_properties = _parse_extended_properties(
+ parsed_args.extended_properties)
+ cluster = database.clusters.create(
+ parsed_args.name,
+ parsed_args.datastore,
+ parsed_args.datastore_version,
+ instances=instances,
+ locality=parsed_args.locality,
+ extended_properties=extended_properties,
+ configuration=parsed_args.configuration)
cluster = set_attributes_for_print_detail(cluster)
return zip(*sorted(six.iteritems(cluster)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/osc/v1/database_flavors.py new/python-troveclient-2.17.0/troveclient/osc/v1/database_flavors.py
--- old/python-troveclient-2.16.0/troveclient/osc/v1/database_flavors.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/osc/v1/database_flavors.py 2018-10-31 15:05:42.000000000 +0100
@@ -58,8 +58,8 @@
db_flavors = self.app.client_manager.database.flavors
if parsed_args.datastore_type and parsed_args.datastore_version_id:
flavors = db_flavors.list_datastore_version_associated_flavors(
- datastore_type=parsed_args.datastore_type,
- datastore_version_id=parsed_args.datastore_version_id)
+ datastore=parsed_args.datastore_type,
+ version_id=parsed_args.datastore_version_id)
elif (not parsed_args.datastore_type and not
parsed_args.datastore_version_id):
flavors = db_flavors.list()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/tests/osc/v1/test_database_clusters.py new/python-troveclient-2.17.0/troveclient/tests/osc/v1/test_database_clusters.py
--- old/python-troveclient-2.16.0/troveclient/tests/osc/v1/test_database_clusters.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/tests/osc/v1/test_database_clusters.py 2018-10-31 15:05:42.000000000 +0100
@@ -140,15 +140,21 @@
'flavor="03",volume=3']
parsed_instances = [{'flavor': '02', 'volume': 2},
{'flavor': '03', 'volume': 3}]
+ extended_properties = "foo_properties=foo_value"
+ parsed_extended_properties = {'foo_properties': 'foo_value'}
mock_parse_instance_opts.return_value = parsed_instances
args = ['test-name', 'vertica', '7.1',
'--instance', instances[0],
- '--instance', instances[1]]
+ '--instance', instances[1],
+ '--extended-properties', extended_properties,
+ '--configuration', 'config01']
verifylist = [
('name', 'test-name'),
('datastore', 'vertica'),
('datastore_version', '7.1'),
('instances', instances),
+ ('extended_properties', extended_properties),
+ ('configuration', 'config01'),
]
parsed_args = self.check_parser(self.cmd, args, verifylist)
columns, data = self.cmd.take_action(parsed_args)
@@ -156,7 +162,9 @@
parsed_args.name, parsed_args.datastore,
parsed_args.datastore_version,
instances=parsed_instances,
- locality=parsed_args.locality)
+ locality=parsed_args.locality,
+ extended_properties=parsed_extended_properties,
+ configuration=parsed_args.configuration)
self.assertEqual(self.columns, columns)
self.assertEqual(self.values, data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/tests/osc/v1/test_database_flavors.py new/python-troveclient-2.17.0/troveclient/tests/osc/v1/test_database_flavors.py
--- old/python-troveclient-2.16.0/troveclient/tests/osc/v1/test_database_flavors.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/tests/osc/v1/test_database_flavors.py 2018-10-31 15:05:42.000000000 +0100
@@ -32,6 +32,8 @@
self.cmd = database_flavors.ListDatabaseFlavors(self.app, None)
self.data = [self.fake_flavors.get_flavors_1()]
self.flavor_client.list.return_value = self.data
+ self.flavor_client.list_datastore_version_associated_flavors. \
+ return_value = self.data
def test_flavor_list_defaults(self):
parsed_args = self.check_parser(self.cmd, [], [])
@@ -40,6 +42,18 @@
self.assertEqual(self.columns, columns)
self.assertEqual([self.values], values)
+ def test_flavor_list_with_optional_args(self):
+ args = ['--datastore-type', 'mysql',
+ '--datastore-version-id', '5.6']
+ parsed_args = self.check_parser(self.cmd, args, [])
+ list_flavor_dict = {'datastore': 'mysql',
+ 'version_id': '5.6'}
+ columns, values = self.cmd.take_action(parsed_args)
+ self.flavor_client.list_datastore_version_associated_flavors. \
+ assert_called_once_with(**list_flavor_dict)
+ self.assertEqual(self.columns, columns)
+ self.assertEqual([self.values], values)
+
class TestFlavorShow(TestFlavors):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/tests/test_client.py new/python-troveclient-2.17.0/troveclient/tests/test_client.py
--- old/python-troveclient-2.16.0/troveclient/tests/test_client.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/tests/test_client.py 2018-10-31 15:05:42.000000000 +0100
@@ -44,7 +44,7 @@
'0', version_map)
def test_client_with_auth_system_without_auth_plugin(self):
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
exceptions.AuthSystemNotFound, "AuthSystemNotFound: 'something'",
other_client.HTTPClient, user='user', password='password',
projectid='project', timeout=2, auth_url="http://www.blah.com",
@@ -147,7 +147,7 @@
mock_request.side_effect = requests.exceptions.ConnectionError(
'connection refused')
with mock.patch('requests.request', mock_request):
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
exceptions.ClientException,
'Unable to establish connection: connection refused',
instance.get, '/instances')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/tests/test_clusters.py new/python-troveclient-2.17.0/troveclient/tests/test_clusters.py
--- old/python-troveclient-2.16.0/troveclient/tests/test_clusters.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/tests/test_clusters.py 2018-10-31 15:05:42.000000000 +0100
@@ -72,9 +72,19 @@
clusters_test._create = mock.Mock(side_effect=side_effect_func)
instances = [{'flavor-id': 11, 'volume': 2}]
locality = 'affinity'
+ extended_properties = {
+ 'num_configsvr': 5,
+ 'num_mongos': 7,
+ 'configsvr_volume_size': 11,
+ 'configsvr_volume_type': 'foo_type',
+ 'mongos_volume_size': 12,
+ 'mongos_volume_type': 'bar_type'}
+ configuration = 'test-config'
path, body, resp_key = clusters_test.create("test-name", "datastore",
"datastore-version",
- instances, locality)
+ instances, locality,
+ extended_properties,
+ configuration)
self.assertEqual("/clusters", path)
self.assertEqual("cluster", resp_key)
self.assertEqual("test-name", body["cluster"]["name"])
@@ -83,6 +93,9 @@
body["cluster"]["datastore"]["version"])
self.assertEqual(instances, body["cluster"]["instances"])
self.assertEqual(locality, body["cluster"]["locality"])
+ self.assertEqual(extended_properties,
+ body["cluster"]["extended_properties"])
+ self.assertEqual(configuration, body["cluster"]["configuration"])
def test_list(self):
page_mock = mock.Mock()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/tests/test_instances.py new/python-troveclient-2.17.0/troveclient/tests/test_instances.py
--- old/python-troveclient-2.16.0/troveclient/tests/test_instances.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/tests/test_instances.py 2018-10-31 15:05:42.000000000 +0100
@@ -124,6 +124,16 @@
page_mock.assert_called_with("/instances", "instances", limit, marker,
include_clustered)
+ def test_detailed_list(self):
+ page_mock = mock.Mock()
+ self.instances._paginated = page_mock
+ limit = "test-limit"
+ marker = "test-marker"
+ include_clustered = {'include_clustered': False}
+ self.instances.list(limit, marker, detailed=True)
+ page_mock.assert_called_with("/instances/detail", "instances", limit,
+ marker, include_clustered)
+
def test_get(self):
def side_effect_func(path, inst):
return path, inst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/tests/test_v1_shell.py new/python-troveclient-2.17.0/troveclient/tests/test_v1_shell.py
--- old/python-troveclient-2.16.0/troveclient/tests/test_v1_shell.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/tests/test_v1_shell.py 2018-10-31 15:05:42.000000000 +0100
@@ -223,7 +223,7 @@
cmd = 'flavor-list --datastore_type mysql'
exepcted_error_msg = ('Missing argument\(s\): '
'datastore_type, datastore_version_id')
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
exceptions.MissingArgs, exepcted_error_msg, self.run_command,
cmd)
@@ -258,7 +258,7 @@
cmd = 'volume-type-list --datastore_type mysql'
exepcted_error_msg = ('Missing argument\(s\): '
'datastore_type, datastore_version_id')
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
exceptions.MissingArgs, exepcted_error_msg, self.run_command,
cmd)
@@ -390,7 +390,7 @@
def test_boot_locality_error(self):
cmd = ('create slave-1 1 --size 1 --locality=affinity '
'--replica_of=master_1')
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
exceptions.ValidationError,
'Cannot specify locality when adding replicas to existing '
'master.',
@@ -399,7 +399,7 @@
def test_boot_nic_error(self):
cmd = ('create test-member-1 1 --size 1 --volume_type lvm '
'--nic net-id=some-id,port-id=some-id')
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
exceptions.ValidationError,
'Invalid NIC argument: nic=\'net-id=some-id,port-id=some-id\'',
self.run_command, cmd)
@@ -474,7 +474,7 @@
def test_cluster_create_error(self):
cmd = ('cluster-create test-clstr vertica 7.1 --instance volume=2 '
'--instance flavor=2,volume=1')
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
exceptions.MissingArgs, "Missing option 'flavor'",
self.run_command, cmd)
@@ -516,6 +516,50 @@
'name': 'test-clstr2',
'locality': 'affinity'}})
+ def test_cluster_create_with_configuration(self):
+ cmd = ('cluster-create test-clstr2 redis 3.0 '
+ '--configuration=config01 '
+ '--instance flavor=2,volume=1 '
+ '--instance flavor=02,volume=1 '
+ '--instance flavor=2,volume=1 ')
+ self.run_command(cmd)
+ self.assert_called_anytime(
+ 'POST', '/clusters',
+ {'cluster': {
+ 'instances': [
+ {'flavorRef': '2',
+ 'volume': {'size': '1'}},
+ {'flavorRef': '02',
+ 'volume': {'size': '1'}},
+ {'flavorRef': '2',
+ 'volume': {'size': '1'}},
+ ],
+ 'datastore': {'version': '3.0', 'type': 'redis'},
+ 'name': 'test-clstr2',
+ 'configuration': 'config01'}})
+
+ def test_cluster_create_with_extended_properties(self):
+ cmd = ('cluster-create test-clstr3 mongodb 4.0 '
+ '--instance flavor=2,volume=1 '
+ '--instance flavor=02,volume=1 '
+ '--instance flavor=2,volume=1 '
+ '--extended_properties num_mongos=3')
+ self.run_command(cmd)
+ self.assert_called_anytime(
+ 'POST', '/clusters',
+ {'cluster': {
+ 'instances': [
+ {'flavorRef': '2',
+ 'volume': {'size': '1'}},
+ {'flavorRef': '02',
+ 'volume': {'size': '1'}},
+ {'flavorRef': '2',
+ 'volume': {'size': '1'}},
+ ],
+ 'datastore': {'version': '4.0', 'type': 'mongodb'},
+ 'name': 'test-clstr3',
+ 'extended_properties': {'num_mongos': '3'}}})
+
def test_cluster_create_with_nic_az(self):
cmd = ('cluster-create test-clstr1 vertica 7.1 '
'--instance flavor=2,volume=2,nic=\'net-id=some-id\','
@@ -548,7 +592,7 @@
'port-id=some-port-id,availability_zone=2 '
'--instance flavor=2,volume=1,nic=net-id=some-id,'
'port-id=some-port-id,availability_zone=2')
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
exceptions.ValidationError, "Invalid 'nic' option. "
"The value must be quoted.",
self.run_command, cmd)
@@ -559,7 +603,7 @@
'availability_zone=2 '
'--instance flavor=2,volume=1,nic=\'v4-fixed-ip=10.0.0.1\','
'availability_zone=2')
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
exceptions.ValidationError, 'Invalid NIC argument',
self.run_command, cmd)
@@ -582,9 +626,9 @@
def test_datastore_version_show_error(self):
expected_error_msg = ('The datastore name or id is required to '
'retrieve a datastore version by name.')
- self.assertRaisesRegexp(exceptions.NoUniqueMatch, expected_error_msg,
- self.run_command,
- 'datastore-version-show v-56')
+ self.assertRaisesRegex(exceptions.NoUniqueMatch, expected_error_msg,
+ self.run_command,
+ 'datastore-version-show v-56')
def test_configuration_list(self):
self.run_command('configuration-list')
@@ -616,7 +660,7 @@
expected_error_msg = ('The datastore name or id is required to '
'retrieve the parameters for the configuration '
'group by name')
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
exceptions.NoUniqueMatch, expected_error_msg,
self.run_command, 'configuration-parameter-list v-156')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/v1/clusters.py new/python-troveclient-2.17.0/troveclient/v1/clusters.py
--- old/python-troveclient-2.16.0/troveclient/v1/clusters.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/v1/clusters.py 2018-10-31 15:05:42.000000000 +0100
@@ -37,7 +37,7 @@
resource_class = Cluster
def create(self, name, datastore, datastore_version, instances=None,
- locality=None):
+ locality=None, extended_properties=None, configuration=None):
"""Create (boot) a new cluster."""
body = {"cluster": {
"name": name
@@ -51,6 +51,10 @@
body["cluster"]["instances"] = instances
if locality:
body["cluster"]["locality"] = locality
+ if extended_properties:
+ body["cluster"]["extended_properties"] = extended_properties
+ if configuration:
+ body["cluster"]["configuration"] = configuration
return self._create("/clusters", body, "cluster")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/v1/instances.py new/python-troveclient-2.17.0/troveclient/v1/instances.py
--- old/python-troveclient-2.16.0/troveclient/v1/instances.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/v1/instances.py 2018-10-31 15:05:42.000000000 +0100
@@ -179,12 +179,15 @@
resp, body = self.api.client.patch(url, body=body)
common.check_for_exceptions(resp, body, url)
- def list(self, limit=None, marker=None, include_clustered=False):
+ def list(self, limit=None, marker=None, include_clustered=False,
+ detailed=False):
"""Get a list of all instances.
:rtype: list of :class:`Instance`.
"""
- return self._paginated("/instances", "instances", limit, marker,
+ detail = "/detail" if detailed else ""
+ url = "/instances%s" % detail
+ return self._paginated(url, "instances", limit, marker,
{"include_clustered": include_clustered})
def get(self, instance):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-troveclient-2.16.0/troveclient/v1/shell.py new/python-troveclient-2.17.0/troveclient/v1/shell.py
--- old/python-troveclient-2.16.0/troveclient/v1/shell.py 2018-07-26 16:04:48.000000000 +0200
+++ new/python-troveclient-2.17.0/troveclient/v1/shell.py 2018-10-31 15:05:42.000000000 +0100
@@ -41,6 +41,17 @@
NO_LOG_FOUND_ERROR = _("ERROR: No published '%(log_name)s' log was found for "
"%(instance)s.")
LOCALITY_DOMAIN = ['affinity', 'anti-affinity']
+EXT_PROPS_METAVAR = INSTANCE_METAVAR
+EXT_PROPS_HELP = _("Add extended properties for cluster create. "
+ "Currently only support MongoDB options, other databases "
+ "will be added in the future. "
+ "MongoDB: "
+ " num_configsvr=<number_of_configsvr>, "
+ " num_mongos=<number_of_mongos>, "
+ " configsvr_volume_size=<disk_size_in_GB>, "
+ " configsvr_volume_type=<volume_type>, "
+ " mongos_volume_size=<disk_size_in_GB>, "
+ " mongos_volume_type=<volume_type>.")
try:
import simplejson as json
@@ -860,6 +871,11 @@
return instances
+def _parse_extended_properties(extended_properties):
+ return dict([(k, v) for (k, v) in [kv.strip().split("=")
+ for kv in extended_properties.split(",")]])
+
+
@utils.arg('name',
metavar='<name>',
type=str,
@@ -879,15 +895,30 @@
choices=LOCALITY_DOMAIN,
help=_('Locality policy to use when creating cluster. Choose '
'one of %(choices)s.'))
+(a)utils.arg('--extended_properties',
+ metavar=EXT_PROPS_METAVAR,
+ default=None,
+ help=EXT_PROPS_HELP)
+(a)utils.arg('--configuration',
+ metavar='<configuration>',
+ type=str,
+ default=None,
+ help=_('ID of the configuration group to attach to the cluster.'))
@utils.service_type('database')
def do_cluster_create(cs, args):
"""Creates a new cluster."""
instances = _parse_instance_options(cs, args.instances)
+ extended_properties = {}
+ if args.extended_properties:
+ extended_properties = _parse_extended_properties(
+ args.extended_properties)
cluster = cs.clusters.create(args.name,
args.datastore,
args.datastore_version,
instances=instances,
- locality=args.locality)
+ locality=args.locality,
+ extended_properties=extended_properties,
+ configuration=args.configuration)
_print_cluster(cluster)
1
0
Hello community,
here is the log from the commit of package python-swiftclient for openSUSE:Factory checked in at 2019-05-03 22:43:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-swiftclient (Old)
and /work/SRC/openSUSE:Factory/.python-swiftclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-swiftclient"
Fri May 3 22:43:20 2019 rev:26 rq:692880 version:3.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-swiftclient/python-swiftclient.changes 2018-09-07 15:39:38.198521161 +0200
+++ /work/SRC/openSUSE:Factory/.python-swiftclient.new.5148/python-swiftclient.changes 2019-05-03 22:43:21.907360024 +0200
@@ -1,0 +2,28 @@
+Mon Apr 8 12:33:46 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.7.0
+ - Stop leaking quite so many connections
+ - authors/changelog updates for release
+ - Switch to stestr
+ - Add .idea into .gitignore
+ - Make py36 unit test job voting
+ - Use template for lower-constraints
+ - Update reno for stable/rocky
+ - Add python 3.6 unit test job
+ - import zuul job settings from project-config
+ - Add release note link in README
+ - Change openstack-dev to openstack-discuss
+ - update .functests to run stestr
+ - Add py37 check/gate jobs; add py37 to default tox env list
+ - Stop lazy importing keystoneclient
+ - add python 3.6 unit test job
+ - Add Python 3.6 classifier to setup.cfg
+ - switch documentation job to new PTI
+ - Add delimiter to get_account().
+ - fix tox python3 overrides
+ - Update release to 3.7.0
+ - Use Swift's in-tree DSVM test
+ - Update hacking version
+ - py2 functional testing
+
+-------------------------------------------------------------------
Old:
----
python-swiftclient-3.6.0.tar.gz
New:
----
python-swiftclient-3.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-swiftclient.spec ++++++
--- /var/tmp/diff_new_pack.WGUReQ/_old 2019-05-03 22:43:22.531361338 +0200
+++ /var/tmp/diff_new_pack.WGUReQ/_new 2019-05-03 22:43:22.531361338 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-swiftclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,32 +12,30 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-swiftclient
-Version: 3.6.0
+Version: 3.7.0
Release: 0
Summary: OpenStack Object Storage API Client Library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-swiftclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-swiftclient/python-…
+Source0: https://files.pythonhosted.org/packages/source/p/python-swiftclient/python-…
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-keystoneclient
BuildRequires: python2-mock
BuildRequires: python2-pbr
BuildRequires: python2-setuptools
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testscenarios
-BuildRequires: python3-devel
BuildRequires: python3-keystoneclient
BuildRequires: python3-mock
BuildRequires: python3-pbr
BuildRequires: python3-setuptools
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testscenarios
Requires: python-requests >= 1.1.0
Requires: python-six >= 1.9.0
@@ -65,7 +63,6 @@
BuildRequires: python-Sphinx
BuildRequires: python-futures >= 3.0.0
BuildRequires: python-openstackdocstheme
-BuildRequires: python-oslosphinx
Requires: %{name} = %{version}
%description -n python-swiftclient-doc
@@ -75,7 +72,7 @@
This package contains documentation files for %{name}.
%prep
-%autosetup -p1 -n python-swiftclient-3.6.0
+%autosetup -p1 -n python-swiftclient-3.7.0
%py_req_cleanup
%build
@@ -95,9 +92,7 @@
%python_uninstall_alternative swift
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.WGUReQ/_old 2019-05-03 22:43:22.559361397 +0200
+++ /var/tmp/diff_new_pack.WGUReQ/_new 2019-05-03 22:43:22.559361397 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-swiftclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-swiftclient/stable/rocky…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-swiftclient/stable/stein…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-swiftclient</param>
</service>
++++++ python-swiftclient-3.6.0.tar.gz -> python-swiftclient-3.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/.functests new/python-swiftclient-3.7.0/.functests
--- old/python-swiftclient-3.6.0/.functests 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/.functests 2019-03-05 14:10:18.000000000 +0100
@@ -2,9 +2,13 @@
set -e
export OS_TEST_PATH='tests.functional'
-python setup.py testr --coverage --testr-args="--concurrency=1"
+export PYTHON='coverage run --source swiftclient --parallel-mode'
+stestr run --concurrency=1
RET=$?
+coverage combine
+coverage html -d cover
+coverage xml -o cover/coverage.xml
coverage report -m
rm -f .coverage
exit $RET
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/.mailmap new/python-swiftclient-3.7.0/.mailmap
--- old/python-swiftclient-3.6.0/.mailmap 2018-07-25 18:19:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/.mailmap 2019-03-05 14:10:18.000000000 +0100
@@ -95,3 +95,5 @@
Shashi Kant <shashi.kant(a)nectechnologies.in>
Nandini Tata <nandini.tata(a)intel.com> <nandini.tata.15(a)gmail.com>
Flavio Percoco <flaper87(a)gmail.com>
+Timur Alperovich <timuralp(a)swiftstack.com> <timur(a)timuralp.com>
+Thiago da Silva <thiagodasilva(a)gmail.com> <thiago(a)redhat.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/.stestr.conf new/python-swiftclient-3.7.0/.stestr.conf
--- old/python-swiftclient-3.6.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/python-swiftclient-3.7.0/.stestr.conf 2019-03-05 14:10:18.000000000 +0100
@@ -0,0 +1,4 @@
+[DEFAULT]
+test_path=${OS_TEST_PATH:-./tests/unit}
+top_dir=./
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/.testr.conf new/python-swiftclient-3.7.0/.testr.conf
--- old/python-swiftclient-3.6.0/.testr.conf 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-[DEFAULT]
-test_command=${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH:-./tests/unit} $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/.zuul.yaml new/python-swiftclient-3.7.0/.zuul.yaml
--- old/python-swiftclient-3.6.0/.zuul.yaml 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/.zuul.yaml 2019-03-05 14:10:18.000000000 +0100
@@ -1,7 +1,59 @@
+- job:
+ name: swiftclient-swift-functional
+ parent: swift-dsvm-functional
+ description: |
+ Run swift's functional tests with python-swiftclient
+ installed from source instead as package from PyPI.
+ # Ensure that we install python-swiftclient from git and
+ # do not install from pypi. This is needed since the parent
+ # job sets zuul_work_dir to the swift directory and uses tox
+ # for installation.
+ required-projects:
+ - git.openstack.org/openstack/python-swiftclient
+
+- job:
+ name: swiftclient-functional
+ parent: swift-dsvm-functional
+ description: |
+ Run functional tests of python-swiftclient with
+ python-swiftclient installed from source instead as package from
+ PyPI.
+ required-projects:
+ - git.openstack.org/openstack/python-swiftclient
+ vars:
+ # Override value from parent job to use swiftclient tests
+ zuul_work_dir: "{{ zuul.projects['git.openstack.org/openstack/python-swiftclient'].src_dir }}"
+
+- job:
+ name: swiftclient-functional-py2
+ parent: swiftclient-functional
+ description: |
+ Run functional tests of python-swiftclient under Python 2
+ vars:
+ tox_envlist: py2func
+
- project:
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - openstack-lower-constraints-jobs
+ - openstack-pypy-jobs-nonvoting
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
check:
jobs:
- - openstack-tox-lower-constraints
+ - swiftclient-swift-functional
+ - swiftclient-functional
+ - swiftclient-functional-py2
gate:
jobs:
- - openstack-tox-lower-constraints
+ - swiftclient-swift-functional
+ - swiftclient-functional
+ - swiftclient-functional-py2
+ post:
+ jobs:
+ - openstack-tox-cover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/AUTHORS new/python-swiftclient-3.7.0/AUTHORS
--- old/python-swiftclient-3.6.0/AUTHORS 2018-07-25 18:19:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/AUTHORS 2019-03-05 14:10:18.000000000 +0100
@@ -92,6 +92,7 @@
Nandini Tata (nandini.tata(a)intel.com)
Nelson Marcos (nelsonmarcos(a)gmail.com)
Nguyen Hai (nguyentrihai93(a)gmail.com)
+Nguyen Hai Truong (truongnh(a)vn.fujitsu.com)
Nguyen Hung Phuong (phuongnh(a)vn.fujitsu.com)
Nick Craig-Wood (nick(a)craig-wood.com)
Ondrej Novy (ondrej.novy(a)firma.seznam.cz)
@@ -103,6 +104,7 @@
Petr Kovar (pkovar(a)redhat.com)
Pradeep Kumar Singh (pradeep.singh(a)nectechnologies.in)
Pratik Mallya (pratik.mallya(a)gmail.com)
+qingszhao (zhao.daqing(a)99cloud.net)
Qiu Yu (qiuyu(a)ebaysf.com)
Ray Chen (oldsharp(a)163.com)
ricolin (rico.l(a)inwinstack.com)
@@ -124,11 +126,12 @@
Steve Martinelli (stevemar(a)ca.ibm.com)
Steven Hardy (shardy(a)redhat.com)
Stuart McLaren (stuart.mclaren(a)hpe.com)
+sunjia (sunjia(a)inspur.com)
Sushil Kumar (sushil.kumar2(a)globallogic.com)
tanlin (lin.tan(a)intel.com)
Taurus Cheung (Taurus.Cheung(a)harmonicinc.com)
TheSriram (sriram(a)klusterkloud.com)
-Thiago da Silva (thiago(a)redhat.com)
+Thiago da Silva (thiagodasilva(a)gmail.com)
Thomas Goirand (thomas(a)goirand.fr)
Tihomir Trifonov (t.trifonov(a)gmail.com)
Tim Burke (tim.burke(a)gmail.com)
@@ -141,9 +144,11 @@
venkatamahesh (venkatamaheshkotha(a)gmail.com)
Victor Stinner (victor.stinner(a)enovance.com)
Vitaly Gridnev (vgridnev(a)mirantis.com)
+Vu Cong Tuan (tuanvc(a)vn.fujitsu.com)
wangqi (wang.qi(a)99cloud.net)
wangxiyuan (wangxiyuan(a)huawei.com)
Wu Wenxiang (wu.wenxiang(a)99cloud.net)
+wu.chunyang (wu.chunyang(a)99cloud.net)
YangLei (yanglyy(a)cn.ibm.com)
yangxurong (yangxurong(a)huawei.com)
You Yamagata (bi.yamagata(a)gmail.com)
@@ -157,3 +162,5 @@
zhangyanxian (zhangyanxianmail(a)163.com)
zheng yin (yin.zheng(a)easystack.cn)
Zhenguo Niu (zhenguo(a)unitedstack.com)
+ZhijunWei (wzj334965317(a)outlook.com)
+zhubx007 (zhu.boxiang(a)99cloud.net)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/ChangeLog new/python-swiftclient-3.7.0/ChangeLog
--- old/python-swiftclient-3.6.0/ChangeLog 2018-07-25 18:19:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/ChangeLog 2019-03-05 14:10:22.000000000 +0100
@@ -1,3 +1,15 @@
+3.7.0
+-----
+
+* Added the delimiter keyword parameter to `get_account()` to match the
+ functionality of `get_container()`.
+
+* Fixed an issue in the client module where socket connections weren't
+ closed properly before being dereferenced.
+
+* Various other minor bug fixes and improvements.
+
+
3.6.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/PKG-INFO new/python-swiftclient-3.7.0/PKG-INFO
--- old/python-swiftclient-3.6.0/PKG-INFO 2018-07-25 18:21:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/PKG-INFO 2019-03-05 14:11:12.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: python-swiftclient
-Version: 3.6.0
+Version: 3.7.0
Summary: OpenStack Object Storage API Client Library
Home-page: https://docs.openstack.org/python-swiftclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -45,6 +45,7 @@
* `Source`_
* `Specs`_
* `How to Contribute`_
+ * `Release Notes`_
.. _PyPI: https://pypi.org/project/python-swiftclient
.. _Online Documentation: https://docs.openstack.org/python-swiftclient/latest/
@@ -54,7 +55,7 @@
.. _Source: https://git.openstack.org/cgit/openstack/python-swiftclient
.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html
.. _Specs: https://specs.openstack.org/openstack/swift-specs/
-
+ .. _Release Notes: https://docs.openstack.org/releasenotes/python-swiftclient
.. contents:: Contents:
:local:
@@ -72,5 +73,7 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
-Provides-Extra: keystone
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
Provides-Extra: test
+Provides-Extra: keystone
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/README.rst new/python-swiftclient-3.7.0/README.rst
--- old/python-swiftclient-3.6.0/README.rst 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/README.rst 2019-03-05 14:10:18.000000000 +0100
@@ -37,6 +37,7 @@
* `Source`_
* `Specs`_
* `How to Contribute`_
+* `Release Notes`_
.. _PyPI: https://pypi.org/project/python-swiftclient
.. _Online Documentation: https://docs.openstack.org/python-swiftclient/latest/
@@ -46,7 +47,7 @@
.. _Source: https://git.openstack.org/cgit/openstack/python-swiftclient
.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html
.. _Specs: https://specs.openstack.org/openstack/swift-specs/
-
+.. _Release Notes: https://docs.openstack.org/releasenotes/python-swiftclient
.. contents:: Contents:
:local:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/RELEASENOTES.rst new/python-swiftclient-3.7.0/RELEASENOTES.rst
--- old/python-swiftclient-3.6.0/RELEASENOTES.rst 2018-07-25 18:21:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,94 +0,0 @@
-==================
-python-swiftclient
-==================
-
-.. _python-swiftclient_3.6.0:
-
-3.6.0
-=====
-
-.. _python-swiftclient_3.6.0_New Features:
-
-New Features
-------------
-
-.. releasenotes/notes/360_notes-1ec385df13a3a735.yaml @ 172a09a4019dc637e525d14aef76f10e812385dd
-
-- Add the ``--prompt`` option for the CLI which will cause the user to be
- prompted to enter a password. Any password otherwise specified by
- ``--key`` , ``--os-password`` or an environment variable will be ignored.
-
-.. releasenotes/notes/360_notes-1ec385df13a3a735.yaml @ 172a09a4019dc637e525d14aef76f10e812385dd
-
-- Added bash completion support to the ``swift`` CLI. Enable this by sourcing
- the included ``tools/swift.bash_completion`` file. Make it permanent by
- including this file in the system's ``/etc/bash_completion.d`` directory.
-
-.. releasenotes/notes/360_notes-1ec385df13a3a735.yaml @ 172a09a4019dc637e525d14aef76f10e812385dd
-
-- Add ability to generate a temporary URL with an IP range restriction.
- TempURLs with IP restrictions are supported are Swift 2.19.0 or later.
-
-.. releasenotes/notes/360_notes-1ec385df13a3a735.yaml @ 172a09a4019dc637e525d14aef76f10e812385dd
-
-- The client.py SDK now supports a ``query_string`` option on the
- ``head_object()`` method. This is useful for finding information on
- SLO/DLO manifests without fetching the entire manifest.
-
-.. releasenotes/notes/360_notes-1ec385df13a3a735.yaml @ 172a09a4019dc637e525d14aef76f10e812385dd
-
-- The client.py SDK now respects ``region_name`` when using sessions.
-
-.. releasenotes/notes/360_notes-1ec385df13a3a735.yaml @ 172a09a4019dc637e525d14aef76f10e812385dd
-
-- Added a ``.close()`` method to an object response, allowing clients to give
- up on reading the rest of the response body, if they so choose.
-
-.. releasenotes/notes/360_notes-1ec385df13a3a735.yaml @ 172a09a4019dc637e525d14aef76f10e812385dd
-
-- Fixed a bug where using ``--debug`` in the CLI with unicode account names
- would cause a client crash.
-
-.. releasenotes/notes/360_notes-1ec385df13a3a735.yaml @ 172a09a4019dc637e525d14aef76f10e812385dd
-
-- Make OS_AUTH_URL work in DevStack (for testing) by default.
-
-.. releasenotes/notes/360_notes-1ec385df13a3a735.yaml @ 172a09a4019dc637e525d14aef76f10e812385dd
-
-- Dropped Python 3.4 testing.
-
-.. releasenotes/notes/360_notes-1ec385df13a3a735.yaml @ 172a09a4019dc637e525d14aef76f10e812385dd
-
-- Various other minor bug fixes and improvements.
-
-
-.. _python-swiftclient_3.5.0:
-
-3.5.0
-=====
-
-.. _python-swiftclient_3.5.0_New Features:
-
-New Features
-------------
-
-.. releasenotes/notes/350_notes-ad0ae19704b2eb88.yaml @ b91651eba09ed43903c55f24e3a1a52aefeea75f
-
-- Allow for object uploads > 5GB from stdin.
-
- When uploading from standard input, swiftclient will turn the upload
- into an SLO in the case of large objects. By default, input larger
- than 10MB will be uploaded as an SLO with 10MB segment sizes. Users
- can also supply the ``--segment-size`` option to alter that
- threshold and the SLO segment size. One segment is buffered in
- memory (which is why 10MB default was chosen).
-
-.. releasenotes/notes/350_notes-ad0ae19704b2eb88.yaml @ b91651eba09ed43903c55f24e3a1a52aefeea75f
-
-- The ``--meta`` option can now be set on the upload command.
-
-.. releasenotes/notes/350_notes-ad0ae19704b2eb88.yaml @ b91651eba09ed43903c55f24e3a1a52aefeea75f
-
-- Updated PyPy test dependency references to be more accurate
- on different distros.
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/lower-constraints.txt new/python-swiftclient-3.7.0/lower-constraints.txt
--- old/python-swiftclient-3.6.0/lower-constraints.txt 2018-07-25 18:19:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/lower-constraints.txt 2019-03-05 14:10:18.000000000 +0100
@@ -39,7 +39,7 @@
snowballstemmer==1.2.1
sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
-testrepository==0.0.18
+stestr==2.0.0
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/python_swiftclient.egg-info/PKG-INFO new/python-swiftclient-3.7.0/python_swiftclient.egg-info/PKG-INFO
--- old/python-swiftclient-3.6.0/python_swiftclient.egg-info/PKG-INFO 2018-07-25 18:21:41.000000000 +0200
+++ new/python-swiftclient-3.7.0/python_swiftclient.egg-info/PKG-INFO 2019-03-05 14:11:12.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: python-swiftclient
-Version: 3.6.0
+Version: 3.7.0
Summary: OpenStack Object Storage API Client Library
Home-page: https://docs.openstack.org/python-swiftclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -45,6 +45,7 @@
* `Source`_
* `Specs`_
* `How to Contribute`_
+ * `Release Notes`_
.. _PyPI: https://pypi.org/project/python-swiftclient
.. _Online Documentation: https://docs.openstack.org/python-swiftclient/latest/
@@ -54,7 +55,7 @@
.. _Source: https://git.openstack.org/cgit/openstack/python-swiftclient
.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html
.. _Specs: https://specs.openstack.org/openstack/swift-specs/
-
+ .. _Release Notes: https://docs.openstack.org/releasenotes/python-swiftclient
.. contents:: Contents:
:local:
@@ -72,5 +73,7 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
-Provides-Extra: keystone
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: 3.7
Provides-Extra: test
+Provides-Extra: keystone
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/python_swiftclient.egg-info/SOURCES.txt new/python-swiftclient-3.7.0/python_swiftclient.egg-info/SOURCES.txt
--- old/python-swiftclient-3.6.0/python_swiftclient.egg-info/SOURCES.txt 2018-07-25 18:21:41.000000000 +0200
+++ new/python-swiftclient-3.7.0/python_swiftclient.egg-info/SOURCES.txt 2019-03-05 14:11:12.000000000 +0100
@@ -2,7 +2,7 @@
.functests
.mailmap
.manpages
-.testr.conf
+.stestr.conf
.unittests
.zuul.yaml
AUTHORS
@@ -51,6 +51,7 @@
releasenotes/notes/340_notes-1777780bbfdb4d96.yaml
releasenotes/notes/350_notes-ad0ae19704b2eb88.yaml
releasenotes/notes/360_notes-1ec385df13a3a735.yaml
+releasenotes/notes/361_notes-59e020e68bcdd709.yaml
releasenotes/source/conf.py
releasenotes/source/current.rst
releasenotes/source/index.rst
@@ -58,6 +59,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
swiftclient/__init__.py
swiftclient/authv1.py
swiftclient/client.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/python_swiftclient.egg-info/pbr.json new/python-swiftclient-3.7.0/python_swiftclient.egg-info/pbr.json
--- old/python-swiftclient-3.6.0/python_swiftclient.egg-info/pbr.json 2018-07-25 18:21:41.000000000 +0200
+++ new/python-swiftclient-3.7.0/python_swiftclient.egg-info/pbr.json 2019-03-05 14:11:12.000000000 +0100
@@ -1 +1 @@
-{"git_version": "1cf074f", "is_release": true}
\ No newline at end of file
+{"git_version": "991a6ce", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/python_swiftclient.egg-info/requires.txt new/python-swiftclient-3.7.0/python_swiftclient.egg-info/requires.txt
--- old/python-swiftclient-3.6.0/python_swiftclient.egg-info/requires.txt 2018-07-25 18:21:41.000000000 +0200
+++ new/python-swiftclient-3.7.0/python_swiftclient.egg-info/requires.txt 2019-03-05 14:11:12.000000000 +0100
@@ -1,17 +1,19 @@
-futures>=3.0.0
requests>=1.1.0
six>=1.9.0
+[:(python_version=='2.7' or python_version=='2.6')]
+futures>=3.0.0
+
[keystone]
python-keystoneclient>=0.7.0
[test]
-hacking<0.11,>=0.10.0
+hacking<1.2.0,>=1.1.0
coverage!=4.4,>=4.0
keystoneauth1>=3.4.0
mock>=1.2.0
oslosphinx>=4.7.0
sphinx!=1.6.6,!=1.6.7,>=1.6.2
-testrepository>=0.0.18
+stestr>=2.0.0
reno>=2.5.0
openstackdocstheme>=1.18.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/releasenotes/notes/361_notes-59e020e68bcdd709.yaml new/python-swiftclient-3.7.0/releasenotes/notes/361_notes-59e020e68bcdd709.yaml
--- old/python-swiftclient-3.6.0/releasenotes/notes/361_notes-59e020e68bcdd709.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-swiftclient-3.7.0/releasenotes/notes/361_notes-59e020e68bcdd709.yaml 2019-03-05 14:10:18.000000000 +0100
@@ -0,0 +1,12 @@
+---
+fixes:
+ - |
+ Added the delimiter keyword parameter to ``get_account()`` to match the
+ functionality of ``get_container()``.
+
+ - |
+ Fixed an issue in the client module where socket connections weren't
+ closed properly before being dereferenced.
+
+ - |
+ Various other minor bug fixes and improvements.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/releasenotes/notes/reno.cache new/python-swiftclient-3.7.0/releasenotes/notes/reno.cache
--- old/python-swiftclient-3.6.0/releasenotes/notes/reno.cache 2018-07-25 18:21:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,74 +0,0 @@
----
-file-contents:
- releasenotes/notes/350_notes-ad0ae19704b2eb88.yaml:
- features: ['Allow for object uploads > 5GB from stdin.
-
-
- When uploading from standard input, swiftclient will turn the upload
-
- into an SLO in the case of large objects. By default, input larger
-
- than 10MB will be uploaded as an SLO with 10MB segment sizes. Users
-
- can also supply the ``--segment-size`` option to alter that
-
- threshold and the SLO segment size. One segment is buffered in
-
- memory (which is why 10MB default was chosen).
-
- ', 'The ``--meta`` option can now be set on the upload command.
-
- ', 'Updated PyPy test dependency references to be more accurate
-
- on different distros.
-
- ']
- releasenotes/notes/360_notes-1ec385df13a3a735.yaml:
- features: ['Add the ``--prompt`` option for the CLI which will cause the user
- to be
-
- prompted to enter a password. Any password otherwise specified by
-
- ``--key`` , ``--os-password`` or an environment variable will be ignored.
-
- ', 'Added bash completion support to the ``swift`` CLI. Enable this by sourcing
-
- the included ``tools/swift.bash_completion`` file. Make it permanent by
-
- including this file in the system''s ``/etc/bash_completion.d`` directory.
-
- ', 'Add ability to generate a temporary URL with an IP range restriction.
-
- TempURLs with IP restrictions are supported are Swift 2.19.0 or later.
-
- ', 'The client.py SDK now supports a ``query_string`` option on the
-
- ``head_object()`` method. This is useful for finding information on
-
- SLO/DLO manifests without fetching the entire manifest.
-
- ', 'The client.py SDK now respects ``region_name`` when using sessions.
-
- ', 'Added a ``.close()`` method to an object response, allowing clients to
- give
-
- up on reading the rest of the response body, if they so choose.
-
- ', 'Fixed a bug where using ``--debug`` in the CLI with unicode account names
-
- would cause a client crash.
-
- ', 'Make OS_AUTH_URL work in DevStack (for testing) by default.
-
- ', 'Dropped Python 3.4 testing.
-
- ', 'Various other minor bug fixes and improvements.
-
- ']
-notes:
-- files:
- - [releasenotes/notes/360_notes-1ec385df13a3a735.yaml, 172a09a4019dc637e525d14aef76f10e812385dd]
- version: 3.6.0
-- files:
- - [releasenotes/notes/350_notes-ad0ae19704b2eb88.yaml, b91651eba09ed43903c55f24e3a1a52aefeea75f]
- version: 3.5.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/releasenotes/source/index.rst new/python-swiftclient-3.7.0/releasenotes/source/index.rst
--- old/python-swiftclient-3.6.0/releasenotes/source/index.rst 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/releasenotes/source/index.rst 2019-03-05 14:10:18.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
current
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/releasenotes/source/rocky.rst new/python-swiftclient-3.7.0/releasenotes/source/rocky.rst
--- old/python-swiftclient-3.6.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-swiftclient-3.7.0/releasenotes/source/rocky.rst 2019-03-05 14:10:18.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/setup.cfg new/python-swiftclient-3.7.0/setup.cfg
--- old/python-swiftclient-3.6.0/setup.cfg 2018-07-25 18:21:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/setup.cfg 2019-03-05 14:11:12.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/python-swiftclient/latest/
classifier =
Environment :: OpenStack
@@ -18,6 +18,8 @@
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
+ Programming Language :: Python :: 3.7
[global]
setup-hooks =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/swiftclient/client.py new/python-swiftclient-3.7.0/swiftclient/client.py
--- old/python-swiftclient-3.6.0/swiftclient/client.py 2018-07-25 18:19:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/swiftclient/client.py 2019-03-05 14:10:18.000000000 +0100
@@ -60,6 +60,19 @@
def createLock(self):
self.lock = None
+ksexceptions = ksclient_v2 = ksclient_v3 = None
+try:
+ from keystoneclient import exceptions as ksexceptions
+ # prevent keystoneclient warning us that it has no log handlers
+ logging.getLogger('keystoneclient').addHandler(NullHandler())
+ from keystoneclient.v2_0 import client as ksclient_v2
+except ImportError:
+ pass
+try:
+ from keystoneclient.v3 import client as ksclient_v3
+except ImportError:
+ pass
+
# requests version 1.2.3 try to encode headers in ascii, preventing
# utf-8 encoded header to be 'prepared'
if StrictVersion(requests.__version__) < StrictVersion('2.0.0'):
@@ -235,8 +248,8 @@
value = encode_utf8(value)
header = header.lower()
- if (isinstance(header, six.string_types)
- and header.startswith(USER_METADATA_TYPE)):
+ if (isinstance(header, six.string_types) and
+ header.startswith(USER_METADATA_TYPE)):
header = encode_utf8(header)
ret[header] = value
@@ -389,6 +402,7 @@
self.request_session = requests.Session()
# Don't use requests's default headers
self.request_session.headers = None
+ self.resp = None
if self.parsed_url.scheme not in ('http', 'https'):
raise ClientException('Unsupported scheme "%s" in url "%s"'
% (self.parsed_url.scheme, url))
@@ -493,6 +507,11 @@
return self.resp
+ def close(self):
+ if self.resp:
+ self.resp.close()
+ self.request_session.close()
+
def http_connection(*arg, **kwarg):
""":returns: tuple of (parsed url, connection object)"""
@@ -514,6 +533,8 @@
conn.request(method, parsed.path, '', headers)
resp = conn.getresponse()
body = resp.read()
+ resp.close()
+ conn.close()
http_log((url, method,), headers, resp, body)
url = resp.getheader('x-storage-url')
@@ -540,25 +561,6 @@
return get_auth_keystone(auth_url, user, key, os_options, **kwargs)
-def _import_keystone_client(auth_version):
- # the attempted imports are encapsulated in this function to allow
- # mocking for tests
- try:
- if auth_version in AUTH_VERSIONS_V3:
- from keystoneclient.v3 import client as ksclient
- else:
- from keystoneclient.v2_0 import client as ksclient
- from keystoneclient import exceptions
- # prevent keystoneclient warning us that it has no log handlers
- logging.getLogger('keystoneclient').addHandler(NullHandler())
- return ksclient, exceptions
- except ImportError:
- raise ClientException('''
-Auth versions 2.0 and 3 require python-keystoneclient, install it or use Auth
-version 1.0 which requires ST_AUTH, ST_USER, and ST_KEY environment
-variables to be set or overridden with -A, -U, or -K.''')
-
-
def get_auth_keystone(auth_url, user, key, os_options, **kwargs):
"""
Authenticate against a keystone server.
@@ -587,7 +589,20 @@
# Legacy default if not set
if auth_version is None:
auth_version = '2'
- ksclient, exceptions = _import_keystone_client(auth_version)
+
+ ksclient = None
+ if auth_version in AUTH_VERSIONS_V3:
+ if ksclient_v3 is not None:
+ ksclient = ksclient_v3
+ else:
+ if ksclient_v2 is not None:
+ ksclient = ksclient_v2
+
+ if ksclient is None:
+ raise ClientException('''
+Auth versions 2.0 and 3 require python-keystoneclient, install it or use Auth
+version 1.0 which requires ST_AUTH, ST_USER, and ST_KEY environment
+variables to be set or overridden with -A, -U, or -K.''')
try:
_ksclient = ksclient.Client(
@@ -608,13 +623,13 @@
cert=kwargs.get('cert'),
key=kwargs.get('cert_key'),
auth_url=auth_url, insecure=insecure, timeout=timeout)
- except exceptions.Unauthorized:
+ except ksexceptions.Unauthorized:
msg = 'Unauthorized. Check username, password and tenant name/id.'
if auth_version in AUTH_VERSIONS_V3:
msg = ('Unauthorized. Check username/id, password, '
'tenant name/id and user/tenant domain name/id.')
raise ClientException(msg)
- except exceptions.AuthorizationFailure as err:
+ except ksexceptions.AuthorizationFailure as err:
raise ClientException('Authorization Failure. %s' % err)
service_type = os_options.get('service_type') or 'object-store'
endpoint_type = os_options.get('endpoint_type') or 'publicURL'
@@ -627,7 +642,7 @@
service_type=service_type,
endpoint_type=endpoint_type,
**filter_kwargs)
- except exceptions.EndpointNotFound:
+ except ksexceptions.EndpointNotFound:
raise ClientException('Endpoint for %s not found - '
'have you specified a region?' % service_type)
return endpoint, _ksclient.auth_token
@@ -691,9 +706,9 @@
if kwargs.get('tenant_name'):
os_options['tenant_name'] = kwargs['tenant_name']
- if not (os_options.get('tenant_name') or os_options.get('tenant_id')
- or os_options.get('project_name')
- or os_options.get('project_id')):
+ if not (os_options.get('tenant_name') or os_options.get('tenant_id') or
+ os_options.get('project_name') or
+ os_options.get('project_id')):
if auth_version in AUTH_VERSIONS_V2:
raise ClientException('No tenant specified')
raise ClientException('No project name or project id specified.')
@@ -742,7 +757,7 @@
def get_account(url, token, marker=None, limit=None, prefix=None,
end_marker=None, http_conn=None, full_listing=False,
- service_token=None, headers=None):
+ service_token=None, headers=None, delimiter=None):
"""
Get a listing of containers for the account.
@@ -758,6 +773,7 @@
of 10000 listings
:param service_token: service auth token
:param headers: additional headers to include in the request
+ :param delimiter: delimiter query
:returns: a tuple of (response headers, a list of containers) The response
headers will be a dict and all header names will be lowercase.
:raises ClientException: HTTP GET request failed
@@ -771,14 +787,14 @@
if not http_conn:
http_conn = http_connection(url)
if full_listing:
- rv = get_account(url, token, marker, limit, prefix,
- end_marker, http_conn, headers=req_headers)
+ rv = get_account(url, token, marker, limit, prefix, end_marker,
+ http_conn, headers=req_headers, delimiter=delimiter)
listing = rv[1]
while listing:
marker = listing[-1]['name']
listing = get_account(url, token, marker, limit, prefix,
- end_marker, http_conn,
- headers=req_headers)[1]
+ end_marker, http_conn, headers=req_headers,
+ delimiter=delimiter)[1]
if listing:
rv[1].extend(listing)
return rv
@@ -790,6 +806,8 @@
qs += '&limit=%d' % limit
if prefix:
qs += '&prefix=%s' % quote(prefix)
+ if delimiter:
+ qs += '&delimiter=%s' % quote(delimiter)
if end_marker:
qs += '&end_marker=%s' % quote(end_marker)
full_path = '%s?%s' % (parsed.path, qs)
@@ -1641,14 +1659,11 @@
self.force_auth_retry = force_auth_retry
def close(self):
- if (self.http_conn and isinstance(self.http_conn, tuple)
- and len(self.http_conn) > 1):
+ if (self.http_conn and isinstance(self.http_conn, tuple) and
+ len(self.http_conn) > 1):
conn = self.http_conn[1]
- if hasattr(conn, 'close') and callable(conn.close):
- # XXX: Our HTTPConnection object has no close, should be
- # trying to close the requests.Session here?
- conn.close()
- self.http_conn = None
+ conn.close()
+ self.http_conn = None
def get_auth(self):
self.url, self.token = get_auth(self.authurl, self.user, self.key,
@@ -1708,10 +1723,10 @@
try:
if not self.url or not self.token:
self.url, self.token = self.get_auth()
- self.http_conn = None
+ self.close()
if self.service_auth and not self.service_token:
self.url, self.service_token = self.get_service_auth()
- self.http_conn = None
+ self.close()
self.auth_end_time = time()
if not self.http_conn:
self.http_conn = self.http_connection()
@@ -1767,14 +1782,16 @@
return self._retry(None, head_account, headers=headers)
def get_account(self, marker=None, limit=None, prefix=None,
- end_marker=None, full_listing=False, headers=None):
+ end_marker=None, full_listing=False, headers=None,
+ delimiter=None):
"""Wrapper for :func:`get_account`"""
# TODO(unknown): With full_listing=True this will restart the entire
# listing with each retry. Need to make a better version that just
# retries where it left off.
return self._retry(None, get_account, marker=marker, limit=limit,
prefix=prefix, end_marker=end_marker,
- full_listing=full_listing, headers=headers)
+ full_listing=full_listing, headers=headers,
+ delimiter=delimiter)
def post_account(self, headers, response_dict=None,
query_string=None, data=None):
@@ -1901,8 +1918,7 @@
url = url or self.url
if not url:
url, _ = self.get_auth()
- scheme = urlparse(url).scheme
- netloc = urlparse(url).netloc
- url = scheme + '://' + netloc + '/info'
- http_conn = self.http_connection(url)
- return get_capabilities(http_conn)
+ parsed = urlparse(urljoin(url, '/info'))
+ if not self.http_conn:
+ self.http_conn = self.http_connection(url)
+ return get_capabilities((parsed, self.http_conn[1]))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/swiftclient/service.py new/python-swiftclient-3.7.0/swiftclient/service.py
--- old/python-swiftclient-3.6.0/swiftclient/service.py 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/swiftclient/service.py 2019-03-05 14:10:18.000000000 +0100
@@ -424,8 +424,8 @@
'{1} != {2}'.format(
self._path, etag, self._expected_md5))
- if (self._content_length is not None
- and self._actual_read != self._content_length):
+ if (self._content_length is not None and
+ self._actual_read != self._content_length):
raise SwiftError('Error downloading {0}: read_length != '
'content_length, {1:d} != {2:d}'.format(
self._path, self._actual_read,
@@ -1244,8 +1244,8 @@
bytes_read = obj_body.bytes_read()
if fp is not None:
fp.close()
- if ('x-object-meta-mtime' in headers and not no_file
- and not options['ignore_mtime']):
+ if ('x-object-meta-mtime' in headers and not no_file and
+ not options['ignore_mtime']):
try:
mtime = float(headers['x-object-meta-mtime'])
except ValueError:
@@ -2036,8 +2036,8 @@
new_slo_manifest_paths = set()
segment_size = int(0 if options['segment_size'] is None
else options['segment_size'])
- if (options['changed'] or options['skip_identical']
- or not options['leave_segments']):
+ if (options['changed'] or options['skip_identical'] or
+ not options['leave_segments']):
try:
headers = conn.head_object(container, obj)
is_slo = config_true_value(
@@ -2058,9 +2058,9 @@
cl = int(headers.get('content-length'))
mt = headers.get('x-object-meta-mtime')
- if (path is not None and options['changed']
- and cl == getsize(path)
- and mt == put_headers['x-object-meta-mtime']):
+ if (path is not None and options['changed'] and
+ cl == getsize(path) and
+ mt == put_headers['x-object-meta-mtime']):
res.update({
'success': True,
'status': 'skipped-changed'
@@ -2095,8 +2095,8 @@
# a segment job if we're reading from a stream - we may fail if we
# go over the single object limit, but this gives us a nice way
# to create objects from memory
- if (path is not None and segment_size
- and (getsize(path) > segment_size)):
+ if (path is not None and segment_size and
+ (getsize(path) > segment_size)):
res['large_object'] = True
seg_container = container + '_segments'
if options['segment_container']:
@@ -2425,8 +2425,8 @@
# Cancel the remaining container deletes, but yield
# any pending results
- if (not cancelled and options['fail_fast']
- and not res['success']):
+ if (not cancelled and options['fail_fast'] and
+ not res['success']):
cancelled = True
def _bulk_delete_page_size(self, objects):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/swiftclient/shell.py new/python-swiftclient-3.7.0/swiftclient/shell.py
--- old/python-swiftclient-3.6.0/swiftclient/shell.py 2018-07-25 18:19:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/swiftclient/shell.py 2019-03-05 14:10:18.000000000 +0100
@@ -1462,8 +1462,9 @@
return
else:
fn_commands = [fn for fn in globals().keys()
- if fn.startswith('st_') and not fn.endswith('_options')
- and not fn.endswith('_help')]
+ if fn.startswith('st_') and
+ not fn.endswith('_options') and
+ not fn.endswith('_help')]
subparsers = parser.add_subparsers()
subcommands = {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/test-requirements.txt new/python-swiftclient-3.7.0/test-requirements.txt
--- old/python-swiftclient-3.6.0/test-requirements.txt 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/test-requirements.txt 2019-03-05 14:10:18.000000000 +0100
@@ -1,10 +1,10 @@
-hacking<0.11,>=0.10.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
keystoneauth1>=3.4.0 # Apache-2.0
mock>=1.2.0 # BSD
oslosphinx>=4.7.0 # Apache-2.0
sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
-testrepository>=0.0.18
+stestr>=2.0.0 # Apache-2.0
reno>=2.5.0 # Apache-2.0
openstackdocstheme>=1.18.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/tests/functional/test_swiftclient.py new/python-swiftclient-3.7.0/tests/functional/test_swiftclient.py
--- old/python-swiftclient-3.6.0/tests/functional/test_swiftclient.py 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/tests/functional/test_swiftclient.py 2019-03-05 14:10:18.000000000 +0100
@@ -108,6 +108,7 @@
self.conn.delete_container(container)
except swiftclient.ClientException:
pass
+ self.conn.close()
def _check_account_headers(self, headers):
headers_to_check = [
@@ -153,6 +154,18 @@
self.assertTrue(len(containers) >= 1)
self.assertEqual(self.containername_2, containers[0].get('name'))
+ # Test prefix
+ _, containers = self.conn.get_account(prefix='dne')
+ self.assertEqual(0, len(containers))
+
+ # Test delimiter
+ _, containers = self.conn.get_account(
+ prefix=self.containername, delimiter='_')
+ self.assertEqual(2, len(containers))
+ self.assertEqual(self.containername, containers[0].get('name'))
+ self.assertTrue(
+ self.containername_2.startswith(containers[1].get('subdir')))
+
def _check_container_headers(self, headers):
self.assertTrue(headers.get('content-length'))
self.assertTrue(headers.get('x-container-object-count'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/tests/unit/test_shell.py new/python-swiftclient-3.7.0/tests/unit/test_shell.py
--- old/python-swiftclient-3.6.0/tests/unit/test_shell.py 2018-07-25 18:19:42.000000000 +0200
+++ new/python-swiftclient-3.7.0/tests/unit/test_shell.py 2019-03-05 14:10:18.000000000 +0100
@@ -37,7 +37,7 @@
from os.path import basename, dirname
from .utils import (
- CaptureOutput, fake_get_auth_keystone, _make_fake_import_keystone_client,
+ CaptureOutput, fake_get_auth_keystone,
FakeKeystone, StubResponse, MockHttpTest)
from swiftclient.utils import (
EMPTY_ETAG, EXPIRES_ISO8601_FORMAT,
@@ -1996,8 +1996,8 @@
self._environ_vars = {}
keys = list(os.environ.keys())
for k in keys:
- if (k in ('ST_KEY', 'ST_USER', 'ST_AUTH')
- or k.startswith('OS_')):
+ if (k in ('ST_KEY', 'ST_USER', 'ST_AUTH') or
+ k.startswith('OS_')):
self._environ_vars[k] = os.environ.pop(k)
def _replace_swift_env_vars(self):
@@ -2534,7 +2534,17 @@
cmd_args=cmd_args)
ks_endpoint = 'http://example.com:8080/v1/AUTH_acc'
ks_token = 'fake_auth_token'
+ # check correct auth version gets used
+ key = 'auth-version'
fake_ks = FakeKeystone(endpoint=ks_endpoint, token=ks_token)
+ if no_auth:
+ fake_ks2 = fake_ks3 = None
+ elif opts.get(key, self.defaults.get(key)) == '2.0':
+ fake_ks2 = fake_ks
+ fake_ks3 = None
+ else:
+ fake_ks2 = None
+ fake_ks3 = fake_ks
# fake_conn will check that storage_url and auth_token are as expected
endpoint = os_opts.get('storage-url', ks_endpoint)
token = os_opts.get('auth-token', ks_token)
@@ -2542,8 +2552,8 @@
storage_url=endpoint,
auth_token=token)
- with mock.patch('swiftclient.client._import_keystone_client',
- _make_fake_import_keystone_client(fake_ks)), \
+ with mock.patch('swiftclient.client.ksclient_v2', fake_ks2), \
+ mock.patch('swiftclient.client.ksclient_v3', fake_ks3), \
mock.patch('swiftclient.client.http_connection', fake_conn), \
mock.patch.dict(os.environ, env, clear=True), \
patch_disable_warnings() as mock_disable_warnings:
@@ -2562,16 +2572,11 @@
self.assertEqual([], mock_disable_warnings.mock_calls)
if no_auth:
- # check that keystone client was not used and terminate tests
- self.assertIsNone(getattr(fake_ks, 'auth_version'))
- self.assertEqual(len(fake_ks.calls), 0)
+ # We patched out both keystoneclient versions to be None;
+ # they *can't* have been used and if we tried to, we would
+ # have raised ClientExceptions
return
- # check correct auth version was passed to _import_keystone_client
- key = 'auth-version'
- expected = opts.get(key, self.defaults.get(key))
- self.assertEqual(expected, fake_ks.auth_version)
-
# check args passed to keystone Client __init__
self.assertEqual(len(fake_ks.calls), 1)
actual_args = fake_ks.calls[0]
@@ -2942,9 +2947,9 @@
self.account = 'AUTH_alice'
# keystone returns endpoint for another account
- fake_ks = FakeKeystone(endpoint='http://example.com:8080/v1/AUTH_bob',
- token='bob_token')
- self.fake_ks_import = _make_fake_import_keystone_client(fake_ks)
+ self.fake_ks = FakeKeystone(
+ endpoint='http://example.com:8080/v1/AUTH_bob',
+ token='bob_token')
self.cont = 'c1'
self.cont_path = '/v1/%s/%s' % (self.account, self.cont)
@@ -2974,12 +2979,12 @@
Modify response code to 200 if cross account permissions match.
"""
status = 403
- if (path.startswith('/v1/%s/%s' % (self.account, self.cont))
- and read_ok and method in ('GET', 'HEAD')):
+ if (path.startswith('/v1/%s/%s' % (self.account, self.cont)) and
+ read_ok and method in ('GET', 'HEAD')):
status = 200
elif (path.startswith('/v1/%s/%s%s'
- % (self.account, self.cont, self.obj))
- and write_ok and method in ('PUT', 'POST', 'DELETE')):
+ % (self.account, self.cont, self.obj)) and
+ write_ok and method in ('PUT', 'POST', 'DELETE')):
status = 200
return status
return on_request
@@ -3023,8 +3028,7 @@
args, env = self._make_cmd('upload', cmd_args=[self.cont, self.obj,
'--leave-segments'])
- with mock.patch('swiftclient.client._import_keystone_client',
- self.fake_ks_import):
+ with mock.patch('swiftclient.client.ksclient_v3', self.fake_ks):
with mock.patch('swiftclient.client.http_connection', fake_conn):
with mock.patch.dict(os.environ, env):
with CaptureOutput() as out:
@@ -3046,8 +3050,7 @@
on_request=req_handler)
args, env = self._make_cmd('upload', cmd_args=[self.cont, self.obj,
'--leave-segments'])
- with mock.patch('swiftclient.client._import_keystone_client',
- self.fake_ks_import):
+ with mock.patch('swiftclient.client.ksclient_v3', self.fake_ks):
with mock.patch('swiftclient.client.http_connection', fake_conn):
with mock.patch.dict(os.environ, env):
with CaptureOutput() as out:
@@ -3073,8 +3076,7 @@
'--segment-size=10',
'--segment-container=%s'
% self.cont])
- with mock.patch('swiftclient.client._import_keystone_client',
- self.fake_ks_import):
+ with mock.patch('swiftclient.client.ksclient_v3', self.fake_ks):
with mock.patch('swiftclient.client.http_connection', fake_conn):
with mock.patch.dict(os.environ, env):
with CaptureOutput() as out:
@@ -3112,8 +3114,7 @@
cmd_args=[self.cont, self.obj,
'--leave-segments',
'--segment-size=10'])
- with mock.patch('swiftclient.client._import_keystone_client',
- self.fake_ks_import):
+ with mock.patch('swiftclient.client.ksclient_v3', self.fake_ks):
with mock.patch('swiftclient.client.http_connection', fake_conn):
with mock.patch.dict(os.environ, env):
with CaptureOutput() as out:
@@ -3149,8 +3150,7 @@
args, env = self._make_cmd('upload', cmd_args=[self.cont, self.obj,
'--leave-segments'])
- with mock.patch('swiftclient.client._import_keystone_client',
- self.fake_ks_import):
+ with mock.patch('swiftclient.client.ksclient_v3', self.fake_ks):
with mock.patch('swiftclient.client.http_connection', fake_conn):
with mock.patch.dict(os.environ, env):
with CaptureOutput() as out:
@@ -3207,8 +3207,7 @@
args, env = self._make_cmd('download', cmd_args=[self.cont,
self.obj.lstrip('/'),
'--no-download'])
- with mock.patch('swiftclient.client._import_keystone_client',
- self.fake_ks_import):
+ with mock.patch('swiftclient.client.ksclient_v3', self.fake_ks):
with mock.patch('swiftclient.client.http_connection', fake_conn):
with mock.patch.dict(os.environ, env):
with CaptureOutput() as out:
@@ -3229,8 +3228,7 @@
args, env = self._make_cmd('download', cmd_args=[self.cont,
self.obj.lstrip('/'),
'--no-download'])
- with mock.patch('swiftclient.client._import_keystone_client',
- self.fake_ks_import):
+ with mock.patch('swiftclient.client.ksclient_v3', self.fake_ks):
with mock.patch('swiftclient.client.http_connection', fake_conn):
with mock.patch.dict(os.environ, env):
with CaptureOutput() as out:
@@ -3248,8 +3246,7 @@
args, env = self._make_cmd('download', cmd_args=[self.cont,
self.obj.lstrip('/'),
'--no-download'])
- with mock.patch('swiftclient.client._import_keystone_client',
- self.fake_ks_import):
+ with mock.patch('swiftclient.client.ksclient_v3', self.fake_ks):
with mock.patch('swiftclient.client.http_connection', fake_conn):
with mock.patch.dict(os.environ, env):
with CaptureOutput() as out:
@@ -3273,8 +3270,7 @@
fake_conn = self.fake_http_connection(resp, on_request=req_handler)
args, env = self._make_cmd('download', cmd_args=[self.cont])
- with mock.patch('swiftclient.client._import_keystone_client',
- self.fake_ks_import):
+ with mock.patch('swiftclient.client.ksclient_v3', self.fake_ks):
with mock.patch('swiftclient.client.http_connection', fake_conn):
with mock.patch.dict(os.environ, env):
with CaptureOutput() as out:
@@ -3291,8 +3287,7 @@
fake_conn = self.fake_http_connection(403)
args, env = self._make_cmd('download', cmd_args=[self.cont])
- with mock.patch('swiftclient.client._import_keystone_client',
- self.fake_ks_import):
+ with mock.patch('swiftclient.client.ksclient_v3', self.fake_ks):
with mock.patch('swiftclient.client.http_connection', fake_conn):
with mock.patch.dict(os.environ, env):
with CaptureOutput() as out:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/tests/unit/test_swiftclient.py new/python-swiftclient-3.7.0/tests/unit/test_swiftclient.py
--- old/python-swiftclient-3.6.0/tests/unit/test_swiftclient.py 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/tests/unit/test_swiftclient.py 2019-03-05 14:10:18.000000000 +0100
@@ -29,7 +29,7 @@
from requests.exceptions import RequestException
from .utils import (MockHttpTest, fake_get_auth_keystone, StubResponse,
- FakeKeystone, _make_fake_import_keystone_client)
+ FakeKeystone)
from swiftclient.utils import EMPTY_ETAG
from swiftclient.exceptions import ClientException
@@ -322,8 +322,7 @@
# TestConnection.test_timeout_passed_down but is required to check that
# get_auth does the right thing when it is not passed a timeout arg
fake_ks = FakeKeystone(endpoint='http://some_url', token='secret')
- with mock.patch('swiftclient.client._import_keystone_client',
- _make_fake_import_keystone_client(fake_ks)):
+ with mock.patch('swiftclient.client.ksclient_v2', fake_ks):
c.get_auth('http://www.test.com', 'asdf', 'asdf',
os_options=dict(tenant_name='tenant'),
auth_version="2.0", timeout=42.0)
@@ -580,8 +579,7 @@
def test_get_auth_keystone_versionless(self):
fake_ks = FakeKeystone(endpoint='http://some_url', token='secret')
- with mock.patch('swiftclient.client._import_keystone_client',
- _make_fake_import_keystone_client(fake_ks)):
+ with mock.patch('swiftclient.client.ksclient_v3', fake_ks):
c.get_auth_keystone('http://authurl', 'user', 'key', {})
self.assertEqual(1, len(fake_ks.calls))
self.assertEqual('http://authurl/v3', fake_ks.calls[0].get('auth_url'))
@@ -589,8 +587,7 @@
def test_get_auth_keystone_versionless_auth_version_set(self):
fake_ks = FakeKeystone(endpoint='http://some_url', token='secret')
- with mock.patch('swiftclient.client._import_keystone_client',
- _make_fake_import_keystone_client(fake_ks)):
+ with mock.patch('swiftclient.client.ksclient_v2', fake_ks):
c.get_auth_keystone('http://auth_url', 'user', 'key',
{}, auth_version='2.0')
self.assertEqual(1, len(fake_ks.calls))
@@ -600,8 +597,7 @@
def test_get_auth_keystone_versionful(self):
fake_ks = FakeKeystone(endpoint='http://some_url', token='secret')
- with mock.patch('swiftclient.client._import_keystone_client',
- _make_fake_import_keystone_client(fake_ks)):
+ with mock.patch('swiftclient.client.ksclient_v3', fake_ks):
c.get_auth_keystone('http://auth_url/v3', 'user', 'key',
{}, auth_version='3')
self.assertEqual(1, len(fake_ks.calls))
@@ -611,8 +607,7 @@
def test_get_auth_keystone_devstack_versionful(self):
fake_ks = FakeKeystone(
endpoint='http://storage.example.com/v1/AUTH_user', token='secret')
- with mock.patch('swiftclient.client._import_keystone_client',
- _make_fake_import_keystone_client(fake_ks)):
+ with mock.patch('swiftclient.client.ksclient_v3', fake_ks):
c.get_auth_keystone('https://192.168.8.8/identity/v3',
'user', 'key', {}, auth_version='3')
self.assertEqual(1, len(fake_ks.calls))
@@ -622,8 +617,7 @@
def test_get_auth_keystone_devstack_versionless(self):
fake_ks = FakeKeystone(
endpoint='http://storage.example.com/v1/AUTH_user', token='secret')
- with mock.patch('swiftclient.client._import_keystone_client',
- _make_fake_import_keystone_client(fake_ks)):
+ with mock.patch('swiftclient.client.ksclient_v3', fake_ks):
c.get_auth_keystone('https://192.168.8.8/identity',
'user', 'key', {}, auth_version='3')
self.assertEqual(1, len(fake_ks.calls))
@@ -634,8 +628,7 @@
fake_ks = FakeKeystone(
endpoint='http://storage.example.com/v1/AUTH_user',
token='secret')
- with mock.patch('swiftclient.client._import_keystone_client',
- _make_fake_import_keystone_client(fake_ks)):
+ with mock.patch('swiftclient.client.ksclient_v3', fake_ks):
c.get_auth_keystone('http://blah.example.com/v2moo',
'user', 'key', {}, auth_version='3')
self.assertEqual(1, len(fake_ks.calls))
@@ -711,6 +704,18 @@
'x-auth-token': 'asdf'}),
])
+ def test_param_delimiter(self):
+ c.http_connection = self.fake_http_connection(
+ 204,
+ query_string="format=json&delimiter=-")
+ c.get_account('http://www.test.com/v1/acct', 'asdf',
+ delimiter='-')
+ self.assertRequests([
+ ('GET', '/v1/acct?format=json&delimiter=-', '', {
+ 'accept-encoding': 'gzip',
+ 'x-auth-token': 'asdf'}),
+ ])
+
class TestHeadAccount(MockHttpTest):
@@ -2456,8 +2461,7 @@
'http://auth.example.com', 'user', 'password', timeout=33.0,
os_options=os_options, auth_version=2.0)
fake_ks = FakeKeystone(endpoint='http://some_url', token='secret')
- with mock.patch('swiftclient.client._import_keystone_client',
- _make_fake_import_keystone_client(fake_ks)):
+ with mock.patch('swiftclient.client.ksclient_v2', fake_ks):
with mock.patch.multiple('swiftclient.client',
http_connection=shim_connection,
sleep=mock.DEFAULT):
@@ -2540,6 +2544,9 @@
def read(self, *args, **kwargs):
return ''
+ def close(self):
+ pass
+
def local_http_connection(url, proxy=None, cacert=None,
insecure=False, cert=None, cert_key=None,
ssl_compression=True, timeout=None):
@@ -2909,6 +2916,9 @@
self.assertIsNone(conn.http_conn)
conn.close()
self.assertIsNone(conn.http_conn)
+ # Can re-close
+ conn.close()
+ self.assertIsNone(conn.http_conn)
def test_close_ok(self):
url = 'http://www.test.com'
@@ -2919,7 +2929,7 @@
self.assertEqual(len(conn.http_conn), 2)
http_conn_obj = conn.http_conn[1]
self.assertIsInstance(http_conn_obj, c.HTTPConnection)
- self.assertFalse(hasattr(http_conn_obj, 'close'))
+ self.assertTrue(hasattr(http_conn_obj, 'close'))
conn.close()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/tests/unit/utils.py new/python-swiftclient-3.7.0/tests/unit/utils.py
--- old/python-swiftclient-3.6.0/tests/unit/utils.py 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/tests/unit/utils.py 2019-03-05 14:10:18.000000000 +0100
@@ -78,6 +78,10 @@
self.body = body
self.headers = headers or {}
+ def __repr__(self):
+ return '%s(%r, %r, %r)' % (self.__class__.__name__, self.status,
+ self.body, self.headers)
+
def fake_http_connect(*code_iter, **kwargs):
"""
@@ -102,7 +106,6 @@
self.etag = etag
self.content = self.body = body
self.timestamp = timestamp
- self._is_closed = True
self.headers = headers or {}
self.request = None
@@ -162,6 +165,9 @@
def getheader(self, name, default=None):
return dict(self.getheaders()).get(name.lower(), default)
+ def close(self):
+ pass
+
timestamps_iter = iter(kwargs.get('timestamps') or ['1'] * len(code_iter))
etag_iter = iter(kwargs.get('etags') or [None] * len(code_iter))
x = kwargs.get('missing_container', [False] * len(code_iter))
@@ -228,7 +234,8 @@
parsed, _conn = _orig_http_connection(url, proxy=proxy)
class RequestsWrapper(object):
- pass
+ def close(self):
+ pass
conn = RequestsWrapper()
def request(method, path, *args, **kwargs):
@@ -542,14 +549,6 @@
pass
-def _make_fake_import_keystone_client(fake_import):
- def _fake_import_keystone_client(auth_version):
- fake_import.auth_version = auth_version
- return fake_import, fake_import
-
- return _fake_import_keystone_client
-
-
class FakeStream(object):
def __init__(self, size):
self.bytes_read = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-swiftclient-3.6.0/tox.ini new/python-swiftclient-3.7.0/tox.ini
--- old/python-swiftclient-3.6.0/tox.ini 2018-07-25 18:19:26.000000000 +0200
+++ new/python-swiftclient-3.7.0/tox.ini 2019-03-05 14:10:18.000000000 +0100
@@ -1,5 +1,5 @@
[tox]
-envlist = py27,py35,pypy,pep8
+envlist = py37,py36,py35,py27,pypy,pep8
minversion = 2.0
skipsdist = True
@@ -8,7 +8,7 @@
install_command = python -m pip install -U {opts} {packages}
list_dependencies_command = python -m pip freeze
setenv =
- LANG=en_US.utf8
+ LANG=en_US.utf-8
VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt
@@ -16,33 +16,55 @@
.[keystone]
commands = sh -c '(find . -not \( -type d -name .?\* -prune \) \
\( -type d -name "__pycache__" -or -type f -name "*.py[co]" \) \
- -print0; find . -name "*.dbm*" -print0) | xargs -0 rm -rf'
- python setup.py testr --testr-args="{posargs}"
+ -print0) | xargs -0 rm -rf'
+ stestr run {posargs}
whitelist_externals = sh
passenv = SWIFT_* *_proxy
[testenv:pep8]
+basepython = python3
commands =
python -m flake8 swiftclient tests
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:cover]
-commands = python setup.py testr --coverage
- coverage report
+basepython = python3
+setenv =
+ PYTHON=coverage run --source swiftclient --parallel-mode
+commands =
+ stestr run
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
+ coverage report
[testenv:func]
-setenv = OS_TEST_PATH=tests.functional
+basepython = python3
+setenv =
+ OS_TEST_PATH=tests.functional
+ PYTHON=coverage run --source swiftclient --parallel-mode
whitelist_externals =
coverage
rm
commands =
- python setup.py testr --coverage --testr-args="--concurrency=1"
+ stestr run --concurrency=1
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
coverage report -m
rm -f .coverage
+[testenv:py2func]
+basepython=python2
+setenv = {[testenv:func]setenv}
+whitelist_externals = {[testenv:func]whitelist_externals}
+commands = {[testenv:func]commands}
+
[testenv:docs]
+basepython = python3
commands=
python setup.py build_sphinx
@@ -55,11 +77,12 @@
# H403: multi line docstrings should end on a new line
# H404: multi line docstring should start without a leading new line
# H405: multi line docstring summary not separated with an empty line
-ignore = H101,H301,H306,H401,H403,H404,H405
+ignore = E731,H101,H301,H306,H401,H403,H404,H405
show-source = True
exclude = .venv,.tox,dist,doc,*egg
[testenv:bindep]
+basepython = python3
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
@@ -69,6 +92,7 @@
commands = bindep test
[testenv:releasenotes]
+basepython = python3
commands = sphinx-build -a -W -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:lower-constraints]
1
0
Hello community,
here is the log from the commit of package python-senlinclient for openSUSE:Factory checked in at 2019-05-03 22:43:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-senlinclient (Old)
and /work/SRC/openSUSE:Factory/.python-senlinclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-senlinclient"
Fri May 3 22:43:17 2019 rev:7 rq:692878 version:1.10.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-senlinclient/python-senlinclient.changes 2018-09-07 15:39:32.998526740 +0200
+++ /work/SRC/openSUSE:Factory/.python-senlinclient.new.5148/python-senlinclient.changes 2019-05-03 22:43:18.771353422 +0200
@@ -1,0 +2,27 @@
+Mon Apr 8 12:26:15 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.10.1
+ - Fix calls to functions removed from openstacksdk
+ - Update json module to jsonutils
+ - Imported Translations from Zanata
+ - Use template for lower-constraints
+ - Enable cluster profile only and replace function test
+ - Fix getting action id in Location header
+ - Use latest senlin microversion for Stein
+ - Change openstack-dev to openstack-discuss
+ - import zuul job settings from project-config
+ - Add Stein release notes
+ - Update reno for stable/rocky
+ - Don't quote {posargs} in tox.ini
+ - add python 3.6 unit test job
+ - Add senlinclient support bandit test
+ - Add Python 3.6 classifier to setup.cfg
+ - Bump openstacksdk to 0.24.0
+ - switch documentation job to new PTI
+ - Update hacking version
+ - Fix _get_config_from_profile key building
+ - Update client to account for 409 error in cluster actions
+ - add python 3.7 unit test job
+ - Update python-senlinclient to use current openstacksdk
+
+-------------------------------------------------------------------
Old:
----
python-senlinclient-1.8.0.tar.gz
New:
----
python-senlinclient-1.10.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-senlinclient.spec ++++++
--- /var/tmp/diff_new_pack.GKOPjS/_old 2019-05-03 22:43:19.243354416 +0200
+++ /var/tmp/diff_new_pack.GKOPjS/_new 2019-05-03 22:43:19.243354416 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-senlinclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,51 +12,62 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
-%global sname python-senlinclient
Name: python-senlinclient
-Version: 1.8.0
+Version: 1.10.1
Release: 0
Summary: Python API and CLI for OpenStack Senlin
License: Apache-2.0
Group: Development/Languages/Python
-URL: https://launchpad.net/%{sname}
-Source0: https://files.pythonhosted.org/packages/source/p/%{sname}/%{sname}-%{versio…
+URL: https://launchpad.net/python-senlinclient
+Source0: https://files.pythonhosted.org/packages/source/p/python-senlinclient/python…
BuildRequires: openstack-macros
-BuildRequires: python-Babel >= 2.3.4
-BuildRequires: python-PrettyTable >= 0.7.2
-BuildRequires: python-PyYAML >= 3.12
-BuildRequires: python-appdirs
BuildRequires: python-devel
-BuildRequires: python-fixtures
-BuildRequires: python-heatclient >= 1.10.0
-BuildRequires: python-jsonschema
-BuildRequires: python-mock
-BuildRequires: python-openstackclient
-BuildRequires: python-openstacksdk >= 0.11.2
-BuildRequires: python-os-testr
-BuildRequires: python-osc-lib >= 1.8.0
-BuildRequires: python-oslo.i18n >= 3.15.3
-BuildRequires: python-oslo.serialization >= 2.18.0
-BuildRequires: python-oslo.utils >= 3.33.0
-BuildRequires: python-oslotest
-BuildRequires: python-pbr >= 2.0.0
-BuildRequires: python-python-subunit
-BuildRequires: python-requests >= 2.14.2
-BuildRequires: python-requests-mock
-BuildRequires: python-stestr
-BuildRequires: python-testtools
+BuildRequires: python2-Babel >= 2.3.4
+BuildRequires: python2-PrettyTable >= 0.7.2
+BuildRequires: python2-PyYAML >= 3.12
+BuildRequires: python2-fixtures
+BuildRequires: python2-heatclient >= 1.10.0
+BuildRequires: python2-mock
+BuildRequires: python2-openstackclient
+BuildRequires: python2-openstacksdk >= 0.24.0
+BuildRequires: python2-osc-lib >= 1.8.0
+BuildRequires: python2-oslo.i18n >= 3.15.3
+BuildRequires: python2-oslo.serialization >= 2.18.0
+BuildRequires: python2-oslo.utils >= 3.33.0
+BuildRequires: python2-oslotest
+BuildRequires: python2-pbr >= 2.0.0
+BuildRequires: python2-requests >= 2.14.2
+BuildRequires: python2-requests-mock
+BuildRequires: python2-stestr
+BuildRequires: python3-Babel >= 2.3.4
+BuildRequires: python3-PrettyTable >= 0.7.2
+BuildRequires: python3-PyYAML >= 3.12
+BuildRequires: python3-devel
+BuildRequires: python3-fixtures
+BuildRequires: python3-heatclient >= 1.10.0
+BuildRequires: python3-mock
+BuildRequires: python3-openstackclient
+BuildRequires: python3-openstacksdk >= 0.24.0
+BuildRequires: python3-osc-lib >= 1.8.0
+BuildRequires: python3-oslo.i18n >= 3.15.3
+BuildRequires: python3-oslo.serialization >= 2.18.0
+BuildRequires: python3-oslo.utils >= 3.33.0
+BuildRequires: python3-oslotest
+BuildRequires: python3-pbr >= 2.0.0
+BuildRequires: python3-requests >= 2.14.2
+BuildRequires: python3-requests-mock
+BuildRequires: python3-stestr
+Requires: python-Babel >= 2.3.4
Requires: python-PrettyTable >= 0.7.2
Requires: python-PyYAML >= 3.12
-Requires: python-appdirs
Requires: python-heatclient >= 1.10.0
-Requires: python-jsonschema
Requires: python-keystoneauth1 >= 3.4.0
Requires: python-openstackclient
-Requires: python-openstacksdk >= 0.11.2
+Requires: python-openstacksdk >= 0.24.0
Requires: python-osc-lib >= 1.8.0
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.serialization >= 2.18.0
@@ -65,6 +76,7 @@
Requires: python-requests >= 2.14.2
Requires: python-six >= 1.10.0
BuildArch: noarch
+%python_subpackages
%description
OpenStack Clustering service Provisioning API Client Library
@@ -72,24 +84,24 @@
This is a client for the OpenStack Senlin API.
It provides a Python API (the senlinclient module).
-%package doc
+%package -n python-senlinclient-doc
Summary: Documentation for OpenStack Senlin API Client
Group: Documentation/HTML
BuildRequires: python-Sphinx
BuildRequires: python-openstackdocstheme
BuildRequires: python-reno
-%description doc
+%description -n python-senlinclient-doc
This is a client for the OpenStack Senlin API.
It implements 100% of the OpenStack Senlin API. This package contains
auto-generated documentation.
%prep
-%autosetup -n %{sname}-%{version}
+%autosetup -p1 -n python-senlinclient-1.10.1
%py_req_cleanup
%build
-%{py2_build}
+%{python_build}
%{__python2} setup.py build_sphinx
PBR_VERSION=%version sphinx-build -b html doc/source doc/build/html
@@ -97,18 +109,18 @@
rm -rf doc/build/html/.{doctrees,buildinfo}
%install
-%{py2_install}
+%{python_install}
%check
-stestr run
+%python_exec -m stestr.cli run
-%files
+%files %{python_files}
%license LICENSE
%doc README.rst
-%{python2_sitelib}/senlinclient
-%{python2_sitelib}/*.egg-info
+%{python_sitelib}/senlinclient
+%{python_sitelib}/*.egg-info
-%files doc
+%files -n python-senlinclient-doc
%license LICENSE
%doc doc/build/html
++++++ _service ++++++
--- /var/tmp/diff_new_pack.GKOPjS/_old 2019-05-03 22:43:19.263354458 +0200
+++ /var/tmp/diff_new_pack.GKOPjS/_new 2019-05-03 22:43:19.263354458 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-senlinclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-senlinclient/stable/rock…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-senlinclient/stable/stei…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-senlinclient</param>
</service>
++++++ python-senlinclient-1.8.0.tar.gz -> python-senlinclient-1.10.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/.zuul.yaml new/python-senlinclient-1.10.1/.zuul.yaml
--- old/python-senlinclient-1.8.0/.zuul.yaml 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/.zuul.yaml 2019-03-08 01:47:21.000000000 +0100
@@ -10,13 +10,17 @@
- openstack/senlin
- project:
+ templates:
+ - check-requirements
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - openstackclient-plugin-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
check:
jobs:
- senlinclient-dsvm-functional:
voting: false
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - senlinclient-dsvm-functional:
- voting: false
- - openstack-tox-lower-constraints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/AUTHORS new/python-senlinclient-1.10.1/AUTHORS
--- old/python-senlinclient-1.8.0/AUTHORS 2018-08-08 20:27:17.000000000 +0200
+++ new/python-senlinclient-1.10.1/AUTHORS 2019-03-08 01:49:25.000000000 +0100
@@ -6,6 +6,7 @@
Christopher Stone <cstone(a)blizzard.com>
Cindia-blue <lxinhui(a)vmware.com>
Doug Hellmann <doug(a)doughellmann.com>
+Duc Truong <dtruong(a)blizzard.com>
EldonZhao <xyz_213083464(a)126.com>
Erik Olof Gunnar Andersson <eandersson(a)blizzard.com>
Ethan Lynn <xjunlin(a)cn.ibm.com>
@@ -20,10 +21,12 @@
Jeffrey Guan <double12gzh(a)gmail.com>
Jeremy Liu <liujiong(a)gohighsec.com>
Jeremy Stanley <fungi(a)yuggoth.org>
+Jude Cross <jucross(a)blizzard.com>
KATO Tomoyuki <kato.tomoyuki(a)jp.fujitsu.com>
LiuNanke <nanke.liu(a)easystack.cn>
Liuqing Jing <lawrancejing(a)gmail.com>
Lu lei <lei.lu(a)easystack.cn>
+Monty Taylor <mordred(a)inaugust.com>
Navneet Gupta <navneet(a)us.ibm.com>
Nguyen Hai <nguyentrihai93(a)gmail.com>
Ondřej Nový <ondrej.novy(a)firma.seznam.cz>
@@ -36,18 +39,21 @@
Sharat Sharma <sharat.sharma(a)nectechnologies.in>
Tang Chen <chen.tang(a)easystack.cn>
Thomas Bechtold <tbechtold(a)suse.com>
+Thomas Herve <therve(a)redhat.com>
Tony Breeds <tony(a)bakeyournoodle.com>
Tovin Seven <vinhnt(a)vn.fujitsu.com>
+Vieri <15050873171(a)163.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
XueFeng Liu <liu.xuefeng1(a)zte.com.cn>
Yanyan Hu <yanyanhu(a)cn.ibm.com>
Yuanbin.Chen <cybing4(a)gmail.com>
+ZhijunWei <wzj334965317(a)outlook.com>
ZhongShengping <chdzsp(a)163.com>
-Zuul <zuul(a)review.openstack.org>
bhavani.cr <bhavani.r(a)nectechnologies.in>
blkart <blkart.org(a)gmail.com>
blue55 <yllan(a)fiberhome.com>
caishan <caishan1993(a)foxmail.com>
+cao.yuan <cao.yuan(a)99cloud.net>
chenpengzi <1523688226(a)qq.com>
chohoor <chohoor(a)gmail.com>
dixiaoli <dixiaobj(a)cn.ibm.com>
@@ -67,8 +73,10 @@
pawnesh.kumar <pawnesh.kumar(a)nectechnologies.in>
pengdake <19921207pq(a)gmail.com>
qinchunhua <qin.chunhua(a)zte.com.cn>
+qingszhao <zhao.daqing(a)99cloud.net>
shangxiaobj <shangxiaobj(a)inspur.com>
shu-mutou <shu-mutou(a)rf.jp.nec.com>
+sunjia <sunjia(a)inspur.com>
tengqm <tengqim(a)cn.ibm.com>
venkatamahesh <venkatamaheshkotha(a)gmail.com>
xiaolihope <dixiaobj(a)cn.ibm.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/ChangeLog new/python-senlinclient-1.10.1/ChangeLog
--- old/python-senlinclient-1.8.0/ChangeLog 2018-08-08 20:27:16.000000000 +0200
+++ new/python-senlinclient-1.10.1/ChangeLog 2019-03-08 01:49:25.000000000 +0100
@@ -1,12 +1,46 @@
CHANGES
=======
+1.10.1
+------
+
+* Use latest senlin microversion for Stein
+* Update json module to jsonutils
+
+1.10.0
+------
+
+* Add Stein release notes
+* add python 3.7 unit test job
+* Bump openstacksdk to 0.24.0
+* Fix getting action id in Location header
+* Update hacking version
+* Use template for lower-constraints
+* Fix calls to functions removed from openstacksdk
+* Change openstack-dev to openstack-discuss
+* Add Python 3.6 classifier to setup.cfg
+* Fix \_get\_config\_from\_profile key building
+
+1.9.0
+-----
+
+* Don't quote {posargs} in tox.ini
+* Add senlinclient support bandit test
+* Enable cluster profile only and replace function test
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Update python-senlinclient to use current openstacksdk
+* Imported Translations from Zanata
+* Update reno for stable/rocky
+
1.8.0
-----
* Rocky releasenotes for python-senlinclient
* Zuul enable senlinclient function check
* Add cluster and receiver function test
+* Update client to account for 409 error in cluster actions
* Add function test path to test\_path
* Switch to stestr
* Change CURRENT\_API\_VERSION to "1.10"
@@ -441,8 +475,8 @@
* Updated from global requirements
* Change 'status\_code' to 'http\_status' to parse SDK's exception
-0.3.0
------
+0.3
+---
* Remove argparse from requirements
* Updated from global requirements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/PKG-INFO new/python-senlinclient-1.10.1/PKG-INFO
--- old/python-senlinclient-1.8.0/PKG-INFO 2018-08-08 20:27:17.000000000 +0200
+++ new/python-senlinclient-1.10.1/PKG-INFO 2019-03-08 01:49:25.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-senlinclient
-Version: 1.8.0
+Version: 1.10.1
Summary: OpenStack Clustering API Client Library
Home-page: https://docs.openstack.org/python-senlinclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -37,3 +37,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/lower-constraints.txt new/python-senlinclient-1.10.1/lower-constraints.txt
--- old/python-senlinclient-1.8.0/lower-constraints.txt 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/lower-constraints.txt 2019-03-08 01:47:21.000000000 +0100
@@ -39,7 +39,7 @@
netaddr==0.7.18
netifaces==0.10.4
openstackdocstheme==1.18.1
-openstacksdk==0.11.2
+openstacksdk==0.24.0
os-client-config==1.28.0
os-service-types==1.2.0
os-testr==1.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/python_senlinclient.egg-info/PKG-INFO new/python-senlinclient-1.10.1/python_senlinclient.egg-info/PKG-INFO
--- old/python-senlinclient-1.8.0/python_senlinclient.egg-info/PKG-INFO 2018-08-08 20:27:17.000000000 +0200
+++ new/python-senlinclient-1.10.1/python_senlinclient.egg-info/PKG-INFO 2019-03-08 01:49:25.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-senlinclient
-Version: 1.8.0
+Version: 1.10.1
Summary: OpenStack Clustering API Client Library
Home-page: https://docs.openstack.org/python-senlinclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -37,3 +37,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/python_senlinclient.egg-info/SOURCES.txt new/python-senlinclient-1.10.1/python_senlinclient.egg-info/SOURCES.txt
--- old/python-senlinclient-1.8.0/python_senlinclient.egg-info/SOURCES.txt 2018-08-08 20:27:17.000000000 +0200
+++ new/python-senlinclient-1.10.1/python_senlinclient.egg-info/SOURCES.txt 2019-03-08 01:49:25.000000000 +0100
@@ -32,6 +32,7 @@
python_senlinclient.egg-info/requires.txt
python_senlinclient.egg-info/top_level.txt
releasenotes/notes/.placeholder
+releasenotes/notes/bug-1814171-b1c58797c9ca9f44.yaml
releasenotes/notes/cli-deprecation-241b9569b85f8fbd.yaml
releasenotes/notes/cluster-collect-a9d1bc8c2e799c7c.yaml
releasenotes/notes/cluster-policy-list-42ff03ef25d64dd1.yaml
@@ -58,12 +59,11 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
-releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
-releasenotes/source/locale/zh_CN/LC_MESSAGES/releasenotes.po
senlinclient/__init__.py
senlinclient/client.py
senlinclient/plugin.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/python_senlinclient.egg-info/pbr.json new/python-senlinclient-1.10.1/python_senlinclient.egg-info/pbr.json
--- old/python-senlinclient-1.8.0/python_senlinclient.egg-info/pbr.json 2018-08-08 20:27:17.000000000 +0200
+++ new/python-senlinclient-1.10.1/python_senlinclient.egg-info/pbr.json 2019-03-08 01:49:25.000000000 +0100
@@ -1 +1 @@
-{"git_version": "08649a0", "is_release": true}
\ No newline at end of file
+{"git_version": "5f9c27d", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/python_senlinclient.egg-info/requires.txt new/python-senlinclient-1.10.1/python_senlinclient.egg-info/requires.txt
--- old/python-senlinclient-1.8.0/python_senlinclient.egg-info/requires.txt 2018-08-08 20:27:17.000000000 +0200
+++ new/python-senlinclient-1.10.1/python_senlinclient.egg-info/requires.txt 2019-03-08 01:49:25.000000000 +0100
@@ -2,7 +2,7 @@
pbr!=2.1.0,>=2.0.0
PrettyTable<0.8,>=0.7.2
keystoneauth1>=3.4.0
-openstacksdk>=0.11.2
+openstacksdk>=0.24.0
osc-lib>=1.8.0
oslo.i18n>=3.15.3
oslo.serialization!=2.19.1,>=2.18.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/releasenotes/notes/bug-1814171-b1c58797c9ca9f44.yaml new/python-senlinclient-1.10.1/releasenotes/notes/bug-1814171-b1c58797c9ca9f44.yaml
--- old/python-senlinclient-1.8.0/releasenotes/notes/bug-1814171-b1c58797c9ca9f44.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-senlinclient-1.10.1/releasenotes/notes/bug-1814171-b1c58797c9ca9f44.yaml 2019-03-08 01:47:21.000000000 +0100
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ [`bug 1814171 <https://bugs.launchpad.net/senlin/+bug/1814171>`_]
+ Fixed a bug so that cluster delete and node delete return action id
+ associated with the delete action.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/releasenotes/source/index.rst new/python-senlinclient-1.10.1/releasenotes/source/index.rst
--- old/python-senlinclient-1.8.0/releasenotes/source/index.rst 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/releasenotes/source/index.rst 2019-03-08 01:47:21.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/python-senlinclient-1.10.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/python-senlinclient-1.8.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-03-08 01:47:21.000000000 +0100
@@ -2,13 +2,13 @@
# Andi Chandler <andi(a)gowling.com>, 2018. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: Senlin Client Release Notes\n"
+"Project-Id-Version: python-senlinclient\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-28 14:44+0000\n"
+"POT-Creation-Date: 2018-08-13 16:27+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-02-09 10:54+0000\n"
+"PO-Revision-Date: 2018-08-08 07:57+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -71,9 +71,15 @@
msgid "Added command for node-check and node-recover."
msgstr "Added command for node-check and node-recover."
+msgid "Aded profile, policy, cluster and receiver functional test."
+msgstr "Added profile, policy, cluster and receiver functional test."
+
msgid "Bug Fixes"
msgstr "Bug Fixes"
+msgid "Changed CURRENT_API_VERSION to \"1.10\"."
+msgstr "Changed CURRENT_API_VERSION to \"1.10\"."
+
msgid "Current Series Release Notes"
msgstr "Current Series Release Notes"
@@ -105,6 +111,9 @@
msgid "Fix resource update operations."
msgstr "Fix resource update operations."
+msgid "Fix tox python3 overrides."
+msgstr "Fix tox python3 overrides."
+
msgid "Fixed a bug that force deletion of cluster or node was not working."
msgstr "Fixed a bug that force deletion of cluster or node was not working."
@@ -112,9 +121,18 @@
msgstr ""
"Fixed a bug that region name is not respected when connecting to cloud."
+msgid "Fixed tox python3 overrides."
+msgstr "Fixed tox python3 overrides."
+
+msgid "Followed the new PTI for document build."
+msgstr "Followed the new PTI for document build."
+
msgid "Help message for metadata clean operations."
msgstr "Help message for metadata clean operations."
+msgid "Improved functional test for python-senlinclient."
+msgstr "Improved functional test for python-senlinclient."
+
msgid "New Features"
msgstr "New Features"
@@ -143,6 +161,9 @@
msgid "Remove unsupported sort key \"user\" for event-list."
msgstr "Remove unsupported sort key \"user\" for event-list."
+msgid "Removed pypy because pypy is no longer supported by oslo libraries."
+msgstr "Removed pypy because pypy is no longer supported by oslo libraries."
+
msgid "Senlin Client Release Notes"
msgstr "Senlin Client Release Notes"
@@ -152,6 +173,9 @@
msgid "Support node replace operation."
msgstr "Support node replace operation."
+msgid "Switched testr switch to stestr."
+msgstr "Switched testr switch to stestr."
+
msgid ""
"The 'senlin' CLI will be removed in April 2017. This message is now "
"explicitly printed when senlin CLI commands are invoked."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po new/python-senlinclient-1.10.1/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
--- old/python-senlinclient-1.8.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po 1970-01-01 01:00:00.000000000 +0100
@@ -1,42 +0,0 @@
-# Gérald LONLAS <g.lonlas(a)gmail.com>, 2016. #zanata
-msgid ""
-msgstr ""
-"Project-Id-Version: Senlin Client Release Notes 1.4.1\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-08-09 13:26+0000\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2016-10-22 06:14+0000\n"
-"Last-Translator: Gérald LONLAS <g.lonlas(a)gmail.com>\n"
-"Language-Team: French\n"
-"Language: fr\n"
-"X-Generator: Zanata 3.9.6\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-
-msgid "0.5.0"
-msgstr "0.5.0"
-
-msgid "1.0.0"
-msgstr "1.0.0"
-
-msgid "Bug Fixes"
-msgstr "Corrections de bugs"
-
-msgid "Current Series Release Notes"
-msgstr "Note de la release actuelle"
-
-msgid "New Features"
-msgstr "Nouvelles fonctionnalités"
-
-msgid "Newton Series Release Notes"
-msgstr "Note de release pour Newton"
-
-msgid "Other Notes"
-msgstr "Autres notes"
-
-msgid "Senlin Client Release Notes"
-msgstr "Note de release du Client Senlin"
-
-msgid "Upgrade Notes"
-msgstr "Notes de mises à jours"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/releasenotes/source/locale/zh_CN/LC_MESSAGES/releasenotes.po new/python-senlinclient-1.10.1/releasenotes/source/locale/zh_CN/LC_MESSAGES/releasenotes.po
--- old/python-senlinclient-1.8.0/releasenotes/source/locale/zh_CN/LC_MESSAGES/releasenotes.po 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/releasenotes/source/locale/zh_CN/LC_MESSAGES/releasenotes.po 1970-01-01 01:00:00.000000000 +0100
@@ -1,40 +0,0 @@
-# zzxwill <zzxwill(a)gmail.com>, 2016. #zanata
-msgid ""
-msgstr ""
-"Project-Id-Version: Senlin Client Release Notes\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-28 14:44+0000\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2016-06-25 02:41+0000\n"
-"Last-Translator: zzxwill <zzxwill(a)gmail.com>\n"
-"Language-Team: Chinese (China)\n"
-"Language: zh_CN\n"
-"X-Generator: Zanata 4.3.3\n"
-"Plural-Forms: nplurals=1; plural=0\n"
-
-msgid "0.5.0"
-msgstr "0.5.0"
-
-msgid "Added command for node-check and node-recover."
-msgstr "已为node-check和node-recover添加了命令。"
-
-msgid "Current Series Release Notes"
-msgstr "当前版本发布说明"
-
-msgid "New Features"
-msgstr "新特性"
-
-msgid ""
-"OSC commands for cluster scaling are changed from 'cluster scale in' and "
-"'cluster scale out' to 'cluster shrink' and 'cluster expand' respectively."
-msgstr ""
-"集群扩展的OSC命令分别从'cluster scale in'和'cluster scale out'改成了'cluster "
-"shrink'和'cluster expand'。"
-
-msgid "Senlin Client Release Notes"
-msgstr "Senlin Client发布说明"
-
-msgid "Upgrade Notes"
-msgstr "升级说明"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/releasenotes/source/rocky.rst new/python-senlinclient-1.10.1/releasenotes/source/rocky.rst
--- old/python-senlinclient-1.8.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-senlinclient-1.10.1/releasenotes/source/rocky.rst 2019-03-08 01:47:21.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/requirements.txt new/python-senlinclient-1.10.1/requirements.txt
--- old/python-senlinclient-1.8.0/requirements.txt 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/requirements.txt 2019-03-08 01:47:21.000000000 +0100
@@ -6,7 +6,7 @@
pbr!=2.1.0,>=2.0.0 # Apache-2.0
PrettyTable<0.8,>=0.7.2 # BSD
keystoneauth1>=3.4.0 # Apache-2.0
-openstacksdk>=0.11.2 # Apache-2.0
+openstacksdk>=0.24.0 # Apache-2.0
osc-lib>=1.8.0 # Apache-2.0
oslo.i18n>=3.15.3 # Apache-2.0
oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/plugin.py new/python-senlinclient-1.10.1/senlinclient/plugin.py
--- old/python-senlinclient-1.8.0/senlinclient/plugin.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/plugin.py 2019-03-08 01:47:24.000000000 +0100
@@ -14,8 +14,9 @@
import logging
+from openstack.config import cloud_region
+from openstack.config import defaults as config_defaults
from openstack import connection
-from openstack import profile
from osc_lib import utils
LOG = logging.getLogger(__name__)
@@ -23,38 +24,84 @@
DEFAULT_CLUSTERING_API_VERSION = '1'
API_VERSION_OPTION = 'os_clustering_api_version'
API_NAME = 'clustering'
-CURRENT_API_VERSION = '1.10'
+CURRENT_API_VERSION = '1.12'
-def create_connection(prof=None, **kwargs):
- interface = kwargs.pop('interface', None)
- region_name = kwargs.pop('region_name', None)
- user_agent = kwargs.pop('user_agent', None)
-
- if not prof:
- prof = profile.Profile()
- prof.set_api_version(API_NAME, CURRENT_API_VERSION)
-
- if interface:
- prof.set_interface(API_NAME, interface)
- if region_name:
- prof.set_region(API_NAME, region_name)
+def _make_key(service_type, key):
+ if not service_type:
+ return key
+ else:
+ service_type = service_type.lower().replace('-', '_')
+ return "_".join([service_type, key])
+
+
+def _get_config_from_profile(profile, **kwargs):
+ # Deal with clients still trying to use legacy profile objects
+ region_name = None
+ for service in profile.get_services():
+ if service.region:
+ region_name = service.region
+ service_type = service.service_type
+ if service.interface:
+ key = _make_key(service_type, 'interface')
+ kwargs[key] = service.interface
+ if service.version:
+ version = service.version
+ if version.startswith('v'):
+ version = version[1:]
+ key = _make_key(service_type, 'api_version')
+ kwargs[key] = version
+ if service.api_version:
+ version = service.api_version
+ key = _make_key(service_type, 'default_microversion')
+ kwargs[key] = version
+
+ config_kwargs = config_defaults.get_defaults()
+ config_kwargs.update(kwargs)
+ config = cloud_region.CloudRegion(
+ region_name=region_name, config=config_kwargs)
+ return config
+
+
+def create_connection(prof=None, cloud_region=None, **kwargs):
+ version_key = _make_key(API_NAME, 'api_version')
+ kwargs[version_key] = CURRENT_API_VERSION
+
+ if not cloud_region:
+ if prof:
+ cloud_region = _get_config_from_profile(prof, **kwargs)
+ else:
+ # If we got the CloudRegion from python-openstackclient and it doesn't
+ # already have a default microversion set, set it here.
+ microversion_key = _make_key(API_NAME, 'default_microversion')
+ cloud_region.config.setdefault(microversion_key, CURRENT_API_VERSION)
- return connection.Connection(profile=prof, user_agent=user_agent, **kwargs)
+ user_agent = kwargs.pop('user_agent', None)
+ app_name = kwargs.pop('app_name', None)
+ app_version = kwargs.pop('app_version', None)
+ if user_agent is not None and (not app_name and not app_version):
+ app_name, app_version = user_agent.split('/', 1)
+
+ return connection.Connection(
+ config=cloud_region,
+ app_name=app_name,
+ app_version=app_version, **kwargs)
def make_client(instance):
"""Returns a clustering proxy"""
+ # TODO(mordred) the ClientManager already has an OpenStackSDK connection,
+ # but it only has it once setup_auth has been called. For things that
+ # don't require auth, this is problematic, so we have to make our own.
+ # Use the CloudRegion stored on the ClientManager for now.
conn = create_connection(
- region_name=instance.region_name,
- interface=instance.interface,
- authenticator=instance.session.auth
+ cloud_region=instance._cli_options,
)
LOG.debug('Connection: %s', conn)
LOG.debug('Clustering client initialized using OpenStackSDK: %s',
- conn.cluster)
- return conn.cluster
+ conn.clustering)
+ return conn.clustering
def build_option_parser(parser):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/tests/functional/test_clusters.py new/python-senlinclient-1.10.1/senlinclient/tests/functional/test_clusters.py
--- old/python-senlinclient-1.8.0/senlinclient/tests/functional/test_clusters.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/tests/functional/test_clusters.py 2019-03-08 01:47:21.000000000 +0100
@@ -9,7 +9,6 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-from tempest.lib import decorators
from senlinclient.tests.functional import base
@@ -82,10 +81,6 @@
self.assertEqual(cluster_data['timeout'], '300')
self.assertEqual(new_pf['name'], node_data['profile_name'])
- # (chenyb4) cluster update profile only need api microversion support,
- # skip cluster update profile only before openstacksdk support
- # api microversion.
- @decorators.skip_because(bug="2003146")
def test_cluster_update_profile_only(self):
old_name = self.name_generate()
old_pf = self.profile_create(old_name)
@@ -257,9 +252,6 @@
self.assertEqual('', mem_del_data['node_ids'])
self.assertNotIn(node['id'], mem_del_data['node_ids'])
- # (chenyb4) cluster members replace need api microversion support,
- # skip cluster members replace before openstacksdk support api microversion
- @decorators.skip_because(bug="2003146")
def test_cluster_members_replace(self):
name = self.name_generate()
pf = self.profile_create(name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/tests/unit/test_format_utils.py new/python-senlinclient-1.10.1/senlinclient/tests/unit/test_format_utils.py
--- old/python-senlinclient-1.8.0/senlinclient/tests/unit/test_format_utils.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/tests/unit/test_format_utils.py 2019-03-08 01:47:24.000000000 +0100
@@ -10,9 +10,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-import json
import yaml
+from oslo_serialization import jsonutils
+
from osc_lib.tests import utils
from senlinclient.common import format_utils
@@ -46,7 +47,7 @@
def test_json_format(self):
self.cmd = ShowJson(self.app, None)
parsed_args = self.check_parser(self.cmd, [], [])
- expected = json.dumps(dict(zip(columns, data)), indent=2)
+ expected = jsonutils.dumps(dict(zip(columns, data)), indent=2)
self.cmd.run(parsed_args)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/tests/unit/test_plugin.py new/python-senlinclient-1.10.1/senlinclient/tests/unit/test_plugin.py
--- old/python-senlinclient-1.8.0/senlinclient/tests/unit/test_plugin.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/tests/unit/test_plugin.py 2019-03-08 01:47:24.000000000 +0100
@@ -12,7 +12,6 @@
import mock
from openstack import connection as sdk_connection
-from openstack import profile as sdk_profile
import testtools
from senlinclient import plugin
@@ -22,7 +21,15 @@
@mock.patch.object(sdk_connection, 'Connection')
def test_create_connection_with_profile(self, mock_connection):
+ class FakeService(object):
+ interface = 'public'
+ region = 'a_region'
+ version = '1'
+ api_version = None
+ service_type = 'clustering'
+
mock_prof = mock.Mock()
+ mock_prof.get_services.return_value = [FakeService()]
mock_conn = mock.Mock()
mock_connection.return_value = mock_conn
kwargs = {
@@ -31,20 +38,17 @@
'auth_url': 'test_url'
}
res = plugin.create_connection(mock_prof, **kwargs)
- mock_connection.assert_called_once_with(profile=mock_prof,
- user_agent=None,
- user_id='123',
- password='abc',
- auth_url='test_url')
+ mock_connection.assert_called_once_with(
+ app_name=None, app_version=None,
+ config=mock.ANY,
+ clustering_api_version=plugin.CURRENT_API_VERSION,
+ **kwargs
+ )
self.assertEqual(mock_conn, res)
@mock.patch.object(sdk_connection, 'Connection')
- @mock.patch.object(sdk_profile, 'Profile')
- def test_create_connection_without_profile(self, mock_profile,
- mock_connection):
- mock_prof = mock.Mock()
+ def test_create_connection_without_profile(self, mock_connection):
mock_conn = mock.Mock()
- mock_profile.return_value = mock_prof
mock_connection.return_value = mock_conn
kwargs = {
'interface': 'public',
@@ -55,11 +59,14 @@
}
res = plugin.create_connection(**kwargs)
- mock_prof.set_interface.assert_called_once_with('clustering', 'public')
- mock_prof.set_region.assert_called_once_with('clustering', 'RegionOne')
- mock_connection.assert_called_once_with(profile=mock_prof,
- user_agent=None,
- user_id='123',
- password='abc',
- auth_url='test_url')
+ mock_connection.assert_called_once_with(
+ app_name=None, app_version=None,
+ auth_url='test_url',
+ clustering_api_version=plugin.CURRENT_API_VERSION,
+ config=None,
+ interface='public',
+ password='abc',
+ region_name='RegionOne',
+ user_id='123'
+ )
self.assertEqual(mock_conn, res)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/tests/unit/v1/fakes.py new/python-senlinclient-1.10.1/senlinclient/tests/unit/v1/fakes.py
--- old/python-senlinclient-1.8.0/senlinclient/tests/unit/v1/fakes.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/tests/unit/v1/fakes.py 2019-03-08 01:47:24.000000000 +0100
@@ -12,12 +12,11 @@
import sys
-import json
import mock
from osc_lib.tests import utils
import requests
-import six
+from oslo_serialization import jsonutils
AUTH_TOKEN = "foobar"
AUTH_URL = "http://0.0.0.0"
@@ -158,9 +157,7 @@
self.status_code = status_code
self.headers.update(headers)
- self._content = json.dumps(data)
- if not isinstance(self._content, six.binary_type):
- self._content = self._content.encode()
+ self._content = jsonutils.dump_as_bytes(data)
class FakeClusteringv1Client(object):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/tests/unit/v1/test_client.py new/python-senlinclient-1.10.1/senlinclient/tests/unit/v1/test_client.py
--- old/python-senlinclient-1.8.0/senlinclient/tests/unit/v1/test_client.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/tests/unit/v1/test_client.py 2019-03-08 01:47:21.000000000 +0100
@@ -220,8 +220,8 @@
sc = client.Client()
res = sc.cluster_add_nodes('FAKE_ID', ['NODE1', 'NODE2'])
- self.assertEqual(self.service.cluster_add_nodes.return_value, res)
- self.service.cluster_add_nodes.assert_called_once_with(
+ self.assertEqual(self.service.add_nodes_to_cluster.return_value, res)
+ self.service.add_nodes_to_cluster.assert_called_once_with(
'FAKE_ID', ['NODE1', 'NODE2'])
def test_cluster_del_nodes(self, mock_conn):
@@ -229,8 +229,9 @@
sc = client.Client()
res = sc.cluster_del_nodes('FAKE_ID', ['NODE1', 'NODE2'])
- self.assertEqual(self.service.cluster_del_nodes.return_value, res)
- self.service.cluster_del_nodes.assert_called_once_with(
+ self.assertEqual(self.service.remove_nodes_from_cluster.return_value,
+ res)
+ self.service.remove_nodes_from_cluster.assert_called_once_with(
'FAKE_ID', ['NODE1', 'NODE2'])
def test_cluster_resize(self, mock_conn):
@@ -238,8 +239,8 @@
sc = client.Client()
res = sc.cluster_resize('FAKE_ID', foo='bar', zoo=1)
- self.assertEqual(self.service.cluster_resize.return_value, res)
- self.service.cluster_resize.assert_called_once_with(
+ self.assertEqual(self.service.resize_cluster.return_value, res)
+ self.service.resize_cluster.assert_called_once_with(
'FAKE_ID', foo='bar', zoo=1)
def test_cluster_scale_in(self, mock_conn):
@@ -247,8 +248,8 @@
sc = client.Client()
res = sc.cluster_scale_in('FAKE_ID', 3)
- self.assertEqual(self.service.cluster_scale_in.return_value, res)
- self.service.cluster_scale_in.assert_called_once_with(
+ self.assertEqual(self.service.scale_in_cluster.return_value, res)
+ self.service.scale_in_cluster.assert_called_once_with(
'FAKE_ID', 3)
def test_cluster_scale_out(self, mock_conn):
@@ -256,8 +257,8 @@
sc = client.Client()
res = sc.cluster_scale_out('FAKE_ID', 3)
- self.assertEqual(self.service.cluster_scale_out.return_value, res)
- self.service.cluster_scale_out.assert_called_once_with(
+ self.assertEqual(self.service.scale_out_cluster.return_value, res)
+ self.service.scale_out_cluster.assert_called_once_with(
'FAKE_ID', 3)
def test_cluster_policies(self, mock_conn):
@@ -283,8 +284,9 @@
sc = client.Client()
res = sc.cluster_attach_policy('FOO', 'BAR', zoo='car')
- self.assertEqual(self.service.cluster_attach_policy.return_value, res)
- self.service.cluster_attach_policy.assert_called_once_with(
+ self.assertEqual(self.service.attach_policy_to_cluster.return_value,
+ res)
+ self.service.attach_policy_to_cluster.assert_called_once_with(
'FOO', 'BAR', zoo='car')
def test_cluster_detach_policy(self, mock_conn):
@@ -292,8 +294,9 @@
sc = client.Client()
res = sc.cluster_detach_policy('FOO', 'BAR')
- self.assertEqual(self.service.cluster_detach_policy.return_value, res)
- self.service.cluster_detach_policy.assert_called_once_with(
+ self.assertEqual(self.service.detach_policy_from_cluster.return_value,
+ res)
+ self.service.detach_policy_from_cluster.assert_called_once_with(
'FOO', 'BAR')
def test_cluster_update_policy(self, mock_conn):
@@ -301,8 +304,8 @@
sc = client.Client()
res = sc.cluster_update_policy('FOO', 'BAR', foo='bar')
- self.assertEqual(self.service.cluster_update_policy.return_value, res)
- self.service.cluster_update_policy.assert_called_once_with(
+ self.assertEqual(self.service.update_cluster_policy.return_value, res)
+ self.service.update_cluster_policy.assert_called_once_with(
'FOO', 'BAR', foo='bar')
def test_check_cluster(self, mock_conn):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/tests/unit/v1/test_cluster.py new/python-senlinclient-1.10.1/senlinclient/tests/unit/v1/test_cluster.py
--- old/python-senlinclient-1.8.0/senlinclient/tests/unit/v1/test_cluster.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/tests/unit/v1/test_cluster.py 2019-03-08 01:47:21.000000000 +0100
@@ -432,7 +432,7 @@
def setUp(self):
super(TestClusterResize, self).setUp()
self.cmd = osc_cluster.ResizeCluster(self.app, None)
- self.mock_client.cluster_resize = mock.Mock(
+ self.mock_client.resize_cluster = mock.Mock(
return_value=self.response)
def test_cluster_resize_no_params(self):
@@ -460,7 +460,7 @@
'my_cluster', '--strict']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_resize.assert_called_with('my_cluster',
+ self.mock_client.resize_cluster.assert_called_with('my_cluster',
**self.defaults)
def test_cluster_resize_invalid_capacity(self):
@@ -481,7 +481,7 @@
kwargs['number'] = 1
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_resize.assert_called_with('my_cluster',
+ self.mock_client.resize_cluster.assert_called_with('my_cluster',
**kwargs)
def test_cluster_resize_invalid_adjustment(self):
@@ -501,7 +501,7 @@
kwargs['adjustment_type'] = 'CHANGE_IN_PERCENTAGE'
kwargs['number'] = 50.0
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_resize.assert_called_with('my_cluster',
+ self.mock_client.resize_cluster.assert_called_with('my_cluster',
**kwargs)
def test_cluster_resize_invalid_percentage(self):
@@ -568,14 +568,14 @@
def setUp(self):
super(TestClusterScaleIn, self).setUp()
self.cmd = osc_cluster.ScaleInCluster(self.app, None)
- self.mock_client.cluster_scale_in = mock.Mock(
+ self.mock_client.scale_in_cluster = mock.Mock(
return_value=self.response)
def test_cluster_scale_in(self):
arglist = ['--count', '2', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_scale_in.assert_called_with('my_cluster',
+ self.mock_client.scale_in_cluster.assert_called_with('my_cluster',
'2')
@@ -585,14 +585,14 @@
def setUp(self):
super(TestClusterScaleOut, self).setUp()
self.cmd = osc_cluster.ScaleOutCluster(self.app, None)
- self.mock_client.cluster_scale_out = mock.Mock(
+ self.mock_client.scale_out_cluster = mock.Mock(
return_value=self.response)
- def test_cluster_scale_in(self):
+ def test_cluster_scale_out(self):
arglist = ['--count', '2', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_scale_out.assert_called_with('my_cluster',
+ self.mock_client.scale_out_cluster.assert_called_with('my_cluster',
'2')
@@ -602,14 +602,14 @@
def setUp(self):
super(TestClusterPolicyAttach, self).setUp()
self.cmd = osc_cluster.ClusterPolicyAttach(self.app, None)
- self.mock_client.cluster_attach_policy = mock.Mock(
+ self.mock_client.attach_policy_to_cluster = mock.Mock(
return_value=self.response)
def test_cluster_policy_attach(self):
arglist = ['--policy', 'my_policy', '--enabled', 'True', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_attach_policy.assert_called_with(
+ self.mock_client.attach_policy_to_cluster.assert_called_with(
'my_cluster',
'my_policy',
enabled=True)
@@ -621,14 +621,14 @@
def setUp(self):
super(TestClusterPolicyDetach, self).setUp()
self.cmd = osc_cluster.ClusterPolicyDetach(self.app, None)
- self.mock_client.cluster_detach_policy = mock.Mock(
+ self.mock_client.detach_policy_from_cluster = mock.Mock(
return_value=self.response)
def test_cluster_policy_detach(self):
arglist = ['--policy', 'my_policy', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_detach_policy.assert_called_with(
+ self.mock_client.detach_policy_from_cluster.assert_called_with(
'my_cluster',
'my_policy')
@@ -711,14 +711,14 @@
def setUp(self):
super(TestClusterNodeAdd, self).setUp()
self.cmd = osc_cluster.ClusterNodeAdd(self.app, None)
- self.mock_client.cluster_add_nodes = mock.Mock(
+ self.mock_client.add_nodes_to_cluster = mock.Mock(
return_value=self.response)
def test_cluster_node_add(self):
arglist = ['--nodes', 'node1', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_add_nodes.assert_called_with(
+ self.mock_client.add_nodes_to_cluster.assert_called_with(
'my_cluster',
['node1'])
@@ -726,7 +726,7 @@
arglist = ['--nodes', 'node1,node2', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_add_nodes.assert_called_with(
+ self.mock_client.add_nodes_to_cluster.assert_called_with(
'my_cluster',
['node1', 'node2'])
@@ -737,14 +737,14 @@
def setUp(self):
super(TestClusterNodeDel, self).setUp()
self.cmd = osc_cluster.ClusterNodeDel(self.app, None)
- self.mock_client.cluster_del_nodes = mock.Mock(
+ self.mock_client.remove_nodes_from_cluster = mock.Mock(
return_value=self.response)
def test_cluster_node_delete(self):
arglist = ['-d', 'True', '--nodes', 'node1', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_del_nodes.assert_called_with(
+ self.mock_client.remove_nodes_from_cluster.assert_called_with(
'my_cluster',
['node1'],
destroy_after_deletion=True)
@@ -753,7 +753,7 @@
arglist = ['-d', 'False', '--nodes', 'node1', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_del_nodes.assert_called_with(
+ self.mock_client.remove_nodes_from_cluster.assert_called_with(
'my_cluster',
['node1'],
destroy_after_deletion=False)
@@ -762,7 +762,7 @@
arglist = ['--nodes', 'node1,node2', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_del_nodes.assert_called_with(
+ self.mock_client.remove_nodes_from_cluster.assert_called_with(
'my_cluster',
['node1', 'node2'],
destroy_after_deletion=False)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/tests/unit/v1/test_cluster_policy.py new/python-senlinclient-1.10.1/senlinclient/tests/unit/v1/test_cluster_policy.py
--- old/python-senlinclient-1.8.0/senlinclient/tests/unit/v1/test_cluster_policy.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/tests/unit/v1/test_cluster_policy.py 2019-03-08 01:47:21.000000000 +0100
@@ -89,12 +89,12 @@
super(TestClusterPolicyUpdate, self).setUp()
self.cmd = osc_cluster_policy.ClusterPolicyUpdate(self.app, None)
fake_resp = {"action": "8bb476c3-0f4c-44ee-9f64-c7b0260814de"}
- self.mock_client.cluster_update_policy = mock.Mock(
+ self.mock_client.update_cluster_policy = mock.Mock(
return_value=fake_resp)
def test_cluster_policy_update(self):
arglist = ['--policy', 'my_policy', '--enabled', 'true', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
- self.mock_client.cluster_update_policy.assert_called_with(
+ self.mock_client.update_cluster_policy.assert_called_with(
'my_cluster', 'my_policy', enabled=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/v1/client.py new/python-senlinclient-1.10.1/senlinclient/v1/client.py
--- old/python-senlinclient-1.8.0/senlinclient/v1/client.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/v1/client.py 2019-03-08 01:47:21.000000000 +0100
@@ -221,7 +221,7 @@
https://developer.openstack.org/api-ref/clustering/
#add-nodes-to-a-cluster
"""
- return self.service.cluster_add_nodes(cluster, nodes)
+ return self.service.add_nodes_to_cluster(cluster, nodes)
def cluster_del_nodes(self, cluster, nodes):
"""Delete a node belongs to cluster
@@ -230,7 +230,7 @@
https://developer.openstack.org/api-ref/clustering/
#remove-nodes-from-a-cluster
"""
- return self.service.cluster_del_nodes(cluster, nodes)
+ return self.service.remove_nodes_from_cluster(cluster, nodes)
def cluster_replace_nodes(self, cluster, nodes):
"""Replace the nodes in a cluster with specified nodes
@@ -239,7 +239,7 @@
https://developer.openstack.org/api-ref/clustering/
#replace-nodes-in-a-cluster
"""
- return self.service.cluster_replace_nodes(cluster, nodes)
+ return self.service.replace_nodes_in_cluster(cluster, nodes)
def cluster_resize(self, cluster, **params):
"""Resize cluster
@@ -247,7 +247,7 @@
Doc link:
https://developer.openstack.org/api-ref/clustering/#resize-a-cluster
"""
- return self.service.cluster_resize(cluster, **params)
+ return self.service.resize_cluster(cluster, **params)
def cluster_scale_out(self, cluster, count):
"""Scale out cluster
@@ -255,7 +255,7 @@
Doc link:
https://developer.openstack.org/api-ref/clustering/#scale-out-a-cluster
"""
- return self.service.cluster_scale_out(cluster, count)
+ return self.service.scale_out_cluster(cluster, count)
def cluster_scale_in(self, cluster, count):
"""Scale in cluster
@@ -263,7 +263,7 @@
Doc link:
https://developer.openstack.org/api-ref/clustering/#scale-in-a-cluster
"""
- return self.service.cluster_scale_in(cluster, count)
+ return self.service.scale_in_cluster(cluster, count)
def cluster_policies(self, cluster, **queries):
"""List all policies attached to cluster
@@ -290,7 +290,7 @@
https://developer.openstack.org/api-ref/clustering/
#attach-a-policy-to-a-cluster
"""
- return self.service.cluster_attach_policy(cluster, policy, **attrs)
+ return self.service.attach_policy_to_cluster(cluster, policy, **attrs)
def cluster_detach_policy(self, cluster, policy):
"""Detach a policy from cluster
@@ -299,7 +299,7 @@
https://developer.openstack.org/api-ref/clustering/
#detach-a-policy-from-a-cluster
"""
- return self.service.cluster_detach_policy(cluster, policy)
+ return self.service.detach_policy_from_cluster(cluster, policy)
def cluster_update_policy(self, cluster, policy, **attrs):
"""Update the policy attachment
@@ -308,7 +308,7 @@
https://developer.openstack.org/api-ref/clustering/
#update-a-policy-on-a-cluster
"""
- return self.service.cluster_update_policy(cluster, policy, **attrs)
+ return self.service.update_cluster_policy(cluster, policy, **attrs)
def collect_cluster_attrs(self, cluster, path):
"""Collect cluster attributes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/v1/cluster.py new/python-senlinclient-1.10.1/senlinclient/v1/cluster.py
--- old/python-senlinclient-1.8.0/senlinclient/v1/cluster.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/v1/cluster.py 2019-03-08 01:47:21.000000000 +0100
@@ -358,9 +358,9 @@
result = {}
for cid in parsed_args.cluster:
try:
- cluster = senlin_client.delete_cluster(
+ cluster_delete_action = senlin_client.delete_cluster(
cid, False, parsed_args.force_delete)
- result[cid] = ('OK', cluster.location.split('/')[-1])
+ result[cid] = ('OK', cluster_delete_action['id'])
except Exception as ex:
result[cid] = ('ERROR', six.text_type(ex))
@@ -503,7 +503,7 @@
action_args['min_step'] = min_step
action_args['strict'] = parsed_args.strict
- resp = senlin_client.cluster_resize(parsed_args.cluster, **action_args)
+ resp = senlin_client.resize_cluster(parsed_args.cluster, **action_args)
if 'action' in resp:
print('Request accepted by action: %s' % resp['action'])
else:
@@ -533,8 +533,12 @@
self.log.debug("take_action(%s)", parsed_args)
senlin_client = self.app.client_manager.clustering
- resp = senlin_client.cluster_scale_in(parsed_args.cluster,
+ resp = senlin_client.scale_in_cluster(parsed_args.cluster,
parsed_args.count)
+ status_code = resp.get('code', None)
+ if status_code in [409]:
+ raise exc.CommandError(_(
+ 'Unable to scale in cluster: %s') % resp['error']['message'])
if 'action' in resp:
print('Request accepted by action: %s' % resp['action'])
else:
@@ -564,8 +568,12 @@
self.log.debug("take_action(%s)", parsed_args)
senlin_client = self.app.client_manager.clustering
- resp = senlin_client.cluster_scale_out(parsed_args.cluster,
+ resp = senlin_client.scale_out_cluster(parsed_args.cluster,
parsed_args.count)
+ status_code = resp.get('code', None)
+ if status_code in [409]:
+ raise exc.CommandError(_(
+ 'Unable to scale out cluster: %s') % resp['error']['message'])
if 'action' in resp:
print('Request accepted by action: %s' % resp['action'])
else:
@@ -608,9 +616,9 @@
strict=True),
}
- resp = senlin_client.cluster_attach_policy(parsed_args.cluster,
- parsed_args.policy,
- **kwargs)
+ resp = senlin_client.attach_policy_to_cluster(parsed_args.cluster,
+ parsed_args.policy,
+ **kwargs)
if 'action' in resp:
print('Request accepted by action: %s' % resp['action'])
else:
@@ -640,8 +648,8 @@
def take_action(self, parsed_args):
self.log.debug("take_action(%s)", parsed_args)
senlin_client = self.app.client_manager.clustering
- resp = senlin_client.cluster_detach_policy(parsed_args.cluster,
- parsed_args.policy)
+ resp = senlin_client.detach_policy_from_cluster(parsed_args.cluster,
+ parsed_args.policy)
if 'action' in resp:
print('Request accepted by action: %s' % resp['action'])
else:
@@ -750,7 +758,8 @@
self.log.debug("take_action(%s)", parsed_args)
senlin_client = self.app.client_manager.clustering
node_ids = parsed_args.nodes.split(',')
- resp = senlin_client.cluster_add_nodes(parsed_args.cluster, node_ids)
+ resp = senlin_client.add_nodes_to_cluster(parsed_args.cluster,
+ node_ids)
if 'action' in resp:
print('Request accepted by action: %s' % resp['action'])
else:
@@ -792,8 +801,8 @@
destroy = parsed_args.destroy_after_deletion
destroy = strutils.bool_from_string(destroy, strict=True)
kwargs = {"destroy_after_deletion": destroy}
- resp = senlin_client.cluster_del_nodes(parsed_args.cluster, node_ids,
- **kwargs)
+ resp = senlin_client.remove_nodes_from_cluster(
+ parsed_args.cluster, node_ids, **kwargs)
if 'action' in resp:
print('Request accepted by action: %s' % resp['action'])
else:
@@ -831,8 +840,8 @@
key = nodepair.split('=')[0]
value = nodepair.split('=')[1]
nodepairs[key] = value
- resp = senlin_client.cluster_replace_nodes(parsed_args.cluster,
- nodepairs)
+ resp = senlin_client.replace_nodes_in_cluster(parsed_args.cluster,
+ nodepairs)
if 'action' in resp:
print('Request accepted by action: %s' % resp['action'])
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/v1/cluster_policy.py new/python-senlinclient-1.10.1/senlinclient/v1/cluster_policy.py
--- old/python-senlinclient-1.8.0/senlinclient/v1/cluster_policy.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/v1/cluster_policy.py 2019-03-08 01:47:21.000000000 +0100
@@ -150,7 +150,7 @@
strict=True),
}
- resp = senlin_client.cluster_update_policy(parsed_args.cluster,
+ resp = senlin_client.update_cluster_policy(parsed_args.cluster,
parsed_args.policy,
**kwargs)
if 'action' in resp:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/senlinclient/v1/node.py new/python-senlinclient-1.10.1/senlinclient/v1/node.py
--- old/python-senlinclient-1.8.0/senlinclient/v1/node.py 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/senlinclient/v1/node.py 2019-03-08 01:47:21.000000000 +0100
@@ -329,9 +329,9 @@
result = {}
for nid in parsed_args.node:
try:
- node = senlin_client.delete_node(
+ node_delete_action = senlin_client.delete_node(
nid, False, parsed_args.force_delete)
- result[nid] = ('OK', node.location.split('/')[-1])
+ result[nid] = ('OK', node_delete_action['id'])
except Exception as ex:
result[nid] = ('ERROR', six.text_type(ex))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/setup.cfg new/python-senlinclient-1.10.1/setup.cfg
--- old/python-senlinclient-1.8.0/setup.cfg 2018-08-08 20:27:17.000000000 +0200
+++ new/python-senlinclient-1.10.1/setup.cfg 2019-03-08 01:49:25.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/python-senlinclient/latest/
classifier =
Environment :: OpenStack
@@ -17,6 +17,7 @@
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/test-requirements.txt new/python-senlinclient-1.10.1/test-requirements.txt
--- old/python-senlinclient-1.8.0/test-requirements.txt 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/test-requirements.txt 2019-03-08 01:47:21.000000000 +0100
@@ -3,7 +3,8 @@
# process, which may cause wedges in the gate later.
# Hacking already pins down pep8, pyflakes and flake8
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+bandit>=1.1.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
requests-mock>=1.2.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-senlinclient-1.8.0/tox.ini new/python-senlinclient-1.10.1/tox.ini
--- old/python-senlinclient-1.8.0/tox.ini 2018-08-08 20:23:54.000000000 +0200
+++ new/python-senlinclient-1.10.1/tox.ini 2019-03-08 01:47:21.000000000 +0100
@@ -17,6 +17,11 @@
stestr run --slowest {posargs}
whitelist_externals = find
+[testenv:bandit]
+basepython = python3
+deps = -r{toxinidir}/test-requirements.txt
+commands = bandit -r senlinclient -x tests -n5 -ll
+
[testenv:pep8]
basepython = python3
commands =
@@ -40,7 +45,7 @@
setenv =
PYTHON=coverage run --source senlinclient --parallel-mode
commands =
- stestr run '{posargs}'
+ stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
1
0
Hello community,
here is the log from the commit of package python-saharaclient for openSUSE:Factory checked in at 2019-05-03 22:43:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-saharaclient (Old)
and /work/SRC/openSUSE:Factory/.python-saharaclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-saharaclient"
Fri May 3 22:43:14 2019 rev:10 rq:692877 version:2.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-saharaclient/python-saharaclient.changes 2018-10-09 15:53:47.470309486 +0200
+++ /work/SRC/openSUSE:Factory/.python-saharaclient.new.5148/python-saharaclient.changes 2019-05-03 22:43:15.875347325 +0200
@@ -1,0 +2,14 @@
+Mon Apr 8 12:06:56 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.2.0
+ - Add missing APIv2 features to client, OSC
+ - Update devel info: mailing list
+ - Add Python 3.6 classifier to setup.cfg
+ - Update reno for stable/rocky
+ - switch documentation job to new PTI
+ - Preparing OSC for APIv2
+ - add python 3.6 unit test job
+ - import zuul job settings from project-config
+ - Use templates for cover and lower-constraints
+
+-------------------------------------------------------------------
Old:
----
python-saharaclient-2.0.0.tar.gz
New:
----
python-saharaclient-2.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-saharaclient.spec ++++++
--- /var/tmp/diff_new_pack.t7DyAt/_old 2019-05-03 22:43:16.483348605 +0200
+++ /var/tmp/diff_new_pack.t7DyAt/_new 2019-05-03 22:43:16.487348613 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-saharaclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,13 +12,13 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global sname saharaclient
Name: python-saharaclient
-Version: 2.0.0
+Version: 2.2.0
Release: 0
Summary: Client library for OpenStack Sahara API
License: Apache-2.0
@@ -26,11 +26,9 @@
URL: https://launchpad.net/%{name}
Source0: https://files.pythonhosted.org/packages/source/p/%{name}/%{name}-%{version}…
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python-keystoneclient
BuildRequires: python-mock
BuildRequires: python-openstackdocstheme
-BuildRequires: python-os-testr
BuildRequires: python-osc-lib >= 1.11.0
BuildRequires: python-oslo.i18n >= 3.15.3
BuildRequires: python-oslo.log >= 3.36.0
@@ -41,6 +39,7 @@
BuildRequires: python-requests >= 2.14.2
BuildRequires: python-requests-mock
BuildRequires: python-setuptools
+BuildRequires: python-stestr
BuildRequires: python-testrepository
Requires: python-Babel >= 2.3.4
Requires: python-PrettyTable
@@ -70,9 +69,6 @@
%prep
%autosetup -p1 -n %{name}-%{version}
%py_req_cleanup
-# FIXME: can be removed when https://review.openstack.org/#/c/363681/ is merged
-sed -i -e 's/^\s\{4\}git_cmd\(.*\)/ "\/usr\/bin\/true"\1/' doc/source/conf.py
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%py2_build
@@ -81,14 +77,14 @@
%py2_install
# Build HTML docs and man page
-PBR_VERSION=2.0.0 PYTHONPATH=%{buildroot}%{python2_sitelib} sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=2.2.0 PYTHONPATH=%{buildroot}%{python2_sitelib} sphinx-build -b html doc/source doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
%check
# we don't want to depend on hacking/flake8/pep8
rm -v saharaclient/tests/unit/test_hacking.py
-ostestr
+python2 -m stestr.cli run
%files
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.t7DyAt/_old 2019-05-03 22:43:16.515348672 +0200
+++ /var/tmp/diff_new_pack.t7DyAt/_new 2019-05-03 22:43:16.515348672 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-saharaclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-saharaclient/stable/rock…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-saharaclient/stable/stei…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-saharaclient</param>
</service>
++++++ python-saharaclient-2.0.0.tar.gz -> python-saharaclient-2.2.0.tar.gz ++++++
++++ 5705 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-pyghmi for openSUSE:Factory checked in at 2019-05-03 22:43:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyghmi (Old)
and /work/SRC/openSUSE:Factory/.python-pyghmi.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyghmi"
Fri May 3 22:43:11 2019 rev:12 rq:692875 version:1.2.16
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyghmi/python-pyghmi.changes 2018-10-09 15:53:45.374311969 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyghmi.new.5148/python-pyghmi.changes 2019-05-03 22:43:13.515342356 +0200
@@ -1,0 +2,44 @@
+Mon Apr 8 14:02:16 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.2.16
+ - Fix minor .spec issues
+ - Switch to stestr
+ - Forget sessions with poor connectivity that should be forgotten
+ - Do not claim a broken session is valid
+ - Add support for reduced privilege
+ - Preserve logout on storage failure
+ - Correct probles in the servicedata attempt
+ - Fix typo in error message
+ - Fix .spec to include bin scripts and build reqs
+ - Use list() to avoid size change during iteration
+ - Refactor console scripts into entry points
+ - Retry OEM lookup if no specific OEM identified
+ - Fix storage deletion
+ - Fix bay number from IMM property in nextscale chassis
+ - Fetch diagnostic data
+ - Add 'name' subfield to preserve original names.
+ - Handle IMM/XCC without xSEC
+ - Fix print statement in console scripts
+ - Provide 'hardware' inventory for disks
+ - Update package documentation
+ - Handle response without unconfiguredDisk
+ - Fix early life mark_broken call
+ - Fix the mistake in last nights fix
+ - Enrich inventory data on Lenovo IMM/XCC equipment
+ - Reduce calls to _monotonic_time
+ - Provide get_description for physical description
+ - Fix event data for slot events
+ - Gate fix: Cap hacking to avoid gate failure
+ - Add more file patterns for git to ignore
+ - Add spec for python3-pyghmi package build
+ - Show hidden settings
+ - Accept wildcards for settings names
+ - Have storage functions log out of the session
+ - Add Python3 support to Trove
+ - Add a maintenance thread
+ - Clear lastpayload explicitly in some contexts
+ - Provide feedback if the clear system config attempt fails
+ - Prefer more specific IMM/XCC check over FPC check
+ - Add method to clear system configuration
+
+-------------------------------------------------------------------
Old:
----
pyghmi-1.2.4.tar.gz
New:
----
pyghmi-1.2.16.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyghmi.spec ++++++
--- /var/tmp/diff_new_pack.MTKQSv/_old 2019-05-03 22:43:13.947343266 +0200
+++ /var/tmp/diff_new_pack.MTKQSv/_new 2019-05-03 22:43:13.951343274 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pyghmi
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,27 +12,29 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-pyghmi
-Version: 1.2.4
+Version: 1.2.16
Release: 0
Summary: General Hardware Management Initiative (IPMI and others)
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/pyghmi
-Source0: https://files.pythonhosted.org/packages/source/p/pyghmi/pyghmi-1.2.4.tar.gz
+Source0: https://files.pythonhosted.org/packages/source/p/pyghmi/pyghmi-1.2.16.tar.gz
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-cryptography >= 2.1
+BuildRequires: python2-openstackdocstheme
BuildRequires: python2-oslotest
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python3-cryptography >= 2.1
BuildRequires: python3-devel
+BuildRequires: python3-openstackdocstheme
BuildRequires: python3-oslotest
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
Requires: python-cryptography >= 2.1
BuildArch: noarch
%if 0%{?suse_version}
@@ -65,7 +67,6 @@
%prep
%autosetup -p1 -n pyghmi-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -78,21 +79,22 @@
%python_clone -a %{buildroot}%{_bindir}/pyghmicons
%python_clone -a %{buildroot}%{_bindir}/pyghmiutil
%python_clone -a %{buildroot}%{_bindir}/virshbmc
+%python_clone -a %{buildroot}%{_bindir}/fakebmc
%post
%python_install_alternative pyghmicons
%python_install_alternative pyghmiutil
%python_install_alternative virshbmc
+%python_install_alternative fakebmc
%postun
%python_uninstall_alternative pyghmicons
%python_uninstall_alternative pyghmiutil
%python_uninstall_alternative virshbmc
+%python_uninstall_alternative fakebmc
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%doc README.md ChangeLog
@@ -100,6 +102,7 @@
%python_alternative %{_bindir}/pyghmicons
%python_alternative %{_bindir}/pyghmiutil
%python_alternative %{_bindir}/virshbmc
+%python_alternative %{_bindir}/fakebmc
%{python_sitelib}/pyghmi*
%{python_sitelib}/*.egg-info
++++++ _service ++++++
--- /var/tmp/diff_new_pack.MTKQSv/_old 2019-05-03 22:43:13.983343342 +0200
+++ /var/tmp/diff_new_pack.MTKQSv/_new 2019-05-03 22:43:13.983343342 +0200
@@ -1,6 +1,6 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-pyghmi.spec</param>
<param name="requirements">https://raw.githubusercontent.com/openstack/pyghmi/master/requirements.txt</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
++++++ pyghmi-1.2.4.tar.gz -> pyghmi-1.2.16.tar.gz ++++++
++++ 2562 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-pycadf for openSUSE:Factory checked in at 2019-05-03 22:43:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pycadf (Old)
and /work/SRC/openSUSE:Factory/.python-pycadf.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pycadf"
Fri May 3 22:43:08 2019 rev:13 rq:692874 version:2.9.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pycadf/python-pycadf.changes 2018-09-07 15:39:27.442532700 +0200
+++ /work/SRC/openSUSE:Factory/.python-pycadf.new.5148/python-pycadf.changes 2019-05-03 22:43:10.287335560 +0200
@@ -1,0 +2,15 @@
+Mon Apr 8 14:04:16 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.9.0
+ - add lib-forward-testing-python3 test job
+ - Change openstack-dev to openstack-discuss
+ - import zuul job settings from project-config
+ - Enabling FIPS mode by using sha256 instead of md5
+ - Add release note for MD5 hash removal
+ - Don't quote {posargs} in tox.ini
+ - switch documentation job to new PTI
+ - add python 3.6 unit test job
+ - Switch to stestr
+ - Use templates for cover and lower-constraints
+
+-------------------------------------------------------------------
Old:
----
pycadf-2.8.0.tar.gz
New:
----
pycadf-2.9.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pycadf.spec ++++++
--- /var/tmp/diff_new_pack.r2JBie/_old 2019-05-03 22:43:11.267337623 +0200
+++ /var/tmp/diff_new_pack.r2JBie/_new 2019-05-03 22:43:11.271337632 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pycadf
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,38 +12,36 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global oldpython python
Name: python-pycadf
-Version: 2.8.0
+Version: 2.9.0
Release: 0
Summary: DMTF Cloud Audit (CADF) data model
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/pycadf
-Source0: https://files.pythonhosted.org/packages/source/p/pycadf/pycadf-2.8.0.tar.gz
+Source0: https://files.pythonhosted.org/packages/source/p/pycadf/pycadf-2.9.0.tar.gz
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-fixtures
BuildRequires: python2-oslo.config >= 5.2.0
BuildRequires: python2-oslo.serialization >= 2.18.0
BuildRequires: python2-oslotest
BuildRequires: python2-pbr
BuildRequires: python2-setuptools
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
-BuildRequires: python3-devel
BuildRequires: python3-fixtures
BuildRequires: python3-oslo.config >= 5.2.0
BuildRequires: python3-oslo.serialization >= 2.18.0
BuildRequires: python3-oslotest
BuildRequires: python3-pbr
BuildRequires: python3-setuptools
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
Requires: %{oldpython}-pycadf-common
@@ -75,7 +73,7 @@
Configuration files for the DMTF Cloud Audit (CADF) data model.
%prep
-%autosetup -n pycadf-2.8.0
+%autosetup -n pycadf-2.9.0
sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%py_req_cleanup
@@ -94,9 +92,7 @@
mv %{buildroot}%{_prefix}%{_sysconfdir}/pycadf %{buildroot}/%{_sysconfdir}/
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%doc README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.r2JBie/_old 2019-05-03 22:43:11.291337674 +0200
+++ /var/tmp/diff_new_pack.r2JBie/_new 2019-05-03 22:43:11.291337674 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-pycadf.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/pycadf/stable/rocky/requirement…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/pycadf/stable/stein/requirement…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,pycadf</param>
</service>
++++++ pycadf-2.8.0.tar.gz -> pycadf-2.9.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/.stestr.conf new/pycadf-2.9.0/.stestr.conf
--- old/pycadf-2.8.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/pycadf-2.9.0/.stestr.conf 2019-01-29 16:07:14.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./pycadf/tests
+top_dir=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/.testr.conf new/pycadf-2.9.0/.testr.conf
--- old/pycadf-2.8.0/.testr.conf 2018-07-13 22:23:34.000000000 +0200
+++ new/pycadf-2.9.0/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_TEST_TIMEOUT=60 ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/.zuul.yaml new/pycadf-2.9.0/.zuul.yaml
--- old/pycadf-2.8.0/.zuul.yaml 2018-07-13 22:23:34.000000000 +0200
+++ new/pycadf-2.9.0/.zuul.yaml 2019-01-29 16:07:14.000000000 +0100
@@ -1,7 +1,11 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-cover-jobs
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - publish-openstack-docs-pti
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/AUTHORS new/pycadf-2.9.0/AUTHORS
--- old/pycadf-2.8.0/AUTHORS 2018-07-13 22:27:51.000000000 +0200
+++ new/pycadf-2.9.0/AUTHORS 2019-01-29 16:09:26.000000000 +0100
@@ -1,6 +1,7 @@
Abhishek Sharma <abmsharm(a)in.ibm.com>
Andreas Jaeger <aj(a)suse.com>
Arun Kant <arun.kant(a)hp.com>
+Ben Nemec <bnemec(a)redhat.com>
Brad Topol <btopol(a)us.ibm.com>
ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
Charles Short <zulcss(a)gmail.com>
@@ -26,6 +27,7 @@
Lokesh S <lokesh.s(a)hp.com>
Martin Geisler <martin(a)geisler.net>
Matt Riedemann <mriedem(a)us.ibm.com>
+Raildo Mascena <rmascena(a)redhat.com>
Rakesh H S <rh-s(a)hpe.com>
Samriddhi Jain <j.samriddhi13(a)gmail.com>
Sascha Peilicke <saschpe(a)gmx.de>
@@ -34,7 +36,8 @@
Swapnil Kulkarni (coolsvap) <me(a)coolsvap.net>
Tony Breeds <tony(a)bakeyournoodle.com>
Tony Xu <hhktony(a)gmail.com>
-Zuul <zuul(a)review.openstack.org>
+Vieri <15050873171(a)163.com>
+Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
bgsilva <bgsilva(a)us.ibm.com>
chenghuiyu <yuchenghui(a)unionpay.com>
gord chung <gord(a)live.ca>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/ChangeLog new/pycadf-2.9.0/ChangeLog
--- old/pycadf-2.8.0/ChangeLog 2018-07-13 22:27:51.000000000 +0200
+++ new/pycadf-2.9.0/ChangeLog 2019-01-29 16:09:26.000000000 +0100
@@ -1,6 +1,20 @@
CHANGES
=======
+2.9.0
+-----
+
+* Add release note for MD5 hash removal
+* Change openstack-dev to openstack-discuss
+* Enabling FIPS mode by using sha256 instead of md5
+* Don't quote {posargs} in tox.ini
+* Use templates for cover and lower-constraints
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Switch to stestr
+
2.8.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/PKG-INFO new/pycadf-2.9.0/PKG-INFO
--- old/pycadf-2.8.0/PKG-INFO 2018-07-13 22:27:51.000000000 +0200
+++ new/pycadf-2.9.0/PKG-INFO 2019-01-29 16:09:26.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: pycadf
-Version: 2.8.0
+Version: 2.9.0
Summary: CADF Library
Home-page: https://docs.openstack.org/pycadf/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/lower-constraints.txt new/pycadf-2.9.0/lower-constraints.txt
--- old/pycadf-2.8.0/lower-constraints.txt 2018-07-13 22:23:34.000000000 +0200
+++ new/pycadf-2.9.0/lower-constraints.txt 2019-01-29 16:07:14.000000000 +0100
@@ -48,7 +48,7 @@
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
stevedore==1.20.0
-testrepository==0.0.18
+stestr==2.0.0
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/pycadf/identifier.py new/pycadf-2.9.0/pycadf/identifier.py
--- old/pycadf-2.8.0/pycadf/identifier.py 2018-07-13 22:23:34.000000000 +0200
+++ new/pycadf-2.9.0/pycadf/identifier.py 2019-01-29 16:07:14.000000000 +0100
@@ -30,8 +30,8 @@
AUDIT_NS = None
if CONF.audit.namespace:
- md5_hash = hashlib.md5(CONF.audit.namespace.encode('utf-8'))
- AUDIT_NS = uuid.UUID(md5_hash.hexdigest())
+ sha256_hash = hashlib.sha256(CONF.audit.namespace.encode('utf-8'))
+ AUDIT_NS = uuid.UUID(sha256_hash.hexdigest()[0:32])
VALID_EXCEPTIONS = ['default', 'initiator', 'observer', 'target']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/pycadf.egg-info/PKG-INFO new/pycadf-2.9.0/pycadf.egg-info/PKG-INFO
--- old/pycadf-2.8.0/pycadf.egg-info/PKG-INFO 2018-07-13 22:27:51.000000000 +0200
+++ new/pycadf-2.9.0/pycadf.egg-info/PKG-INFO 2019-01-29 16:09:26.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: pycadf
-Version: 2.8.0
+Version: 2.9.0
Summary: CADF Library
Home-page: https://docs.openstack.org/pycadf/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/pycadf.egg-info/SOURCES.txt new/pycadf-2.9.0/pycadf.egg-info/SOURCES.txt
--- old/pycadf-2.8.0/pycadf.egg-info/SOURCES.txt 2018-07-13 22:27:51.000000000 +0200
+++ new/pycadf-2.9.0/pycadf.egg-info/SOURCES.txt 2019-01-29 16:09:26.000000000 +0100
@@ -1,4 +1,4 @@
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -84,4 +84,5 @@
pycadf/tests/test_cadf_spec.py
pycadf/tests/test_utils.py
pycadf/tests/helper/__init__.py
-pycadf/tests/helper/test_api.py
\ No newline at end of file
+pycadf/tests/helper/test_api.py
+releasenotes/notes/md5-removal-005f5c7a1038443f.yaml
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/pycadf.egg-info/pbr.json new/pycadf-2.9.0/pycadf.egg-info/pbr.json
--- old/pycadf-2.8.0/pycadf.egg-info/pbr.json 2018-07-13 22:27:51.000000000 +0200
+++ new/pycadf-2.9.0/pycadf.egg-info/pbr.json 2019-01-29 16:09:26.000000000 +0100
@@ -1 +1 @@
-{"git_version": "7df2d59", "is_release": true}
\ No newline at end of file
+{"git_version": "4398b7d", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/releasenotes/notes/md5-removal-005f5c7a1038443f.yaml new/pycadf-2.9.0/releasenotes/notes/md5-removal-005f5c7a1038443f.yaml
--- old/pycadf-2.8.0/releasenotes/notes/md5-removal-005f5c7a1038443f.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/pycadf-2.9.0/releasenotes/notes/md5-removal-005f5c7a1038443f.yaml 2019-01-29 16:07:14.000000000 +0100
@@ -0,0 +1,6 @@
+---
+security:
+ - |
+ MD5 is no longer used as a hashing mechanism internally. This is not
+ expected to have any external impact as it only changes how random
+ identifiers are generated.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/setup.cfg new/pycadf-2.9.0/setup.cfg
--- old/pycadf-2.8.0/setup.cfg 2018-07-13 22:27:51.000000000 +0200
+++ new/pycadf-2.9.0/setup.cfg 2019-01-29 16:09:26.000000000 +0100
@@ -1,7 +1,7 @@
[metadata]
name = pycadf
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
summary = CADF Library
description-file =
README.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/test-requirements.txt new/pycadf-2.9.0/test-requirements.txt
--- old/pycadf-2.8.0/test-requirements.txt 2018-07-13 22:23:34.000000000 +0200
+++ new/pycadf-2.9.0/test-requirements.txt 2019-01-29 16:07:14.000000000 +0100
@@ -9,7 +9,7 @@
fixtures>=3.0.0 # Apache-2.0/BSD
python-subunit>=1.0.0 # Apache-2.0/BSD
mock>=2.0.0 # BSD
-testrepository>=0.0.18 # Apache-2.0/BSD
+stestr>=2.0.0 # Apache-2.0
testtools>=2.2.0 # MIT
# this is required for the docs build jobs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-2.8.0/tox.ini new/pycadf-2.9.0/tox.ini
--- old/pycadf-2.8.0/tox.ini 2018-07-13 22:23:34.000000000 +0200
+++ new/pycadf-2.9.0/tox.ini 2019-01-29 16:07:14.000000000 +0100
@@ -8,7 +8,7 @@
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
[testenv:pep8]
basepython = python3
@@ -20,7 +20,13 @@
[testenv:cover]
basepython = python3
-commands = python setup.py testr --coverage
+setenv =
+ PYTHON=coverage run --source pycadf --parallel-mode
+commands =
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
[testenv:venv]
basepython = python3
1
0
Hello community,
here is the log from the commit of package python-ovsdbapp for openSUSE:Factory checked in at 2019-05-03 22:43:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ovsdbapp (Old)
and /work/SRC/openSUSE:Factory/.python-ovsdbapp.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ovsdbapp"
Fri May 3 22:43:06 2019 rev:3 rq:692873 version:0.15.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ovsdbapp/python-ovsdbapp.changes 2019-03-07 10:50:35.897850980 +0100
+++ /work/SRC/openSUSE:Factory/.python-ovsdbapp.new.5148/python-ovsdbapp.changes 2019-05-03 22:43:06.799328217 +0200
@@ -1,0 +2,30 @@
+Mon Apr 8 13:52:13 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 0.15.0
+ - Update home-page
+ - Check for oslo library usage
+ - Pass posargs to pylint, not flake8
+ - Fix functional tests timeout race condition
+ - Expand retry behavior to cover other python-ovs methods
+ - update pylint to 1.9.2
+ - import zuul job settings from project-config
+ - NBDB API: Add param if_exists for methods using db_remove()
+ - Change openstack-dev to openstack-discuss
+ - Add Gateway_Chassis support
+ - Update reno for stable/rocky
+ - Attempt to fetch the schema from any remote
+ - Fix a typo in docstring
+ - add python 3.6 unit test job
+ - Add WaitEvent to the API
+ - Ensure timeout on queueing transaction
+ - Remove the oslo-utils dependency
+ - Group tests in same class to run in same group
+ - Move ovsdbapp jobs to its tree
+ - Convert base commands to ReadOnlyCommand
+ - fix tox python3 overrides
+ - Allow read-only Commands to bypass txns in execute()
+ - Migrate tempest job to zuul v3 native
+ - ut: Patch get_ident for race transaction test
+ - Make nested transaction thread aware
+
+-------------------------------------------------------------------
Old:
----
ovsdbapp-0.12.3.tar.gz
New:
----
ovsdbapp-0.15.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ovsdbapp.spec ++++++
--- /var/tmp/diff_new_pack.zbJsUc/_old 2019-05-03 22:43:08.327331433 +0200
+++ /var/tmp/diff_new_pack.zbJsUc/_new 2019-05-03 22:43:08.347331476 +0200
@@ -18,69 +18,77 @@
%define with_tests 0
Name: python-ovsdbapp
-Version: 0.12.3
+Version: 0.15.0
Release: 0
Summary: A library for creating OVSDB applications
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/ovsdbapp
-Source0: https://files.pythonhosted.org/packages/source/o/ovsdbapp/ovsdbapp-%{versio…
+Source0: https://files.pythonhosted.org/packages/source/o/ovsdbapp/ovsdbapp-0.15.0.t…
BuildRequires: openstack-macros
-BuildRequires: python-devel
-BuildRequires: python-fixtures >= 3.0.0
-BuildRequires: python-os-testr
-BuildRequires: python-oslotest
-BuildRequires: python-ovs >= 2.8.0
-BuildRequires: python-pbr >= 2.0.0
-BuildRequires: python-stestr
-BuildRequires: python-testscenarios
-BuildRequires: python-testtools
+BuildRequires: python2-fixtures >= 3.0.0
+BuildRequires: python2-oslotest
+BuildRequires: python2-ovs >= 2.8.0
+BuildRequires: python2-pbr >= 2.0.0
+BuildRequires: python2-stestr
+BuildRequires: python2-testscenarios
+BuildRequires: python2-testtools
+BuildRequires: python3-fixtures >= 3.0.0
+BuildRequires: python3-oslotest
+BuildRequires: python3-ovs >= 2.8.0
+BuildRequires: python3-pbr >= 2.0.0
+BuildRequires: python3-stestr
+BuildRequires: python3-testscenarios
+BuildRequires: python3-testtools
Requires: python-fixtures >= 3.0.0
+Requires: python-netaddr >= 0.7.18
Requires: python-ovs >= 2.8.0
Requires: python-pbr >= 2.0.0
+Requires: python-six >= 1.10.0
BuildArch: noarch
+%python_subpackages
%description
The ovdsbapp library is useful for creating applications that communicate via
Open_vSwitchs OVSDB protocol (https://tools.ietf.org/html/rfc7047) It wraps
the Python 'ovs' and adds an event loop and friendly transactions.
-%package doc
+%package -n python-ovsdbapp-doc
Summary: Documentation for OpenStack log library
Group: Development/Languages/Python
BuildRequires: python-Sphinx
BuildRequires: python-openstackdocstheme
-%description doc
+%description -n python-ovsdbapp-doc
Documentation for the ovsdbap library.
%prep
%autosetup -p1 -n ovsdbapp-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
-%{py2_build}
+%{python_build}
# generate html docs
-%{__python2} setup.py build_sphinx
+PBR_VERSION=0.15.0 PYTHONPATH=. \
+ sphinx-build -b html doc/source doc/build/html
rm -rf doc/build/html/.{doctrees,buildinfo}
%install
-%{py2_install}
+%{python_install}
%if 0%{?with_tests}
%check
-stestr run
+%python_exec -m stestr.cli run
%endif
-%files
+%files %{python_files}
%license LICENSE
%doc ChangeLog README.rst
-%{python2_sitelib}/ovsdbapp
-%{python2_sitelib}/*.egg-info
+%{python_sitelib}/ovsdbapp
+%{python_sitelib}/*.egg-info
-%files doc
+%files -n python-ovsdbapp-doc
%license LICENSE
%doc doc/build/html
++++++ _service ++++++
--- /var/tmp/diff_new_pack.zbJsUc/_old 2019-05-03 22:43:08.699332217 +0200
+++ /var/tmp/diff_new_pack.zbJsUc/_new 2019-05-03 22:43:08.731332284 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-ovsdbapp.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/ovsdbapp/stable/rocky/requireme…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/ovsdbapp/stable/stein/requireme…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,ovsdbapp</param>
</service>
++++++ ovsdbapp-0.12.3.tar.gz -> ovsdbapp-0.15.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/.pylintrc new/ovsdbapp-0.15.0/.pylintrc
--- old/ovsdbapp-0.12.3/.pylintrc 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/.pylintrc 2019-01-30 17:05:07.000000000 +0100
@@ -37,6 +37,9 @@
too-many-locals,
too-many-public-methods,
too-many-return-statements,
+ inconsistent-return-statements,
+ catching-non-exception,
+ using-constant-test,
too-many-statements
[BASIC]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/.stestr.conf new/ovsdbapp-0.15.0/.stestr.conf
--- old/ovsdbapp-0.12.3/.stestr.conf 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/.stestr.conf 2019-01-30 17:05:07.000000000 +0100
@@ -1,4 +1,4 @@
[DEFAULT]
test_path=${OS_TEST_PATH}
top_dir=./
-
+group_regex=([^\.]+\.)+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/AUTHORS new/ovsdbapp-0.15.0/AUTHORS
--- old/ovsdbapp-0.12.3/AUTHORS 2019-02-06 23:10:52.000000000 +0100
+++ new/ovsdbapp-0.15.0/AUTHORS 2019-01-30 17:05:56.000000000 +0100
@@ -9,6 +9,7 @@
Bhagyashri Shewale <bhagyashri.shewale(a)nttdata.com>
Bo Wang <bo.wang(a)easystack.cn>
Boden R <bodenvmw(a)gmail.com>
+Chuck Short <chucks(a)redhat.com>
Cyril Roelandt <cyril.roelandt(a)enovance.com>
Daniel Alvarez <dalvarez(a)redhat.com>
Davanum Srinivas <davanum(a)gmail.com>
@@ -39,6 +40,7 @@
Petr Horáček <phoracek(a)redhat.com>
Richard Theis <rtheis(a)us.ibm.com>
Sean Mooney <sean.k.mooney(a)intel.com>
+Ted Elhourani <theodore.elhourani(a)gmail.com>
Terry Wilson <terry(a)logivox.net>
Terry Wilson <twilson(a)redhat.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
@@ -48,7 +50,10 @@
chenxing <chen.xing(a)99cloud.net>
gengchc2 <geng.changcai2(a)zte.com.cn>
hgangwx <hgangwx(a)cn.ibm.com>
+huang.zhiping <huang.zhiping(a)99cloud.net>
lzklibj <lzklibj(a)cn.ibm.com>
+melissaml <ma.lei(a)99cloud.net>
+qingszhao <zhao.daqing(a)99cloud.net>
rossella <rsblendido(a)suse.com>
yan.haifeng <yanheven(a)qq.com>
zhangzs <zhangzhaoshan(a)inspur.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ChangeLog new/ovsdbapp-0.15.0/ChangeLog
--- old/ovsdbapp-0.12.3/ChangeLog 2019-02-06 23:10:52.000000000 +0100
+++ new/ovsdbapp-0.15.0/ChangeLog 2019-01-30 17:05:56.000000000 +0100
@@ -1,27 +1,43 @@
CHANGES
=======
-0.12.3
+0.15.0
------
* Convert base commands to ReadOnlyCommand
* Allow read-only Commands to bypass txns in execute()
-* Move ovsdbapp jobs to its tree
+* Update home-page
-0.12.2
+0.14.0
------
-* ut: Patch get\_ident for race transaction test
-* Make nested transaction thread aware
-* import zuul job settings from project-config
+* Attempt to fetch the schema from any remote
+* Fix a typo in docstring
+* Change openstack-dev to openstack-discuss
+* Add Gateway\_Chassis support
+* Group tests in same class to run in same group
+* Fix functional tests timeout race condition
+* Migrate tempest job to zuul v3 native
+* Expand retry behavior to cover other python-ovs methods
+* Add WaitEvent to the API
-0.12.1
+0.13.0
------
+* ut: Patch get\_ident for race transaction test
+* Move ovsdbapp jobs to its tree
+* Make nested transaction thread aware
+* NBDB API: Add param if\_exists for methods using db\_remove()
+* add python 3.6 unit test job
+* import zuul job settings from project-config
* Check for oslo library usage
+* fix tox python3 overrides
+* Pass posargs to pylint, not flake8
+* update pylint to 1.9.2
* Remove the oslo-utils dependency
-* Update UPPER\_CONSTRAINTS\_FILE for stable/rocky
-* Update .gitreview for stable/rocky
+* Update reno for stable/rocky
+* Update reno for stable/rocky
+* Ensure timeout on queueing transaction
0.12.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/PKG-INFO new/ovsdbapp-0.15.0/PKG-INFO
--- old/ovsdbapp-0.12.3/PKG-INFO 2019-02-06 23:10:53.000000000 +0100
+++ new/ovsdbapp-0.15.0/PKG-INFO 2019-01-30 17:05:56.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: ovsdbapp
-Version: 0.12.3
+Version: 0.15.0
Summary: A library for creating OVSDB applications
-Home-page: http://www.openstack.org/
+Home-page: https://pypi.org/project/ovsdbapp/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ===============================
ovsdbapp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/lower-constraints.txt new/ovsdbapp-0.15.0/lower-constraints.txt
--- old/ovsdbapp-0.12.3/lower-constraints.txt 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/lower-constraints.txt 2019-01-30 17:05:07.000000000 +0100
@@ -31,7 +31,7 @@
pep8==1.5.7
pyflakes==0.8.1
Pygments==2.2.0
-pylint==1.4.5
+pylint==1.9.2
python-mimeparse==1.6.0
python-subunit==1.0.0
pytz==2013.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/backend/ovs_idl/connection.py new/ovsdbapp-0.15.0/ovsdbapp/backend/ovs_idl/connection.py
--- old/ovsdbapp-0.12.3/ovsdbapp/backend/ovs_idl/connection.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/backend/ovs_idl/connection.py 2019-01-30 17:05:07.000000000 +0100
@@ -12,6 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import logging
import os
import threading
import traceback
@@ -21,12 +22,15 @@
from six.moves import queue as Queue
from ovsdbapp.backend.ovs_idl import idlutils
+from ovsdbapp import exceptions
if os.name == 'nt':
from ovsdbapp.backend.ovs_idl.windows import connection_utils
else:
from ovsdbapp.backend.ovs_idl.linux import connection_utils
+LOG = logging.getLogger(__name__)
+
class TransactionQueue(Queue.Queue, object):
def __init__(self, *args, **kwargs):
@@ -85,14 +89,33 @@
self.thread.start()
def run(self):
+ errors = 0
while self._is_running:
- self.idl.wait(self.poller)
- self.poller.fd_wait(self.txns.alert_fileno, poller.POLLIN)
- # TODO(jlibosva): Remove next line once losing connection to ovsdb
- # is solved.
- self.poller.timer_wait(self.timeout * 1000)
- self.poller.block()
- self.idl.run()
+ # If we fail in an Idl call, we could have missed an update
+ # from the server, leaving us out of sync with ovsdb-server.
+ # It is not safe to continue without restarting the connection,
+ # though it is likely that the error is unrecoverable, so only try
+ # a few times before bailing completely.
+ try:
+ self.idl.wait(self.poller)
+ self.poller.fd_wait(self.txns.alert_fileno, poller.POLLIN)
+ # TODO(jlibosva): Remove next line once losing connection to
+ # ovsdb is solved.
+ self.poller.timer_wait(self.timeout * 1000)
+ self.poller.block()
+ self.idl.run()
+ except Exception as e:
+ # This shouldn't happen, but is possible if there is a bug
+ # in python-ovs
+ errors += 1
+ LOG.exception(e)
+ if errors <= 3:
+ self.idl.force_reconnect()
+ idlutils.wait_for_change(self.idl, self.timeout)
+ continue
+ self._is_running = False
+ break
+ errors = 0
txn = self.txns.get_nowait()
if txn is not None:
try:
@@ -117,7 +140,11 @@
def queue_txn(self, txn):
# Even if we aren't started, we can queue a transaction and it will
# run when we are started
- self.txns.put(txn)
+ try:
+ self.txns.put(txn, timeout=self.timeout)
+ except Queue.Full:
+ raise exceptions.TimeoutException(commands=txn.commands,
+ timeout=self.timeout)
class OvsdbIdl(idl.Idl):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/backend/ovs_idl/event.py new/ovsdbapp-0.15.0/ovsdbapp/backend/ovs_idl/event.py
--- old/ovsdbapp-0.12.3/ovsdbapp/backend/ovs_idl/event.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/backend/ovs_idl/event.py 2019-01-30 17:05:07.000000000 +0100
@@ -39,3 +39,7 @@
LOG.debug("%s : Matched %s, %s, %s %s", self.event_name, self.table,
self.events, self.conditions, self.old_conditions)
return True
+
+
+class WaitEvent(RowEvent, ovsdb_event.WaitEvent):
+ pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/backend/ovs_idl/idlutils.py new/ovsdbapp-0.15.0/ovsdbapp/backend/ovs_idl/idlutils.py
--- old/ovsdbapp-0.12.3/ovsdbapp/backend/ovs_idl/idlutils.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/backend/ovs_idl/idlutils.py 2019-01-30 17:05:07.000000000 +0100
@@ -13,6 +13,7 @@
# under the License.
import collections
+import logging
import os
import sys
import time
@@ -27,6 +28,7 @@
from ovsdbapp import api
from ovsdbapp import exceptions
+LOG = logging.getLogger(__name__)
RowLookup = collections.namedtuple('RowLookup',
['table', 'column', 'uuid_column'])
@@ -114,21 +116,48 @@
:param schema_name: The schema on the server to pull
:type schema_name: string
"""
- err, strm = stream.Stream.open_block(
- stream.Stream.open(connection))
- if err:
- raise Exception("Could not connect to %s" % connection)
- rpc = jsonrpc.Connection(strm)
- req = jsonrpc.Message.create_request('get_schema', [schema_name])
- err, resp = rpc.transact_block(req)
- rpc.close()
- if err:
- raise Exception("Could not retrieve schema from %(conn)s: "
- "%(err)s" % {'conn': connection,
- 'err': os.strerror(err)})
- elif resp.error:
- raise Exception(resp.error)
- return idl.SchemaHelper(None, resp.result)
+ parsed_connections = parse_connection(connection)
+
+ for c in parsed_connections:
+ err, strm = stream.Stream.open_block(
+ stream.Stream.open(c))
+ if err:
+ LOG.error("Unable to open stream to %(conn)s to retrieve schema: "
+ "%(err)s", {'conn': c,
+ 'err': os.strerror(err)})
+ continue
+ rpc = jsonrpc.Connection(strm)
+ req = jsonrpc.Message.create_request('get_schema', [schema_name])
+ err, resp = rpc.transact_block(req)
+ rpc.close()
+ if err:
+ LOG.info("Could not retrieve schema from %(conn)s: "
+ "%(err)s", {'conn': c,
+ 'err': os.strerror(err)})
+ continue
+ elif resp.error:
+ LOG.error("TRXN error, failed to retrieve schema from %(conn)s: "
+ "%(err)s", {'conn': c,
+ 'err': resp.error})
+ continue
+ return idl.SchemaHelper(None, resp.result)
+ raise Exception("Could not retrieve schema from %s" % connection)
+
+
+def parse_connection(connection_string):
+ """Parse a connection string.
+
+ The connection string must be of the form
+ proto:address:port,proto:address:port,...
+
+ The parsing logic here must be identical to the one at
+ https://github.com/openvswitch/ovs/blob/master/python/ovs/db/idl.py#L162
+ for remote connections.
+
+ :param connection_string: The ovsdb-server connection string
+ :type connection_string: string
+ """
+ return [c.strip() for c in connection_string.split(',')]
def wait_for_change(_idl, timeout, seqno=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/backend/ovs_idl/windows/utils.py new/ovsdbapp-0.15.0/ovsdbapp/backend/ovs_idl/windows/utils.py
--- old/ovsdbapp-0.12.3/ovsdbapp/backend/ovs_idl/windows/utils.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/backend/ovs_idl/windows/utils.py 2019-01-30 17:05:07.000000000 +0100
@@ -39,5 +39,4 @@
# loop greenlet.
if eventlet.getcurrent().parent:
return tpool.execute(f, *args, **kwargs)
- else:
- return f(*args, **kwargs)
+ return f(*args, **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/event.py new/ovsdbapp-0.15.0/ovsdbapp/event.py
--- old/ovsdbapp-0.12.3/ovsdbapp/event.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/event.py 2019-01-30 17:05:07.000000000 +0100
@@ -68,6 +68,26 @@
"""Method to run when the event matches"""
+class WaitEvent(RowEvent):
+ event_name = 'WaitEvent'
+ ONETIME = True
+
+ def __init__(self, *args, **kwargs):
+ self.event = threading.Event()
+ self.timeout = kwargs.pop('timeout', None)
+ super(WaitEvent, self).__init__(*args, **kwargs)
+
+ @abc.abstractmethod
+ def matches(self, event, row, old=None):
+ """Test that `event on `row` matches watched events. See: RowEvent"""
+
+ def run(self, event, row, old):
+ self.event.set()
+
+ def wait(self):
+ return self.event.wait(self.timeout)
+
+
class RowEventHandler(object):
def __init__(self):
self.__watched_events = set()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/exceptions.py new/ovsdbapp-0.15.0/ovsdbapp/exceptions.py
--- old/ovsdbapp-0.12.3/ovsdbapp/exceptions.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/exceptions.py 2019-01-30 17:05:07.000000000 +0100
@@ -37,7 +37,7 @@
if six.PY2:
def __unicode__(self):
- return unicode(self.msg) # noqa
+ return unicode(self.msg) # noqa pylint: disable=undefined-variable
def __str__(self):
return self.msg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/schema/ovn_northbound/api.py new/ovsdbapp-0.15.0/ovsdbapp/schema/ovn_northbound/api.py
--- old/ovsdbapp-0.12.3/ovsdbapp/schema/ovn_northbound/api.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/schema/ovn_northbound/api.py 2019-01-30 17:05:07.000000000 +0100
@@ -86,9 +86,16 @@
"""
@abc.abstractmethod
- def ls_remove_dns_record(self, switch_uuid, dns_uuid):
+ def ls_remove_dns_record(self, switch_uuid, dns_uuid, if_exists=False):
"""Remove the 'dns_record' from the switch's 'dns_records' list
+ :param switch_uuid: The uuid of the switch
+ :type switch_uuid: string or uuid.UUID
+ :param dns_uuid: The uuid of the DNS record
+ :type dns_uuid: string or uuid.UUID
+ :param if_exists: If True, don't fail if the DNS record
+ doesn't exist
+ :type if_exists: boolean
:returns: :class:`Command` with RowView result
"""
@@ -852,12 +859,15 @@
"""
@abc.abstractmethod
- def dns_remove_record(self, uuid, hostname):
+ def dns_remove_record(self, uuid, hostname, if_exists=False):
"""Remove the 'hostname' from the 'records' field of the DNS row
:param uuid: The uuid of the DNS row to set the records with
:type uuid: string or uuid.UUID
:param hostname: hostname as the key to the record dict
+ :param if_exists: If True, don't fail if the DNS record
+ doesn't exist
+ :type if_exists: boolean
:returns: :class:`Command` with no result
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/schema/ovn_northbound/commands.py new/ovsdbapp-0.15.0/ovsdbapp/schema/ovn_northbound/commands.py
--- old/ovsdbapp-0.12.3/ovsdbapp/schema/ovn_northbound/commands.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/schema/ovn_northbound/commands.py 2019-01-30 17:05:07.000000000 +0100
@@ -739,6 +739,13 @@
if self.peer:
lrp.peer = self.peer
lr.addvalue('ports', lrp)
+ gwcs = self.columns.pop('gateway_chassis', [])
+ for n, chassis in enumerate(gwcs):
+ gwc_name = '%s_%s' % (lrp.name, chassis)
+ cmd = GatewayChassisAddCommand(self.api, gwc_name, chassis,
+ len(gwcs) - n, may_exist=True)
+ cmd.run_idl(txn)
+ lrp.addvalue('gateway_chassis', cmd.result)
self.set_columns(lrp, **self.columns)
self.result = lrp.uuid
@@ -1291,3 +1298,30 @@
class PgGetCommand(cmd.BaseGetRowCommand):
table = 'Port_Group'
+
+
+class GatewayChassisAddCommand(cmd.AddCommand):
+ table_name = 'Gateway_Chassis'
+
+ def __init__(self, api, name, chassis_name, priority=0, may_exist=False,
+ **columns):
+ super(GatewayChassisAddCommand, self).__init__(api)
+ self.name = name
+ self.chassis_name = chassis_name
+ self.priority = priority
+ self.may_exist = may_exist
+ self.columns = columns
+
+ def run_idl(self, txn):
+ if self.may_exist:
+ gwc = self.api.lookup(self.table_name, self.name, None)
+ else:
+ gwc = None
+ if not gwc:
+ # If gwc exists with name, this will properly fail if not may_exist
+ # since 'name' is indexed
+ gwc = txn.insert(self.api.tables[self.table_name])
+ gwc.name = self.name
+ gwc.priority = self.priority
+ self.set_columns(gwc, **self.columns)
+ self.result = gwc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/schema/ovn_northbound/impl_idl.py new/ovsdbapp-0.15.0/ovsdbapp/schema/ovn_northbound/impl_idl.py
--- old/ovsdbapp-0.12.3/ovsdbapp/schema/ovn_northbound/impl_idl.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/schema/ovn_northbound/impl_idl.py 2019-01-30 17:05:07.000000000 +0100
@@ -49,9 +49,9 @@
return self.db_add('Logical_Switch', switch_uuid, 'dns_records',
dns_uuid)
- def ls_remove_dns_record(self, switch_uuid, dns_uuid):
+ def ls_remove_dns_record(self, switch_uuid, dns_uuid, if_exists=False):
return self.db_remove('Logical_Switch', switch_uuid, 'dns_records',
- dns_uuid)
+ dns_uuid, if_exists=if_exists)
def acl_add(self, switch, direction, priority, match, action, log=False,
may_exist=False, **external_ids):
@@ -269,8 +269,9 @@
ips = " ".join(utils.normalize_ip_port(ip) for ip in ips)
return self.db_add('DNS', uuid, 'records', {hostname: ips})
- def dns_remove_record(self, uuid, hostname):
- return self.db_remove('DNS', uuid, 'records', hostname)
+ def dns_remove_record(self, uuid, hostname, if_exists=False):
+ return self.db_remove('DNS', uuid, 'records', hostname,
+ if_exists=if_exists)
def dns_set_external_ids(self, uuid, **external_ids):
return cmd.DnsSetExternalIdsCommand(self, uuid, **external_ids)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/tests/functional/schema/open_vswitch/test_impl_idl.py new/ovsdbapp-0.15.0/ovsdbapp/tests/functional/schema/open_vswitch/test_impl_idl.py
--- old/ovsdbapp-0.12.3/ovsdbapp/tests/functional/schema/open_vswitch/test_impl_idl.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/tests/functional/schema/open_vswitch/test_impl_idl.py 2019-01-30 17:05:07.000000000 +0100
@@ -40,6 +40,21 @@
cleanup_cmd = self.api.del_br(self.brname)
self.addCleanup(cleanup_cmd.execute)
+ def test_idl_run_exception_terminates(self):
+ run = self.api.idl.run
+ with mock.patch.object(self.api.idl, "run") as runmock:
+ exceptions = iter([Exception("TestException")])
+
+ def side_effect():
+ try:
+ raise next(exceptions)
+ except StopIteration:
+ return run()
+
+ runmock.side_effect = side_effect
+ exists = self.api.br_exists(self.brname).execute(check_error=True)
+ self.assertFalse(exists)
+
def test_br_exists_false(self):
exists = self.api.br_exists(self.brname).execute(check_error=True)
self.assertFalse(exists)
@@ -182,5 +197,6 @@
def test_post_commit_vswitchd_incomplete_timeout(self, *args):
# Due to timing issues we may rarely hit the global timeout, which
# raises RuntimeError to match the vsctl implementation
- self.api.ovsdb_connection.timeout = 1
+ mock.patch('ovsdbapp.backend.ovs_idl.transaction.'
+ 'Transaction.timeout_exceeded', return_value=True).start()
self.assertRaises((exc.TimeoutException, RuntimeError), self._add_br)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/tests/functional/schema/ovn_northbound/test_impl_idl.py new/ovsdbapp-0.15.0/ovsdbapp/tests/functional/schema/ovn_northbound/test_impl_idl.py
--- old/ovsdbapp-0.12.3/ovsdbapp/tests/functional/schema/ovn_northbound/test_impl_idl.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/tests/functional/schema/ovn_northbound/test_impl_idl.py 2019-01-30 17:05:07.000000000 +0100
@@ -940,6 +940,15 @@
self.assertEqual(options, lrp.options)
self.assertEqual(external_ids, lrp.external_ids)
+ def test_lrp_add_gw_chassis(self):
+ name, c1, c2 = [utils.get_rand_device_name() for _ in range(3)]
+ args = (name, 'de:ad:be:ef:4d:ad')
+ lrp = self._lrp_add(*args, gateway_chassis=(c1, c2))
+ c1 = self.api.lookup('Gateway_Chassis', "%s_%s" % (lrp.name, c1))
+ c2 = self.api.lookup('Gateway_Chassis', "%s_%s" % (lrp.name, c2))
+ self.assertIn(c1, lrp.gateway_chassis)
+ self.assertIn(c2, lrp.gateway_chassis)
+
def test_lrp_del_uuid(self):
lrp = self._lrp_add(None)
self.api.lrp_del(lrp.uuid).execute(check_error=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/tests/functional/schema/ovn_southbound/test_impl_idl.py new/ovsdbapp-0.15.0/ovsdbapp/tests/functional/schema/ovn_southbound/test_impl_idl.py
--- old/ovsdbapp-0.12.3/ovsdbapp/tests/functional/schema/ovn_southbound/test_impl_idl.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/tests/functional/schema/ovn_southbound/test_impl_idl.py 2019-01-30 17:05:07.000000000 +0100
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-import threading
-
from ovsdbapp.backend.ovs_idl import event
from ovsdbapp.backend.ovs_idl import idlutils
from ovsdbapp import event as ovsdb_event
@@ -22,21 +20,13 @@
from ovsdbapp.tests import utils
-class WaitForPortBindingEvent(event.RowEvent):
+class WaitForPortBindingEvent(event.WaitEvent):
event_name = 'WaitForPortBindingEvent'
- ONETIME = True
def __init__(self, port, timeout=5):
- self.event = threading.Event()
- self.timeout = timeout
super(WaitForPortBindingEvent, self).__init__(
- (self.ROW_CREATE,), 'Port_Binding', (('logical_port', '=', port),))
-
- def run(self, event, row, old):
- self.event.set()
-
- def wait(self):
- self.event.wait(self.timeout)
+ (self.ROW_CREATE,), 'Port_Binding', (('logical_port', '=', port),),
+ timeout=timeout)
class OvnSouthboundTest(base.FunctionalTestCase):
@@ -109,7 +99,7 @@
with self.nbapi.transaction(check_error=True) as txn:
switch = txn.add(self.nbapi.ls_add(sname))
port = txn.add(self.nbapi.lsp_add(sname, pname))
- row_event.wait()
+ self.assertTrue(row_event.wait())
return chassis, switch.result, port.result
def test_lsp_bind(self):
@@ -121,12 +111,12 @@
return chassis, switch, port
def test_lsp_bind_exists(self):
- chassis, switch, port = self.test_lsp_bind()
+ chassis, _switch, port = self.test_lsp_bind()
cmd = self.api.lsp_bind(port.name, chassis.name)
self.assertRaises(RuntimeError, cmd.execute, check_error=True)
def test_lsp_bind_may_exist(self):
- chassis, switch, port = self.test_lsp_bind()
+ chassis, _switch, port = self.test_lsp_bind()
other = self._chassis_add(['vxlan'], '192.0.2.2',
chassis=utils.get_rand_device_name())
self.api.lsp_bind(port.name, other.name, may_exist=True).execute(
@@ -137,7 +127,7 @@
self.assertIn(chassis, binding.chassis)
def test_lsp_unbind(self):
- chassis, switch, port = self.test_lsp_bind()
+ _chassis, _switch, port = self.test_lsp_bind()
self.api.lsp_unbind(port.name).execute(check_error=True)
binding = idlutils.row_by_value(self.api.idl, 'Port_Binding',
'logical_port', port.name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/tests/unit/backend/ovs_idl/test_connection.py new/ovsdbapp-0.15.0/ovsdbapp/tests/unit/backend/ovs_idl/test_connection.py
--- old/ovsdbapp-0.12.3/ovsdbapp/tests/unit/backend/ovs_idl/test_connection.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/tests/unit/backend/ovs_idl/test_connection.py 2019-01-30 17:05:07.000000000 +0100
@@ -49,7 +49,8 @@
def test_queue_txn(self):
self.conn.start()
self.conn.queue_txn('blah')
- self.conn.txns.put.assert_called_once_with('blah')
+ self.conn.txns.put.assert_called_once_with('blah',
+ timeout=self.conn.timeout)
class TestTransactionQueue(base.TestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/tests/unit/backend/ovs_idl/test_idlutils.py new/ovsdbapp-0.15.0/ovsdbapp/tests/unit/backend/ovs_idl/test_idlutils.py
--- old/ovsdbapp-0.12.3/ovsdbapp/tests/unit/backend/ovs_idl/test_idlutils.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/tests/unit/backend/ovs_idl/test_idlutils.py 2019-01-30 17:05:07.000000000 +0100
@@ -62,7 +62,7 @@
* if column type is_optional and value is a single element, value is
transformed to a length-1-list
- * any other value is returned as it is, no type convertions
+ * any other value is returned as it is, no type conversions
"""
table = MockTable("SomeTable",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp/utils.py new/ovsdbapp-0.15.0/ovsdbapp/utils.py
--- old/ovsdbapp-0.12.3/ovsdbapp/utils.py 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp/utils.py 2019-01-30 17:05:07.000000000 +0100
@@ -10,9 +10,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-import netaddr
import uuid
+import netaddr
+
# NOTE(twilson) Clearly these are silly, but they are good enough for now
# I'm happy for someone to replace them with better parsing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp.egg-info/PKG-INFO new/ovsdbapp-0.15.0/ovsdbapp.egg-info/PKG-INFO
--- old/ovsdbapp-0.12.3/ovsdbapp.egg-info/PKG-INFO 2019-02-06 23:10:52.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp.egg-info/PKG-INFO 2019-01-30 17:05:56.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: ovsdbapp
-Version: 0.12.3
+Version: 0.15.0
Summary: A library for creating OVSDB applications
-Home-page: http://www.openstack.org/
+Home-page: https://pypi.org/project/ovsdbapp/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ===============================
ovsdbapp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp.egg-info/SOURCES.txt new/ovsdbapp-0.15.0/ovsdbapp.egg-info/SOURCES.txt
--- old/ovsdbapp-0.12.3/ovsdbapp.egg-info/SOURCES.txt 2019-02-06 23:10:53.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp.egg-info/SOURCES.txt 2019-01-30 17:05:56.000000000 +0100
@@ -97,15 +97,13 @@
ovsdbapp/tests/unit/schema/__init__.py
ovsdbapp/tests/unit/schema/open_vswitch/__init__.py
ovsdbapp/tests/unit/schema/open_vswitch/test_impl_idl.py
-playbooks/legacy/tempest-post-common.yml
-playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml
-playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml
releasenotes/notes/.placeholder
releasenotes/notes/configure-ovsdb-manager-a29a148b241a125e.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
@@ -114,5 +112,5 @@
tools/debug_venv.py
tools/setup-ovs.sh
tools/test-setup.sh
-zuul.d/legacy-ovsdbapp-jobs.yaml
+zuul.d/ovsdbapp-jobs.yaml
zuul.d/project.yaml
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/ovsdbapp.egg-info/pbr.json new/ovsdbapp-0.15.0/ovsdbapp.egg-info/pbr.json
--- old/ovsdbapp-0.12.3/ovsdbapp.egg-info/pbr.json 2019-02-06 23:10:52.000000000 +0100
+++ new/ovsdbapp-0.15.0/ovsdbapp.egg-info/pbr.json 2019-01-30 17:05:56.000000000 +0100
@@ -1 +1 @@
-{"git_version": "547777a", "is_release": true}
\ No newline at end of file
+{"git_version": "bc06517", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml new/ovsdbapp-0.15.0/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml
--- old/ovsdbapp-0.12.3/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-- hosts: primary
- tasks:
-
- - include: ../tempest-post-common.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml new/ovsdbapp-0.15.0/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml
--- old/ovsdbapp-0.12.3/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml 1970-01-01 01:00:00.000000000 +0100
@@ -1,88 +0,0 @@
-- hosts: all
- name: Autoconverted job legacy-tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src
- from old job gate-tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src-nv
- tasks:
-
- - name: Ensure legacy workspace directory
- file:
- path: '{{ ansible_user_dir }}/workspace'
- state: directory
-
- - shell:
- cmd: |
- set -e
- set -x
- cat > clonemap.yaml << EOF
- clonemap:
- - name: openstack-infra/devstack-gate
- dest: devstack-gate
- EOF
- /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
- git://git.openstack.org \
- openstack-infra/devstack-gate
- executable: /bin/bash
- chdir: '{{ ansible_user_dir }}/workspace'
- environment: '{{ zuul | zuul_legacy_vars }}'
-
- - shell:
- cmd: |
- set -e
- set -x
- cat << 'EOF' >>"/tmp/dg-local.conf"
- [[local|localrc]]
- enable_plugin networking-ovn git://git.openstack.org/openstack/networking-ovn
- enable_plugin neutron-tempest-plugin git://git.openstack.org/openstack/neutron-tempest-plugin
- enable_plugin octavia git://git.openstack.org/openstack/octavia
- enable_service ovn-octavia
- enable_service o-api
- enable_service o-hk
- LIBS_FROM_GIT="ovsdbapp"
- OVN_DBS_LOG_LEVEL="dbg"
-
- EOF
- executable: /bin/bash
- chdir: '{{ ansible_user_dir }}/workspace'
- environment: '{{ zuul | zuul_legacy_vars }}'
-
- - shell:
- cmd: |
- set -e
- set -x
- export PYTHONUNBUFFERED=true
- export DEVSTACK_GATE_NEUTRON=1
- export DEVSTACK_GATE_TEMPEST=1
- export DEVSTACK_GATE_TEMPEST_ALL_PLUGINS=1
- export BRANCH_OVERRIDE=default
- if [ "$BRANCH_OVERRIDE" != "default" ] ; then
- export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
- fi
- # Because we are testing a non standard project, add
- # our project repository. This makes zuul do the right
- # reference magic for testing changes.
- export PROJECTS="openstack/networking-ovn openstack/neutron-tempest-plugin openstack/octavia $PROJECTS"
- export PROJECTS="openstack/ovsdbapp $PROJECTS"
-
- # Keep localrc to be able to set some vars in pre_test_hook
- export KEEP_LOCALRC=1
-
- function pre_test_hook {
- if [ -f $BASE/new/networking-ovn/devstack/pre_test_hook.sh ] ; then
- . $BASE/new/networking-ovn/devstack/pre_test_hook.sh
- fi
- }
- export -f pre_test_hook
-
- function post_test_hook {
- if [ -f $BASE/new/networking-ovn/devstack/post_test_hook.sh ] ; then
- . $BASE/new/networking-ovn/devstack/post_test_hook.sh
- fi
- }
- export -f post_test_hook
-
- export DEVSTACK_GATE_SETTINGS="/opt/stack/new/networking-ovn/devstack/devstackgaterc latest-release"
-
- cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
- ./safe-devstack-vm-gate-wrap.sh
- executable: /bin/bash
- chdir: '{{ ansible_user_dir }}/workspace'
- environment: '{{ zuul | zuul_legacy_vars }}'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/playbooks/legacy/tempest-post-common.yml new/ovsdbapp-0.15.0/playbooks/legacy/tempest-post-common.yml
--- old/ovsdbapp-0.12.3/playbooks/legacy/tempest-post-common.yml 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/playbooks/legacy/tempest-post-common.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,56 +0,0 @@
-#
-# Copy OVN SB & NB database files: those files can be handy for debugging issues as the
-# ovsdb files are stored as logs.
-#
-
-- name: Check whether OVNSB DB was created
- stat:
- path: /opt/stack/data/ovs/ovnsb_db.db
- register: ovnsb_file
-
-- name: Create destination directory to collect OVN database logs
- file: path={{ ansible_user_dir }}/workspace/logs/ovs_dbs state=directory
- when: ovnsb_file.stat.exists
-
-- name: Collect OVN databases
- copy:
- remote_src: true
- src: '/opt/stack/data/ovs/{{ item }}.db'
- dest: '{{ ansible_user_dir }}/workspace/logs/ovs_dbs/{{ item }}.txt'
- with_items:
- - conf
- - ovnnb_db
- - ovnsb_db
- when: ovnsb_file.stat.exists
-
-- name: Copy OVN database logs
- copy:
- remote_src: true
- src: '/opt/stack/new/{{ item }}.log'
- dest: '{{ ansible_user_dir }}/workspace/logs/ovs_dbs/{{ item }}.log.txt'
- with_items:
- - ovsdb-server-nb
- - ovsdb-server-sb
- when: ovnsb_file.stat.exists
- become: true
-
-- name: Compress OVN databases in individual files
- shell: gzip -9 {{ ansible_user_dir }}/workspace/logs/ovs_dbs/*
- when: ovnsb_file.stat.exists
-
-#
-# Synchronize files from workspace in node to the zuul log_root which will be stored
-#
-
-- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
- synchronize:
- src: '{{ ansible_user_dir }}/workspace/'
- dest: '{{ zuul.executor.log_root }}'
- mode: pull
- copy_links: true
- verify_host: true
- rsync_opts:
- - --include=/logs/**
- - --include=*/
- - --exclude=*
- - --prune-empty-dirs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/releasenotes/source/index.rst new/ovsdbapp-0.15.0/releasenotes/source/index.rst
--- old/ovsdbapp-0.12.3/releasenotes/source/index.rst 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/releasenotes/source/index.rst 2019-01-30 17:05:07.000000000 +0100
@@ -6,5 +6,6 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/releasenotes/source/rocky.rst new/ovsdbapp-0.15.0/releasenotes/source/rocky.rst
--- old/ovsdbapp-0.12.3/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/ovsdbapp-0.15.0/releasenotes/source/rocky.rst 2019-01-30 17:05:07.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/setup.cfg new/ovsdbapp-0.15.0/setup.cfg
--- old/ovsdbapp-0.12.3/setup.cfg 2019-02-06 23:10:53.000000000 +0100
+++ new/ovsdbapp-0.15.0/setup.cfg 2019-01-30 17:05:56.000000000 +0100
@@ -4,8 +4,8 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
-home-page = http://www.openstack.org/
+author-email = openstack-discuss(a)lists.openstack.org
+home-page = https://pypi.org/project/ovsdbapp/
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/test-requirements.txt new/ovsdbapp-0.15.0/test-requirements.txt
--- old/ovsdbapp-0.12.3/test-requirements.txt 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/test-requirements.txt 2019-01-30 17:05:07.000000000 +0100
@@ -10,7 +10,7 @@
openstackdocstheme>=1.18.1 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
os-testr>=1.0.0 # Apache-2.0
-pylint==1.4.5 # GPLv2
+pylint==1.9.2 # GPLv2
stestr>=2.0.0 # Apache-2.0
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/tox.ini new/ovsdbapp-0.15.0/tox.ini
--- old/ovsdbapp-0.12.3/tox.ini 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/tox.ini 2019-01-30 17:05:07.000000000 +0100
@@ -11,30 +11,35 @@
OS_TEST_PATH=./ovsdbapp/tests/unit
install_command = pip install {opts} {packages}
deps =
- -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+ -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
commands = stestr run --slowest {posargs}
[testenv:pep8]
-basepython = python2.7
+basepython = python3
commands = flake8
{toxinidir}/tools/coding-checks.sh --all '{posargs}'
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:cover]
+basepython = python3
commands = python setup.py test --coverage --testr-args='{posargs}'
[testenv:docs]
+basepython = python3
commands = python setup.py build_sphinx
[testenv:releasenotes]
+basepython = python3
commands =
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:debug]
+basepython = python3
commands = oslo_debug_helper {posargs}
[testenv:functional]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/zuul.d/legacy-ovsdbapp-jobs.yaml new/ovsdbapp-0.15.0/zuul.d/legacy-ovsdbapp-jobs.yaml
--- old/ovsdbapp-0.12.3/zuul.d/legacy-ovsdbapp-jobs.yaml 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/zuul.d/legacy-ovsdbapp-jobs.yaml 1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-- job:
- name: ovsdbapp-tempest-dsvm-networking-ovn-ovs-release
- parent: legacy-networking-ovn-dsvm-base
- run: playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/run.yaml
- post-run: playbooks/legacy/tempest-dsvm-networking-ovn-ovs-release-ovsdbapp-src/post.yaml
- timeout: 7800
- required-projects:
- - openstack-infra/devstack-gate
- - openstack/networking-ovn
- - openstack/neutron-tempest-plugin
- - openstack/ovsdbapp
- - openstack/octavia
- - openstack/tempest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/zuul.d/ovsdbapp-jobs.yaml new/ovsdbapp-0.15.0/zuul.d/ovsdbapp-jobs.yaml
--- old/ovsdbapp-0.12.3/zuul.d/ovsdbapp-jobs.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/ovsdbapp-0.15.0/zuul.d/ovsdbapp-jobs.yaml 2019-01-30 17:05:07.000000000 +0100
@@ -0,0 +1,7 @@
+- job:
+ name: ovsdbapp-tempest-dsvm-networking-ovn-ovs-release
+ description: Job testing for devstack/tempest testing networking-ovn with the latest released OVN branch and ovsdbapp from source
+ parent: networking-ovn-tempest-dsvm-ovs-release
+ vars:
+ devstack_localrc:
+ LIBS_FROM_GIT: ovsdbapp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ovsdbapp-0.12.3/zuul.d/project.yaml new/ovsdbapp-0.15.0/zuul.d/project.yaml
--- old/ovsdbapp-0.12.3/zuul.d/project.yaml 2019-02-06 23:10:01.000000000 +0100
+++ new/ovsdbapp-0.15.0/zuul.d/project.yaml 2019-01-30 17:05:07.000000000 +0100
@@ -2,6 +2,7 @@
templates:
- openstack-python-jobs
- openstack-python35-jobs
+ - openstack-python36-jobs
- check-requirements
check:
jobs:
1
0
Hello community,
here is the log from the commit of package python-osprofiler for openSUSE:Factory checked in at 2019-05-03 22:43:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-osprofiler (Old)
and /work/SRC/openSUSE:Factory/.python-osprofiler.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-osprofiler"
Fri May 3 22:43:02 2019 rev:9 rq:692872 version:2.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-osprofiler/python-osprofiler.changes 2019-03-13 09:13:08.675399651 +0100
+++ /work/SRC/openSUSE:Factory/.python-osprofiler.new.5148/python-osprofiler.changes 2019-05-03 22:43:04.079322490 +0200
@@ -1,0 +2,31 @@
+Mon Apr 8 14:04:49 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.6.0
+ - Switch to stestr
+ - When shortening span-ids, check if they're already short
+ - Do not insert osprofiler filter into Neutron api-paste pipeline
+ - Change python3.5 job to python3.7 job on Stein+
+ - import zuul job settings from project-config
+ - [devstack] Add support for elasticsearch backend
+ - Change openstack-dev to openstack-discuss
+ - Update reno for stable/rocky
+ - Update min tox version to 2.0
+ - Don't quote {posargs} in tox.ini
+ - add python 3.6 unit test job
+ - Make tracing of SQL statements configurable in DevStack plugin
+ - add lib-forward-testing-python3 test job
+ - build universal wheels
+ - Reload keystone to apply osprofiler config
+ - Allow test path to be overridden
+ - Add sqlalchemy collector
+ - Configure Jaeger collector in DevStack
+ - add password for connecting redis-sentinel
+ - Add support for mongodb backend in devstack plugin
+ - In DevStack install Redis client library via pip, not as system package
+ - Use $STACK_USER variable in install_jaeger function
+ - Change http to https in reference link
+ - In case of an error, always add message
+ - Use templates for cover and lower-constraints
+- remove 0001-Add-sqlalchemy-collector.patch and 0001-Don-t-fail-if-sqlalchemy-driver-fails-to-initialize.patch
+
+-------------------------------------------------------------------
Old:
----
0001-Add-sqlalchemy-collector.patch
0001-Don-t-fail-if-sqlalchemy-driver-fails-to-initialize.patch
osprofiler-2.3.0.tar.gz
New:
----
osprofiler-2.6.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-osprofiler.spec ++++++
--- /var/tmp/diff_new_pack.FTmZVM/_old 2019-05-03 22:43:04.651323694 +0200
+++ /var/tmp/diff_new_pack.FTmZVM/_new 2019-05-03 22:43:04.655323703 +0200
@@ -17,22 +17,19 @@
Name: python-osprofiler
-Version: 2.3.0
+Version: 2.6.0
Release: 0
Summary: OpenStack Profiler Library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/osprofiler
-Source0: https://files.pythonhosted.org/packages/source/o/osprofiler/osprofiler-2.3.…
-# backport sql collector -- https://github.com/openstack/osprofiler/commit/032a21861854c5f63a039c997a58…
-Patch0: 0001-Add-sqlalchemy-collector.patch
-# https://review.openstack.org/#/c/642407/
-Patch1: 0001-Don-t-fail-if-sqlalchemy-driver-fails-to-initialize.patch
+Source0: https://files.pythonhosted.org/packages/source/o/osprofiler/osprofiler-2.6.…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-PrettyTable >= 0.7.2
BuildRequires: python2-WebOb >= 1.7.1
BuildRequires: python2-ddt
+BuildRequires: python2-docutils
BuildRequires: python2-elasticsearch
BuildRequires: python2-mock
BuildRequires: python2-oslo.concurrency >= 3.26.0
@@ -43,12 +40,13 @@
BuildRequires: python2-python-subunit
BuildRequires: python2-redis
BuildRequires: python2-six >= 1.10.0
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testtools
BuildRequires: python3-PrettyTable >= 0.7.2
BuildRequires: python3-WebOb >= 1.7.1
BuildRequires: python3-ddt
BuildRequires: python3-devel
+BuildRequires: python3-docutils
BuildRequires: python3-elasticsearch
BuildRequires: python3-mock
BuildRequires: python3-oslo.concurrency >= 3.26.0
@@ -59,7 +57,7 @@
BuildRequires: python3-python-subunit
BuildRequires: python3-redis
BuildRequires: python3-six >= 1.10.0
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testtools
Requires: python-PrettyTable >= 0.7.2
Requires: python-WebOb >= 1.7.1
@@ -97,9 +95,8 @@
Documentation for OSProfiler.
%prep
-%autosetup -p1 -n osprofiler-2.3.0
+%autosetup -p1 -n osprofiler-2.6.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -120,9 +117,7 @@
%python_uninstall_alternative osprofiler
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr --testr-args '(?!^osprofiler.tests.unit.drivers.test_jaeger.JaegerTestCase.*$)(^.*$)'
-}
+%python_exec -m stestr.cli run --black-regex '(^osprofiler.tests.unit.drivers.test_jaeger.JaegerTestCase.*$)'
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.FTmZVM/_old 2019-05-03 22:43:04.671323737 +0200
+++ /var/tmp/diff_new_pack.FTmZVM/_new 2019-05-03 22:43:04.675323745 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-osprofiler.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/osprofiler/stable/rocky/require…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/osprofiler/stable/stein/require…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,osprofiler</param>
</service>
++++++ osprofiler-2.3.0.tar.gz -> osprofiler-2.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/.stestr.conf new/osprofiler-2.6.0/.stestr.conf
--- old/osprofiler-2.3.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/osprofiler-2.6.0/.stestr.conf 2019-02-18 22:52:33.000000000 +0100
@@ -0,0 +1,4 @@
+[DEFAULT]
+test_path=${OS_TEST_PATH:-./osprofiler/tests/unit}
+top_dir=./
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/.testr.conf new/osprofiler-2.6.0/.testr.conf
--- old/osprofiler-2.3.0/.testr.conf 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 ${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH:-./osprofiler/tests/unit} $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/.zuul.yaml new/osprofiler-2.6.0/.zuul.yaml
--- old/osprofiler-2.3.0/.zuul.yaml 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/.zuul.yaml 2019-02-18 22:52:33.000000000 +0100
@@ -1,11 +1,21 @@
- project:
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-cover-jobs
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
check:
jobs:
- openstack-tox-functional
- openstack-tox-functional-py35
- - openstack-tox-lower-constraints
gate:
jobs:
- openstack-tox-functional
- openstack-tox-functional-py35
- - openstack-tox-lower-constraints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/AUTHORS new/osprofiler-2.6.0/AUTHORS
--- old/osprofiler-2.3.0/AUTHORS 2018-07-10 00:59:13.000000000 +0200
+++ new/osprofiler-2.6.0/AUTHORS 2019-02-18 22:53:41.000000000 +0100
@@ -5,11 +5,13 @@
Andreas Jaeger <aj(a)suse.com>
Andreas Jaeger <aj(a)suse.de>
Andrey Kurilin <akurilin(a)mirantis.com>
+Andrey Kurilin <andr.kurilin(a)gmail.com>
Atsushi SAKAI <sakaia(a)jp.fujitsu.com>
BENJAMIN VANHAVERMAET <bvanhav(a)us.ibm.com>
Boris Pavlovic <boris(a)pavlovic.me>
Carlos Goncalves <carlos.goncalves(a)neclab.eu>
ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
+Corey Bryant <corey.bryant(a)canonical.com>
Davanum Srinivas <davanum(a)gmail.com>
Dina Belova <dbelova(a)mirantis.com>
Doug Hellmann <doug(a)doughellmann.com>
@@ -29,12 +31,15 @@
Moshe Levi <moshele(a)mellanox.com>
Munoz, Obed N <obed.n.munoz(a)intel.com>
Nguyen Van Duc <ducnv(a)vn.fujitsu.com>
+Nguyen Van Trung <trungnv(a)vn.fujitsu.com>
Oleksii Chuprykov <ochuprykov(a)mirantis.com>
Omer Anson <omer.anson(a)toganetworks.com>
Ondřej Nový <ondrej.novy(a)firma.seznam.cz>
OpenStack Release Bot <infra-root(a)openstack.org>
Roman Podoliaka <rpodolyaka(a)mirantis.com>
+Shoham Peller <shohamp(a)gmail.com>
Simon Pasquier <spasquier(a)mirantis.com>
+Slawek Kaplonski <skaplons(a)redhat.com>
Stephen Finucane <stephenfin(a)redhat.com>
Stuart Grace <stuart.grace(a)bbc.co.uk>
Thomas Bechtold <tbechtold(a)suse.com>
@@ -42,14 +47,15 @@
Tony Xu <hhktony(a)gmail.com>
Tovin Seven <vinhnt(a)vn.fujitsu.com>
Victor Morales <victor.morales(a)intel.com>
+Vieri <15050873171(a)163.com>
Vipin Balachandran <vbala(a)vmware.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Zhi Yan Liu <zhiyanl(a)cn.ibm.com>
-Zuul <zuul(a)review.openstack.org>
chenxu <424024687(a)qq.com>
gecong1973 <ge.cong(a)zte.com.cn>
howardlee <lihongweibj(a)inspur.com>
kavithahr <kavitha.r(a)nectechnologies.in>
+lipan <lipan7195(a)fiberhome.com>
lvdongbing <dongbing.lv(a)kylin-cloud.com>
melissaml <ma.lei(a)99cloud.net>
qingszhao <zhao.daqing(a)99cloud.net>
@@ -60,3 +66,4 @@
sunyandi <sunyd(a)inspur.com>
uppi <helendile(a)gmail.com>
wangxiyuan <wangxiyuan(a)huawei.com>
+zhouxinyong <zhouxinyong(a)inspur.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/ChangeLog new/osprofiler-2.6.0/ChangeLog
--- old/osprofiler-2.3.0/ChangeLog 2018-07-10 00:59:13.000000000 +0200
+++ new/osprofiler-2.6.0/ChangeLog 2019-02-18 22:53:41.000000000 +0100
@@ -1,6 +1,51 @@
CHANGES
=======
+2.6.0
+-----
+
+* Add sqlalchemy collector
+* Change python3.5 job to python3.7 job on Stein+
+* Use $STACK\_USER variable in install\_jaeger function
+* Add support for mongodb backend in devstack plugin
+* Reload keystone to apply osprofiler config
+* Do not insert osprofiler filter into Neutron api-paste pipeline
+* Allow test path to be overridden
+
+2.5.2
+-----
+
+* In case of an error, always add message
+* Change http to https in reference link
+* [devstack] Add support for elasticsearch backend
+* Change openstack-dev to openstack-discuss
+* Configure Jaeger collector in DevStack
+
+2.5.1
+-----
+
+* Update min tox version to 2.0
+* In DevStack install Redis client library via pip, not as system package
+* When shortening span-ids, check if they're already short
+* Don't quote {posargs} in tox.ini
+
+2.5.0
+-----
+
+* build universal wheels
+* Make tracing of SQL statements configurable in DevStack plugin
+
+2.4.1
+-----
+
+* Use templates for cover and lower-constraints
+* add password for connecting redis-sentinel
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+* Switch to stestr
+
2.3.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/PKG-INFO new/osprofiler-2.6.0/PKG-INFO
--- old/osprofiler-2.3.0/PKG-INFO 2018-07-10 00:59:13.000000000 +0200
+++ new/osprofiler-2.6.0/PKG-INFO 2019-02-18 22:53:41.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: osprofiler
-Version: 2.3.0
+Version: 2.6.0
Summary: OpenStack Profiler Library
Home-page: https://docs.openstack.org/osprofiler/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -51,5 +51,5 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
-Provides-Extra: test
Provides-Extra: oslo_config
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/RELEASENOTES.rst new/osprofiler-2.6.0/RELEASENOTES.rst
--- old/osprofiler-2.3.0/RELEASENOTES.rst 2018-07-10 00:59:13.000000000 +0200
+++ new/osprofiler-2.6.0/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-==========
-osprofiler
-==========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/devstack/README.rst new/osprofiler-2.6.0/devstack/README.rst
--- old/osprofiler-2.3.0/devstack/README.rst 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/devstack/README.rst 2019-02-18 22:52:33.000000000 +0100
@@ -16,6 +16,7 @@
* ``<empty>`` - default messaging driver is used
* ``redis`` - Redis is installed
+ * ``jaeger`` - Jaeger is installed
The default value of ``OSPROFILER_CONNECTION_STRING`` is set automatically
depending on ``OSPROFILER_COLLECTOR`` value.
@@ -29,6 +30,7 @@
* ``elasticsearch://host:port`` - use Elasticsearch as trace storage
* ``mongodb://host:port`` - use MongoDB as trace storage
* ``loginsight://username:password@host`` - use LogInsight as trace collector/storage
+ * ``jaeger://host:port`` - use Jaeger as trace collector
To configure DevStack and enable OSProfiler edit ``${DEVSTACK_DIR}/local.conf``
@@ -69,7 +71,7 @@
**OSPROFILER_CONNECTION_STRING** - connection string to identify the driver.
Default value is ``messaging://`` refers to messaging driver. For a full
list of drivers please refer to
-``http://git.openstack.org/cgit/openstack/osprofiler/tree/osprofiler/drivers``.
+``https://git.openstack.org/cgit/openstack/osprofiler/tree/osprofiler/drivers``.
Example: enable ElasticSearch driver with the server running on localhost::
OSPROFILER_CONNECTION_STRING=elasticsearch://127.0.0.1:9200
@@ -80,3 +82,9 @@
Example: enable Redis collector::
OSPROFILER_COLLECTOR=redis
+
+**OSPROFILER_TRACE_SQLALCHEMY** - controls tracing of SQL statements. If enabled,
+all SQL statements processed by SQL Alchemy are added into traces. By default enabled.
+Example: disable SQL statements tracing::
+
+ OSPROFILER_TRACE_SQLALCHEMY=False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/devstack/lib/osprofiler new/osprofiler-2.6.0/devstack/lib/osprofiler
--- old/osprofiler-2.3.0/devstack/lib/osprofiler 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/devstack/lib/osprofiler 2019-02-18 22:52:33.000000000 +0100
@@ -42,16 +42,59 @@
function install_redis() {
if is_fedora; then
- install_package redis python-redis
+ install_package redis
elif is_ubuntu; then
- install_package redis-server python-redis
+ install_package redis-server
elif is_suse; then
- install_package redis python-redis
+ install_package redis
else
exit_distro_not_supported "redis installation"
fi
start_service redis
+
+ pip_install_gr redis
+}
+
+function install_jaeger() {
+ if is_ubuntu; then
+ install_package docker.io
+ start_service docker
+ add_user_to_group $STACK_USER docker
+ sg docker -c "docker run -d --name jaeger -p 6831:6831/udp -p 16686:16686 jaegertracing/all-in-one:1.7"
+ else
+ exit_distro_not_supported "docker.io installation"
+ fi
+
+ pip_install jaeger-client
+}
+
+function install_elasticsearch() {
+ if is_ubuntu; then
+ install_package docker.io
+ start_service docker
+ add_user_to_group $STACK_USER docker
+ # https://www.elastic.co/guide/en/elasticsearch/reference/5.6/docker.html#doc…
+ sg docker -c 'docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:5.6.14'
+ else
+ exit_distro_not_supported "docker.io installation"
+ fi
+
+ pip_install elasticsearch
+}
+
+function install_mongodb {
+ pip_install pymongo
+ if is_ubuntu; then
+ install_package mongodb-server
+ start_service mongodb
+ elif is_fedora; then
+ install_package mongodb
+ install_package mongodb-server
+ start_service mongod
+ else
+ exit_distro_not_supported "mongodb installation"
+ fi
}
function install_osprofiler_collector() {
@@ -60,6 +103,15 @@
elif [ "$OSPROFILER_COLLECTOR" == "redis" ]; then
install_redis
OSPROFILER_CONNECTION_STRING=${OSPROFILER_CONNECTION_STRING:-"redis://localhost:6379"}
+ elif [ "$OSPROFILER_COLLECTOR" == "jaeger" ]; then
+ install_jaeger
+ OSPROFILER_CONNECTION_STRING=${OSPROFILER_CONNECTION_STRING:-"jaeger://localhost:6831"}
+ elif [ "$OSPROFILER_COLLECTOR" == "elasticsearch" ]; then
+ install_elasticsearch
+ OSPROFILER_CONNECTION_STRING=${OSPROFILER_CONNECTION_STRING:-"elasticsearch://elastic:changeme@localhost:9200"}
+ elif [ "$OSPROFILER_COLLECTOR" == "mongodb" ]; then
+ install_mongodb
+ OSPROFILER_CONNECTION_STRING=${OSPROFILER_CONNECTION_STRING:-"mongodb://localhost:27017"}
else
die $LINENO "OSProfiler collector $OSPROFILER_COLLECTOR is not supported"
fi
@@ -71,18 +123,14 @@
if [ -f $conf ]
then
iniset $conf profiler enabled True
- iniset $conf profiler trace_sqlalchemy True
+ iniset $conf profiler trace_sqlalchemy $OSPROFILER_TRACE_SQLALCHEMY
iniset $conf profiler hmac_keys $OSPROFILER_HMAC_KEYS
iniset $conf profiler connection_string $OSPROFILER_CONNECTION_STRING
fi
done
- # Insert osprofiler filter into Neutron paste configuration
- if [ -f $Q_API_PASTE_FILE ]; then
- VAL=$(iniget $Q_API_PASTE_FILE composite:neutronapi_v2_0 keystone)
- VAL=${VAL/catch_errors/catch_errors osprofiler}
- iniset $Q_API_PASTE_FILE composite:neutronapi_v2_0 keystone "$VAL"
- fi
+ # Keystone is already running, should be reloaded to apply osprofiler config
+ reload_service devstack@keystone
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/devstack/plugin.sh new/osprofiler-2.6.0/devstack/plugin.sh
--- old/osprofiler-2.3.0/devstack/plugin.sh 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/devstack/plugin.sh 2019-02-18 22:52:33.000000000 +0100
@@ -7,7 +7,7 @@
source $DEST/osprofiler/devstack/lib/osprofiler
-if [[ "$1" == "stack" && "$2" == "pre-install" ]]; then
+if [[ "$1" == "stack" && "$2" == "install" ]]; then
echo_summary "Configuring system services for OSProfiler"
install_osprofiler_collector
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/devstack/settings new/osprofiler-2.6.0/devstack/settings
--- old/osprofiler-2.3.0/devstack/settings 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/devstack/settings 2019-02-18 22:52:33.000000000 +0100
@@ -5,4 +5,7 @@
# requests that specify one of these keys in HTTP headers.
OSPROFILER_HMAC_KEYS=${OSPROFILER_HMAC_KEYS:-"SECRET_KEY"}
+# Set whether tracing of SQL requests is enabled or not
+OSPROFILER_TRACE_SQLALCHEMY="True"
+
enable_service osprofiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/doc/source/user/collectors.rst new/osprofiler-2.6.0/doc/source/user/collectors.rst
--- old/osprofiler-2.3.0/doc/source/user/collectors.rst 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/doc/source/user/collectors.rst 2019-02-18 22:52:33.000000000 +0100
@@ -39,3 +39,28 @@
value. Defaults to: 0.1 seconds
* sentinel_service_name: The name of the Sentinel service to use.
Defaults to: "mymaster"
+
+SQLAlchemy
+----------
+
+The SQLAlchemy collector allows you to store profiling data into a database
+supported by SQLAlchemy.
+
+Usage
+=====
+To use the driver, the `connection_string` in the `[osprofiler]` config section
+needs to be set to a connection string that `SQLAlchemy understands`_
+For example::
+
+ [osprofiler]
+ connection_string = mysql+pymysql://username:password@192.168.192.81/profiler?charset=utf8
+
+where `username` is the database username, `password` is the database password,
+`192.168.192.81` is the database IP address and `profiler` is the database name.
+
+The database (in this example called `profiler`) needs to be created manually and
+the database user (in this example called `username`) needs to have priviliges
+to create tables and select and insert rows.
+
+
+.. _SQLAlchemy understands: https://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/lower-constraints.txt new/osprofiler-2.6.0/lower-constraints.txt
--- old/osprofiler-2.3.0/lower-constraints.txt 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/lower-constraints.txt 2019-02-18 22:52:33.000000000 +0100
@@ -18,6 +18,6 @@
requests===2.14.2
six===1.10.0
sphinx===1.6.2
-testrepository===0.0.18
+stestr==2.0.0
testtools===2.2.0
WebOb===1.7.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler/_utils.py new/osprofiler-2.6.0/osprofiler/_utils.py
--- old/osprofiler-2.3.0/osprofiler/_utils.py 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler/_utils.py 2019-02-18 22:52:33.000000000 +0100
@@ -153,8 +153,11 @@
def shorten_id(span_id):
"""Convert from uuid4 to 64 bit id for OpenTracing"""
+ int64_max = (1 << 64) - 1
+ if isinstance(span_id, six.integer_types):
+ return span_id & int64_max
try:
- short_id = uuid.UUID(span_id).int & (1 << 64) - 1
+ short_id = uuid.UUID(span_id).int & int64_max
except ValueError:
# Return a new short id for this
short_id = shorten_id(uuidutils.generate_uuid())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler/drivers/__init__.py new/osprofiler-2.6.0/osprofiler/drivers/__init__.py
--- old/osprofiler-2.3.0/osprofiler/drivers/__init__.py 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler/drivers/__init__.py 2019-02-18 22:52:33.000000000 +0100
@@ -5,3 +5,4 @@
from osprofiler.drivers import messaging # noqa
from osprofiler.drivers import mongodb # noqa
from osprofiler.drivers import redis_driver # noqa
+from osprofiler.drivers import sqlalchemy_driver # noqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler/drivers/base.py new/osprofiler-2.6.0/osprofiler/drivers/base.py
--- old/osprofiler-2.3.0/osprofiler/drivers/base.py 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler/drivers/base.py 2019-02-18 22:52:33.000000000 +0100
@@ -36,6 +36,12 @@
connection_string)
backend = parsed_connection.scheme
+ # NOTE(toabctl): To be able to use the connection_string for as sqlalchemy
+ # connection string, transform the backend to the correct driver
+ # See https://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls
+ if backend in ["mysql", "mysql+pymysql", "mysql+mysqldb",
+ "postgresql", "postgresql+psycopg2"]:
+ backend = "sqlalchemy"
for driver in _utils.itersubclasses(Driver):
if backend == driver.get_name():
return driver(connection_string, *args, **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler/drivers/redis_driver.py new/osprofiler-2.6.0/osprofiler/drivers/redis_driver.py
--- old/osprofiler-2.3.0/osprofiler/drivers/redis_driver.py 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler/drivers/redis_driver.py 2019-02-18 22:52:33.000000000 +0100
@@ -175,6 +175,7 @@
socket_timeout = self.conf.profiler.socket_timeout
parsed_url = parser.urlparse(self.connection_str)
sentinel = Sentinel([(parsed_url.hostname, int(parsed_url.port))],
+ password=parsed_url.password,
socket_timeout=socket_timeout)
self.db = sentinel.master_for(self.conf.profiler.sentinel_service_name,
socket_timeout=socket_timeout)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler/drivers/sqlalchemy_driver.py new/osprofiler-2.6.0/osprofiler/drivers/sqlalchemy_driver.py
--- old/osprofiler-2.3.0/osprofiler/drivers/sqlalchemy_driver.py 1970-01-01 01:00:00.000000000 +0100
+++ new/osprofiler-2.6.0/osprofiler/drivers/sqlalchemy_driver.py 2019-02-18 22:52:33.000000000 +0100
@@ -0,0 +1,119 @@
+# Copyright 2019 SUSE Linux GmbH
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import logging
+
+from oslo_serialization import jsonutils
+
+from osprofiler.drivers import base
+from osprofiler import exc
+
+LOG = logging.getLogger(__name__)
+
+
+class SQLAlchemyDriver(base.Driver):
+ def __init__(self, connection_str, project=None, service=None, host=None,
+ **kwargs):
+ super(SQLAlchemyDriver, self).__init__(connection_str, project=project,
+ service=service, host=host)
+
+ try:
+ from sqlalchemy import create_engine
+ from sqlalchemy import Table, MetaData, Column
+ from sqlalchemy import String, JSON, Integer
+ except ImportError:
+ raise exc.CommandError(
+ "To use this command, you should install 'SQLAlchemy'")
+
+ self._engine = create_engine(connection_str)
+ self._conn = self._engine.connect()
+ self._metadata = MetaData()
+ self._data_table = Table(
+ "data", self._metadata,
+ Column("id", Integer, primary_key=True),
+ # timestamp - date/time of the trace point
+ Column("timestamp", String(26), index=True),
+ # base_id - uuid common for all notifications related to one trace
+ Column("base_id", String(255), index=True),
+ # parent_id - uuid of parent element in trace
+ Column("parent_id", String(255), index=True),
+ # trace_id - uuid of current element in trace
+ Column("trace_id", String(255), index=True),
+ Column("project", String(255), index=True),
+ Column("host", String(255), index=True),
+ Column("service", String(255), index=True),
+ # name - trace point name
+ Column("name", String(255), index=True),
+ Column("data", JSON)
+ )
+
+ # FIXME(toabctl): Not the best idea to create the table on every
+ # startup when using the sqlalchemy driver...
+ self._metadata.create_all(self._engine, checkfirst=True)
+
+ @classmethod
+ def get_name(cls):
+ return "sqlalchemy"
+
+ def notify(self, info, context=None):
+ """Write a notification the the database"""
+ data = info.copy()
+ base_id = data.pop("base_id", None)
+ timestamp = data.pop("timestamp", None)
+ parent_id = data.pop("parent_id", None)
+ trace_id = data.pop("trace_id", None)
+ project = data.pop("project", self.project)
+ host = data.pop("host", self.host)
+ service = data.pop("service", self.service)
+ name = data.pop("name", None)
+
+ ins = self._data_table.insert().values(
+ timestamp=timestamp,
+ base_id=base_id,
+ parent_id=parent_id,
+ trace_id=trace_id,
+ project=project,
+ service=service,
+ host=host,
+ name=name,
+ data=jsonutils.dumps(data)
+ )
+ try:
+ self._conn.execute(ins)
+ except Exception:
+ LOG.exception("Can not store osprofiler tracepoint {} "
+ "(base_id {})".format(trace_id, base_id))
+
+ def get_report(self, base_id):
+ try:
+ from sqlalchemy.sql import select
+ except ImportError:
+ raise exc.CommandError(
+ "To use this command, you should install 'SQLAlchemy'")
+ stmt = select([self._data_table]).where(
+ self._data_table.c.base_id == base_id)
+ results = self._conn.execute(stmt).fetchall()
+ for n in results:
+ timestamp = n["timestamp"]
+ trace_id = n["trace_id"]
+ parent_id = n["parent_id"]
+ name = n["name"]
+ project = n["project"]
+ service = n["service"]
+ host = n["host"]
+ data = jsonutils.loads(n["data"])
+ self._append_results(trace_id, parent_id, name, project, service,
+ host, timestamp, data)
+ return self._parse_results()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler/profiler.py new/osprofiler-2.6.0/osprofiler/profiler.py
--- old/osprofiler-2.3.0/osprofiler/profiler.py 2018-07-10 00:57:27.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler/profiler.py 2019-02-18 22:52:33.000000000 +0100
@@ -17,6 +17,7 @@
import datetime
import functools
import inspect
+import six
import socket
import threading
@@ -158,7 +159,10 @@
start(name, info=info_)
result = f(*args, **kwargs)
except Exception as ex:
- stop_info = {"etype": reflection.get_class_name(ex)}
+ stop_info = {
+ "etype": reflection.get_class_name(ex),
+ "message": six.text_type(ex)
+ }
raise
else:
if not hide_result:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler/sqlalchemy.py new/osprofiler-2.6.0/osprofiler/sqlalchemy.py
--- old/osprofiler-2.3.0/osprofiler/sqlalchemy.py 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler/sqlalchemy.py 2019-02-18 22:52:33.000000000 +0100
@@ -105,6 +105,7 @@
info = {
"etype": exception_class_name,
+ "message": original_exception,
"db": {
"original_exception": original_exception,
"chained_exception": chained_exception
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler/tests/unit/test_profiler.py new/osprofiler-2.6.0/osprofiler/tests/unit/test_profiler.py
--- old/osprofiler-2.3.0/osprofiler/tests/unit/test_profiler.py 2018-07-10 00:57:27.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler/tests/unit/test_profiler.py 2019-02-18 22:52:33.000000000 +0100
@@ -69,6 +69,13 @@
expected = "850409eb1d4b0dee"
self.assertEqual(expected, result)
+ def test_profiler_get_shorten_id_int(self):
+ short_id_int = 42
+ prof = profiler._Profiler("secret", base_id="1", parent_id="2")
+ result = prof.get_shorten_id(short_id_int)
+ expected = "2a"
+ self.assertEqual(expected, result)
+
def test_profiler_get_base_id(self):
prof = profiler._Profiler("secret", base_id="1", parent_id="2")
self.assertEqual(prof.get_base_id(), "1")
@@ -253,7 +260,7 @@
"name": "osprofiler.tests.unit.test_profiler.test_fn_exc"
}
}
- expected_stop_info = {"etype": "ValueError"}
+ expected_stop_info = {"etype": "ValueError", "message": ""}
mock_start.assert_called_once_with("foo", info=expected_info)
mock_stop.assert_called_once_with(info=expected_stop_info)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler/tests/unit/test_sqlalchemy.py new/osprofiler-2.6.0/osprofiler/tests/unit/test_sqlalchemy.py
--- old/osprofiler-2.3.0/osprofiler/tests/unit/test_sqlalchemy.py 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler/tests/unit/test_sqlalchemy.py 2019-02-18 22:52:33.000000000 +0100
@@ -62,6 +62,7 @@
sqlalchemy.handle_error(sqlalchemy_exception_ctx)
expected_info = {
"etype": "Exception",
+ "message": "error",
"db": {
"original_exception": str(original_exception),
"chained_exception": str(chained_exception),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler.egg-info/PKG-INFO new/osprofiler-2.6.0/osprofiler.egg-info/PKG-INFO
--- old/osprofiler-2.3.0/osprofiler.egg-info/PKG-INFO 2018-07-10 00:59:13.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler.egg-info/PKG-INFO 2019-02-18 22:53:41.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: osprofiler
-Version: 2.3.0
+Version: 2.6.0
Summary: OpenStack Profiler Library
Home-page: https://docs.openstack.org/osprofiler/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -51,5 +51,5 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
-Provides-Extra: test
Provides-Extra: oslo_config
+Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler.egg-info/SOURCES.txt new/osprofiler-2.6.0/osprofiler.egg-info/SOURCES.txt
--- old/osprofiler-2.3.0/osprofiler.egg-info/SOURCES.txt 2018-07-10 00:59:13.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler.egg-info/SOURCES.txt 2019-02-18 22:53:41.000000000 +0100
@@ -1,4 +1,4 @@
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -64,6 +64,7 @@
osprofiler/drivers/messaging.py
osprofiler/drivers/mongodb.py
osprofiler/drivers/redis_driver.py
+osprofiler/drivers/sqlalchemy_driver.py
osprofiler/hacking/__init__.py
osprofiler/hacking/checks.py
osprofiler/tests/__init__.py
@@ -97,6 +98,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler.egg-info/pbr.json new/osprofiler-2.6.0/osprofiler.egg-info/pbr.json
--- old/osprofiler-2.3.0/osprofiler.egg-info/pbr.json 2018-07-10 00:59:13.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler.egg-info/pbr.json 2019-02-18 22:53:41.000000000 +0100
@@ -1 +1 @@
-{"git_version": "6d68170", "is_release": true}
\ No newline at end of file
+{"git_version": "da7a859", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/osprofiler.egg-info/requires.txt new/osprofiler-2.6.0/osprofiler.egg-info/requires.txt
--- old/osprofiler-2.3.0/osprofiler.egg-info/requires.txt 2018-07-10 00:59:13.000000000 +0200
+++ new/osprofiler-2.6.0/osprofiler.egg-info/requires.txt 2019-02-18 22:53:41.000000000 +0100
@@ -15,7 +15,7 @@
coverage>=4.0
ddt>=1.0.1
mock>=2.0.0
-testrepository>=0.0.18
+stestr>=2.0.0
testtools>=2.2.0
openstackdocstheme>=1.18.1
sphinx>=1.6.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/releasenotes/notes/reno.cache new/osprofiler-2.6.0/releasenotes/notes/reno.cache
--- old/osprofiler-2.3.0/releasenotes/notes/reno.cache 2018-07-10 00:59:13.000000000 +0200
+++ new/osprofiler-2.6.0/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/releasenotes/source/index.rst new/osprofiler-2.6.0/releasenotes/source/index.rst
--- old/osprofiler-2.3.0/releasenotes/source/index.rst 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/releasenotes/source/index.rst 2019-02-18 22:52:33.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/releasenotes/source/rocky.rst new/osprofiler-2.6.0/releasenotes/source/rocky.rst
--- old/osprofiler-2.3.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/osprofiler-2.6.0/releasenotes/source/rocky.rst 2019-02-18 22:52:33.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/setup.cfg new/osprofiler-2.6.0/setup.cfg
--- old/osprofiler-2.3.0/setup.cfg 2018-07-10 00:59:13.000000000 +0200
+++ new/osprofiler-2.6.0/setup.cfg 2019-02-18 22:53:41.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/osprofiler/latest/
classifier =
Environment :: OpenStack
@@ -43,6 +43,9 @@
paste.filter_factory =
osprofiler = osprofiler.web:WsgiMiddleware.factory
+[wheel]
+universal = 1
+
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/test-requirements.txt new/osprofiler-2.6.0/test-requirements.txt
--- old/osprofiler-2.3.0/test-requirements.txt 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/test-requirements.txt 2019-02-18 22:52:33.000000000 +0100
@@ -3,7 +3,7 @@
coverage>=4.0 # Apache-2.0
ddt>=1.0.1 # MIT
mock>=2.0.0 # BSD
-testrepository>=0.0.18 # Apache-2.0/BSD
+stestr>=2.0.0 # Apache-2.0
testtools>=2.2.0 # MIT
openstackdocstheme>=1.18.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osprofiler-2.3.0/tox.ini new/osprofiler-2.6.0/tox.ini
--- old/osprofiler-2.3.0/tox.ini 2018-07-10 00:57:10.000000000 +0200
+++ new/osprofiler-2.6.0/tox.ini 2019-02-18 22:52:33.000000000 +0100
@@ -1,5 +1,5 @@
[tox]
-minversion = 1.6
+minversion = 2.0
skipsdist = True
envlist = py35,py27,pep8
@@ -14,12 +14,9 @@
-r{toxinidir}/test-requirements.txt
install_command = pip install -U {opts} {packages}
usedevelop = True
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
distribute = false
-[testenv:py27]
-basepython = python2.7
-
[testenv:functional]
basepython = python2.7
setenv = {[testenv]setenv}
@@ -47,7 +44,13 @@
[testenv:cover]
basepython = python3
-commands = python setup.py testr --coverage --testr-args='{posargs}'
+setenv =
+ PYTHON=coverage run --source osprofiler --parallel-mode
+commands =
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
[testenv:docs]
basepython = python3
1
0
Hello community,
here is the log from the commit of package python-oslosphinx for openSUSE:Factory checked in at 2019-05-03 22:43:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslosphinx (Old)
and /work/SRC/openSUSE:Factory/.python-oslosphinx.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslosphinx"
Fri May 3 22:43:00 2019 rev:15 rq:692870 version:4.18.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslosphinx/python-oslosphinx.changes 2018-09-07 15:39:21.562539009 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslosphinx.new.5148/python-oslosphinx.changes 2019-05-03 22:43:00.767315517 +0200
@@ -1,0 +2,5 @@
+Mon Apr 8 11:36:58 UTC 2019 - Dirk Mueller <dmueller(a)suse.com>
+
+- switch to stable/stein spec template
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslosphinx.spec ++++++
--- /var/tmp/diff_new_pack.s86AKS/_old 2019-05-03 22:43:01.135316292 +0200
+++ /var/tmp/diff_new_pack.s86AKS/_new 2019-05-03 22:43:01.135316292 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslosphinx
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -25,10 +25,8 @@
URL: https://launchpad.net/oslosphinx
Source0: https://files.pythonhosted.org/packages/source/o/oslosphinx/oslosphinx-4.18…
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-pbr >= 2.0.0
BuildRequires: python2-setuptools
-BuildRequires: python3-devel
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-setuptools
Requires: python-pbr >= 2.0.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.s86AKS/_old 2019-05-03 22:43:01.155316334 +0200
+++ /var/tmp/diff_new_pack.s86AKS/_new 2019-05-03 22:43:01.159316343 +0200
@@ -1,6 +1,6 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslosphinx.spec</param>
<param name="requirements">https://raw.githubusercontent.com/openstack/oslosphinx/master/requirements.…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
1
0
Hello community,
here is the log from the commit of package python-oslo.vmware for openSUSE:Factory checked in at 2019-05-03 22:42:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.vmware (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.vmware.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.vmware"
Fri May 3 22:42:56 2019 rev:14 rq:692869 version:2.32.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.vmware/python-oslo.vmware.changes 2018-09-07 15:39:20.962539652 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.vmware.new.5148/python-oslo.vmware.changes 2019-05-03 22:42:57.987309665 +0200
@@ -1,0 +2,19 @@
+Mon Apr 8 11:31:42 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.32.2
+ - Change openstack-dev to openstack-discuss
+ - add lib-forward-testing-python3 test job
+ - Add DVS utility methods
+ - import zuul job settings from project-config
+ - Imported Translations from Zanata
+ - Update reno for stable/rocky
+ - Clean up .gitignore references to personal tools
+ - Use template for lower-constraints
+ - add python 3.6 unit test job
+ - py37: deal with Exception repr changes
+ - Check if there is a context set before updating the store
+ - add python 3.7 unit test job
+ - Set request context when polling vCenter tasks
+ - delete useless indent
+
+-------------------------------------------------------------------
Old:
----
oslo.vmware-2.31.0.tar.gz
New:
----
oslo.vmware-2.32.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.vmware.spec ++++++
--- /var/tmp/diff_new_pack.sb4LN3/_old 2019-05-03 22:42:58.423310583 +0200
+++ /var/tmp/diff_new_pack.sb4LN3/_new 2019-05-03 22:42:58.423310583 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.vmware
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.vmware
-Version: 2.31.0
+Version: 2.32.2
Release: 0
Summary: Oslo VMware library for OpenStack projects
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.vmware
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.vmware/oslo.vmware-2.…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.vmware/oslo.vmware-2.…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-Babel
@@ -35,6 +35,7 @@
BuildRequires: python2-mox3
BuildRequires: python2-netaddr >= 0.7.18
BuildRequires: python2-oslo.concurrency >= 3.26.0
+BuildRequires: python2-oslo.context >= 2.19.2
BuildRequires: python2-oslo.i18n >= 3.15.3
BuildRequires: python2-oslo.utils >= 3.33.0
BuildRequires: python2-pbr >= 2.0.0
@@ -55,6 +56,7 @@
BuildRequires: python3-mox3
BuildRequires: python3-netaddr >= 0.7.18
BuildRequires: python3-oslo.concurrency >= 3.26.0
+BuildRequires: python3-oslo.context >= 2.19.2
BuildRequires: python3-oslo.i18n >= 3.15.3
BuildRequires: python3-oslo.utils >= 3.33.0
BuildRequires: python3-pbr >= 2.0.0
@@ -70,6 +72,7 @@
Requires: python-lxml >= 3.4.1
Requires: python-netaddr >= 0.7.18
Requires: python-oslo.concurrency >= 3.26.0
+Requires: python-oslo.context >= 2.19.2
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.utils >= 3.33.0
Requires: python-requests >= 2.14.2
@@ -102,9 +105,8 @@
Documentation for OpenStack common VMware library.
%prep
-%autosetup -p1 -n oslo.vmware-2.31.0
+%autosetup -p1 -n oslo.vmware-2.32.2
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%python_build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.sb4LN3/_old 2019-05-03 22:42:58.447310633 +0200
+++ /var/tmp/diff_new_pack.sb4LN3/_new 2019-05-03 22:42:58.447310633 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.vmware.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.vmware/stable/rocky/requir…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.vmware/stable/stein/requir…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.vmware</param>
</service>
++++++ oslo.vmware-2.31.0.tar.gz -> oslo.vmware-2.32.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/.zuul.yaml new/oslo.vmware-2.32.2/.zuul.yaml
--- old/oslo.vmware-2.31.0/.zuul.yaml 2018-07-20 03:07:21.000000000 +0200
+++ new/oslo.vmware-2.32.2/.zuul.yaml 2019-02-28 19:02:46.000000000 +0100
@@ -1,7 +1,12 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/AUTHORS new/oslo.vmware-2.32.2/AUTHORS
--- old/oslo.vmware-2.31.0/AUTHORS 2018-07-20 03:10:14.000000000 +0200
+++ new/oslo.vmware-2.32.2/AUTHORS 2019-02-28 19:05:12.000000000 +0100
@@ -9,6 +9,7 @@
Cedric Brandily <zzelle(a)gmail.com>
ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
Christian Berendt <berendt(a)b1-systems.de>
+Corey Bryant <corey.bryant(a)canonical.com>
Dan Prince <dprince(a)redhat.com>
Davanum Srinivas <davanum(a)gmail.com>
Davanum Srinivas <dims(a)linux.vnet.ibm.com>
@@ -49,13 +50,14 @@
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Vui Lam <vui(a)vmware.com>
ZHU ZHU <zhuzhubj(a)cn.ibm.com>
+ZhongShengping <chdzsp(a)163.com>
Zhongcheng Lao <zlao(a)vmware.com>
-Zuul <zuul(a)review.openstack.org>
avnish <avnish.pal(a)nectechnologies.in>
howardlee <lihongweibj(a)inspur.com>
int32bit <krystism(a)gmail.com>
loooosy <syluo5695(a)fiberhome.com>
melissaml <ma.lei(a)99cloud.net>
+qingszhao <zhao.daqing(a)99cloud.net>
ricolin <rico.lin(a)easystack.cn>
wangqi <wang.qi(a)99cloud.net>
zhang.lei <zhang.lei(a)99cloud.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/ChangeLog new/oslo.vmware-2.32.2/ChangeLog
--- old/oslo.vmware-2.31.0/ChangeLog 2018-07-20 03:10:14.000000000 +0200
+++ new/oslo.vmware-2.32.2/ChangeLog 2019-02-28 19:05:12.000000000 +0100
@@ -1,6 +1,28 @@
CHANGES
=======
+2.32.2
+------
+
+* add python 3.7 unit test job
+* Use template for lower-constraints
+* Change openstack-dev to openstack-discuss
+* delete useless indent
+* Clean up .gitignore references to personal tools
+
+2.32.1
+------
+
+* Add DVS utility methods
+* Check if there is a context set before updating the store
+* Imported Translations from Zanata
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* Set request context when polling vCenter tasks
+* import zuul job settings from project-config
+* py37: deal with Exception repr changes
+* Update reno for stable/rocky
+
2.31.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/HACKING.rst new/oslo.vmware-2.32.2/HACKING.rst
--- old/oslo.vmware-2.31.0/HACKING.rst 2018-07-20 03:07:21.000000000 +0200
+++ new/oslo.vmware-2.32.2/HACKING.rst 2019-02-28 19:02:46.000000000 +0100
@@ -1,5 +1,5 @@
- Style Commandments
-====================
+Style Commandments
+==================
Read the OpenStack Style Commandments in the following link
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/PKG-INFO new/oslo.vmware-2.32.2/PKG-INFO
--- old/oslo.vmware-2.31.0/PKG-INFO 2018-07-20 03:10:15.000000000 +0200
+++ new/oslo.vmware-2.32.2/PKG-INFO 2019-02-28 19:05:12.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.vmware
-Version: 2.31.0
+Version: 2.32.2
Summary: Oslo VMware library
Home-page: https://docs.openstack.org/oslo.vmware/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/RELEASENOTES.rst new/oslo.vmware-2.32.2/RELEASENOTES.rst
--- old/oslo.vmware-2.31.0/RELEASENOTES.rst 2018-07-20 03:10:15.000000000 +0200
+++ new/oslo.vmware-2.32.2/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-===========
-oslo.vmware
-===========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/lower-constraints.txt new/oslo.vmware-2.32.2/lower-constraints.txt
--- old/oslo.vmware-2.31.0/lower-constraints.txt 2018-07-20 03:07:21.000000000 +0200
+++ new/oslo.vmware-2.32.2/lower-constraints.txt 2019-02-28 19:02:46.000000000 +0100
@@ -29,6 +29,7 @@
openstackdocstheme==1.18.1
oslo.concurrency==3.26.0
oslo.config==5.2.0
+oslo.context==2.19.2
oslo.i18n==3.15.3
oslo.utils==3.33.0
pbr==2.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/oslo.vmware.egg-info/PKG-INFO new/oslo.vmware-2.32.2/oslo.vmware.egg-info/PKG-INFO
--- old/oslo.vmware-2.31.0/oslo.vmware.egg-info/PKG-INFO 2018-07-20 03:10:14.000000000 +0200
+++ new/oslo.vmware-2.32.2/oslo.vmware.egg-info/PKG-INFO 2019-02-28 19:05:12.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.vmware
-Version: 2.31.0
+Version: 2.32.2
Summary: Oslo VMware library
Home-page: https://docs.openstack.org/oslo.vmware/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/oslo.vmware.egg-info/SOURCES.txt new/oslo.vmware-2.32.2/oslo.vmware.egg-info/SOURCES.txt
--- old/oslo.vmware-2.31.0/oslo.vmware.egg-info/SOURCES.txt 2018-07-20 03:10:15.000000000 +0200
+++ new/oslo.vmware-2.32.2/oslo.vmware.egg-info/SOURCES.txt 2019-02-28 19:05:12.000000000 +0100
@@ -35,6 +35,7 @@
oslo_vmware/_i18n.py
oslo_vmware/api.py
oslo_vmware/constants.py
+oslo_vmware/dvs_util.py
oslo_vmware/exceptions.py
oslo_vmware/image_transfer.py
oslo_vmware/image_util.py
@@ -57,6 +58,7 @@
oslo_vmware/tests/base.py
oslo_vmware/tests/test.ovf
oslo_vmware/tests/test_api.py
+oslo_vmware/tests/test_dvs_util.py
oslo_vmware/tests/test_exceptions.py
oslo_vmware/tests/test_hacking.py
oslo_vmware/tests/test_image_transfer.py
@@ -102,6 +104,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/oslo.vmware.egg-info/pbr.json new/oslo.vmware-2.32.2/oslo.vmware.egg-info/pbr.json
--- old/oslo.vmware-2.31.0/oslo.vmware.egg-info/pbr.json 2018-07-20 03:10:14.000000000 +0200
+++ new/oslo.vmware-2.32.2/oslo.vmware.egg-info/pbr.json 2019-02-28 19:05:12.000000000 +0100
@@ -1 +1 @@
-{"git_version": "01e404f", "is_release": true}
\ No newline at end of file
+{"git_version": "69f36d5", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/oslo.vmware.egg-info/requires.txt new/oslo.vmware-2.32.2/oslo.vmware.egg-info/requires.txt
--- old/oslo.vmware-2.31.0/oslo.vmware.egg-info/requires.txt 2018-07-20 03:10:14.000000000 +0200
+++ new/oslo.vmware-2.32.2/oslo.vmware.egg-info/requires.txt 2019-02-28 19:05:12.000000000 +0100
@@ -11,3 +11,4 @@
requests>=2.14.2
urllib3>=1.21.1
oslo.concurrency>=3.26.0
+oslo.context>=2.19.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/oslo_vmware/api.py new/oslo.vmware-2.32.2/oslo_vmware/api.py
--- old/oslo.vmware-2.31.0/oslo_vmware/api.py 2018-07-20 03:07:21.000000000 +0200
+++ new/oslo.vmware-2.32.2/oslo_vmware/api.py 2019-02-28 19:02:46.000000000 +0100
@@ -24,6 +24,7 @@
import logging
from oslo_concurrency import lockutils
+from oslo_context import context
from oslo_utils import excutils
from oslo_utils import reflection
import six
@@ -390,12 +391,13 @@
:raises: VimException, VimFaultException, VimAttributeException,
VimSessionOverLoadException, VimConnectionException
"""
- loop = loopingcall.FixedIntervalLoopingCall(self._poll_task, task)
+ ctx = context.get_current()
+ loop = loopingcall.FixedIntervalLoopingCall(self._poll_task, task, ctx)
evt = loop.start(self._task_poll_interval)
LOG.debug("Waiting for the task: %s to complete.", task)
return evt.wait()
- def _poll_task(self, task):
+ def _poll_task(self, task, ctx):
"""Poll the given task until completion.
If the task completes successfully, the method returns the task info
@@ -403,7 +405,10 @@
exception is set in the event.
:param task: managed object reference of the task
+ :param ctx: request context for the corresponding task
"""
+ if ctx is not None:
+ ctx.update_store()
try:
# we poll tasks too often, so skip logging the opID as it generates
# too much noise in the logs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/oslo_vmware/dvs_util.py new/oslo.vmware-2.32.2/oslo_vmware/dvs_util.py
--- old/oslo.vmware-2.31.0/oslo_vmware/dvs_util.py 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.vmware-2.32.2/oslo_vmware/dvs_util.py 2019-02-28 19:02:46.000000000 +0100
@@ -0,0 +1,159 @@
+# Copyright (c) 2018 VMware, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import logging
+
+from oslo_vmware import vim_util
+
+
+LOG = logging.getLogger(__name__)
+
+
+def get_dvs_moref(value):
+ """Get managed DVS object reference.
+
+ :param value: value of the DVS managed object
+ :returns: managed object reference with given value and type
+ 'VmwareDistributedVirtualSwitch'
+ """
+
+ return vim_util.get_moref(value, 'VmwareDistributedVirtualSwitch')
+
+
+def get_vlan_spec(session, vlan_id):
+ """Gets portgroup vlan spec.
+
+ :param session: vCenter soap session
+ :param vlan_id: the vlan_id for the port
+ :returns: The configuration when a single vlan_id is used for a port
+ """
+ # Create the spec for the vlan tag
+ client_factory = session.vim.client.factory
+ spec_ns = 'ns0:VmwareDistributedVirtualSwitchVlanIdSpec'
+ vl_spec = client_factory.create(spec_ns)
+ vl_spec.vlanId = vlan_id
+ vl_spec.inherited = '0'
+ return vl_spec
+
+
+def get_trunk_vlan_spec(session, start=0, end=4094):
+ """Gets portgroup trunk vlan spec.
+
+ :param session: vCenter soap session
+ :param start: the starting id
+ :param end: then end id
+ :returns: The configuration when a port uses trunk mode. This allows
+ a guest to manage the vlan id.
+ """
+ client_factory = session.vim.client.factory
+ spec_ns = 'ns0:VmwareDistributedVirtualSwitchTrunkVlanSpec'
+ vlan_id = client_factory.create('ns0:NumericRange')
+ vlan_id.start = start
+ vlan_id.end = end
+ vl_spec = client_factory.create(spec_ns)
+ vl_spec.vlanId = vlan_id
+ vl_spec.inherited = '0'
+ return vl_spec
+
+
+def get_port_group_spec(session, name, vlan_id, trunk_mode=False):
+ """Gets the port group spec for a distributed port group
+
+ :param session: vCenter soap session
+ :param name: the name of the port group
+ :param vlan_id: vlan_id for the port
+ :param trunk_mode: indicates if the port will have trunk mode or use
+ specific tag above
+ :returns: The configuration for a port group.
+ """
+ client_factory = session.vim.client.factory
+ pg_spec = client_factory.create('ns0:DVPortgroupConfigSpec')
+ pg_spec.name = name
+ pg_spec.type = 'ephemeral'
+ config = client_factory.create('ns0:VMwareDVSPortSetting')
+ if trunk_mode:
+ config.vlan = get_trunk_vlan_spec(session)
+ elif vlan_id:
+ config.vlan = get_vlan_spec(session, vlan_id)
+ pg_spec.defaultPortConfig = config
+ return pg_spec
+
+
+def add_port_group(session, dvs_moref, name, vlan_id=None,
+ trunk_mode=False):
+ """Add a new port group to the dvs_moref
+
+ :param session: vCenter soap session
+ :param dvs_moref: managed DVS object reference
+ :param name: the name of the port group
+ :param vlan_id: vlan_id for the port
+ :param trunk_mode: indicates if the port will have trunk mode or use
+ specific tag above
+ :returns: The new portgroup moref
+ """
+ pg_spec = get_port_group_spec(session, name, vlan_id,
+ trunk_mode=trunk_mode)
+ task = session.invoke_api(session.vim,
+ 'CreateDVPortgroup_Task',
+ dvs_moref,
+ spec=pg_spec)
+ task_info = session.wait_for_task(task)
+ LOG.info("%(name)s create on %(dvs)s with %(value)s.",
+ {'name': name,
+ 'dvs': dvs_moref.value,
+ 'value': task_info.result.value})
+ return task_info.result
+
+
+def get_portgroups(session, dvs_moref):
+ """Gets all configured portgroups on the dvs_moref
+
+ :param session: vCenter soap session
+ :param dvs_moref: managed DVS object reference
+ :returns: List of tuples that have the following format:
+ (portgroup name, port group moref)
+ """
+ pgs = []
+ port_groups = session.invoke_api(vim_util,
+ 'get_object_properties',
+ session.vim,
+ dvs_moref,
+ ['portgroup'])
+ while port_groups:
+ if len(port_groups) and hasattr(port_groups[0], 'propSet'):
+ for prop in port_groups[0].propSet:
+ for val in prop.val[0]:
+ props = session.invoke_api(vim_util,
+ 'get_object_properties',
+ session.vim,
+ val, ['name'])
+ if len(props) and hasattr(props[0], 'propSet'):
+ for prop in props[0].propSet:
+ pgs.append((prop.val, val))
+ port_groups = session._call_method(vim_util, 'continue_retrieval',
+ port_groups)
+ return pgs
+
+
+def delete_port_group(session, portgroup_moref):
+ """Delete a specific port group
+
+ :param session: vCenter soap session
+ :param portgroup_moref: managed portgroup object reference
+ """
+ task = session.invoke_api(session.vim,
+ 'Destroy_Task',
+ portgroup_moref)
+ session.wait_for_task(task)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/oslo_vmware/tests/test_api.py new/oslo.vmware-2.32.2/oslo_vmware/tests/test_api.py
--- old/oslo.vmware-2.31.0/oslo_vmware/tests/test_api.py 2018-07-20 03:07:21.000000000 +0200
+++ new/oslo.vmware-2.32.2/oslo_vmware/tests/test_api.py 2019-02-28 19:02:46.000000000 +0100
@@ -24,6 +24,7 @@
import six
import suds
+from oslo_context import context
from oslo_vmware import api
from oslo_vmware import exceptions
from oslo_vmware import pbm
@@ -393,7 +394,10 @@
'api')
self.assertEqual(fault_list, ex.fault_list)
- def test_wait_for_task(self):
+ @mock.patch.object(context, 'get_current')
+ def test_wait_for_task(self, mock_curr_ctx):
+ ctx = mock.Mock()
+ mock_curr_ctx.return_value = ctx
api_session = self._create_api_session(True)
task_info_list = [('queued', 0), ('running', 40), ('success', 100)]
task_info_list_size = len(task_info_list)
@@ -420,8 +424,41 @@
skip_op_id=True)
self.assertEqual(task_info_list_size,
api_session.invoke_api.call_count)
+ mock_curr_ctx.assert_called_once()
+ self.assertEqual(3, ctx.update_store.call_count)
- def test_wait_for_task_with_error_state(self):
+ @mock.patch.object(context, 'get_current', return_value=None)
+ def test_wait_for_task_no_ctx(self, mock_curr_ctx):
+ api_session = self._create_api_session(True)
+ task_info_list = [('queued', 0), ('running', 40), ('success', 100)]
+ task_info_list_size = len(task_info_list)
+
+ def invoke_api_side_effect(module, method, *args, **kwargs):
+ (state, progress) = task_info_list.pop(0)
+ task_info = mock.Mock()
+ task_info.progress = progress
+ task_info.queueTime = datetime(2016, 12, 6, 15, 29, 43, 79060)
+ task_info.completeTime = datetime(2016, 12, 6, 15, 29, 50, 79060)
+ task_info.state = state
+ return task_info
+
+ api_session.invoke_api = mock.Mock(side_effect=invoke_api_side_effect)
+ task = mock.Mock()
+ with mock.patch.object(greenthread, 'sleep'):
+ ret = api_session.wait_for_task(task)
+ self.assertEqual('success', ret.state)
+ self.assertEqual(100, ret.progress)
+ api_session.invoke_api.assert_called_with(vim_util,
+ 'get_object_property',
+ api_session.vim, task,
+ 'info',
+ skip_op_id=True)
+ self.assertEqual(task_info_list_size,
+ api_session.invoke_api.call_count)
+ mock_curr_ctx.assert_called_once()
+
+ @mock.patch.object(context, 'get_current')
+ def test_wait_for_task_with_error_state(self, mock_curr_ctx):
api_session = self._create_api_session(True)
task_info_list = [('queued', 0), ('running', 40), ('error', -1)]
task_info_list_size = len(task_info_list)
@@ -446,8 +483,10 @@
skip_op_id=True)
self.assertEqual(task_info_list_size,
api_session.invoke_api.call_count)
+ mock_curr_ctx.assert_called_once()
- def test_wait_for_task_with_invoke_api_exception(self):
+ @mock.patch.object(context, 'get_current')
+ def test_wait_for_task_with_invoke_api_exception(self, mock_curr_ctx):
api_session = self._create_api_session(True)
api_session.invoke_api = mock.Mock(
side_effect=exceptions.VimException(None))
@@ -461,6 +500,7 @@
api_session.vim, task,
'info',
skip_op_id=True)
+ mock_curr_ctx.assert_called_once()
def test_wait_for_lease_ready(self):
api_session = self._create_api_session(True)
@@ -551,9 +591,11 @@
):
fake_task = mock.Mock()
fake_task.value = 'task-1'
+ ctx = mock.Mock()
self.assertRaises(expected_exception,
api_session._poll_task,
- fake_task)
+ fake_task,
+ ctx)
def test_poll_task_well_known_exceptions(self):
for k, v in six.iteritems(exceptions._fault_classes_registry):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/oslo_vmware/tests/test_dvs_util.py new/oslo.vmware-2.32.2/oslo_vmware/tests/test_dvs_util.py
--- old/oslo.vmware-2.31.0/oslo_vmware/tests/test_dvs_util.py 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.vmware-2.32.2/oslo_vmware/tests/test_dvs_util.py 2019-02-28 19:02:46.000000000 +0100
@@ -0,0 +1,139 @@
+# Copyright (c) 2018 VMware, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+Unit tests for VMware DVS utility module.
+"""
+
+import collections
+
+import mock
+
+from oslo_vmware import dvs_util
+from oslo_vmware.tests import base
+from oslo_vmware import vim_util
+
+ObjectContent = collections.namedtuple('ObjectContent', ['obj', 'propSet'])
+DynamicProperty = collections.namedtuple('Property', ['name', 'val'])
+Moref = collections.namedtuple('Moref', ['name', 'type'])
+
+
+class DvsUtilTest(base.TestCase):
+ """Test class for utility methods in dvs_util."""
+
+ def test_get_dvs_moref(self):
+ moref = dvs_util.get_dvs_moref('dvs-123')
+ self.assertEqual('dvs-123', moref.value)
+ self.assertEqual('VmwareDistributedVirtualSwitch', moref._type)
+
+ def test_get_vlan_spec(self):
+ session = mock.Mock()
+ spec = dvs_util.get_vlan_spec(session, 7)
+ self.assertEqual(7, spec.vlanId)
+
+ def test_get_trunk_vlan_spec(self):
+ session = mock.Mock()
+ spec = dvs_util.get_trunk_vlan_spec(session, start=1, end=2)
+ self.assertEqual(1, spec.vlanId.start)
+ self.assertEqual(2, spec.vlanId.end)
+
+ def test_get_port_group_spec(self):
+ session = mock.Mock()
+ spec = dvs_util.get_port_group_spec(session, 'pg', 7)
+ self.assertEqual('pg', spec.name)
+ self.assertEqual('ephemeral', spec.type)
+ self.assertEqual(7, spec.defaultPortConfig.vlan.vlanId)
+
+ def test_get_port_group_spec_trunk(self):
+ session = mock.Mock()
+ spec = dvs_util.get_port_group_spec(session, 'pg', None,
+ trunk_mode=True)
+ self.assertEqual('pg', spec.name)
+ self.assertEqual('ephemeral', spec.type)
+ self.assertEqual(0, spec.defaultPortConfig.vlan.start)
+ self.assertEqual(4094, spec.defaultPortConfig.vlan.end)
+
+ @mock.patch.object(dvs_util, 'get_port_group_spec')
+ def test_add_port_group(self, mock_spec):
+ session = mock.Mock()
+ dvs_moref = dvs_util.get_dvs_moref('dvs-123')
+ spec = dvs_util.get_port_group_spec(session, 'pg', 7)
+ mock_spec.return_value = spec
+ pg_moref = vim_util.get_moref('dvportgroup-7',
+ 'DistributedVirtualPortgroup')
+
+ def wait_for_task_side_effect(task):
+ task_info = mock.Mock()
+ task_info.result = pg_moref
+ return task_info
+
+ session.wait_for_task.side_effect = wait_for_task_side_effect
+ pg = dvs_util.add_port_group(session, dvs_moref, 'pg',
+ vlan_id=7)
+ self.assertEqual(pg, pg_moref)
+ session.invoke_api.assert_called_once_with(
+ session.vim, 'CreateDVPortgroup_Task', dvs_moref,
+ spec=spec)
+
+ @mock.patch.object(dvs_util, 'get_port_group_spec')
+ def test_add_port_group_trunk(self, mock_spec):
+ session = mock.Mock()
+ dvs_moref = dvs_util.get_dvs_moref('dvs-123')
+ spec = dvs_util.get_port_group_spec(session, 'pg', None,
+ trunk_mode=True)
+ mock_spec.return_value = spec
+ dvs_util.add_port_group(session, dvs_moref, 'pg',
+ trunk_mode=True)
+ session.invoke_api.assert_called_once_with(
+ session.vim, 'CreateDVPortgroup_Task', dvs_moref,
+ spec=spec)
+
+ def test_get_portgroups_empty(self):
+ session = mock.Mock()
+ dvs_moref = dvs_util.get_dvs_moref('dvs-123')
+ session.invoke_api.return_value = []
+ pgs = dvs_util.get_portgroups(session, dvs_moref)
+ self.assertEqual([], pgs)
+
+ def test_get_portgroups(self):
+ session = mock.Mock()
+ dvs_moref = dvs_util.get_dvs_moref('dvs-123')
+ pg_moref = vim_util.get_moref('dvportgroup-7',
+ 'DistributedVirtualPortgroup')
+
+ def session_invoke_api_side_effect(module, method, *args, **kwargs):
+ if module == vim_util and method == 'get_object_properties':
+ if ['portgroup'] in args:
+ propSet = [DynamicProperty(name='portgroup',
+ val=[[pg_moref]])]
+ return [ObjectContent(obj=dvs_moref,
+ propSet=propSet)]
+ if ['name'] in args:
+ propSet = [DynamicProperty(name='name',
+ val='pg-name')]
+ return [ObjectContent(obj=pg_moref,
+ propSet=propSet)]
+
+ session.invoke_api.side_effect = session_invoke_api_side_effect
+ session._call_method.return_value = []
+ pgs = dvs_util.get_portgroups(session, dvs_moref)
+ result = [('pg-name', pg_moref)]
+ self.assertEqual(result, pgs)
+
+ def test_delete_port_group(self):
+ session = mock.Mock()
+ dvs_util.delete_port_group(session, 'pg-moref')
+ session.invoke_api.assert_called_once_with(
+ session.vim, 'Destroy_Task', 'pg-moref')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/oslo_vmware/tests/test_exceptions.py new/oslo.vmware-2.32.2/oslo_vmware/tests/test_exceptions.py
--- old/oslo.vmware-2.31.0/oslo_vmware/tests/test_exceptions.py 2018-07-20 03:07:21.000000000 +0200
+++ new/oslo.vmware-2.32.2/oslo_vmware/tests/test_exceptions.py 2019-02-28 19:02:46.000000000 +0100
@@ -43,7 +43,8 @@
def test_vim_fault_exception(self):
vfe = exceptions.VimFaultException([ValueError("example")], _("cause"))
string = str(vfe)
- self.assertEqual("cause\nFaults: [ValueError('example',)]", string)
+ self.assertIn(string, ["cause\nFaults: [ValueError('example',)]",
+ "cause\nFaults: [ValueError('example')]"])
def test_vim_fault_exception_with_cause_and_details(self):
vfe = exceptions.VimFaultException([ValueError("example")],
@@ -51,11 +52,14 @@
"FooBar",
{'foo': 'bar'})
string = str(vfe)
- self.assertEqual("MyMessage\n"
- "Cause: FooBar\n"
- "Faults: [ValueError('example',)]\n"
- "Details: {'foo': 'bar'}",
- string)
+ self.assertIn(string, ["MyMessage\n"
+ "Cause: FooBar\n"
+ "Faults: [ValueError('example',)]\n"
+ "Details: {'foo': 'bar'}",
+ "MyMessage\n"
+ "Cause: FooBar\n"
+ "Faults: [ValueError('example')]\n"
+ "Details: {'foo': 'bar'}"])
def _create_subclass_exception(self):
class VimSubClass(exceptions.VimException):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/releasenotes/notes/reno.cache new/oslo.vmware-2.32.2/releasenotes/notes/reno.cache
--- old/oslo.vmware-2.31.0/releasenotes/notes/reno.cache 2018-07-20 03:10:15.000000000 +0200
+++ new/oslo.vmware-2.32.2/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/releasenotes/source/index.rst new/oslo.vmware-2.32.2/releasenotes/source/index.rst
--- old/oslo.vmware-2.31.0/releasenotes/source/index.rst 2018-07-20 03:07:21.000000000 +0200
+++ new/oslo.vmware-2.32.2/releasenotes/source/index.rst 2019-02-28 19:02:46.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.vmware-2.32.2/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/oslo.vmware-2.31.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-07-20 03:07:21.000000000 +0200
+++ new/oslo.vmware-2.32.2/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-02-28 19:02:46.000000000 +0100
@@ -3,13 +3,13 @@
# Andi Chandler <andi(a)gowling.com>, 2018. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.vmware Release Notes\n"
+"Project-Id-Version: oslo.vmware\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-30 01:47+0000\n"
+"POT-Creation-Date: 2018-08-13 07:06+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-01-27 01:25+0000\n"
+"PO-Revision-Date: 2018-08-08 07:53+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -34,6 +34,9 @@
msgid "Queens Series Release Notes"
msgstr "Queens Series Release Notes"
+msgid "Rocky Series Release Notes"
+msgstr "Rocky Series Release Notes"
+
msgid "Switch to reno for managing release notes."
msgstr "Switch to reno for managing release notes."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/releasenotes/source/rocky.rst new/oslo.vmware-2.32.2/releasenotes/source/rocky.rst
--- old/oslo.vmware-2.31.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.vmware-2.32.2/releasenotes/source/rocky.rst 2019-02-28 19:02:46.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/requirements.txt new/oslo.vmware-2.32.2/requirements.txt
--- old/oslo.vmware-2.31.0/requirements.txt 2018-07-20 03:07:21.000000000 +0200
+++ new/oslo.vmware-2.32.2/requirements.txt 2019-02-28 19:02:46.000000000 +0100
@@ -20,3 +20,4 @@
requests>=2.14.2 # Apache-2.0
urllib3>=1.21.1 # MIT
oslo.concurrency>=3.26.0 # Apache-2.0
+oslo.context>=2.19.2 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/setup.cfg new/oslo.vmware-2.32.2/setup.cfg
--- old/oslo.vmware-2.31.0/setup.cfg 2018-07-20 03:10:15.000000000 +0200
+++ new/oslo.vmware-2.32.2/setup.cfg 2019-02-28 19:05:12.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.vmware/latest/
classifier =
Environment :: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.vmware-2.31.0/test-requirements.txt new/oslo.vmware-2.32.2/test-requirements.txt
--- old/oslo.vmware-2.31.0/test-requirements.txt 2018-07-20 03:07:21.000000000 +0200
+++ new/oslo.vmware-2.32.2/test-requirements.txt 2019-02-28 19:02:46.000000000 +0100
@@ -22,3 +22,4 @@
bandit>=1.1.0 # Apache-2.0
ddt>=1.0.1 # MIT
+oslo.context>=2.19.2 # Apache-2.0
1
0
Hello community,
here is the log from the commit of package python-oslo.versionedobjects for openSUSE:Factory checked in at 2019-05-03 22:42:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.versionedobjects (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.versionedobjects.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.versionedobjects"
Fri May 3 22:42:52 2019 rev:7 rq:692868 version:1.35.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.versionedobjects/python-oslo.versionedobjects.changes 2018-09-07 15:39:16.622544310 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.versionedobjects.new.5148/python-oslo.versionedobjects.changes 2019-05-03 22:42:54.771302894 +0200
@@ -1,0 +2,20 @@
+Mon Apr 8 11:34:36 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.35.1
+ - Update hacking version
+ - Update mailinglist from dev to discuss
+ - add python 3.7 unit test job
+ - add lib-forward-testing-python3 test job
+ - Lower ObjectVersionChecker logging to DEBUG level
+ - Allow lists to be generated from any non-string iterable
+ - import zuul job settings from project-config
+ - Imported Translations from Zanata
+ - Update reno for stable/rocky
+ - Clean up .gitignore references to personal tools
+ - Use template for lower-constraints
+ - add python 3.6 unit test job
+ - Add ListOfUUIDField
+ - Switch to stestr
+ - delete unused '='
+
+-------------------------------------------------------------------
Old:
----
oslo.versionedobjects-1.33.3.tar.gz
New:
----
oslo.versionedobjects-1.35.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.versionedobjects.spec ++++++
--- /var/tmp/diff_new_pack.AsdyG6/_old 2019-05-03 22:42:55.399304216 +0200
+++ /var/tmp/diff_new_pack.AsdyG6/_new 2019-05-03 22:42:55.399304216 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.versionedobjects
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.versionedobjects
-Version: 1.33.3
+Version: 1.35.1
Release: 0
Summary: Oslo Versioned Objects library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.versionedobjects
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.versionedobjects/oslo…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.versionedobjects/oslo…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-iso8601 >= 0.1.11
@@ -38,8 +38,7 @@
BuildRequires: python2-oslo.utils >= 3.33.0
BuildRequires: python2-oslotest
BuildRequires: python2-pbr
-BuildRequires: python2-testrepository
-BuildRequires: python2-testtools
+BuildRequires: python2-stestr
BuildRequires: python3-devel
BuildRequires: python3-iso8601 >= 0.1.11
BuildRequires: python3-jsonschema
@@ -53,8 +52,7 @@
BuildRequires: python3-oslo.utils >= 3.33.0
BuildRequires: python3-oslotest
BuildRequires: python3-pbr
-BuildRequires: python3-testrepository
-BuildRequires: python3-testtools
+BuildRequires: python3-stestr
Requires: python-WebOb >= 1.7.1
Requires: python-iso8601 >= 0.1.11
Requires: python-netaddr >= 0.7.18
@@ -88,21 +86,20 @@
This package contains documentation files for %{name}.
%prep
-%autosetup -p1 -n oslo.versionedobjects-1.33.3
+%autosetup -p1 -n oslo.versionedobjects-1.35.1
%py_req_cleanup
%build
%{python_build}
PYTHONPATH=. sphinx-build -b html doc/source doc/build/html
+rm -r doc/build/html/.{doctrees,buildinfo}
%install
%{python_install}
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.AsdyG6/_old 2019-05-03 22:42:55.435304292 +0200
+++ /var/tmp/diff_new_pack.AsdyG6/_new 2019-05-03 22:42:55.435304292 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.versionedobjects.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.versionedobjects/stable/ro…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.versionedobjects/stable/st…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.versionedobjects</param>
</service>
++++++ oslo.versionedobjects-1.33.3.tar.gz -> oslo.versionedobjects-1.35.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/.stestr.conf new/oslo.versionedobjects-1.35.1/.stestr.conf
--- old/oslo.versionedobjects-1.33.3/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.versionedobjects-1.35.1/.stestr.conf 2019-02-28 19:02:47.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./oslo_versionedobjects/tests
+top_path=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/.testr.conf new/oslo.versionedobjects-1.35.1/.testr.conf
--- old/oslo.versionedobjects-1.33.3/.testr.conf 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ ./oslo_versionedobjects $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/.zuul.yaml new/oslo.versionedobjects-1.35.1/.zuul.yaml
--- old/oslo.versionedobjects-1.33.3/.zuul.yaml 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/.zuul.yaml 2019-02-28 19:02:47.000000000 +0100
@@ -2,11 +2,19 @@
check:
jobs:
- oslo.versionedobjects-src-grenade-devstack-multinode
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
- job:
name: oslo.versionedobjects-src-grenade-devstack-multinode
parent: legacy-dsvm-base-multinode
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/AUTHORS new/oslo.versionedobjects-1.35.1/AUTHORS
--- old/oslo.versionedobjects-1.33.3/AUTHORS 2018-06-27 10:28:59.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/AUTHORS 2019-02-28 19:03:46.000000000 +0100
@@ -101,6 +101,7 @@
Donal Lafferty <donal.lafferty(a)citrix.com>
Doug Hellmann <doug.hellmann(a)dreamhost.com>
Doug Hellmann <doug(a)doughellmann.com>
+Doug Wiegley <dwiegley(a)salesforce.com>
Drew Thorstensen <thorst(a)us.ibm.com>
Duncan McGreggor <duncan(a)dreamhost.com>
Ed Leafe <ed(a)leafe.com>
@@ -220,6 +221,7 @@
Matt Dietz <matt.dietz(a)rackspace.com>
Matt Joyce <matt.joyce(a)cloudscaling.com>
Matt Odden <mrodden(a)us.ibm.com>
+Matt Riedemann <mriedem.os(a)gmail.com>
Matt Riedemann <mriedem(a)us.ibm.com>
Matthew Booth <mbooth(a)redhat.com>
Matthew Hooker <matt(a)cloudscaling.com>
@@ -362,10 +364,11 @@
Zhi Yan Liu <lzy.dev(a)gmail.com>
Zhi Yan Liu <zhiyanl(a)cn.ibm.com>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
+ZhijunWei <wzj334965317(a)outlook.com>
Zhiteng Huang <zhiteng.huang(a)intel.com>
+ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <lzyeval(a)gmail.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
andy <github(a)anarkystic.com>
brian-lamar <brian.lamar(a)gmail.com>
danwent <danwent@dan-xs3-cs>
@@ -405,4 +408,5 @@
termie <github(a)anarkystic.com>
unicell <unicell(a)gmail.com>
vladimir.p <vladimir(a)zadarastorage.com>
+wangqi <wang.qi(a)99cloud.net>
Édouard Thuleau <edouard.thuleau(a)orange.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/ChangeLog new/oslo.versionedobjects-1.35.1/ChangeLog
--- old/oslo.versionedobjects-1.33.3/ChangeLog 2018-06-27 10:28:59.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/ChangeLog 2019-02-28 19:03:45.000000000 +0100
@@ -1,6 +1,33 @@
CHANGES
=======
+1.35.1
+------
+
+* add python 3.7 unit test job
+* Allow lists to be generated from any non-string iterable
+* Update hacking version
+
+1.35.0
+------
+
+* Lower ObjectVersionChecker logging to DEBUG level
+* Add ListOfUUIDField
+* Use template for lower-constraints
+* Update mailinglist from dev to discuss
+* Clean up .gitignore references to personal tools
+
+1.34.1
+------
+
+* Imported Translations from Zanata
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* delete unused '='
+* Update reno for stable/rocky
+* Switch to stestr
+
1.33.3
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/PKG-INFO new/oslo.versionedobjects-1.35.1/PKG-INFO
--- old/oslo.versionedobjects-1.33.3/PKG-INFO 2018-06-27 10:28:59.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/PKG-INFO 2019-02-28 19:03:46.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.versionedobjects
-Version: 1.33.3
+Version: 1.35.1
Summary: Oslo Versioned Objects library
Home-page: https://docs.openstack.org/oslo.versionedobjects/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/doc/source/reference/exception.rst new/oslo.versionedobjects-1.35.1/doc/source/reference/exception.rst
--- old/oslo.versionedobjects-1.33.3/doc/source/reference/exception.rst 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/doc/source/reference/exception.rst 2019-02-28 19:02:47.000000000 +0100
@@ -1,6 +1,6 @@
-=============
- exception
-=============
+=========
+exception
+=========
.. automodule:: oslo_versionedobjects.exception
:members:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/lower-constraints.txt new/oslo.versionedobjects-1.35.1/lower-constraints.txt
--- old/oslo.versionedobjects-1.33.3/lower-constraints.txt 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/lower-constraints.txt 2019-02-28 19:02:47.000000000 +0100
@@ -31,7 +31,7 @@
netaddr==0.7.18
netifaces==0.10.4
os-client-config==1.28.0
-oslo.concurrency==3.25.0
+oslo.concurrency==3.26.0
oslo.config==5.2.0
oslo.context==2.19.2
oslo.i18n==3.15.3
@@ -65,9 +65,9 @@
six==1.10.0
smmap==0.9.0
statsd==3.2.1
+stestr==2.0.0
stevedore==1.20.0
tenacity==3.2.1
-testrepository==0.0.18
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/oslo.versionedobjects.egg-info/PKG-INFO new/oslo.versionedobjects-1.35.1/oslo.versionedobjects.egg-info/PKG-INFO
--- old/oslo.versionedobjects-1.33.3/oslo.versionedobjects.egg-info/PKG-INFO 2018-06-27 10:28:59.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/oslo.versionedobjects.egg-info/PKG-INFO 2019-02-28 19:03:46.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.versionedobjects
-Version: 1.33.3
+Version: 1.35.1
Summary: Oslo Versioned Objects library
Home-page: https://docs.openstack.org/oslo.versionedobjects/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/oslo.versionedobjects.egg-info/SOURCES.txt new/oslo.versionedobjects-1.35.1/oslo.versionedobjects.egg-info/SOURCES.txt
--- old/oslo.versionedobjects-1.33.3/oslo.versionedobjects.egg-info/SOURCES.txt 2018-06-27 10:28:59.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/oslo.versionedobjects.egg-info/SOURCES.txt 2019-02-28 19:03:46.000000000 +0100
@@ -1,6 +1,6 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -65,6 +65,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/oslo.versionedobjects.egg-info/pbr.json new/oslo.versionedobjects-1.35.1/oslo.versionedobjects.egg-info/pbr.json
--- old/oslo.versionedobjects-1.33.3/oslo.versionedobjects.egg-info/pbr.json 2018-06-27 10:28:59.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/oslo.versionedobjects.egg-info/pbr.json 2019-02-28 19:03:46.000000000 +0100
@@ -1 +1 @@
-{"git_version": "d46aea7", "is_release": true}
\ No newline at end of file
+{"git_version": "c45d348", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/oslo_versionedobjects/fields.py new/oslo.versionedobjects-1.35.1/oslo_versionedobjects/fields.py
--- old/oslo.versionedobjects-1.33.3/oslo_versionedobjects/fields.py 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/oslo_versionedobjects/fields.py 2019-02-28 19:02:47.000000000 +0100
@@ -13,6 +13,7 @@
# under the License.
import abc
+import collections
import datetime
from distutils import versionpredicate
import re
@@ -642,7 +643,9 @@
class List(CompoundFieldType):
def coerce(self, obj, attr, value):
- if not isinstance(value, list):
+
+ if (not isinstance(value, collections.Iterable) or
+ isinstance(value, six.string_types + (collections.Mapping,))):
raise ValueError(_('A list is required in field %(attr)s, '
'not a %(type)s') %
{'attr': attr, 'type': type(value).__name__})
@@ -1180,6 +1183,10 @@
super(ListOfObjectsField, self).__init__(**kwargs)
+class ListOfUUIDField(AutoTypedField):
+ AUTO_TYPE = List(UUID())
+
+
class IPAddressField(AutoTypedField):
AUTO_TYPE = IPAddress()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/oslo_versionedobjects/fixture.py new/oslo.versionedobjects-1.35.1/oslo_versionedobjects/fixture.py
--- old/oslo.versionedobjects-1.33.3/oslo_versionedobjects/fixture.py 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/oslo_versionedobjects/fixture.py 2019-02-28 19:02:47.000000000 +0100
@@ -206,8 +206,8 @@
"""Follow a chain of remotable things down to the original function."""
if isinstance(thing, classmethod):
return self._find_remotable_method(cls, thing.__get__(None, cls))
- elif (inspect.ismethod(thing)
- or inspect.isfunction(thing)) and hasattr(thing, 'remotable'):
+ elif (inspect.ismethod(thing) or
+ inspect.isfunction(thing)) and hasattr(thing, 'remotable'):
return self._find_remotable_method(cls, thing.original_fn,
parent_was_remotable=True)
elif parent_was_remotable:
@@ -320,8 +320,9 @@
kwargs = {'version_manifest': manifest} if manifest else {}
for n in range(version[1] + 1):
test_version = '%d.%d' % (version[0], n)
- LOG.info('testing obj: %s version: %s' %
- (obj_class.obj_name(), test_version))
+ # Run the test with OS_DEBUG=True to see this.
+ LOG.debug('testing obj: %s version: %s' %
+ (obj_class.obj_name(), test_version))
kwargs['target_version'] = test_version
obj_class(*init_args, **init_kwargs).obj_to_primitive(**kwargs)
@@ -369,8 +370,8 @@
for my_version, child_version in versions:
_my_version = vutils.convert_version_to_tuple(my_version)
_ch_version = vutils.convert_version_to_tuple(child_version)
- if not (last_my_version < _my_version
- and last_child_version <= _ch_version):
+ if not (last_my_version < _my_version and
+ last_child_version <= _ch_version):
raise AssertionError(('Object %s relationship %s->%s for '
'field %s is out of order') % (
obj_class.obj_name(),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/oslo_versionedobjects/locale/en_GB/LC_MESSAGES/oslo_versionedobjects.po new/oslo.versionedobjects-1.35.1/oslo_versionedobjects/locale/en_GB/LC_MESSAGES/oslo_versionedobjects.po
--- old/oslo.versionedobjects-1.33.3/oslo_versionedobjects/locale/en_GB/LC_MESSAGES/oslo_versionedobjects.po 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/oslo_versionedobjects/locale/en_GB/LC_MESSAGES/oslo_versionedobjects.po 2019-02-28 19:02:47.000000000 +0100
@@ -8,15 +8,16 @@
# Andi Chandler <andi(a)gowling.com>, 2016. #zanata
# Andreas Jaeger <jaegerandi(a)gmail.com>, 2016. #zanata
# Andi Chandler <andi(a)gowling.com>, 2017. #zanata
+# Andi Chandler <andi(a)gowling.com>, 2018. #zanata
msgid ""
msgstr ""
"Project-Id-Version: oslo.versionedobjects VERSION\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2018-02-13 18:33+0000\n"
+"POT-Creation-Date: 2018-08-13 06:45+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2017-09-28 03:01+0000\n"
+"PO-Revision-Date: 2018-08-08 07:53+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language: en_GB\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -156,8 +157,12 @@
msgstr "Value must be >= 0 for field %s"
#, python-format
-msgid "Version %(objver)s of %(objname)s is not supported"
-msgstr "Version %(objver)s of %(objname)s is not supported"
+msgid ""
+"Version %(objver)s of %(objname)s is not supported, supported version is "
+"%(supported)s"
+msgstr ""
+"Version %(objver)s of %(objname)s is not supported, supported version is "
+"%(supported)s"
#, python-format
msgid "Version %(val)s is not a valid predicate in field %(attr)s"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/oslo_versionedobjects/test.py new/oslo.versionedobjects-1.35.1/oslo_versionedobjects/test.py
--- old/oslo.versionedobjects-1.33.3/oslo_versionedobjects/test.py 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/oslo_versionedobjects/test.py 2019-02-28 19:02:47.000000000 +0100
@@ -20,8 +20,8 @@
"""
-import eventlet
-eventlet.monkey_patch(os=False)
+import eventlet # noqa
+eventlet.monkey_patch(os=False) # noqa
import inspect
import mock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/oslo_versionedobjects/tests/test_fields.py new/oslo.versionedobjects-1.35.1/oslo_versionedobjects/tests/test_fields.py
--- old/oslo.versionedobjects-1.33.3/oslo_versionedobjects/tests/test_fields.py 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/oslo_versionedobjects/tests/test_fields.py 2019-02-28 19:02:47.000000000 +0100
@@ -851,6 +851,24 @@
self.assertEqual('[[1, 2]]', self.field.stringify([[1, 2]]))
+class TestListOfUUIDField(TestField):
+ def setUp(self):
+ super(TestListOfUUIDField, self).setUp()
+ self.field = fields.ListOfUUIDField()
+ self.uuid1 = '6b2097ea-d0e3-44dd-b131-95472b3ea8fd'
+ self.uuid2 = '478c193d-2533-4e71-ab2b-c7683f67d7f9'
+ self.coerce_good_values = [([self.uuid1, self.uuid2],
+ [self.uuid1, self.uuid2])]
+ # coerce_bad_values is intentionally ignored since the UUID field
+ # allows non-UUID values for now. See TestUUIDField for examples.
+ self.to_primitive_values = [([self.uuid1], [self.uuid1])]
+ self.from_primitive_values = [([self.uuid1], [self.uuid1])]
+
+ def test_stringify(self):
+ self.assertEqual('[%s,%s]' % (self.uuid1, self.uuid2),
+ self.field.stringify([self.uuid1, self.uuid2]))
+
+
class TestLocalMethods(test.TestCase):
@mock.patch.object(obj_base.LOG, 'exception')
def test__make_class_properties_setter_value_error(self, mock_log):
@@ -1211,3 +1229,41 @@
invalid_vals = [x for x in self.coerce_bad_values]
for invalid_val in invalid_vals:
self.assertNotRegex(str(invalid_val), pattern)
+
+
+class FakeCounter(six.Iterator):
+ def __init__(self):
+ self.n = 0
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ if self.n <= 4:
+ self.n += 1
+ return self.n
+ else:
+ raise StopIteration
+
+
+class TestListTypes(test.TestCase):
+
+ def test_regular_list(self):
+ fields.List(fields.Integer).coerce(None, None, [1, 2])
+
+ def test_non_iterable(self):
+ self.assertRaises(ValueError,
+ fields.List(fields.Integer).coerce, None, None, 2)
+
+ def test_string_iterable(self):
+ self.assertRaises(ValueError,
+ fields.List(fields.Integer).coerce, None, None,
+ 'hello')
+
+ def test_mapping_iterable(self):
+ self.assertRaises(ValueError,
+ fields.List(fields.Integer).coerce, None, None,
+ {'a': 1, 'b': 2})
+
+ def test_iter_class(self):
+ fields.List(fields.Integer).coerce(None, None, FakeCounter())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/releasenotes/source/index.rst new/oslo.versionedobjects-1.35.1/releasenotes/source/index.rst
--- old/oslo.versionedobjects-1.33.3/releasenotes/source/index.rst 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/releasenotes/source/index.rst 2019-02-28 19:02:47.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.versionedobjects-1.35.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/oslo.versionedobjects-1.33.3/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-02-28 19:02:47.000000000 +0100
@@ -2,13 +2,13 @@
# Andi Chandler <andi(a)gowling.com>, 2018. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.versionedobjects Release Notes\n"
+"Project-Id-Version: oslo.versionedobjects\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-13 18:33+0000\n"
+"POT-Creation-Date: 2018-08-13 06:45+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-02-06 11:26+0000\n"
+"PO-Revision-Date: 2018-08-08 07:54+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -36,5 +36,8 @@
msgid "Queens Series Release Notes"
msgstr "Queens Series Release Notes"
+msgid "Rocky Series Release Notes"
+msgstr "Rocky Series Release Notes"
+
msgid "oslo.versionedobjects Release Notes"
msgstr "oslo.versionedobjects Release Notes"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/releasenotes/source/rocky.rst new/oslo.versionedobjects-1.35.1/releasenotes/source/rocky.rst
--- old/oslo.versionedobjects-1.33.3/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.versionedobjects-1.35.1/releasenotes/source/rocky.rst 2019-02-28 19:02:47.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/setup.cfg new/oslo.versionedobjects-1.35.1/setup.cfg
--- old/oslo.versionedobjects-1.33.3/setup.cfg 2018-06-27 10:28:59.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/setup.cfg 2019-02-28 19:03:46.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.versionedobjects/latest/
classifier =
Environment :: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/test-requirements.txt new/oslo.versionedobjects-1.35.1/test-requirements.txt
--- old/oslo.versionedobjects-1.33.3/test-requirements.txt 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/test-requirements.txt 2019-02-28 19:02:47.000000000 +0100
@@ -1,11 +1,12 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
testtools>=2.2.0 # MIT
coverage!=4.4,>=4.0 # Apache-2.0
jsonschema<3.0.0,>=2.6.0 # MIT
+stestr>=2.0.0 # Apache-2.0
mock>=2.0.0 # BSD
fixtures>=3.0.0 # Apache-2.0/BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.versionedobjects-1.33.3/tox.ini new/oslo.versionedobjects-1.35.1/tox.ini
--- old/oslo.versionedobjects-1.33.3/tox.ini 2018-06-27 10:26:38.000000000 +0200
+++ new/oslo.versionedobjects-1.35.1/tox.ini 2019-02-28 19:02:47.000000000 +0100
@@ -10,7 +10,7 @@
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
[testenv:py27]
basepython = python2.7
1
0
Hello community,
here is the log from the commit of package python-oslo.utils for openSUSE:Factory checked in at 2019-05-03 22:42:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.utils (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.utils.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.utils"
Fri May 3 22:42:48 2019 rev:17 rq:692867 version:3.40.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.utils/python-oslo.utils.changes 2018-09-07 15:39:13.606547546 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.utils.new.5148/python-oslo.utils.changes 2019-05-03 22:42:50.211293293 +0200
@@ -1,0 +2,25 @@
+Mon Apr 8 11:23:34 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.40.3
+ - Update mailinglist from dev to discuss
+ - Fix docstring formatting nit in uuidsentinel
+ - Fix race condition in eventletutils Event
+ - Use template for lower-constraints
+ - Remove extra copy.deepcopy
+ - Fix exception raise at rpdb session
+ - Expose eventlet Event wrapper class
+ - add lib-forward-testing-python3 test job
+ - add python 3.7 unit test job
+ - Remove moxstubout usage
+ - Avoid calling eventlet.event.Event.reset()
+ - Avoid double-setting event
+ - Update reno for stable/rocky
+ - Support non-dict mappings in mask_dict_password
+ - Clean up .gitignore references to personal tools
+ - Update hacking version
+ - UUID sentinel
+ - add python 3.6 unit test job
+ - Don't use monotonic on Python >=3.3
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
oslo.utils-3.36.4.tar.gz
New:
----
oslo.utils-3.40.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.utils.spec ++++++
--- /var/tmp/diff_new_pack.Hz71V6/_old 2019-05-03 22:42:51.515296039 +0200
+++ /var/tmp/diff_new_pack.Hz71V6/_new 2019-05-03 22:42:51.515296039 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.utils
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,22 +12,23 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.utils
-Version: 3.36.4
+Version: 3.40.3
Release: 0
Summary: OpenStack Utils Library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.utils
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-3.36…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.utils/oslo.utils-3.40…
BuildRequires: openstack-macros
BuildRequires: python2-Babel
BuildRequires: python2-ddt
BuildRequires: python2-debtcollector >= 1.2.0
+BuildRequires: python2-eventlet
BuildRequires: python2-fixtures
BuildRequires: python2-iso8601 >= 0.1.11
BuildRequires: python2-mock
@@ -38,30 +39,27 @@
BuildRequires: python2-oslotest
BuildRequires: python2-pbr >= 2.0.0
BuildRequires: python2-pyparsing >= 2.1.0
-BuildRequires: python2-python-subunit
BuildRequires: python2-stestr
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
BuildRequires: python3-Babel
BuildRequires: python3-ddt
BuildRequires: python3-debtcollector >= 1.2.0
+BuildRequires: python3-eventlet
BuildRequires: python3-fixtures
BuildRequires: python3-iso8601 >= 0.1.11
BuildRequires: python3-mock
-BuildRequires: python3-monotonic >= 0.6
BuildRequires: python3-netaddr >= 0.7.18
BuildRequires: python3-netifaces >= 0.10.4
BuildRequires: python3-oslo.i18n >= 3.15.3
BuildRequires: python3-oslotest
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-pyparsing >= 2.1.0
-BuildRequires: python3-python-subunit
BuildRequires: python3-stestr
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
Requires: python-debtcollector >= 1.2.0
Requires: python-iso8601 >= 0.1.11
-Requires: python-monotonic >= 0.6
Requires: python-netaddr >= 0.7.18
Requires: python-netifaces >= 0.10.4
Requires: python-oslo.i18n >= 3.15.3
@@ -69,6 +67,9 @@
Requires: python-pytz >= 2013.6
Requires: python-six >= 1.10.0
BuildArch: noarch
+%ifpython2
+Requires: python-monotonic >= 0.6
+%endif
%python_subpackages
%description
@@ -85,9 +86,8 @@
Documentation for OpenStack utils library.
%prep
-%autosetup -p1 -n oslo.utils-3.36.4
+%autosetup -p1 -n oslo.utils-3.40.3
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%py_req_cleanup
%build
@@ -98,7 +98,7 @@
# generate html docs
#%{__python2} setup.py build_sphinx
-PBR_VERSION=3.36.4 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=3.40.3 sphinx-build -b html doc/source doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Hz71V6/_old 2019-05-03 22:42:51.535296081 +0200
+++ /var/tmp/diff_new_pack.Hz71V6/_new 2019-05-03 22:42:51.539296089 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.utils.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.utils/stable/rocky/require…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.utils/stable/stein/require…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.utils</param>
</service>
++++++ oslo.utils-3.36.4.tar.gz -> oslo.utils-3.40.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/.zuul.yaml new/oslo.utils-3.40.3/.zuul.yaml
--- old/oslo.utils-3.36.4/.zuul.yaml 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/.zuul.yaml 2019-02-28 19:04:16.000000000 +0100
@@ -1,7 +1,13 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/AUTHORS new/oslo.utils-3.40.3/AUTHORS
--- old/oslo.utils-3.36.4/AUTHORS 2018-07-20 03:11:33.000000000 +0200
+++ new/oslo.utils-3.40.3/AUTHORS 2019-02-28 19:05:42.000000000 +0100
@@ -20,11 +20,13 @@
Ben Nemec <bnemec(a)us.ibm.com>
Bin Zhou <zhou.bin9(a)zte.com.cn>
Brant Knudson <bknudson(a)us.ibm.com>
+BubaVV <vmarkov(a)mirantis.com>
Cedric Brandily <zzelle(a)gmail.com>
Chang Bo Guo <guochbo(a)cn.ibm.com>
ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
Christian Berendt <berendt(a)b1-systems.de>
Chuck Short <chuck.short(a)canonical.com>
+Chuck Short <chucks(a)redhat.com>
Costin Galan <cgalan(a)cloudbasesolutions.com>
Cyril Roelandt <cyril.roelandt(a)enovance.com>
Cyril Roelandt <cyril(a)redhat.com>
@@ -46,6 +48,7 @@
Elena Ezhova <eezhova(a)mirantis.com>
Eoghan Glynn <eglynn(a)redhat.com>
Eric Brown <browne(a)vmware.com>
+Eric Fried <efried(a)us.ibm.com>
Eugene Kirpichov <ekirpichov(a)gmail.com>
Flaper Fesp <flaper87(a)gmail.com>
Flavio Percoco <flaper87(a)gmail.com>
@@ -125,10 +128,10 @@
Yunhong, Jiang <yunhong.jiang(a)intel.com>
Zane Bitter <zbitter(a)redhat.com>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
+ZhijunWei <wzj334965317(a)outlook.com>
ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <lzyeval(a)gmail.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
avnish <avnish.pal(a)nectechnologies.in>
bhagyashris <bhagyashri.shewale(a)nttdata.com>
changxun <zhoucx(a)dtdream.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/ChangeLog new/oslo.utils-3.40.3/ChangeLog
--- old/oslo.utils-3.36.4/ChangeLog 2018-07-20 03:11:33.000000000 +0200
+++ new/oslo.utils-3.40.3/ChangeLog 2019-02-28 19:05:42.000000000 +0100
@@ -1,6 +1,62 @@
CHANGES
=======
+3.40.3
+------
+
+* add python 3.7 unit test job
+* Update hacking version
+
+3.40.2
+------
+
+* Avoid double-setting event
+
+3.40.1
+------
+
+
+3.40.0
+------
+
+
+3.39.1
+------
+
+* Avoid calling eventlet.event.Event.reset()
+* Use template for lower-constraints
+
+3.39.0
+------
+
+* Fix race condition in eventletutils Event
+* Don't use monotonic on Python >=3.3
+* Update mailinglist from dev to discuss
+* Support non-dict mappings in mask\_dict\_password
+
+3.38.0
+------
+
+* Expose eventlet Event wrapper class
+* Clean up .gitignore references to personal tools
+
+3.37.1
+------
+
+* Fix exception raise at rpdb session
+
+3.37.0
+------
+
+* Fix docstring formatting nit in uuidsentinel
+* UUID sentinel
+* Remove moxstubout usage
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+* Remove extra copy.deepcopy
+
3.36.4
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/HACKING.rst new/oslo.utils-3.40.3/HACKING.rst
--- old/oslo.utils-3.36.4/HACKING.rst 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/HACKING.rst 2019-02-28 19:04:16.000000000 +0100
@@ -1,4 +1,4 @@
oslo.utils Style Commandments
-======================================================
+=============================
-Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/
\ No newline at end of file
+Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/PKG-INFO new/oslo.utils-3.40.3/PKG-INFO
--- old/oslo.utils-3.36.4/PKG-INFO 2018-07-20 03:11:33.000000000 +0200
+++ new/oslo.utils-3.40.3/PKG-INFO 2019-02-28 19:05:42.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.utils
-Version: 3.36.4
+Version: 3.40.3
Summary: Oslo Utility library
Home-page: https://docs.openstack.org/oslo.utils/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/lower-constraints.txt new/oslo.utils-3.40.3/lower-constraints.txt
--- old/oslo.utils-3.36.4/lower-constraints.txt 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/lower-constraints.txt 2019-02-28 19:04:16.000000000 +0100
@@ -4,6 +4,7 @@
coverage==4.0
ddt==1.0.1
debtcollector==1.2.0
+eventlet==0.18.2
extras==1.0.0
fixtures==3.0.0
flake8==2.5.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo.utils.egg-info/PKG-INFO new/oslo.utils-3.40.3/oslo.utils.egg-info/PKG-INFO
--- old/oslo.utils-3.36.4/oslo.utils.egg-info/PKG-INFO 2018-07-20 03:11:33.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo.utils.egg-info/PKG-INFO 2019-02-28 19:05:42.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.utils
-Version: 3.36.4
+Version: 3.40.3
Summary: Oslo Utility library
Home-page: https://docs.openstack.org/oslo.utils/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo.utils.egg-info/SOURCES.txt new/oslo.utils-3.40.3/oslo.utils.egg-info/SOURCES.txt
--- old/oslo.utils-3.36.4/oslo.utils.egg-info/SOURCES.txt 2018-07-20 03:11:33.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo.utils.egg-info/SOURCES.txt 2019-02-28 19:05:42.000000000 +0100
@@ -102,6 +102,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo.utils.egg-info/pbr.json new/oslo.utils-3.40.3/oslo.utils.egg-info/pbr.json
--- old/oslo.utils-3.36.4/oslo.utils.egg-info/pbr.json 2018-07-20 03:11:33.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo.utils.egg-info/pbr.json 2019-02-28 19:05:42.000000000 +0100
@@ -1 +1 @@
-{"git_version": "7f83970", "is_release": true}
\ No newline at end of file
+{"git_version": "1fd9f5a", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo.utils.egg-info/requires.txt new/oslo.utils-3.40.3/oslo.utils.egg-info/requires.txt
--- old/oslo.utils-3.36.4/oslo.utils.egg-info/requires.txt 2018-07-20 03:11:33.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo.utils.egg-info/requires.txt 2019-02-28 19:05:42.000000000 +0100
@@ -2,12 +2,14 @@
six>=1.10.0
iso8601>=0.1.11
oslo.i18n>=3.15.3
-monotonic>=0.6
pytz>=2013.6
netaddr>=0.7.18
netifaces>=0.10.4
debtcollector>=1.2.0
pyparsing>=2.1.0
+[:(python_version<'3.3')]
+monotonic>=0.6
+
[:(python_version=='2.7' or python_version=='2.6')]
funcsigs>=1.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/encodeutils.py new/oslo.utils-3.40.3/oslo_utils/encodeutils.py
--- old/oslo.utils-3.36.4/oslo_utils/encodeutils.py 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo_utils/encodeutils.py 2019-02-28 19:04:16.000000000 +0100
@@ -42,7 +42,7 @@
return text
if not incoming:
- incoming = (sys.stdin.encoding or
+ incoming = (getattr(sys.stdin, 'encoding', None) or
sys.getdefaultencoding())
try:
@@ -85,7 +85,7 @@
raise TypeError("%s can't be encoded" % type(text))
if not incoming:
- incoming = (sys.stdin.encoding or
+ incoming = (getattr(sys.stdin, 'encoding', None) or
sys.getdefaultencoding())
# Avoid case issues in comparisons
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/eventletutils.py new/oslo.utils-3.40.3/oslo_utils/eventletutils.py
--- old/oslo.utils-3.36.4/oslo_utils/eventletutils.py 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo_utils/eventletutils.py 2019-02-28 19:04:16.000000000 +0100
@@ -24,6 +24,8 @@
import warnings
from oslo_utils import importutils
+from oslo_utils import timeutils
+
# These may or may not exist; so carefully import them if we can...
_eventlet = importutils.try_import('eventlet')
@@ -140,18 +142,24 @@
return _patcher.is_monkey_patched(module)
-class _Event(object):
+class EventletEvent(object):
"""A class that provides consistent eventlet/threading Event API.
This wraps the eventlet.event.Event class to have the same API as
the standard threading.Event object.
"""
def __init__(self, *args, **kwargs):
+ super(EventletEvent, self).__init__()
+ self._set = False
self.clear()
def clear(self):
+ old_event = getattr(self, "_event", None)
+ was_set = self._set
self._set = False
self._event = _eventlet.event.Event()
+ if old_event is not None and not was_set:
+ old_event.send(True)
def is_set(self):
return self._set
@@ -159,20 +167,24 @@
isSet = is_set
def set(self):
- if self._set:
- self._event.reset()
-
- self._set = True
- self._event.send(True)
+ if not self._set:
+ self._set = True
+ self._event.send(True)
def wait(self, timeout=None):
- with _eventlet.timeout.Timeout(timeout, False):
- self._event.wait()
- return self.is_set()
+ with timeutils.StopWatch(timeout) as sw:
+ while True:
+ event = self._event
+ with _eventlet.timeout.Timeout(sw.leftover(return_none=True),
+ False):
+ event.wait()
+ if event is not self._event:
+ continue
+ return self.is_set()
def Event():
if is_monkey_patched("thread"):
- return _Event()
+ return EventletEvent()
else:
return threading.Event()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/fixture.py new/oslo.utils-3.40.3/oslo_utils/fixture.py
--- old/oslo.utils-3.36.4/oslo_utils/fixture.py 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo_utils/fixture.py 2019-02-28 19:04:16.000000000 +0100
@@ -20,9 +20,12 @@
.. versionadded:: 1.3
"""
+import threading
+
import fixtures
from oslo_utils import timeutils
+from oslo_utils import uuidutils
class TimeFixture(fixtures.Fixture):
@@ -49,3 +52,41 @@
def advance_time_seconds(self, seconds):
"""Advance overridden time by seconds."""
timeutils.advance_time_seconds(seconds)
+
+
+class _UUIDSentinels(object):
+ """Registry of dynamically created, named, random UUID strings.
+
+ An instance of this class will dynamically generate attributes as they are
+ referenced, associating a random UUID string with each. Thereafter,
+ referring to the same attribute will give the same UUID for the life of the
+ instance. Plan accordingly.
+
+ Usage::
+
+ from oslo_utils.fixture import uuidsentinel as uuids
+ ...
+ foo = uuids.foo
+ do_a_thing(foo)
+ # Referencing the same sentinel again gives the same value
+ assert foo == uuids.foo
+ # But a different one will be different
+ assert foo != uuids.bar
+ """
+ def __init__(self):
+ self._sentinels = {}
+ self._lock = threading.Lock()
+
+ def __getattr__(self, name):
+ if name.startswith('_'):
+ raise ValueError('Sentinels must not start with _')
+ with self._lock:
+ if name not in self._sentinels:
+ self._sentinels[name] = uuidutils.generate_uuid()
+ return self._sentinels[name]
+
+
+# Singleton sentinel instance. Caveat emptor: using this multiple times in the
+# same process (including across multiple modules) will result in the same
+# values
+uuidsentinel = _UUIDSentinels()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/reflection.py new/oslo.utils-3.40.3/oslo_utils/reflection.py
--- old/oslo.utils-3.36.4/oslo_utils/reflection.py 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo_utils/reflection.py 2019-02-28 19:04:16.000000000 +0100
@@ -208,8 +208,8 @@
sig = get_signature(function)
function_args = list(six.iterkeys(sig.parameters))
for param_name, p in six.iteritems(sig.parameters):
- if (p.kind in (Parameter.VAR_POSITIONAL, Parameter.VAR_KEYWORD)
- or (required_only and p.default is not Parameter.empty)):
+ if (p.kind in (Parameter.VAR_POSITIONAL, Parameter.VAR_KEYWORD) or
+ (required_only and p.default is not Parameter.empty)):
function_args.remove(param_name)
return function_args
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/strutils.py new/oslo.utils-3.40.3/oslo_utils/strutils.py
--- old/oslo.utils-3.36.4/oslo_utils/strutils.py 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo_utils/strutils.py 2019-02-28 19:04:16.000000000 +0100
@@ -17,7 +17,7 @@
System-level utilities and helper functions.
"""
-import copy
+import collections
import math
import re
import unicodedata
@@ -391,14 +391,12 @@
"""
- if not isinstance(dictionary, dict):
- raise TypeError("Expected a dictionary, got %s instead."
+ if not isinstance(dictionary, collections.Mapping):
+ raise TypeError("Expected a Mapping, got %s instead."
% type(dictionary))
-
- out = copy.deepcopy(dictionary)
-
+ out = {}
for k, v in dictionary.items():
- if isinstance(v, dict):
+ if isinstance(v, collections.Mapping):
out[k] = mask_dict_password(v, secret=secret)
continue
# NOTE(jlvillal): Check to see if anything in the dictionary 'key'
@@ -556,8 +554,8 @@
.. versionadded:: 3.17
"""
- word = (pp.QuotedString(quoteChar='"', escChar='\\')
- | pp.Word(pp.printables, excludeChars='",'))
+ word = (pp.QuotedString(quoteChar='"', escChar='\\') |
+ pp.Word(pp.printables, excludeChars='",'))
grammar = pp.stringStart + pp.delimitedList(word) + pp.stringEnd
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/tests/test_eventletutils.py new/oslo.utils-3.40.3/oslo_utils/tests/test_eventletutils.py
--- old/oslo.utils-3.36.4/oslo_utils/tests/test_eventletutils.py 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo_utils/tests/test_eventletutils.py 2019-02-28 19:04:16.000000000 +0100
@@ -15,6 +15,8 @@
import threading
import warnings
+import eventlet
+from eventlet import greenthread
import mock
from oslotest import base as test_base
import six
@@ -128,7 +130,7 @@
with mock.patch('oslo_utils.eventletutils.is_monkey_patched',
return_value=True):
e_event = eventletutils.Event()
- self.assertIsInstance(e_event, eventletutils._Event)
+ self.assertIsInstance(e_event, eventletutils.EventletEvent)
t_event = eventletutils.Event()
if six.PY3:
@@ -144,9 +146,67 @@
self.assertTrue(hasattr(e_event, method))
# Ensure set() allows multiple invocations, same as in
- # threading implementation. Must call reset on underlying
- # Event before reusing it
+ # threading implementation.
e_event.set()
- self.assertEqual(0, mock_eventlet.event.Event().reset.call_count)
+ self.assertTrue(e_event.isSet())
e_event.set()
- self.assertEqual(1, mock_eventlet.event.Event().reset.call_count)
+ self.assertTrue(e_event.isSet())
+
+ def test_event_no_timeout(self):
+ event = eventletutils.EventletEvent()
+
+ def thread_a():
+ self.assertTrue(event.wait())
+
+ a = greenthread.spawn(thread_a)
+
+ with eventlet.timeout.Timeout(0.5, False):
+ a.wait()
+ self.fail('wait() timed out')
+
+ def test_event_race(self):
+ event = eventletutils.EventletEvent()
+
+ def thread_a():
+ self.assertTrue(event.wait(2))
+
+ a = greenthread.spawn(thread_a)
+
+ def thread_b():
+ eventlet.sleep(0.1)
+ event.clear()
+ event.set()
+ a.wait()
+
+ b = greenthread.spawn(thread_b)
+ with eventlet.timeout.Timeout(0.5):
+ b.wait()
+
+ def test_event_clear_timeout(self):
+ event = eventletutils.EventletEvent()
+
+ def thread_a():
+ self.assertFalse(event.wait(0.5))
+
+ a = greenthread.spawn(thread_a)
+
+ def thread_b():
+ eventlet.sleep(0.1)
+ event.clear()
+ eventlet.sleep(0.1)
+ event.clear()
+ a.wait()
+
+ b = greenthread.spawn(thread_b)
+ with eventlet.timeout.Timeout(0.7):
+ b.wait()
+
+ @mock.patch('oslo_utils.eventletutils._eventlet.event.Event')
+ def test_event_clear_already_sent(self, mock_event):
+ old_event = mock.Mock()
+ new_event = mock.Mock()
+ mock_event.side_effect = [old_event, new_event]
+ event = eventletutils.EventletEvent()
+ event.set()
+ event.clear()
+ self.assertEqual(1, old_event.send.call_count)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/tests/test_excutils.py new/oslo.utils-3.40.3/oslo_utils/tests/test_excutils.py
--- old/oslo.utils-3.36.4/oslo_utils/tests/test_excutils.py 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo_utils/tests/test_excutils.py 2019-02-28 19:04:16.000000000 +0100
@@ -13,8 +13,8 @@
# under the License.
import logging
-import time
+import fixtures
import mock
from oslotest import base as test_base
from oslotest import moxstubout
@@ -170,7 +170,6 @@
super(ForeverRetryUncaughtExceptionsTest, self).setUp()
moxfixture = self.useFixture(moxstubout.MoxStubout())
self.mox = moxfixture.mox
- self.stubs = moxfixture.stubs
@excutils.forever_retry_uncaught_exceptions
def exception_generator(self):
@@ -186,7 +185,10 @@
pass
def exc_retrier_common_start(self):
- self.stubs.Set(time, 'sleep', self.my_time_sleep)
+ patch_time = fixtures.MockPatch(
+ 'time.sleep', self.my_time_sleep)
+ self.useFixture(patch_time)
+
self.mox.StubOutWithMock(logging, 'exception')
self.mox.StubOutWithMock(timeutils, 'now',
use_mock_anything=True)
@@ -211,7 +213,6 @@
self.exception_to_raise().AndReturn(None)
self.mox.ReplayAll()
self.exception_generator()
- self.addCleanup(self.stubs.UnsetAll)
def test_exc_retrier_1exc_gives_1log(self):
self.exc_retrier_common_start()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/tests/test_fixture.py new/oslo.utils-3.40.3/oslo_utils/tests/test_fixture.py
--- old/oslo.utils-3.36.4/oslo_utils/tests/test_fixture.py 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo_utils/tests/test_fixture.py 2019-02-28 19:04:16.000000000 +0100
@@ -17,9 +17,12 @@
import datetime
from oslotest import base as test_base
+import six
from oslo_utils import fixture
+from oslo_utils.fixture import uuidsentinel as uuids
from oslo_utils import timeutils
+from oslo_utils import uuidutils
class TimeFixtureTest(test_base.BaseTestCase):
@@ -61,3 +64,21 @@
time_fixture.advance_time_seconds(2)
expected_time = datetime.datetime(2015, 1, 2, 3, 4, 8, 7)
self.assertEqual(expected_time, timeutils.utcnow())
+
+
+class UUIDSentinelsTest(test_base.BaseTestCase):
+
+ def test_different_sentinel(self):
+ uuid1 = uuids.foobar
+ uuid2 = uuids.barfoo
+ self.assertNotEqual(uuid1, uuid2)
+
+ def test_returns_uuid(self):
+ self.assertTrue(uuidutils.is_uuid_like(uuids.foo))
+
+ def test_returns_string(self):
+ self.assertIsInstance(uuids.foo, str)
+
+ def test_with_underline_prefix(self):
+ ex = self.assertRaises(ValueError, getattr, uuids, '_foo')
+ self.assertIn("Sentinels must not start with _", six.text_type(ex))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/tests/test_strutils.py new/oslo.utils-3.40.3/oslo_utils/tests/test_strutils.py
--- old/oslo.utils-3.36.4/oslo_utils/tests/test_strutils.py 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo_utils/tests/test_strutils.py 2019-02-28 19:04:16.000000000 +0100
@@ -15,6 +15,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import collections
import copy
import math
@@ -613,6 +614,31 @@
self.assertEqual(expected, strutils.mask_password(payload))
+class TestMapping(collections.Mapping):
+ """Test class for non-dict mappings"""
+ def __init__(self):
+ super(TestMapping, self).__init__()
+ self.data = {'password': 'shhh',
+ 'foo': 'bar',
+ }
+
+ def __getitem__(self, key):
+ return self.data[key]
+
+ def __iter__(self):
+ return self.data.__iter__()
+
+ def __len__(self):
+ return len(self.data)
+
+
+class NestedMapping(TestMapping):
+ """Test class that contains an instance of TestMapping"""
+ def __init__(self):
+ super(NestedMapping, self).__init__()
+ self.data = {'nested': TestMapping()}
+
+
class MaskDictionaryPasswordTestCase(test_base.BaseTestCase):
def test_dictionary(self):
@@ -696,6 +722,21 @@
strutils.mask_dict_password(payload)
self.assertEqual(pristine, payload)
+ def test_non_dict(self):
+ expected = {'password': '***',
+ 'foo': 'bar',
+ }
+ payload = TestMapping()
+ self.assertEqual(expected, strutils.mask_dict_password(payload))
+
+ def test_nested_non_dict(self):
+ expected = {'nested': {'password': '***',
+ 'foo': 'bar',
+ }
+ }
+ payload = NestedMapping()
+ self.assertEqual(expected, strutils.mask_dict_password(payload))
+
class IsIntLikeTestCase(test_base.BaseTestCase):
def test_is_int_like_true(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/oslo_utils/timeutils.py new/oslo.utils-3.40.3/oslo_utils/timeutils.py
--- old/oslo.utils-3.36.4/oslo_utils/timeutils.py 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/oslo_utils/timeutils.py 2019-02-28 19:04:16.000000000 +0100
@@ -24,12 +24,16 @@
from debtcollector import removals
import iso8601
-from monotonic import monotonic as now # noqa
import pytz
import six
from oslo_utils import reflection
+if hasattr(time, 'monotonic'):
+ now = time.monotonic
+else:
+ from monotonic import monotonic as now # noqa
+
# ISO 8601 extended time format with microseconds
_ISO8601_TIME_FORMAT_SUBSECOND = '%Y-%m-%dT%H:%M:%S.%f'
_ISO8601_TIME_FORMAT = '%Y-%m-%dT%H:%M:%S'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/releasenotes/source/index.rst new/oslo.utils-3.40.3/releasenotes/source/index.rst
--- old/oslo.utils-3.36.4/releasenotes/source/index.rst 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/releasenotes/source/index.rst 2019-02-28 19:04:16.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/releasenotes/source/rocky.rst new/oslo.utils-3.40.3/releasenotes/source/rocky.rst
--- old/oslo.utils-3.36.4/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.utils-3.40.3/releasenotes/source/rocky.rst 2019-02-28 19:04:16.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/requirements.txt new/oslo.utils-3.40.3/requirements.txt
--- old/oslo.utils-3.36.4/requirements.txt 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/requirements.txt 2019-02-28 19:04:16.000000000 +0100
@@ -12,7 +12,7 @@
funcsigs>=1.0.0;python_version=='2.7' or python_version=='2.6' # Apache-2.0
iso8601>=0.1.11 # MIT
oslo.i18n>=3.15.3 # Apache-2.0
-monotonic>=0.6 # Apache-2.0
+monotonic>=0.6;python_version<'3.3' # Apache-2.0
pytz>=2013.6 # MIT
netaddr>=0.7.18 # BSD
netifaces>=0.10.4 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/setup.cfg new/oslo.utils-3.40.3/setup.cfg
--- old/oslo.utils-3.36.4/setup.cfg 2018-07-20 03:11:33.000000000 +0200
+++ new/oslo.utils-3.40.3/setup.cfg 2019-02-28 19:05:42.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.utils/latest/
classifier =
Environment :: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/test-requirements.txt new/oslo.utils-3.40.3/test-requirements.txt
--- old/oslo.utils-3.36.4/test-requirements.txt 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/test-requirements.txt 2019-02-28 19:04:16.000000000 +0100
@@ -2,8 +2,9 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
+eventlet>=0.18.2,!=0.18.3,!=0.20.1,!=0.21.0,!=0.23.0 # MIT
fixtures>=3.0.0 # Apache-2.0/BSD
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.utils-3.36.4/tox.ini new/oslo.utils-3.40.3/tox.ini
--- old/oslo.utils-3.36.4/tox.ini 2018-07-20 03:08:41.000000000 +0200
+++ new/oslo.utils-3.40.3/tox.ini 2019-02-28 19:04:16.000000000 +0100
@@ -41,7 +41,8 @@
commands = bandit -r oslo_utils -x tests -n5
[flake8]
-ignore = E123,H405
+# E731 skipped as assign a lambda expression
+ignore = E123,E731,H405
show-source = True
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,__init__.py
1
0
Hello community,
here is the log from the commit of package python-oslo.service for openSUSE:Factory checked in at 2019-05-03 22:42:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.service (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.service.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.service"
Fri May 3 22:42:45 2019 rev:14 rq:692866 version:1.38.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.service/python-oslo.service.changes 2018-11-29 23:01:04.483456542 +0100
+++ /work/SRC/openSUSE:Factory/.python-oslo.service.new.5148/python-oslo.service.changes 2019-05-03 22:42:46.939286405 +0200
@@ -1,0 +2,44 @@
+Mon Apr 8 11:46:55 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.38.0
+ - Bump oslo.utils lower constraint to 3.40.2
+ - Add better timer APIs to ThreadGroup
+ - Update mailinglist from dev to discuss
+ - Use template for lower-constraints
+ - Stop asserting on Eventlet internals
+ - import zuul job settings from project-config
+ - Use SleepFixture in looping call test suite
+ - Always build universal wheels
+ - Update reno for stable/rocky
+ - Add stop_on_exception to TG timers
+ - add python 3.6 unit test job
+ - Avoid eventlet_backdoor listing on same port
+ - Skips signal handling on Windows
+ - add lib-forward-testing-python3 test job
+ - Fix stop of loopingcall
+ - Ensure connection is active in graceful shutdown tests
+ - Deprecate the ThreadGroup.cancel() API
+ - Use eventletutils Event class
+ - Limit monotonic to py2
+ - Update oslo.service to require yappi 1.0 or newer
+ - Update hacking version
+ - Fixture to mock loopingcall wait()
+ - Clean up .gitignore references to personal tools
+ - Use eventlet Event for loopingcall events
+ - Actually test child SIGHUP signal
+ - Profile Oslo Service processes
+ - Document the threadgroup module
+ - Restore correct signal handling in Python3
+ - add python 3.7 unit test job
+
+-------------------------------------------------------------------
+Wed Feb 6 14:58:36 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.31.8
+ - Stop asserting on Eventlet internals
+ - Use eventlet Event for loopingcall events
+ - Restore correct signal handling in Python3
+ - Maintain private interface for loopingcall._ThreadingEvent
+ - Fix stop of loopingcall
+
+-------------------------------------------------------------------
Old:
----
oslo.service-1.31.5.tar.gz
New:
----
oslo.service-1.38.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.service.spec ++++++
--- /var/tmp/diff_new_pack.WubMVI/_old 2019-05-03 22:42:47.295287154 +0200
+++ /var/tmp/diff_new_pack.WubMVI/_new 2019-05-03 22:42:47.299287163 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.service
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,13 +20,13 @@
%global rdo 1
%endif
Name: python-oslo.service
-Version: 1.31.5
+Version: 1.38.0
Release: 0
Summary: OpenStack oslo.service library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.service
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.service/oslo.service-…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.service/oslo.service-…
BuildRequires: openstack-macros
BuildRequires: procps
BuildRequires: python-devel
@@ -35,53 +35,55 @@
BuildRequires: python2-Routes >= 2.3.1
BuildRequires: python2-WebOb >= 1.7.1
BuildRequires: python2-eventlet >= 0.18.2
-BuildRequires: python2-fixtures
+BuildRequires: python2-fixtures >= 3.0.0
BuildRequires: python2-greenlet >= 0.4.10
BuildRequires: python2-mock
-BuildRequires: python2-monotonic >= 0.6
BuildRequires: python2-oslo.concurrency >= 3.25.0
BuildRequires: python2-oslo.config >= 5.1.0
BuildRequires: python2-oslo.i18n >= 3.15.3
BuildRequires: python2-oslo.log >= 3.36.0
-BuildRequires: python2-oslo.utils >= 3.33.0
+BuildRequires: python2-oslo.utils >= 3.40.2
BuildRequires: python2-oslotest
BuildRequires: python2-pbr
BuildRequires: python2-requests
BuildRequires: python2-six >= 1.10.0
BuildRequires: python2-stestr
+BuildRequires: python2-yappi
BuildRequires: python3-Paste >= 2.0.2
BuildRequires: python3-PasteDeploy >= 1.5.0
BuildRequires: python3-Routes >= 2.3.1
BuildRequires: python3-WebOb >= 1.7.1
BuildRequires: python3-devel
BuildRequires: python3-eventlet >= 0.18.2
-BuildRequires: python3-fixtures
+BuildRequires: python3-fixtures >= 3.0.0
BuildRequires: python3-greenlet >= 0.4.10
BuildRequires: python3-mock
-BuildRequires: python3-monotonic >= 0.6
BuildRequires: python3-oslo.concurrency >= 3.25.0
BuildRequires: python3-oslo.config >= 5.1.0
BuildRequires: python3-oslo.i18n >= 3.15.3
BuildRequires: python3-oslo.log >= 3.36.0
-BuildRequires: python3-oslo.utils >= 3.33.0
+BuildRequires: python3-oslo.utils >= 3.40.2
BuildRequires: python3-oslotest
BuildRequires: python3-pbr
BuildRequires: python3-requests
BuildRequires: python3-six >= 1.10.0
BuildRequires: python3-stestr
+BuildRequires: python3-yappi
Requires: python-Paste >= 2.0.2
Requires: python-PasteDeploy >= 1.5.0
Requires: python-Routes >= 2.3.1
Requires: python-WebOb >= 1.7.1
+Requires: python-debtcollector >= 1.2.0
Requires: python-eventlet >= 0.18.2
+Requires: python-fixtures >= 3.0.0
Requires: python-greenlet >= 0.4.10
-Requires: python-monotonic >= 0.6
Requires: python-oslo.concurrency >= 3.25.0
Requires: python-oslo.config >= 5.1.0
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.log >= 3.36.0
-Requires: python-oslo.utils >= 3.33.0
+Requires: python-oslo.utils >= 3.40.2
Requires: python-six >= 1.10.0
+Requires: python-yappi
BuildArch: noarch
%python_subpackages
@@ -105,9 +107,8 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n oslo.service-1.31.5
+%autosetup -p1 -n oslo.service-1.38.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.WubMVI/_old 2019-05-03 22:42:47.319287205 +0200
+++ /var/tmp/diff_new_pack.WubMVI/_new 2019-05-03 22:42:47.319287205 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.service.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.service/stable/rocky/requi…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.service/stable/stein/requi…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.service</param>
</service>
++++++ oslo.service-1.31.5.tar.gz -> oslo.service-1.38.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/.zuul.yaml new/oslo.service-1.38.0/.zuul.yaml
--- old/oslo.service-1.31.5/.zuul.yaml 2018-09-25 21:44:54.000000000 +0200
+++ new/oslo.service-1.38.0/.zuul.yaml 2019-02-26 01:07:10.000000000 +0100
@@ -1,15 +1,13 @@
- project:
templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
- openstack-python-jobs
- openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
- publish-openstack-docs-pti
- - check-requirements
- - lib-forward-testing
- release-notes-jobs-python3
- - periodic-stable-jobs
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/AUTHORS new/oslo.service-1.38.0/AUTHORS
--- old/oslo.service-1.31.5/AUTHORS 2018-09-25 21:47:27.000000000 +0200
+++ new/oslo.service-1.38.0/AUTHORS 2019-02-26 01:09:41.000000000 +0100
@@ -40,15 +40,18 @@
Doug Hellmann <doug.hellmann(a)dreamhost.com>
Doug Hellmann <doug(a)doughellmann.com>
Duan Jiong <jduan(a)fiberhome.com>
+Duc Truong <dtruong(a)blizzard.com>
Elena Ezhova <eezhova(a)mirantis.com>
Eoghan Glynn <eglynn(a)redhat.com>
Eric Brown <browne(a)vmware.com>
+Eric Fried <efried(a)us.ibm.com>
Eric Guo <eric.guo(a)easystack.cn>
Eric Windisch <eric(a)cloudscaling.com>
Fengqian.Gao <fengqian.gao(a)intel.com>
Flavio Percoco <flaper87(a)gmail.com>
Gary Kotton <gkotton(a)vmware.com>
Hengqing Hu <hudayou(a)hotmail.com>
+Hervé Beraud <hberaud(a)redhat.com>
Ian Wienand <iwienand(a)redhat.com>
Ihar Hrachyshka <ihrachys(a)redhat.com>
Ilya Shakhat <ishakhat(a)mirantis.com>
@@ -78,6 +81,7 @@
Maru Newby <marun(a)redhat.com>
Matt Riedemann <mriedem(a)us.ibm.com>
Matthew Treinish <treinish(a)linux.vnet.ibm.com>
+Michael Johnson <johnsomor(a)gmail.com>
Michael Still <mikal(a)stillhq.com>
Mitsuru Kanabuchi <kanabuchi.mitsuru(a)po.ntts.co.jp>
Monty Taylor <mordred(a)inaugust.com>
@@ -94,6 +98,7 @@
Sergey Kraynev <skraynev(a)mirantis.com>
Sergey Lukjanov <slukjanov(a)mirantis.com>
Sergey Vilgelm <sergey(a)vilgelm.info>
+Slawek Kaplonski <skaplons(a)redhat.com>
Soren Hansen <soren(a)linux2go.dk>
Stephen Finucane <sfinucan(a)redhat.com>
Steve Martinelli <stevemar(a)ca.ibm.com>
@@ -111,8 +116,9 @@
Wenzhi Yu <wenzhi_yu(a)163.com>
Zane Bitter <zbitter(a)redhat.com>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
+ZhijunWei <wzj334965317(a)outlook.com>
+ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
apporc <appleorchard2000(a)gmail.com>
fujioka yuuichi <fujioka-yuuichi(a)zx.mxh.nes.nec.co.jp>
gecong1973 <ge.cong(a)zte.com.cn>
@@ -124,11 +130,11 @@
liyingjun <yingjun.li(a)kylin-cloud.com>
melanie witt <melwittt(a)gmail.com>
melissaml <ma.lei(a)99cloud.net>
-qingszhao <zhao.daqing(a)99cloud.net>
ravikumar-venkatesan <ravikumar.venkatesan(a)hp.com>
ricolin <rico.lin(a)easystack.cn>
sonu.kumar <sonu.kumar(a)nectechnologies.in>
stanzgy <stanzgy(a)gmail.com>
+venkata anil <anilvenkata(a)redhat.com>
venkatamahesh <venkatamaheshkotha(a)gmail.com>
xhzhf <guoyongxhzhf(a)163.com>
yan.haifeng <yanheven(a)qq.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/ChangeLog new/oslo.service-1.38.0/ChangeLog
--- old/oslo.service-1.31.5/ChangeLog 2018-09-25 21:47:27.000000000 +0200
+++ new/oslo.service-1.38.0/ChangeLog 2019-02-26 01:09:41.000000000 +0100
@@ -1,14 +1,62 @@
CHANGES
=======
-1.31.5
+1.38.0
------
-* Add Python 3.5 jobs
+* Update oslo.service to require yappi 1.0 or newer
+* add python 3.7 unit test job
+* Update hacking version
+
+1.37.0
+------
+
+* Bump oslo.utils lower constraint to 3.40.2
+
+1.36.0
+------
+
+* Profile Oslo Service processes
+* Use eventletutils Event class
+* Avoid eventlet\_backdoor listing on same port
+
+1.35.0
+------
+
+* Use template for lower-constraints
+* Deprecate the ThreadGroup.cancel() API
+* Document the threadgroup module
+* Actually test child SIGHUP signal
+* Restore correct signal handling in Python3
+* Add stop\_on\_exception to TG timers
+* Add better timer APIs to ThreadGroup
+* Update mailinglist from dev to discuss
+* Use SleepFixture in looping call test suite
+
+1.33.0
+------
+
+* Fixture to mock loopingcall wait()
+* Limit monotonic to py2
+
+1.32.1
+------
+
+* Fix stop of loopingcall
+* Use eventlet Event for loopingcall events
+* Clean up .gitignore references to personal tools
+* Always build universal wheels
+
+1.32.0
+------
+
+* Ensure connection is active in graceful shutdown tests
+* Stop asserting on Eventlet internals
* Skips signal handling on Windows
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
* import zuul job settings from project-config
-* Update UPPER\_CONSTRAINTS\_FILE for stable/rocky
-* Update .gitreview for stable/rocky
+* Update reno for stable/rocky
1.31.3
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/HACKING.rst new/oslo.service-1.38.0/HACKING.rst
--- old/oslo.service-1.31.5/HACKING.rst 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/HACKING.rst 2019-02-26 01:07:10.000000000 +0100
@@ -1,4 +1,4 @@
oslo.service Style Commandments
-======================================================
+===============================
Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/PKG-INFO new/oslo.service-1.38.0/PKG-INFO
--- old/oslo.service-1.31.5/PKG-INFO 2018-09-25 21:47:28.000000000 +0200
+++ new/oslo.service-1.38.0/PKG-INFO 2019-02-26 01:09:41.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.service
-Version: 1.31.5
+Version: 1.38.0
Summary: oslo.service library
Home-page: https://docs.openstack.org/oslo.service/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/RELEASENOTES.rst new/oslo.service-1.38.0/RELEASENOTES.rst
--- old/oslo.service-1.31.5/RELEASENOTES.rst 2018-09-25 21:47:28.000000000 +0200
+++ new/oslo.service-1.38.0/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-============
-oslo.service
-============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/doc/source/conf.py new/oslo.service-1.38.0/doc/source/conf.py
--- old/oslo.service-1.31.5/doc/source/conf.py 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/doc/source/conf.py 2019-02-26 01:07:10.000000000 +0100
@@ -22,6 +22,7 @@
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = [
'sphinx.ext.autodoc',
+ 'sphinx.ext.todo',
'openstackdocstheme',
'oslo_config.sphinxext',
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/doc/source/reference/fixture.rst new/oslo.service-1.38.0/doc/source/reference/fixture.rst
--- old/oslo.service-1.31.5/doc/source/reference/fixture.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.service-1.38.0/doc/source/reference/fixture.rst 2019-02-26 01:07:10.000000000 +0100
@@ -0,0 +1,8 @@
+=========
+ fixture
+=========
+
+.. automodule:: oslo_service.fixture
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/doc/source/reference/index.rst new/oslo.service-1.38.0/doc/source/reference/index.rst
--- old/oslo.service-1.31.5/doc/source/reference/index.rst 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/doc/source/reference/index.rst 2019-02-26 01:07:10.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
eventlet_backdoor
+ fixture
loopingcall
periodic_task
service
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/doc/source/user/usage.rst new/oslo.service-1.38.0/doc/source/user/usage.rst
--- old/oslo.service-1.31.5/doc/source/user/usage.rst 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/doc/source/user/usage.rst 2019-02-26 01:07:10.000000000 +0100
@@ -179,3 +179,40 @@
logging.setup(cfg.CONF, 'foo')
+Profiling
+~~~~~~~~~
+
+Processes spawned through oslo_service.service can be profiled (function
+calltrace) through eventlet_backdoor module. Service has to configure
+backdoor_port option to enable it's workers to listen on TCP ports.
+Then user can send "prof()" command to capture worker processes function
+calltrace.
+
+1) To start profiling send "prof()" command on processes listening port
+
+2) To stop profiling and capture "pstat" calltrace to a file, send prof
+ command with filename as argument i.e "prof(filename)"
+ on worker processes listening port. Stats file (in pstat format) with
+ user provided filename by adding .prof as suffix will be generated
+ in temp directory.
+
+For example, to profile neutron server process (which is listening on
+port 8002 configured through backdoor_port option),
+
+.. code-block:: bash
+
+ $ echo "prof()" | nc localhost 8002
+ $ neutron net-create n1; neutron port-create --name p1 n1;
+ $ neutron port-delete p1; neutron port-delete p1
+ $ echo "prof('neutron')" | nc localhost 8002
+
+
+This will generate "/tmp/neutron.prof" as stats file. Later user can print
+the stats from the trace file like below
+
+.. code-block:: python
+
+ import pstats
+
+ stats = pstats.Stats('/tmp/neutron.prof')
+ stats.print_stats()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/lower-constraints.txt new/oslo.service-1.38.0/lower-constraints.txt
--- old/oslo.service-1.31.5/lower-constraints.txt 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/lower-constraints.txt 2019-02-26 01:07:16.000000000 +0100
@@ -38,7 +38,7 @@
oslo.i18n==3.15.3
oslo.log==3.36.0
oslo.serialization==2.18.0
-oslo.utils==3.33.0
+oslo.utils==3.40.2
oslotest==3.2.0
Paste==2.0.2
PasteDeploy==1.5.0
@@ -72,3 +72,4 @@
unittest2==1.1.0
WebOb==1.7.1
wrapt==1.7.0
+Yappi==1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo.service.egg-info/PKG-INFO new/oslo.service-1.38.0/oslo.service.egg-info/PKG-INFO
--- old/oslo.service-1.31.5/oslo.service.egg-info/PKG-INFO 2018-09-25 21:47:27.000000000 +0200
+++ new/oslo.service-1.38.0/oslo.service.egg-info/PKG-INFO 2019-02-26 01:09:41.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.service
-Version: 1.31.5
+Version: 1.38.0
Summary: oslo.service library
Home-page: https://docs.openstack.org/oslo.service/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo.service.egg-info/SOURCES.txt new/oslo.service-1.38.0/oslo.service.egg-info/SOURCES.txt
--- old/oslo.service-1.31.5/oslo.service.egg-info/SOURCES.txt 2018-09-25 21:47:28.000000000 +0200
+++ new/oslo.service-1.38.0/oslo.service.egg-info/SOURCES.txt 2019-02-26 01:09:41.000000000 +0100
@@ -21,6 +21,7 @@
doc/source/contributor/index.rst
doc/source/install/index.rst
doc/source/reference/eventlet_backdoor.rst
+doc/source/reference/fixture.rst
doc/source/reference/index.rst
doc/source/reference/loopingcall.rst
doc/source/reference/periodic_task.rst
@@ -43,6 +44,7 @@
oslo_service/_i18n.py
oslo_service/_options.py
oslo_service/eventlet_backdoor.py
+oslo_service/fixture.py
oslo_service/loopingcall.py
oslo_service/periodic_task.py
oslo_service/service.py
@@ -56,6 +58,7 @@
oslo_service/tests/base.py
oslo_service/tests/eventlet_service.py
oslo_service/tests/test_eventlet_backdoor.py
+oslo_service/tests/test_fixture.py
oslo_service/tests/test_loopingcall.py
oslo_service/tests/test_periodic.py
oslo_service/tests/test_service.py
@@ -69,11 +72,16 @@
oslo_service/tests/ssl_cert/privatekey.key
releasenotes/notes/add-timeout-looping-call-5cc396b75597c3c2.yaml
releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml
+releasenotes/notes/profile-worker-5d3fd0f0251d62b8.yaml
+releasenotes/notes/threadgroup-cancel-bd89d72f383a3d9b.yaml
+releasenotes/notes/timer-args-f578c8f9d08b217d.yaml
+releasenotes/notes/timer-stop_on_exception-9f21d7c4d6d1b0d9.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo.service.egg-info/pbr.json new/oslo.service-1.38.0/oslo.service.egg-info/pbr.json
--- old/oslo.service-1.31.5/oslo.service.egg-info/pbr.json 2018-09-25 21:47:27.000000000 +0200
+++ new/oslo.service-1.38.0/oslo.service.egg-info/pbr.json 2019-02-26 01:09:41.000000000 +0100
@@ -1 +1 @@
-{"git_version": "67a8a8c", "is_release": true}
\ No newline at end of file
+{"git_version": "ca6f839", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo.service.egg-info/requires.txt new/oslo.service-1.38.0/oslo.service.egg-info/requires.txt
--- old/oslo.service-1.31.5/oslo.service.egg-info/requires.txt 2018-09-25 21:47:27.000000000 +0200
+++ new/oslo.service-1.38.0/oslo.service.egg-info/requires.txt 2019-02-26 01:09:41.000000000 +0100
@@ -1,8 +1,9 @@
WebOb>=1.7.1
+debtcollector>=1.2.0
eventlet!=0.18.3,!=0.20.1,>=0.18.2
+fixtures>=3.0.0
greenlet>=0.4.10
-monotonic>=0.6
-oslo.utils>=3.33.0
+oslo.utils>=3.40.2
oslo.concurrency>=3.25.0
oslo.config>=5.1.0
oslo.log>=3.36.0
@@ -11,3 +12,7 @@
PasteDeploy>=1.5.0
Routes>=2.3.1
Paste>=2.0.2
+Yappi>=1.0
+
+[:(python_version<'3.3')]
+monotonic>=0.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/__init__.py new/oslo.service-1.38.0/oslo_service/__init__.py
--- old/oslo.service-1.31.5/oslo_service/__init__.py 2018-09-25 21:44:54.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/__init__.py 2019-02-26 01:07:10.000000000 +0100
@@ -13,7 +13,6 @@
import os
import eventlet.patcher
-import monotonic
from oslo_log import log as logging
time = eventlet.patcher.original('time')
@@ -21,10 +20,13 @@
LOG = logging.getLogger(__name__)
+# TODO(bnemec): When we have a minimum dependency on a version of eventlet
+# that uses monotonic by default, remove this monkey patching.
if hasattr(time, 'monotonic'):
# Use builtin monotonic clock, Python 3.3+
_monotonic = time.monotonic
else:
+ import monotonic
_monotonic = monotonic.monotonic
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/eventlet_backdoor.py new/oslo.service-1.38.0/oslo_service/eventlet_backdoor.py
--- old/oslo.service-1.31.5/oslo_service/eventlet_backdoor.py 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/eventlet_backdoor.py 2019-02-26 01:07:10.000000000 +0100
@@ -21,13 +21,15 @@
import logging
import os
import pprint
-import socket
import sys
+import tempfile
import traceback
import eventlet.backdoor
import greenlet
+import yappi
+from eventlet.green import socket
from oslo_service._i18n import _
from oslo_service import _options
@@ -89,6 +91,30 @@
return [o for o in gc.get_objects() if isinstance(o, t)]
+def _capture_profile(fname=''):
+ if not fname:
+ yappi.set_clock_type('cpu')
+ # We need to set context to greenlet to profile greenlets
+ # https://bitbucket.org/sumerc/yappi/pull-requests/3
+ yappi.set_context_id_callback(
+ lambda: id(greenlet.getcurrent()))
+ yappi.set_context_name_callback(
+ lambda: greenlet.getcurrent().__class__.__name__)
+ yappi.start()
+ else:
+ yappi.stop()
+ stats = yappi.get_func_stats()
+ # User should provide filename. This file with a suffix .prof
+ # will be created in temp directory.
+ try:
+ stats_file = os.path.join(tempfile.gettempdir(), fname + '.prof')
+ stats.save(stats_file, "pstat")
+ except Exception as e:
+ print("Error while saving the trace stats ", str(e))
+ finally:
+ yappi.clear_stats()
+
+
def _print_greenthreads(simple=True):
for i, gt in enumerate(_find_objects(greenlet.greenlet)):
print(i, gt)
@@ -121,11 +147,24 @@
port_range, ex, _options.help_for_backdoor_port)
-def _listen(host, start_port, end_port, listen_func):
+def _listen_func(host, port):
+ # eventlet is setting SO_REUSEPORT by default from v0.20.
+ # But we can configure it by passing reuse_port argument
+ # from v0.22
+ try:
+ return eventlet.listen((host, port), reuse_port=False)
+ except TypeError:
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.bind((host, port))
+ sock.listen(50)
+ return sock
+
+
+def _listen(host, start_port, end_port):
try_port = start_port
while True:
try:
- return listen_func((host, try_port))
+ return _listen_func(host, try_port)
except socket.error as exc:
if (exc.errno != errno.EADDRINUSE or
try_port >= end_port):
@@ -162,6 +201,7 @@
'fo': _find_objects,
'pgt': _print_greenthreads,
'pnt': _print_nativethreads,
+ 'prof': _capture_profile,
}
if conf.backdoor_port is None and conf.backdoor_socket is None:
@@ -169,7 +209,7 @@
if conf.backdoor_socket is None:
start_port, end_port = _parse_port_range(str(conf.backdoor_port))
- sock = _listen('localhost', start_port, end_port, eventlet.listen)
+ sock = _listen('localhost', start_port, end_port)
# In the case of backdoor port being zero, a port number is assigned by
# listen(). In any case, pull the port number out here.
where_running = sock.getsockname()[1]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/fixture.py new/oslo.service-1.38.0/oslo_service/fixture.py
--- old/oslo.service-1.31.5/oslo_service/fixture.py 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.service-1.38.0/oslo_service/fixture.py 2019-02-26 01:07:10.000000000 +0100
@@ -0,0 +1,52 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import fixtures
+
+
+class SleepFixture(fixtures.Fixture):
+ """A fixture for mocking the ``wait()`` within :doc:`loopingcall` events.
+
+ This exists so test cases can exercise code that uses :doc:`loopingcall`
+ without actually incurring wall clock time for sleeping.
+
+ The mock for the ``wait()`` is accessible via the fixture's ``mock_wait``
+ attribute.
+
+ .. note:: It is not recommended to assert specific arguments (i.e. timeout
+ values) to the mock, as this relies on the internals of
+ :doc:`loopingcall` not changing.
+
+ .. todo:: Figure out a way to make an enforceable contract allowing
+ verification of timeout values.
+
+ Example usage::
+
+ from oslo.service import fixture
+ ...
+ class MyTest(...):
+ def setUp(self):
+ ...
+ self.sleepfx = self.useFixture(fixture.SleepFixture())
+ ...
+
+ def test_this(self):
+ ...
+ thing_that_hits_a_loopingcall()
+ ...
+ self.assertEqual(5, self.sleepfx.mock_wait.call_count)
+ ...
+ """
+ def _setUp(self):
+ # Provide access to the mock so that calls to it can be asserted
+ self.mock_wait = self.useFixture(fixtures.MockPatch(
+ 'oslo_utils.eventletutils.EventletEvent.wait')).mock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/loopingcall.py new/oslo.service-1.38.0/oslo_service/loopingcall.py
--- old/oslo.service-1.31.5/oslo_service/loopingcall.py 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/loopingcall.py 2019-02-26 01:07:10.000000000 +0100
@@ -17,7 +17,6 @@
import random
import sys
-import threading
import time
from eventlet import event
@@ -77,53 +76,6 @@
return func
-def _Event():
- if eventletutils.is_monkey_patched('thread'):
- return _ThreadingEvent()
- else:
- return _GreenEvent()
-
-
-class _ThreadingEvent(object):
- def __init__(self):
- self._abort = threading.Event()
-
- def is_running(self):
- return not self._abort.is_set()
-
- def clear(self):
- self._abort.clear()
-
- def wait(self, timeout):
- self._abort.wait(timeout)
-
- def stop(self):
- self._abort.set()
-
- def done(self):
- pass
-
-
-class _GreenEvent(object):
- def __init__(self):
- self._running = False
-
- def is_running(self):
- return self._running
-
- def clear(self):
- self._running = True
-
- def wait(self, timeout):
- greenthread.sleep(timeout)
-
- def stop(self):
- self._running = False
-
- def done(self):
- self._running = False
-
-
class LoopingCallBase(object):
_KIND = _("Unknown looping call")
@@ -136,24 +88,24 @@
self.f = f
self._thread = None
self.done = None
- self._event = _Event()
+ self._abort = eventletutils.EventletEvent()
@property
def _running(self):
- return self._event.is_running()
+ return not self._abort.is_set()
def stop(self):
- self._event.stop()
+ if self._running:
+ self._abort.set()
def wait(self):
return self.done.wait()
def _on_done(self, gt, *args, **kwargs):
self._thread = None
- self._event.done()
def _sleep(self, timeout):
- self._event.wait(timeout)
+ self._abort.wait(timeout)
def _start(self, idle_for, initial_delay=None, stop_on_exception=True):
"""Start the looping
@@ -171,13 +123,18 @@
if self._thread is not None:
raise RuntimeError(self._RUN_ONLY_ONE_MESSAGE)
self.done = event.Event()
- self._event.clear()
+ self._abort.clear()
self._thread = greenthread.spawn(
self._run_loop, idle_for,
initial_delay=initial_delay, stop_on_exception=stop_on_exception)
self._thread.link(self._on_done)
return self.done
+ # NOTE(bnemec): This is just a wrapper function we can mock so we aren't
+ # affected by other users of the StopWatch class.
+ def _elapsed(self, watch):
+ return watch.elapsed()
+
def _run_loop(self, idle_for_func,
initial_delay=None, stop_on_exception=True):
kind = self._KIND
@@ -194,7 +151,7 @@
watch.stop()
if not self._running:
break
- idle = idle_for_func(result, watch.elapsed())
+ idle = idle_for_func(result, self._elapsed(watch))
LOG.trace('%(kind)s %(func_name)r sleeping '
'for %(idle).02f seconds',
{'func_name': func_name, 'idle': idle,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/periodic_task.py new/oslo.service-1.38.0/oslo_service/periodic_task.py
--- old/oslo.service-1.31.5/oslo_service/periodic_task.py 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/periodic_task.py 2019-02-26 01:07:10.000000000 +0100
@@ -14,15 +14,17 @@
import copy
import logging
import random
-import time
-
-from monotonic import monotonic as now # noqa
-from oslo_utils import reflection
import six
+import time
from oslo_service._i18n import _
from oslo_service import _options
+from oslo_utils import reflection
+if hasattr(time, 'monotonic'):
+ now = time.monotonic
+else:
+ from monotonic import monotonic as now # noqa
LOG = logging.getLogger(__name__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/service.py new/oslo.service-1.38.0/oslo_service/service.py
--- old/oslo.service-1.31.5/oslo_service/service.py 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/service.py 2019-02-26 01:07:10.000000000 +0100
@@ -28,7 +28,6 @@
import logging
import os
import random
-import select
import signal
import six
import sys
@@ -140,8 +139,8 @@
self._ignore_signals = ('SIG_DFL', 'SIG_IGN')
self._signals_by_name = dict((name, getattr(signal, name))
for name in dir(signal)
- if name.startswith("SIG")
- and name not in self._ignore_signals)
+ if name.startswith("SIG") and
+ name not in self._ignore_signals)
self.signals_to_name = dict(
(sigval, name)
for (name, sigval) in self._signals_by_name.items())
@@ -204,8 +203,9 @@
For Python 3.5 and later, deal with the changes in PEP 475 that prevent
a signal from interrupting eventlet's call to poll() or sleep().
"""
+ select_module = eventlet.patcher.original('select')
self.__force_interrupt_on_signal = (sys.version_info >= (3, 5) and
- hasattr(select, 'poll'))
+ hasattr(select_module, 'poll'))
if self.__force_interrupt_on_signal:
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/tests/eventlet_service.py new/oslo.service-1.38.0/oslo_service/tests/eventlet_service.py
--- old/oslo.service-1.31.5/oslo_service/tests/eventlet_service.py 2018-09-25 21:44:54.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/tests/eventlet_service.py 2019-02-26 01:07:10.000000000 +0100
@@ -17,6 +17,7 @@
import socket
import sys
+import time
import eventlet.wsgi
import greenlet
@@ -122,10 +123,13 @@
pass
-def run(port_queue, workers=3):
+def run(port_queue, workers=3, process_time=0):
eventlet.patcher.monkey_patch()
def hi_app(environ, start_response):
+ # Some requests need to take time to process so the connection
+ # remains active.
+ time.sleep(process_time)
start_response('200 OK', [('Content-Type', 'application/json')])
yield 'hi'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/tests/test_eventlet_backdoor.py new/oslo.service-1.38.0/oslo_service/tests/test_eventlet_backdoor.py
--- old/oslo.service-1.31.5/oslo_service/tests/test_eventlet_backdoor.py 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/tests/test_eventlet_backdoor.py 2019-02-26 01:07:10.000000000 +0100
@@ -106,6 +106,14 @@
eventlet_backdoor.initialize_if_enabled, self.conf)
@mock.patch.object(eventlet, 'spawn')
+ def test_backdoor_port_range_inuse(self, spawn_mock):
+ self.config(backdoor_port='8800:8801')
+ port = eventlet_backdoor.initialize_if_enabled(self.conf)
+ self.assertEqual(8800, port)
+ port = eventlet_backdoor.initialize_if_enabled(self.conf)
+ self.assertEqual(8801, port)
+
+ @mock.patch.object(eventlet, 'spawn')
@mock.patch.object(eventlet, 'listen')
def test_backdoor_port_range(self, listen_mock, spawn_mock):
self.config(backdoor_port='8800:8899')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/tests/test_fixture.py new/oslo.service-1.38.0/oslo_service/tests/test_fixture.py
--- old/oslo.service-1.31.5/oslo_service/tests/test_fixture.py 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.service-1.38.0/oslo_service/tests/test_fixture.py 2019-02-26 01:07:10.000000000 +0100
@@ -0,0 +1,36 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import mock
+from oslotest import base as test_base
+
+from oslo_service import fixture
+from oslo_service import loopingcall
+
+
+class FixtureTestCase(test_base.BaseTestCase):
+ def setUp(self):
+ super(FixtureTestCase, self).setUp()
+ self.sleepfx = self.useFixture(fixture.SleepFixture())
+
+ def test_sleep_fixture(self):
+ @loopingcall.RetryDecorator(max_retry_count=3, inc_sleep_time=2,
+ exceptions=(ValueError,))
+ def retried_method():
+ raise ValueError("!")
+
+ self.assertRaises(ValueError, retried_method)
+ self.assertEqual(3, self.sleepfx.mock_wait.call_count)
+ # TODO(efried): This is cheating, and shouldn't be done by real callers
+ # yet - see todo in SleepFixture.
+ self.sleepfx.mock_wait.assert_has_calls(
+ [mock.call(x) for x in (2, 4, 6)])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/tests/test_loopingcall.py new/oslo.service-1.38.0/oslo_service/tests/test_loopingcall.py
--- old/oslo.service-1.31.5/oslo_service/tests/test_loopingcall.py 2018-09-25 21:44:54.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/tests/test_loopingcall.py 2019-02-26 01:07:10.000000000 +0100
@@ -18,11 +18,9 @@
from oslotest import base as test_base
import oslo_service
+from oslo_service import fixture
from oslo_service import loopingcall
-threading = eventlet.patcher.original('threading')
-time = eventlet.patcher.original('time')
-
class LoopingCallTestCase(test_base.BaseTestCase):
@@ -53,45 +51,6 @@
self.assertEqual(oslo_service._monotonic,
hub.clock)
- def test_eventlet_use_hub_override(self):
- ns = {}
-
- def task():
- try:
- self._test_eventlet_use_hub_override()
- except Exception as exc:
- ns['result'] = exc
- else:
- ns['result'] = 'ok'
-
- # test overriding the hub of in a new thread to not modify the hub
- # of the main thread
- thread = threading.Thread(target=task)
- thread.start()
- thread.join()
- self.assertEqual('ok', ns['result'])
-
- def _test_eventlet_use_hub_override(self):
- # Make sure that by default the
- # oslo_service.service_hub() kicks in
- old_clock = eventlet.hubs.get_hub().clock
- self.assertEqual(oslo_service._monotonic,
- old_clock)
-
- # eventlet will use time.monotonic() by default, same clock than
- # oslo.service_hub():
- # https://github.com/eventlet/eventlet/pull/303
- if not hasattr(time, 'monotonic'):
- # If anyone wants to override it
- try:
- eventlet.hubs.use_hub('poll')
- except Exception:
- eventlet.hubs.use_hub('selects')
-
- # then we get a new clock and the override works fine too!
- clock = eventlet.hubs.get_hub().clock
- self.assertNotEqual(old_clock, clock)
-
def test_return_false(self):
def _raise_it():
raise loopingcall.LoopingCallDone(False)
@@ -114,6 +73,7 @@
raise RuntimeError()
def test_do_not_stop_on_exception(self):
+ self.useFixture(fixture.SleepFixture())
self.num_runs = 2
timer = loopingcall.FixedIntervalLoopingCall(self._raise_and_then_done)
@@ -142,7 +102,18 @@
wait_ev.set()
timer.wait()
+ def test_no_double_stop(self):
+ def _raise_it():
+ raise loopingcall.LoopingCallDone(False)
+
+ timer = loopingcall.FixedIntervalLoopingCall(_raise_it)
+ timer.start(interval=0.5)
+
+ timer.stop()
+ timer.stop()
+
def test_repeat(self):
+ self.useFixture(fixture.SleepFixture())
self.num_runs = 2
timer = loopingcall.FixedIntervalLoopingCall(self._wait_for_zero)
@@ -151,23 +122,19 @@
def assertAlmostEqual(self, expected, actual, precision=7, message=None):
self.assertEqual(0, round(actual - expected, precision), message)
- @mock.patch('eventlet.greenthread.sleep')
- @mock.patch('oslo_utils.timeutils.now')
- def test_interval_adjustment(self, time_mock, sleep_mock):
+ @mock.patch('oslo_service.loopingcall.LoopingCallBase._sleep')
+ @mock.patch('oslo_service.loopingcall.LoopingCallBase._elapsed')
+ def test_interval_adjustment(self, elapsed_mock, sleep_mock):
"""Ensure the interval is adjusted to account for task duration."""
self.num_runs = 3
- now = 1234567890
second = 1
smidgen = 0.01
- time_mock.side_effect = [now, # restart
- now + second - smidgen, # end
- now, # restart
- now + second + second, # end
- now, # restart
- now + second + smidgen, # end
- now] # restart
+ elapsed_mock.side_effect = [second - smidgen,
+ second + second,
+ second + smidgen,
+ ]
timer = loopingcall.FixedIntervalLoopingCall(self._wait_for_zero)
timer.start(interval=1.01).wait()
@@ -250,6 +217,7 @@
raise RuntimeError()
def test_do_not_stop_on_exception(self):
+ self.useFixture(fixture.SleepFixture())
self.num_runs = 2
timer = loopingcall.DynamicLoopingCall(self._raise_and_then_done)
@@ -265,6 +233,7 @@
return sleep_for
def test_repeat(self):
+ self.useFixture(fixture.SleepFixture())
self.num_runs = 2
timer = loopingcall.DynamicLoopingCall(self._wait_for_zero)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/tests/test_service.py new/oslo.service-1.38.0/oslo_service/tests/test_service.py
--- old/oslo.service-1.31.5/oslo_service/tests/test_service.py 2018-09-25 21:44:54.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/tests/test_service.py 2019-02-26 01:07:10.000000000 +0100
@@ -227,7 +227,7 @@
os.kill(start_workers[0], signal.SIGHUP)
# Wait at most 5 seconds to respawn a worker
- cond = lambda: start_workers == self._get_workers()
+ cond = lambda: start_workers != self._get_workers()
timeout = 5
self._wait(cond, timeout)
@@ -478,17 +478,30 @@
signal_handler.clear()
@mock.patch('sys.version_info', (3, 5))
- @mock.patch.object(service, 'select', spec=[])
- def test_setup_signal_interruption_no_select_poll(self, mock_select):
+ def test_setup_signal_interruption_no_select_poll(self):
# NOTE(claudiub): SignalHandler is a singleton, which means that it
# might already be initialized. We need to clear to clear the cache
# in order to prevent race conditions between tests.
service.SignalHandler.__class__._instances.clear()
- signal_handler = service.SignalHandler()
+ with mock.patch('eventlet.patcher.original',
+ return_value=object()) as get_original:
+ signal_handler = service.SignalHandler()
+ get_original.assert_called_with('select')
self.addCleanup(service.SignalHandler.__class__._instances.clear)
self.assertFalse(
signal_handler._SignalHandler__force_interrupt_on_signal)
+ @mock.patch('sys.version_info', (3, 5))
+ def test_setup_signal_interruption_select_poll(self):
+ # NOTE(claudiub): SignalHandler is a singleton, which means that it
+ # might already be initialized. We need to clear to clear the cache
+ # in order to prevent race conditions between tests.
+ service.SignalHandler.__class__._instances.clear()
+ signal_handler = service.SignalHandler()
+ self.addCleanup(service.SignalHandler.__class__._instances.clear)
+ self.assertTrue(
+ signal_handler._SignalHandler__force_interrupt_on_signal)
+
@mock.patch('signal.alarm')
@mock.patch("os.kill")
@mock.patch("oslo_service.service.ProcessLauncher.stop")
@@ -625,13 +638,19 @@
def run_server(self):
queue = multiprocessing.Queue()
+ # NOTE(bnemec): process_time of 5 needs to be longer than the graceful
+ # shutdown timeout in the "exceeded" test below, but also needs to be
+ # shorter than the timeout in the regular graceful shutdown test.
proc = multiprocessing.Process(target=eventlet_service.run,
args=(queue,),
- kwargs={'workers': self.workers})
+ kwargs={'workers': self.workers,
+ 'process_time': 5})
proc.start()
port = queue.get()
conn = socket.create_connection(('127.0.0.1', port))
+ # Send request to make the connection active.
+ conn.sendall(b'GET / HTTP/1.1\r\nHost: localhost\r\n\r\n')
# NOTE(blk-u): The sleep shouldn't be necessary. There must be a bug in
# the server implementation where it takes some time to set up the
@@ -660,10 +679,14 @@
# connected.
os.kill(proc.pid, signal.SIGTERM)
- # server with graceful shutdown must wait forewer if
+ # server with graceful shutdown must wait forever if
# option graceful_shutdown_timeout is not specified.
- # we can not wait forever ... so 3 seconds are enough
- time.sleep(3)
+ # we can not wait forever ... so 1 second is enough.
+ # NOTE(bnemec): In newer versions of eventlet that drop idle
+ # connections, this needs to be long enough to allow the signal
+ # handler to fire but short enough that our request doesn't complete
+ # or the connection will be closed and the server will stop.
+ time.sleep(1)
self.assertTrue(proc.is_alive())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/tests/test_threadgroup.py new/oslo.service-1.38.0/oslo_service/tests/test_threadgroup.py
--- old/oslo.service-1.31.5/oslo_service/tests/test_threadgroup.py 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/tests/test_threadgroup.py 2019-02-26 01:07:10.000000000 +0100
@@ -49,6 +49,50 @@
self.assertEqual(('arg',), timer.args)
self.assertEqual({'kwarg': 'kwarg'}, timer.kw)
+ def test_add_dynamic_timer_args(self):
+ def foo(*args, **kwargs):
+ pass
+
+ self.tg.add_dynamic_timer_args(foo, ['arg'], {'kwarg': 'kwarg'},
+ initial_delay=1,
+ periodic_interval_max=2,
+ stop_on_exception=False)
+
+ self.assertEqual(1, len(self.tg.timers))
+
+ timer = self.tg.timers[0]
+ self.assertTrue(timer._running)
+ self.assertEqual(('arg',), timer.args)
+ self.assertEqual({'kwarg': 'kwarg'}, timer.kw)
+
+ def test_add_timer(self):
+ def foo(*args, **kwargs):
+ pass
+
+ self.tg.add_timer(1, foo, 1,
+ 'arg', kwarg='kwarg')
+
+ self.assertEqual(1, len(self.tg.timers))
+
+ timer = self.tg.timers[0]
+ self.assertTrue(timer._running)
+ self.assertEqual(('arg',), timer.args)
+ self.assertEqual({'kwarg': 'kwarg'}, timer.kw)
+
+ def test_add_timer_args(self):
+ def foo(*args, **kwargs):
+ pass
+
+ self.tg.add_timer_args(1, foo, ['arg'], {'kwarg': 'kwarg'},
+ initial_delay=1, stop_on_exception=False)
+
+ self.assertEqual(1, len(self.tg.timers))
+
+ timer = self.tg.timers[0]
+ self.assertTrue(timer._running)
+ self.assertEqual(('arg',), timer.args)
+ self.assertEqual({'kwarg': 'kwarg'}, timer.kw)
+
def test_stop_current_thread(self):
stop_event = event.Event()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/oslo_service/threadgroup.py new/oslo.service-1.38.0/oslo_service/threadgroup.py
--- old/oslo.service-1.31.5/oslo_service/threadgroup.py 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/oslo_service/threadgroup.py 2019-02-26 01:07:10.000000000 +0100
@@ -14,7 +14,9 @@
import logging
import threading
+import warnings
+from debtcollector import removals
import eventlet
from eventlet import greenpool
@@ -51,47 +53,187 @@
return self._ident
def stop(self):
+ """Kill the thread by raising GreenletExit within it."""
self.thread.kill()
def wait(self):
+ """Block until the thread completes and return the result."""
return self.thread.wait()
def link(self, func, *args, **kwargs):
+ """Schedule a function to be run upon completion of the thread."""
self.thread.link(func, *args, **kwargs)
def cancel(self, *throw_args):
+ """Prevent the thread from starting if it has not already done so.
+
+ :param throw_args: the `exc_info` data to raise from :func:`wait`.
+ """
self.thread.cancel(*throw_args)
class ThreadGroup(object):
- """The point of the ThreadGroup class is to:
+ """A group of greenthreads and timers.
+
+ The point of the ThreadGroup class is to:
* keep track of timers and greenthreads (making it easier to stop them
when need be).
* provide an easy API to add timers.
+
+ .. note::
+ The API is inconsistent, confusing, and not orthogonal. The same verbs
+ often mean different things when applied to timers and threads,
+ respectively. Read the documentation carefully.
"""
+
def __init__(self, thread_pool_size=10):
+ """Create a ThreadGroup with a pool of greenthreads.
+
+ :param thread_pool_size: the maximum number of threads allowed to run
+ concurrently.
+ """
self.pool = greenpool.GreenPool(thread_pool_size)
self.threads = []
self.timers = []
def add_dynamic_timer(self, callback, initial_delay=None,
periodic_interval_max=None, *args, **kwargs):
+ """Add a timer that controls its own period dynamically.
+
+ The period of each iteration of the timer is controlled by the return
+ value of the callback function on the previous iteration.
+
+ .. warning::
+ Passing arguments to the callback function is deprecated. Use the
+ :func:`add_dynamic_timer_args` method to pass arguments for the
+ callback function.
+
+ :param callback: The callback function to run when the timer is
+ triggered.
+ :param initial_delay: The delay in seconds before first triggering the
+ timer. If not set, the timer is liable to be
+ scheduled immediately.
+ :param periodic_interval_max: The maximum interval in seconds to allow
+ the callback function to request. If
+ provided, this is also used as the
+ default delay if None is returned by the
+ callback function.
+ :returns: an :class:`oslo_service.loopingcall.DynamicLoopingCall`
+ instance
+ """
+ if args or kwargs:
+ warnings.warn("Calling add_dynamic_timer() with arguments to the "
+ "callback function is deprecated. Use "
+ "add_dynamic_timer_args() instead.",
+ DeprecationWarning)
+ return self.add_dynamic_timer_args(
+ callback, args, kwargs,
+ initial_delay=initial_delay,
+ periodic_interval_max=periodic_interval_max)
+
+ def add_dynamic_timer_args(self, callback, args=None, kwargs=None,
+ initial_delay=None, periodic_interval_max=None,
+ stop_on_exception=True):
+ """Add a timer that controls its own period dynamically.
+
+ The period of each iteration of the timer is controlled by the return
+ value of the callback function on the previous iteration.
+
+ :param callback: The callback function to run when the timer is
+ triggered.
+ :param args: A list of positional args to the callback function.
+ :param kwargs: A dict of keyword args to the callback function.
+ :param initial_delay: The delay in seconds before first triggering the
+ timer. If not set, the timer is liable to be
+ scheduled immediately.
+ :param periodic_interval_max: The maximum interval in seconds to allow
+ the callback function to request. If
+ provided, this is also used as the
+ default delay if None is returned by the
+ callback function.
+ :param stop_on_exception: Pass ``False`` to have the timer continue
+ running even if the callback function raises
+ an exception.
+ :returns: an :class:`oslo_service.loopingcall.DynamicLoopingCall`
+ instance
+ """
+ args = args or []
+ kwargs = kwargs or {}
timer = loopingcall.DynamicLoopingCall(callback, *args, **kwargs)
timer.start(initial_delay=initial_delay,
- periodic_interval_max=periodic_interval_max)
+ periodic_interval_max=periodic_interval_max,
+ stop_on_exception=stop_on_exception)
self.timers.append(timer)
return timer
def add_timer(self, interval, callback, initial_delay=None,
*args, **kwargs):
+ """Add a timer with a fixed period.
+
+ .. warning::
+ Passing arguments to the callback function is deprecated. Use the
+ :func:`add_timer_args` method to pass arguments for the callback
+ function.
+
+ :param interval: The minimum period in seconds between calls to the
+ callback function.
+ :param callback: The callback function to run when the timer is
+ triggered.
+ :param initial_delay: The delay in seconds before first triggering the
+ timer. If not set, the timer is liable to be
+ scheduled immediately.
+ :returns: an :class:`oslo_service.loopingcall.FixedIntervalLoopingCall`
+ instance
+ """
+ if args or kwargs:
+ warnings.warn("Calling add_timer() with arguments to the callback "
+ "function is deprecated. Use add_timer_args() "
+ "instead.",
+ DeprecationWarning)
+ return self.add_timer_args(interval, callback, args, kwargs,
+ initial_delay=initial_delay)
+
+ def add_timer_args(self, interval, callback, args=None, kwargs=None,
+ initial_delay=None, stop_on_exception=True):
+ """Add a timer with a fixed period.
+
+ :param interval: The minimum period in seconds between calls to the
+ callback function.
+ :param callback: The callback function to run when the timer is
+ triggered.
+ :param args: A list of positional args to the callback function.
+ :param kwargs: A dict of keyword args to the callback function.
+ :param initial_delay: The delay in seconds before first triggering the
+ timer. If not set, the timer is liable to be
+ scheduled immediately.
+ :param stop_on_exception: Pass ``False`` to have the timer continue
+ running even if the callback function raises
+ an exception.
+ :returns: an :class:`oslo_service.loopingcall.FixedIntervalLoopingCall`
+ instance
+ """
+ args = args or []
+ kwargs = kwargs or {}
pulse = loopingcall.FixedIntervalLoopingCall(callback, *args, **kwargs)
pulse.start(interval=interval,
- initial_delay=initial_delay)
+ initial_delay=initial_delay,
+ stop_on_exception=stop_on_exception)
self.timers.append(pulse)
return pulse
def add_thread(self, callback, *args, **kwargs):
+ """Spawn a new thread.
+
+ This call will block until capacity is available in the thread pool.
+ After that, it returns immediately (i.e. *before* the new thread is
+ scheduled).
+
+ :param callback: the function to run in the new thread.
+ :param args: positional arguments to the callback function.
+ :param kwargs: keyword arguments to the callback function.
+ :returns: a :class:`Thread` object
+ """
gt = self.pool.spawn(callback, *args, **kwargs)
th = Thread(gt, self, link=False)
self.threads.append(th)
@@ -99,9 +241,19 @@
return th
def thread_done(self, thread):
+ """Remove a completed thread from the group.
+
+ This method is automatically called on completion of a thread in the
+ group, and should not be called explicitly.
+ """
self.threads.remove(thread)
def timer_done(self, timer):
+ """Remove a timer from the group.
+
+ :param timer: The timer object returned from :func:`add_timer` or its
+ analogues.
+ """
self.timers.remove(timer)
def _perform_action_on_threads(self, action_func, on_error_func):
@@ -126,6 +278,18 @@
lambda x: LOG.exception('Error stopping thread.'))
def stop_timers(self, wait=False):
+ """Stop all timers in the group and remove them from the group.
+
+ No new invocations of timers will be triggered after they are stopped,
+ but calls that are in progress will not be interrupted.
+
+ To wait for in-progress calls to complete, pass ``wait=True`` - calling
+ :func:`wait` will not have the desired effect as the timers will have
+ already been removed from the group.
+
+ :param wait: If true, block until all timers have been stopped before
+ returning.
+ """
for timer in self.timers:
timer.stop()
if wait:
@@ -133,11 +297,25 @@
self.timers = []
def stop(self, graceful=False):
- """stop function has the option of graceful=True/False.
+ """Stop all timers and threads in the group.
- * In case of graceful=True, wait for all threads to be finished.
- Never kill threads.
- * In case of graceful=False, kill threads immediately.
+ No new invocations of timers will be triggered after they are stopped,
+ but calls that are in progress will not be interrupted.
+
+ If ``graceful`` is false, kill all threads immediately by raising
+ GreenletExit. Note that in this case, this method will **not** block
+ until all threads and running timer callbacks have actually exited. To
+ guarantee that all threads have exited, call :func:`wait`.
+
+ If ``graceful`` is true, do not kill threads. Block until all threads
+ and running timer callbacks have completed. This is equivalent to
+ calling :func:`stop_timers` with ``wait=True`` followed by
+ :func:`wait`.
+
+ :param graceful: If true, block until all timers have stopped and all
+ threads completed; never kill threads. Otherwise,
+ kill threads immediately and return immediately even
+ if there are timer callbacks still running.
"""
self.stop_timers(wait=graceful)
if graceful:
@@ -165,6 +343,25 @@
lambda x: LOG.exception('Error waiting on thread.'))
def wait(self):
+ """Block until all timers and threads in the group are complete.
+
+ .. note::
+ Before calling this method, any timers should be stopped first by
+ calling :func:`stop_timers`, :func:`stop`, or :func:`cancel` with a
+ ``timeout`` argument. Otherwise this will block forever.
+
+ .. note::
+ Calling :func:`stop_timers` removes the timers from the group, so a
+ subsequent call to this method will not wait for any in-progress
+ timer calls to complete.
+
+ Any exceptions raised by the threads will be logged but suppressed.
+
+ .. note::
+ This call guarantees only that the threads themselves have
+ completed, **not** that any cleanup functions added via
+ :func:`Thread.link` have completed.
+ """
self._wait_timers()
self._wait_threads()
@@ -178,7 +375,42 @@
return True
return False
+ @removals.remove(removal_version='?')
def cancel(self, *throw_args, **kwargs):
+ """Cancel unstarted threads in the group, and optionally stop the rest.
+
+ .. warning::
+ This method is deprecated and should not be used. It will be
+ removed in a future release.
+
+ If called without the ``timeout`` argument, this does **not** stop any
+ running threads, but prevents any threads in the group that have not
+ yet started from running, then returns immediately. Timers are not
+ affected.
+
+ If the 'timeout' argument is supplied, then it serves as a grace period
+ to allow running threads to finish. After the timeout, any threads in
+ the group that are still running will be killed by raising GreenletExit
+ in them, and all timers will be stopped (so that they are not
+ retriggered - timer calls that are in progress will not be
+ interrupted). This method will **not** block until all threads have
+ actually exited, nor that all in-progress timer calls have completed.
+ To guarantee that all threads have exited, call :func:`wait`. If all
+ threads complete before the timeout expires, timers will be left
+ running; there is no way to then stop those timers, so for consistent
+ behaviour :func`stop_timers` should be called before calling this
+ method.
+
+ :param throw_args: the `exc_info` data to raise from
+ :func:`Thread.wait` for any of the unstarted
+ threads. (Though note that :func:`ThreadGroup.wait`
+ suppresses exceptions.)
+ :param timeout: time to wait for running threads to complete before
+ calling stop(). If not supplied, threads that are
+ already running continue to completion.
+ :param wait_time: length of time in seconds to sleep between checks of
+ whether any threads are still alive. (Default 1s.)
+ """
self._perform_action_on_threads(
lambda x: x.cancel(*throw_args),
lambda x: LOG.exception('Error canceling thread.'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/releasenotes/notes/profile-worker-5d3fd0f0251d62b8.yaml new/oslo.service-1.38.0/releasenotes/notes/profile-worker-5d3fd0f0251d62b8.yaml
--- old/oslo.service-1.31.5/releasenotes/notes/profile-worker-5d3fd0f0251d62b8.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.service-1.38.0/releasenotes/notes/profile-worker-5d3fd0f0251d62b8.yaml 2019-02-26 01:07:10.000000000 +0100
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Add support for profiling (capture function calltrace) service's worker
+ processes.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/releasenotes/notes/reno.cache new/oslo.service-1.38.0/releasenotes/notes/reno.cache
--- old/oslo.service-1.31.5/releasenotes/notes/reno.cache 2018-09-25 21:47:28.000000000 +0200
+++ new/oslo.service-1.38.0/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/releasenotes/notes/threadgroup-cancel-bd89d72f383a3d9b.yaml new/oslo.service-1.38.0/releasenotes/notes/threadgroup-cancel-bd89d72f383a3d9b.yaml
--- old/oslo.service-1.31.5/releasenotes/notes/threadgroup-cancel-bd89d72f383a3d9b.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.service-1.38.0/releasenotes/notes/threadgroup-cancel-bd89d72f383a3d9b.yaml 2019-02-26 01:07:10.000000000 +0100
@@ -0,0 +1,5 @@
+---
+deprecations:
+ - |
+ The ``ThreadGroup.cancel()`` method is deprecated and will be removed in a
+ future major release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/releasenotes/notes/timer-args-f578c8f9d08b217d.yaml new/oslo.service-1.38.0/releasenotes/notes/timer-args-f578c8f9d08b217d.yaml
--- old/oslo.service-1.31.5/releasenotes/notes/timer-args-f578c8f9d08b217d.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.service-1.38.0/releasenotes/notes/timer-args-f578c8f9d08b217d.yaml 2019-02-26 01:07:10.000000000 +0100
@@ -0,0 +1,15 @@
+---
+features:
+ - |
+ The ThreadGroup class has new add_timer_args() and add_dynamic_timer_args()
+ methods to create timers passing the positional and keyword arguments to
+ the callback as a sequence and a mapping. This API provides more
+ flexibility for the addition of timer control options in the future.
+deprecations:
+ - |
+ The API of the ThreadGroup add_timer() and add_dynamic_timer() methods has
+ been identified as error-prone when passing arguments intended for the
+ callback function. Passing callback arguments in this way is now
+ deprecated. Callers should use the new add_timer_args() or
+ add_dynamic_timer_args() methods (respectively) instead when it is
+ necessary to pass arguments to the timer callback function.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/releasenotes/notes/timer-stop_on_exception-9f21d7c4d6d1b0d9.yaml new/oslo.service-1.38.0/releasenotes/notes/timer-stop_on_exception-9f21d7c4d6d1b0d9.yaml
--- old/oslo.service-1.31.5/releasenotes/notes/timer-stop_on_exception-9f21d7c4d6d1b0d9.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.service-1.38.0/releasenotes/notes/timer-stop_on_exception-9f21d7c4d6d1b0d9.yaml 2019-02-26 01:07:10.000000000 +0100
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ The ThreadGroup add_timer_args() and add_dynamic_timer_args() methods now
+ support passing a stop_on_exception=False argument to allow the timer to
+ keep running even when an exception is raised by the callback function.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/releasenotes/source/index.rst new/oslo.service-1.38.0/releasenotes/source/index.rst
--- old/oslo.service-1.31.5/releasenotes/source/index.rst 2018-09-25 21:44:54.000000000 +0200
+++ new/oslo.service-1.38.0/releasenotes/source/index.rst 2019-02-26 01:07:10.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/releasenotes/source/rocky.rst new/oslo.service-1.38.0/releasenotes/source/rocky.rst
--- old/oslo.service-1.31.5/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.service-1.38.0/releasenotes/source/rocky.rst 2019-02-26 01:07:10.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/requirements.txt new/oslo.service-1.38.0/requirements.txt
--- old/oslo.service-1.31.5/requirements.txt 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/requirements.txt 2019-02-26 01:07:16.000000000 +0100
@@ -3,10 +3,12 @@
# process, which may cause wedges in the gate later.
WebOb>=1.7.1 # MIT
+debtcollector>=1.2.0 # Apache 2.0
eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT
+fixtures>=3.0.0 # Apache-2.0/BSD
greenlet>=0.4.10 # MIT
-monotonic>=0.6 # Apache-2.0
-oslo.utils>=3.33.0 # Apache-2.0
+monotonic>=0.6;python_version<'3.3' # Apache-2.0
+oslo.utils>=3.40.2 # Apache-2.0
oslo.concurrency>=3.25.0 # Apache-2.0
oslo.config>=5.1.0 # Apache-2.0
oslo.log>=3.36.0 # Apache-2.0
@@ -15,3 +17,4 @@
PasteDeploy>=1.5.0 # MIT
Routes>=2.3.1 # MIT
Paste>=2.0.2 # MIT
+Yappi>=1.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/setup.cfg new/oslo.service-1.38.0/setup.cfg
--- old/oslo.service-1.31.5/setup.cfg 2018-09-25 21:47:28.000000000 +0200
+++ new/oslo.service-1.38.0/setup.cfg 2019-02-26 01:09:41.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.service/latest/
classifier =
Environment :: OpenStack
@@ -51,7 +51,7 @@
mapping_file = babel.cfg
output_file = oslo_service/locale/oslo_service.pot
-[wheel]
+[bdist_wheel]
universal = true
[egg_info]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/test-requirements.txt new/oslo.service-1.38.0/test-requirements.txt
--- old/oslo.service-1.31.5/test-requirements.txt 2018-09-25 21:44:37.000000000 +0200
+++ new/oslo.service-1.38.0/test-requirements.txt 2019-02-26 01:07:10.000000000 +0100
@@ -3,7 +3,7 @@
# process, which may cause wedges in the gate later.
fixtures>=3.0.0 # Apache-2.0/BSD
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
mock>=2.0.0 # BSD
oslotest>=3.2.0 # Apache-2.0
requests>=2.14.2 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.service-1.31.5/tox.ini new/oslo.service-1.38.0/tox.ini
--- old/oslo.service-1.31.5/tox.ini 2018-09-25 21:44:54.000000000 +0200
+++ new/oslo.service-1.38.0/tox.ini 2019-02-26 01:07:10.000000000 +0100
@@ -9,7 +9,7 @@
CLIENT_NAME=oslo.service
install_command = pip install {opts} {packages}
deps =
- -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+ -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
whitelist_externals = find
@@ -38,9 +38,10 @@
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
+# E731 skipped as assign a lambda expression
show-source = True
-ignore = E123,E125
+ignore = E123,E125,E731
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
[hacking]
@@ -53,7 +54,7 @@
[testenv:bandit]
basepython = python3
deps =
- -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+ -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
commands = bandit -r oslo_service -n5 -x tests {posargs}
1
0
Hello community,
here is the log from the commit of package python-oslo.serialization for openSUSE:Factory checked in at 2019-05-03 22:42:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.serialization (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.serialization.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.serialization"
Fri May 3 22:42:41 2019 rev:12 rq:692865 version:2.28.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.serialization/python-oslo.serialization.changes 2018-09-07 15:39:08.726552783 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.serialization.new.5148/python-oslo.serialization.changes 2019-05-03 22:42:42.795277680 +0200
@@ -1,0 +2,19 @@
+Mon Apr 8 11:25:54 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.28.2
+ - Update mailinglist from dev to discuss
+ - Clean up .gitignore references to personal tools
+ - Switch to stestr
+ - Fix README
+ - Update hacking version
+ - Update reno for stable/rocky
+ - Add release notes link to README
+ - Use template for lower-constraints
+ - Update the home-page to latest
+ - add lib-forward-testing-python3 test job
+ - add python 3.6 unit test job
+ - py37: deal with Exception repr changes
+ - add python 3.7 unit test job
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
oslo.serialization-2.27.0.tar.gz
New:
----
oslo.serialization-2.28.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.serialization.spec ++++++
--- /var/tmp/diff_new_pack.gATEzg/_old 2019-05-03 22:42:43.287278716 +0200
+++ /var/tmp/diff_new_pack.gATEzg/_new 2019-05-03 22:42:43.287278716 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.serialization
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.serialization
-Version: 2.27.0
+Version: 2.28.2
Release: 0
Summary: OpenStack serialization library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.serialization
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.serialization/oslo.se…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.serialization/oslo.se…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-ipaddress
@@ -34,7 +34,7 @@
BuildRequires: python2-oslo.utils >= 3.33.0
BuildRequires: python2-oslotest
BuildRequires: python2-pbr >= 2.0.0
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python3-devel
BuildRequires: python3-mock
BuildRequires: python3-msgpack >= 0.5.2
@@ -43,7 +43,7 @@
BuildRequires: python3-oslo.utils >= 3.33.0
BuildRequires: python3-oslotest
BuildRequires: python3-pbr >= 2.0.0
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
Requires: python-msgpack >= 0.5.2
Requires: python-oslo.utils >= 3.33.0
Requires: python-pytz >= 2013.6
@@ -67,9 +67,9 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n oslo.serialization-2.27.0
+%autosetup -p1 -n oslo.serialization-2.28.2
+sed -i -e "s,bandit.*,," test-requirements.txt
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -83,9 +83,7 @@
%{python_install}
%check
-%{python_expand rm -rf .testrepository
-$python setup.py test
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.gATEzg/_old 2019-05-03 22:42:43.315278775 +0200
+++ /var/tmp/diff_new_pack.gATEzg/_new 2019-05-03 22:42:43.315278775 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.serialization.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.serialization/stable/rocky…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.serialization/stable/stein…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.serialization</param>
</service>
++++++ oslo.serialization-2.27.0.tar.gz -> oslo.serialization-2.28.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/.stestr.conf new/oslo.serialization-2.28.2/.stestr.conf
--- old/oslo.serialization-2.27.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.serialization-2.28.2/.stestr.conf 2019-02-28 19:03:05.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./oslo_serialization/tests
+top_path=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/.testr.conf new/oslo.serialization-2.28.2/.testr.conf
--- old/oslo.serialization-2.27.0/.testr.conf 2018-06-19 16:57:23.000000000 +0200
+++ new/oslo.serialization-2.28.2/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/.zuul.yaml new/oslo.serialization-2.28.2/.zuul.yaml
--- old/oslo.serialization-2.27.0/.zuul.yaml 2018-06-19 16:57:23.000000000 +0200
+++ new/oslo.serialization-2.28.2/.zuul.yaml 2019-02-28 19:03:05.000000000 +0100
@@ -1,7 +1,13 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/AUTHORS new/oslo.serialization-2.28.2/AUTHORS
--- old/oslo.serialization-2.27.0/AUTHORS 2018-06-19 17:00:27.000000000 +0200
+++ new/oslo.serialization-2.28.2/AUTHORS 2019-02-28 19:05:44.000000000 +0100
@@ -9,6 +9,7 @@
ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
Christian Berendt <berendt(a)b1-systems.de>
Chuck Short <chuck.short(a)canonical.com>
+Corey Bryant <corey.bryant(a)canonical.com>
Cyril Roelandt <cyril.roelandt(a)enovance.com>
Dan Prince <dprince(a)redhat.com>
Dan Smith <danms(a)us.ibm.com>
@@ -41,6 +42,7 @@
Kenneth Giusti <kgiusti(a)gmail.com>
Luis A. Garcia <luis(a)linux.vnet.ibm.com>
Luong Anh Tuan <tuanla(a)vn.fujitsu.com>
+Martin Kopec <mkopec(a)redhat.com>
Matt Riedemann <mriedem(a)us.ibm.com>
Mehdi Abaakouk <sileht(a)redhat.com>
Mike Heald <mike.heald(a)hp.com>
@@ -61,12 +63,13 @@
Tony Breeds <tony(a)bakeyournoodle.com>
Victor Sergeyev <vsergeyev(a)mirantis.com>
Victor Stinner <vstinner(a)redhat.com>
+Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
YAMAMOTO Takashi <yamamoto(a)valinux.co.jp>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
+ZhijunWei <wzj334965317(a)outlook.com>
ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <lzyeval(a)gmail.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
avnish <avnish.pal(a)nectechnologies.in>
gecong1973 <ge.cong(a)zte.com.cn>
melissaml <ma.lei(a)99cloud.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/ChangeLog new/oslo.serialization-2.28.2/ChangeLog
--- old/oslo.serialization-2.27.0/ChangeLog 2018-06-19 17:00:27.000000000 +0200
+++ new/oslo.serialization-2.28.2/ChangeLog 2019-02-28 19:05:44.000000000 +0100
@@ -1,6 +1,29 @@
CHANGES
=======
+2.28.2
+------
+
+* add python 3.7 unit test job
+* Update hacking version
+* Fix README
+* Use template for lower-constraints
+* Update mailinglist from dev to discuss
+* Clean up .gitignore references to personal tools
+* Update the home-page to latest
+
+2.28.1
+------
+
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* import zuul job settings from project-config
+* py37: deal with Exception repr changes
+* Update reno for stable/rocky
+* Switch to stestr
+* Add release notes link to README
+
2.27.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/HACKING.rst new/oslo.serialization-2.28.2/HACKING.rst
--- old/oslo.serialization-2.27.0/HACKING.rst 2018-06-19 16:57:23.000000000 +0200
+++ new/oslo.serialization-2.28.2/HACKING.rst 2019-02-28 19:03:05.000000000 +0100
@@ -1,4 +1,4 @@
oslo.serialization Style Commandments
-======================================================
+=====================================
-Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest
\ No newline at end of file
+Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/PKG-INFO new/oslo.serialization-2.28.2/PKG-INFO
--- old/oslo.serialization-2.27.0/PKG-INFO 2018-06-19 17:00:28.000000000 +0200
+++ new/oslo.serialization-2.28.2/PKG-INFO 2019-02-28 19:05:44.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.serialization
-Version: 2.27.0
+Version: 2.28.2
Summary: Oslo Serialization library
-Home-page: http://docs.openstack.org/developer/oslo.serialization/
+Home-page: https://docs.openstack.org/oslo.serialization/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -15,9 +15,9 @@
.. Change things from this point on
- ====================
+ ===================
oslo.serialization
- ====================
+ ===================
.. image:: https://img.shields.io/pypi/v/oslo.serialization.svg
:target: https://pypi.org/project/oslo.serialization/
@@ -33,7 +33,8 @@
* Free software: Apache license
* Documentation: https://docs.openstack.org/oslo.serialization/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.serialization
- * Bugs: https://docs.openstack.org/oslo.serialization/latest/
+ * Bugs: https://bugs.launchpad.net/oslo.serialization
+ * Release notes: https://docs.openstack.org/releasenotes/oslo.serialization/
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/README.rst new/oslo.serialization-2.28.2/README.rst
--- old/oslo.serialization-2.27.0/README.rst 2018-06-19 16:57:23.000000000 +0200
+++ new/oslo.serialization-2.28.2/README.rst 2019-02-28 19:03:05.000000000 +0100
@@ -7,9 +7,9 @@
.. Change things from this point on
-====================
+===================
oslo.serialization
-====================
+===================
.. image:: https://img.shields.io/pypi/v/oslo.serialization.svg
:target: https://pypi.org/project/oslo.serialization/
@@ -25,4 +25,5 @@
* Free software: Apache license
* Documentation: https://docs.openstack.org/oslo.serialization/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.serialization
-* Bugs: https://docs.openstack.org/oslo.serialization/latest/
+* Bugs: https://bugs.launchpad.net/oslo.serialization
+* Release notes: https://docs.openstack.org/releasenotes/oslo.serialization/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/lower-constraints.txt new/oslo.serialization-2.28.2/lower-constraints.txt
--- old/oslo.serialization-2.27.0/lower-constraints.txt 2018-06-19 16:57:23.000000000 +0200
+++ new/oslo.serialization-2.28.2/lower-constraints.txt 2019-02-28 19:03:05.000000000 +0100
@@ -36,8 +36,8 @@
requestsexceptions==1.2.0
six==1.10.0
smmap==0.9.0
+stestr==2.0.0
stevedore==1.20.0
-testrepository==0.0.18
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/oslo.serialization.egg-info/PKG-INFO new/oslo.serialization-2.28.2/oslo.serialization.egg-info/PKG-INFO
--- old/oslo.serialization-2.27.0/oslo.serialization.egg-info/PKG-INFO 2018-06-19 17:00:27.000000000 +0200
+++ new/oslo.serialization-2.28.2/oslo.serialization.egg-info/PKG-INFO 2019-02-28 19:05:44.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.serialization
-Version: 2.27.0
+Version: 2.28.2
Summary: Oslo Serialization library
-Home-page: http://docs.openstack.org/developer/oslo.serialization/
+Home-page: https://docs.openstack.org/oslo.serialization/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -15,9 +15,9 @@
.. Change things from this point on
- ====================
+ ===================
oslo.serialization
- ====================
+ ===================
.. image:: https://img.shields.io/pypi/v/oslo.serialization.svg
:target: https://pypi.org/project/oslo.serialization/
@@ -33,7 +33,8 @@
* Free software: Apache license
* Documentation: https://docs.openstack.org/oslo.serialization/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.serialization
- * Bugs: https://docs.openstack.org/oslo.serialization/latest/
+ * Bugs: https://bugs.launchpad.net/oslo.serialization
+ * Release notes: https://docs.openstack.org/releasenotes/oslo.serialization/
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/oslo.serialization.egg-info/SOURCES.txt new/oslo.serialization-2.28.2/oslo.serialization.egg-info/SOURCES.txt
--- old/oslo.serialization-2.27.0/oslo.serialization.egg-info/SOURCES.txt 2018-06-19 17:00:28.000000000 +0200
+++ new/oslo.serialization-2.28.2/oslo.serialization.egg-info/SOURCES.txt 2019-02-28 19:05:44.000000000 +0100
@@ -1,6 +1,6 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -48,6 +48,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/oslo.serialization.egg-info/pbr.json new/oslo.serialization-2.28.2/oslo.serialization.egg-info/pbr.json
--- old/oslo.serialization-2.27.0/oslo.serialization.egg-info/pbr.json 2018-06-19 17:00:27.000000000 +0200
+++ new/oslo.serialization-2.28.2/oslo.serialization.egg-info/pbr.json 2019-02-28 19:05:44.000000000 +0100
@@ -1 +1 @@
-{"git_version": "fb15d63", "is_release": true}
\ No newline at end of file
+{"git_version": "bc2a1fb", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/oslo_serialization/jsonutils.py new/oslo.serialization-2.28.2/oslo_serialization/jsonutils.py
--- old/oslo.serialization-2.27.0/oslo_serialization/jsonutils.py 2018-06-19 16:57:23.000000000 +0200
+++ new/oslo.serialization-2.28.2/oslo_serialization/jsonutils.py 2019-02-28 19:03:05.000000000 +0100
@@ -53,8 +53,8 @@
inspect.iscode, inspect.isbuiltin, inspect.isroutine,
inspect.isabstract]
-_simple_types = ((six.text_type,) + six.integer_types
- + (type(None), bool, float))
+_simple_types = ((six.text_type,) + six.integer_types +
+ (type(None), bool, float))
def to_primitive(value, convert_instances=False, convert_datetime=True,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/oslo_serialization/tests/test_jsonutils.py new/oslo.serialization-2.28.2/oslo_serialization/tests/test_jsonutils.py
--- old/oslo.serialization-2.27.0/oslo_serialization/tests/test_jsonutils.py 2018-06-19 16:57:23.000000000 +0200
+++ new/oslo.serialization-2.28.2/oslo_serialization/tests/test_jsonutils.py 2019-02-28 19:03:05.000000000 +0100
@@ -116,8 +116,9 @@
self.assertIsInstance(val, six.text_type)
def test_dumps_exception_value(self):
- self.assertEqual('{"a": "ValueError(\'hello\',)"}',
- jsonutils.dumps({"a": ValueError("hello")}))
+ self.assertIn(jsonutils.dumps({"a": ValueError("hello")}),
+ ['{"a": "ValueError(\'hello\',)"}',
+ '{"a": "ValueError(\'hello\')"}'])
class JSONUtilsTestJson(JSONUtilsTestMixin, test_base.BaseTestCase):
@@ -407,5 +408,6 @@
self.assertEqual('fallback', ret)
def test_exception(self):
- self.assertEqual("ValueError('an exception',)",
- jsonutils.to_primitive(ValueError("an exception")))
+ self.assertIn(jsonutils.to_primitive(ValueError("an exception")),
+ ["ValueError('an exception',)",
+ "ValueError('an exception')"])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/releasenotes/source/index.rst new/oslo.serialization-2.28.2/releasenotes/source/index.rst
--- old/oslo.serialization-2.27.0/releasenotes/source/index.rst 2018-06-19 16:57:23.000000000 +0200
+++ new/oslo.serialization-2.28.2/releasenotes/source/index.rst 2019-02-28 19:03:05.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/releasenotes/source/rocky.rst new/oslo.serialization-2.28.2/releasenotes/source/rocky.rst
--- old/oslo.serialization-2.27.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.serialization-2.28.2/releasenotes/source/rocky.rst 2019-02-28 19:03:05.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/setup.cfg new/oslo.serialization-2.28.2/setup.cfg
--- old/oslo.serialization-2.27.0/setup.cfg 2018-06-19 17:00:28.000000000 +0200
+++ new/oslo.serialization-2.28.2/setup.cfg 2019-02-28 19:05:44.000000000 +0100
@@ -4,8 +4,8 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
-home-page = http://docs.openstack.org/developer/oslo.serialization/
+author-email = openstack-discuss(a)lists.openstack.org
+home-page = https://docs.openstack.org/oslo.serialization/latest/
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/test-requirements.txt new/oslo.serialization-2.28.2/test-requirements.txt
--- old/oslo.serialization-2.27.0/test-requirements.txt 2018-06-19 16:57:23.000000000 +0200
+++ new/oslo.serialization-2.28.2/test-requirements.txt 2019-02-28 19:03:05.000000000 +0100
@@ -1,10 +1,11 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
ipaddress>=1.0.17;python_version<'3.3' # PSF
mock>=2.0.0 # BSD
netaddr>=0.7.18 # BSD
+stestr>=2.0.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
oslo.i18n>=3.15.3 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.serialization-2.27.0/tox.ini new/oslo.serialization-2.28.2/tox.ini
--- old/oslo.serialization-2.27.0/tox.ini 2018-06-19 16:57:23.000000000 +0200
+++ new/oslo.serialization-2.28.2/tox.ini 2019-02-28 19:03:05.000000000 +0100
@@ -8,7 +8,7 @@
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
[testenv:py27]
basepython = python2.7
1
0
Hello community,
here is the log from the commit of package python-oslo.rootwrap for openSUSE:Factory checked in at 2019-05-03 22:42:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.rootwrap (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.rootwrap.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.rootwrap"
Fri May 3 22:42:38 2019 rev:9 rq:692864 version:5.15.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.rootwrap/python-oslo.rootwrap.changes 2018-09-07 15:39:07.214554406 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.rootwrap.new.5148/python-oslo.rootwrap.changes 2019-05-03 22:42:38.415268459 +0200
@@ -1,0 +2,20 @@
+Mon Apr 8 11:54:38 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 5.15.2
+ - Update mailinglist from dev to discuss
+ - Add release note for file descriptor limit change
+ - fix tox python3 overrides
+ - Fix portability issue
+ - Switch to stestr
+ - Run rootwrap with lower fd ulimit by default
+ - Update reno for stable/rocky
+ - Clean up .gitignore references to personal tools
+ - Add release notes link to README
+ - Don't quote {posargs} in tox.ini
+ - Use template for lower-constraints
+ - add lib-forward-testing-python3 test job
+ - add python 3.6 unit test job
+ - add python 3.7 unit test job
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
oslo.rootwrap-5.14.1.tar.gz
New:
----
oslo.rootwrap-5.15.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.rootwrap.spec ++++++
--- /var/tmp/diff_new_pack.7OquKj/_old 2019-05-03 22:42:38.907269495 +0200
+++ /var/tmp/diff_new_pack.7OquKj/_new 2019-05-03 22:42:38.911269503 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.rootwrap
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.rootwrap
-Version: 5.14.1
+Version: 5.15.2
Release: 0
Summary: Filtering shell commands to run as root from OpenStack services
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.rootwrap
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.rootwrap/oslo.rootwra…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.rootwrap/oslo.rootwra…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-eventlet
@@ -31,20 +31,16 @@
BuildRequires: python2-mock
BuildRequires: python2-oslotest
BuildRequires: python2-pbr
-BuildRequires: python2-python-subunit
BuildRequires: python2-six >= 1.10.0
-BuildRequires: python2-testrepository
-BuildRequires: python2-testscenarios
+BuildRequires: python2-stestr
BuildRequires: python2-testtools
BuildRequires: python3-eventlet
BuildRequires: python3-fixtures
BuildRequires: python3-mock
BuildRequires: python3-oslotest
BuildRequires: python3-pbr
-BuildRequires: python3-python-subunit
BuildRequires: python3-six >= 1.10.0
-BuildRequires: python3-testrepository
-BuildRequires: python3-testscenarios
+BuildRequires: python3-stestr
BuildRequires: python3-testtools
Requires: python-six >= 1.10.0
BuildArch: noarch
@@ -77,15 +73,14 @@
Documentation for the OpenStack oslo.rootwrap library.
%prep
-%autosetup -p1 -n oslo.rootwrap-5.14.1
+%autosetup -p1 -n oslo.rootwrap-5.15.2
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
# generate html docs
-PBR_VERSION=5.14.1 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=5.15.2 sphinx-build -b html doc/source doc/build/html
rm -rf doc/build/html/.{doctrees,buildinfo}
%install
@@ -101,15 +96,6 @@
%python_uninstall_alternative oslo-rootwrap
%python_uninstall_alternative oslo-daemon
-%check
-export PYTHONPATH=.
-PYTHON=python2 %{__python2} setup.py testr
-# FIXME(ykarel) Remove the fix test once it works with python3 under root user
-%ifpython3
-rm -rf .testrepository
-PYTHON=python3 %{__python3} setup.py testr --testr-args='^(?!.*test_run_as)'
-%endif
-
%files %{python_files}
%license LICENSE
%doc ChangeLog README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.7OquKj/_old 2019-05-03 22:42:38.951269587 +0200
+++ /var/tmp/diff_new_pack.7OquKj/_new 2019-05-03 22:42:38.951269587 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.rootwrap.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.rootwrap/stable/rocky/requ…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.rootwrap/stable/stein/requ…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.rootwrap</param>
</service>
++++++ oslo.rootwrap-5.14.1.tar.gz -> oslo.rootwrap-5.15.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/.stestr.conf new/oslo.rootwrap-5.15.2/.stestr.conf
--- old/oslo.rootwrap-5.14.1/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.rootwrap-5.15.2/.stestr.conf 2019-02-28 19:02:14.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./oslo_rootwrap/tests
+top_path=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/.testr.conf new/oslo.rootwrap-5.15.2/.testr.conf
--- old/oslo.rootwrap-5.14.1/.testr.conf 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_TEST_TIMEOUT=60 ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/.zuul.yaml new/oslo.rootwrap-5.15.2/.zuul.yaml
--- old/oslo.rootwrap-5.14.1/.zuul.yaml 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/.zuul.yaml 2019-02-28 19:02:14.000000000 +0100
@@ -1,7 +1,13 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/AUTHORS new/oslo.rootwrap-5.15.2/AUTHORS
--- old/oslo.rootwrap-5.14.1/AUTHORS 2018-05-15 06:17:16.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/AUTHORS 2019-02-28 19:04:41.000000000 +0100
@@ -1,6 +1,7 @@
Akihiro Motoki <amotoki(a)gmail.com>
Andreas Jaeger <aj(a)suse.com>
Angus Lees <gus(a)inodes.org>
+Ben Nemec <bnemec(a)redhat.com>
Bogdan Dobrelya <bdobrelia(a)mirantis.com>
Brian Haley <bhaley(a)redhat.com>
Cedric Brandily <zzelle(a)gmail.com>
@@ -25,6 +26,7 @@
Julien Danjou <julien(a)danjou.info>
Kenneth Giusti <kgiusti(a)gmail.com>
Kirill Bespalov <kbespalov(a)mirantis.com>
+Lucian Petrut <lpetrut(a)cloudbasesolutions.com>
Mark McClain <mark.mcclain(a)dreamhost.com>
Mark McLoughlin <markmc(a)redhat.com>
Maru Newby <marun(a)redhat.com>
@@ -48,14 +50,15 @@
Tony Breeds <tony(a)bakeyournoodle.com>
Tony Xu <hhktony(a)gmail.com>
Victor Stinner <vstinner(a)redhat.com>
+Vieri <15050873171(a)163.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
XianChaobo <xianchaobo(a)huawei.com>
Yatin Kumbhare <yatinkumbhare(a)gmail.com>
Yufang Zhang <zhangyufang(a)360.cn>
Yuriy Taraday <yorik.sar(a)gmail.com>
Zhao Lei <zhaolei(a)cn.fujitsu.com>
+ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
fumihiko kakuma <kakuma(a)valinux.co.jp>
howardlee <lihongweibj(a)inspur.com>
melissaml <ma.lei(a)99cloud.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/ChangeLog new/oslo.rootwrap-5.15.2/ChangeLog
--- old/oslo.rootwrap-5.14.1/ChangeLog 2018-05-15 06:17:16.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/ChangeLog 2019-02-28 19:04:41.000000000 +0100
@@ -1,6 +1,33 @@
CHANGES
=======
+5.15.2
+------
+
+* add python 3.7 unit test job
+* Use template for lower-constraints
+
+5.15.1
+------
+
+* Update mailinglist from dev to discuss
+* Fix portability issue
+
+5.15.0
+------
+
+* Add release note for file descriptor limit change
+* Clean up .gitignore references to personal tools
+* Don't quote {posargs} in tox.ini
+* Run rootwrap with lower fd ulimit by default
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+* Switch to stestr
+* Add release notes link to README
+* fix tox python3 overrides
+
5.14.1
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/PKG-INFO new/oslo.rootwrap-5.15.2/PKG-INFO
--- old/oslo.rootwrap-5.14.1/PKG-INFO 2018-05-15 06:17:17.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/PKG-INFO 2019-02-28 19:04:41.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.rootwrap
-Version: 5.14.1
+Version: 5.15.2
Summary: Oslo Rootwrap
Home-page: https://docs.openstack.org/oslo.rootwrap/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -34,6 +34,7 @@
* Documentation: https://docs.openstack.org/oslo.rootwrap/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.rootwrap
* Bugs: https://bugs.launchpad.net/oslo.rootwrap
+ * Release notes: https://docs.openstack.org/releasenotes/oslo.rootwrap/
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/README.rst new/oslo.rootwrap-5.15.2/README.rst
--- old/oslo.rootwrap-5.14.1/README.rst 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/README.rst 2019-02-28 19:02:14.000000000 +0100
@@ -26,3 +26,4 @@
* Documentation: https://docs.openstack.org/oslo.rootwrap/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.rootwrap
* Bugs: https://bugs.launchpad.net/oslo.rootwrap
+* Release notes: https://docs.openstack.org/releasenotes/oslo.rootwrap/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/RELEASENOTES.rst new/oslo.rootwrap-5.15.2/RELEASENOTES.rst
--- old/oslo.rootwrap-5.14.1/RELEASENOTES.rst 2018-05-15 06:17:17.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-=============
-oslo.rootwrap
-=============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/doc/source/user/usage.rst new/oslo.rootwrap-5.15.2/doc/source/user/usage.rst
--- old/oslo.rootwrap-5.14.1/doc/source/user/usage.rst 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/doc/source/user/usage.rst 2019-02-28 19:02:14.000000000 +0100
@@ -113,6 +113,14 @@
unsuccessful attempts. Example:
``syslog_log_level=ERROR``
+rlimit_nofile
+ Which rlimit for number of open file descriptors should be set for rootwrap
+ and its children processes by default. This is useful in case there is a
+ excessively large ulimit configured for the calling process that shouldn't
+ inherit to oslo.rootwrap and its called processes. Will not attempt to raise
+ the limit. Defaults to 1024.
+
+
.filters files
==============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/etc/rootwrap.conf.sample new/oslo.rootwrap-5.15.2/etc/rootwrap.conf.sample
--- old/oslo.rootwrap-5.14.1/etc/rootwrap.conf.sample 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/etc/rootwrap.conf.sample 2019-02-28 19:02:14.000000000 +0100
@@ -28,3 +28,6 @@
# Rootwrap daemon exits after this seconds of inactivity
daemon_timeout=600
+
+# Rootwrap daemon limits itself to that many file descriptors
+rlimit_nofile=1024
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/lower-constraints.txt new/oslo.rootwrap-5.15.2/lower-constraints.txt
--- old/oslo.rootwrap-5.14.1/lower-constraints.txt 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/lower-constraints.txt 2019-02-28 19:02:14.000000000 +0100
@@ -40,8 +40,8 @@
snowballstemmer==1.2.1
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
+stestr==2.0.0
stevedore==1.20.0
-testrepository==0.0.18
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/oslo.rootwrap.egg-info/PKG-INFO new/oslo.rootwrap-5.15.2/oslo.rootwrap.egg-info/PKG-INFO
--- old/oslo.rootwrap-5.14.1/oslo.rootwrap.egg-info/PKG-INFO 2018-05-15 06:17:16.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/oslo.rootwrap.egg-info/PKG-INFO 2019-02-28 19:04:41.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.rootwrap
-Version: 5.14.1
+Version: 5.15.2
Summary: Oslo Rootwrap
Home-page: https://docs.openstack.org/oslo.rootwrap/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -34,6 +34,7 @@
* Documentation: https://docs.openstack.org/oslo.rootwrap/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.rootwrap
* Bugs: https://bugs.launchpad.net/oslo.rootwrap
+ * Release notes: https://docs.openstack.org/releasenotes/oslo.rootwrap/
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/oslo.rootwrap.egg-info/SOURCES.txt new/oslo.rootwrap-5.15.2/oslo.rootwrap.egg-info/SOURCES.txt
--- old/oslo.rootwrap-5.14.1/oslo.rootwrap.egg-info/SOURCES.txt 2018-05-15 06:17:17.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/oslo.rootwrap.egg-info/SOURCES.txt 2019-02-28 19:04:41.000000000 +0100
@@ -1,4 +1,4 @@
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -45,11 +45,13 @@
oslo_rootwrap/tests/test_functional_eventlet.py
oslo_rootwrap/tests/test_rootwrap.py
releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml
+releasenotes/notes/file-descriptor-limit-e2b2a3033b9ef21e.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/oslo.rootwrap.egg-info/pbr.json new/oslo.rootwrap-5.15.2/oslo.rootwrap.egg-info/pbr.json
--- old/oslo.rootwrap-5.14.1/oslo.rootwrap.egg-info/pbr.json 2018-05-15 06:17:16.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/oslo.rootwrap.egg-info/pbr.json 2019-02-28 19:04:41.000000000 +0100
@@ -1 +1 @@
-{"git_version": "9b632e2", "is_release": true}
\ No newline at end of file
+{"git_version": "0b6824d", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/oslo_rootwrap/cmd.py new/oslo.rootwrap-5.15.2/oslo_rootwrap/cmd.py
--- old/oslo.rootwrap-5.14.1/oslo_rootwrap/cmd.py 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/oslo_rootwrap/cmd.py 2019-02-28 19:02:14.000000000 +0100
@@ -35,9 +35,16 @@
import logging
import sys
+from oslo_rootwrap import subprocess
+from oslo_rootwrap import wrapper
+
from six import moves
-from oslo_rootwrap import wrapper
+try:
+ # This isn't available on all platforms (e.g. Windows).
+ import resource
+except ImportError:
+ resource = None
RC_UNAUTHORIZED = 99
RC_NOCOMMAND = 98
@@ -83,6 +90,24 @@
_exit_error(execname, "Incorrect configuration file: %s" % configfile,
RC_BADCONFIG, log=False)
+ if resource:
+ # When use close_fds=True on Python 2.x, we spend significant time
+ # in closing fds up to current soft ulimit, which could be large.
+ # Lower our ulimit to a reasonable value to regain performance.
+ fd_limits = resource.getrlimit(resource.RLIMIT_NOFILE)
+ sensible_fd_limit = min(config.rlimit_nofile, fd_limits[0])
+ if (fd_limits[0] > sensible_fd_limit):
+ # Unfortunately this inherits to our children, so allow them to
+ # re-raise by passing through the hard limit unmodified
+ resource.setrlimit(
+ resource.RLIMIT_NOFILE, (sensible_fd_limit, fd_limits[1]))
+ # This is set on import to the hard ulimit. if its defined we
+ # already have imported it, so we need to update it to the new
+ # limit.
+ if (hasattr(subprocess, 'MAXFD') and
+ subprocess.MAXFD > sensible_fd_limit):
+ subprocess.MAXFD = sensible_fd_limit
+
if config.use_syslog:
wrapper.setup_syslog(execname,
config.syslog_log_facility,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/oslo_rootwrap/wrapper.py new/oslo.rootwrap-5.15.2/oslo_rootwrap/wrapper.py
--- old/oslo.rootwrap-5.14.1/oslo_rootwrap/wrapper.py 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/oslo_rootwrap/wrapper.py 2019-02-28 19:02:14.000000000 +0100
@@ -97,6 +97,12 @@
else:
self.daemon_timeout = 600
+ # fd ulimit
+ if config.has_option("DEFAULT", "rlimit_nofile"):
+ self.rlimit_nofile = int(config.get("DEFAULT", "rlimit_nofile"))
+ else:
+ self.rlimit_nofile = 1024
+
def setup_syslog(execname, facility, level):
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/releasenotes/notes/file-descriptor-limit-e2b2a3033b9ef21e.yaml new/oslo.rootwrap-5.15.2/releasenotes/notes/file-descriptor-limit-e2b2a3033b9ef21e.yaml
--- old/oslo.rootwrap-5.14.1/releasenotes/notes/file-descriptor-limit-e2b2a3033b9ef21e.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.rootwrap-5.15.2/releasenotes/notes/file-descriptor-limit-e2b2a3033b9ef21e.yaml 2019-02-28 19:02:14.000000000 +0100
@@ -0,0 +1,14 @@
+---
+features:
+ - |
+ A configurable limit on the number of file descriptors that can be opened
+ by a rootwrap-started process has been added. It defaults to 1024, but
+ can be adjusted by setting the ``rlimit_nofile`` option in rootwrap.conf
+ to a larger or smaller value.
+upgrade:
+ - |
+ Because a file descriptor limit was added in this release (see the features
+ section for details), rootwrap processes that were previously relying on
+ inheriting their parent process's descriptor limits may exhaust their
+ available file descriptors. Use the ``rlimit_nofile`` option to restore
+ the previous limits if this is the case.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/releasenotes/notes/reno.cache new/oslo.rootwrap-5.15.2/releasenotes/notes/reno.cache
--- old/oslo.rootwrap-5.14.1/releasenotes/notes/reno.cache 2018-05-15 06:17:17.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/releasenotes/source/index.rst new/oslo.rootwrap-5.15.2/releasenotes/source/index.rst
--- old/oslo.rootwrap-5.14.1/releasenotes/source/index.rst 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/releasenotes/source/index.rst 2019-02-28 19:02:14.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/releasenotes/source/rocky.rst new/oslo.rootwrap-5.15.2/releasenotes/source/rocky.rst
--- old/oslo.rootwrap-5.14.1/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.rootwrap-5.15.2/releasenotes/source/rocky.rst 2019-02-28 19:02:14.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/setup.cfg new/oslo.rootwrap-5.15.2/setup.cfg
--- old/oslo.rootwrap-5.14.1/setup.cfg 2018-05-15 06:17:17.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/setup.cfg 2019-02-28 19:04:41.000000000 +0100
@@ -1,7 +1,7 @@
[metadata]
name = oslo.rootwrap
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
summary = Oslo Rootwrap
description-file =
README.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/test-requirements.txt new/oslo.rootwrap-5.15.2/test-requirements.txt
--- old/oslo.rootwrap-5.14.1/test-requirements.txt 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/test-requirements.txt 2019-02-28 19:02:14.000000000 +0100
@@ -5,8 +5,8 @@
hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
-testrepository>=0.0.18 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
+stestr>=2.0.0 # Apache-2.0
# this is required for the docs build jobs
sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.rootwrap-5.14.1/tox.ini new/oslo.rootwrap-5.15.2/tox.ini
--- old/oslo.rootwrap-5.14.1/tox.ini 2018-05-15 06:13:48.000000000 +0200
+++ new/oslo.rootwrap-5.15.2/tox.ini 2019-02-28 19:02:14.000000000 +0100
@@ -3,7 +3,6 @@
envlist = py35,py27,pep8
[testenv]
-basepython = python3
install_command = pip install {opts} {packages}
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
@@ -13,13 +12,14 @@
# run in a separate process
whitelist_externals = env
commands =
- python setup.py testr --slowest --testr-args='(?!tests.test_functional_eventlet)tests {posargs}'
- env TEST_EVENTLET=1 python setup.py testr --slowest --testr-args='tests.test_functional_eventlet'
+ stestr run --slowest (?!tests.test_functional_eventlet)tests {posargs}
+ env TEST_EVENTLET=1 stestr run --slowest tests.test_functional_eventlet
[testenv:py27]
basepython = python2.7
[testenv:pep8]
+basepython = python3
deps =
-r{toxinidir}/test-requirements.txt
commands =
@@ -28,16 +28,23 @@
bandit -r oslo_rootwrap tests -n5 --skip B404
[testenv:cover]
+basepython = python3
deps = {[testenv]deps}
coverage
+setenv =
+ PYTHON=coverage run --source $project --parallel-mode
commands =
- python setup.py testr --coverage
-
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:docs]
+basepython = python3
deps = -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -W -b html doc/source doc/build/html
@@ -50,13 +57,16 @@
commands = python benchmark/benchmark.py
[testenv:benchmark3]
+basepython = python3
commands = python3 benchmark/benchmark.py
[testenv:releasenotes]
+basepython = python3
deps = -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:lower-constraints]
+basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
1
0
Hello community,
here is the log from the commit of package python-oslo.privsep for openSUSE:Factory checked in at 2019-05-03 22:42:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.privsep (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.privsep.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.privsep"
Fri May 3 22:42:34 2019 rev:10 rq:692862 version:1.32.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.privsep/python-oslo.privsep.changes 2019-03-20 13:18:23.593356467 +0100
+++ /work/SRC/openSUSE:Factory/.python-oslo.privsep.new.5148/python-oslo.privsep.changes 2019-05-03 22:42:36.503264433 +0200
@@ -1,0 +2,27 @@
+Mon Apr 8 11:35:28 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.32.1
+ - Remove PyPI downloads
+ - Switch to stestr
+ - Update mailinglist from dev to discuss
+ - Use template for lower-constraints
+ - import zuul job settings from project-config
+ - Add that 'Release Notes' in README
+ - Add futures as a requirement for Python 2
+ - Added example blogposts
+ - Update reno for stable/rocky
+ - Don't quote {posargs} in tox.ini
+ - add python 3.6 unit test job
+ - add lib-forward-testing-python3 test job
+ - Expose privsep options for config-generator
+ - Set unicode_errors handler to 'surrogateescape' in msgpack
+ - Trivial: Update pypi url to new url
+ - Replace assertRaisesRegexp with assertRaisesRegex
+ - Avoids calling ffi.dlopen(None) on Windows
+ - fix tox python3 overrides
+ - Update hacking version
+ - Clean up .gitignore references to personal tools
+ - Use threads to process target function
+ - add python 3.7 unit test job
+
+-------------------------------------------------------------------
Old:
----
oslo.privsep-1.29.2.tar.gz
New:
----
oslo.privsep-1.32.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.privsep.spec ++++++
--- /var/tmp/diff_new_pack.AqvH1K/_old 2019-05-03 22:42:37.923267423 +0200
+++ /var/tmp/diff_new_pack.AqvH1K/_new 2019-05-03 22:42:37.947267474 +0200
@@ -17,15 +17,14 @@
Name: python-oslo.privsep
-Version: 1.29.2
+Version: 1.32.1
Release: 0
Summary: OpenStack library for privilege separation
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.privsep
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.privsep/oslo.privsep-…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.privsep/oslo.privsep-…
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-Sphinx
BuildRequires: python2-cffi >= 1.7.0
BuildRequires: python2-eventlet >= 0.18.2
@@ -43,7 +42,6 @@
BuildRequires: python2-stestr
BuildRequires: python3-Sphinx
BuildRequires: python3-cffi >= 1.7.0
-BuildRequires: python3-devel
BuildRequires: python3-eventlet >= 0.18.2
BuildRequires: python3-greenlet >= 0.4.10
BuildRequires: python3-mock
@@ -68,7 +66,9 @@
BuildArch: noarch
%ifpython2
BuildRequires: python-enum34 >= 1.0.4
+BuildRequires: python-futures >= 3.1.1
Requires: python-enum34 >= 1.0.4
+Requires: python-futures >= 3.1.1
%endif
%if 0%{?suse_version}
Requires(post): update-alternatives
@@ -92,9 +92,8 @@
Documentation for oslo.privsep
%prep
-%autosetup -p1 -n oslo.privsep-1.29.2
+%autosetup -p1 -n oslo.privsep-1.32.1
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%python_build
@@ -114,8 +113,9 @@
%python_uninstall_alternative privsep-helper
%check
-export PYTHONPATH=.
-%python_exec -m stestr.cli run
+%{python_expand export PYTHONPATH=.
+$python -m stestr.cli run
+}
%files %{python_files}
%doc README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.AqvH1K/_old 2019-05-03 22:42:38.171267945 +0200
+++ /var/tmp/diff_new_pack.AqvH1K/_new 2019-05-03 22:42:38.171267945 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.privsep.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.privsep/stable/rocky/requi…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.privsep/stable/stein/requi…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.privsep</param>
</service>
++++++ oslo.privsep-1.29.2.tar.gz -> oslo.privsep-1.32.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/.zuul.yaml new/oslo.privsep-1.32.1/.zuul.yaml
--- old/oslo.privsep-1.29.2/.zuul.yaml 2018-09-25 21:49:23.000000000 +0200
+++ new/oslo.privsep-1.32.1/.zuul.yaml 2019-02-28 19:02:41.000000000 +0100
@@ -1,15 +1,13 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
- openstack-python-jobs
- openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
- publish-openstack-docs-pti
- - check-requirements
- - lib-forward-testing
- release-notes-jobs-python3
- - periodic-stable-jobs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/AUTHORS new/oslo.privsep-1.32.1/AUTHORS
--- old/oslo.privsep-1.29.2/AUTHORS 2018-09-25 21:52:33.000000000 +0200
+++ new/oslo.privsep-1.32.1/AUTHORS 2019-02-28 19:05:39.000000000 +0100
@@ -1,32 +1,41 @@
Alexander Tsamutali <atsamutali(a)mirantis.com>
Andreas Jaeger <aj(a)suse.com>
Angus Lees <gus(a)inodes.org>
+Ben Nemec <bnemec(a)redhat.com>
Bogdan Teleaga <bteleaga(a)cloudbasesolutions.com>
ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
+Chuck Short <chucks(a)redhat.com>
Claudiu Belu <cbelu(a)cloudbasesolutions.com>
+Cédric Jeanneret <cjeanner(a)redhat.com>
Davanum Srinivas <davanum(a)gmail.com>
Dirk Mueller <dirk(a)dmllr.de>
Doug Hellmann <doug(a)doughellmann.com>
Eric Brown <browne(a)vmware.com>
Flavio Percoco <flaper87(a)gmail.com>
Hongbin Lu <hongbin.lu(a)huawei.com>
+Javier Pena <jpena(a)redhat.com>
John Garbutt <john.garbutt(a)rackspace.com>
Joshua Harlow <harlowja(a)gmail.com>
Joshua Harlow <jxharlow(a)godaddy.com>
Kirill Bespalov <kbespalov(a)mirantis.com>
OpenStack Release Bot <infra-root(a)openstack.org>
Pavlo Shchelokovskyy <shchelokovskyy(a)gmail.com>
+Sam Wan <sam.wan(a)emc.com>
Swapnil Kulkarni (coolsvap) <me(a)coolsvap.net>
TommyLike <tommylikehu(a)gmail.com>
Tony Breeds <tony(a)bakeyournoodle.com>
+Vieri <15050873171(a)163.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Walter A. Boring IV <walter.boring(a)hpe.com>
Zhihai Song <zhihai.song(a)easystack.cn>
-Zuul <zuul(a)review.openstack.org>
+ZhijunWei <wzj334965317(a)outlook.com>
+ZhongShengping <chdzsp(a)163.com>
avnish <avnish.pal(a)nectechnologies.in>
liangcui <liangcui(a)fiberhome.com>
loooosy <syluo5695(a)fiberhome.com>
melissaml <ma.lei(a)99cloud.net>
ricolin <rico.lin(a)easystack.cn>
+shupeng <15050873171(a)163.com>
sonu.kumar <sonu.kumar(a)nectechnologies.in>
+wangqi <wang.qi(a)99cloud.net>
xgwang5843 <xgwang5843(a)fiberhome.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/ChangeLog new/oslo.privsep-1.32.1/ChangeLog
--- old/oslo.privsep-1.29.2/ChangeLog 2018-09-25 21:52:33.000000000 +0200
+++ new/oslo.privsep-1.32.1/ChangeLog 2019-02-28 19:05:39.000000000 +0100
@@ -1,14 +1,47 @@
CHANGES
=======
-1.29.2
+1.32.1
------
+* add python 3.7 unit test job
+* Update hacking version
+
+1.32.0
+------
+
+
+1.31.1
+------
+
+* Expose privsep options for config-generator
+
+1.31.0
+------
+
+* Use template for lower-constraints
+* Set unicode\_errors handler to 'surrogateescape' in msgpack
+* Add futures as a requirement for Python 2
+* Update mailinglist from dev to discuss
+* Use threads to process target function
+* Clean up .gitignore references to personal tools
+* Don't quote {posargs} in tox.ini
+
+1.30.1
+------
+
+* Replace assertRaisesRegexp with assertRaisesRegex
* Avoids calling ffi.dlopen(None) on Windows
-* Update UPPER\_CONSTRAINTS\_FILE for stable/rocky
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* Remove PyPI downloads
* import zuul job settings from project-config
-* Update .gitreview for stable/rocky
+* Add that 'Release Notes' in README
+* Update reno for stable/rocky
* Switch to stestr
+* fix tox python3 overrides
+* Added example blogposts
+* Trivial: Update pypi url to new url
1.29.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/PKG-INFO new/oslo.privsep-1.32.1/PKG-INFO
--- old/oslo.privsep-1.29.2/PKG-INFO 2018-09-25 21:52:34.000000000 +0200
+++ new/oslo.privsep-1.32.1/PKG-INFO 2019-02-28 19:05:39.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.privsep
-Version: 1.29.2
+Version: 1.32.1
Summary: OpenStack library for privilege separation
Home-page: https://docs.openstack.org/oslo.privsep/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -20,13 +20,9 @@
============
.. image:: https://img.shields.io/pypi/v/oslo.privsep.svg
- :target: https://pypi.python.org/pypi/oslo.privsep/
+ :target: https://pypi.org/project/oslo.privsep/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/oslo.privsep.svg
- :target: https://pypi.python.org/pypi/oslo.privsep/
- :alt: Downloads
-
OpenStack library for privilege separation
This library helps applications perform actions which require more or
@@ -39,6 +35,7 @@
* Documentation: https://docs.openstack.org/oslo.privsep/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.privsep
* Bugs: https://bugs.launchpad.net/oslo.privsep
+ * Release Notes: https://docs.openstack.org/releasenotes/oslo.privsep
.. _principle of least privilege: https://en.wikipedia.org/wiki/\
Principle_of_least_privilege
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/README.rst new/oslo.privsep-1.32.1/README.rst
--- old/oslo.privsep-1.29.2/README.rst 2018-09-25 21:49:23.000000000 +0200
+++ new/oslo.privsep-1.32.1/README.rst 2019-02-28 19:02:41.000000000 +0100
@@ -12,13 +12,9 @@
============
.. image:: https://img.shields.io/pypi/v/oslo.privsep.svg
- :target: https://pypi.python.org/pypi/oslo.privsep/
+ :target: https://pypi.org/project/oslo.privsep/
:alt: Latest Version
-.. image:: https://img.shields.io/pypi/dm/oslo.privsep.svg
- :target: https://pypi.python.org/pypi/oslo.privsep/
- :alt: Downloads
-
OpenStack library for privilege separation
This library helps applications perform actions which require more or
@@ -31,6 +27,7 @@
* Documentation: https://docs.openstack.org/oslo.privsep/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.privsep
* Bugs: https://bugs.launchpad.net/oslo.privsep
+* Release Notes: https://docs.openstack.org/releasenotes/oslo.privsep
.. _principle of least privilege: https://en.wikipedia.org/wiki/\
Principle_of_least_privilege
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/RELEASENOTES.rst new/oslo.privsep-1.32.1/RELEASENOTES.rst
--- old/oslo.privsep-1.29.2/RELEASENOTES.rst 2018-09-25 21:52:34.000000000 +0200
+++ new/oslo.privsep-1.32.1/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-============
-oslo.privsep
-============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/doc/source/user/index.rst new/oslo.privsep-1.32.1/doc/source/user/index.rst
--- old/oslo.privsep-1.29.2/doc/source/user/index.rst 2018-09-25 21:49:23.000000000 +0200
+++ new/oslo.privsep-1.32.1/doc/source/user/index.rst 2019-02-28 19:02:41.000000000 +0100
@@ -5,3 +5,11 @@
To use oslo.privsep in a project::
import oslo_privsep
+
+You can read the following blog posts in order to know a bit more:
+
+* `How to make a privileged call with oslo privsep`_
+* `Adding oslo privsep to a new project, a worked example`_
+
+.. _How to make a privileged call with oslo privsep: https://www.madebymikal.com/how-to-make-a-privileged-call-with-oslo-privsep/
+.. _Adding oslo privsep to a new project, a worked example: https://www.madebymikal.com/adding-oslo-privsep-to-a-new-project-a-worked-e…
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/lower-constraints.txt new/oslo.privsep-1.32.1/lower-constraints.txt
--- old/oslo.privsep-1.29.2/lower-constraints.txt 2018-09-25 21:49:12.000000000 +0200
+++ new/oslo.privsep-1.32.1/lower-constraints.txt 2019-02-28 19:02:41.000000000 +0100
@@ -11,6 +11,7 @@
extras==1.0.0
fixtures==3.0.0
flake8==2.5.5
+futures==3.1.1;python_version=='2.7' or python_version=='2.6' # PSF
gitdb==0.6.4
GitPython==1.0.1
greenlet==0.4.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo.privsep.egg-info/PKG-INFO new/oslo.privsep-1.32.1/oslo.privsep.egg-info/PKG-INFO
--- old/oslo.privsep-1.29.2/oslo.privsep.egg-info/PKG-INFO 2018-09-25 21:52:33.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo.privsep.egg-info/PKG-INFO 2019-02-28 19:05:39.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.privsep
-Version: 1.29.2
+Version: 1.32.1
Summary: OpenStack library for privilege separation
Home-page: https://docs.openstack.org/oslo.privsep/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -20,13 +20,9 @@
============
.. image:: https://img.shields.io/pypi/v/oslo.privsep.svg
- :target: https://pypi.python.org/pypi/oslo.privsep/
+ :target: https://pypi.org/project/oslo.privsep/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/oslo.privsep.svg
- :target: https://pypi.python.org/pypi/oslo.privsep/
- :alt: Downloads
-
OpenStack library for privilege separation
This library helps applications perform actions which require more or
@@ -39,6 +35,7 @@
* Documentation: https://docs.openstack.org/oslo.privsep/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.privsep
* Bugs: https://bugs.launchpad.net/oslo.privsep
+ * Release Notes: https://docs.openstack.org/releasenotes/oslo.privsep
.. _principle of least privilege: https://en.wikipedia.org/wiki/\
Principle_of_least_privilege
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo.privsep.egg-info/SOURCES.txt new/oslo.privsep-1.32.1/oslo.privsep.egg-info/SOURCES.txt
--- old/oslo.privsep-1.29.2/oslo.privsep.egg-info/SOURCES.txt 2018-09-25 21:52:34.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo.privsep.egg-info/SOURCES.txt 2019-02-28 19:05:39.000000000 +0100
@@ -48,12 +48,14 @@
oslo_privsep/tests/test_priv_context.py
oslo_privsep/tests/testctx.py
releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml
+releasenotes/notes/add_thread_pool_size-a54e6f27ab019f96.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/newton.rst
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo.privsep.egg-info/entry_points.txt new/oslo.privsep-1.32.1/oslo.privsep.egg-info/entry_points.txt
--- old/oslo.privsep-1.29.2/oslo.privsep.egg-info/entry_points.txt 2018-09-25 21:52:33.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo.privsep.egg-info/entry_points.txt 2019-02-28 19:05:39.000000000 +0100
@@ -1,3 +1,6 @@
[console_scripts]
privsep-helper = oslo_privsep.daemon:helper_main
+[oslo.config.opts]
+oslo.privsep = oslo_privsep.priv_context:_list_opts
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo.privsep.egg-info/pbr.json new/oslo.privsep-1.32.1/oslo.privsep.egg-info/pbr.json
--- old/oslo.privsep-1.29.2/oslo.privsep.egg-info/pbr.json 2018-09-25 21:52:33.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo.privsep.egg-info/pbr.json 2019-02-28 19:05:39.000000000 +0100
@@ -1 +1 @@
-{"git_version": "f7ba0aa", "is_release": true}
\ No newline at end of file
+{"git_version": "130d715", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo.privsep.egg-info/requires.txt new/oslo.privsep-1.32.1/oslo.privsep.egg-info/requires.txt
--- old/oslo.privsep-1.29.2/oslo.privsep.egg-info/requires.txt 2018-09-25 21:52:33.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo.privsep.egg-info/requires.txt 2019-02-28 19:05:39.000000000 +0100
@@ -9,3 +9,6 @@
[:(python_version=='2.7' or python_version=='2.6' or python_version=='3.3')]
enum34>=1.0.4
+
+[:(python_version=='2.7' or python_version=='2.6')]
+futures>=3.1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo_privsep/comm.py new/oslo.privsep-1.32.1/oslo_privsep/comm.py
--- old/oslo.privsep-1.29.2/oslo_privsep/comm.py 2018-09-25 21:49:12.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo_privsep/comm.py 2019-02-28 19:02:41.000000000 +0100
@@ -51,7 +51,8 @@
self.writesock = writesock
def send(self, msg):
- buf = msgpack.packb(msg, use_bin_type=True)
+ buf = msgpack.packb(msg, use_bin_type=True,
+ unicode_errors='surrogateescape')
self.writesock.sendall(buf)
def close(self):
@@ -64,7 +65,8 @@
class Deserializer(six.Iterator):
def __init__(self, readsock):
self.readsock = readsock
- self.unpacker = msgpack.Unpacker(use_list=False, encoding='utf-8')
+ self.unpacker = msgpack.Unpacker(use_list=False, encoding='utf-8',
+ unicode_errors='surrogateescape')
def __iter__(self):
return self
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo_privsep/daemon.py new/oslo.privsep-1.32.1/oslo_privsep/daemon.py
--- old/oslo.privsep-1.29.2/oslo_privsep/daemon.py 2018-09-25 21:49:12.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo_privsep/daemon.py 2019-02-28 19:02:41.000000000 +0100
@@ -12,7 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-'''Privilege separation ("privsep") daemon.
+"""Privilege separation ("privsep") daemon.
To ease transition this supports 2 alternative methods of starting the
daemon, all resulting in a helper process running with elevated
@@ -41,8 +41,9 @@
The privsep daemon exits when the communication channel is closed,
(which usually occurs when the unprivileged process exits).
-'''
+"""
+from concurrent import futures
import enum
import errno
import io
@@ -55,20 +56,20 @@
import tempfile
import threading
-if platform.system() == 'Linux':
- import fcntl
- import grp
- import pwd
-
import eventlet
from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import importutils
+import six
from oslo_privsep._i18n import _
from oslo_privsep import capabilities
from oslo_privsep import comm
+if platform.system() == 'Linux':
+ import fcntl
+ import grp
+ import pwd
LOG = logging.getLogger(__name__)
@@ -352,6 +353,9 @@
self.user = context.conf.user
self.group = context.conf.group
self.caps = set(context.conf.capabilities)
+ self.thread_pool = futures.ThreadPoolExecutor(
+ context.conf.thread_pool_size)
+ self.communication_error = None
def run(self):
"""Run request loop. Sets up environment, then calls loop()"""
@@ -413,53 +417,95 @@
'inh': fmt_caps(inh),
})
- def _process_cmd(self, cmd, *args):
+ def _process_cmd(self, msgid, cmd, *args):
+ """Executes the requested command in an execution thread.
+
+ This executes a call within a thread executor and returns the results
+ of the execution.
+
+ :param msgid: The message identifier.
+ :param cmd: The `Message` type indicating the command type.
+ :param args: The function, args, and kwargs if a Message.CALL type.
+ :return: A tuple of the return status, optional call output, and
+ optional error information.
+ """
if cmd == Message.PING:
return (Message.PONG.value,)
- elif cmd == Message.CALL:
+ try:
+ if cmd != Message.CALL:
+ raise ProtocolError(_('Unknown privsep cmd: %s') % cmd)
+
+ # Extract the callable and arguments
name, f_args, f_kwargs = args
func = importutils.import_class(name)
-
if not self.context.is_entrypoint(func):
msg = _('Invalid privsep function: %s not exported') % name
raise NameError(msg)
ret = func(*f_args, **f_kwargs)
return (Message.RET.value, ret)
+ except Exception as e:
+ LOG.debug(
+ 'privsep: Exception during request[%(msgid)s]: '
+ '%(err)s', {'msgid': msgid, 'err': e}, exc_info=True)
+ cls = e.__class__
+ cls_name = '%s.%s' % (cls.__module__, cls.__name__)
+ return (Message.ERR.value, cls_name, e.args)
- raise ProtocolError(_('Unknown privsep cmd: %s') % cmd)
+ def _create_done_callback(self, msgid):
+ """Creates a future callback to receive command execution results.
- def loop(self):
- """Main body of daemon request loop"""
- LOG.info('privsep daemon running as pid %s', os.getpid())
+ :param msgid: The message identifier.
+ :return: A future reply callback.
+ """
+ channel = self.channel
- # We *are* this context now - any calls through it should be
- # executed locally.
- self.context.set_client_mode(False)
+ def _call_back(result):
+ """Future execution callback.
- for msgid, msg in self.channel:
- LOG.debug('privsep: request[%(msgid)s]: %(req)s',
- {'msgid': msgid, 'req': msg})
+ :param result: The `future` execution and its results.
+ """
try:
- reply = self._process_cmd(*msg)
+ reply = result.result()
+ LOG.debug('privsep: reply[%(msgid)s]: %(reply)s',
+ {'msgid': msgid, 'reply': reply})
+ channel.send((msgid, reply))
+ except IOError:
+ self.communication_error = sys.exc_info()
except Exception as e:
LOG.debug(
- 'privsep: Exception during request[%(msgid)s]: %(err)s',
- {'msgid': msgid, 'err': e}, exc_info=True)
+ 'privsep: Exception during request[%(msgid)s]: '
+ '%(err)s', {'msgid': msgid, 'err': e}, exc_info=True)
cls = e.__class__
cls_name = '%s.%s' % (cls.__module__, cls.__name__)
reply = (Message.ERR.value, cls_name, e.args)
+ try:
+ channel.send((msgid, reply))
+ except IOError:
+ self.communication_error = sys.exc_info()
- try:
- LOG.debug('privsep: reply[%(msgid)s]: %(reply)s',
- {'msgid': msgid, 'reply': reply})
- self.channel.send((msgid, reply))
- except IOError as e:
- if e.errno == errno.EPIPE:
+ return _call_back
+
+ def loop(self):
+ """Main body of daemon request loop"""
+ LOG.info('privsep daemon running as pid %s', os.getpid())
+
+ # We *are* this context now - any calls through it should be
+ # executed locally.
+ self.context.set_client_mode(False)
+
+ for msgid, msg in self.channel:
+ error = self.communication_error
+ if error:
+ if error[1].errno == errno.EPIPE:
# Write stream closed, exit loop
break
- raise
+ six.reraise(error)
+
+ # Submit the command for execution
+ future = self.thread_pool.submit(self._process_cmd, msgid, *msg)
+ future.add_done_callback(self._create_done_callback(msgid))
LOG.debug('Socket closed, shutting down privsep daemon')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo_privsep/priv_context.py new/oslo.privsep-1.32.1/oslo_privsep/priv_context.py
--- old/oslo.privsep-1.29.2/oslo_privsep/priv_context.py 2018-09-25 21:49:12.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo_privsep/priv_context.py 2019-02-28 19:02:41.000000000 +0100
@@ -12,10 +12,11 @@
# License for the specific language governing permissions and limitations
# under the License.
-
+import copy
import enum
import functools
import logging
+import multiprocessing
import shlex
import sys
@@ -48,6 +49,12 @@
type=types.List(CapNameOrInt), default=[],
help=_('List of Linux capabilities retained by the privsep '
'daemon.')),
+ cfg.IntOpt('thread_pool_size',
+ min=1,
+ help=_("The number of threads available for privsep to "
+ "concurrently run processes. Defaults to the number of "
+ "CPU cores in the system."),
+ default=multiprocessing.cpu_count()),
cfg.StrOpt('helper_command',
help=_('Command to invoke to start the privsep daemon if '
'not using the "fork" method. '
@@ -62,6 +69,33 @@
_HELPER_COMMAND_PREFIX = ['sudo']
+def _list_opts():
+ """Returns a list of oslo.config options available in the library.
+
+ The returned list includes all oslo.config options which may be registered
+ at runtime by the library.
+
+ Each element of the list is a tuple. The first element is the name of the
+ group under which the list of elements in the second element will be
+ registered. A group name of None corresponds to the [DEFAULT] group in
+ config files.
+
+ The purpose of this is to allow tools like the Oslo sample config file
+ generator to discover the options exposed to users by this library.
+
+ :returns: a list of (group_name, opts) tuples
+ """
+ # This is the default group name, but that can be overridden by the caller
+ group = cfg.OptGroup('privsep',
+ title='oslo.privsep options',
+ help='Configuration options for the oslo.privsep '
+ 'daemon. Note that this group name can be '
+ 'changed by the consuming service. Check the '
+ 'service\'s docs to see if this is the case.'
+ )
+ return [(group, copy.deepcopy(OPTS))]
+
+
@enum.unique
class Method(enum.Enum):
FORK = 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo_privsep/tests/test_comm.py new/oslo.privsep-1.32.1/oslo_privsep/tests/test_comm.py
--- old/oslo.privsep-1.29.2/oslo_privsep/tests/test_comm.py 2018-09-25 21:49:12.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo_privsep/tests/test_comm.py 2019-02-28 19:02:41.000000000 +0100
@@ -72,7 +72,7 @@
self.assertSendable(data)
def test_unicode(self):
- data = u'\u4e09\u9df9'
+ data = u'\u4e09\u9df9\udc82'
self.assertSendable(data)
def test_tuple(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo_privsep/tests/test_daemon.py new/oslo.privsep-1.32.1/oslo_privsep/tests/test_daemon.py
--- old/oslo.privsep-1.29.2/oslo_privsep/tests/test_daemon.py 2018-09-25 21:49:23.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo_privsep/tests/test_daemon.py 2019-02-28 19:02:41.000000000 +0100
@@ -149,6 +149,7 @@
context = mock.NonCallableMock()
context.conf.user = 42
context.conf.group = 84
+ context.conf.thread_pool_size = 10
context.conf.capabilities = [
capabilities.CAP_SYS_ADMIN, capabilities.CAP_NET_ADMIN]
@@ -174,6 +175,6 @@
class WithContextTest(testctx.TestContextTestCase):
def test_unexported(self):
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
NameError, 'undecorated not exported',
testctx.context._wrap, undecorated)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/oslo_privsep/tests/test_priv_context.py new/oslo.privsep-1.32.1/oslo_privsep/tests/test_priv_context.py
--- old/oslo.privsep-1.29.2/oslo_privsep/tests/test_priv_context.py 2018-09-25 21:49:23.000000000 +0200
+++ new/oslo.privsep-1.32.1/oslo_privsep/tests/test_priv_context.py 2019-02-28 19:02:41.000000000 +0100
@@ -186,7 +186,7 @@
self.assertEqual(43, add1(42))
def test_raises_standard(self):
- self.assertRaisesRegexp(
+ self.assertRaisesRegex(
RuntimeError, "I can't let you do that Dave", fail)
def test_raises_custom(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/releasenotes/notes/add_thread_pool_size-a54e6f27ab019f96.yaml new/oslo.privsep-1.32.1/releasenotes/notes/add_thread_pool_size-a54e6f27ab019f96.yaml
--- old/oslo.privsep-1.29.2/releasenotes/notes/add_thread_pool_size-a54e6f27ab019f96.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.privsep-1.32.1/releasenotes/notes/add_thread_pool_size-a54e6f27ab019f96.yaml 2019-02-28 19:02:41.000000000 +0100
@@ -0,0 +1,7 @@
+---
+features:
+ - |
+ Privsep now uses multithreading to allow concurrency in executing
+ privileged commands. The number of concurrent threads defaults to the
+ available CPU cores, but can be adjusted by the new ``thread_pool_size``
+ config option.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/releasenotes/notes/reno.cache new/oslo.privsep-1.32.1/releasenotes/notes/reno.cache
--- old/oslo.privsep-1.29.2/releasenotes/notes/reno.cache 2018-09-25 21:52:34.000000000 +0200
+++ new/oslo.privsep-1.32.1/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/releasenotes/source/index.rst new/oslo.privsep-1.32.1/releasenotes/source/index.rst
--- old/oslo.privsep-1.29.2/releasenotes/source/index.rst 2018-09-25 21:49:23.000000000 +0200
+++ new/oslo.privsep-1.32.1/releasenotes/source/index.rst 2019-02-28 19:02:41.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/releasenotes/source/rocky.rst new/oslo.privsep-1.32.1/releasenotes/source/rocky.rst
--- old/oslo.privsep-1.29.2/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.privsep-1.32.1/releasenotes/source/rocky.rst 2019-02-28 19:02:41.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/requirements.txt new/oslo.privsep-1.32.1/requirements.txt
--- old/oslo.privsep-1.29.2/requirements.txt 2018-09-25 21:49:12.000000000 +0200
+++ new/oslo.privsep-1.32.1/requirements.txt 2019-02-28 19:02:41.000000000 +0100
@@ -11,3 +11,4 @@
eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT
greenlet>=0.4.10 # MIT
msgpack>=0.5.0 # Apache-2.0
+futures>=3.1.1;python_version=='2.7' or python_version=='2.6' # PSF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/setup.cfg new/oslo.privsep-1.32.1/setup.cfg
--- old/oslo.privsep-1.29.2/setup.cfg 2018-09-25 21:52:34.000000000 +0200
+++ new/oslo.privsep-1.32.1/setup.cfg 2019-02-28 19:05:39.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.privsep/latest/
classifier =
Environment :: OpenStack
@@ -38,6 +38,8 @@
[entry_points]
console_scripts =
privsep-helper = oslo_privsep.daemon:helper_main
+oslo.config.opts =
+ oslo.privsep = oslo_privsep.priv_context:_list_opts
[upload_sphinx]
upload-dir = doc/build/html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/test-requirements.txt new/oslo.privsep-1.32.1/test-requirements.txt
--- old/oslo.privsep-1.29.2/test-requirements.txt 2018-09-25 21:49:12.000000000 +0200
+++ new/oslo.privsep-1.32.1/test-requirements.txt 2019-02-28 19:02:41.000000000 +0100
@@ -2,7 +2,7 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
mock>=2.0.0 # BSD
fixtures>=3.0.0 # Apache-2.0/BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.privsep-1.29.2/tox.ini new/oslo.privsep-1.32.1/tox.ini
--- old/oslo.privsep-1.29.2/tox.ini 2018-09-25 21:49:23.000000000 +0200
+++ new/oslo.privsep-1.32.1/tox.ini 2019-02-28 19:02:41.000000000 +0100
@@ -3,12 +3,11 @@
envlist = py35,py27,pypy,pep8
[testenv]
-basepython = python3
install_command = pip install {opts} {packages}
whitelist_externals =
/bin/sh
deps =
- -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+ -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
commands = stestr run --slowest {posargs}
@@ -17,6 +16,7 @@
basepython = python2.7
[testenv:pep8]
+basepython = python3
deps =
-r{toxinidir}/test-requirements.txt
commands =
@@ -25,9 +25,11 @@
bandit -r oslo_privsep -x tests -n5 --skip B404,B603
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:docs]
+basepython = python3
commands = python setup.py build_sphinx
[testenv:cover]
@@ -35,7 +37,7 @@
setenv =
PYTHON=coverage run --source $project --parallel-mode
commands =
- stestr run '{posargs}'
+ stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
@@ -56,9 +58,11 @@
oslo_privsep._i18n
[testenv:releasenotes]
+basepython = python3
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:lower-constraints]
+basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
1
0
Hello community,
here is the log from the commit of package python-oslo.policy for openSUSE:Factory checked in at 2019-05-03 22:42:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.policy (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.policy.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.policy"
Fri May 3 22:42:31 2019 rev:10 rq:692861 version:2.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.policy/python-oslo.policy.changes 2018-10-01 08:18:23.209930680 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.policy.new.5148/python-oslo.policy.changes 2019-05-03 22:42:32.791256618 +0200
@@ -2 +2,42 @@
-Wed Sep 19 23:17:37 UTC 2018 - cloud-devel(a)suse.de
+Mon Apr 8 11:37:57 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.1.1
+ - Use template for lower-constraints
+ - Fix sample config value when set_defaults is used
+ - Imported Translations from Zanata
+ - sphinxext: Start parsing 'DocumentedRuleDefault.description' as rST
+ - Remove PyPI downloads
+ - Fully log RBAC enforcement data
+ - Add ability to pass in target data for the oslopolicy-checker
+ - Add guidelines for naming policies
+ - Prevent sensitive target data from being logged
+ - generator: Reimplement wrapping of 'description'
+ - Change openstack-dev to openstack-discuss
+ - import zuul job settings from project-config
+ - oslopolicy-checker: iterate through rules in sorted order
+ - Update reno for stable/rocky
+ - add python 3.6 unit test job
+ - Add domain scope support for scope types
+ - Correct typo in docs
+ - Unit test for CLI
+ - Add docs for developers testing APIs
+ - add lib-forward-testing-python3 test job
+ - Move _capture_stdout to a common place
+ - Use oslo.config instead of argparse.
+ - Pass in policy name as part of the oslopolicy-check check call
+ - Add minor nits in testing documentation
+ - Docs: Remove references to JSON format
+ - Add ability for policy-checker to read configuration
+ - Add policy-upgrade tool
+ - Fix usage of token fixture in shell tests
+ - Fixes is_admin type from StrOpt to BoolOpt.
+ - Fixes file access using with statements.
+ - Update hacking version
+ - Make upgrades more robust with policy overrides
+ - Clean up .gitignore references to personal tools
+ - Enhance test to prevent JSON parsing regression
+ - Update sphinx extension logging
+ - add python 3.7 unit test job
+
+-------------------------------------------------------------------
+Thu Sep 20 22:21:48 UTC 2018 - cloud-devel(a)suse.de
Old:
----
oslo.policy-1.38.1.tar.gz
New:
----
oslo.policy-2.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.policy.spec ++++++
--- /var/tmp/diff_new_pack.AUeQeb/_old 2019-05-03 22:42:34.079259330 +0200
+++ /var/tmp/diff_new_pack.AUeQeb/_new 2019-05-03 22:42:34.115259406 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.policy
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,19 +17,18 @@
Name: python-oslo.policy
-Version: 1.38.1
+Version: 2.1.1
Release: 0
Summary: OpenStack Oslo Policy library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.policy
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.policy/oslo.policy-1.…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.policy/oslo.policy-2.…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-PyYAML >= 3.12
-BuildRequires: python2-docutils
BuildRequires: python2-oslo.config >= 5.2.0
-BuildRequires: python2-oslo.context >= 2.21.0
+BuildRequires: python2-oslo.context >= 2.22.0
BuildRequires: python2-oslo.i18n >= 3.15.3
BuildRequires: python2-oslo.serialization >= 2.18.0
BuildRequires: python2-oslotest
@@ -39,9 +38,8 @@
BuildRequires: python2-stestr
BuildRequires: python3-PyYAML >= 3.12
BuildRequires: python3-devel
-BuildRequires: python3-docutils
BuildRequires: python3-oslo.config >= 5.2.0
-BuildRequires: python3-oslo.context >= 2.21.0
+BuildRequires: python3-oslo.context >= 2.22.0
BuildRequires: python3-oslo.i18n >= 3.15.3
BuildRequires: python3-oslo.serialization >= 2.18.0
BuildRequires: python3-oslotest
@@ -51,7 +49,7 @@
BuildRequires: python3-stestr
Requires: python-PyYAML >= 3.12
Requires: python-oslo.config >= 5.2.0
-Requires: python-oslo.context >= 2.21.0
+Requires: python-oslo.context >= 2.22.0
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.serialization >= 2.18.0
Requires: python-requests >= 2.14.2
@@ -84,9 +82,8 @@
Documentation for the Oslo Policy library.
%prep
-%autosetup -p1 -n oslo.policy-1.38.1
+%autosetup -p1 -n oslo.policy-2.1.1
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -102,6 +99,7 @@
%python_clone -a %{buildroot}%{_bindir}/oslopolicy-list-redundant
%python_clone -a %{buildroot}%{_bindir}/oslopolicy-policy-generator
%python_clone -a %{buildroot}%{_bindir}/oslopolicy-sample-generator
+%python_clone -a %{buildroot}%{_bindir}/oslopolicy-policy-upgrade
%post
%{python_install_alternative oslopolicy-checker oslopolicy-list-redundant oslopolicy-policy-generator oslopolicy-sample-generator}
@@ -119,6 +117,7 @@
%python_alternative %{_bindir}/oslopolicy-list-redundant
%python_alternative %{_bindir}/oslopolicy-policy-generator
%python_alternative %{_bindir}/oslopolicy-sample-generator
+%python_alternative %{_bindir}/oslopolicy-policy-upgrade
%{python_sitelib}/oslo_policy
%{python_sitelib}/*.egg-info
++++++ _service ++++++
--- /var/tmp/diff_new_pack.AUeQeb/_old 2019-05-03 22:42:34.363259928 +0200
+++ /var/tmp/diff_new_pack.AUeQeb/_new 2019-05-03 22:42:34.375259953 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.policy.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.policy/stable/rocky/requir…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.policy/stable/stein/requir…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.policy</param>
</service>
++++++ oslo.policy-1.38.1.tar.gz -> oslo.policy-2.1.1.tar.gz ++++++
++++ 2548 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-oslo.middleware for openSUSE:Factory checked in at 2019-05-03 22:42:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.middleware (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.middleware.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.middleware"
Fri May 3 22:42:29 2019 rev:12 rq:692860 version:3.37.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.middleware/python-oslo.middleware.changes 2018-09-07 15:39:00.138562001 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.middleware.new.5148/python-oslo.middleware.changes 2019-05-03 22:42:29.347249368 +0200
@@ -1,0 +2,15 @@
+Mon Apr 8 11:49:31 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.37.1
+ - Update mailinglist from dev to discuss
+ - Document security considerations for detailed healthcheck
+ - add lib-forward-testing-python3 test job
+ - Remove moxstubout usage
+ - Update reno for stable/rocky
+ - Clean up .gitignore references to personal tools
+ - Use template for lower-constraints
+ - add python 3.6 unit test job
+ - add python 3.7 unit test job
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
oslo.middleware-3.36.0.tar.gz
New:
----
oslo.middleware-3.37.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.middleware.spec ++++++
--- /var/tmp/diff_new_pack.P2SjfO/_old 2019-05-03 22:42:29.871250471 +0200
+++ /var/tmp/diff_new_pack.P2SjfO/_new 2019-05-03 22:42:29.875250480 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.middleware
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.middleware
-Version: 3.36.0
+Version: 3.37.1
Release: 0
Summary: OpenStack oslo.middleware library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.middleware
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.middleware/oslo.middl…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.middleware/oslo.middl…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-Jinja2 >= 2.10
@@ -96,9 +96,8 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n oslo.middleware-3.36.0
+%autosetup -p1 -n oslo.middleware-3.37.1
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.P2SjfO/_old 2019-05-03 22:42:29.919250572 +0200
+++ /var/tmp/diff_new_pack.P2SjfO/_new 2019-05-03 22:42:29.919250572 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.middleware.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.middleware/stable/rocky/re…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.middleware/stable/stein/re…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.middleware</param>
</service>
++++++ oslo.middleware-3.36.0.tar.gz -> oslo.middleware-3.37.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/.zuul.yaml new/oslo.middleware-3.37.1/.zuul.yaml
--- old/oslo.middleware-3.36.0/.zuul.yaml 2018-07-20 03:07:30.000000000 +0200
+++ new/oslo.middleware-3.37.1/.zuul.yaml 2019-02-28 19:02:11.000000000 +0100
@@ -1,7 +1,13 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/AUTHORS new/oslo.middleware-3.37.1/AUTHORS
--- old/oslo.middleware-3.36.0/AUTHORS 2018-07-20 03:11:50.000000000 +0200
+++ new/oslo.middleware-3.37.1/AUTHORS 2019-02-28 19:04:29.000000000 +0100
@@ -7,6 +7,7 @@
Andreas Jaeger <aj(a)suse.de>
Ann Kamyshnikova <akamyshnikova(a)mirantis.com>
Anusree <anusree.a04(a)gmail.com>
+Ben Nemec <bnemec(a)redhat.com>
Brant Knudson <bknudson(a)us.ibm.com>
Cedric Brandily <zzelle(a)gmail.com>
Chang Bo Guo <guochbo(a)cn.ibm.com>
@@ -15,6 +16,7 @@
Chris Buccella <buccella(a)linux.vnet.ibm.com>
Christian Berendt <berendt(a)b1-systems.de>
Chuck Short <chuck.short(a)canonical.com>
+Chuck Short <chucks(a)redhat.com>
Craige McWhirter <craige(a)mcwhirter.com.au>
Cyril Roelandt <cyril.roelandt(a)enovance.com>
Dan Prince <dprince(a)redhat.com>
@@ -73,7 +75,6 @@
Zhihai Song <zhihai.song(a)easystack.cn>
ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
chenghuiyu <yuchenghui(a)unionpay.com>
gengchc2 <geng.changcai2(a)zte.com.cn>
gord chung <gord(a)live.ca>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/ChangeLog new/oslo.middleware-3.37.1/ChangeLog
--- old/oslo.middleware-3.36.0/ChangeLog 2018-07-20 03:11:49.000000000 +0200
+++ new/oslo.middleware-3.37.1/ChangeLog 2019-02-28 19:04:29.000000000 +0100
@@ -1,6 +1,24 @@
CHANGES
=======
+3.37.1
+------
+
+* add python 3.7 unit test job
+* Use template for lower-constraints
+* Update mailinglist from dev to discuss
+
+3.37.0
+------
+
+* Clean up .gitignore references to personal tools
+* Document security considerations for detailed healthcheck
+* Remove moxstubout usage
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+
3.36.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/PKG-INFO new/oslo.middleware-3.37.1/PKG-INFO
--- old/oslo.middleware-3.36.0/PKG-INFO 2018-07-20 03:11:50.000000000 +0200
+++ new/oslo.middleware-3.37.1/PKG-INFO 2019-02-28 19:04:29.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.middleware
-Version: 3.36.0
+Version: 3.37.1
Summary: Oslo Middleware library
Home-page: https://docs.openstack.org/oslo.middleware/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ===================================
oslo.middleware
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/oslo.middleware.egg-info/PKG-INFO new/oslo.middleware-3.37.1/oslo.middleware.egg-info/PKG-INFO
--- old/oslo.middleware-3.36.0/oslo.middleware.egg-info/PKG-INFO 2018-07-20 03:11:50.000000000 +0200
+++ new/oslo.middleware-3.37.1/oslo.middleware.egg-info/PKG-INFO 2019-02-28 19:04:29.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.middleware
-Version: 3.36.0
+Version: 3.37.1
Summary: Oslo Middleware library
Home-page: https://docs.openstack.org/oslo.middleware/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ===================================
oslo.middleware
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/oslo.middleware.egg-info/SOURCES.txt new/oslo.middleware-3.37.1/oslo.middleware.egg-info/SOURCES.txt
--- old/oslo.middleware-3.36.0/oslo.middleware.egg-info/SOURCES.txt 2018-07-20 03:11:50.000000000 +0200
+++ new/oslo.middleware-3.37.1/oslo.middleware.egg-info/SOURCES.txt 2019-02-28 19:04:29.000000000 +0100
@@ -82,6 +82,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/oslo.middleware.egg-info/pbr.json new/oslo.middleware-3.37.1/oslo.middleware.egg-info/pbr.json
--- old/oslo.middleware-3.36.0/oslo.middleware.egg-info/pbr.json 2018-07-20 03:11:50.000000000 +0200
+++ new/oslo.middleware-3.37.1/oslo.middleware.egg-info/pbr.json 2019-02-28 19:04:29.000000000 +0100
@@ -1 +1 @@
-{"git_version": "48ec101", "is_release": true}
\ No newline at end of file
+{"git_version": "acfa72e", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/oslo_middleware/healthcheck/opts.py new/oslo.middleware-3.37.1/oslo_middleware/healthcheck/opts.py
--- old/oslo.middleware-3.36.0/oslo_middleware/healthcheck/opts.py 2018-07-20 03:07:30.000000000 +0200
+++ new/oslo.middleware-3.37.1/oslo_middleware/healthcheck/opts.py 2019-02-28 19:02:11.000000000 +0100
@@ -20,7 +20,11 @@
help='The path to respond to healtcheck requests on.'),
cfg.BoolOpt('detailed',
default=False,
- help='Show more detailed information as part of the response'),
+ help='Show more detailed information as part of the response. '
+ 'Security note: Enabling this option may expose '
+ 'sensitive details about the service being monitored. '
+ 'Be sure to verify that it will not violate your '
+ 'security policies.'),
cfg.ListOpt('backends',
default=[],
help='Additional backends that can perform health checks and '
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/oslo_middleware/tests/test_correlation_id.py new/oslo.middleware-3.37.1/oslo_middleware/tests/test_correlation_id.py
--- old/oslo.middleware-3.36.0/oslo_middleware/tests/test_correlation_id.py 2018-07-20 03:07:30.000000000 +0200
+++ new/oslo.middleware-3.37.1/oslo_middleware/tests/test_correlation_id.py 2019-02-28 19:02:11.000000000 +0100
@@ -13,11 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
-import uuid
-
+import fixtures
import mock
from oslotest import base as test_base
-from oslotest import moxstubout
from oslo_middleware import correlation_id
@@ -26,7 +24,6 @@
def setUp(self):
super(CorrelationIdTest, self).setUp()
- self.stubs = self.useFixture(moxstubout.MoxStubout()).stubs
def test_process_request(self):
app = mock.Mock()
@@ -35,7 +32,7 @@
mock_uuid4 = mock.Mock()
mock_uuid4.return_value = "fake_uuid"
- self.stubs.Set(uuid, 'uuid4', mock_uuid4)
+ self.useFixture(fixtures.MockPatch('uuid.uuid4', mock_uuid4))
middleware = correlation_id.CorrelationId(app)
middleware(req)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/releasenotes/source/index.rst new/oslo.middleware-3.37.1/releasenotes/source/index.rst
--- old/oslo.middleware-3.36.0/releasenotes/source/index.rst 2018-07-20 03:07:30.000000000 +0200
+++ new/oslo.middleware-3.37.1/releasenotes/source/index.rst 2019-02-28 19:02:11.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/releasenotes/source/rocky.rst new/oslo.middleware-3.37.1/releasenotes/source/rocky.rst
--- old/oslo.middleware-3.36.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.middleware-3.37.1/releasenotes/source/rocky.rst 2019-02-28 19:02:11.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.middleware-3.36.0/setup.cfg new/oslo.middleware-3.37.1/setup.cfg
--- old/oslo.middleware-3.36.0/setup.cfg 2018-07-20 03:11:50.000000000 +0200
+++ new/oslo.middleware-3.37.1/setup.cfg 2019-02-28 19:04:29.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.middleware/latest/
classifier =
Environment :: OpenStack
1
0
Hello community,
here is the log from the commit of package python-oslo.messaging for openSUSE:Factory checked in at 2019-05-03 22:42:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.messaging (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.messaging.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.messaging"
Fri May 3 22:42:26 2019 rev:17 rq:692859 version:9.5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.messaging/python-oslo.messaging.changes 2018-09-07 15:38:58.602563650 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.messaging.new.5148/python-oslo.messaging.changes 2019-05-03 22:42:27.827246168 +0200
@@ -1,0 +2,53 @@
+Mon Apr 8 11:37:20 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 9.5.0
+ - Use '/' for the vhost if the transport_url has no trailing '/'
+ - Use ensure_connection to prevent loss of connection error logs
+ - Add a test for rabbit URLs lacking terminating '/'
+ - Fix the coverage tox tests
+ - Update mailinglist from dev to discuss
+ - Change python3.5 job to python3.7 job on Stein+
+ - import zuul job settings from project-config
+ - Remove rabbit_durable_queues deprecated option
+ - Remove deprecated amqp1 options
+ - Fix oslo.messaging default transport
+ - Remove setting of DEVSTACK_GATE_EXERCISES
+ - Update reno for stable/rocky
+ - Remove default_{host,port} deprecated options
+ - add python 3.6 unit test job
+ - Allow transport_url initialization in ConfFixture constructor
+ - add lib-forward-testing-python3 test job
+ - Avoid unnecessary use of items()
+ - Issue blocking ACK for RPC requests from the consumer thread
+ - Don't use monotonic with Python >=3.3
+ - Remove the deprecated ZeroMQ driver
+ - Use default exchange for direct messaging
+ - always build universal wheels
+ - doc: Remove crud from conf.py file
+ - Refactor GetTransportSadPathTestCase
+ - Bump amqp requirement version to >= 2.4.0
+ - Avoid logging passwords on connection events
+ - Kafka driver deployment guide
+ - Remove rpc_backend and ConfFixture.transport_driver
+ - Switch driver to confluent-kafka client library
+ - Bump amqp requirement version to >=2.4.1
+ - Update hacking version
+ - Using pip as a python module
+ - Clean up .gitignore references to personal tools
+ - Mark telemetry tests nv and remove from gate
+ - Remove deprecated rabbit options
+ - add python 3.7 unit test job
+ - Add release note about deprecated option removals
+ - Use templates for cover and lower-constraints
+ - Call listener stop only if listener is initialized
+
+-------------------------------------------------------------------
+Wed Mar 6 22:09:37 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 8.1.2
+ - Update UPPER_CONSTRAINTS_FILE for stable/rocky
+ - Avoid logging passwords on connection events
+ - Update .gitreview for stable/rocky
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
oslo.messaging-8.1.0.tar.gz
New:
----
oslo.messaging-9.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.messaging.spec ++++++
--- /var/tmp/diff_new_pack.jyUdMZ/_old 2019-05-03 22:42:28.247247052 +0200
+++ /var/tmp/diff_new_pack.jyUdMZ/_new 2019-05-03 22:42:28.251247060 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.messaging
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,30 +12,30 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.messaging
-Version: 8.1.0
+Version: 9.5.0
Release: 0
Summary: OpenStack oslo.messaging library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.messaging
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.messaging/oslo.messag…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.messaging/oslo.messag…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-PyYAML >= 3.12
BuildRequires: python2-WebOb >= 1.7.1
-BuildRequires: python2-amqp >= 2.3.0
+BuildRequires: python2-amqp >= 2.4.1
BuildRequires: python2-cachetools >= 2.0.0
+BuildRequires: python2-confluent-kafka
BuildRequires: python2-debtcollector >= 1.2.0
BuildRequires: python2-eventlet
BuildRequires: python2-fixtures
BuildRequires: python2-futurist >= 1.2.0
BuildRequires: python2-greenlet
-BuildRequires: python2-kafka-python
BuildRequires: python2-kombu >= 4.0.0
BuildRequires: python2-mock
BuildRequires: python2-monotonic >= 0.6
@@ -53,28 +53,26 @@
BuildRequires: python2-pika-pool
BuildRequires: python2-pyngus
BuildRequires: python2-python-subunit
-BuildRequires: python2-pyzmq
BuildRequires: python2-redis
BuildRequires: python2-six >= 1.10.0
BuildRequires: python2-stestr
BuildRequires: python2-stevedore >= 1.20.0
-BuildRequires: python2-tenacity >= 4.4.0
+BuildRequires: python2-tenacity
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
BuildRequires: python3-PyYAML >= 3.12
BuildRequires: python3-WebOb >= 1.7.1
-BuildRequires: python3-amqp >= 2.3.0
+BuildRequires: python3-amqp >= 2.4.1
BuildRequires: python3-cachetools >= 2.0.0
+BuildRequires: python3-confluent-kafka
BuildRequires: python3-debtcollector >= 1.2.0
BuildRequires: python3-devel
BuildRequires: python3-eventlet
BuildRequires: python3-fixtures
BuildRequires: python3-futurist >= 1.2.0
BuildRequires: python3-greenlet
-BuildRequires: python3-kafka-python
BuildRequires: python3-kombu >= 4.0.0
BuildRequires: python3-mock
-BuildRequires: python3-monotonic >= 0.6
BuildRequires: python3-oslo.config >= 5.2.0
BuildRequires: python3-oslo.i18n >= 3.15.3
BuildRequires: python3-oslo.log >= 3.36.0
@@ -89,23 +87,21 @@
BuildRequires: python3-pika-pool
BuildRequires: python3-pyngus
BuildRequires: python3-python-subunit
-BuildRequires: python3-pyzmq
BuildRequires: python3-redis
BuildRequires: python3-six >= 1.10.0
BuildRequires: python3-stestr
BuildRequires: python3-stevedore >= 1.20.0
-BuildRequires: python3-tenacity >= 4.4.0
+BuildRequires: python3-tenacity
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
Requires: python-PyYAML >= 3.12
Requires: python-WebOb >= 1.7.1
-Requires: python-amqp >= 2.3.0
+Requires: python-amqp >= 2.4.1
Requires: python-cachetools >= 2.0.0
Requires: python-debtcollector >= 1.2.0
Requires: python-futurist >= 1.2.0
Requires: python-greenlet
Requires: python-kombu >= 4.0.0
-Requires: python-monotonic >= 0.6
Requires: python-oslo.config >= 5.2.0
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.log >= 3.36.0
@@ -117,11 +113,11 @@
Requires: python-pika-pool
Requires: python-six >= 1.10.0
Requires: python-stevedore >= 1.20.0
-Requires: python-tenacity >= 4.4.0
BuildArch: noarch
%ifpython2
-BuildRequires: python-futures >= 3.0.0
-Requires: python-futures >= 3.0.0
+BuildRequires: python-futures
+Requires: python-futures
+Requires: python-monotonic >= 0.6
%endif
%if 0%{?suse_version}
Requires(post): update-alternatives
@@ -149,9 +145,8 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n oslo.messaging-8.1.0
+%autosetup -p1 -n oslo.messaging-9.5.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
# FIXME(jpena): since version 5.23.0, four tests in the amqp driver are
# failing. Let's remove the tests for now, so we can build a package and
# figure out whatis wrong.
@@ -167,18 +162,12 @@
%install
%{python_install}
-%python_clone -a %{buildroot}%{_bindir}/oslo-messaging-zmq-broker
-%python_clone -a %{buildroot}%{_bindir}/oslo-messaging-zmq-proxy
%python_clone -a %{buildroot}%{_bindir}/oslo-messaging-send-notification
%post
-%python_install_alternative oslo-messaging-zmq-broker
-%python_install_alternative oslo-messaging-zmq-proxy
%python_install_alternative oslo-messaging-send-notification
%postun
-%python_uninstall_alternative oslo-messaging-zmq-broker
-%python_uninstall_alternative oslo-messaging-zmq-proxy
%python_uninstall_alternative oslo-messaging-send-notification
%check
@@ -189,8 +178,6 @@
%doc README.rst ChangeLog
%{python_sitelib}/oslo_messaging
%{python_sitelib}/*.egg-info
-%python_alternative %{_bindir}/oslo-messaging-zmq-broker
-%python_alternative %{_bindir}/oslo-messaging-zmq-proxy
%python_alternative %{_bindir}/oslo-messaging-send-notification
%files -n python-oslo.messaging-doc
++++++ _service ++++++
--- /var/tmp/diff_new_pack.jyUdMZ/_old 2019-05-03 22:42:28.275247111 +0200
+++ /var/tmp/diff_new_pack.jyUdMZ/_new 2019-05-03 22:42:28.275247111 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.messaging.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.messaging/stable/rocky/req…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.messaging/stable/stein/req…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.messaging</param>
</service>
++++++ oslo.messaging-8.1.0.tar.gz -> oslo.messaging-9.5.0.tar.gz ++++++
++++ 10421 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-oslo.log for openSUSE:Factory checked in at 2019-05-03 22:42:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.log (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.log.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.log"
Fri May 3 22:42:22 2019 rev:15 rq:692858 version:3.42.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.log/python-oslo.log.changes 2019-01-24 14:15:21.499227731 +0100
+++ /work/SRC/openSUSE:Factory/.python-oslo.log.new.5148/python-oslo.log.changes 2019-05-03 22:42:24.167238462 +0200
@@ -1,0 +2,27 @@
+Mon Apr 8 11:07:31 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.42.3
+ - Add Windows Event Log handler
+ - Imported Translations from Zanata
+ - Update mailinglist from dev to discuss
+ - Clarify some config options
+ - Use template for lower-constraints
+ - import zuul job settings from project-config
+ - Always build universal wheels
+ - Add config options for log rotation
+ - Update reno for stable/rocky
+ - add python 3.6 unit test job
+ - Fix handling of exc_info in OSJournalHandler
+ - Default oslo.policy logging to INFO
+ - Advancing the protocal of the website to HTTPS in usage.rst.
+ - add lib-forward-testing-python3 test job
+ - Filter args dict in JSONFormatter
+ - Add devstack job with JSONFormatter configured
+ - Fix lower-constraints job
+ - Follow the new PTI for document build
+ - Migrate to stestr
+ - rewrite tests to not rely on implementation details of logging module
+ - Fix up nits in log rotation change
+ - Clean up .gitignore references to personal tools
+
+-------------------------------------------------------------------
Old:
----
oslo.log-3.39.2.tar.gz
New:
----
oslo.log-3.42.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.log.spec ++++++
--- /var/tmp/diff_new_pack.JJlmBe/_old 2019-05-03 22:42:24.579239330 +0200
+++ /var/tmp/diff_new_pack.JJlmBe/_new 2019-05-03 22:42:24.583239338 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.log
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,58 +17,58 @@
Name: python-oslo.log
-Version: 3.39.2
+Version: 3.42.3
Release: 0
Summary: OpenStack log library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.log
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.log/oslo.log-3.39.2.t…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.log/oslo.log-3.42.3.t…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-mock
-BuildRequires: python2-monotonic >= 0.6
+BuildRequires: python2-monotonic >= 1.4
BuildRequires: python2-oslo.config >= 5.2.0
-BuildRequires: python2-oslo.context >= 2.19.2
-BuildRequires: python2-oslo.i18n >= 3.15.3
-BuildRequires: python2-oslo.serialization >= 2.18.0
-BuildRequires: python2-oslo.utils >= 3.33.0
+BuildRequires: python2-oslo.context >= 2.20.0
+BuildRequires: python2-oslo.i18n >= 3.20.0
+BuildRequires: python2-oslo.serialization >= 2.25.0
+BuildRequires: python2-oslo.utils >= 3.36.0
BuildRequires: python2-oslotest
-BuildRequires: python2-pbr >= 2.0.0
+BuildRequires: python2-pbr >= 3.1.1
BuildRequires: python2-pyinotify >= 0.9.6
-BuildRequires: python2-python-dateutil >= 2.5.3
+BuildRequires: python2-python-dateutil >= 2.7.0
BuildRequires: python2-python-subunit
-BuildRequires: python2-six >= 1.10.0
-BuildRequires: python2-testrepository
+BuildRequires: python2-six >= 1.11.0
+BuildRequires: python2-stestr
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
BuildRequires: python3-devel
BuildRequires: python3-mock
-BuildRequires: python3-monotonic >= 0.6
+BuildRequires: python3-monotonic >= 1.4
BuildRequires: python3-oslo.config >= 5.2.0
-BuildRequires: python3-oslo.context >= 2.19.2
-BuildRequires: python3-oslo.i18n >= 3.15.3
-BuildRequires: python3-oslo.serialization >= 2.18.0
-BuildRequires: python3-oslo.utils >= 3.33.0
+BuildRequires: python3-oslo.context >= 2.20.0
+BuildRequires: python3-oslo.i18n >= 3.20.0
+BuildRequires: python3-oslo.serialization >= 2.25.0
+BuildRequires: python3-oslo.utils >= 3.36.0
BuildRequires: python3-oslotest
-BuildRequires: python3-pbr >= 2.0.0
+BuildRequires: python3-pbr >= 3.1.1
BuildRequires: python3-pyinotify >= 0.9.6
-BuildRequires: python3-python-dateutil >= 2.5.3
+BuildRequires: python3-python-dateutil >= 2.7.0
BuildRequires: python3-python-subunit
-BuildRequires: python3-six >= 1.10.0
-BuildRequires: python3-testrepository
+BuildRequires: python3-six >= 1.11.0
+BuildRequires: python3-stestr
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
-Requires: python-debtcollector >= 1.2.0
-Requires: python-monotonic >= 0.6
+Requires: python-debtcollector >= 1.19.0
+Requires: python-monotonic >= 1.4
Requires: python-oslo.config >= 5.2.0
-Requires: python-oslo.context >= 2.19.2
-Requires: python-oslo.i18n >= 3.15.3
-Requires: python-oslo.serialization >= 2.18.0
-Requires: python-oslo.utils >= 3.33.0
+Requires: python-oslo.context >= 2.20.0
+Requires: python-oslo.i18n >= 3.20.0
+Requires: python-oslo.serialization >= 2.25.0
+Requires: python-oslo.utils >= 3.36.0
Requires: python-pyinotify >= 0.9.6
-Requires: python-python-dateutil >= 2.5.3
-Requires: python-six >= 1.10.0
+Requires: python-python-dateutil >= 2.7.0
+Requires: python-six >= 1.11.0
BuildArch: noarch
%if 0%{?suse_version}
Requires(post): update-alternatives
@@ -95,15 +95,14 @@
Documentation for the oslo.log library.
%prep
-%autosetup -p1 -n oslo.log-3.39.2
+%autosetup -p1 -n oslo.log-3.42.3
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
# generate html docs
-%{__python2} setup.py build_sphinx
+PYTHONPATH=. PBR_VERSION=3.42.3 sphinx-build -b html doc/source doc/build/html
rm -rf doc/build/html/.{doctrees,buildinfo}
%install
@@ -116,11 +115,6 @@
%postun
%python_uninstall_alternative convert-json
-%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
-
%files %{python_files}
%license LICENSE
%doc ChangeLog README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.JJlmBe/_old 2019-05-03 22:42:24.603239380 +0200
+++ /var/tmp/diff_new_pack.JJlmBe/_new 2019-05-03 22:42:24.603239380 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.log.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.log/stable/rocky/requireme…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.log/stable/stein/requireme…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.log</param>
</service>
++++++ oslo.log-3.39.2.tar.gz -> oslo.log-3.42.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/.stestr.conf new/oslo.log-3.42.3/.stestr.conf
--- old/oslo.log-3.39.2/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.log-3.42.3/.stestr.conf 2019-02-26 01:06:43.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./oslo_log/tests/unit
+top_dir=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/.testr.conf new/oslo.log-3.42.3/.testr.conf
--- old/oslo.log-3.39.2/.testr.conf 2018-09-25 21:44:42.000000000 +0200
+++ new/oslo.log-3.42.3/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ ./oslo_log $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/.zuul.yaml new/oslo.log-3.42.3/.zuul.yaml
--- old/oslo.log-3.39.2/.zuul.yaml 2018-09-25 21:44:42.000000000 +0200
+++ new/oslo.log-3.42.3/.zuul.yaml 2019-02-26 01:06:43.000000000 +0100
@@ -13,20 +13,51 @@
run: playbooks/legacy/oslo.log-src-grenade-devstack/run.yaml
timeout: 10800
+- job:
+ name: oslo.log-jsonformatter
+ parent: devstack-tempest
+ timeout: 10800
+ vars:
+ devstack_local_conf:
+ post-config:
+ $NOVA_CONF:
+ DEFAULT:
+ use_json: True
+ $NEUTRON_CONF:
+ DEFAULT:
+ use_json: True
+ $GLANCE_CONF:
+ DEFAULT:
+ use_json: True
+ $CINDER_CONF:
+ DEFAULT:
+ use_json: True
+ $KEYSTONE_CONF:
+ DEFAULT:
+ use_json: True
+ irrelevant-files:
+ - ^.*\.rst$
+ - ^api-ref/.*$
+ - ^doc/.*$
+ - ^releasenotes/.*$
+
+
- project:
check:
jobs:
- oslo.log-src-grenade-devstack
-
- - openstack-tox-lower-constraints
+ - oslo.log-jsonformatter
gate:
jobs:
- - openstack-tox-lower-constraints
+ - oslo.log-jsonformatter
templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
- openstack-python-jobs
- openstack-python35-jobs
+ - openstack-python36-jobs
+ - periodic-stable-jobs
- publish-openstack-docs-pti
- - check-requirements
- - lib-forward-testing
- release-notes-jobs-python3
- - periodic-stable-jobs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/AUTHORS new/oslo.log-3.42.3/AUTHORS
--- old/oslo.log-3.39.2/AUTHORS 2018-09-25 21:47:35.000000000 +0200
+++ new/oslo.log-3.42.3/AUTHORS 2019-02-26 01:09:15.000000000 +0100
@@ -29,6 +29,7 @@
Cyril Roelandt <cyril(a)redhat.com>
Daisuke Fujita <fuzita.daisuke(a)jp.fujitsu.com>
Dan Prince <dprince(a)redhat.com>
+Daniel Vincze <dvincze(a)cloudbasesolutions.com>
Davanum Srinivas <davanum(a)gmail.com>
Davanum Srinivas <dims(a)linux.vnet.ibm.com>
David Stanek <dstanek(a)dstanek.com>
@@ -53,6 +54,7 @@
Gage Hugo <gagehugo(a)gmail.com>
Gary Kotton <gkotton(a)vmware.com>
Gorka Eguileor <geguileo(a)redhat.com>
+Hervé Beraud <hberaud(a)redhat.com>
Ian Cordasco <graffatcolmingov(a)gmail.com>
Ihar Hrachyshka <ihrachys(a)redhat.com>
James Carey <jecarey(a)us.ibm.com>
@@ -92,6 +94,7 @@
Masaki Matsushita <glass.saga(a)gmail.com>
Mate Lakat <mate.lakat(a)citrix.com>
Matt Odden <mrodden(a)us.ibm.com>
+Matt Riedemann <mriedem.os(a)gmail.com>
Michael Basnight <mbasnight(a)gmail.com>
Michael Kerrin <michael.kerrin(a)hp.com>
Michael Still <mikal(a)stillhq.com>
@@ -102,7 +105,9 @@
Morgan Fainberg <morgan.fainberg(a)gmail.com>
Nam Nguyen Hoai <namnh(a)vn.fujitsu.com>
Nataliia Uvarova <grafinya.uvarova(a)gmail.com>
+Nikita Gerasimov <nikita.gerasimov(a)oracle.com>
OpenStack Release Bot <infra-root(a)openstack.org>
+Pavlo Shchelokovskyy <shchelokovskyy(a)gmail.com>
Pádraig Brady <pbrady(a)redhat.com>
Radomir Dopieralski <openstack(a)sheep.art.pl>
Rajesh Tailor <rajesh.tailor(a)nttdata.com>
@@ -140,7 +145,6 @@
Zhiteng Huang <zhiteng.huang(a)intel.com>
ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
abhishekkekane <abhishek.kekane(a)nttdata.com>
avnish <avnish.pal(a)nectechnologies.in>
eeldill <elod.illes(a)ericsson.com>
@@ -160,3 +164,4 @@
wangqi <wang.qi(a)99cloud.net>
yan.haifeng <yanheven(a)qq.com>
zhang-jinnan <ben.os(a)99cloud.net>
+zhouxinyong <zhouxinyong(a)inspur.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/ChangeLog new/oslo.log-3.42.3/ChangeLog
--- old/oslo.log-3.39.2/ChangeLog 2018-09-25 21:47:34.000000000 +0200
+++ new/oslo.log-3.42.3/ChangeLog 2019-02-26 01:09:15.000000000 +0100
@@ -1,13 +1,51 @@
CHANGES
=======
-3.39.2
+3.42.3
+------
+
+* Clarify some config options
+
+3.42.2
+------
+
+* Use template for lower-constraints
+
+3.42.1
+------
+
+* Default oslo.policy logging to INFO
+* Update mailinglist from dev to discuss
+* Fix handling of exc\_info in OSJournalHandler
+* Fix up nits in log rotation change
+
+3.42.0
+------
+
+* Add config options for log rotation
+* Advancing the protocal of the website to HTTPS in usage.rst
+
+3.41.0
+------
+
+* Add Windows Event Log handler
+* Clean up .gitignore references to personal tools
+* Always build universal wheels
+* Add devstack job with JSONFormatter configured
+
+3.40.1
------
* Filter args dict in JSONFormatter
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* rewrite tests to not rely on implementation details of logging module
* import zuul job settings from project-config
-* Update UPPER\_CONSTRAINTS\_FILE for stable/rocky
-* Update .gitreview for stable/rocky
+* Follow the new PTI for document build
+* Migrate to stestr
+* Fix lower-constraints job
+* Imported Translations from Zanata
+* Update reno for stable/rocky
3.39.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/PKG-INFO new/oslo.log-3.42.3/PKG-INFO
--- old/oslo.log-3.39.2/PKG-INFO 2018-09-25 21:47:36.000000000 +0200
+++ new/oslo.log-3.42.3/PKG-INFO 2019-02-26 01:09:16.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: oslo.log
-Version: 3.39.2
+Version: 3.42.3
Summary: oslo.log library
Home-page: https://docs.openstack.org/oslo.log/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/RELEASENOTES.rst new/oslo.log-3.42.3/RELEASENOTES.rst
--- old/oslo.log-3.39.2/RELEASENOTES.rst 2018-09-25 21:47:36.000000000 +0200
+++ new/oslo.log-3.42.3/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-========
-oslo.log
-========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/doc/requirements.txt new/oslo.log-3.42.3/doc/requirements.txt
--- old/oslo.log-3.39.2/doc/requirements.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.log-3.42.3/doc/requirements.txt 2019-02-26 01:06:43.000000000 +0100
@@ -0,0 +1,7 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+
+sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
+openstackdocstheme>=1.18.1 # Apache-2.0
+reno>=2.5.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/doc/source/admin/index.rst new/oslo.log-3.42.3/doc/source/admin/index.rst
--- old/oslo.log-3.39.2/doc/source/admin/index.rst 2018-09-25 21:44:30.000000000 +0200
+++ new/oslo.log-3.42.3/doc/source/admin/index.rst 2019-02-26 01:06:43.000000000 +0100
@@ -7,3 +7,4 @@
advanced_config
journal
+ log_rotation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/doc/source/admin/journal.rst new/oslo.log-3.42.3/doc/source/admin/journal.rst
--- old/oslo.log-3.39.2/doc/source/admin/journal.rst 2018-09-25 21:44:30.000000000 +0200
+++ new/oslo.log-3.42.3/doc/source/admin/journal.rst 2019-02-26 01:06:43.000000000 +0100
@@ -155,4 +155,4 @@
- The guide for using systemd in devstack provides additional examples
of effective journalctl queries -
- http://git.openstack.org/cgit/openstack-dev/devstack/tree/SYSTEMD.rst
+ https://git.openstack.org/cgit/openstack-dev/devstack/tree/SYSTEMD.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/doc/source/admin/log_rotation.rst new/oslo.log-3.42.3/doc/source/admin/log_rotation.rst
--- old/oslo.log-3.39.2/doc/source/admin/log_rotation.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.log-3.42.3/doc/source/admin/log_rotation.rst 2019-02-26 01:06:43.000000000 +0100
@@ -0,0 +1,45 @@
+=============
+ Log rotation
+=============
+
+oslo.log can work with ``logrotate``, picking up file changes once log files
+are rotated. Make sure to set the ``watch-log-file`` config option.
+
+Log rotation on Windows
+-----------------------
+
+On Windows, in-use files cannot be renamed or moved. For this reason,
+oslo.log allows setting maximum log file sizes or log rotation interval,
+in which case the service itself will take care of the log rotation (as
+opposed to having an external daemon).
+
+Configuring log rotation
+------------------------
+
+Use the following options to set a maximum log file size. In this sample,
+log files will be rotated when reaching 1GB, having at most 30 log files.
+
+.. code-block:: ini
+
+ [DEFAULT]
+ log_rotation_type = size
+ max_logfile_size_mb = 1024 # MB
+ max_logfile_count = 30
+
+The following sample configures log rotation to be performed every 12 hours.
+
+.. code-block:: ini
+
+ [DEFAULT]
+ log_rotation_type = interval
+ log_rotate_interval = 12
+ log_rotate_interval_type = Hours
+ max_logfile_count = 60
+
+.. note::
+
+ The time of the next rotation is computed when the service starts or when a
+ log rotation is performed, using the time of the last file modification or
+ the service start time, to which the configured log rotation interval is
+ added. This means that service restarts may delay periodic log file
+ rotations.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/doc/source/user/examples.rst new/oslo.log-3.42.3/doc/source/user/examples.rst
--- old/oslo.log-3.39.2/doc/source/user/examples.rst 2018-09-25 21:44:30.000000000 +0200
+++ new/oslo.log-3.42.3/doc/source/user/examples.rst 2019-02-26 01:06:43.000000000 +0100
@@ -8,7 +8,7 @@
the git source of this project. They can also be found in the
`online git repository`_ of this project.
-.. _online git repository: http://git.openstack.org/cgit/openstack/oslo.log/tree/doc/source/examples
+.. _online git repository: https://git.openstack.org/cgit/openstack/oslo.log/tree/doc/source/examples
python_logging.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/doc/source/user/migration.rst new/oslo.log-3.42.3/doc/source/user/migration.rst
--- old/oslo.log-3.39.2/doc/source/user/migration.rst 2018-09-25 21:44:30.000000000 +0200
+++ new/oslo.log-3.42.3/doc/source/user/migration.rst 2019-02-26 01:06:43.000000000 +0100
@@ -23,7 +23,7 @@
level anyway, so those calls should be replaced with calls to
``info()``.
-.. _cross project spec: http://git.openstack.org/cgit/openstack/openstack-specs/tree/specs/log-guid…
+.. _cross project spec: https://git.openstack.org/cgit/openstack/openstack-specs/tree/specs/log-gui…
Deprecation tools moved to ``versionutils``
-------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/doc/source/user/usage.rst new/oslo.log-3.42.3/doc/source/user/usage.rst
--- old/oslo.log-3.39.2/doc/source/user/usage.rst 2018-09-25 21:44:30.000000000 +0200
+++ new/oslo.log-3.42.3/doc/source/user/usage.rst 2019-02-26 01:06:43.000000000 +0100
@@ -88,7 +88,7 @@
Logging within an application should use `Oslo International Utilities (i18n)`_ marker
functions to provide language translation capabilities.
-.. _Oslo International Utilities (i18n): http://docs.openstack.org/oslo.i18n/latest
+.. _Oslo International Utilities (i18n): https://docs.openstack.org/oslo.i18n/latest
.. literalinclude:: examples/usage_i18n.py
:linenos:
@@ -100,7 +100,7 @@
With the use of `Oslo Context`_, log records can also contain
additional contextual information applicable for your application.
-.. _Oslo Context: http://docs.openstack.org/oslo.context/latest
+.. _Oslo Context: https://docs.openstack.org/oslo.context/latest
.. literalinclude:: examples/usage_context.py
:linenos:
@@ -152,7 +152,7 @@
explain how to use different logging levels, and the desired logging
patterns to be used in OpenStack applications.
-.. _OpenStack Logging Guidelines: http://specs.openstack.org/openstack/openstack-specs/specs/log-guidelines.h…
+.. _OpenStack Logging Guidelines: https://specs.openstack.org/openstack/openstack-specs/specs/log-guidelines.…
In a Library
============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/lower-constraints.txt new/oslo.log-3.42.3/lower-constraints.txt
--- old/oslo.log-3.39.2/lower-constraints.txt 2018-09-25 21:44:42.000000000 +0200
+++ new/oslo.log-3.42.3/lower-constraints.txt 2019-02-26 01:06:43.000000000 +0100
@@ -59,7 +59,9 @@
snowballstemmer==1.2.1
Sphinx==1.6.5
sphinxcontrib-websupport==1.0.1
+stestr==2.0.0
stevedore==1.28.0
+systemd-python==234
testrepository==0.0.20
testtools==2.3.0
traceback2==1.4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/oslo.log.egg-info/PKG-INFO new/oslo.log-3.42.3/oslo.log.egg-info/PKG-INFO
--- old/oslo.log-3.39.2/oslo.log.egg-info/PKG-INFO 2018-09-25 21:47:35.000000000 +0200
+++ new/oslo.log-3.42.3/oslo.log.egg-info/PKG-INFO 2019-02-26 01:09:15.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: oslo.log
-Version: 3.39.2
+Version: 3.42.3
Summary: oslo.log library
Home-page: https://docs.openstack.org/oslo.log/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/oslo.log.egg-info/SOURCES.txt new/oslo.log-3.42.3/oslo.log.egg-info/SOURCES.txt
--- old/oslo.log-3.39.2/oslo.log.egg-info/SOURCES.txt 2018-09-25 21:47:35.000000000 +0200
+++ new/oslo.log-3.42.3/oslo.log.egg-info/SOURCES.txt 2019-02-26 01:09:16.000000000 +0100
@@ -1,6 +1,6 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -15,12 +15,14 @@
setup.py
test-requirements.txt
tox.ini
+doc/requirements.txt
doc/source/conf.py
doc/source/index.rst
doc/source/admin/advanced_config.rst
doc/source/admin/example_nova.rst
doc/source/admin/index.rst
doc/source/admin/journal.rst
+doc/source/admin/log_rotation.rst
doc/source/admin/nova_sample.conf
doc/source/configuration/index.rst
doc/source/contributor/index.rst
@@ -94,6 +96,7 @@
releasenotes/notes/info-logging-7b7be9fc7a95aebc.yaml
releasenotes/notes/is_debug_enabled-d7afee4c811a46df.yaml
releasenotes/notes/jsonformatter-repr-fd616eb6fa6caeb3.yaml
+releasenotes/notes/log-rotation-595f8232cd987a6d.yaml
releasenotes/notes/reload_log_config-743817192b1172b6.yaml
releasenotes/notes/remove-log-format-b4b949701cee3315.yaml
releasenotes/notes/remove-syslog-rfc-format-7a06772c0bb48e9b.yaml
@@ -101,6 +104,7 @@
releasenotes/notes/systemd-journal-support-fcbc34b3c5ce93ec.yaml
releasenotes/notes/use-json-option-96f71da54a3b9a18.yaml
releasenotes/notes/use_stderr_default_false-50d846b88cf2be90.yaml
+releasenotes/notes/windows-eventlog-2beb0a6010e342eb.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/liberty.rst
@@ -109,6 +113,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/oslo.log.egg-info/pbr.json new/oslo.log-3.42.3/oslo.log.egg-info/pbr.json
--- old/oslo.log-3.39.2/oslo.log.egg-info/pbr.json 2018-09-25 21:47:35.000000000 +0200
+++ new/oslo.log-3.42.3/oslo.log.egg-info/pbr.json 2019-02-26 01:09:15.000000000 +0100
@@ -1 +1 @@
-{"git_version": "871d2df", "is_release": true}
\ No newline at end of file
+{"git_version": "7c5f836", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/oslo.log.egg-info/requires.txt new/oslo.log-3.42.3/oslo.log.egg-info/requires.txt
--- old/oslo.log-3.39.2/oslo.log.egg-info/requires.txt 2018-09-25 21:47:35.000000000 +0200
+++ new/oslo.log-3.42.3/oslo.log.egg-info/requires.txt 2019-02-26 01:09:15.000000000 +0100
@@ -1,14 +1,16 @@
-pbr!=2.1.0,>=2.0.0
-six>=1.10.0
+pbr>=3.1.1
+six>=1.11.0
oslo.config>=5.2.0
-oslo.context>=2.19.2
-oslo.i18n>=3.15.3
-oslo.utils>=3.33.0
-oslo.serialization!=2.19.1,>=2.18.0
-debtcollector>=1.2.0
+oslo.context>=2.20.0
+oslo.i18n>=3.20.0
+oslo.utils>=3.36.0
+oslo.serialization>=2.25.0
+debtcollector>=1.19.0
+python-dateutil>=2.7.0
+monotonic>=1.4
+
+[:(sys_platform!='win32' and sys_platform!='darwin' and sys_platform!='sunos5')]
pyinotify>=0.9.6
-python-dateutil>=2.5.3
-monotonic>=0.6
[fixtures]
fixtures>=3.0.0
@@ -18,12 +20,9 @@
[test]
hacking!=0.13.0,<0.14,>=0.12.0
-testrepository>=0.0.18
-testtools>=2.2.0
+stestr>=2.0.0
+testtools>=2.3.0
mock>=2.0.0
-oslotest>=3.2.0
-coverage!=4.4,>=4.0
-sphinx!=1.6.6,!=1.6.7,>=1.6.2
-openstackdocstheme>=1.18.1
-reno>=2.5.0
+oslotest>=3.3.0
+coverage>=4.5.1
bandit>=1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/oslo_log/_options.py new/oslo.log-3.42.3/oslo_log/_options.py
--- old/oslo.log-3.39.2/oslo_log/_options.py 2018-09-25 21:44:30.000000000 +0200
+++ new/oslo.log-3.42.3/oslo_log/_options.py 2019-02-26 01:06:43.000000000 +0100
@@ -27,6 +27,7 @@
'keystonemiddleware=WARN', 'routes.middleware=WARN',
'stevedore=WARN', 'taskflow=WARN',
'keystoneauth=WARN', 'oslo.cache=INFO',
+ 'oslo_policy=INFO',
'dogpile.core.dogpile=INFO']
_IGNORE_MESSAGE = "This option is ignored if log_config_append is set."
@@ -52,7 +53,7 @@
'when logging configuration files are used then all '
'logging configuration is set in the configuration file '
'and other logging configuration options are ignored '
- '(for example, logging_context_format_string).'),
+ '(for example, log-date-format).'),
cfg.StrOpt('log-date-format',
default=_DEFAULT_LOG_DATE_FORMAT,
metavar='DATE_FORMAT',
@@ -108,6 +109,38 @@
default=False,
help='Log output to standard error. '
+ _IGNORE_MESSAGE),
+ cfg.BoolOpt('use_eventlog',
+ default=False,
+ help='Log output to Windows Event Log.'),
+ cfg.IntOpt('log_rotate_interval',
+ default=1,
+ help='The amount of time before the log files are rotated. '
+ 'This option is ignored unless log_rotation_type is set'
+ 'to "interval".'),
+ cfg.StrOpt('log_rotate_interval_type',
+ choices=['Seconds', 'Minutes', 'Hours', 'Days', 'Weekday',
+ 'Midnight'],
+ ignore_case=True,
+ default='days',
+ help='Rotation interval type. The time of the last file '
+ 'change (or the time when the service was started) is '
+ 'used when scheduling the next rotation.'),
+ cfg.IntOpt('max_logfile_count',
+ default=30,
+ help='Maximum number of rotated log files.'),
+ cfg.IntOpt('max_logfile_size_mb',
+ default=200,
+ help='Log file maximum size in MB. This option is ignored if '
+ '"log_rotation_type" is not set to "size".'),
+ cfg.StrOpt('log_rotation_type',
+ default='none',
+ choices=[('interval',
+ 'Rotate logs at predefined time intervals.'),
+ ('size',
+ 'Rotate logs once they reach a predefined size.'),
+ ('none', 'Do not rotate log files.')],
+ ignore_case=True,
+ help='Log rotation type.')
]
log_opts = [
@@ -115,25 +148,30 @@
default='%(asctime)s.%(msecs)03d %(process)d %(levelname)s '
'%(name)s [%(request_id)s %(user_identity)s] '
'%(instance)s%(message)s',
- help='Format string to use for log messages with context.'),
+ help='Format string to use for log messages with context. '
+ 'Used by oslo_log.formatters.ContextFormatter'),
cfg.StrOpt('logging_default_format_string',
default='%(asctime)s.%(msecs)03d %(process)d %(levelname)s '
'%(name)s [-] %(instance)s%(message)s',
help='Format string to use for log messages when context is '
- 'undefined.'),
+ 'undefined. '
+ 'Used by oslo_log.formatters.ContextFormatter'),
cfg.StrOpt('logging_debug_format_suffix',
default='%(funcName)s %(pathname)s:%(lineno)d',
help='Additional data to append to log message when logging '
- 'level for the message is DEBUG.'),
+ 'level for the message is DEBUG. '
+ 'Used by oslo_log.formatters.ContextFormatter'),
cfg.StrOpt('logging_exception_prefix',
default='%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s '
'%(instance)s',
- help='Prefix each line of exception output with this format.'),
+ help='Prefix each line of exception output with this format. '
+ 'Used by oslo_log.formatters.ContextFormatter'),
cfg.StrOpt('logging_user_identity_format',
default='%(user)s %(tenant)s '
'%(domain)s %(user_domain)s %(project_domain)s',
help='Defines the format string for %(user_identity)s that '
- 'is used in logging_context_format_string.'),
+ 'is used in logging_context_format_string. '
+ 'Used by oslo_log.formatters.ContextFormatter'),
cfg.ListOpt('default_log_levels',
default=DEFAULT_LOG_LEVELS,
help='List of package logging levels in logger=LEVEL pairs. '
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/oslo_log/handlers.py new/oslo.log-3.42.3/oslo_log/handlers.py
--- old/oslo.log-3.39.2/oslo_log/handlers.py 2018-09-25 21:44:30.000000000 +0200
+++ new/oslo.log-3.42.3/oslo_log/handlers.py 2019-02-26 01:06:43.000000000 +0100
@@ -131,12 +131,17 @@
'PRIORITY': priority
}
+ if record.exc_info:
+ # Cache the traceback text to avoid converting it multiple times
+ # (it's constant anyway)
+ if not record.exc_text:
+ record.exc_text = self.formatter.formatException(
+ record.exc_info)
if record.exc_text:
+ extras['EXCEPTION_INFO'] = record.exc_text
+ # Leave EXCEPTION_TEXT for backward compatibility
extras['EXCEPTION_TEXT'] = record.exc_text
- if record.exc_info:
- extras['EXCEPTION_INFO'] = record.exc_info
-
for field in self.custom_fields:
value = record.__dict__.get(field)
if value:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/oslo_log/log.py new/oslo.log-3.42.3/oslo_log/log.py
--- old/oslo.log-3.39.2/oslo_log/log.py 2018-09-25 21:44:30.000000000 +0200
+++ new/oslo.log-3.42.3/oslo_log/log.py 2019-02-26 01:06:43.000000000 +0100
@@ -40,6 +40,7 @@
from oslo_config import cfg
from oslo_utils import importutils
+from oslo_utils import units
import six
from six import moves
@@ -60,6 +61,15 @@
logging.addLevelName(TRACE, 'TRACE')
+LOG_ROTATE_INTERVAL_MAPPING = {
+ 'seconds': 's',
+ 'minutes': 'm',
+ 'hours': 'h',
+ 'days': 'd',
+ 'weekday': 'w',
+ 'midnight': 'midnight'
+}
+
def _get_log_file_path(conf, binary=None):
logfile = conf.log_file
@@ -344,13 +354,33 @@
logpath = _get_log_file_path(conf)
if logpath:
+ # On Windows, in-use files cannot be moved or deleted.
if conf.watch_log_file and platform.system() == 'Linux':
from oslo_log import watchers
file_handler = watchers.FastWatchedFileHandler
+ filelog = file_handler(logpath)
+ elif conf.log_rotation_type.lower() == "interval":
+ file_handler = logging.handlers.TimedRotatingFileHandler
+ when = conf.log_rotate_interval_type.lower()
+ interval_type = LOG_ROTATE_INTERVAL_MAPPING[when]
+ # When weekday is configured, "when" has to be a value between
+ # 'w0'-'w6' (w0 for Monday, w1 for Tuesday, and so on)'
+ if interval_type == 'w':
+ interval_type = interval_type + str(conf.log_rotate_interval)
+ filelog = file_handler(logpath,
+ when=interval_type,
+ interval=conf.log_rotate_interval,
+ backupCount=conf.max_logfile_count)
+ elif conf.log_rotation_type.lower() == "size":
+ file_handler = logging.handlers.RotatingFileHandler
+ maxBytes = conf.max_logfile_size_mb * units.Mi
+ filelog = file_handler(logpath,
+ maxBytes=maxBytes,
+ backupCount=conf.max_logfile_count)
else:
file_handler = logging.handlers.WatchedFileHandler
+ filelog = file_handler(logpath)
- filelog = file_handler(logpath)
log_root.addHandler(filelog)
if conf.use_stderr:
@@ -361,6 +391,14 @@
journal = handlers.OSJournalHandler()
log_root.addHandler(journal)
+ if conf.use_eventlog:
+ if platform.system() == 'Windows':
+ eventlog = logging.handlers.NTEventLogHandler(project)
+ log_root.addHandler(eventlog)
+ else:
+ raise RuntimeError(_("Windows Event Log is not available on this "
+ "platform."))
+
# if None of the above are True, then fall back to standard out
if not logpath and not conf.use_stderr and not conf.use_journal:
# pass sys.stdout as a positional argument
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/oslo_log/tests/unit/test_log.py new/oslo.log-3.42.3/oslo_log/tests/unit/test_log.py
--- old/oslo.log-3.39.2/oslo_log/tests/unit/test_log.py 2018-09-25 21:44:42.000000000 +0200
+++ new/oslo.log-3.42.3/oslo_log/tests/unit/test_log.py 2019-02-26 01:06:43.000000000 +0100
@@ -47,6 +47,7 @@
from oslo_log import formatters
from oslo_log import handlers
from oslo_log import log
+from oslo_utils import units
MIN_LOG_INI = b"""[loggers]
@@ -107,6 +108,7 @@
'%(message)s')
self.log = None
log._setup_logging_from_conf(self.config_fixture.conf, 'test', 'test')
+ self.log_handlers = log.getLogger(None).logger.handlers
def test_handlers_have_context_formatter(self):
formatters_list = []
@@ -140,6 +142,77 @@
'info', 'debug', 'log'):
self.assertRaises(AttributeError, getattr, log, func)
+ @mock.patch('platform.system', return_value='Linux')
+ def test_eventlog_missing(self, platform_mock):
+ self.config(use_eventlog=True)
+ self.assertRaises(RuntimeError,
+ log._setup_logging_from_conf,
+ self.CONF,
+ 'test',
+ 'test')
+
+ @mock.patch('platform.system', return_value='Windows')
+ @mock.patch('logging.handlers.NTEventLogHandler')
+ @mock.patch('oslo_log.log.getLogger')
+ def test_eventlog(self, loggers_mock, handler_mock, platform_mock):
+ self.config(use_eventlog=True)
+ log._setup_logging_from_conf(self.CONF, 'test', 'test')
+ handler_mock.assert_called_once_with('test')
+ mock_logger = loggers_mock.return_value.logger
+ mock_logger.addHandler.assert_any_call(handler_mock.return_value)
+
+ @mock.patch('oslo_log.watchers.FastWatchedFileHandler')
+ @mock.patch('oslo_log.log._get_log_file_path', return_value='test.conf')
+ @mock.patch('platform.system', return_value='Linux')
+ def test_watchlog_on_linux(self, platfotm_mock, path_mock, handler_mock):
+ self.config(watch_log_file=True)
+ log._setup_logging_from_conf(self.CONF, 'test', 'test')
+ handler_mock.assert_called_once_with(path_mock.return_value)
+ self.assertEqual(self.log_handlers[0], handler_mock.return_value)
+
+ @mock.patch('logging.handlers.WatchedFileHandler')
+ @mock.patch('oslo_log.log._get_log_file_path', return_value='test.conf')
+ @mock.patch('platform.system', return_value='Windows')
+ def test_watchlog_on_windows(self, platform_mock, path_mock, handler_mock):
+ self.config(watch_log_file=True)
+ log._setup_logging_from_conf(self.CONF, 'test', 'test')
+ handler_mock.assert_called_once_with(path_mock.return_value)
+ self.assertEqual(self.log_handlers[0], handler_mock.return_value)
+
+ @mock.patch('logging.handlers.TimedRotatingFileHandler')
+ @mock.patch('oslo_log.log._get_log_file_path', return_value='test.conf')
+ def test_timed_rotate_log(self, path_mock, handler_mock):
+ rotation_type = 'interval'
+ when = 'weekday'
+ interval = 2
+ backup_count = 2
+ self.config(log_rotation_type=rotation_type,
+ log_rotate_interval=interval,
+ log_rotate_interval_type=when,
+ max_logfile_count=backup_count)
+ log._setup_logging_from_conf(self.CONF, 'test', 'test')
+ handler_mock.assert_called_once_with(path_mock.return_value,
+ when='w2',
+ interval=interval,
+ backupCount=backup_count)
+ self.assertEqual(self.log_handlers[0], handler_mock.return_value)
+
+ @mock.patch('logging.handlers.RotatingFileHandler')
+ @mock.patch('oslo_log.log._get_log_file_path', return_value='test.conf')
+ def test_rotate_log(self, path_mock, handler_mock):
+ rotation_type = 'size'
+ max_logfile_size_mb = 100
+ maxBytes = max_logfile_size_mb * units.Mi
+ backup_count = 2
+ self.config(log_rotation_type=rotation_type,
+ max_logfile_size_mb=max_logfile_size_mb,
+ max_logfile_count=backup_count)
+ log._setup_logging_from_conf(self.CONF, 'test', 'test')
+ handler_mock.assert_called_once_with(path_mock.return_value,
+ maxBytes=maxBytes,
+ backupCount=backup_count)
+ self.assertEqual(self.log_handlers[0], handler_mock.return_value)
+
class LoggerTestCase(CommonLoggerTestsMixIn, test_base.BaseTestCase):
def setUp(self):
@@ -327,7 +400,6 @@
local_context = _fake_new_context()
l.info("Foo", context=local_context)
self.assertEqual(
- self.journal.send.call_args,
mock.call(mock.ANY, CODE_FILE=mock.ANY, CODE_FUNC='test_emit',
CODE_LINE=mock.ANY, LOGGER_LEVEL='INFO',
LOGGER_NAME='nova-test.foo', PRIORITY=6,
@@ -336,7 +408,17 @@
PROJECT_NAME='mytenant',
PROCESS_NAME='MainProcess',
THREAD_NAME='MainThread',
- USER_NAME='myuser'))
+ USER_NAME='myuser'),
+ self.journal.send.call_args)
+ args, kwargs = self.journal.send.call_args
+ self.assertEqual(len(args), 1)
+ self.assertIsInstance(args[0], six.string_types)
+ self.assertIsInstance(kwargs['CODE_LINE'], int)
+ self.assertIsInstance(kwargs['PRIORITY'], int)
+ del kwargs['CODE_LINE'], kwargs['PRIORITY']
+ for key, arg in kwargs.items():
+ self.assertIsInstance(key, six.string_types)
+ self.assertIsInstance(arg, six.string_types + (six.binary_type,))
def test_emit_exception(self):
l = log.getLogger('nova-exception.foo')
@@ -346,7 +428,6 @@
except Exception:
l.exception("Foo", context=local_context)
self.assertEqual(
- self.journal.send.call_args,
mock.call(mock.ANY, CODE_FILE=mock.ANY,
CODE_FUNC='test_emit_exception',
CODE_LINE=mock.ANY, LOGGER_LEVEL='ERROR',
@@ -358,7 +439,17 @@
PROJECT_NAME='mytenant',
PROCESS_NAME='MainProcess',
THREAD_NAME='MainThread',
- USER_NAME='myuser'))
+ USER_NAME='myuser'),
+ self.journal.send.call_args)
+ args, kwargs = self.journal.send.call_args
+ self.assertEqual(len(args), 1)
+ self.assertIsInstance(args[0], six.string_types)
+ self.assertIsInstance(kwargs['CODE_LINE'], int)
+ self.assertIsInstance(kwargs['PRIORITY'], int)
+ del kwargs['CODE_LINE'], kwargs['PRIORITY']
+ for key, arg in kwargs.items():
+ self.assertIsInstance(key, six.string_types)
+ self.assertIsInstance(arg, six.string_types + (six.binary_type,))
class LogLevelTestCase(BaseTestCase):
@@ -1718,6 +1809,20 @@
disable_existing_loggers=False)
+class SavingAdapter(log.KeywordArgumentAdapter):
+
+ def __init__(self, *args, **kwds):
+ super(log.KeywordArgumentAdapter, self).__init__(*args, **kwds)
+ self.results = []
+
+ def process(self, msg, kwargs):
+ # Run the real adapter and save the inputs and outputs
+ # before returning them so the test can examine both.
+ results = super(SavingAdapter, self).process(msg, kwargs)
+ self.results.append((msg, kwargs, results))
+ return results
+
+
class KeywordArgumentAdapterTestCase(BaseTestCase):
def setUp(self):
@@ -1770,52 +1875,44 @@
kwargs)
def test_pass_args_to_log(self):
- a = log.KeywordArgumentAdapter(self.mock_log, {})
+ a = SavingAdapter(self.mock_log, {})
+
message = 'message'
exc_message = 'exception'
- key = 'name'
val = 'value'
a.log(logging.DEBUG, message, name=val, exc_info=exc_message)
- if six.PY3:
- self.mock_log._log.assert_called_once_with(
- logging.DEBUG,
- message,
- (),
- extra={key: val, 'extra_keys': [key]},
- exc_info=exc_message
- )
- else:
- self.mock_log.log.assert_called_once_with(
- logging.DEBUG,
- message,
- extra={key: val, 'extra_keys': [key]},
- exc_info=exc_message
- )
+
+ expected = {
+ 'exc_info': exc_message,
+ 'extra': {'name': val, 'extra_keys': ['name']},
+ }
+
+ actual = a.results[0]
+ self.assertEqual(message, actual[0])
+ self.assertEqual(expected, actual[1])
+ results = actual[2]
+ self.assertEqual(message, results[0])
+ self.assertEqual(expected, results[1])
def test_pass_args_via_debug(self):
- a = log.KeywordArgumentAdapter(self.mock_log, {})
+
+ a = SavingAdapter(self.mock_log, {})
message = 'message'
exc_message = 'exception'
- key = 'name'
val = 'value'
a.debug(message, name=val, exc_info=exc_message)
- # The adapter implementation for debug() is different for
- # python 3, so we expect a different method to be called
- # internally.
- if six.PY3:
- self.mock_log._log.assert_called_once_with(
- logging.DEBUG,
- message,
- (),
- extra={key: val, 'extra_keys': [key]},
- exc_info=exc_message
- )
- else:
- self.mock_log.debug.assert_called_once_with(
- message,
- extra={key: val, 'extra_keys': [key]},
- exc_info=exc_message
- )
+
+ expected = {
+ 'exc_info': exc_message,
+ 'extra': {'name': val, 'extra_keys': ['name']},
+ }
+
+ actual = a.results[0]
+ self.assertEqual(message, actual[0])
+ self.assertEqual(expected, actual[1])
+ results = actual[2]
+ self.assertEqual(message, results[0])
+ self.assertEqual(expected, results[1])
class UnicodeConversionTestCase(BaseTestCase):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/releasenotes/notes/log-rotation-595f8232cd987a6d.yaml new/oslo.log-3.42.3/releasenotes/notes/log-rotation-595f8232cd987a6d.yaml
--- old/oslo.log-3.39.2/releasenotes/notes/log-rotation-595f8232cd987a6d.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.log-3.42.3/releasenotes/notes/log-rotation-595f8232cd987a6d.yaml 2019-02-26 01:06:43.000000000 +0100
@@ -0,0 +1,10 @@
+---
+features:
+ - |
+ The following new config options will allow rotating log files,
+ especially useful on Windows:
+ * ``log_rotate_interval``
+ * ``log_rotate_interval_type``
+ * ``max_logfile_count``
+ * ``max_logfile_size_mb``
+ * ``log_rotation_type``
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/releasenotes/notes/reno.cache new/oslo.log-3.42.3/releasenotes/notes/reno.cache
--- old/oslo.log-3.39.2/releasenotes/notes/reno.cache 2018-09-25 21:47:36.000000000 +0200
+++ new/oslo.log-3.42.3/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/releasenotes/notes/windows-eventlog-2beb0a6010e342eb.yaml new/oslo.log-3.42.3/releasenotes/notes/windows-eventlog-2beb0a6010e342eb.yaml
--- old/oslo.log-3.39.2/releasenotes/notes/windows-eventlog-2beb0a6010e342eb.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.log-3.42.3/releasenotes/notes/windows-eventlog-2beb0a6010e342eb.yaml 2019-02-26 01:06:43.000000000 +0100
@@ -0,0 +1,4 @@
+features:
+ - |
+ Added Windows EventLog functionality to oslo.log. Set use_eventlog to true
+ in the service's configuration file to use it.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/releasenotes/source/index.rst new/oslo.log-3.42.3/releasenotes/source/index.rst
--- old/oslo.log-3.39.2/releasenotes/source/index.rst 2018-09-25 21:44:42.000000000 +0200
+++ new/oslo.log-3.42.3/releasenotes/source/index.rst 2019-02-26 01:06:43.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.log-3.42.3/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/oslo.log-3.39.2/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-09-25 21:44:42.000000000 +0200
+++ new/oslo.log-3.42.3/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-02-26 01:06:43.000000000 +0100
@@ -5,11 +5,11 @@
msgstr ""
"Project-Id-Version: oslo.log Release Notes\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-09 00:09+0000\n"
+"POT-Creation-Date: 2018-07-26 22:58+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-02-06 11:15+0000\n"
+"PO-Revision-Date: 2018-08-08 09:51+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -106,6 +106,9 @@
msgid "Queens Series Release Notes"
msgstr "Queens Series Release Notes"
+msgid "Rocky Series Release Notes"
+msgstr "Rocky Series Release Notes"
+
msgid "Switch to reno for managing release notes."
msgstr "Switch to reno for managing release notes."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/releasenotes/source/rocky.rst new/oslo.log-3.42.3/releasenotes/source/rocky.rst
--- old/oslo.log-3.39.2/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.log-3.42.3/releasenotes/source/rocky.rst 2019-02-26 01:06:43.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/requirements.txt new/oslo.log-3.42.3/requirements.txt
--- old/oslo.log-3.39.2/requirements.txt 2018-09-25 21:44:42.000000000 +0200
+++ new/oslo.log-3.42.3/requirements.txt 2019-02-26 01:06:43.000000000 +0100
@@ -2,14 +2,14 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-pbr!=2.1.0,>=2.0.0 # Apache-2.0
-six>=1.10.0 # MIT
+pbr>=3.1.1 # Apache-2.0
+six>=1.11.0 # MIT
oslo.config>=5.2.0 # Apache-2.0
-oslo.context>=2.19.2 # Apache-2.0
-oslo.i18n>=3.15.3 # Apache-2.0
-oslo.utils>=3.33.0 # Apache-2.0
-oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
-debtcollector>=1.2.0 # Apache-2.0
+oslo.context>=2.20.0 # Apache-2.0
+oslo.i18n>=3.20.0 # Apache-2.0
+oslo.utils>=3.36.0 # Apache-2.0
+oslo.serialization>=2.25.0 # Apache-2.0
+debtcollector>=1.19.0 # Apache-2.0
pyinotify>=0.9.6;sys_platform!='win32' and sys_platform!='darwin' and sys_platform!='sunos5' # MIT
-python-dateutil>=2.5.3 # BSD
-monotonic>=0.6 # Apache-2.0
+python-dateutil>=2.7.0 # BSD
+monotonic>=1.4 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/setup.cfg new/oslo.log-3.42.3/setup.cfg
--- old/oslo.log-3.39.2/setup.cfg 2018-09-25 21:47:36.000000000 +0200
+++ new/oslo.log-3.42.3/setup.cfg 2019-02-26 01:09:16.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.log/latest
classifier =
Environment :: OpenStack
@@ -34,12 +34,6 @@
console_scripts =
convert-json = oslo_log.cmds.convert_json:main
-[build_sphinx]
-all-files = 1
-warning-is-error = 1
-source-dir = doc/source
-build-dir = doc/build
-
[upload_sphinx]
upload-dir = doc/build/html
@@ -57,7 +51,7 @@
mapping_file = babel.cfg
output_file = oslo_log/locale/oslo_log.pot
-[wheel]
+[bdist_wheel]
universal = 1
[egg_info]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/test-requirements.txt new/oslo.log-3.42.3/test-requirements.txt
--- old/oslo.log-3.39.2/test-requirements.txt 2018-09-25 21:44:42.000000000 +0200
+++ new/oslo.log-3.42.3/test-requirements.txt 2019-02-26 01:06:43.000000000 +0100
@@ -4,20 +4,15 @@
hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
-testrepository>=0.0.18 # Apache-2.0/BSD
-testtools>=2.2.0 # MIT
+stestr>=2.0.0 # Apache-2.0
+testtools>=2.3.0 # MIT
mock>=2.0.0 # BSD
-oslotest>=3.2.0 # Apache-2.0
+oslotest>=3.3.0 # Apache-2.0
# when we can require tox>= 1.4, this can go into tox.ini:
# [testenv:cover]
# deps = {[testenv]deps} coverage
-coverage!=4.4,>=4.0 # Apache-2.0
-
-# this is required for the docs build jobs
-sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
-openstackdocstheme>=1.18.1 # Apache-2.0
-reno>=2.5.0 # Apache-2.0
+coverage>=4.5.1 # Apache-2.0
# Bandit security code scanner
bandit>=1.1.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.log-3.39.2/tox.ini new/oslo.log-3.42.3/tox.ini
--- old/oslo.log-3.39.2/tox.ini 2018-09-25 21:44:42.000000000 +0200
+++ new/oslo.log-3.42.3/tox.ini 2019-02-26 01:06:43.000000000 +0100
@@ -3,16 +3,19 @@
envlist = py35,py27,pep8
[testenv]
+whitelist_externals =
+ find
setenv =
VIRTUAL_ENV={envdir}
BRANCH_NAME=master
CLIENT_NAME=oslo.log
-install_command = {toxinidir}/tools/tox_install.sh {env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky} {opts} {packages}
+install_command = {toxinidir}/tools/tox_install.sh {env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
deps = -r{toxinidir}/test-requirements.txt
-e.[fixtures]
commands =
- python setup.py test --coverage --coverage-package-name=oslo_log --slowest --testr-args='{posargs}'
- coverage report --show-missing
+ find . -type f -name "*.pyc" -delete
+ stestr run {posargs}
+ stestr slowest
[testenv:pep8]
basepython = python3
@@ -27,16 +30,22 @@
[testenv:docs]
basepython = python3
-commands = python setup.py build_sphinx
+deps = -r{toxinidir}/doc/requirements.txt
+commands = sphinx-build -a -E -W -b html doc/source doc/build/html
[testenv:releasenotes]
basepython = python3
-commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
+deps = -r{toxinidir}/doc/requirements.txt
+commands = sphinx-build -a -E -W -b html releasenotes/source releasenotes/build/html
[testenv:cover]
basepython = python3
commands =
- python setup.py test --coverage --coverage-package-name=oslo_log --testr-args='{posargs}'
+ coverage erase
+ {[testenv]commands}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
coverage report --show-missing
[testenv:bandit]
@@ -52,7 +61,6 @@
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
-
show-source = True
ignore = E123,E125,H405
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,__init__.py
1
0
Hello community,
here is the log from the commit of package python-oslo.i18n for openSUSE:Factory checked in at 2019-05-03 22:42:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.i18n (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.i18n.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.i18n"
Fri May 3 22:42:19 2019 rev:13 rq:692857 version:3.23.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.i18n/python-oslo.i18n.changes 2018-09-07 15:38:55.594566878 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.i18n.new.5148/python-oslo.i18n.changes 2019-05-03 22:42:20.663231085 +0200
@@ -1,0 +2,21 @@
+Mon Apr 8 11:39:44 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.23.1
+ - Update hacking version
+ - Update mailinglist from dev to discuss
+ - Remove unused code
+ - add lib-forward-testing-python3 test job
+ - Override getttext.find to cache result
+ - Imported Translations from Zanata
+ - Always build universal wheels
+ - Update reno for stable/rocky
+ - Remove references to log translation functions
+ - Clean up .gitignore references to personal tools
+ - Don't quote {posargs} in tox.ini
+ - Change python3.5 job to python3.7 job on Stein+
+ - add python 3.6 unit test job
+ - add python 3.7 unit test job
+ - import zuul job settings from project-config
+ - Use templates for cover and lower-constraints
+
+-------------------------------------------------------------------
Old:
----
oslo.i18n-3.21.0.tar.gz
New:
----
oslo.i18n-3.23.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.i18n.spec ++++++
--- /var/tmp/diff_new_pack.VEGylw/_old 2019-05-03 22:42:21.051231902 +0200
+++ /var/tmp/diff_new_pack.VEGylw/_new 2019-05-03 22:42:21.055231911 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.i18n
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.i18n
-Version: 3.21.0
+Version: 3.23.1
Release: 0
Summary: OpenStack i18n library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.i18n
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.i18n/oslo.i18n-3.21.0…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.i18n/oslo.i18n-3.23.1…
BuildRequires: openstack-macros
BuildRequires: python2-Babel >= 2.3.4
BuildRequires: python2-mock
@@ -57,9 +57,8 @@
Documentation for the oslo.i18n library.
%prep
-%autosetup -p1 -n oslo.i18n-3.21.0
+%autosetup -p1 -n oslo.i18n-3.23.1
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.VEGylw/_old 2019-05-03 22:42:21.079231961 +0200
+++ /var/tmp/diff_new_pack.VEGylw/_new 2019-05-03 22:42:21.079231961 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.i18n.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.i18n/stable/rocky/requirem…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.i18n/stable/stein/requirem…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.i18n</param>
</service>
++++++ oslo.i18n-3.21.0.tar.gz -> oslo.i18n-3.23.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/.zuul.yaml new/oslo.i18n-3.23.1/.zuul.yaml
--- old/oslo.i18n-3.21.0/.zuul.yaml 2018-07-20 03:06:47.000000000 +0200
+++ new/oslo.i18n-3.23.1/.zuul.yaml 2019-02-28 19:06:04.000000000 +0100
@@ -1,7 +1,13 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-cover-jobs
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/AUTHORS new/oslo.i18n-3.23.1/AUTHORS
--- old/oslo.i18n-3.21.0/AUTHORS 2018-07-20 03:10:15.000000000 +0200
+++ new/oslo.i18n-3.23.1/AUTHORS 2019-02-28 19:08:12.000000000 +0100
@@ -6,14 +6,17 @@
Andreas Jaeger <aj(a)suse.de>
Andrey Kurilin <akurilin(a)mirantis.com>
Balazs Gibizer <balazs.gibizer(a)ericsson.com>
+Ben Nemec <bnemec(a)redhat.com>
Ben Nemec <openstack(a)nemebean.com>
Bo Chi <shcbo(a)cn.ibm.com>
Brant Knudson <bknudson(a)us.ibm.com>
Chang Bo Guo <guochbo(a)cn.ibm.com>
ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
+Charles Short <chucks(a)redhat.com>
Charles Short <zulcss(a)gmail.com>
Christian Berendt <berendt(a)b1-systems.de>
Chuck Short <chuck.short(a)canonical.com>
+Chuck Short <chucks(a)redhat.com>
Dan Prince <dprince(a)redhat.com>
Davanum Srinivas <davanum(a)gmail.com>
Davanum Srinivas <dims(a)linux.vnet.ibm.com>
@@ -22,6 +25,7 @@
Doug Hellmann <doug.hellmann(a)dreamhost.com>
Doug Hellmann <doug(a)doughellmann.com>
Flavio Percoco <flaper87(a)gmail.com>
+Hervé Beraud <hberaud(a)redhat.com>
James Carey <jecarey(a)us.ibm.com>
Jason Kölker <jason(a)koelker.net>
Jay Pipes <jaypipes(a)gmail.com>
@@ -51,19 +55,21 @@
Sean McGinnis <sean_mcginnis(a)dell.com>
Sergey Kraynev <skraynev(a)mirantis.com>
Steve Martinelli <stevemar(a)ca.ibm.com>
+Thomas Herve <therve(a)redhat.com>
Tony Breeds <tony(a)bakeyournoodle.com>
Victor Sergeyev <vsergeyev(a)mirantis.com>
Victor Stinner <victor.stinner(a)enovance.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
WangBinbin <bbwang5827(a)fiberhome.com>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
+ZhijunWei <wzj334965317(a)outlook.com>
Zhiteng Huang <zhiteng.huang(a)intel.com>
ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
howardlee <lihongweibj(a)inspur.com>
kavithahr <kavitha.r(a)nectechnologies.in>
lingyongxu <lyxu(a)fiberhome.com>
+malei <malei(a)maleideMacBook-Pro.local>
melissaml <ma.lei(a)99cloud.net>
ricolin <rico.lin(a)easystack.cn>
venkatamahesh <venkatamaheshkotha(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/ChangeLog new/oslo.i18n-3.23.1/ChangeLog
--- old/oslo.i18n-3.21.0/ChangeLog 2018-07-20 03:10:15.000000000 +0200
+++ new/oslo.i18n-3.23.1/ChangeLog 2019-02-28 19:08:12.000000000 +0100
@@ -1,6 +1,34 @@
CHANGES
=======
+3.23.1
+------
+
+* add python 3.7 unit test job
+* Change python3.5 job to python3.7 job on Stein+
+* Update hacking version
+* Update mailinglist from dev to discuss
+
+3.23.0
+------
+
+* Override getttext.find to cache result
+* Don't quote {posargs} in tox.ini
+* Clean up .gitignore references to personal tools
+* Always build universal wheels
+* Remove references to log translation functions
+* Use templates for cover and lower-constraints
+
+3.22.1
+------
+
+* Remove unused code
+* Imported Translations from Zanata
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+
3.21.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/PKG-INFO new/oslo.i18n-3.23.1/PKG-INFO
--- old/oslo.i18n-3.21.0/PKG-INFO 2018-07-20 03:10:16.000000000 +0200
+++ new/oslo.i18n-3.23.1/PKG-INFO 2019-02-28 19:08:12.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.i18n
-Version: 3.21.0
+Version: 3.23.1
Summary: Oslo i18n library
Home-page: https://docs.openstack.org/oslo.i18n/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/RELEASENOTES.rst new/oslo.i18n-3.23.1/RELEASENOTES.rst
--- old/oslo.i18n-3.21.0/RELEASENOTES.rst 2018-07-20 03:10:16.000000000 +0200
+++ new/oslo.i18n-3.23.1/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-=========
-oslo.i18n
-=========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/doc/source/user/usage.rst new/oslo.i18n-3.23.1/doc/source/user/usage.rst
--- old/oslo.i18n-3.21.0/doc/source/user/usage.rst 2018-07-20 03:06:47.000000000 +0200
+++ new/oslo.i18n-3.23.1/doc/source/user/usage.rst 2019-02-28 19:06:04.000000000 +0100
@@ -59,34 +59,22 @@
# requires oslo.i18n >=2.1.0
_P = _translators.plural_form
- # Translators for log levels.
- #
- # NOTE(dhellmann): This is not needed for new projects as of the
- # Pike series.
- #
- # The abbreviated names are meant to reflect the usual use of a short
- # name like '_'. The "L" is for "log" and the other letter comes from
- # the level.
- _LI = _translators.log_info
- _LW = _translators.log_warning
- _LE = _translators.log_error
- _LC = _translators.log_critical
-
-
def get_available_languages():
return oslo_i18n.get_available_languages(DOMAIN)
+.. TODO: Provide examples for _C and _P
+
Then, in the rest of your code, use the appropriate marker function
for each message:
.. code-block:: python
- from myapp._i18n import _, _LW, _LE
+ from myapp._i18n import _
# ...
variable = "openstack"
- LOG.warning(_LW('warning message: %s'), variable)
+ some_object.name_msg = _('my name is: %s') % variable
# ...
@@ -96,8 +84,8 @@
except AnException1:
- # Log only
- LOG.exception(_LE('exception message'))
+ # Log only, log messages are no longer translated
+ LOG.exception('exception message')
except AnException2:
@@ -119,7 +107,7 @@
for import statements.
-It is important to use the marker functions (e.g. _LI), rather than
+It is important to use the marker functions (e.g. _), rather than
the longer form of the name, because the tool that scans the source
code for translatable strings looks for the marker function names.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/oslo.i18n.egg-info/PKG-INFO new/oslo.i18n-3.23.1/oslo.i18n.egg-info/PKG-INFO
--- old/oslo.i18n-3.21.0/oslo.i18n.egg-info/PKG-INFO 2018-07-20 03:10:15.000000000 +0200
+++ new/oslo.i18n-3.23.1/oslo.i18n.egg-info/PKG-INFO 2019-02-28 19:08:12.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.i18n
-Version: 3.21.0
+Version: 3.23.1
Summary: Oslo i18n library
Home-page: https://docs.openstack.org/oslo.i18n/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/oslo.i18n.egg-info/SOURCES.txt new/oslo.i18n-3.23.1/oslo.i18n.egg-info/SOURCES.txt
--- old/oslo.i18n-3.21.0/oslo.i18n.egg-info/SOURCES.txt 2018-07-20 03:10:16.000000000 +0200
+++ new/oslo.i18n-3.23.1/oslo.i18n.egg-info/SOURCES.txt 2019-02-28 19:08:12.000000000 +0100
@@ -71,6 +71,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/oslo.i18n.egg-info/pbr.json new/oslo.i18n-3.23.1/oslo.i18n.egg-info/pbr.json
--- old/oslo.i18n-3.21.0/oslo.i18n.egg-info/pbr.json 2018-07-20 03:10:15.000000000 +0200
+++ new/oslo.i18n-3.23.1/oslo.i18n.egg-info/pbr.json 2019-02-28 19:08:12.000000000 +0100
@@ -1 +1 @@
-{"git_version": "e690af4", "is_release": true}
\ No newline at end of file
+{"git_version": "20bbee5", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/oslo_i18n/_gettextutils.py new/oslo.i18n-3.23.1/oslo_i18n/_gettextutils.py
--- old/oslo.i18n-3.21.0/oslo_i18n/_gettextutils.py 2018-07-20 03:06:47.000000000 +0200
+++ new/oslo.i18n-3.23.1/oslo_i18n/_gettextutils.py 2019-02-28 19:06:04.000000000 +0100
@@ -99,3 +99,29 @@
_AVAILABLE_LANGUAGES[domain] = result
return copy.copy(result)
+
+
+_original_find = gettext.find
+_FIND_CACHE = {}
+
+
+def cached_find(domain, localedir=None, languages=None, all=0):
+ """A version of gettext.find using a cache.
+
+ gettext.find looks for mo files on the disk using os.path.exists. Those
+ don't tend to change over time, but the system calls pile up with a
+ long-running service. This caches the result so that we return the same mo
+ files, and only call find once per domain.
+ """
+ key = (domain,
+ localedir,
+ tuple(languages) if languages is not None else None,
+ all)
+ if key in _FIND_CACHE:
+ return _FIND_CACHE[key]
+ result = _original_find(domain, localedir, languages, all)
+ _FIND_CACHE[key] = result
+ return result
+
+
+gettext.find = cached_find
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/oslo_i18n/tests/test_gettextutils.py new/oslo.i18n-3.23.1/oslo_i18n/tests/test_gettextutils.py
--- old/oslo.i18n-3.21.0/oslo_i18n/tests/test_gettextutils.py 2018-07-20 03:06:47.000000000 +0200
+++ new/oslo.i18n-3.23.1/oslo_i18n/tests/test_gettextutils.py 2019-02-28 19:06:04.000000000 +0100
@@ -20,7 +20,6 @@
from babel import localedata
import mock
from oslotest import base as test_base
-from oslotest import moxstubout
import six
from oslo_i18n import _factory
@@ -36,9 +35,6 @@
def setUp(self):
super(GettextTest, self).setUp()
- moxfixture = self.useFixture(moxstubout.MoxStubout())
- self.stubs = moxfixture.stubs
- self.mox = moxfixture.mox
# remember so we can reset to it later in case it changes
self._USE_LAZY = _lazy.USE_LAZY
self.t = _factory.TranslatorFactory('oslo_i18n.test')
@@ -133,3 +129,13 @@
unknown_domain_languages = _gettextutils.get_available_languages('huh')
self.assertEqual(1, len(unknown_domain_languages))
self.assertIn('en_US', unknown_domain_languages)
+
+ def test_cached_find(self):
+ domain = 'my-unique-domain'
+ key = (domain, None, None, 0)
+ self.assertNotIn(key, _gettextutils._FIND_CACHE)
+ gettext.find(domain)
+ self.assertIn(key, _gettextutils._FIND_CACHE)
+ _gettextutils._FIND_CACHE[key] = "spoof result"
+ self.assertEqual("spoof result", gettext.find(domain))
+ _gettextutils._FIND_CACHE.pop(key)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/releasenotes/notes/reno.cache new/oslo.i18n-3.23.1/releasenotes/notes/reno.cache
--- old/oslo.i18n-3.21.0/releasenotes/notes/reno.cache 2018-07-20 03:10:16.000000000 +0200
+++ new/oslo.i18n-3.23.1/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/releasenotes/source/index.rst new/oslo.i18n-3.23.1/releasenotes/source/index.rst
--- old/oslo.i18n-3.21.0/releasenotes/source/index.rst 2018-07-20 03:06:47.000000000 +0200
+++ new/oslo.i18n-3.23.1/releasenotes/source/index.rst 2019-02-28 19:06:04.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.i18n-3.23.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/oslo.i18n-3.21.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-07-20 03:06:47.000000000 +0200
+++ new/oslo.i18n-3.23.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-02-28 19:06:04.000000000 +0100
@@ -2,13 +2,13 @@
# Andi Chandler <andi(a)gowling.com>, 2018. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.i18n Release Notes\n"
+"Project-Id-Version: oslo.i18n\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-05 13:14+0000\n"
+"POT-Creation-Date: 2018-08-13 07:24+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-01-26 07:19+0000\n"
+"PO-Revision-Date: 2018-08-13 12:05+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -33,6 +33,9 @@
msgid "Queens Series Release Notes"
msgstr "Queens Series Release Notes"
+msgid "Rocky Series Release Notes"
+msgstr "Rocky Series Release Notes"
+
msgid "Unreleased Release Notes"
msgstr "Unreleased Release Notes"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/releasenotes/source/rocky.rst new/oslo.i18n-3.23.1/releasenotes/source/rocky.rst
--- old/oslo.i18n-3.21.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.i18n-3.23.1/releasenotes/source/rocky.rst 2019-02-28 19:06:04.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/setup.cfg new/oslo.i18n-3.23.1/setup.cfg
--- old/oslo.i18n-3.21.0/setup.cfg 2018-07-20 03:10:16.000000000 +0200
+++ new/oslo.i18n-3.23.1/setup.cfg 2019-02-28 19:08:12.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.i18n/latest
classifier =
Environment :: OpenStack
@@ -45,7 +45,7 @@
mapping_file = babel.cfg
output_file = oslo_i18n/locale/oslo_i18n.pot
-[wheel]
+[bdist_wheel]
universal = 1
[egg_info]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/test-requirements.txt new/oslo.i18n-3.23.1/test-requirements.txt
--- old/oslo.i18n-3.21.0/test-requirements.txt 2018-07-20 03:06:47.000000000 +0200
+++ new/oslo.i18n-3.23.1/test-requirements.txt 2019-02-28 19:06:04.000000000 +0100
@@ -1,7 +1,7 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
stestr>=2.0.0 # Apache-2.0
sphinx!=1.6.6,!=1.6.7,>=1.6.5 # BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.i18n-3.21.0/tox.ini new/oslo.i18n-3.23.1/tox.ini
--- old/oslo.i18n-3.21.0/tox.ini 2018-07-20 03:06:47.000000000 +0200
+++ new/oslo.i18n-3.23.1/tox.ini 2019-02-28 19:06:04.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
minversion = 2.0
-envlist = py35,py27,pep8
+envlist = py37,py27,pep8
[testenv]
install_command = pip install {opts} {packages}
@@ -32,13 +32,21 @@
[testenv:cover]
basepython = python3
-commands = python setup.py test --coverage --coverage-package-name=oslo_i18n --testr-args='{posargs}'
+setenv =
+ PYTHON=coverage run --source oslo_i18n --parallel-mode
+commands =
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
+
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
+# E731 skipped as assign a lambda expression
show-source = True
-ignore = E123,E125
+ignore = E123,E125,E731
# H106: Don’t put vim configuration in source files
# H203: Use assertIs(Not)None to check for None
1
0
Hello community,
here is the log from the commit of package python-oslo.db for openSUSE:Factory checked in at 2019-05-03 22:42:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.db (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.db.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.db"
Fri May 3 22:42:15 2019 rev:16 rq:692856 version:4.44.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.db/python-oslo.db.changes 2018-09-07 15:38:52.250570469 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.db.new.5148/python-oslo.db.changes 2019-05-03 22:42:18.871227313 +0200
@@ -1,0 +2,32 @@
+Mon Apr 8 11:40:26 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 4.44.0
+ - Update mailinglist from dev to discuss
+ - Add "is_started" flag to enginefacade
+ - Resolve SAWarning in Query.soft_delete()
+ - exc_filters: fix deadlock detection for MariaDB/Galera cluster
+ - Move warnings to their own module
+ - Always build universal wheels
+ - Update hacking version
+ - add lib-forward-testing-python3 test job
+ - Remove convert_unicode flag
+ - import zuul job settings from project-config
+ - Imported Translations from Zanata
+ - Fix FOREIGN KEY messages for MariaDB 10.2, 10.3
+ - Update reno for stable/rocky
+ - Clean up .gitignore references to personal tools
+ - Don't quote {posargs} in tox.ini
+ - Use template for lower-constraints
+ - add python 3.6 unit test job
+ - Switch to stestr
+
+-------------------------------------------------------------------
+Mon Mar 25 13:21:58 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 4.40.1
+ - Update UPPER_CONSTRAINTS_FILE for stable/rocky
+ - Resolve SAWarning in Query.soft_delete()
+ - Update .gitreview for stable/rocky
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
oslo.db-4.40.0.tar.gz
New:
----
oslo.db-4.44.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.db.spec ++++++
--- /var/tmp/diff_new_pack.hU2XNQ/_old 2019-05-03 22:42:19.259228129 +0200
+++ /var/tmp/diff_new_pack.hU2XNQ/_new 2019-05-03 22:42:19.263228138 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.db
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.db
-Version: 4.40.0
+Version: 4.44.0
Release: 0
Summary: OpenStack oslo.db library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.db
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.db/oslo.db-4.40.0.tar…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.db/oslo.db-4.44.0.tar…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-PyMySQL
@@ -43,7 +43,7 @@
BuildRequires: python2-reno
BuildRequires: python2-six >= 1.10.0
BuildRequires: python2-sqlalchemy-migrate >= 0.11.0
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testresources >= 2.0.0
BuildRequires: python2-testscenarios >= 0.4
BuildRequires: python2-testtools
@@ -65,7 +65,7 @@
BuildRequires: python3-reno
BuildRequires: python3-six >= 1.10.0
BuildRequires: python3-sqlalchemy-migrate >= 0.11.0
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testresources >= 2.0.0
BuildRequires: python3-testscenarios >= 0.4
BuildRequires: python3-testtools
@@ -103,9 +103,8 @@
Documentation for the Oslo database handling library.
%prep
-%autosetup -p1 -n oslo.db-4.40.0
+%autosetup -p1 -n oslo.db-4.44.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -119,9 +118,7 @@
%{python_install}
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.hU2XNQ/_old 2019-05-03 22:42:19.283228180 +0200
+++ /var/tmp/diff_new_pack.hU2XNQ/_new 2019-05-03 22:42:19.283228180 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.db.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.db/stable/rocky/requiremen…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.db/stable/stein/requiremen…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.db</param>
</service>
++++++ oslo.db-4.40.0.tar.gz -> oslo.db-4.44.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/.stestr.conf new/oslo.db-4.44.0/.stestr.conf
--- old/oslo.db-4.40.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.db-4.44.0/.stestr.conf 2019-02-13 20:21:38.000000000 +0100
@@ -0,0 +1,4 @@
+[DEFAULT]
+test_path=${OS_TEST_PATH:-oslo_db/tests}
+top_dir=./
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/.testr.conf new/oslo.db-4.44.0/.testr.conf
--- old/oslo.db-4.40.0/.testr.conf 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ ./oslo_db/tests $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/.zuul.yaml new/oslo.db-4.44.0/.zuul.yaml
--- old/oslo.db-4.40.0/.zuul.yaml 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/.zuul.yaml 2019-02-13 20:21:38.000000000 +0100
@@ -1,7 +1,12 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/AUTHORS new/oslo.db-4.44.0/AUTHORS
--- old/oslo.db-4.40.0/AUTHORS 2018-07-09 15:28:59.000000000 +0200
+++ new/oslo.db-4.44.0/AUTHORS 2019-02-13 20:23:43.000000000 +0100
@@ -58,6 +58,7 @@
Gregory Haynes <greg(a)greghaynes.net>
HanXue Lai <laihanxue(a)sgitg.sgcc.com.cn>
Henry Gessau <gessau(a)gmail.com>
+Hervé Beraud <hberaud(a)redhat.com>
Huai Jiang <huajiang(a)ebaysf.com>
Ihar Hrachyshka <ihrachys(a)redhat.com>
Ildiko <ildiko.vancsa(a)ericsson.com>
@@ -107,6 +108,7 @@
Pavel Kholkin <pkholkin(a)mirantis.com>
Pekelny Ilya <ipekelny(a)mirantis.com>
Petr Blaho <petrblaho(a)gmail.com>
+Pierre-Samuel Le Stang <pierre-samuel.le-stang(a)corp.ovh.com>
Rajaram Mallya <rajarammallya(a)gmail.com>
Robert Collins <rbtcollins(a)hp.com>
Roman Podoliaka <rpodolyaka(a)mirantis.com>
@@ -135,6 +137,7 @@
Tovin Seven <vinhnt(a)vn.fujitsu.com>
Victor Sergeyev <vsergeyev(a)mirantis.com>
Victor Stinner <vstinner(a)redhat.com>
+Vieri <15050873171(a)163.com>
Vlad Okhrimenko <vokhrimenko(a)mirantis.com>
Vladyslav Drok <vdrok(a)mirantis.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
@@ -145,8 +148,9 @@
Zhang Chun <zhang.chun.os(a)99cloud.net>
Zhang Xin <ada.os(a)99cloud.net>
Zhi Yan Liu <zhiyanl(a)cn.ibm.com>
+ZhijunWei <wzj334965317(a)outlook.com>
+ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
ahdj007 <dong.juan1(a)zte.com.cn>
bhagyashris <bhagyashri.shewale(a)nttdata.com>
blue55 <yllan(a)fiberhome.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/ChangeLog new/oslo.db-4.44.0/ChangeLog
--- old/oslo.db-4.40.0/ChangeLog 2018-07-09 15:28:59.000000000 +0200
+++ new/oslo.db-4.44.0/ChangeLog 2019-02-13 20:23:43.000000000 +0100
@@ -1,6 +1,40 @@
CHANGES
=======
+4.44.0
+------
+
+* exc\_filters: fix deadlock detection for MariaDB/Galera cluster
+* Resolve SAWarning in Query.soft\_delete()
+* Update hacking version
+
+4.43.0
+------
+
+* Remove convert\_unicode flag
+* Use template for lower-constraints
+* Update mailinglist from dev to discuss
+
+4.42.0
+------
+
+* Add "is\_started" flag to enginefacade
+* Move warnings to their own module
+* Clean up .gitignore references to personal tools
+* Always build universal wheels
+* Don't quote {posargs} in tox.ini
+
+4.41.1
+------
+
+* Fix FOREIGN KEY messages for MariaDB 10.2, 10.3
+* Imported Translations from Zanata
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+* Switch to stestr
+
4.40.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/PKG-INFO new/oslo.db-4.44.0/PKG-INFO
--- old/oslo.db-4.40.0/PKG-INFO 2018-07-09 15:29:00.000000000 +0200
+++ new/oslo.db-4.44.0/PKG-INFO 2019-02-13 20:23:43.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: oslo.db
-Version: 4.40.0
+Version: 4.44.0
Summary: Oslo Database library
Home-page: https://docs.openstack.org/oslo.db/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -49,6 +49,6 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Provides-Extra: mysql
Provides-Extra: test
Provides-Extra: postgresql
-Provides-Extra: mysql
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/lower-constraints.txt new/oslo.db-4.44.0/lower-constraints.txt
--- old/oslo.db-4.40.0/lower-constraints.txt 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/lower-constraints.txt 2019-02-13 20:21:38.000000000 +0100
@@ -58,10 +58,10 @@
SQLAlchemy==1.0.10
sqlalchemy-migrate==0.11.0
sqlparse==0.2.2
-stestr==1.0.0
stevedore==1.20.0
Tempita==0.5.2
testrepository==0.0.18
+stestr==2.0.0
testresources==2.0.0
testscenarios==0.4
testtools==2.2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo.db.egg-info/PKG-INFO new/oslo.db-4.44.0/oslo.db.egg-info/PKG-INFO
--- old/oslo.db-4.40.0/oslo.db.egg-info/PKG-INFO 2018-07-09 15:28:59.000000000 +0200
+++ new/oslo.db-4.44.0/oslo.db.egg-info/PKG-INFO 2019-02-13 20:23:43.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: oslo.db
-Version: 4.40.0
+Version: 4.44.0
Summary: Oslo Database library
Home-page: https://docs.openstack.org/oslo.db/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -49,6 +49,6 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Provides-Extra: mysql
Provides-Extra: test
Provides-Extra: postgresql
-Provides-Extra: mysql
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo.db.egg-info/SOURCES.txt new/oslo.db-4.44.0/oslo.db.egg-info/SOURCES.txt
--- old/oslo.db-4.40.0/oslo.db.egg-info/SOURCES.txt 2018-07-09 15:29:00.000000000 +0200
+++ new/oslo.db-4.44.0/oslo.db.egg-info/SOURCES.txt 2019-02-13 20:23:43.000000000 +0100
@@ -1,6 +1,6 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -39,6 +39,7 @@
oslo_db/concurrency.py
oslo_db/exception.py
oslo_db/options.py
+oslo_db/warning.py
oslo_db/locale/en_GB/LC_MESSAGES/oslo_db.po
oslo_db/locale/es/LC_MESSAGES/oslo_db.po
oslo_db/locale/fr/LC_MESSAGES/oslo_db.po
@@ -91,6 +92,7 @@
releasenotes/notes/MySQL-python-no-longer-tested-2a6c32cce6b03215.yaml
releasenotes/notes/add-reno-e5c2f63e73c25959.yaml
releasenotes/notes/add_connection_parameters-231aa7d8b7d2d416.yaml
+releasenotes/notes/add_facade_started-14f9bc34fac89371.yaml
releasenotes/notes/connection_debug_min_max-bf6d53d49be7ca52.yaml
releasenotes/notes/deprecate-insert-from-select-ea831381ebd7e7cf.yaml
releasenotes/notes/deprecate_config_sqlite_db-bd41d49343049319.yaml
@@ -110,11 +112,11 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
-tools/pretty_tox.sh
tools/run-pifpaf-tests.sh
tools/test-setup.sh
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo.db.egg-info/pbr.json new/oslo.db-4.44.0/oslo.db.egg-info/pbr.json
--- old/oslo.db-4.40.0/oslo.db.egg-info/pbr.json 2018-07-09 15:28:59.000000000 +0200
+++ new/oslo.db-4.44.0/oslo.db.egg-info/pbr.json 2019-02-13 20:23:43.000000000 +0100
@@ -1 +1 @@
-{"git_version": "dff1133", "is_release": true}
\ No newline at end of file
+{"git_version": "5895d04", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo.db.egg-info/requires.txt new/oslo.db-4.44.0/oslo.db.egg-info/requires.txt
--- old/oslo.db-4.40.0/oslo.db.egg-info/requires.txt 2018-07-09 15:28:59.000000000 +0200
+++ new/oslo.db-4.44.0/oslo.db.egg-info/requires.txt 2019-02-13 20:23:43.000000000 +0100
@@ -18,7 +18,7 @@
psycopg2>=2.6.2
[test]
-hacking!=0.13.0,<0.14,>=0.12.0
+hacking<1.2.0,>=1.1.0
coverage!=4.4,>=4.0
eventlet!=0.18.3,!=0.20.1,>=0.18.2
fixtures>=3.0.0
@@ -26,7 +26,7 @@
python-subunit>=1.0.0
oslotest>=3.2.0
oslo.context>=2.19.2
-testrepository>=0.0.18
+stestr>=2.0.0
testtools>=2.2.0
os-testr>=1.0.0
bandit>=1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo_db/exception.py new/oslo.db-4.44.0/oslo_db/exception.py
--- old/oslo.db-4.40.0/oslo_db/exception.py 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/oslo_db/exception.py 2019-02-13 20:21:38.000000000 +0100
@@ -43,10 +43,12 @@
database errors.
"""
+from debtcollector import moves
+from oslo_utils.excutils import CausedByException
import six
from oslo_db._i18n import _
-from oslo_utils.excutils import CausedByException
+from oslo_db import warning
class DBError(CausedByException):
@@ -299,27 +301,10 @@
"""Error raised when the enginefacade cannot start up correctly."""
-class NotSupportedWarning(Warning):
- """Warn that an argument or call that was passed is not supported.
-
- This subclasses Warning so that it can be filtered as a distinct
- category.
-
- .. seealso::
-
- https://docs.python.org/2/library/warnings.html
-
- """
-
-
-class OsloDBDeprecationWarning(DeprecationWarning):
- """Issued per usage of a deprecated API.
-
- This subclasses DeprecationWarning so that it can be filtered as a distinct
- category.
-
- .. seealso::
-
- https://docs.python.org/2/library/warnings.html
-
- """
+moves.moved_class(warning.NotSupportedWarning,
+ 'NotSupportedWarning',
+ __name__, version='Stein')
+
+moves.moved_class(warning.OsloDBDeprecationWarning,
+ 'OsloDBDeprecationWarning',
+ __name__, version='Stein')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo_db/sqlalchemy/enginefacade.py new/oslo.db-4.44.0/oslo_db/sqlalchemy/enginefacade.py
--- old/oslo.db-4.40.0/oslo_db/sqlalchemy/enginefacade.py 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/oslo_db/sqlalchemy/enginefacade.py 2019-02-13 20:21:38.000000000 +0100
@@ -10,7 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-
import contextlib
import functools
import operator
@@ -28,6 +27,7 @@
from oslo_db.sqlalchemy import engines
from oslo_db.sqlalchemy import orm
from oslo_db.sqlalchemy import utils
+from oslo_db import warning
class _symbol(object):
@@ -120,6 +120,14 @@
hasattr(conf_namespace, key)
+class AlreadyStartedError(TypeError):
+ """Raises when a factory is being asked to initialize a second time.
+
+ Subclasses :class:`.TypeError` for legacy support.
+
+ """
+
+
class _TransactionFactory(object):
"""A factory for :class:`._TransactionContext` objects.
@@ -314,7 +322,8 @@
def _configure(self, as_defaults, kw):
if self._started:
- raise TypeError("this TransactionFactory is already started")
+ raise AlreadyStartedError(
+ "this TransactionFactory is already started")
not_supported = []
for k, v in kw.items():
for dict_ in (
@@ -334,7 +343,7 @@
warnings.warn(
"Configuration option(s) %r not supported" %
sorted(not_supported),
- exception.NotSupportedWarning
+ warning.NotSupportedWarning
)
def get_legacy_facade(self):
@@ -464,6 +473,11 @@
if self._reader_engine is not self._writer_engine:
self._reader_engine.pool.dispose()
+ @property
+ def is_started(self):
+ """True if this :class:`._TransactionFactory` is already started."""
+ return self._started
+
def _start(self, conf=False, connection=None, slave_connection=None):
with self._start_lock:
# self._started has been checked on the outside
@@ -777,6 +791,11 @@
"""The :class:`._TransactionFactory` associated with this context."""
return self._root._root_factory
+ @property
+ def is_started(self):
+ """True if this manager is already started."""
+ return self._factory.is_started
+
def configure(self, **kw):
"""Apply configurational options to the factory.
@@ -1253,7 +1272,7 @@
warnings.warn(
"EngineFacade is deprecated; please use "
"oslo_db.sqlalchemy.enginefacade",
- exception.OsloDBDeprecationWarning,
+ warning.OsloDBDeprecationWarning,
stacklevel=2)
if _factory:
self._factory = _factory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo_db/sqlalchemy/engines.py new/oslo.db-4.44.0/oslo_db/sqlalchemy/engines.py
--- old/oslo.db-4.40.0/oslo_db/sqlalchemy/engines.py 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/oslo_db/sqlalchemy/engines.py 2019-02-13 20:21:38.000000000 +0100
@@ -159,7 +159,6 @@
engine_args = {
"pool_recycle": connection_recycle_time,
- 'convert_unicode': True,
'connect_args': {},
'logging_name': logging_name
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo_db/sqlalchemy/exc_filters.py new/oslo.db-4.44.0/oslo_db/sqlalchemy/exc_filters.py
--- old/oslo.db-4.40.0/oslo_db/sqlalchemy/exc_filters.py 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/oslo_db/sqlalchemy/exc_filters.py 2019-02-13 20:21:38.000000000 +0100
@@ -63,6 +63,8 @@
@filters("mysql", sqla_exc.InternalError, r"^.*\b1213\b.*Deadlock found.*")
@filters("mysql", sqla_exc.InternalError,
r"^.*\b1213\b.*detected deadlock/conflict.*")
+@filters("mysql", sqla_exc.InternalError,
+ r"^.*\b1213\b.*Deadlock: wsrep aborted.*")
@filters("postgresql", sqla_exc.OperationalError, r"^.*deadlock detected.*")
@filters("postgresql", sqla_exc.DBAPIError, r"^.*deadlock detected.*")
@filters("ibm_db_sa", sqla_exc.DBAPIError, r"^.*SQL0911N.*")
@@ -251,11 +253,11 @@
"of relation "
"\"(?P<relation>.+)\" does not exist")
@filters("mysql", sqla_exc.InternalError,
- r".*1091,.*Can't DROP '(?P<constraint>.+)'; "
- "check that column/key exists")
+ r".*1091,.*Can't DROP (?:FOREIGN KEY )?['`](?P<constraint>.+)['`]; "
+ "check that .* exists")
@filters("mysql", sqla_exc.OperationalError,
- r".*1091,.*Can't DROP '(?P<constraint>.+)'; "
- "check that column/key exists")
+ r".*1091,.*Can't DROP (?:FOREIGN KEY )?['`](?P<constraint>.+)['`]; "
+ "check that .* exists")
@filters("mysql", sqla_exc.InternalError,
r".*1025,.*Error on rename of '.+/(?P<relation>.+)' to ")
def _check_constraint_non_existing(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo_db/sqlalchemy/orm.py new/oslo.db-4.44.0/oslo_db/sqlalchemy/orm.py
--- old/oslo.db-4.40.0/oslo_db/sqlalchemy/orm.py 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/oslo_db/sqlalchemy/orm.py 2019-02-13 20:21:38.000000000 +0100
@@ -18,7 +18,6 @@
from oslo_utils import timeutils
import sqlalchemy.orm
-from sqlalchemy.sql.expression import literal_column
from oslo_db.sqlalchemy import update_match
@@ -26,8 +25,9 @@
class Query(sqlalchemy.orm.query.Query):
"""Subclass of sqlalchemy.query with soft_delete() method."""
def soft_delete(self, synchronize_session='evaluate'):
- return self.update({'deleted': literal_column('id'),
- 'updated_at': literal_column('updated_at'),
+ entity = self.column_descriptions[0]['entity']
+ return self.update({'deleted': entity.id,
+ 'updated_at': entity.updated_at,
'deleted_at': timeutils.utcnow()},
synchronize_session=synchronize_session)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo_db/sqlalchemy/update_match.py new/oslo.db-4.44.0/oslo_db/sqlalchemy/update_match.py
--- old/oslo.db-4.40.0/oslo_db/sqlalchemy/update_match.py 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/oslo_db/sqlalchemy/update_match.py 2019-02-13 20:21:38.000000000 +0100
@@ -292,8 +292,8 @@
existing = dict(
(attr.key, attr.loaded_value)
for attr in state.attrs
- if attr.loaded_value is not orm.attributes.NO_VALUE
- and attr.key not in exclude
+ if attr.loaded_value is not orm.attributes.NO_VALUE and
+ attr.key not in exclude
)
if include_only:
existing = dict(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo_db/tests/sqlalchemy/test_enginefacade.py new/oslo.db-4.44.0/oslo_db/tests/sqlalchemy/test_enginefacade.py
--- old/oslo.db-4.40.0/oslo_db/tests/sqlalchemy/test_enginefacade.py 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/oslo_db/tests/sqlalchemy/test_enginefacade.py 2019-02-13 20:21:38.000000000 +0100
@@ -37,6 +37,7 @@
from oslo_db.sqlalchemy import engines as oslo_engines
from oslo_db.sqlalchemy import orm
from oslo_db.tests.sqlalchemy import base as test_base
+from oslo_db import warning
enginefacade.transaction_context_provider(oslo_context.RequestContext)
@@ -479,6 +480,32 @@
[mock.call.dispose()]
)
+ def test_started_flag(self):
+ facade = enginefacade.transaction_context()
+
+ self.assertFalse(facade.is_started)
+ facade.configure(connection=self.engine_uri)
+ facade.writer.get_engine()
+
+ self.assertTrue(facade.is_started)
+
+ def test_started_exception(self):
+ facade = enginefacade.transaction_context()
+
+ self.assertFalse(facade.is_started)
+ facade.configure(connection=self.engine_uri)
+ facade.writer.get_engine()
+
+ exc = self.assertRaises(
+ enginefacade.AlreadyStartedError,
+ facade.configure,
+ connection=self.engine_uri
+ )
+ self.assertEqual(
+ "this TransactionFactory is already started",
+ exc.args[0]
+ )
+
def test_session_reader_decorator(self):
context = oslo_context.RequestContext()
@@ -2182,7 +2209,7 @@
self.assertEqual(1, len(w))
self.assertTrue(
- issubclass(w[-1].category, exception.NotSupportedWarning))
+ issubclass(w[-1].category, warning.NotSupportedWarning))
self.assertEqual(
"Configuration option(s) ['fake1', 'wrong2'] not supported",
str(w[-1].message)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo_db/tests/sqlalchemy/test_exc_filters.py new/oslo.db-4.44.0/oslo_db/tests/sqlalchemy/test_exc_filters.py
--- old/oslo.db-4.40.0/oslo_db/tests/sqlalchemy/test_exc_filters.py 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/oslo_db/tests/sqlalchemy/test_exc_filters.py 2019-02-13 20:21:38.000000000 +0100
@@ -995,6 +995,12 @@
orig_exception_cls=self.InternalError
)
+ self._run_deadlock_detect_test(
+ "mysql",
+ "(1213, 'Deadlock: wsrep aborted transaction')",
+ orig_exception_cls=self.InternalError
+ )
+
def test_mysql_pymysql_galera_deadlock(self):
self._run_deadlock_detect_test(
"mysql",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/oslo_db/warning.py new/oslo.db-4.44.0/oslo_db/warning.py
--- old/oslo.db-4.40.0/oslo_db/warning.py 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.db-4.44.0/oslo_db/warning.py 2019-02-13 20:21:38.000000000 +0100
@@ -0,0 +1,41 @@
+# Copyright 2018 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""Custom warnings."""
+
+
+class NotSupportedWarning(Warning):
+ """Warn that an argument or call that was passed is not supported.
+
+ This subclasses Warning so that it can be filtered as a distinct
+ category.
+
+ .. seealso::
+
+ https://docs.python.org/2/library/warnings.html
+
+ """
+
+
+class OsloDBDeprecationWarning(DeprecationWarning):
+ """Issued per usage of a deprecated API.
+
+ This subclasses DeprecationWarning so that it can be filtered as a distinct
+ category.
+
+ .. seealso::
+
+ https://docs.python.org/2/library/warnings.html
+
+ """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/releasenotes/notes/add_facade_started-14f9bc34fac89371.yaml new/oslo.db-4.44.0/releasenotes/notes/add_facade_started-14f9bc34fac89371.yaml
--- old/oslo.db-4.40.0/releasenotes/notes/add_facade_started-14f9bc34fac89371.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.db-4.44.0/releasenotes/notes/add_facade_started-14f9bc34fac89371.yaml 2019-02-13 20:21:38.000000000 +0100
@@ -0,0 +1,8 @@
+---
+features:
+ - |
+ Added new ``.is_started`` boolean flag to enginefacade context manager
+ and factory objects, so that double-configure scenarios can be prevented
+ by calling code. Additionally, the ``TypeError`` raised when configure
+ is called after the factory is started is now a specific subclass
+ ``enginefacade.AlreadyStartedError``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/releasenotes/source/index.rst new/oslo.db-4.44.0/releasenotes/source/index.rst
--- old/oslo.db-4.40.0/releasenotes/source/index.rst 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/releasenotes/source/index.rst 2019-02-13 20:21:38.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.db-4.44.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/oslo.db-4.40.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-02-13 20:21:38.000000000 +0100
@@ -3,13 +3,13 @@
# Andi Chandler <andi(a)gowling.com>, 2018. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.db Release Notes\n"
+"Project-Id-Version: oslo.db\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-20 22:06+0000\n"
+"POT-Creation-Date: 2018-08-13 06:44+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-02-18 01:24+0000\n"
+"PO-Revision-Date: 2018-08-09 08:50+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -37,6 +37,12 @@
msgid "4.30.0"
msgstr "4.30.0"
+msgid "4.33.1"
+msgstr "4.33.1"
+
+msgid "4.34.0"
+msgstr "4.34.0"
+
msgid "4.6.0"
msgstr "4.6.0"
@@ -46,6 +52,17 @@
msgid "4.9.0"
msgstr "4.9.0"
+msgid ""
+"Added new option connection_parameters which allows SQLAlchemy query "
+"parameters to be stated separately from the URL itself, to allow URL-"
+"persistence schemes like Nova cells to use controller-local query parameters "
+"that aren't broadcast to all other servers."
+msgstr ""
+"Added new option connection_parameters which allows SQLAlchemy query "
+"parameters to be stated separately from the URL itself, to allow URL-"
+"persistence schemes like Nova cells to use controller-local query parameters "
+"that aren't broadcast to all other servers."
+
msgid "Bug Fixes"
msgstr "Bug Fixes"
@@ -134,6 +151,9 @@
"\"asynchronous\", so this should be associated with the async engines. The "
"flag had the reverse behaviour previously."
+msgid "Rocky Series Release Notes"
+msgstr "Rocky Series Release Notes"
+
msgid ""
"The allowed values for the ``connection_debug`` option are now restricted to "
"the range between 0 and 100 (inclusive). Previously a number lower than 0 or "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/releasenotes/source/rocky.rst new/oslo.db-4.44.0/releasenotes/source/rocky.rst
--- old/oslo.db-4.40.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.db-4.44.0/releasenotes/source/rocky.rst 2019-02-13 20:21:38.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/setup.cfg new/oslo.db-4.44.0/setup.cfg
--- old/oslo.db-4.40.0/setup.cfg 2018-07-09 15:29:00.000000000 +0200
+++ new/oslo.db-4.44.0/setup.cfg 2019-02-13 20:23:43.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.db/latest
classifier =
Environment :: OpenStack
@@ -36,7 +36,7 @@
alembic = oslo_db.sqlalchemy.migration_cli.ext_alembic:AlembicExtension
migrate = oslo_db.sqlalchemy.migration_cli.ext_migrate:MigrateExtension
-[wheel]
+[bdist_wheel]
universal = 1
[build_sphinx]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/test-requirements.txt new/oslo.db-4.44.0/test-requirements.txt
--- old/oslo.db-4.40.0/test-requirements.txt 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/test-requirements.txt 2019-02-13 20:21:38.000000000 +0100
@@ -1,7 +1,7 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
eventlet!=0.18.3,!=0.20.1,>=0.18.2 # MIT
fixtures>=3.0.0 # Apache-2.0/BSD
@@ -9,7 +9,7 @@
python-subunit>=1.0.0 # Apache-2.0/BSD
oslotest>=3.2.0 # Apache-2.0
oslo.context>=2.19.2 # Apache-2.0
-testrepository>=0.0.18 # Apache-2.0/BSD
+stestr>=2.0.0 # Apache-2.0
testtools>=2.2.0 # MIT
os-testr>=1.0.0 # Apache-2.0
bandit>=1.1.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/tools/pretty_tox.sh new/oslo.db-4.44.0/tools/pretty_tox.sh
--- old/oslo.db-4.40.0/tools/pretty_tox.sh 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/tools/pretty_tox.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-
-# return nonzero exit status of rightmost command, so that we
-# get nonzero exit on test failure without halting subunit-trace
-set -o pipefail
-
-
-TESTRARGS=$1
-
-python setup.py testr --testr-args="--subunit $TESTRARGS" | subunit-trace -f
-retval=$?
-# NOTE(mtreinish) The pipe above would eat the slowest display from pbr's testr
-# wrapper so just manually print the slowest tests
-echo -e "\nSlowest Tests:\n"
-testr slowest
-exit $retval
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/tools/run-pifpaf-tests.sh new/oslo.db-4.44.0/tools/run-pifpaf-tests.sh
--- old/oslo.db-4.40.0/tools/run-pifpaf-tests.sh 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/tools/run-pifpaf-tests.sh 2019-02-13 20:21:38.000000000 +0100
@@ -3,5 +3,5 @@
# Replace mysql:// by mysql+pymysql:// and add sqlite
export OS_TEST_DBAPI_ADMIN_CONNECTION="${OS_TEST_DBAPI_ADMIN_CONNECTION/#mysql:/mysql+pymysql:};sqlite://"
echo $OS_TEST_DBAPI_ADMIN_CONNECTION
-tools/pretty_tox.sh $*
-TEST_EVENTLET=1 tools/pretty_tox.sh $*
+stestr run $*
+TEST_EVENTLET=1 stestr run $*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.db-4.40.0/tox.ini new/oslo.db-4.44.0/tox.ini
--- old/oslo.db-4.40.0/tox.ini 2018-07-09 15:25:35.000000000 +0200
+++ new/oslo.db-4.44.0/tox.ini 2019-02-13 20:21:38.000000000 +0100
@@ -8,7 +8,7 @@
env
setenv =
VIRTUAL_ENV={envdir}
- BASECOMMAND=bash tools/pretty_tox.sh
+ BASECOMMAND=stestr run
BRANCH_NAME=master
CLIENT_NAME=oslo.db
@@ -20,15 +20,15 @@
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
commands =
- {env:PIFPAF_MYSQL:} {env:PIFPAF_POSTGRESQL:} {env:BASECOMMAND:} '{posargs}'
+ {env:PIFPAF_MYSQL:} {env:PIFPAF_POSTGRESQL:} {env:BASECOMMAND:} {posargs}
passenv = OS_TEST_DBAPI_ADMIN_CONNECTION
[testenv:py27]
basepython = python2.7
commands =
- env TEST_EVENTLET=0 bash tools/pretty_tox.sh '{posargs}'
- env TEST_EVENTLET=1 bash tools/pretty_tox.sh '{posargs}'
+ env TEST_EVENTLET=0 stestr run {posargs}
+ env TEST_EVENTLET=1 stestr run {posargs}
[testenv:pep8]
basepython = python3
@@ -43,7 +43,13 @@
[testenv:cover]
basepython = python3
-commands = python setup.py test --coverage --coverage-package-name=oslo_db --testr-args='{posargs}'
+setenv =
+ PYTHON=coverage run --source oslo_db --parallel-mode
+commands =
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
[testenv:docs]
basepython = python3
1
0
Hello community,
here is the log from the commit of package python-oslo.context for openSUSE:Factory checked in at 2019-05-03 22:42:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.context (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.context.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.context"
Fri May 3 22:42:12 2019 rev:12 rq:692855 version:2.22.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.context/python-oslo.context.changes 2018-09-07 15:38:48.370574634 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.context.new.5148/python-oslo.context.changes 2019-05-03 22:42:13.971216996 +0200
@@ -1,0 +2,19 @@
+Mon Apr 8 12:27:32 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.22.1
+ - Update mailinglist from dev to discuss
+ - fix tox python3 overrides
+ - Implement domain-scope for context objects
+ - Switch to stestr
+ - Update hacking version
+ - Always build universal wheels
+ - Update reno for stable/rocky
+ - Clean up .gitignore references to personal tools
+ - Add release notes link to README
+ - Use template for lower-constraints
+ - add lib-forward-testing-python3 test job
+ - add python 3.6 unit test job
+ - add python 3.7 unit test job
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
oslo.context-2.21.0.tar.gz
New:
----
oslo.context-2.22.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.context.spec ++++++
--- /var/tmp/diff_new_pack.qCucZv/_old 2019-05-03 22:42:14.331217754 +0200
+++ /var/tmp/diff_new_pack.qCucZv/_new 2019-05-03 22:42:14.335217763 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.context
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,31 +12,33 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%bcond_without test
Name: python-oslo.context
-Version: 2.21.0
+Version: 2.22.1
Release: 0
Summary: OpenStack Oslo context library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.context
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.context/oslo.context-…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.context/oslo.context-…
BuildRequires: openstack-macros
BuildRequires: python2-pbr >= 2.0.0
-BuildRequires: python2-testrepository
BuildRequires: python3-pbr >= 2.0.0
-BuildRequires: python3-testrepository
Requires: python-debtcollector >= 1.2.0
BuildArch: noarch
%if %{with test}
BuildRequires: python2-debtcollector >= 1.2.0
+BuildRequires: python2-fixtures
BuildRequires: python2-oslotest
+BuildRequires: python2-stestr
BuildRequires: python3-debtcollector >= 1.2.0
+BuildRequires: python3-fixtures
BuildRequires: python3-oslotest
+BuildRequires: python3-stestr
%endif
%python_subpackages
@@ -56,10 +58,8 @@
Documentation for the oslo-context library.
%prep
-%autosetup -p1 -n oslo.context-2.21.0
+%autosetup -p1 -n oslo.context-2.22.1
%py_req_cleanup
-# without git, openstackdocstheme has warnings which let the doc build fail
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -73,9 +73,7 @@
%if %{with test}
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%endif
%files %{python_files}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.qCucZv/_old 2019-05-03 22:42:14.355217805 +0200
+++ /var/tmp/diff_new_pack.qCucZv/_new 2019-05-03 22:42:14.355217805 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.context.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.context/stable/rocky/requi…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.context/stable/stein/requi…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.context</param>
</service>
++++++ oslo.context-2.21.0.tar.gz -> oslo.context-2.22.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/.stestr.conf new/oslo.context-2.22.1/.stestr.conf
--- old/oslo.context-2.21.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.context-2.22.1/.stestr.conf 2019-02-28 19:05:34.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./oslo_context/tests
+top_path=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/.testr.conf new/oslo.context-2.22.1/.testr.conf
--- old/oslo.context-2.21.0/.testr.conf 2018-06-05 20:07:20.000000000 +0200
+++ new/oslo.context-2.22.1/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ ./oslo_context $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/.zuul.yaml new/oslo.context-2.22.1/.zuul.yaml
--- old/oslo.context-2.21.0/.zuul.yaml 2018-06-05 20:07:20.000000000 +0200
+++ new/oslo.context-2.22.1/.zuul.yaml 2019-02-28 19:05:34.000000000 +0100
@@ -1,7 +1,13 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/AUTHORS new/oslo.context-2.22.1/AUTHORS
--- old/oslo.context-2.21.0/AUTHORS 2018-06-05 20:09:43.000000000 +0200
+++ new/oslo.context-2.22.1/AUTHORS 2019-02-28 19:07:43.000000000 +0100
@@ -15,6 +15,7 @@
Eric Brown <browne(a)vmware.com>
Flavio Percoco <flaper87(a)gmail.com>
Flavio Percoco <fpercoco(a)redhat.com>
+Hervé Beraud <hberaud(a)redhat.com>
James Carey <jecarey(a)us.ibm.com>
Jamie Lennox <jamielennox(a)gmail.com>
Jason Kölker <jason(a)koelker.net>
@@ -42,10 +43,11 @@
Victor Stinner <vstinner(a)redhat.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Wei Li <wei.li(a)easystack.cn>
+ZhijunWei <wzj334965317(a)outlook.com>
ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
lingyongxu <lyxu(a)fiberhome.com>
+malei <malei(a)maleideMacBook-Pro.local>
melissaml <ma.lei(a)99cloud.net>
ricolin <rico.lin(a)easystack.cn>
wangqi <wang.qi(a)99cloud.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/ChangeLog new/oslo.context-2.22.1/ChangeLog
--- old/oslo.context-2.21.0/ChangeLog 2018-06-05 20:09:43.000000000 +0200
+++ new/oslo.context-2.22.1/ChangeLog 2019-02-28 19:07:43.000000000 +0100
@@ -1,6 +1,29 @@
CHANGES
=======
+2.22.1
+------
+
+* add python 3.7 unit test job
+* Update hacking version
+* Use template for lower-constraints
+* Update mailinglist from dev to discuss
+
+2.22.0
+------
+
+* Implement domain-scope for context objects
+* Clean up .gitignore references to personal tools
+* Always build universal wheels
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+* Switch to stestr
+* Add release notes link to README
+* fix tox python3 overrides
+
2.21.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/PKG-INFO new/oslo.context-2.22.1/PKG-INFO
--- old/oslo.context-2.21.0/PKG-INFO 2018-06-05 20:09:44.000000000 +0200
+++ new/oslo.context-2.22.1/PKG-INFO 2019-02-28 19:07:43.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.context
-Version: 2.21.0
+Version: 2.22.1
Summary: Oslo Context library
Home-page: https://docs.openstack.org/oslo.context/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ====================
Oslo Context Library
@@ -18,6 +18,7 @@
* Documentation: https://docs.openstack.org/oslo.context/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.context
* Bugs: https://bugs.launchpad.net/oslo.context
+ * Release notes: https://docs.openstack.org/releasenotes/oslo.context/
Team and repository tags
========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/README.rst new/oslo.context-2.22.1/README.rst
--- old/oslo.context-2.21.0/README.rst 2018-06-05 20:07:20.000000000 +0200
+++ new/oslo.context-2.22.1/README.rst 2019-02-28 19:05:34.000000000 +0100
@@ -10,6 +10,7 @@
* Documentation: https://docs.openstack.org/oslo.context/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.context
* Bugs: https://bugs.launchpad.net/oslo.context
+* Release notes: https://docs.openstack.org/releasenotes/oslo.context/
Team and repository tags
========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/lower-constraints.txt new/oslo.context-2.22.1/lower-constraints.txt
--- old/oslo.context-2.21.0/lower-constraints.txt 2018-06-05 20:07:20.000000000 +0200
+++ new/oslo.context-2.22.1/lower-constraints.txt 2019-02-28 19:05:34.000000000 +0100
@@ -28,8 +28,8 @@
requestsexceptions==1.2.0
six==1.10.0
smmap==0.9.0
+stestr==2.0.0
stevedore==1.20.0
-testrepository==0.0.18
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/oslo.context.egg-info/PKG-INFO new/oslo.context-2.22.1/oslo.context.egg-info/PKG-INFO
--- old/oslo.context-2.21.0/oslo.context.egg-info/PKG-INFO 2018-06-05 20:09:43.000000000 +0200
+++ new/oslo.context-2.22.1/oslo.context.egg-info/PKG-INFO 2019-02-28 19:07:43.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.context
-Version: 2.21.0
+Version: 2.22.1
Summary: Oslo Context library
Home-page: https://docs.openstack.org/oslo.context/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ====================
Oslo Context Library
@@ -18,6 +18,7 @@
* Documentation: https://docs.openstack.org/oslo.context/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.context
* Bugs: https://bugs.launchpad.net/oslo.context
+ * Release notes: https://docs.openstack.org/releasenotes/oslo.context/
Team and repository tags
========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/oslo.context.egg-info/SOURCES.txt new/oslo.context-2.22.1/oslo.context.egg-info/SOURCES.txt
--- old/oslo.context-2.21.0/oslo.context.egg-info/SOURCES.txt 2018-06-05 20:09:44.000000000 +0200
+++ new/oslo.context-2.22.1/oslo.context.egg-info/SOURCES.txt 2019-02-28 19:07:43.000000000 +0100
@@ -1,6 +1,6 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -52,6 +52,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/oslo.context.egg-info/pbr.json new/oslo.context-2.22.1/oslo.context.egg-info/pbr.json
--- old/oslo.context-2.21.0/oslo.context.egg-info/pbr.json 2018-06-05 20:09:43.000000000 +0200
+++ new/oslo.context-2.22.1/oslo.context.egg-info/pbr.json 2019-02-28 19:07:43.000000000 +0100
@@ -1 +1 @@
-{"git_version": "b1ba490", "is_release": true}
\ No newline at end of file
+{"git_version": "76a07f9", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/oslo_context/context.py new/oslo.context-2.22.1/oslo_context/context.py
--- old/oslo.context-2.21.0/oslo_context/context.py 2018-06-05 20:07:20.000000000 +0200
+++ new/oslo.context-2.22.1/oslo_context/context.py 2019-02-28 19:05:34.000000000 +0100
@@ -49,6 +49,7 @@
'project_id': ['HTTP_X_PROJECT_ID',
'HTTP_X_TENANT_ID',
'HTTP_X_TENANT'],
+ 'domain_id': ['HTTP_X_DOMAIN_ID'],
'system_scope': ['HTTP_OPENSTACK_SYSTEM_SCOPE'],
'user_domain_id': ['HTTP_X_USER_DOMAIN_ID'],
'project_domain_id': ['HTTP_X_PROJECT_DOMAIN_ID'],
@@ -318,6 +319,7 @@
'user_id': self.user_id,
'user_domain_id': self.user_domain_id,
'system_scope': self.system_scope,
+ 'domain_id': self.domain_id,
'project_id': self.project_id,
'project_domain_id': self.project_domain_id,
'roles': self.roles,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/oslo_context/tests/test_context.py new/oslo.context-2.22.1/oslo_context/tests/test_context.py
--- old/oslo.context-2.21.0/oslo_context/tests/test_context.py 2018-06-05 20:07:20.000000000 +0200
+++ new/oslo.context-2.22.1/oslo_context/tests/test_context.py 2019-02-28 19:05:34.000000000 +0100
@@ -221,6 +221,8 @@
user_id = generate_id(user_name)
project_name = uuid.uuid4().hex
project_id = generate_id(project_name)
+ domain_name = uuid.uuid4().hex
+ domain_id = generate_id(domain_name)
user_domain_name = uuid.uuid4().hex
user_domain_id = generate_id(user_domain_name)
project_domain_name = uuid.uuid4().hex
@@ -243,6 +245,7 @@
'HTTP_X_AUTH_TOKEN': auth_token,
'HTTP_X_USER_ID': user_id,
'HTTP_X_PROJECT_ID': project_id,
+ 'HTTP_X_DOMAIN_ID': domain_id,
'HTTP_X_USER_DOMAIN_ID': user_domain_id,
'HTTP_X_PROJECT_DOMAIN_ID': project_domain_id,
'HTTP_X_ROLES': ','.join(roles),
@@ -270,6 +273,7 @@
self.assertEqual(user_id, ctx.user_id)
self.assertEqual(user_name, ctx.user_name)
self.assertEqual(project_id, ctx.project_id)
+ self.assertEqual(domain_id, ctx.domain_id)
self.assertEqual(project_name, ctx.project_name)
self.assertEqual(user_domain_id, ctx.user_domain_id)
self.assertEqual(user_domain_name, ctx.user_domain_name)
@@ -555,6 +559,7 @@
self.assertEqual({'user_id': user,
'user_domain_id': user_domain,
'system_scope': None,
+ 'domain_id': None,
'project_id': tenant,
'project_domain_id': project_domain,
'roles': roles,
@@ -581,6 +586,32 @@
self.assertEqual({'user_id': user,
'user_domain_id': user_domain,
'system_scope': system_all,
+ 'domain_id': None,
+ 'project_id': None,
+ 'project_domain_id': None,
+ 'roles': roles,
+ 'is_admin_project': True,
+ 'service_user_id': service_user_id,
+ 'service_user_domain_id': None,
+ 'service_project_id': service_project_id,
+ 'service_project_domain_id': None,
+ 'service_roles': service_roles},
+ ctx.to_policy_values())
+
+ # context representing a domain-scoped token.
+ domain_id = uuid.uuid4().hex
+ ctx = context.RequestContext(user=user,
+ user_domain=user_domain,
+ domain_id=domain_id,
+ roles=roles,
+ service_user_id=service_user_id,
+ service_project_id=service_project_id,
+ service_roles=service_roles)
+
+ self.assertEqual({'user_id': user,
+ 'user_domain_id': user_domain,
+ 'system_scope': None,
+ 'domain_id': domain_id,
'project_id': None,
'project_domain_id': None,
'roles': roles,
@@ -605,6 +636,7 @@
self.assertEqual({'user_id': user,
'user_domain_id': user_domain,
'system_scope': None,
+ 'domain_id': None,
'project_id': tenant,
'project_domain_id': project_domain,
'roles': roles,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/releasenotes/source/index.rst new/oslo.context-2.22.1/releasenotes/source/index.rst
--- old/oslo.context-2.21.0/releasenotes/source/index.rst 2018-06-05 20:07:20.000000000 +0200
+++ new/oslo.context-2.22.1/releasenotes/source/index.rst 2019-02-28 19:05:34.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/releasenotes/source/rocky.rst new/oslo.context-2.22.1/releasenotes/source/rocky.rst
--- old/oslo.context-2.21.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.context-2.22.1/releasenotes/source/rocky.rst 2019-02-28 19:05:34.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/setup.cfg new/oslo.context-2.22.1/setup.cfg
--- old/oslo.context-2.21.0/setup.cfg 2018-06-05 20:09:44.000000000 +0200
+++ new/oslo.context-2.22.1/setup.cfg 2019-02-28 19:07:43.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.context/latest/
classifier =
Environment :: OpenStack
@@ -45,7 +45,7 @@
mapping_file = babel.cfg
output_file = oslo_context/locale/oslo_context.pot
-[wheel]
+[bdist_wheel]
universal = true
[egg_info]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/test-requirements.txt new/oslo.context-2.22.1/test-requirements.txt
--- old/oslo.context-2.21.0/test-requirements.txt 2018-06-05 20:07:20.000000000 +0200
+++ new/oslo.context-2.22.1/test-requirements.txt 2019-02-28 19:05:34.000000000 +0100
@@ -3,9 +3,10 @@
# process, which may cause wedges in the gate later.
fixtures>=3.0.0 # Apache-2.0/BSD
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
+stestr>=2.0.0 # Apache-2.0
# Bandit security code scanner
bandit>=1.1.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.context-2.21.0/tox.ini new/oslo.context-2.22.1/tox.ini
--- old/oslo.context-2.21.0/tox.ini 2018-06-05 20:07:20.000000000 +0200
+++ new/oslo.context-2.22.1/tox.ini 2019-02-28 19:05:34.000000000 +0100
@@ -8,7 +8,7 @@
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
[testenv:pep8]
basepython = python3
@@ -20,15 +20,18 @@
bandit -r oslo_context -x tests -n5
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:docs]
+basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -W -b html doc/source doc/build/html
[testenv:cover]
+basepython = python3
commands = python setup.py test --coverage --coverage-package-name=oslo_context --testr-args='{posargs}'
[flake8]
@@ -42,6 +45,7 @@
import_exceptions =
[testenv:releasenotes]
+basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/doc/requirements.txt
1
0
Hello community,
here is the log from the commit of package python-oslo.config for openSUSE:Factory checked in at 2019-05-03 22:42:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.config (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.config.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.config"
Fri May 3 22:42:09 2019 rev:30 rq:692854 version:6.8.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.config/python-oslo.config.changes 2019-02-26 22:18:49.682141506 +0100
+++ /work/SRC/openSUSE:Factory/.python-oslo.config.new.5148/python-oslo.config.changes 2019-05-03 22:42:10.743210200 +0200
@@ -1,0 +2,41 @@
+Mon Apr 8 11:24:14 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 6.8.1
+ - Unit tests to illustrate positional argument bug
+ - move some documentation out of the source files
+ - Optimizing the safety of the http link site in faq.rst.
+ - Fix get_location for opts in groups
+ - Update mailinglist from dev to discuss
+ - Use template for lower-constraints
+ - Add support for machine-readable files to validator
+ - Clean up grammar and spelling in driver docs
+ - import zuul job settings from project-config
+ - generator: Pass conf to _OptFormatter
+ - sphinxext: Print output to logs, not to file
+ - sphinxext: Handle multi-line group descriptions
+ - Close a previously opened file in config generator
+ - Always build universal wheels
+ - Update reno for stable/rocky
+ - Add support for looking in environment for config
+ - Simple config validator
+ - avoid trailing space in sphinxext log output
+ - add python 3.6 unit test job
+ - python3: Ensure ConfigOpts __iter__ uses list(d.keys())
+ - [Configuration] Clean up .gitignore files.
+ - sphinxext: Stop emitting lines multiple times
+ - Document when sample_default is in use
+ - add lib-forward-testing-python3 test job
+ - Add release note and documentation for config validator
+ - Cleaning testrepository occurrences.
+ - Write sphinxext debug tempfile with linebreaks
+ - Replace assertRaisesRegexp with assertRaisesRegex
+ - fix formatting of sample defaults
+ - Migrating oslo.config to use stestr
+ - Resolve deprecation warning for rfc3986 uri validation
+ - Update hacking version
+ - Clean up .gitignore references to personal tools
+ - Update sphinx extension logging
+ - add python 3.7 unit test job
+ - Revert "Optimizing the safety of the http link site in faq.rst."
+
+-------------------------------------------------------------------
Old:
----
oslo.config-6.4.1.tar.gz
New:
----
oslo.config-6.8.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.config.spec ++++++
--- /var/tmp/diff_new_pack.3D81No/_old 2019-05-03 22:42:11.331211438 +0200
+++ /var/tmp/diff_new_pack.3D81No/_new 2019-05-03 22:42:11.331211438 +0200
@@ -17,13 +17,13 @@
Name: python-oslo.config
-Version: 6.4.1
+Version: 6.8.1
Release: 0
Summary: OpenStack common configuration library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.config
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.config/oslo.config-6.…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.config/oslo.config-6.…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-PyYAML >= 3.12
@@ -34,10 +34,9 @@
BuildRequires: python2-oslo.i18n >= 3.15.3
BuildRequires: python2-oslotest
BuildRequires: python2-pbr
-BuildRequires: python2-python-subunit
BuildRequires: python2-requests >= 2.18.0
BuildRequires: python2-requests-mock
-BuildRequires: python2-rfc3986 >= 0.3.1
+BuildRequires: python2-rfc3986 >= 1.2.0
BuildRequires: python2-six >= 1.10.0
BuildRequires: python2-stevedore >= 1.20.0
BuildRequires: python2-testrepository
@@ -52,10 +51,9 @@
BuildRequires: python3-oslo.i18n >= 3.15.3
BuildRequires: python3-oslotest
BuildRequires: python3-pbr
-BuildRequires: python3-python-subunit
BuildRequires: python3-requests >= 2.18.0
BuildRequires: python3-requests-mock
-BuildRequires: python3-rfc3986 >= 0.3.1
+BuildRequires: python3-rfc3986 >= 1.2.0
BuildRequires: python3-six >= 1.10.0
BuildRequires: python3-stevedore >= 1.20.0
BuildRequires: python3-testrepository
@@ -66,7 +64,7 @@
Requires: python-netaddr >= 0.7.18
Requires: python-oslo.i18n >= 3.15.3
Requires: python-requests >= 2.18.0
-Requires: python-rfc3986 >= 0.3.1
+Requires: python-rfc3986 >= 1.2.0
Requires: python-six >= 1.10.0
Requires: python-stevedore >= 1.20.0
BuildArch: noarch
@@ -103,14 +101,13 @@
Documentation for the oslo-config library.
%prep
-%autosetup -p1 -n oslo.config-6.4.1
+%autosetup -p1 -n oslo.config-6.8.1
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
-PBR_VERSION=6.4.1 PYTHONPATH=. \
+PBR_VERSION=6.8.1 PYTHONPATH=. \
sphinx-build -b html doc/source doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
@@ -118,9 +115,10 @@
%install
%{python_install}
%python_clone -a %{buildroot}%{_bindir}/oslo-config-generator
+%python_clone -a %{buildroot}%{_bindir}/oslo-config-validator
%post
-%python_install_alternative oslo-config-generator
+%{python_install_alternative oslo-config-generator oslo-config-validator}
%postun
%python_uninstall_alternative oslo-config-generator
@@ -135,6 +133,7 @@
%files %{python_files}
%license LICENSE
%python_alternative %{_bindir}/oslo-config-generator
+%python_alternative %{_bindir}/oslo-config-validator
%{python_sitelib}/oslo_config
%{python_sitelib}/*.egg-info
++++++ _service ++++++
--- /var/tmp/diff_new_pack.3D81No/_old 2019-05-03 22:42:11.371211522 +0200
+++ /var/tmp/diff_new_pack.3D81No/_new 2019-05-03 22:42:11.371211522 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.config.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.config/stable/rocky/requir…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.config/stable/stein/requir…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.config</param>
</service>
++++++ oslo.config-6.4.1.tar.gz -> oslo.config-6.8.1.tar.gz ++++++
++++ 2948 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-oslo.concurrency for openSUSE:Factory checked in at 2019-05-03 22:42:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.concurrency (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.concurrency.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.concurrency"
Fri May 3 22:42:04 2019 rev:13 rq:692853 version:3.29.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.concurrency/python-oslo.concurrency.changes 2018-09-07 15:38:44.622578658 +0200
+++ /work/SRC/openSUSE:Factory/.python-oslo.concurrency.new.5148/python-oslo.concurrency.changes 2019-05-03 22:42:08.639205771 +0200
@@ -1,0 +2,28 @@
+Mon Apr 8 11:44:31 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.29.1
+ - Switch to stestr
+ - Imported Translations from Zanata
+ - Update mailinglist from dev to discuss
+ - Remove PyPI downloads
+ - Change python3.5 job to python3.7 job on Stein+
+ - import zuul job settings from project-config
+ - ignore warning from bandit for using shell=
+ - Always build universal wheels
+ - Update reno for stable/rocky
+ - Reorganize that 'Release Notes' in README
+ - Don't quote {posargs} in tox.ini
+ - add python 3.6 unit test job
+ - add lib-forward-testing-python3 test job
+ - Remove stale pip-missing-reqs tox test
+ - Trivial: Update pypi url to new url
+ - Add support for fair locks
+ - fix tox python3 overrides
+ - Update hacking version
+ - Clean up .gitignore references to personal tools
+ - Stop using setup.py build_sphinx
+ - Add release notes link to README
+ - add python 3.7 unit test job
+ - Use templates for cover and lower-constraints
+
+-------------------------------------------------------------------
Old:
----
oslo.concurrency-3.27.0.tar.gz
New:
----
oslo.concurrency-3.29.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.concurrency.spec ++++++
--- /var/tmp/diff_new_pack.Nk958v/_old 2019-05-03 22:42:09.039206613 +0200
+++ /var/tmp/diff_new_pack.Nk958v/_new 2019-05-03 22:42:09.043206621 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.concurrency
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-oslo.concurrency
-Version: 3.27.0
+Version: 3.29.1
Release: 0
Summary: OpenStack oslo.concurrency library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/oslo.concurrency
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.concurrency/oslo.conc…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.concurrency/oslo.conc…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-enum34 >= 1.0.4
@@ -37,7 +37,7 @@
BuildRequires: python2-oslo.utils >= 3.33.0
BuildRequires: python2-oslotest
BuildRequires: python2-pbr >= 2.0.0
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
BuildRequires: python3-eventlet
@@ -49,15 +49,13 @@
BuildRequires: python3-oslo.utils >= 3.33.0
BuildRequires: python3-oslotest
BuildRequires: python3-pbr >= 2.0.0
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
Requires: python-fasteners >= 0.7.0
-Requires: python-iso8601
Requires: python-oslo.config >= 5.2.0
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.utils >= 3.33.0
-Requires: python-retrying
Requires: python-six >= 1.10.0
BuildArch: noarch
%ifpython2
@@ -91,9 +89,8 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n oslo.concurrency-3.27.0
+%autosetup -p1 -n oslo.concurrency-3.29.1
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -114,13 +111,9 @@
%python_uninstall_alternative lockutils-wrapper
%check
-%{python_expand rm -rf .testrepository
-# Test suite fails on 32 bit platforms
-# ifarch/ifnarch can not be used in noarch packages
if [ "%_lib" = "lib64" ]; then
-PYTHON=$python $python setup.py testr
+%python_exec -m stestr.cli run
fi
-}
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Nk958v/_old 2019-05-03 22:42:09.063206664 +0200
+++ /var/tmp/diff_new_pack.Nk958v/_new 2019-05-03 22:42:09.067206672 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.concurrency.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.concurrency/stable/rocky/r…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.concurrency/stable/stein/r…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.concurrency</param>
</service>
++++++ oslo.concurrency-3.27.0.tar.gz -> oslo.concurrency-3.29.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/.stestr.conf new/oslo.concurrency-3.29.1/.stestr.conf
--- old/oslo.concurrency-3.27.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.concurrency-3.29.1/.stestr.conf 2019-02-28 19:04:08.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=./oslo_concurrency/tests/unit
+top_path=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/.testr.conf new/oslo.concurrency-3.29.1/.testr.conf
--- old/oslo.concurrency-3.27.0/.testr.conf 2018-04-17 17:30:13.000000000 +0200
+++ new/oslo.concurrency-3.29.1/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/.zuul.yaml new/oslo.concurrency-3.29.1/.zuul.yaml
--- old/oslo.concurrency-3.27.0/.zuul.yaml 2018-04-17 17:30:13.000000000 +0200
+++ new/oslo.concurrency-3.29.1/.zuul.yaml 2019-02-28 19:04:08.000000000 +0100
@@ -1,7 +1,13 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-cover-jobs
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/AUTHORS new/oslo.concurrency-3.29.1/AUTHORS
--- old/oslo.concurrency-3.27.0/AUTHORS 2018-04-17 17:33:01.000000000 +0200
+++ new/oslo.concurrency-3.29.1/AUTHORS 2019-02-28 19:07:01.000000000 +0100
@@ -14,9 +14,11 @@
Brian Rosmaita <rosmaita.fossdev(a)gmail.com>
Chang Bo Guo <guochbo(a)cn.ibm.com>
ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
+Chris Friesen <chris.friesen(a)windriver.com>
Christian Berendt <berendt(a)b1-systems.de>
Chuck Short <chuck.short(a)canonical.com>
Claudiu Belu <cbelu(a)cloudbasesolutions.com>
+Corey Bryant <corey.bryant(a)canonical.com>
Csaba Henk <chenk(a)redhat.com>
Dan Prince <dprince(a)redhat.com>
Daniel P. Berrange <berrange(a)redhat.com>
@@ -34,6 +36,7 @@
Gary Kotton <gkotton(a)redhat.com>
Gary Kotton <gkotton(a)vmware.com>
Gevorg Davoian <gdavoian(a)mirantis.com>
+Hervé Beraud <hberaud(a)redhat.com>
IWAMOTO Toshihiro <iwamoto(a)valinux.co.jp>
Ian Cordasco <ian.cordasco(a)rackspace.com>
Ihar Hrachyshka <ihrachys(a)redhat.com>
@@ -49,6 +52,7 @@
Joshua Harlow <harlowja(a)yahoo-inc.com>
Joshua Harlow <jxharlow(a)godaddy.com>
Julien Danjou <julien(a)danjou.info>
+Kenneth Giusti <kgiusti(a)gmail.com>
Kirill Bespalov <kbespalov(a)mirantis.com>
Lucian Petrut <lpetrut(a)cloudbasesolutions.com>
Mark McLoughlin <markmc(a)redhat.com>
@@ -78,12 +82,14 @@
Victor Sergeyev <vsergeyev(a)mirantis.com>
Victor Stinner <victor.stinner(a)enovance.com>
Victor Stinner <vstinner(a)redhat.com>
+Vieri <15050873171(a)163.com>
+Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Wu Wenxiang <wu.wenxiang(a)99cloud.net>
Yuriy Taraday <yorik.sar(a)gmail.com>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
+ZhijunWei <wzj334965317(a)outlook.com>
ZhongShengping <chdzsp(a)163.com>
Zhongyue Luo <zhongyue.nah(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
gecong1973 <ge.cong(a)zte.com.cn>
gengchc2 <geng.changcai2(a)zte.com.cn>
howardlee <lihongweibj(a)inspur.com>
@@ -93,6 +99,8 @@
prashkre <prashkre(a)in.ibm.com>
ricolin <rico.lin(a)easystack.cn>
shangxiaobj <shangxiaobj(a)inspur.com>
+shupeng <15050873171(a)163.com>
vponomaryov <vponomaryov(a)mirantis.com>
+wangqi <wang.qi(a)99cloud.net>
yanheven <yanheven(a)qq.com>
zhangsong <zhangsong(a)cmss.chinamobile.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/ChangeLog new/oslo.concurrency-3.29.1/ChangeLog
--- old/oslo.concurrency-3.27.0/ChangeLog 2018-04-17 17:33:01.000000000 +0200
+++ new/oslo.concurrency-3.29.1/ChangeLog 2019-02-28 19:07:01.000000000 +0100
@@ -1,6 +1,41 @@
CHANGES
=======
+3.29.1
+------
+
+* add python 3.7 unit test job
+* Change python3.5 job to python3.7 job on Stein+
+* Update hacking version
+* Stop using setup.py build\_sphinx
+* Update mailinglist from dev to discuss
+
+3.29.0
+------
+
+* Add support for fair locks
+* Clean up .gitignore references to personal tools
+* Don't quote {posargs} in tox.ini
+* Always build universal wheels
+
+3.28.1
+------
+
+* Imported Translations from Zanata
+* Use templates for cover and lower-constraints
+* ignore warning from bandit for using shell=
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* Remove PyPI downloads
+* import zuul job settings from project-config
+* Reorganize that 'Release Notes' in README
+* Update reno for stable/rocky
+* Switch to stestr
+* Add release notes link to README
+* fix tox python3 overrides
+* Remove stale pip-missing-reqs tox test
+* Trivial: Update pypi url to new url
+
3.27.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/PKG-INFO new/oslo.concurrency-3.29.1/PKG-INFO
--- old/oslo.concurrency-3.27.0/PKG-INFO 2018-04-17 17:33:02.000000000 +0200
+++ new/oslo.concurrency-3.29.1/PKG-INFO 2019-02-28 19:07:01.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.concurrency
-Version: 3.27.0
+Version: 3.29.1
Summary: Oslo Concurrency library
Home-page: https://docs.openstack.org/oslo.concurrency/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -15,18 +15,14 @@
.. Change things from this point on
- ==================
+ =================
oslo.concurrency
- ==================
+ =================
.. image:: https://img.shields.io/pypi/v/oslo.concurrency.svg
- :target: https://pypi.python.org/pypi/oslo.concurrency/
+ :target: https://pypi.org/project/oslo.concurrency/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/oslo.concurrency.svg
- :target: https://pypi.python.org/pypi/oslo.concurrency/
- :alt: Downloads
-
The oslo.concurrency library has utilities for safely running multi-thread,
multi-process applications using locking mechanisms and for running
external processes.
@@ -35,6 +31,7 @@
* Documentation: https://docs.openstack.org/oslo.concurrency/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.concurrency
* Bugs: https://bugs.launchpad.net/oslo.concurrency
+ * Release Notes: https://docs.openstack.org/releasenotes/oslo.concurrency/
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/README.rst new/oslo.concurrency-3.29.1/README.rst
--- old/oslo.concurrency-3.27.0/README.rst 2018-04-17 17:30:13.000000000 +0200
+++ new/oslo.concurrency-3.29.1/README.rst 2019-02-28 19:04:08.000000000 +0100
@@ -7,18 +7,14 @@
.. Change things from this point on
-==================
+=================
oslo.concurrency
-==================
+=================
.. image:: https://img.shields.io/pypi/v/oslo.concurrency.svg
- :target: https://pypi.python.org/pypi/oslo.concurrency/
+ :target: https://pypi.org/project/oslo.concurrency/
:alt: Latest Version
-.. image:: https://img.shields.io/pypi/dm/oslo.concurrency.svg
- :target: https://pypi.python.org/pypi/oslo.concurrency/
- :alt: Downloads
-
The oslo.concurrency library has utilities for safely running multi-thread,
multi-process applications using locking mechanisms and for running
external processes.
@@ -27,3 +23,4 @@
* Documentation: https://docs.openstack.org/oslo.concurrency/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.concurrency
* Bugs: https://bugs.launchpad.net/oslo.concurrency
+* Release Notes: https://docs.openstack.org/releasenotes/oslo.concurrency/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/doc/source/user/index.rst new/oslo.concurrency-3.29.1/doc/source/user/index.rst
--- old/oslo.concurrency-3.27.0/doc/source/user/index.rst 2018-04-17 17:30:13.000000000 +0200
+++ new/oslo.concurrency-3.29.1/doc/source/user/index.rst 2019-02-28 19:04:08.000000000 +0100
@@ -47,6 +47,32 @@
namespacing them to your app so that other apps will not chose the same
names).
+Enabling fair locking
+=====================
+
+By default there is no requirement that the lock is ``fair``. That is, it's
+possible for a thread to block waiting for the lock, then have another thread
+block waiting for the lock, and when the lock is released by the current owner
+the second waiter could acquire the lock before the first. In an extreme case
+you could have a whole string of other threads acquire the lock before the
+first waiter acquires it, resulting in unpredictable amounts of latency.
+
+For cases where this is a problem, it's possible to specify the use of fair
+locks::
+
+ @lockutils.synchronized('not_thread_process_safe', fair=True)
+ def not_thread_process_safe():
+ pass
+
+When using fair locks the lock itself is slightly more expensive (which
+shouldn't matter in most cases), but it will ensure that all threads that
+block waiting for the lock will acquire it in the order that they blocked.
+
+The exception to this is when specifying both ``external`` and ``fair``
+locks. In this case, the ordering *within* a given process will be fair, but
+the ordering *between* processes will be determined by the behaviour of the
+underlying OS.
+
Common ways to prefix/namespace the synchronized decorator
==========================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/lower-constraints.txt new/oslo.concurrency-3.29.1/lower-constraints.txt
--- old/oslo.concurrency-3.27.0/lower-constraints.txt 2018-04-17 17:30:29.000000000 +0200
+++ new/oslo.concurrency-3.29.1/lower-constraints.txt 2019-02-28 19:04:08.000000000 +0100
@@ -54,7 +54,7 @@
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
stevedore==1.20.0
-testrepository==0.0.18
+stestr==2.0.0
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/oslo.concurrency.egg-info/PKG-INFO new/oslo.concurrency-3.29.1/oslo.concurrency.egg-info/PKG-INFO
--- old/oslo.concurrency-3.27.0/oslo.concurrency.egg-info/PKG-INFO 2018-04-17 17:33:01.000000000 +0200
+++ new/oslo.concurrency-3.29.1/oslo.concurrency.egg-info/PKG-INFO 2019-02-28 19:07:01.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: oslo.concurrency
-Version: 3.27.0
+Version: 3.29.1
Summary: Oslo Concurrency library
Home-page: https://docs.openstack.org/oslo.concurrency/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -15,18 +15,14 @@
.. Change things from this point on
- ==================
+ =================
oslo.concurrency
- ==================
+ =================
.. image:: https://img.shields.io/pypi/v/oslo.concurrency.svg
- :target: https://pypi.python.org/pypi/oslo.concurrency/
+ :target: https://pypi.org/project/oslo.concurrency/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/oslo.concurrency.svg
- :target: https://pypi.python.org/pypi/oslo.concurrency/
- :alt: Downloads
-
The oslo.concurrency library has utilities for safely running multi-thread,
multi-process applications using locking mechanisms and for running
external processes.
@@ -35,6 +31,7 @@
* Documentation: https://docs.openstack.org/oslo.concurrency/latest/
* Source: https://git.openstack.org/cgit/openstack/oslo.concurrency
* Bugs: https://bugs.launchpad.net/oslo.concurrency
+ * Release Notes: https://docs.openstack.org/releasenotes/oslo.concurrency/
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/oslo.concurrency.egg-info/SOURCES.txt new/oslo.concurrency-3.29.1/oslo.concurrency.egg-info/SOURCES.txt
--- old/oslo.concurrency-3.27.0/oslo.concurrency.egg-info/SOURCES.txt 2018-04-17 17:33:02.000000000 +0200
+++ new/oslo.concurrency-3.29.1/oslo.concurrency.egg-info/SOURCES.txt 2019-02-28 19:07:01.000000000 +0100
@@ -1,6 +1,6 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -56,6 +56,7 @@
oslo_concurrency/tests/unit/test_lockutils.py
oslo_concurrency/tests/unit/test_lockutils_eventlet.py
oslo_concurrency/tests/unit/test_processutils.py
+releasenotes/notes/add-option-for-fair-locks-b6d660e97683cec6.yaml
releasenotes/notes/add-python-exec-kwarg-3a7a0c0849f9bb21.yaml
releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml
releasenotes/source/conf.py
@@ -64,6 +65,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/oslo.concurrency.egg-info/pbr.json new/oslo.concurrency-3.29.1/oslo.concurrency.egg-info/pbr.json
--- old/oslo.concurrency-3.27.0/oslo.concurrency.egg-info/pbr.json 2018-04-17 17:33:01.000000000 +0200
+++ new/oslo.concurrency-3.29.1/oslo.concurrency.egg-info/pbr.json 2019-02-28 19:07:01.000000000 +0100
@@ -1 +1 @@
-{"git_version": "2429c4c", "is_release": true}
\ No newline at end of file
+{"git_version": "e11481b", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/oslo_concurrency/lockutils.py new/oslo.concurrency-3.29.1/oslo_concurrency/lockutils.py
--- old/oslo.concurrency-3.27.0/oslo_concurrency/lockutils.py 2018-04-17 17:30:13.000000000 +0200
+++ new/oslo.concurrency-3.29.1/oslo_concurrency/lockutils.py 2019-02-28 19:04:08.000000000 +0100
@@ -87,6 +87,49 @@
"""
+class FairLocks(object):
+ """A garbage collected container of fair locks.
+
+ With a fair lock, contending lockers will get the lock in the order in
+ which they tried to acquire it.
+
+ This collection internally uses a weak value dictionary so that when a
+ lock is no longer in use (by any threads) it will automatically be
+ removed from this container by the garbage collector.
+ """
+
+ def __init__(self):
+ self._locks = weakref.WeakValueDictionary()
+ self._lock = threading.Lock()
+
+ def get(self, name):
+ """Gets (or creates) a lock with a given name.
+
+ :param name: The lock name to get/create (used to associate
+ previously created names with the same lock).
+
+ Returns an newly constructed lock (or an existing one if it was
+ already created for the given name).
+ """
+ with self._lock:
+ try:
+ return self._locks[name]
+ except KeyError:
+ # The fasteners module specifies that
+ # ReaderWriterLock.write_lock() will give FIFO behaviour,
+ # so we don't need to do anything special ourselves.
+ rwlock = ReaderWriterLock()
+ self._locks[name] = rwlock
+ return rwlock
+
+
+_fair_locks = FairLocks()
+
+
+def internal_fair_lock(name):
+ return _fair_locks.get(name)
+
+
class Semaphores(object):
"""A garbage collected container of semaphores.
@@ -170,7 +213,7 @@
@contextlib.contextmanager
def lock(name, lock_file_prefix=None, external=False, lock_path=None,
- do_log=True, semaphores=None, delay=0.01):
+ do_log=True, semaphores=None, delay=0.01, fair=False):
"""Context based lock
This function yields a `threading.Semaphore` instance (if we don't use
@@ -200,16 +243,26 @@
:param delay: Delay between acquisition attempts (in seconds).
+ :param fair: Whether or not we want a "fair" lock where contending lockers
+ will get the lock in the order in which they tried to acquire it.
+
.. versionchanged:: 0.2
Added *do_log* optional parameter.
.. versionchanged:: 0.3
Added *delay* and *semaphores* optional parameters.
"""
- int_lock = internal_lock(name, semaphores=semaphores)
+ if fair:
+ if semaphores is not None:
+ raise NotImplementedError(_('Specifying semaphores is not '
+ 'supported when using fair locks.'))
+ # The fastners module specifies that write_lock() provides fairness.
+ int_lock = internal_fair_lock(name).write_lock()
+ else:
+ int_lock = internal_lock(name, semaphores=semaphores)
with int_lock:
if do_log:
- LOG.debug('Acquired semaphore "%(lock)s"', {'lock': name})
+ LOG.debug('Acquired lock "%(lock)s"', {'lock': name})
try:
if external and not CONF.oslo_concurrency.disable_process_locking:
ext_lock = external_lock(name, lock_file_prefix, lock_path)
@@ -225,11 +278,11 @@
yield int_lock
finally:
if do_log:
- LOG.debug('Releasing semaphore "%(lock)s"', {'lock': name})
+ LOG.debug('Releasing lock "%(lock)s"', {'lock': name})
def synchronized(name, lock_file_prefix=None, external=False, lock_path=None,
- semaphores=None, delay=0.01):
+ semaphores=None, delay=0.01, fair=False):
"""Synchronization decorator.
Decorating a method like so::
@@ -264,7 +317,8 @@
t2 = None
try:
with lock(name, lock_file_prefix, external, lock_path,
- do_log=False, semaphores=semaphores, delay=delay):
+ do_log=False, semaphores=semaphores, delay=delay,
+ fair=fair):
t2 = timeutils.now()
LOG.debug('Lock "%(name)s" acquired by "%(function)s" :: '
'waited %(wait_secs)0.3fs',
@@ -348,7 +402,7 @@
lockutils-wrapper
If you run this:
- lockutils-wrapper python setup.py testr <etc>
+ lockutils-wrapper stestr run <etc>
a temporary directory will be created for all your locks and passed to all
your tests in an environment variable. The temporary dir will be deleted
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/oslo_concurrency/opts.py new/oslo.concurrency-3.29.1/oslo_concurrency/opts.py
--- old/oslo.concurrency-3.27.0/oslo_concurrency/opts.py 2018-04-17 17:30:13.000000000 +0200
+++ new/oslo.concurrency-3.29.1/oslo_concurrency/opts.py 2019-02-28 19:04:08.000000000 +0100
@@ -12,17 +12,15 @@
# License for the specific language governing permissions and limitations
# under the License.
+import copy
+
+from oslo_concurrency import lockutils
__all__ = [
'list_opts',
]
-import copy
-
-from oslo_concurrency import lockutils
-
-
def list_opts():
"""Return a list of oslo.config options available in the library.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/oslo_concurrency/processutils.py new/oslo.concurrency-3.29.1/oslo_concurrency/processutils.py
--- old/oslo.concurrency-3.27.0/oslo_concurrency/processutils.py 2018-04-17 17:30:29.000000000 +0200
+++ new/oslo.concurrency-3.29.1/oslo_concurrency/processutils.py 2019-02-28 19:04:08.000000000 +0100
@@ -386,7 +386,7 @@
stderr=_PIPE,
close_fds=close_fds,
preexec_fn=on_preexec_fn,
- shell=shell,
+ shell=shell, # nosec:B604
cwd=cwd,
env=env_variables)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/oslo_concurrency/tests/unit/test_lockutils.py new/oslo.concurrency-3.29.1/oslo_concurrency/tests/unit/test_lockutils.py
--- old/oslo.concurrency-3.27.0/oslo_concurrency/tests/unit/test_lockutils.py 2018-04-17 17:30:13.000000000 +0200
+++ new/oslo.concurrency-3.29.1/oslo_concurrency/tests/unit/test_lockutils.py 2019-02-28 19:04:08.000000000 +0100
@@ -147,6 +147,45 @@
self.assertEqual(saved_sem_num, len(lockutils._semaphores),
"Semaphore leak detected")
+ def test_lock_internal_fair(self):
+ """Check that we're actually fair."""
+
+ def f(_id):
+ with lockutils.lock('testlock', 'test-',
+ external=False, fair=True):
+ lock_holder.append(_id)
+
+ lock_holder = []
+ threads = []
+ # While holding the fair lock, spawn a bunch of threads that all try
+ # to acquire the lock. They will all block. Then release the lock
+ # and see what happens.
+ with lockutils.lock('testlock', 'test-', external=False, fair=True):
+ for i in range(10):
+ thread = threading.Thread(target=f, args=(i,))
+ threads.append(thread)
+ thread.start()
+ # Allow some time for the new thread to get queued onto the
+ # list of pending writers before continuing. This is gross
+ # but there's no way around it without using knowledge of
+ # fasteners internals.
+ time.sleep(0.5)
+ # Wait for all threads.
+ for thread in threads:
+ thread.join()
+
+ self.assertEqual(10, len(lock_holder))
+ # Check that the threads each got the lock in fair order.
+ for i in range(10):
+ self.assertEqual(i, lock_holder[i])
+
+ def test_fair_lock_with_semaphore(self):
+ def do_test():
+ s = lockutils.Semaphores()
+ with lockutils.lock('testlock', 'test-', semaphores=s, fair=True):
+ pass
+ self.assertRaises(NotImplementedError, do_test)
+
def test_nested_synchronized_external_works(self):
"""We can nest external syncs."""
tempdir = tempfile.mkdtemp()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/releasenotes/notes/add-option-for-fair-locks-b6d660e97683cec6.yaml new/oslo.concurrency-3.29.1/releasenotes/notes/add-option-for-fair-locks-b6d660e97683cec6.yaml
--- old/oslo.concurrency-3.27.0/releasenotes/notes/add-option-for-fair-locks-b6d660e97683cec6.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.concurrency-3.29.1/releasenotes/notes/add-option-for-fair-locks-b6d660e97683cec6.yaml 2019-02-28 19:04:08.000000000 +0100
@@ -0,0 +1,15 @@
+---
+prelude: >
+ This release includes optional support for fair locks. When fair locks
+ are specified, blocking waiters will acquire the lock in the order that
+ they blocked.
+features:
+ - |
+ We now have optional support for ``fair`` locks. When fair locks are
+ specified, blocking waiters will acquire the lock in the order that they
+ blocked. This can be useful to ensure that existing blocked waiters do
+ not wait indefinitely in the face of large numbers of new attempts to
+ acquire the lock. When specifying locks as both ``external`` and ``fair``,
+ the ordering *within* a given process will be fair, but the ordering
+ *between* processes will be determined by the behaviour of the underlying
+ OS.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/releasenotes/source/index.rst new/oslo.concurrency-3.29.1/releasenotes/source/index.rst
--- old/oslo.concurrency-3.27.0/releasenotes/source/index.rst 2018-04-17 17:30:13.000000000 +0200
+++ new/oslo.concurrency-3.29.1/releasenotes/source/index.rst 2019-02-28 19:04:08.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.concurrency-3.29.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/oslo.concurrency-3.27.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-04-17 17:30:13.000000000 +0200
+++ new/oslo.concurrency-3.29.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-02-28 19:04:08.000000000 +0100
@@ -3,13 +3,13 @@
# Andi Chandler <andi(a)gowling.com>, 2018. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.concurrency Release Notes\n"
+"Project-Id-Version: oslo.concurrency\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 11:40+0000\n"
+"POT-Creation-Date: 2018-08-27 12:03+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-01-26 07:19+0000\n"
+"PO-Revision-Date: 2018-09-16 09:03+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -49,6 +49,9 @@
msgid "Queens Series Release Notes"
msgstr "Queens Series Release Notes"
+msgid "Rocky Series Release Notes"
+msgstr "Rocky Series Release Notes"
+
msgid "Switch to reno for managing release notes."
msgstr "Switch to reno for managing release notes."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/releasenotes/source/rocky.rst new/oslo.concurrency-3.29.1/releasenotes/source/rocky.rst
--- old/oslo.concurrency-3.27.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.concurrency-3.29.1/releasenotes/source/rocky.rst 2019-02-28 19:04:08.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/setup.cfg new/oslo.concurrency-3.29.1/setup.cfg
--- old/oslo.concurrency-3.27.0/setup.cfg 2018-04-17 17:33:02.000000000 +0200
+++ new/oslo.concurrency-3.29.1/setup.cfg 2019-02-28 19:07:01.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.concurrency/latest/
classifier =
Environment :: OpenStack
@@ -54,7 +54,7 @@
[pbr]
warnerrors = True
-[wheel]
+[bdist_wheel]
universal = 1
[egg_info]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/test-requirements.txt new/oslo.concurrency-3.29.1/test-requirements.txt
--- old/oslo.concurrency-3.27.0/test-requirements.txt 2018-04-17 17:30:29.000000000 +0200
+++ new/oslo.concurrency-3.29.1/test-requirements.txt 2019-02-28 19:04:08.000000000 +0100
@@ -2,11 +2,12 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
futures>=3.0.0;python_version=='2.7' or python_version=='2.6' # BSD
fixtures>=3.0.0 # Apache-2.0/BSD
+stestr>=2.0.0 # Apache-2.0
# These are needed for docs generation
openstackdocstheme>=1.18.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.concurrency-3.27.0/tox.ini new/oslo.concurrency-3.29.1/tox.ini
--- old/oslo.concurrency-3.27.0/tox.ini 2018-04-17 17:30:29.000000000 +0200
+++ new/oslo.concurrency-3.29.1/tox.ini 2019-02-28 19:04:08.000000000 +0100
@@ -3,7 +3,6 @@
envlist = py35,py27,pep8
[testenv]
-basepython = python3
install_command = pip install {opts} {packages}
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
@@ -11,13 +10,14 @@
-r{toxinidir}/requirements.txt
# We want to support both vanilla stdlib and eventlet monkey patched
commands =
- lockutils-wrapper python setup.py testr --slowest --testr-args='{posargs}'
- env TEST_EVENTLET=1 lockutils-wrapper python setup.py testr --slowest --testr-args='{posargs}'
+ lockutils-wrapper stestr run --slowest {posargs}
+ env TEST_EVENTLET=1 lockutils-wrapper stestr run --slowest {posargs}
[testenv:py27]
basepython = python2.7
[testenv:pep8]
+basepython = python3
deps =
-r{toxinidir}/test-requirements.txt
commands =
@@ -26,13 +26,25 @@
bandit -r oslo_concurrency -x tests -n5 --skip B311,B404,B603,B606
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:docs]
-commands = python setup.py build_sphinx
+basepython = python3
+whitelist_externals = rm
+commands =
+ rm -fr doc/build
+ sphinx-build -W -b html doc/source doc/build/html {posargs}
[testenv:cover]
-commands = python setup.py test --coverage --coverage-package-name=oslo_concurrency --testr-args='{posargs}'
+basepython = python3
+setenv =
+ PYTHON=coverage run --source oslo_concurrency --parallel-mode
+commands =
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
[flake8]
show-source = True
@@ -43,18 +55,12 @@
import_exceptions =
oslo_concurrency._i18n
-[testenv:pip-missing-reqs]
-# do not install test-requirements as that will pollute the virtualenv for
-# determining missing packages
-# this also means that pip-missing-reqs must be installed separately, outside
-# of the requirements.txt files
-deps = pip_missing_reqs
-commands = pip-missing-reqs -d --ignore-module=oslo_concurrency* --ignore-file=oslo_concurrency/tests/* --ignore-file=tests/ oslo_concurrency
-
[testenv:releasenotes]
+basepython = python3
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:lower-constraints]
+basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
1
0
Hello community,
here is the log from the commit of package python-oslo.cache for openSUSE:Factory checked in at 2019-05-03 22:42:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.cache (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.cache.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.cache"
Fri May 3 22:42:00 2019 rev:7 rq:692852 version:1.33.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.cache/python-oslo.cache.changes 2019-02-26 22:18:46.994142420 +0100
+++ /work/SRC/openSUSE:Factory/.python-oslo.cache.new.5148/python-oslo.cache.changes 2019-05-03 22:42:04.323196684 +0200
@@ -1,0 +2,26 @@
+Mon Apr 8 11:11:58 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.33.2
+ - Update mailinglist from dev to discuss
+ - Drop expired connections before retrieving from the queue
+ - fix tox python3 overrides
+ - Config dict arguments.url must be a list
+ - Update the requirements to match global-requirements for dogpile.cache
+ - Switch to stestr
+ - tox: Fix typo
+ - uncap dogpile
+ - Fix memcache pool client in monkey-patched environments
+ - Imported Translations from Zanata
+ - Always build universal wheels
+ - Update reno for stable/rocky
+ - Clean up .gitignore references to personal tools
+ - Add release notes link to README
+ - Don't quote {posargs} in tox.ini
+ - Use template for lower-constraints
+ - add lib-forward-testing-python3 test job
+ - add python 3.6 unit test job
+ - Only split url arg with memcache backend
+ - import zuul job settings from project-config
+ - fix dogpile.cache issue due to the new usage of decorate in the lib
+
+-------------------------------------------------------------------
Old:
----
oslo.cache-1.30.3.tar.gz
New:
----
oslo.cache-1.33.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.cache.spec ++++++
--- /var/tmp/diff_new_pack.Iln0tV/_old 2019-05-03 22:42:05.007198124 +0200
+++ /var/tmp/diff_new_pack.Iln0tV/_new 2019-05-03 22:42:05.007198124 +0200
@@ -17,13 +17,13 @@
Name: python-oslo.cache
-Version: 1.30.3
+Version: 1.33.2
Release: 0
Summary: Cache storage for Openstack projects
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/%{sname}
-Source0: https://files.pythonhosted.org/packages/source/o/oslo.cache/oslo.cache-1.30…
+Source0: https://files.pythonhosted.org/packages/source/o/oslo.cache/oslo.cache-1.33…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-dogpile.cache >= 0.6.2
@@ -38,7 +38,6 @@
BuildRequires: python2-python-memcached
BuildRequires: python2-six >= 1.10.0
BuildRequires: python2-stestr
-BuildRequires: python2-testrepository
BuildRequires: python3-devel
BuildRequires: python3-dogpile.cache >= 0.6.2
BuildRequires: python3-mock
@@ -52,7 +51,6 @@
BuildRequires: python3-python-memcached
BuildRequires: python3-six >= 1.10.0
BuildRequires: python3-stestr
-BuildRequires: python3-testrepository
Requires: python-dogpile.cache >= 0.6.2
Requires: python-oslo.config >= 5.2.0
Requires: python-oslo.i18n >= 3.15.3
@@ -80,9 +78,8 @@
Documentation for the OpenStack Oslo cache library.
%prep
-%autosetup -p1 -n oslo.cache-1.30.3
+%autosetup -p1 -n oslo.cache-1.33.2
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -91,7 +88,7 @@
%{python_install}
# generate html docs
-PBR_VERSION=1.30.3 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=1.33.2 sphinx-build -b html doc/source doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Iln0tV/_old 2019-05-03 22:42:05.079198276 +0200
+++ /var/tmp/diff_new_pack.Iln0tV/_new 2019-05-03 22:42:05.079198276 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-oslo.cache.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.cache/stable/rocky/require…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/oslo.cache/stable/stein/require…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,oslo.cache</param>
</service>
++++++ oslo.cache-1.30.3.tar.gz -> oslo.cache-1.33.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/.zuul.yaml new/oslo.cache-1.33.2/.zuul.yaml
--- old/oslo.cache-1.30.3/.zuul.yaml 2019-01-29 10:51:24.000000000 +0100
+++ new/oslo.cache-1.33.2/.zuul.yaml 2019-03-01 15:41:31.000000000 +0100
@@ -1,15 +1,12 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
templates:
- - openstack-python-jobs
- - publish-openstack-docs-pti
- check-requirements
- - openstack-python35-jobs
- lib-forward-testing
- - release-notes-jobs-python3
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
- periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/AUTHORS new/oslo.cache-1.33.2/AUTHORS
--- old/oslo.cache-1.30.3/AUTHORS 2019-01-29 10:53:26.000000000 +0100
+++ new/oslo.cache-1.33.2/AUTHORS 2019-03-01 15:43:49.000000000 +0100
@@ -16,11 +16,13 @@
Dolph Mathews <dolph.mathews(a)gmail.com>
Dong Ma <winterma.dong(a)gmail.com>
Doug Hellmann <doug(a)doughellmann.com>
+Dougal Matthews <dougal(a)redhat.com>
Eric Brown <browne(a)vmware.com>
Eric Guo <eric.guo(a)easystack.cn>
Eric Larson <eric.larson(a)rackspace.com>
Flavio Percoco <flaper87(a)gmail.com>
George Silvis, III <george.iii.silvis(a)gmail.com>
+Hervé Beraud <hberaud(a)redhat.com>
Ilya Pekelny <ipekelny(a)mirantis.com>
James E. Blair <jeblair(a)hp.com>
Jamie Lennox <jamielennox(a)gmail.com>
@@ -38,6 +40,7 @@
Lars Butler <Lars.Butler(a)gmail.com>
Luong Anh Tuan <tuanla(a)vn.fujitsu.com>
Matt Riedemann <mriedem(a)us.ibm.com>
+Matthew Thode <mthode(a)mthode.org>
Monty Taylor <mordred(a)inaugust.com>
Morgan Fainberg <m(a)metacloud.com>
Morgan Fainberg <morgan.fainberg(a)gmail.com>
@@ -48,10 +51,12 @@
Sai Krishna <saikrishna1511(a)gmail.com>
Sean McGinnis <sean.mcginnis(a)huawei.com>
Sergey Nikitin <snikitin(a)mirantis.com>
+Stephen Finucane <stephenfin(a)redhat.com>
Steve Martinelli <stevemar(a)ca.ibm.com>
Swapnil Kulkarni (coolsvap) <me(a)coolsvap.net>
Tony Breeds <tony(a)bakeyournoodle.com>
Tovin Seven <vinhnt(a)vn.fujitsu.com>
+Vieri <15050873171(a)163.com>
Vincent Untz <vuntz(a)suse.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Yuriy Taraday <yorik.sar(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/ChangeLog new/oslo.cache-1.33.2/ChangeLog
--- old/oslo.cache-1.30.3/ChangeLog 2019-01-29 10:53:26.000000000 +0100
+++ new/oslo.cache-1.33.2/ChangeLog 2019-03-01 15:43:49.000000000 +0100
@@ -1,18 +1,54 @@
CHANGES
=======
-1.30.3
+1.33.2
------
+* Fix memcache pool client in monkey-patched environments
+
+1.33.1
+------
+
+* fix dogpile.cache issue due to the new usage of decorate in the lib
+
+1.33.0
+------
+
+* uncap dogpile
+
+1.32.0
+------
+
+* Update the requirements to match global-requirements for dogpile.cache
+* Use template for lower-constraints
+
+1.31.2
+------
+
+* Update mailinglist from dev to discuss
* Only split url arg with memcache backend
-1.30.2
+1.31.1
------
* Config dict arguments.url must be a list
+* Clean up .gitignore references to personal tools
+* Don't quote {posargs} in tox.ini
+* Always build universal wheels
+
+1.31.0
+------
+
+* Imported Translations from Zanata
+* Drop expired connections before retrieving from the queue
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
* import zuul job settings from project-config
+* Update reno for stable/rocky
+* tox: Fix typo
* Switch to stestr
-* Update .gitreview for stable/rocky
+* Add release notes link to README
+* fix tox python3 overrides
1.30.1
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/PKG-INFO new/oslo.cache-1.33.2/PKG-INFO
--- old/oslo.cache-1.30.3/PKG-INFO 2019-01-29 10:53:26.000000000 +0100
+++ new/oslo.cache-1.33.2/PKG-INFO 2019-03-01 15:43:50.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: oslo.cache
-Version: 1.30.3
+Version: 1.33.2
Summary: Cache storage for OpenStack projects.
Home-page: https://docs.openstack.org/oslo.cache/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -36,9 +36,10 @@
* Free software: Apache license
- * Documentation: https://docs.openstack.org/oslo.cache/latest
- * Source: https://git.openstack.org/cgit/openstack/oslo.cache
+ * Documentation: https://docs.openstack.org/oslo.cache/latest/
+ * Source: https://git.openstack.org/cgit/openstack/oslo.cache/
* Bugs: https://bugs.launchpad.net/oslo.cache
+ * Release notes: https://docs.openstack.org/releasenotes/oslo.cache/
Platform: UNKNOWN
@@ -52,7 +53,7 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
-Provides-Extra: test
+Provides-Extra: etcd3gw
Provides-Extra: mongo
+Provides-Extra: test
Provides-Extra: dogpile
-Provides-Extra: etcd3gw
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/README.rst new/oslo.cache-1.33.2/README.rst
--- old/oslo.cache-1.30.3/README.rst 2019-01-29 10:51:24.000000000 +0100
+++ new/oslo.cache-1.33.2/README.rst 2019-03-01 15:41:31.000000000 +0100
@@ -28,6 +28,7 @@
* Free software: Apache license
-* Documentation: https://docs.openstack.org/oslo.cache/latest
-* Source: https://git.openstack.org/cgit/openstack/oslo.cache
+* Documentation: https://docs.openstack.org/oslo.cache/latest/
+* Source: https://git.openstack.org/cgit/openstack/oslo.cache/
* Bugs: https://bugs.launchpad.net/oslo.cache
+* Release notes: https://docs.openstack.org/releasenotes/oslo.cache/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/oslo.cache.egg-info/PKG-INFO new/oslo.cache-1.33.2/oslo.cache.egg-info/PKG-INFO
--- old/oslo.cache-1.30.3/oslo.cache.egg-info/PKG-INFO 2019-01-29 10:53:26.000000000 +0100
+++ new/oslo.cache-1.33.2/oslo.cache.egg-info/PKG-INFO 2019-03-01 15:43:49.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: oslo.cache
-Version: 1.30.3
+Version: 1.33.2
Summary: Cache storage for OpenStack projects.
Home-page: https://docs.openstack.org/oslo.cache/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -36,9 +36,10 @@
* Free software: Apache license
- * Documentation: https://docs.openstack.org/oslo.cache/latest
- * Source: https://git.openstack.org/cgit/openstack/oslo.cache
+ * Documentation: https://docs.openstack.org/oslo.cache/latest/
+ * Source: https://git.openstack.org/cgit/openstack/oslo.cache/
* Bugs: https://bugs.launchpad.net/oslo.cache
+ * Release notes: https://docs.openstack.org/releasenotes/oslo.cache/
Platform: UNKNOWN
@@ -52,7 +53,7 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
-Provides-Extra: test
+Provides-Extra: etcd3gw
Provides-Extra: mongo
+Provides-Extra: test
Provides-Extra: dogpile
-Provides-Extra: etcd3gw
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/oslo.cache.egg-info/SOURCES.txt new/oslo.cache-1.33.2/oslo.cache.egg-info/SOURCES.txt
--- old/oslo.cache-1.30.3/oslo.cache.egg-info/SOURCES.txt 2019-01-29 10:53:26.000000000 +0100
+++ new/oslo.cache-1.33.2/oslo.cache.egg-info/SOURCES.txt 2019-03-01 15:43:50.000000000 +0100
@@ -74,6 +74,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/oslo.cache.egg-info/pbr.json new/oslo.cache-1.33.2/oslo.cache.egg-info/pbr.json
--- old/oslo.cache-1.30.3/oslo.cache.egg-info/pbr.json 2019-01-29 10:53:26.000000000 +0100
+++ new/oslo.cache-1.33.2/oslo.cache.egg-info/pbr.json 2019-03-01 15:43:49.000000000 +0100
@@ -1 +1 @@
-{"git_version": "5f42092", "is_release": true}
\ No newline at end of file
+{"git_version": "f4a25f6", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/oslo_cache/_memcache_pool.py new/oslo.cache-1.33.2/oslo_cache/_memcache_pool.py
--- old/oslo.cache-1.30.3/oslo_cache/_memcache_pool.py 2019-01-29 10:51:24.000000000 +0100
+++ new/oslo.cache-1.33.2/oslo_cache/_memcache_pool.py 2019-03-01 15:41:31.000000000 +0100
@@ -24,6 +24,10 @@
import threading
import time
+try:
+ import eventlet
+except ImportError:
+ eventlet = None
import memcache
from oslo_log import log
from six.moves import queue
@@ -45,9 +49,17 @@
"""
__delattr__ = object.__delattr__
__getattribute__ = object.__getattribute__
- __new__ = object.__new__
__setattr__ = object.__setattr__
+ # Hack for lp 1812935
+ if eventlet and eventlet.patcher.is_monkey_patched('thread'):
+ # NOTE(bnemec): I'm not entirely sure why this works in a
+ # monkey-patched environment and not with vanilla stdlib, but it does.
+ def __new__(cls, *args, **kwargs):
+ return object.__new__(cls)
+ else:
+ __new__ = object.__new__
+
def __del__(self):
pass
@@ -123,6 +135,7 @@
@contextlib.contextmanager
def acquire(self):
self._trace_logger('Acquiring connection')
+ self._drop_expired_connections()
try:
conn = self.get(timeout=self._connection_get_timeout)
except queue.Empty:
@@ -135,7 +148,6 @@
yield conn
finally:
self._trace_logger('Releasing connection %s', id(conn))
- self._drop_expired_connections()
try:
# super() cannot be used here because Queue in stdlib is an
# old-style class
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/oslo_cache/tests/test_cache.py new/oslo.cache-1.33.2/oslo_cache/tests/test_cache.py
--- old/oslo.cache-1.30.3/oslo_cache/tests/test_cache.py 2019-01-29 10:51:19.000000000 +0100
+++ new/oslo.cache-1.33.2/oslo_cache/tests/test_cache.py 2019-03-01 15:41:31.000000000 +0100
@@ -97,7 +97,7 @@
self.config_fixture.conf, region, group='cache')
@memoize
- def cacheable_function(value=0):
+ def cacheable_function(value=0, **kw):
return value
return cacheable_function
@@ -321,7 +321,7 @@
self.config_fixture.config(group='cache', enabled=True)
self.assertRaises(ValueError,
cacheable_function,
- value=self.test_value)
+ value=0, foo=self.test_value)
def test_kwarg_function_key_generator_no_kwargs(self):
cacheable_function = self._get_cacheable_function(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/oslo_cache/tests/test_connection_pool.py new/oslo.cache-1.33.2/oslo_cache/tests/test_connection_pool.py
--- old/oslo.cache-1.30.3/oslo_cache/tests/test_connection_pool.py 2019-01-29 10:51:19.000000000 +0100
+++ new/oslo.cache-1.33.2/oslo_cache/tests/test_connection_pool.py 2019-03-01 15:41:31.000000000 +0100
@@ -145,3 +145,20 @@
if field not in ('__dict__', '__weakref__'):
self.assertNotEqual(id(getattr(thread_local, field, None)),
id(getattr(client_class, field, None)))
+
+ def test_can_create_with_kwargs(self):
+ """Test for lp 1812935
+
+ Note that in order to reproduce the bug, it is necessary to add the
+ following to the top of oslo_cache/tests/__init__.py::
+
+ import eventlet
+ eventlet.monkey_patch()
+
+ This should happen before any other imports in that file.
+ """
+ client = _memcache_pool._MemcacheClient('foo', check_keys=False)
+ # Make sure kwargs are properly processed by the client
+ self.assertFalse(client.do_check_key)
+ # Make sure our __new__ override still results in the right type
+ self.assertIsInstance(client, _memcache_pool._MemcacheClient)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/releasenotes/source/index.rst new/oslo.cache-1.33.2/releasenotes/source/index.rst
--- old/oslo.cache-1.30.3/releasenotes/source/index.rst 2019-01-29 10:51:24.000000000 +0100
+++ new/oslo.cache-1.33.2/releasenotes/source/index.rst 2019-03-01 15:41:31.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/oslo.cache-1.33.2/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/oslo.cache-1.30.3/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-01-29 10:51:24.000000000 +0100
+++ new/oslo.cache-1.33.2/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-03-01 15:41:31.000000000 +0100
@@ -5,11 +5,11 @@
msgstr ""
"Project-Id-Version: oslo.cache\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-05-01 22:20+0000\n"
+"POT-Creation-Date: 2018-08-27 12:02+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-04-30 10:16+0000\n"
+"PO-Revision-Date: 2018-09-16 09:02+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -50,6 +50,9 @@
msgid "Queens Series Release Notes"
msgstr "Queens Series Release Notes"
+msgid "Rocky Series Release Notes"
+msgstr "Rocky Series Release Notes"
+
msgid "Switch to reno for managing release notes."
msgstr "Switch to reno for managing release notes."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/releasenotes/source/rocky.rst new/oslo.cache-1.33.2/releasenotes/source/rocky.rst
--- old/oslo.cache-1.30.3/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.cache-1.33.2/releasenotes/source/rocky.rst 2019-03-01 15:41:31.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/setup.cfg new/oslo.cache-1.33.2/setup.cfg
--- old/oslo.cache-1.30.3/setup.cfg 2019-01-29 10:53:26.000000000 +0100
+++ new/oslo.cache-1.33.2/setup.cfg 2019-03-01 15:43:50.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/oslo.cache/latest
classifier =
Environment :: OpenStack
@@ -53,7 +53,7 @@
mapping_file = babel.cfg
output_file = oslo_cache/locale/oslo_cache.pot
-[wheel]
+[bdist_wheel]
universal = true
[egg_info]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oslo.cache-1.30.3/tox.ini new/oslo.cache-1.33.2/tox.ini
--- old/oslo.cache-1.30.3/tox.ini 2019-01-29 10:51:24.000000000 +0100
+++ new/oslo.cache-1.33.2/tox.ini 2019-03-01 15:41:31.000000000 +0100
@@ -36,9 +36,11 @@
bandit -r oslo_cache -x tests -n5
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:docs]
+basepython = python3
whitelist_externals = rm
deps = -r{toxinidir}/doc/requirements.txt
commands =
@@ -48,9 +50,9 @@
[testenv:cover]
basepython = python3
setenv =
- PYTHON=coverage run --source $project --parallel-mode
+ PYTHON=coverage run --source oslo_cache --parallel-mode
commands =
- stestr run '{posargs}'
+ stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
@@ -65,6 +67,7 @@
import_exceptions =
[testenv:releasenotes]
+basepython = python3
deps = -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
1
0
Hello community,
here is the log from the commit of package python-osc-lib for openSUSE:Factory checked in at 2019-05-03 22:41:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-osc-lib (Old)
and /work/SRC/openSUSE:Factory/.python-osc-lib.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-osc-lib"
Fri May 3 22:41:56 2019 rev:9 rq:692851 version:1.12.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-osc-lib/python-osc-lib.changes 2019-03-06 15:51:39.604432735 +0100
+++ /work/SRC/openSUSE:Factory/.python-osc-lib.new.5148/python-osc-lib.changes 2019-05-03 22:42:00.435188498 +0200
@@ -1,0 +2,23 @@
+Mon Apr 8 11:55:11 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.12.1
+ - switch documentation job to new PTI
+ - Replaced a few references to LP bugs with storyboard
+ - Revert "Fixes a bug with issubclass() being called on an instance"
+ - add python 3.7 unit test job
+ - add lib-forward-testing-python3 test job
+ - Add release note for --os-user-id fix
+ - Change openstack-dev to openstack-discuss
+ - Mask password when specified as an argument with a space
+ - Update reno for stable/rocky
+ - Remove pypy job
+ - Remove PyPI downloads
+ - Default to using public interface for all clients
+ - Allow use of user-id as well as username for authentication
+ - add python 3.6 unit test job
+ - Use template for lower-constraints
+ - Fix formatter handling for python 3.7
+ - import zuul job settings from project-config
+- remove 0001-Fix-formatter-handling-for-python-3.7.patch (upstream)
+
+-------------------------------------------------------------------
Old:
----
0001-Fix-formatter-handling-for-python-3.7.patch
osc-lib-1.11.1.tar.gz
New:
----
osc-lib-1.12.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-osc-lib.spec ++++++
--- /var/tmp/diff_new_pack.5UJsPK/_old 2019-05-03 22:42:01.779191328 +0200
+++ /var/tmp/diff_new_pack.5UJsPK/_new 2019-05-03 22:42:01.807191387 +0200
@@ -17,15 +17,13 @@
Name: python-osc-lib
-Version: 1.11.1
+Version: 1.12.1
Release: 0
Summary: OpenStackClient Library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://docs.openstack.org/developer/osc-lib
-Source0: https://files.pythonhosted.org/packages/source/o/osc-lib/osc-lib-1.11.1.tar…
-# https://review.openstack.org/#/c/618137/
-Patch1: 0001-Fix-formatter-handling-for-python-3.7.patch
+Source0: https://files.pythonhosted.org/packages/source/o/osc-lib/osc-lib-1.12.1.tar…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-Babel >= 2.3.4
@@ -34,8 +32,6 @@
BuildRequires: python2-keystoneauth1 >= 3.7.0
BuildRequires: python2-mock
BuildRequires: python2-openstacksdk >= 0.15.0
-BuildRequires: python2-os-client-config
-BuildRequires: python2-os-testr
BuildRequires: python2-oslo.i18n >= 3.15.3
BuildRequires: python2-oslo.utils >= 3.33.0
BuildRequires: python2-oslotest
@@ -54,8 +50,6 @@
BuildRequires: python3-keystoneauth1 >= 3.7.0
BuildRequires: python3-mock
BuildRequires: python3-openstacksdk >= 0.15.0
-BuildRequires: python3-os-client-config
-BuildRequires: python3-os-testr
BuildRequires: python3-oslo.i18n >= 3.15.3
BuildRequires: python3-oslo.utils >= 3.33.0
BuildRequires: python3-oslotest
@@ -71,7 +65,6 @@
Requires: python-cliff >= 2.8.0
Requires: python-keystoneauth1 >= 3.7.0
Requires: python-openstacksdk >= 0.15.0
-Requires: python-os-client-config
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.utils >= 3.33.0
Requires: python-pbr >= 2.0.0
@@ -97,9 +90,8 @@
Documentation for the OpenStack client library.
%prep
-%autosetup -p1 -n osc-lib-1.11.1
+%autosetup -p1 -n osc-lib-1.12.1
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.5UJsPK/_old 2019-05-03 22:42:02.147192103 +0200
+++ /var/tmp/diff_new_pack.5UJsPK/_new 2019-05-03 22:42:02.163192137 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-osc-lib.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/osc-lib/stable/rocky/requiremen…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/osc-lib/stable/stein/requiremen…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,osc-lib</param>
</service>
++++++ osc-lib-1.11.1.tar.gz -> osc-lib-1.12.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/.zuul.yaml new/osc-lib-1.12.1/.zuul.yaml
--- old/osc-lib-1.11.1/.zuul.yaml 2018-08-15 14:42:43.000000000 +0200
+++ new/osc-lib-1.12.1/.zuul.yaml 2019-03-01 02:31:55.000000000 +0100
@@ -1,6 +1,16 @@
- project:
templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
- osc-tox-unit-tips
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
check:
jobs:
- osc-functional-devstack:
@@ -13,10 +23,8 @@
branches: ^(?!stable)
required-projects:
- openstack/python-openstackclient
- - openstack-tox-lower-constraints
gate:
jobs:
- osc-functional-devstack:
required-projects:
- openstack/python-openstackclient
- - openstack-tox-lower-constraints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/AUTHORS new/osc-lib-1.12.1/AUTHORS
--- old/osc-lib-1.11.1/AUTHORS 2018-08-15 14:46:29.000000000 +0200
+++ new/osc-lib-1.12.1/AUTHORS 2019-03-01 02:34:12.000000000 +0100
@@ -14,6 +14,7 @@
Andreas Jaeger <aj(a)suse.de>
Atsushi SAKAI <sakaia(a)jp.fujitsu.com>
Bar Elharar <elhararb(a)gmail.com>
+Bharat Kunwar <b.kunwar(a)gmail.com>
Bhuvan Arumugam <bhuvan(a)apache.org>
Brad Behle <behle(a)us.ibm.com>
Brandon Palm <bapalm(a)us.ibm.com>
@@ -81,12 +82,14 @@
Monty Taylor <mordred(a)inaugust.com>
Mouad Benchchaoui <m.benchchaoui(a)x-ion.de>
Nam Nguyen Hoai <namnh(a)vn.fujitsu.com>
+Nathan Kinder <nkinder(a)redhat.com>
Noorul Islam K M <noorul(a)noorul.com>
Oleksii Chuprykov <ochuprykov(a)mirantis.com>
Ondřej Nový <ondrej.novy(a)firma.seznam.cz>
OpenStack Release Bot <infra-root(a)openstack.org>
Paul Belanger <paul.belanger(a)polybeacon.com>
Qiu Yu <qiuyu(a)ebaysf.com>
+Rabi Mishra <ramishra(a)redhat.com>
Reedip <reedip14(a)gmail.com>
Richard Theis <rtheis(a)us.ibm.com>
Rodrigo Duarte Sousa <rodrigods(a)lsd.ufcg.edu.br>
@@ -116,8 +119,9 @@
Vladyslav Drok <vdrok(a)mirantis.com>
Wenzhi Yu <wenzhi_yu(a)163.com>
Xi Yang <yang.xi(a)99cloud.net>
+YAMAMOTO Takashi <yamamoto(a)midokura.com>
Zhenguo Niu <Niu.ZGlinux(a)gmail.com>
-Zuul <zuul(a)review.openstack.org>
+ZhongShengping <chdzsp(a)163.com>
chengkunye <chengkun(a)unitedstack.com>
guang-yee <guang.yee(a)hpe.com>
heha <zhanghanqun(a)unitedstack.com>
@@ -135,6 +139,7 @@
ting.wang <ting.wang(a)easystack.cn>
venkatamahesh <venkatamaheshkotha(a)gmail.com>
wanghong <w.wanghong(a)huawei.com>
+wangqi <wang.qi(a)99cloud.net>
xiaozhuangqing <zhuangqing.xiao(a)easystack.cn>
xiexs <xiexs(a)cn.fujitsu.com>
yanpuqing <yanpq(a)awcloud.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/ChangeLog new/osc-lib-1.12.1/ChangeLog
--- old/osc-lib-1.11.1/ChangeLog 2018-08-15 14:46:28.000000000 +0200
+++ new/osc-lib-1.12.1/ChangeLog 2019-03-01 02:34:12.000000000 +0100
@@ -1,11 +1,30 @@
CHANGES
=======
-1.11.1
+1.12.1
------
+* Add release note for --os-user-id fix
+* add python 3.7 unit test job
+* Allow use of user-id as well as username for authentication
+
+1.12.0
+------
+
+* Use template for lower-constraints
+* Change openstack-dev to openstack-discuss
+* Default to using public interface for all clients
+* Fix formatter handling for python 3.7
+* Remove pypy job
+* Mask password when specified as an argument with a space
+* add lib-forward-testing-python3 test job
+* switch documentation job to new PTI
+* add python 3.6 unit test job
+* import zuul job settings from project-config
* Revert "Fixes a bug with issubclass() being called on an instance"
-* Update .gitreview for stable/rocky
+* Remove PyPI downloads
+* Replaced a few references to LP bugs with storyboard
+* Update reno for stable/rocky
1.11.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/PKG-INFO new/osc-lib-1.12.1/PKG-INFO
--- old/osc-lib-1.11.1/PKG-INFO 2018-08-15 14:46:30.000000000 +0200
+++ new/osc-lib-1.12.1/PKG-INFO 2019-03-01 02:34:12.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: osc-lib
-Version: 1.11.1
+Version: 1.12.1
Summary: OpenStackClient Library
Home-page: https://docs.openstack.org/osc-lib/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: =======
osc-lib
@@ -14,10 +14,6 @@
:target: https://pypi.org/project/osc-lib/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/osc-lib.svg
- :target: https://pypi.org/project/osc-lib/
- :alt: Downloads
-
OpenStackClient (aka OSC) is a command-line client for OpenStack. osc-lib
is a package of common support modules for writing OSC plugins.
@@ -35,7 +31,7 @@
.. _PyPi: https://pypi.org/project/osc-lib
.. _Online Documentation: http://docs.openstack.org/osc-lib/latest/
.. _Launchpad project: https://launchpad.net/python-openstackclient
- .. _Bugs: https://bugs.launchpad.net/python-openstackclient
+ .. _Bugs: https://storyboard.openstack.org/#!/project_group/80
.. _Source: https://git.openstack.org/cgit/openstack/osc-lib
.. _Developer: http://docs.openstack.org/project-team-guide/project-setup/python.html
.. _Contributing: http://docs.openstack.org/infra/manual/developers.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/README.rst new/osc-lib-1.12.1/README.rst
--- old/osc-lib-1.11.1/README.rst 2018-08-15 14:43:07.000000000 +0200
+++ new/osc-lib-1.12.1/README.rst 2019-03-01 02:31:55.000000000 +0100
@@ -6,10 +6,6 @@
:target: https://pypi.org/project/osc-lib/
:alt: Latest Version
-.. image:: https://img.shields.io/pypi/dm/osc-lib.svg
- :target: https://pypi.org/project/osc-lib/
- :alt: Downloads
-
OpenStackClient (aka OSC) is a command-line client for OpenStack. osc-lib
is a package of common support modules for writing OSC plugins.
@@ -27,7 +23,7 @@
.. _PyPi: https://pypi.org/project/osc-lib
.. _Online Documentation: http://docs.openstack.org/osc-lib/latest/
.. _Launchpad project: https://launchpad.net/python-openstackclient
-.. _Bugs: https://bugs.launchpad.net/python-openstackclient
+.. _Bugs: https://storyboard.openstack.org/#!/project_group/80
.. _Source: https://git.openstack.org/cgit/openstack/osc-lib
.. _Developer: http://docs.openstack.org/project-team-guide/project-setup/python.html
.. _Contributing: http://docs.openstack.org/infra/manual/developers.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/RELEASENOTES.rst new/osc-lib-1.12.1/RELEASENOTES.rst
--- old/osc-lib-1.11.1/RELEASENOTES.rst 2018-08-15 14:46:30.000000000 +0200
+++ new/osc-lib-1.12.1/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-=======
-osc-lib
-=======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/doc/source/contributor/index.rst new/osc-lib-1.12.1/doc/source/contributor/index.rst
--- old/osc-lib-1.11.1/doc/source/contributor/index.rst 2018-08-15 14:43:07.000000000 +0200
+++ new/osc-lib-1.12.1/doc/source/contributor/index.rst 2019-03-01 02:31:55.000000000 +0100
@@ -12,7 +12,7 @@
.. _`on OpenStack's Git server`: https://git.openstack.org/cgit/openstack/python-openstackclient/tree
.. _Launchpad: https://launchpad.net/python-openstackclient
.. _Gerrit: http://docs.openstack.org/infra/manual/developers.html#development-workflow
-.. _Bug reports: https://bugs.launchpad.net/python-openstackclient/+bugs
+.. _Bug reports: https://storyboard.openstack.org/#!/project_group/80
.. _blueprints: https://blueprints.launchpad.net/python-openstackclient
.. _PyPi: https://pypi.org/project/osc-lib
.. _tarball: http://tarballs.openstack.org/osc-lib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/osc_lib/api/auth.py new/osc-lib-1.12.1/osc_lib/api/auth.py
--- old/osc-lib-1.11.1/osc_lib/api/auth.py 2018-08-15 14:42:43.000000000 +0200
+++ new/osc-lib-1.12.1/osc_lib/api/auth.py 2019-03-01 02:31:55.000000000 +0100
@@ -106,10 +106,13 @@
'Set a cloud-name with --os-cloud or OS_CLOUD'
))
else:
- if 'password' in plugin_opts and not options.auth.get('username'):
+ if ('password' in plugin_opts and not
+ (options.auth.get('username') or options.auth.get('user_id'))):
msgs.append(_(
'Set a username with --os-username, OS_USERNAME,'
' or auth.username'
+ ' or set a user-id with --os-user-id, OS_USER_ID,'
+ ' or auth.user_id'
))
if 'auth_url' in plugin_opts and not options.auth.get('auth_url'):
msgs.append(_(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/osc_lib/shell.py new/osc-lib-1.12.1/osc_lib/shell.py
--- old/osc-lib-1.11.1/osc_lib/shell.py 2018-08-15 14:42:43.000000000 +0200
+++ new/osc-lib-1.12.1/osc_lib/shell.py 2019-03-01 02:31:55.000000000 +0100
@@ -44,6 +44,7 @@
DEFAULT_DOMAIN = 'default'
+DEFAULT_INTERFACE = 'public'
def prompt_for_password(prompt=None):
@@ -255,10 +256,12 @@
metavar='<interface>',
dest='interface',
choices=['admin', 'public', 'internal'],
- default=utils.env('OS_INTERFACE'),
+ default=utils.env(
+ 'OS_INTERFACE',
+ default=DEFAULT_INTERFACE),
help=_('Select an interface type.'
' Valid interface types: [admin, public, internal].'
- ' (Env: OS_INTERFACE)'),
+ ' default=%s, (Env: OS_INTERFACE)') % DEFAULT_INTERFACE,
)
parser.add_argument(
'--os-service-provider',
@@ -395,7 +398,7 @@
# Parent __init__ parses argv into self.options
super(OpenStackShell, self).initialize_app(argv)
self.log.info("START with options: %s",
- strutils.mask_password(self.command_options))
+ strutils.mask_password(" ".join(self.command_options)))
self.log.debug("options: %s",
strutils.mask_password(self.options))
@@ -403,13 +406,10 @@
self._final_defaults()
# Do configuration file handling
- # Ignore the default value of interface. Only if it is set later
- # will it be used.
try:
self.cloud_config = cloud_config.OSC_Config(
pw_func=prompt_for_password,
override_defaults={
- 'interface': None,
'auth_type': self._auth_type,
},
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/osc_lib/tests/cli/test_client_config.py new/osc-lib-1.12.1/osc_lib/tests/cli/test_client_config.py
--- old/osc-lib-1.11.1/osc_lib/tests/cli/test_client_config.py 2018-08-15 14:42:43.000000000 +0200
+++ new/osc-lib-1.12.1/osc_lib/tests/cli/test_client_config.py 2019-03-01 02:31:55.000000000 +0100
@@ -32,10 +32,12 @@
def test_auth_select_default_plugin_password(self):
config = {
'username': 'fred',
+ 'user_id': 'fr3d',
}
ret_config = self.cloud._auth_select_default_plugin(config)
self.assertEqual('password', ret_config['auth_type'])
self.assertEqual('fred', ret_config['username'])
+ self.assertEqual('fr3d', ret_config['user_id'])
def test_auth_select_default_plugin_password_v2(self):
config = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/osc_lib/tests/fakes.py new/osc-lib-1.12.1/osc_lib/tests/fakes.py
--- old/osc-lib-1.11.1/osc_lib/tests/fakes.py 2018-08-15 14:42:43.000000000 +0200
+++ new/osc-lib-1.12.1/osc_lib/tests/fakes.py 2019-03-01 02:31:55.000000000 +0100
@@ -23,6 +23,7 @@
AUTH_TOKEN = "foobar"
AUTH_URL = "http://0.0.0.0"
USERNAME = "itchy"
+USER_ID = "2354b7c1-f681-4c39-8003-4fe9d1eabb65"
PASSWORD = "scratchy"
PROJECT_NAME = "poochie"
PROJECT_ID = "30c3da29-61f5-4b7b-8eb2-3d18287428c7"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/osc_lib/tests/test_clientmanager.py new/osc-lib-1.12.1/osc_lib/tests/test_clientmanager.py
--- old/osc-lib-1.11.1/osc_lib/tests/test_clientmanager.py 2018-08-15 14:42:43.000000000 +0200
+++ new/osc-lib-1.12.1/osc_lib/tests/test_clientmanager.py 2019-03-01 02:31:55.000000000 +0100
@@ -302,6 +302,16 @@
identity_api_version='3',
)
+ auth_args = copy.deepcopy(self.default_password_auth)
+ auth_args.pop('username')
+ auth_args.update({
+ 'user_id': fakes.USER_ID,
+ })
+ self._make_clientmanager(
+ auth_args=auth_args,
+ identity_api_version='3',
+ )
+
def test_client_manager_select_auth_plugin_token(self):
# test token auth
self._make_clientmanager(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/osc_lib/utils/__init__.py new/osc-lib-1.12.1/osc_lib/utils/__init__.py
--- old/osc-lib-1.11.1/osc_lib/utils/__init__.py 2018-08-15 14:42:43.000000000 +0200
+++ new/osc-lib-1.12.1/osc_lib/utils/__init__.py 2019-03-01 02:31:55.000000000 +0100
@@ -430,9 +430,10 @@
data = item[field_name] if field_name in item else ''
if field in formatters:
formatter = formatters[field]
- if issubclass(formatter, cliff_columns.FormattableColumn):
+ if (isinstance(formatter, type) and issubclass(
+ formatter, cliff_columns.FormattableColumn)):
data = formatter(data)
- else:
+ elif callable(formatter):
warnings.warn(
'The usage of formatter functions is now discouraged. '
'Consider using cliff.columns.FormattableColumn instead. '
@@ -440,6 +441,10 @@
category=DeprecationWarning)
if data is not None:
data = formatter(data)
+ else:
+ msg = "Invalid formatter provided."
+ raise exceptions.CommandError(msg)
+
row.append(data)
return tuple(row)
@@ -492,9 +497,10 @@
data = getattr(item, field_name, '')
if field in formatters:
formatter = formatters[field]
- if issubclass(formatter, cliff_columns.FormattableColumn):
+ if (isinstance(formatter, type) and issubclass(
+ formatter, cliff_columns.FormattableColumn)):
data = formatter(data)
- else:
+ elif callable(formatter):
warnings.warn(
'The usage of formatter functions is now discouraged. '
'Consider using cliff.columns.FormattableColumn instead. '
@@ -502,6 +508,10 @@
category=DeprecationWarning)
if data is not None:
data = formatter(data)
+ else:
+ msg = "Invalid formatter provided."
+ raise exceptions.CommandError(msg)
+
row.append(data)
return tuple(row)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/osc_lib.egg-info/PKG-INFO new/osc-lib-1.12.1/osc_lib.egg-info/PKG-INFO
--- old/osc-lib-1.11.1/osc_lib.egg-info/PKG-INFO 2018-08-15 14:46:29.000000000 +0200
+++ new/osc-lib-1.12.1/osc_lib.egg-info/PKG-INFO 2019-03-01 02:34:12.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: osc-lib
-Version: 1.11.1
+Version: 1.12.1
Summary: OpenStackClient Library
Home-page: https://docs.openstack.org/osc-lib/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: =======
osc-lib
@@ -14,10 +14,6 @@
:target: https://pypi.org/project/osc-lib/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/osc-lib.svg
- :target: https://pypi.org/project/osc-lib/
- :alt: Downloads
-
OpenStackClient (aka OSC) is a command-line client for OpenStack. osc-lib
is a package of common support modules for writing OSC plugins.
@@ -35,7 +31,7 @@
.. _PyPi: https://pypi.org/project/osc-lib
.. _Online Documentation: http://docs.openstack.org/osc-lib/latest/
.. _Launchpad project: https://launchpad.net/python-openstackclient
- .. _Bugs: https://bugs.launchpad.net/python-openstackclient
+ .. _Bugs: https://storyboard.openstack.org/#!/project_group/80
.. _Source: https://git.openstack.org/cgit/openstack/osc-lib
.. _Developer: http://docs.openstack.org/project-team-guide/project-setup/python.html
.. _Contributing: http://docs.openstack.org/infra/manual/developers.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/osc_lib.egg-info/SOURCES.txt new/osc-lib-1.12.1/osc_lib.egg-info/SOURCES.txt
--- old/osc-lib-1.11.1/osc_lib.egg-info/SOURCES.txt 2018-08-15 14:46:29.000000000 +0200
+++ new/osc-lib-1.12.1/osc_lib.egg-info/SOURCES.txt 2019-03-01 02:34:12.000000000 +0100
@@ -81,6 +81,7 @@
releasenotes/notes/arg-precedence-1ba9fd6929650830.yaml
releasenotes/notes/bug-1558690-1528b637f2c0a449.yaml
releasenotes/notes/bug-1630822-mask-password-on-debug-20dcdf1c54e84fa1.yaml
+releasenotes/notes/bug-2004898-686577a07e791051.yaml
releasenotes/notes/direct-openstacksdk-535a179f3c645cc0.yaml
releasenotes/notes/find-project-203bf867619c557e.yaml
releasenotes/notes/keystone-to-keystone-9b2e55b051775322.yaml
@@ -93,6 +94,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/osc_lib.egg-info/pbr.json new/osc-lib-1.12.1/osc_lib.egg-info/pbr.json
--- old/osc-lib-1.11.1/osc_lib.egg-info/pbr.json 2018-08-15 14:46:29.000000000 +0200
+++ new/osc-lib-1.12.1/osc_lib.egg-info/pbr.json 2019-03-01 02:34:12.000000000 +0100
@@ -1 +1 @@
-{"git_version": "a66f37d", "is_release": true}
\ No newline at end of file
+{"git_version": "9b610ea", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/releasenotes/notes/bug-2004898-686577a07e791051.yaml new/osc-lib-1.12.1/releasenotes/notes/bug-2004898-686577a07e791051.yaml
--- old/osc-lib-1.11.1/releasenotes/notes/bug-2004898-686577a07e791051.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/osc-lib-1.12.1/releasenotes/notes/bug-2004898-686577a07e791051.yaml 2019-03-01 02:31:59.000000000 +0100
@@ -0,0 +1,6 @@
+---
+fixes:
+ - Allow using a user ID for authentication in place of a username/domain
+ combination. This fixes the use of ``--os-user-id`` option and
+ ``OS_USER_ID`` environment variable.
+ [Bug `2004898 <https://storyboard.openstack.org/#!/story/2004898>`_]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/releasenotes/notes/reno.cache new/osc-lib-1.12.1/releasenotes/notes/reno.cache
--- old/osc-lib-1.11.1/releasenotes/notes/reno.cache 2018-08-15 14:46:30.000000000 +0200
+++ new/osc-lib-1.12.1/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/releasenotes/source/index.rst new/osc-lib-1.12.1/releasenotes/source/index.rst
--- old/osc-lib-1.11.1/releasenotes/source/index.rst 2018-08-15 14:43:07.000000000 +0200
+++ new/osc-lib-1.12.1/releasenotes/source/index.rst 2019-03-01 02:31:55.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/releasenotes/source/rocky.rst new/osc-lib-1.12.1/releasenotes/source/rocky.rst
--- old/osc-lib-1.11.1/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/osc-lib-1.12.1/releasenotes/source/rocky.rst 2019-03-01 02:31:55.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/setup.cfg new/osc-lib-1.12.1/setup.cfg
--- old/osc-lib-1.11.1/setup.cfg 2018-08-15 14:46:30.000000000 +0200
+++ new/osc-lib-1.12.1/setup.cfg 2019-03-01 02:34:12.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/osc-lib/latest/
classifier =
Environment :: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osc-lib-1.11.1/tox.ini new/osc-lib-1.12.1/tox.ini
--- old/osc-lib-1.11.1/tox.ini 2018-08-15 14:42:43.000000000 +0200
+++ new/osc-lib-1.12.1/tox.ini 2019-03-01 02:31:55.000000000 +0100
@@ -53,6 +53,8 @@
-r{toxinidir}/doc/requirements.txt
commands =
sphinx-apidoc -o doc/api osc_lib osc_lib/tests
+ # Create ChangeLog file
+ python setup.py sdist
sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html
[testenv:releasenotes]
1
0
Hello community,
here is the log from the commit of package python-os-win for openSUSE:Factory checked in at 2019-05-03 22:41:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-os-win (Old)
and /work/SRC/openSUSE:Factory/.python-os-win.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-os-win"
Fri May 3 22:41:50 2019 rev:8 rq:692850 version:4.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-os-win/python-os-win.changes 2018-09-26 14:22:53.397972589 +0200
+++ /work/SRC/openSUSE:Factory/.python-os-win.new.5148/python-os-win.changes 2019-05-03 22:41:54.383175757 +0200
@@ -2 +2,33 @@
-Tue Sep 11 07:53:44 UTC 2018 - cloud-devel(a)suse.de
+Mon Apr 8 11:42:42 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 4.2.0
+ - Removing pypy
+ - Disable wmi object caching by default
+ - Add getter for MemorySettingsData
+ - Use template for lower-constraints
+ - import zuul job settings from project-config
+ - Add release note link in README
+ - Logging multiple WMI job errors
+ - Change openstack-dev to openstack-discuss
+ - Cleanup utilsfactory map
+ - Update reno for stable/rocky
+ - Silently continue when disconnecting missing vhds
+ - add python 3.6 unit test job
+ - Ignore events for unnamed VM vNICs
+ - Fix incorrect numeric comparisons
+ - Update links in README
+ - uncap eventlet
+ - switch documentation job to new PTI
+ - Add method for retrieving VM nics
+ - Allow enabling metrics per virtual disk
+ - Trivial: Fix flaky unit test
+ - Fix port metrics
+ - fix tox python3 overrides
+ - Add wmi job terminate timeout cfg opt
+ - Add pipe helpers
+ - Limit Failover Cluster WMI provider usage
+ - Updated from global requirements
+ - add lower-constraints job
+
+-------------------------------------------------------------------
+Thu Sep 20 22:38:33 UTC 2018 - cloud-devel(a)suse.de
Old:
----
os-win-4.0.1.tar.gz
New:
----
os-win-4.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-os-win.spec ++++++
--- /var/tmp/diff_new_pack.Gb4Lpg/_old 2019-05-03 22:41:55.051177163 +0200
+++ /var/tmp/diff_new_pack.Gb4Lpg/_new 2019-05-03 22:41:55.063177189 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-os-win
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,31 +12,29 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-os-win
-Version: 4.0.1
+Version: 4.2.0
Release: 0
Summary: Hyper-V library for OpenStack projects
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/os-win
-Source0: https://files.pythonhosted.org/packages/source/o/os-win/os-win-4.0.1.tar.gz
+Source0: https://files.pythonhosted.org/packages/source/o/os-win/os-win-4.2.0.tar.gz
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-Sphinx
BuildRequires: python2-ddt
BuildRequires: python2-eventlet >= 0.18.2
BuildRequires: python2-mock
-BuildRequires: python2-oslo.concurrency >= 3.25.0
+BuildRequires: python2-oslo.concurrency >= 3.26.0
BuildRequires: python2-oslo.i18n >= 3.15.3
BuildRequires: python2-oslo.log >= 3.36.0
-BuildRequires: python2-oslosphinx
BuildRequires: python2-oslotest
BuildRequires: python2-pbr >= 2.0.0
-BuildRequires: python2-python-subunit
BuildRequires: python2-testrepository
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
@@ -45,20 +43,18 @@
BuildRequires: python3-devel
BuildRequires: python3-eventlet >= 0.18.2
BuildRequires: python3-mock
-BuildRequires: python3-oslo.concurrency >= 3.25.0
+BuildRequires: python3-oslo.concurrency >= 3.26.0
BuildRequires: python3-oslo.i18n >= 3.15.3
BuildRequires: python3-oslo.log >= 3.36.0
-BuildRequires: python3-oslosphinx
BuildRequires: python3-oslotest
BuildRequires: python3-pbr >= 2.0.0
-BuildRequires: python3-python-subunit
BuildRequires: python3-testrepository
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
Requires: python-Babel >= 2.3.4
Requires: python-eventlet >= 0.18.2
-Requires: python-oslo.concurrency >= 3.25.0
-Requires: python-oslo.config >= 5.1.0
+Requires: python-oslo.concurrency >= 3.26.0
+Requires: python-oslo.config >= 5.2.0
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.log >= 3.36.0
Requires: python-oslo.service
@@ -89,11 +85,10 @@
Documentation for the Hyper-V library.
%prep
-%autosetup -n os-win-4.0.1
+%autosetup -n os-win-4.2.0
%py_req_cleanup
# we dont want to run the hacking tests again (and dont want the needed deps)
rm -f os_win/tests/unit/test_hacking.py
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Gb4Lpg/_old 2019-05-03 22:41:55.123177315 +0200
+++ /var/tmp/diff_new_pack.Gb4Lpg/_new 2019-05-03 22:41:55.123177315 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-os-win.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/os-win/stable/rocky/requirement…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/os-win/stable/stein/requirement…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,os-win</param>
</service>
++++++ os-win-4.0.1.tar.gz -> os-win-4.2.0.tar.gz ++++++
++++ 3371 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-os-client-config for openSUSE:Factory checked in at 2019-05-03 22:41:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-os-client-config (Old)
and /work/SRC/openSUSE:Factory/.python-os-client-config.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-os-client-config"
Fri May 3 22:41:45 2019 rev:12 rq:692849 version:1.32.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-os-client-config/python-os-client-config.changes 2018-09-07 15:38:26.882597707 +0200
+++ /work/SRC/openSUSE:Factory/.python-os-client-config.new.5148/python-os-client-config.changes 2019-05-03 22:41:47.299160843 +0200
@@ -1,0 +2,22 @@
+Mon Apr 8 12:37:18 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.32.0
+ - Change openstack-dev to openstack-discuss
+ - fix bug link in readme
+ - Update links in README
+ - Add release note link in README
+ - Remove setup.py check from pep8 job
+ - add lib-forward-testing-python3 test job
+ - Fix the conflict of urlparse between python2 and python3
+ - Shift Limestone Networks profile to openstacksdk
+ - Use template for lower-constraints
+ - Update reno for stable/rocky
+ - Update min tox version to 2.0
+ - switch documentation job to new PTI
+ - Change python3.5 job to python3.7 job on Stein+
+ - add python 3.6 unit test job
+ - Invalid link of doc reference
+ - import zuul job settings from project-config
+ - Applying the HTTPS protocal in configuration.rst
+
+-------------------------------------------------------------------
Old:
----
os-client-config-1.31.2.tar.gz
New:
----
os-client-config-1.32.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-os-client-config.spec ++++++
--- /var/tmp/diff_new_pack.2qrb5r/_old 2019-05-03 22:41:48.327163007 +0200
+++ /var/tmp/diff_new_pack.2qrb5r/_new 2019-05-03 22:41:48.331163016 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-os-client-config
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -20,7 +20,7 @@
%bcond_with test
%bcond_with docs
Name: python-os-client-config
-Version: 1.31.2
+Version: 1.32.0
Release: 0
Summary: OpenStack Client Configuration Library
License: Apache-2.0
@@ -28,10 +28,8 @@
URL: https://launchpad.net/%{sname}
Source0: https://files.pythonhosted.org/packages/source/o/%{sname}/%{sname}-%{versio…
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-pbr
BuildRequires: python2-setuptools
-BuildRequires: python3-devel
BuildRequires: python3-pbr
BuildRequires: python3-setuptools
Requires: python-PyYAML
++++++ _service ++++++
--- /var/tmp/diff_new_pack.2qrb5r/_old 2019-05-03 22:41:48.359163074 +0200
+++ /var/tmp/diff_new_pack.2qrb5r/_new 2019-05-03 22:41:48.359163074 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-os-client-config.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/os-client-config/stable/rocky/r…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/os-client-config/stable/stein/r…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,os-client-config</param>
</service>
++++++ os-client-config-1.31.2.tar.gz -> os-client-config-1.32.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/.zuul.yaml new/os-client-config-1.32.0/.zuul.yaml
--- old/os-client-config-1.31.2/.zuul.yaml 2018-06-18 02:51:04.000000000 +0200
+++ new/os-client-config-1.32.0/.zuul.yaml 2019-03-08 01:01:20.000000000 +0100
@@ -12,10 +12,10 @@
- openstack/os-client-config
- job:
- name: os-client-config-tox-py35-tips
- parent: openstack-tox-py35
+ name: os-client-config-tox-py37-tips
+ parent: openstack-tox-py37
description: |
- Run tox python 35 unittests against master of important libs
+ Run tox python 37 unittests against master of important libs
vars:
tox_install_siblings: true
zuul_work_dir: src/git.openstack.org/openstack/os-client-config
@@ -29,22 +29,29 @@
check:
jobs:
- os-client-config-tox-py27-tips
- - os-client-config-tox-py35-tips
+ - os-client-config-tox-py37-tips
gate:
jobs:
- os-client-config-tox-py27-tips
- - os-client-config-tox-py35-tips
+ - os-client-config-tox-py37-tips
- project:
templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
- os-client-config-tox-tips
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
- shade-functional-tips
- shade-tox-tips
check:
jobs:
- osc-functional-devstack-tips
- - openstack-tox-lower-constraints
gate:
jobs:
- osc-functional-devstack-tips
- - openstack-tox-lower-constraints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/AUTHORS new/os-client-config-1.32.0/AUTHORS
--- old/os-client-config-1.31.2/AUTHORS 2018-06-18 02:54:27.000000000 +0200
+++ new/os-client-config-1.32.0/AUTHORS 2019-03-08 01:03:31.000000000 +0100
@@ -9,11 +9,13 @@
Cao Xuan Hoang <hoangcx(a)vn.fujitsu.com>
Cedric Brandily <zzelle(a)gmail.com>
ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
+Charles Short <chucks(a)redhat.com>
Chris Church <chris(a)ninemoreminutes.com>
Christian Berendt <berendt(a)betacloud-solutions.de>
Clark Boylan <clark.boylan(a)gmail.com>
Clint Byrum <clint(a)fewbar.com>
Colleen Murphy <colleen(a)gazlene.net>
+Dao Cong Tien <tiendc(a)vn.fujitsu.com>
David Shrewsbury <shrewsbury.dave(a)gmail.com>
Davide Guerri <davide.guerri(a)gmail.com>
Dean Troyer <dtroyer(a)gmail.com>
@@ -48,6 +50,7 @@
Pavlo Shchelokovskyy <shchelokovskyy(a)gmail.com>
Saju <sanjufoss(a)gmail.com>
Sean Handley <sean.handley(a)gmail.com>
+Sean McGinnis <sean.mcginnis(a)gmail.com>
Shuquan Huang <huang.shuquan(a)99cloud.net>
Simon Leinen <simon.leinen(a)switch.ch>
Spencer Krum <nibz(a)spencerkrum.com>
@@ -57,12 +60,19 @@
Thomas Bechtold <tbechtold(a)suse.com>
Tim Burke <tim.burke(a)gmail.com>
Tony Xu <hhktony(a)gmail.com>
+Vieri <15050873171(a)163.com>
Xav Paice <xav(a)catalyst.net.nz>
+XiaojueGuan <guanalbertjone(a)gmail.com>
Yaguang Tang <yaguang(a)umcloud.com>
Yuriy Taraday <yorik.sar(a)gmail.com>
-Zuul <zuul(a)review.openstack.org>
+ZhijunWei <wzj334965317(a)outlook.com>
avnish <avnish.pal(a)nectechnologies.in>
+brandonzhao <zhaolong(a)inspur.com>
lifeless <robertc(a)robertcollins.net>
lingyongxu <lyxu(a)fiberhome.com>
+malei <malei(a)maleideMacBook-Pro.local>
+qingszhao <zhao.daqing(a)99cloud.net>
ricolin <rico.lin(a)easystack.cn>
xhzhf <guoyongxhzhf(a)163.com>
+zhouxinyong <zhouxinyong(a)inspur.com>
+zhulingjie <easyzlj(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/ChangeLog new/os-client-config-1.32.0/ChangeLog
--- old/os-client-config-1.31.2/ChangeLog 2018-06-18 02:54:27.000000000 +0200
+++ new/os-client-config-1.32.0/ChangeLog 2019-03-08 01:03:31.000000000 +0100
@@ -1,6 +1,28 @@
CHANGES
=======
+1.32.0
+------
+
+* Applying the HTTPS protocal in configuration.rst
+* Use template for lower-constraints
+* Change openstack-dev to openstack-discuss
+* Update min tox version to 2.0
+* Fix the conflict of urlparse between python2 and python3
+* Remove setup.py check from pep8 job
+* Change python3.5 job to python3.7 job on Stein+
+* fix bug link in readme
+* fix bug link in readme
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+* Invalid link of doc reference
+* Add release note link in README
+* Shift Limestone Networks profile to openstacksdk
+* Update links in README
+
1.31.2
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/PKG-INFO new/os-client-config-1.32.0/PKG-INFO
--- old/os-client-config-1.31.2/PKG-INFO 2018-06-18 02:54:27.000000000 +0200
+++ new/os-client-config-1.32.0/PKG-INFO 2019-03-08 01:03:31.000000000 +0100
@@ -1,17 +1,17 @@
Metadata-Version: 1.1
Name: os-client-config
-Version: 1.31.2
+Version: 1.32.0
Summary: OpenStack Client Configuation Library
Home-page: https://docs.openstack.org/os-client-config/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ================
os-client-config
================
- .. image:: http://governance.openstack.org/badges/os-client-config.svg
- :target: http://governance.openstack.org/reference/tags/index.html
+ .. image:: https://governance.openstack.org/tc/badges/os-client-config.svg
+ :target: https://governance.openstack.org/tc/reference/tags/index.html
.. warning::
`os-client-config` has been superceded by `openstacksdk`_. While
@@ -35,7 +35,8 @@
* Free software: Apache license
* Documentation: http://docs.openstack.org/os-client-config/latest
* Source: http://git.openstack.org/cgit/openstack/os-client-config
- * Bugs: http://bugs.launchpad.net/os-client-config
+ * Bugs: https://storyboard.openstack.org/#!/project/openstack/os-client-config
+ * Release Notes https://docs.openstack.org/releasenotes/os-client-config
.. _openstacksdk: http://docs.openstack.org/openstacksdk/latest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/README.rst new/os-client-config-1.32.0/README.rst
--- old/os-client-config-1.31.2/README.rst 2018-06-18 02:51:04.000000000 +0200
+++ new/os-client-config-1.32.0/README.rst 2019-03-08 01:01:20.000000000 +0100
@@ -2,8 +2,8 @@
os-client-config
================
-.. image:: http://governance.openstack.org/badges/os-client-config.svg
- :target: http://governance.openstack.org/reference/tags/index.html
+.. image:: https://governance.openstack.org/tc/badges/os-client-config.svg
+ :target: https://governance.openstack.org/tc/reference/tags/index.html
.. warning::
`os-client-config` has been superceded by `openstacksdk`_. While
@@ -27,6 +27,7 @@
* Free software: Apache license
* Documentation: http://docs.openstack.org/os-client-config/latest
* Source: http://git.openstack.org/cgit/openstack/os-client-config
-* Bugs: http://bugs.launchpad.net/os-client-config
+* Bugs: https://storyboard.openstack.org/#!/project/openstack/os-client-config
+* Release Notes https://docs.openstack.org/releasenotes/os-client-config
.. _openstacksdk: http://docs.openstack.org/openstacksdk/latest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/doc/source/index.rst new/os-client-config-1.32.0/doc/source/index.rst
--- old/os-client-config-1.31.2/doc/source/index.rst 2018-06-18 02:51:04.000000000 +0200
+++ new/os-client-config-1.32.0/doc/source/index.rst 2019-03-08 01:01:20.000000000 +0100
@@ -2,8 +2,8 @@
os-client-config
================
-.. image:: http://governance.openstack.org/badges/os-client-config.svg
- :target: http://governance.openstack.org/reference/tags/index.html
+.. image:: https://governance.openstack.org/tc/badges/os-client-config.svg
+ :target: https://governance.openstack.org/tc/reference/tags/index.html
.. warning::
`os-client-config` has been superceded by `openstacksdk`_. While
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/doc/source/user/releasenotes.rst new/os-client-config-1.32.0/doc/source/user/releasenotes.rst
--- old/os-client-config-1.31.2/doc/source/user/releasenotes.rst 2018-06-18 02:51:04.000000000 +0200
+++ new/os-client-config-1.32.0/doc/source/user/releasenotes.rst 2019-03-08 01:01:20.000000000 +0100
@@ -3,4 +3,4 @@
=============
Release notes for `os-client-config` can be found at
-http://docs.openstack.org/releasenotes/os-client-config/
+https://docs.openstack.org/releasenotes/os-client-config/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/doc/source/user/using.rst new/os-client-config-1.32.0/doc/source/user/using.rst
--- old/os-client-config-1.31.2/doc/source/user/using.rst 2018-06-18 02:51:04.000000000 +0200
+++ new/os-client-config-1.32.0/doc/source/user/using.rst 2019-03-08 01:01:20.000000000 +0100
@@ -92,13 +92,13 @@
It should be noted that OpenStack SDK has ways to construct itself that allow
for additional flexibility. If the helper function here does not meet your
needs, you should see the `from_config` method of
-`openstack.connection.Connection <http://developer.openstack.org/sdks/python/openstacksdk/users/guides/connec…>`_
+`openstack.connection.Connection <https://developer.openstack.org/sdks/python/openstacksdk/users/guides/conne…>`_
Constructing shade objects
--------------------------
If what you want to do is get a
-`shade <http://docs.openstack.org/infra/shade/>`_ OpenStackCloud object, a
+`shade <https://docs.openstack.org/infra/shade/>`_ OpenStackCloud object, a
helper function that honors clouds.yaml and `OS_` environment variables is
provided. The following will get you a fully configured `OpenStackCloud`
instance.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/doc/source/user/vendor-support.rst new/os-client-config-1.32.0/doc/source/user/vendor-support.rst
--- old/os-client-config-1.31.2/doc/source/user/vendor-support.rst 2018-06-18 02:51:04.000000000 +0200
+++ new/os-client-config-1.32.0/doc/source/user/vendor-support.rst 2019-03-08 01:01:20.000000000 +0100
@@ -3,4 +3,4 @@
==============
Please see
-https://docs.openstack.org/openstacksdk/latest/user/vendor-support.html
+https://docs.openstack.org/openstacksdk/latest/user/config/vendor-support.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/os_client_config/vendors/limestonenetworks.json new/os-client-config-1.32.0/os_client_config/vendors/limestonenetworks.json
--- old/os-client-config-1.31.2/os_client_config/vendors/limestonenetworks.json 2018-06-18 02:51:04.000000000 +0200
+++ new/os-client-config-1.32.0/os_client_config/vendors/limestonenetworks.json 1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-{
- "name": "limestonenetworks",
- "profile": {
- "auth": {
- "auth_url": "https://auth.cloud.lstn.net:5000/v3"
- },
- "regions": [
- "us-dfw-1",
- "us-slc"
- ],
- "identity_api_version": "3",
- "image_format": "raw",
- "volume_api_version": "3"
- }
- }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/os_client_config.egg-info/PKG-INFO new/os-client-config-1.32.0/os_client_config.egg-info/PKG-INFO
--- old/os-client-config-1.31.2/os_client_config.egg-info/PKG-INFO 2018-06-18 02:54:27.000000000 +0200
+++ new/os-client-config-1.32.0/os_client_config.egg-info/PKG-INFO 2019-03-08 01:03:31.000000000 +0100
@@ -1,17 +1,17 @@
Metadata-Version: 1.1
Name: os-client-config
-Version: 1.31.2
+Version: 1.32.0
Summary: OpenStack Client Configuation Library
Home-page: https://docs.openstack.org/os-client-config/latest
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ================
os-client-config
================
- .. image:: http://governance.openstack.org/badges/os-client-config.svg
- :target: http://governance.openstack.org/reference/tags/index.html
+ .. image:: https://governance.openstack.org/tc/badges/os-client-config.svg
+ :target: https://governance.openstack.org/tc/reference/tags/index.html
.. warning::
`os-client-config` has been superceded by `openstacksdk`_. While
@@ -35,7 +35,8 @@
* Free software: Apache license
* Documentation: http://docs.openstack.org/os-client-config/latest
* Source: http://git.openstack.org/cgit/openstack/os-client-config
- * Bugs: http://bugs.launchpad.net/os-client-config
+ * Bugs: https://storyboard.openstack.org/#!/project/openstack/os-client-config
+ * Release Notes https://docs.openstack.org/releasenotes/os-client-config
.. _openstacksdk: http://docs.openstack.org/openstacksdk/latest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/os_client_config.egg-info/SOURCES.txt new/os-client-config-1.32.0/os_client_config.egg-info/SOURCES.txt
--- old/os-client-config-1.31.2/os_client_config.egg-info/SOURCES.txt 2018-06-18 02:54:27.000000000 +0200
+++ new/os-client-config-1.32.0/os_client_config.egg-info/SOURCES.txt 2019-03-08 01:03:31.000000000 +0100
@@ -49,7 +49,6 @@
os_client_config/tests/test_import_vendors.py
os_client_config/tests/test_init.py
os_client_config/vendors/__init__.py
-os_client_config/vendors/limestonenetworks.json
releasenotes/notes/catch-up-release-notes-e385fad34e9f3d6e.yaml
releasenotes/notes/cloud-profile-status-e0d29b5e2f10e95c.yaml
releasenotes/notes/default-cloud-7ee0bcb9e5dd24b9.yaml
@@ -79,6 +78,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/os_client_config.egg-info/pbr.json new/os-client-config-1.32.0/os_client_config.egg-info/pbr.json
--- old/os-client-config-1.31.2/os_client_config.egg-info/pbr.json 2018-06-18 02:54:27.000000000 +0200
+++ new/os-client-config-1.32.0/os_client_config.egg-info/pbr.json 2019-03-08 01:03:31.000000000 +0100
@@ -1 +1 @@
-{"git_version": "a024da3", "is_release": true}
\ No newline at end of file
+{"git_version": "74fc34a", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/releasenotes/source/index.rst new/os-client-config-1.32.0/releasenotes/source/index.rst
--- old/os-client-config-1.31.2/releasenotes/source/index.rst 2018-06-18 02:51:04.000000000 +0200
+++ new/os-client-config-1.32.0/releasenotes/source/index.rst 2019-03-08 01:01:20.000000000 +0100
@@ -9,6 +9,7 @@
:maxdepth: 2
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/releasenotes/source/rocky.rst new/os-client-config-1.32.0/releasenotes/source/rocky.rst
--- old/os-client-config-1.31.2/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/os-client-config-1.32.0/releasenotes/source/rocky.rst 2019-03-08 01:01:20.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/setup.cfg new/os-client-config-1.32.0/setup.cfg
--- old/os-client-config-1.31.2/setup.cfg 2018-06-18 02:54:27.000000000 +0200
+++ new/os-client-config-1.32.0/setup.cfg 2019-03-08 01:03:31.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/os-client-config/latest
classifier =
Environment :: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/tools/keystone_version.py new/os-client-config-1.32.0/tools/keystone_version.py
--- old/os-client-config-1.31.2/tools/keystone_version.py 2018-06-18 02:51:04.000000000 +0200
+++ new/os-client-config-1.32.0/tools/keystone_version.py 2019-03-08 01:01:20.000000000 +0100
@@ -16,7 +16,7 @@
import os_client_config
import pprint
import sys
-import urlparse
+import six.moves.urllib.parse as urlparse
def print_versions(r):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-client-config-1.31.2/tox.ini new/os-client-config-1.32.0/tox.ini
--- old/os-client-config-1.31.2/tox.ini 2018-06-18 02:51:04.000000000 +0200
+++ new/os-client-config-1.32.0/tox.ini 2019-03-08 01:01:20.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
-minversion = 1.6
-envlist = py35,py27,pep8
+minversion = 2.0
+envlist = py37,py27,pep8
skipsdist = True
[testenv]
@@ -34,7 +34,6 @@
readme
commands =
doc8 doc/source
- python setup.py check -r -s
flake8 os_client_config
[testenv:venv]
1
0
Hello community,
here is the log from the commit of package python-os-api-ref for openSUSE:Factory checked in at 2019-05-03 22:41:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-os-api-ref (Old)
and /work/SRC/openSUSE:Factory/.python-os-api-ref.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-os-api-ref"
Fri May 3 22:41:42 2019 rev:6 rq:692848 version:1.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-os-api-ref/python-os-api-ref.changes 2018-03-19 23:35:22.243862917 +0100
+++ /work/SRC/openSUSE:Factory/.python-os-api-ref.new.5148/python-os-api-ref.changes 2019-05-03 22:41:43.639153138 +0200
@@ -1,0 +2,23 @@
+Mon Apr 8 11:40:47 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.6.0
+ - Change openstack-dev to openstack-discuss
+ - Fix UnicodeDecodeError
+ - readthedocs.io support
+ - Remove name from project stanza
+ - Use 'sphinx.util.logging'
+ - Update sphinx extension logging
+ - Raise warning if top-level value is not a dict
+ - Fix sphinx-build invocation
+ - Update the remained discuss email
+ - Fixing duplicate label issue.
+ - switch documentation job to new PTI
+ - General overhaul of testing setup
+ - tests: Support Sphinx 1.8+
+ - Use openstackdocstheme
+ - Updated from global requirements
+ - import zuul job settings from project-config
+ - docs: Remove broken link
+- add 0001-Fix-microversion-test-handle-different-HTML-renderin.patch
+
+-------------------------------------------------------------------
Old:
----
os-api-ref-1.5.0.tar.gz
New:
----
0001-Fix-microversion-test-handle-different-HTML-renderin.patch
os-api-ref-1.6.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-os-api-ref.spec ++++++
--- /var/tmp/diff_new_pack.XGgOXj/_old 2019-05-03 22:41:44.535155024 +0200
+++ /var/tmp/diff_new_pack.XGgOXj/_new 2019-05-03 22:41:44.539155032 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-os-api-ref
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,37 +12,47 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
-%global sname os-api-ref
Name: python-os-api-ref
-Version: 1.5.0
+Version: 1.6.0
Release: 0
Summary: Sphinx Extensions to support API reference sites in OpenStack
License: Apache-2.0
Group: Development/Languages/Python
-Url: https://launchpad.net/%{sname}
-Source0: https://files.pythonhosted.org/packages/source/o/%{sname}/%{sname}-%{versio…
+URL: https://launchpad.net/%{sname}
+Source0: https://files.pythonhosted.org/packages/source/o/os-api-ref/os-api-ref-1.6.…
+# https://review.openstack.org/#/c/630146/
+Patch1: 0001-Fix-microversion-test-handle-different-HTML-renderin.patch
BuildRequires: openstack-macros
-BuildRequires: python-PyYAML >= 3.10
-BuildRequires: python-Sphinx
-BuildRequires: python-beautifulsoup4 >= 4.6.0
-BuildRequires: python-docutils >= 0.11
-BuildRequires: python-openstackdocstheme >= 1.18.1
-BuildRequires: python-oslosphinx >= 4.7.0
-BuildRequires: python-pbr >= 2.0.0
-BuildRequires: python-python-subunit >= 1.0.0
-BuildRequires: python-sphinx-testing >= 0.7.2
-BuildRequires: python-testrepository >= 0.0.18
-BuildRequires: python-testtools >= 2.2.0
-Requires: python-PyYAML >= 3.10
+BuildRequires: python2-PyYAML >= 3.12
+BuildRequires: python2-Sphinx
+BuildRequires: python2-beautifulsoup4
+BuildRequires: python2-openstackdocstheme >= 1.18.1
+BuildRequires: python2-pbr >= 2.0.0
+BuildRequires: python2-python-subunit
+BuildRequires: python2-sphinx-testing
+BuildRequires: python2-stestr
+BuildRequires: python2-testrepository
+BuildRequires: python2-testtools
+BuildRequires: python3-PyYAML >= 3.12
+BuildRequires: python3-Sphinx
+BuildRequires: python3-beautifulsoup4
+BuildRequires: python3-openstackdocstheme >= 1.18.1
+BuildRequires: python3-pbr >= 2.0.0
+BuildRequires: python3-python-subunit
+BuildRequires: python3-sphinx-testing
+BuildRequires: python3-stestr
+BuildRequires: python3-testrepository
+BuildRequires: python3-testtools
+Requires: python-PyYAML >= 3.12
Requires: python-Sphinx
-Requires: python-docutils >= 0.11
Requires: python-openstackdocstheme >= 1.18.1
Requires: python-pbr >= 2.0.0
BuildArch: noarch
+%python_subpackages
%description
This project is a collection of sphinx stanzas that assist in building an API
@@ -57,22 +67,22 @@
expand / collapse all sections.
%prep
-%autosetup -n %{sname}-%{version}
+%autosetup -p1 -n os-api-ref-1.6.0
%py_req_cleanup
%build
-%{py2_build}
+%{python_build}
%install
-%{py2_install}
+%{python_install}
%check
-%{__python2} setup.py testr
+%python_exec -m stestr.cli run
-%files
+%files %{python_files}
%license LICENSE
%doc README.rst ChangeLog
-%{python2_sitelib}/os_api_ref
-%{python2_sitelib}/*.egg-info
+%{python_sitelib}/os_api_ref
+%{python_sitelib}/*.egg-info
%changelog
++++++ 0001-Fix-microversion-test-handle-different-HTML-renderin.patch ++++++
>From 4e56d09dafaa7e2b2dc9fd2cd1864ffe6c39e219 Mon Sep 17 00:00:00 2001
From: Luigi Toscano <ltoscano(a)redhat.com>
Date: Fri, 11 Jan 2019 11:58:11 +0100
Subject: [PATCH] Fix microversion test: handle different HTML renderings
The rendered HTML changes a bit between beautifulsoup4 4.6.3 and 4.7.1.
A regular expression can handle both cases.
Change-Id: I64d4c56b480d54b50e58141999636b91b5fb4f94
---
os_api_ref/tests/test_microversions.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/os_api_ref/tests/test_microversions.py b/os_api_ref/tests/test_microversions.py
index b58f6a6..d58f673 100644
--- a/os_api_ref/tests/test_microversions.py
+++ b/os_api_ref/tests/test_microversions.py
@@ -45,13 +45,13 @@ class TestMicroversions(base.TestCase):
def test_rest_method(self):
"""Test that min / max mv css class attributes are set"""
content = self.soup.find_all(class_='rp_min_ver_2_17')
- self.assertIn(
- '<div class="operation-grp rp_min_ver_2_17 rp_max_ver_2_19 ">',
- str(content[0]))
+ self.assertRegexpMatches(
+ str(content[0]),
+ '^<div class="operation-grp rp_min_ver_2_17 rp_max_ver_2_19 ?"')
content = self.soup.find_all(class_='rp_max_ver_2_19')
- self.assertIn(
- '<div class="operation-grp rp_min_ver_2_17 rp_max_ver_2_19 ">',
- str(content[0]))
+ self.assertRegexpMatches(
+ str(content[0]),
+ '^<div class="operation-grp rp_min_ver_2_17 rp_max_ver_2_19 ?"')
def test_parameters_table(self):
"""Test that min / max mv css class attributes are set in params"""
--
2.21.0
++++++ _service ++++++
--- /var/tmp/diff_new_pack.XGgOXj/_old 2019-05-03 22:41:44.563155083 +0200
+++ /var/tmp/diff_new_pack.XGgOXj/_new 2019-05-03 22:41:44.563155083 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/queens/ope…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-os-api-ref.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/queens/req…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/os-api-ref/master/requirements.…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,os-api-ref</param>
</service>
++++++ os-api-ref-1.5.0.tar.gz -> os-api-ref-1.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/.stestr.conf new/os-api-ref-1.6.0/.stestr.conf
--- old/os-api-ref-1.5.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/os-api-ref-1.6.0/.stestr.conf 2018-12-12 11:53:22.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=${OS_TEST_PATH:-./os_api_ref/tests}
+top_dir=./
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/.zuul.yaml new/os-api-ref-1.6.0/.zuul.yaml
--- old/os-api-ref-1.5.0/.zuul.yaml 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/.zuul.yaml 2018-12-12 11:53:22.000000000 +0100
@@ -10,7 +10,12 @@
- openstack/os-api-ref
- project:
- name: openstack/os-api-ref
+ templates:
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - check-requirements
+ - publish-openstack-docs-pti
check:
jobs:
- os-api-ref-nova-src
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/AUTHORS new/os-api-ref-1.6.0/AUTHORS
--- old/os-api-ref-1.5.0/AUTHORS 2018-01-18 15:23:16.000000000 +0100
+++ new/os-api-ref-1.6.0/AUTHORS 2018-12-12 11:55:31.000000000 +0100
@@ -4,22 +4,28 @@
Daniel Gonzalez <daniel(a)gonzalez-nothnagel.de>
Dirk Mueller <dirk(a)dmllr.de>
Dmitry Shachnev <mitya57(a)ubuntu.com>
+Doug Hellmann <doug(a)doughellmann.com>
Flavio Percoco <flaper87(a)gmail.com>
+Gergely Csatari <gergely.csatari(a)nokia.com>
+Graham Hayes <gr(a)ham.ie>
Graham Hayes <graham.hayes(a)hpe.com>
Karen Bradshaw <kbhawkey(a)gmail.com>
Monty Taylor <mordred(a)inaugust.com>
Nam Nguyen Hoai <namnh(a)vn.fujitsu.com>
Ondřej Nový <ondrej.novy(a)firma.seznam.cz>
Sean Dague <sean(a)dague.net>
+Sean McGinnis <sean.mcginnis(a)gmail.com>
Stephen Finucane <stephenfin(a)redhat.com>
+Telles Nobrega <tenobreg(a)redhat.com>
Thomas Bechtold <tbechtold(a)suse.com>
Tony Breeds <tony(a)bakeyournoodle.com>
Tony Xu <hhktony(a)gmail.com>
Tristan Cacqueray <tdecacqu(a)redhat.com>
Yuval Brik <yuval(a)brik.org.il>
-Zuul <zuul(a)review.openstack.org>
gengchc2 <geng.changcai2(a)zte.com.cn>
ghanshyam <ghanshyammann(a)gmail.com>
+jacky06 <zhang.min(a)99cloud.net>
+melissaml <ma.lei(a)99cloud.net>
ricolin <rico.lin(a)easystack.cn>
shangxiaobj <shangxiaobj(a)inspur.com>
shashi.kant <shashi.kant(a)nectechnologies.in>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/ChangeLog new/os-api-ref-1.6.0/ChangeLog
--- old/os-api-ref-1.5.0/ChangeLog 2018-01-18 15:23:16.000000000 +0100
+++ new/os-api-ref-1.6.0/ChangeLog 2018-12-12 11:55:31.000000000 +0100
@@ -1,6 +1,28 @@
CHANGES
=======
+1.6.0
+-----
+
+* Fixing duplicate label issue
+* readthedocs.io support
+* Update the remained discuss email
+* Change openstack-dev to openstack-discuss
+* Update sphinx extension logging
+* tests: Support Sphinx 1.8+
+* docs: Remove broken link
+* switch documentation job to new PTI
+* Fix sphinx-build invocation
+* import zuul job settings from project-config
+* Use 'sphinx.util.logging'
+* General overhaul of testing setup
+* Raise warning if top-level value is not a dict
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Use openstackdocstheme
+* Remove name from project stanza
+
1.5.0
-----
@@ -10,6 +32,7 @@
* Add 'uuid' type
* Fix Zuul jobs
* Updated from global requirements
+* Fix UnicodeDecodeError
* Updated from global requirements
* doc: Remove deprecated call to sphinx.util.compat
* Remove unconstraint package installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/PKG-INFO new/os-api-ref-1.6.0/PKG-INFO
--- old/os-api-ref-1.5.0/PKG-INFO 2018-01-18 15:23:17.000000000 +0100
+++ new/os-api-ref-1.6.0/PKG-INFO 2018-12-12 11:55:31.000000000 +0100
@@ -1,12 +1,11 @@
Metadata-Version: 1.1
Name: os-api-ref
-Version: 1.5.0
+Version: 1.6.0
Summary: Sphinx Extensions to support API reference sites in OpenStack
Home-page: https://docs.openstack.org/os-api-ref/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
-Description-Content-Type: UNKNOWN
Description: ========================
Team and repository tags
========================
@@ -52,7 +51,7 @@
A list, in no particular order, of things we should do in this
project. If you would like to contribute to any of these please show
up in ``#openstack-dev`` on IRC and ask for ``sdague`` or ``mugsie``
- to discuss or send an email to the openstack-dev(a)lists.openstack.org list
+ to discuss or send an email to the openstack-discuss(a)lists.openstack.org list
with [api] in the subject line.
* Enhance documentation with more examples and best practices
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/README.rst new/os-api-ref-1.6.0/README.rst
--- old/os-api-ref-1.5.0/README.rst 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/README.rst 2018-12-12 11:53:22.000000000 +0100
@@ -43,7 +43,7 @@
A list, in no particular order, of things we should do in this
project. If you would like to contribute to any of these please show
up in ``#openstack-dev`` on IRC and ask for ``sdague`` or ``mugsie``
-to discuss or send an email to the openstack-dev(a)lists.openstack.org list
+to discuss or send an email to the openstack-discuss(a)lists.openstack.org list
with [api] in the subject line.
* Enhance documentation with more examples and best practices
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/doc/requirements.txt new/os-api-ref-1.6.0/doc/requirements.txt
--- old/os-api-ref-1.5.0/doc/requirements.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/os-api-ref-1.6.0/doc/requirements.txt 2018-12-12 11:53:22.000000000 +0100
@@ -0,0 +1,5 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
+openstackdocstheme>=1.18.1 # Apache-2.0
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/doc/source/conf.py new/os-api-ref-1.6.0/doc/source/conf.py
--- old/os-api-ref-1.5.0/doc/source/conf.py 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/doc/source/conf.py 2018-12-12 11:53:22.000000000 +0100
@@ -22,9 +22,14 @@
extensions = [
'sphinx.ext.autodoc',
#'sphinx.ext.intersphinx',
- 'oslosphinx'
+ 'openstackdocstheme'
]
+# openstackdocstheme options
+repository_name = 'openstack/os-api-ref'
+bug_project = 'openstack-doc-tools'
+bug_tag = 'os-api-ref'
+
# autodoc generation is a bit aggressive and a nuisance when doing heavy
# text edit cycles.
# execute "export SPHINX_DEBUG=1" in your terminal to disable
@@ -37,7 +42,7 @@
# General information about the project.
project = u'os-api-ref'
-copyright = u'2016, The contributors'
+copyright = u'2018, The contributors'
# If true, '()' will be appended to :func: etc. cross-reference text.
add_function_parentheses = True
@@ -57,9 +62,14 @@
# html_theme = '_theme'
# html_static_path = ['static']
+html_theme = 'openstackdocs'
+
# Output file base name for HTML help builder.
htmlhelp_basename = '%sdoc' % project
+# Must set this variable to include year, month, day, hours, and minutes.
+html_last_updated_fmt = '%Y-%m-%d %H:%M'
+
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass
# [howto/manual]).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/doc/source/index.rst new/os-api-ref-1.6.0/doc/source/index.rst
--- old/os-api-ref-1.5.0/doc/source/index.rst 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/doc/source/index.rst 2018-12-12 11:53:22.000000000 +0100
@@ -1,8 +1,3 @@
-.. os-api-ref documentation master file, created by
- sphinx-quickstart on Tue Jul 9 22:26:36 2013.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
==============================================
Welcome to os-api-ref developer documentation!
==============================================
@@ -19,5 +14,4 @@
==================
* :ref:`genindex`
-* :ref:`modindex`
* :ref:`search`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/os_api_ref/__init__.py new/os-api-ref-1.6.0/os_api_ref/__init__.py
--- old/os-api-ref-1.5.0/os_api_ref/__init__.py 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/os_api_ref/__init__.py 2018-12-12 11:53:25.000000000 +0100
@@ -12,6 +12,7 @@
from collections import OrderedDict
import os
+import random
import re
from docutils import nodes
@@ -19,6 +20,8 @@
from docutils.parsers.rst.directives.tables import Table
from docutils.statemachine import ViewList
import pbr.version
+import six
+from sphinx.util import logging
from sphinx.util.osutil import copyfile
import yaml
@@ -29,6 +32,8 @@
__version__ = pbr.version.VersionInfo(
'os_api_ref').version_string()
+LOG = logging.getLogger(__name__)
+
# This is to allow for a graceful swap from oslosphinx to openstackdocstheme
THEME = 'openstackdocstheme'
@@ -166,8 +171,6 @@
lineno = self.state_machine.abs_line_number()
target = nodes.target()
section = nodes.section(classes=["detail-control"])
- # env = self.state.document.settings.env
- # env.app.info("Parent %s" % self.state.parent.attributes)
node = rest_method()
@@ -196,7 +199,8 @@
# We need to build a temporary target that we can replace
# later in the processing to get the TOC to resolve correctly.
- temp_target = "%s-selector" % node['target']
+ temp_target = "%s-%d-selector" % (node['target'],
+ random.randint(1, 1000))
target = nodes.target(ids=[temp_target])
self.state.add_target(temp_target, '', target, lineno)
section += node
@@ -218,25 +222,22 @@
return YAML_CACHE[fpath]
lookup = {}
- # self.app.info("Fpath: %s" % fpath)
try:
with open(fpath, 'r') as stream:
lookup = ordered_load(stream)
except IOError:
- self.app.warn(
- "Parameters file %s not found" % fpath,
- (self.env.docname, None))
+ LOG.warning("Parameters file not found, %s", fpath,
+ location=(self.env.docname, None))
return
except yaml.YAMLError as exc:
- self.app.warn(exc)
+ LOG.exception(exc_info=exc)
raise
if lookup:
self._check_yaml_sorting(fpath, lookup)
else:
- self.app.warn(
- "Parameters file is empty %s" % fpath,
- (self.env.docname, None))
+ LOG.warning("Parameters file is empty, %s", fpath,
+ location=(self.env.docname, None))
return
YAML_CACHE[fpath] = lookup
@@ -257,15 +258,18 @@
last = None
for key, value in yaml_data.items():
+ if not isinstance(value, dict):
+ raise Exception('Expected a dict for {0}; got {0}={1}).\n'
+ 'You probably have indentation typo in your'
+ 'YAML source'.format(key, value))
+
# use of an invalid 'in' value
if value['in'] not in sections:
- self.app.warn(
- "``%s`` is not a valid value for 'in' (must be one of: %s)"
- ". (see ``%s``)" % (
- value['in'],
- ", ".join(sorted(sections.keys())),
- key)
- )
+ LOG.warning("``%s`` is not a valid value for 'in' (must be "
+ "one of: %s). (see ``%s``)",
+ value['in'],
+ ", ".join(sorted(sections.keys())),
+ key)
continue
if last is None:
@@ -275,17 +279,13 @@
current_section = value['in']
last_section = last[1]['in']
if sections[current_section] < sections[last_section]:
- self.app.warn(
- "Section out of order. All parameters in section ``%s`` "
- "should be after section ``%s``. (see ``%s``)" % (
- last_section,
- current_section,
- last[0]))
+ LOG.warning("Section out of order. All parameters in section "
+ "``%s`` should be after section ``%s``. (see "
+ "``%s``)", last_section, current_section, last[0])
if (sections[value['in']] == sections[last[1]['in']] and
key.lower() < last[0].lower()):
- self.app.warn(
- "Parameters out of order ``%s`` should be after ``%s``" % (
- last[0], key))
+ LOG.warning("Parameters out of order ``%s`` should be after "
+ "``%s``", last[0], key)
last = (key, value)
def yaml_from_file(self, fpath):
@@ -301,17 +301,14 @@
content = "\n".join(self.content)
parsed = yaml.safe_load(content)
- # self.app.info("Params loaded is %s" % parsed)
- # self.app.info("Lookup table looks like %s" % lookup)
new_content = list()
for paramlist in parsed:
if not isinstance(paramlist, dict):
- self.app.warn(
- ("Invalid parameter definition ``%s``. Expected "
- "format: ``name: reference``. "
- " Skipping." % paramlist),
- (self.state_machine.node.source,
- self.state_machine.node.line))
+ location = (self.state_machine.node.source,
+ self.state_machine.node.line)
+ LOG.warning("Invalid parameter definition ``%s``. Expected "
+ "format: ``name: reference``. Skipping.",
+ paramlist, location=location)
continue
for name, ref in paramlist.items():
if ref in lookup:
@@ -322,11 +319,10 @@
# used this way, however it does provide a way to
# track down where the parameters list is that is
# wrong. So it's good enough for now.
- self.app.warn(
- ("No field definition for ``%s`` found in ``%s``. "
- " Skipping." % (ref, fpath)),
- (self.state_machine.node.source,
- self.state_machine.node.line))
+ location = (self.state_machine.node.source,
+ self.state_machine.node.line)
+ LOG.warning("No field definition for ``%s`` found in "
+ "``%s``. Skipping.", ref, fpath)
# Check for path params in stanza
for i, param in enumerate(self.env.path_params):
@@ -340,19 +336,15 @@
# Warn that path parameters are not set in rest_parameter
# stanza and will not appear in the generated table.
for param in self.env.path_params:
- self.app.warn(
- ("No path parameter ``%s`` found in rest_parameter"
- " stanza.\n"
- % param.rstrip('}').lstrip('{')),
- (self.state_machine.node.source,
- self.state_machine.node.line))
+ location = (self.state_machine.node.source,
+ self.state_machine.node.line)
+ LOG.warning("No path parameter ``%s`` found in rest_parameter"
+ " stanza.\n", param.rstrip('}').lstrip('{'))
- # self.app.info("New content %s" % new_content)
self.yaml = new_content
def run(self):
self.env = self.state.document.settings.env
- self.app = self.env.app
# Make sure we have some content, which should be yaml that
# defines some parameters.
@@ -389,7 +381,6 @@
self.col_widths = self.col_widths[1]
# Actually convert the yaml
title, messages = self.make_title()
- # self.app.info("Title %s, messages %s" % (title, messages))
table_node = self.build_table()
self.add_name(table_node)
if title:
@@ -401,7 +392,7 @@
groups = []
trow = nodes.row()
entry = nodes.entry()
- para = nodes.paragraph(text=unicode(table_data))
+ para = nodes.paragraph(text=six.u(table_data))
entry += para
trow += entry
rows.append(trow)
@@ -429,7 +420,6 @@
rows = []
groups = []
try:
- # self.app.info("Parsed content is: %s" % self.yaml)
for key, values in self.yaml:
min_version = values.get('min_version', '')
max_version = values.get('max_version', '')
@@ -457,8 +447,8 @@
rows.append(trow)
except AttributeError as exc:
if 'key' in locals():
- self.app.warn("Failure on key: %s, values: %s. %s" %
- (key, values, exc))
+ LOG.warning("Failure on key: %s, values: %s. %s",
+ key, values, exc)
else:
rows.append(self.show_no_yaml_error())
return rows, groups
@@ -649,10 +639,11 @@
'glyphicons-halflings-regular.ttf',
'glyphicons-halflings-regular.woff'
)
- if app.builder.name != 'html' or exception:
+ builders = ('html', 'readthedocs', 'readthedocssinglehtmllocalmedia')
+ if app.builder.name not in builders or exception:
return
- app.info('Copying assets: %s' % ', '.join(assets))
- app.info('Copying fonts: %s' % ', '.join(fonts))
+ LOG.info('Copying assets: %s', ', '.join(assets))
+ LOG.info('Copying fonts: %s', ', '.join(fonts))
for asset in assets:
dest = os.path.join(app.builder.outdir, '_static', asset)
source = os.path.abspath(os.path.dirname(__file__))
@@ -677,12 +668,9 @@
# TODO(sdague): if someone wants to support latex/pdf, or man page
# generation using these stanzas, here is where you'd need to
# specify content specific renderers.
- app.add_node(rest_method,
- html=(rest_method_html, None))
- app.add_node(rest_expand_all,
- html=(rest_expand_all_html, None))
- app.add_node(http_code,
- html=(http_code_html, None))
+ app.add_node(rest_method, html=(rest_method_html, None))
+ app.add_node(rest_expand_all, html=(rest_expand_all_html, None))
+ app.add_node(http_code, html=(http_code_html, None))
# This specifies all our directives that we're adding
app.add_directive('rest_parameters', RestParametersDirective)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/os_api_ref/http_codes.py new/os-api-ref-1.6.0/os_api_ref/http_codes.py
--- old/os-api-ref-1.5.0/os_api_ref/http_codes.py 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/os_api_ref/http_codes.py 2018-12-12 11:53:22.000000000 +0100
@@ -14,8 +14,11 @@
from docutils.parsers.rst.directives.tables import Table
from docutils.statemachine import ViewList
from six.moves.http_client import responses
+from sphinx.util import logging
import yaml
+LOG = logging.getLogger(__name__)
+
# cache for file -> yaml so we only do the load and check of a yaml
# file once during a sphinx processing run.
HTTP_YAML_CACHE = {}
@@ -44,17 +47,17 @@
if fpath in HTTP_YAML_CACHE:
return HTTP_YAML_CACHE[fpath]
- # self.app.info("Fpath: %s" % fpath)
+ # LOG.info("Fpath: %s" % fpath)
try:
with open(fpath, 'r') as stream:
lookup = yaml.safe_load(stream)
except IOError:
- self.app.warn(
+ LOG.warning(
"Parameters file %s not found" % fpath,
(self.env.docname, None))
return
except yaml.YAMLError as exc:
- self.app.warn(exc)
+ LOG.warning(exc)
raise
HTTP_YAML_CACHE[fpath] = lookup
@@ -62,7 +65,6 @@
def run(self):
self.env = self.state.document.settings.env
- self.app = self.env.app
# Make sure we have some content, which should be yaml that
# defines some parameters.
@@ -85,7 +87,7 @@
self.status_defs = self._load_status_file(status_defs_file)
- # self.app.info("%s" % str(self.status_defs))
+ # LOG.info("%s" % str(self.status_defs))
if status_type not in self.status_types:
error = self.state_machine.reporter.error(
@@ -109,7 +111,7 @@
self.col_widths = self.col_widths[1]
# Actually convert the yaml
title, messages = self.make_title()
- # self.app.info("Title %s, messages %s" % (title, messages))
+ # LOG.info("Title %s, messages %s" % (title, messages))
table_node = self.build_table()
self.add_name(table_node)
@@ -138,7 +140,7 @@
(code, self.status_defs[code][reason])
)
except KeyError:
- self.app.warn(
+ LOG.warning(
"Could not find %s for code %s" % (reason, code))
new_content.append(
(code, self.status_defs[code]['default']))
@@ -191,7 +193,7 @@
rows = []
groups = []
try:
- # self.app.info("Parsed content is: %s" % self.yaml)
+ # LOG.info("Parsed content is: %s" % self.yaml)
for code, desc in self.yaml:
h_code = http_code()
@@ -204,8 +206,8 @@
rows.append(trow)
except AttributeError as exc:
# if 'key' in locals():
- self.app.warn("Failure on key: %s, values: %s. %s" %
- (code, desc, exc))
+ LOG.warning("Failure on key: %s, values: %s. %s" %
+ (code, desc, exc))
# else:
# rows.append(self.show_no_yaml_error())
return rows, groups
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/os_api_ref/tests/test_basic_example.py new/os-api-ref-1.6.0/os_api_ref/tests/test_basic_example.py
--- old/os-api-ref-1.5.0/os_api_ref/tests/test_basic_example.py 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/os_api_ref/tests/test_basic_example.py 2018-12-12 11:53:22.000000000 +0100
@@ -18,11 +18,26 @@
"""
from bs4 import BeautifulSoup
+import sphinx
from sphinx_testing import with_app
from os_api_ref.tests import base
+# FIXME(stephenfin): This is horrible. We're monkeypatching this to work around
+# the fact that Sphinx 1.8+ started called 'abspath' from within the
+# 'sphinx.application.Application' class [1]. This means our careful use of
+# 'sphinx_testing.path.path' for 'Application.outdir' etc. gets stomped on.
+# We're correcting that but we're doing so globally because mock doesn't work
+# for some reason and this is bound to have some side effects
+#
+# [1] https://github.com/sphinx-doc/sphinx/commit/3a85b3502f
+try:
+ sphinx.application.abspath = lambda x: x
+except ImportError: # Sphinx < 1.8
+ pass
+
+
class TestBasicExample(base.TestCase):
"""Test basic rendering.
@@ -38,7 +53,7 @@
self.status = status
self.warning = warning
self.app.build()
- self.html = (app.outdir / 'index.html').read_text()
+ self.html = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.soup = BeautifulSoup(self.html, 'html.parser')
self.content = str(self.soup)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/os_api_ref/tests/test_microversions.py new/os-api-ref-1.6.0/os_api_ref/tests/test_microversions.py
--- old/os-api-ref-1.5.0/os_api_ref/tests/test_microversions.py 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/os_api_ref/tests/test_microversions.py 2018-12-12 11:53:22.000000000 +0100
@@ -38,7 +38,7 @@
self.app.build()
self.status = status.getvalue()
self.warning = warning.getvalue()
- self.html = (app.outdir / 'index.html').read_text()
+ self.html = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.soup = BeautifulSoup(self.html, 'html.parser')
self.content = str(self.soup)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/os_api_ref/tests/test_warnings.py new/os-api-ref-1.6.0/os_api_ref/tests/test_warnings.py
--- old/os-api-ref-1.5.0/os_api_ref/tests/test_warnings.py 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/os_api_ref/tests/test_warnings.py 2018-12-12 11:53:22.000000000 +0100
@@ -38,7 +38,7 @@
self.app.build()
self.status = status.getvalue()
self.warning = warning.getvalue()
- self.html = (app.outdir / 'index.html').read_text()
+ self.html = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.soup = BeautifulSoup(self.html, 'html.parser')
self.content = str(self.soup)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/os_api_ref.egg-info/PKG-INFO new/os-api-ref-1.6.0/os_api_ref.egg-info/PKG-INFO
--- old/os-api-ref-1.5.0/os_api_ref.egg-info/PKG-INFO 2018-01-18 15:23:16.000000000 +0100
+++ new/os-api-ref-1.6.0/os_api_ref.egg-info/PKG-INFO 2018-12-12 11:55:31.000000000 +0100
@@ -1,12 +1,11 @@
Metadata-Version: 1.1
Name: os-api-ref
-Version: 1.5.0
+Version: 1.6.0
Summary: Sphinx Extensions to support API reference sites in OpenStack
Home-page: https://docs.openstack.org/os-api-ref/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
-Description-Content-Type: UNKNOWN
Description: ========================
Team and repository tags
========================
@@ -52,7 +51,7 @@
A list, in no particular order, of things we should do in this
project. If you would like to contribute to any of these please show
up in ``#openstack-dev`` on IRC and ask for ``sdague`` or ``mugsie``
- to discuss or send an email to the openstack-dev(a)lists.openstack.org list
+ to discuss or send an email to the openstack-discuss(a)lists.openstack.org list
with [api] in the subject line.
* Enhance documentation with more examples and best practices
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/os_api_ref.egg-info/SOURCES.txt new/os-api-ref-1.6.0/os_api_ref.egg-info/SOURCES.txt
--- old/os-api-ref-1.5.0/os_api_ref.egg-info/SOURCES.txt 2018-01-18 15:23:17.000000000 +0100
+++ new/os-api-ref-1.6.0/os_api_ref.egg-info/SOURCES.txt 2018-12-12 11:55:31.000000000 +0100
@@ -1,5 +1,6 @@
.coveragerc
.mailmap
+.stestr.conf
.testr.conf
.zuul.yaml
AUTHORS
@@ -17,6 +18,7 @@
setup.py
test-requirements.txt
tox.ini
+doc/requirements.txt
doc/source/conf.py
doc/source/contributing.rst
doc/source/http-status.yaml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/os_api_ref.egg-info/pbr.json new/os-api-ref-1.6.0/os_api_ref.egg-info/pbr.json
--- old/os-api-ref-1.5.0/os_api_ref.egg-info/pbr.json 2018-01-18 15:23:16.000000000 +0100
+++ new/os-api-ref-1.6.0/os_api_ref.egg-info/pbr.json 2018-12-12 11:55:31.000000000 +0100
@@ -1 +1 @@
-{"git_version": "cb41558", "is_release": true}
\ No newline at end of file
+{"git_version": "6fee36c", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/os_api_ref.egg-info/requires.txt new/os-api-ref-1.6.0/os_api_ref.egg-info/requires.txt
--- old/os-api-ref-1.5.0/os_api_ref.egg-info/requires.txt 2018-01-18 15:23:16.000000000 +0100
+++ new/os-api-ref-1.6.0/os_api_ref.egg-info/requires.txt 2018-12-12 11:55:31.000000000 +0100
@@ -1,5 +1,5 @@
pbr!=2.1.0,>=2.0.0
-PyYAML>=3.10
+PyYAML>=3.12
six>=1.10.0
-sphinx!=1.6.6,>=1.6.2
-openstackdocstheme>=1.17.0
+sphinx!=1.6.6,!=1.6.7,>=1.6.2
+openstackdocstheme>=1.18.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/requirements.txt new/os-api-ref-1.6.0/requirements.txt
--- old/os-api-ref-1.5.0/requirements.txt 2018-01-18 15:20:56.000000000 +0100
+++ new/os-api-ref-1.6.0/requirements.txt 2018-12-12 11:53:22.000000000 +0100
@@ -3,7 +3,7 @@
# process, which may cause wedges in the gate later.
pbr!=2.1.0,>=2.0.0 # Apache-2.0
-PyYAML>=3.10 # MIT
+PyYAML>=3.12 # MIT
six>=1.10.0 # MIT
-sphinx!=1.6.6,>=1.6.2 # BSD
-openstackdocstheme>=1.17.0 # Apache-2.0
+sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
+openstackdocstheme>=1.18.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/setup.cfg new/os-api-ref-1.6.0/setup.cfg
--- old/os-api-ref-1.5.0/setup.cfg 2018-01-18 15:23:17.000000000 +0100
+++ new/os-api-ref-1.6.0/setup.cfg 2018-12-12 11:55:31.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/os-api-ref/latest/
classifier =
Environment :: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/test-requirements.txt new/os-api-ref-1.6.0/test-requirements.txt
--- old/os-api-ref-1.5.0/test-requirements.txt 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/test-requirements.txt 2018-12-12 11:53:22.000000000 +0100
@@ -6,8 +6,8 @@
coverage!=4.4,>=4.0 # Apache-2.0
python-subunit>=1.0.0 # Apache-2.0/BSD
-oslosphinx>=4.7.0 # Apache-2.0
testrepository>=0.0.18 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
sphinx-testing>=0.7.2 # BSD License
beautifulsoup4>=4.6.0 # MIT
+stestr>=2.0.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-api-ref-1.5.0/tox.ini new/os-api-ref-1.6.0/tox.ini
--- old/os-api-ref-1.5.0/tox.ini 2018-01-18 15:20:43.000000000 +0100
+++ new/os-api-ref-1.6.0/tox.ini 2018-12-12 11:53:22.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
minversion = 2.0
-envlist = py27,pep8,docs
+envlist = py27,py35,pep8,docs
skipsdist = True
[testenv]
@@ -11,26 +11,33 @@
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-commands = python setup.py test --slowest --no-parallel --testr-args='{posargs}'
+commands = stestr run {posargs}
[testenv:pep8]
+basepython = python3
commands = flake8 {posargs}
[testenv:venv]
commands = {posargs}
[testenv:cover]
+basepython = python3
commands = python setup.py test --coverage --testr-args='{posargs}'
[testenv:docs]
-commands = python setup.py build_sphinx
+basepython = python3
+deps =
+ -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
+ -r{toxinidir}/requirements.txt
+ -r{toxinidir}/doc/requirements.txt
+commands = sphinx-build -W -b html doc/source doc/build/html
[testenv:debug]
+basepython = python3
commands = oslo_debug_helper {posargs}
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
-
show-source = True
ignore = E123,E125,E129
builtins = _
1
0
Hello community,
here is the log from the commit of package python-openstackclient for openSUSE:Factory checked in at 2019-05-03 22:41:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-openstackclient (Old)
and /work/SRC/openSUSE:Factory/.python-openstackclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-openstackclient"
Fri May 3 22:41:39 2019 rev:18 rq:692845 version:3.18.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-openstackclient/python-openstackclient.changes 2018-12-06 12:17:29.289508768 +0100
+++ /work/SRC/openSUSE:Factory/.python-openstackclient.new.5148/python-openstackclient.changes 2019-05-03 22:41:40.703146956 +0200
@@ -1,0 +2,82 @@
+Mon Apr 8 12:07:55 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.18.0
+ - Fix missing trailing spaces in network help messages
+ - Add volume backend capability show command
+ - Add metavar for name parameter in subnet create
+ - Modify the help message for 'registered limit set'
+ - image/v2: support multiple property filters
+ - Add note about version 2.5 when listing servers using --ip6
+ - Add dns-domain support to Network object
+ - Fix broken gate jobs
+ - Fix 'project purge' deleting wrong project's servers and volumes
+ - Support enable/disable uplink status propagation
+ - Allow endpoint filtering on both project and project-domain
+ - Add --key-name and --key-unset option for server rebuild API.
+ - Remove invalid 'unlock-volume' migration arg
+ - Default --nic to 'auto' if creating a server with >= 2.37
+ - Add monascaclient to `not plugins` list
+ - import zuul job settings from project-config
+ - Add DNS support to floating IP commands
+ - More state handling in volume transfer requests functional tests
+ - Updated the take_actions for unified limits
+ - More volume functional test fixes
+ - Use devstack functional base job
+ - Add --property option to 'server rebuild' command
+ - This fix removes an erroneous underscore found within the function named
+ - Partially Revert "Add command to unset information from Subnet-pools"
+ - API microversion 2.69: Handles Down Cells
+ - Don't display router's is_ha and is_distributed attributes always
+ - trivial: modify spelling error of project
+ - Disabling c-backup service for osc-functional-devstack-tips job
+ - Detailed help message for QoS max-burst-kbps value
+ - Update release note version reference table
+ - Update reno for stable/rocky
+ - Update the Neutron CLI decoder document
+ - Make use of keystoneauth service-type filtering for versions
+ - add python 3.6 unit test job
+ - Deprecate volume create --project and --user options
+ - trivial: remove commented-out code
+ - Typo fix
+ - Change openstack-dev to openstack-discuss
+ - Remove str() when setting network objects names
+ - Add Python 3.6 classifier to setup.cfg
+ - Replace assertEqual(True/False, expr) with assertTrue/assertFalse
+ - Remove testr.conf as it's been replaced by stestr
+ - Add py36 env
+ - add lib-forward-testing-python3 test job
+ - Fix inconsistency (nit)
+ - osc-included image signing (using openstacksdk)
+ - Update the URL in doc
+ - Add possibility to filter images using member_status
+ - Handle multiple ports in AddFloatingIP
+ - Mention 2.51 in help for openstack server event show
+ - Add osc repo to the base job definition
+ - Add --name-lookup-one-by-one option to server list
+ - switch documentation job to new PTI
+ - Add floating IP filter to floating IP list command
+ - Address issues from volume backend commands
+ - Paginate over usage list to return all usages
+ - fix tox python3 overrides
+ - Fix i18n issue
+ - Add network segment range command object
+ - Improve document 'openstack complete'
+ - Add volume backup import/export commands
+ - Supports router gateway IP QoS
+ - Add volume backend pool list command
+ - fix multiple server delete produce multiple new lines
+ - Fix some spaces in help messages
+ - Fix: Restore output 'VolumeBackupsRestore' object is not iterable
+ - Fix help message for subnetpool default-quota value
+ - Use os-cloud instead of OS env vars for functional tests
+ - Fix help message of image add project
+ - Handle not having cinderclient.v1 available
+ - Mention compute API 2.50 in openstack quota show --class
+ - Add support for get details of Quota
+ - Add --attached / --detached parameter to volume set
+ - add python 3.7 unit test job
+ - Remove python-ceilometerclient
+ - Use templates for cover and lower-constraints
+ - Add project param in LimitList parser
+
+-------------------------------------------------------------------
Old:
----
python-openstackclient-3.16.2.tar.gz
New:
----
python-openstackclient-3.18.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-openstackclient.spec ++++++
--- /var/tmp/diff_new_pack.HiL5NA/_old 2019-05-03 22:41:41.167147933 +0200
+++ /var/tmp/diff_new_pack.HiL5NA/_new 2019-05-03 22:41:41.171147941 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-openstackclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
Name: python-openstackclient
-Version: 3.16.2
+Version: 3.18.0
Release: 0
Summary: OpenStack Command-line Client
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-openstackclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-openstackclient/pyt…
+Source0: https://files.pythonhosted.org/packages/source/p/python-openstackclient/pyt…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-cinderclient >= 3.3.0
@@ -32,17 +32,16 @@
BuildRequires: python2-glanceclient >= 2.8.0
BuildRequires: python2-keystoneclient >= 3.17.0
BuildRequires: python2-mock
-BuildRequires: python2-novaclient >= 9.1.0
-BuildRequires: python2-openstacksdk >= 0.11.2
+BuildRequires: python2-novaclient >= 10.0.0
+BuildRequires: python2-openstacksdk >= 0.17.0
BuildRequires: python2-os-client-config
-BuildRequires: python2-os-testr
BuildRequires: python2-osc-lib >= 1.10.0
BuildRequires: python2-oslotest
BuildRequires: python2-osprofiler
BuildRequires: python2-requests
BuildRequires: python2-requests-mock
+BuildRequires: python2-stestr
BuildRequires: python2-stevedore
-BuildRequires: python2-testrepository
BuildRequires: python2-testtools
BuildRequires: python2-wrapt
BuildRequires: python3-cinderclient >= 3.3.0
@@ -52,17 +51,16 @@
BuildRequires: python3-glanceclient >= 2.8.0
BuildRequires: python3-keystoneclient >= 3.17.0
BuildRequires: python3-mock
-BuildRequires: python3-novaclient >= 9.1.0
-BuildRequires: python3-openstacksdk >= 0.11.2
+BuildRequires: python3-novaclient >= 10.0.0
+BuildRequires: python3-openstacksdk >= 0.17.0
BuildRequires: python3-os-client-config
-BuildRequires: python3-os-testr
BuildRequires: python3-osc-lib >= 1.10.0
BuildRequires: python3-oslotest
BuildRequires: python3-osprofiler
BuildRequires: python3-requests
BuildRequires: python3-requests-mock
+BuildRequires: python3-stestr
BuildRequires: python3-stevedore
-BuildRequires: python3-testrepository
BuildRequires: python3-testtools
BuildRequires: python3-wrapt
Requires: python-Babel >= 2.3.4
@@ -70,10 +68,10 @@
Requires: python-cliff >= 2.8.0
Requires: python-glanceclient >= 2.8.0
Requires: python-heatclient
-Requires: python-keystoneauth1 >= 3.4.0
+Requires: python-keystoneauth1 >= 3.6.2
Requires: python-keystoneclient >= 3.17.0
-Requires: python-novaclient >= 9.1.0
-Requires: python-openstacksdk >= 0.11.2
+Requires: python-novaclient >= 10.0.0
+Requires: python-openstacksdk >= 0.17.0
Requires: python-osc-lib >= 1.10.0
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.utils >= 3.33.0
@@ -122,15 +120,14 @@
This package contains auto-generated documentation.
%prep
-%autosetup -p1 -n python-openstackclient-3.16.2
+%autosetup -p1 -n python-openstackclient-3.18.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
-PBR_VERSION=3.16.2 sphinx-build -b html doc/source doc/build/html
-PBR_VERSION=3.16.2 sphinx-build -b man doc/source doc/build/man
+PBR_VERSION=3.18.0 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=3.18.0 sphinx-build -b man doc/source doc/build/man
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
@@ -148,9 +145,7 @@
%python_uninstall_alternative openstack
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%doc README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.HiL5NA/_old 2019-05-03 22:41:41.187147975 +0200
+++ /var/tmp/diff_new_pack.HiL5NA/_new 2019-05-03 22:41:41.191147983 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-openstackclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-openstackclient/stable/r…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-openstackclient/stable/s…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-openstackclient</param>
</service>
++++++ python-openstackclient-3.16.2.tar.gz -> python-openstackclient-3.18.0.tar.gz ++++++
++++ 8429 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-octaviaclient for openSUSE:Factory checked in at 2019-05-03 22:41:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-octaviaclient (Old)
and /work/SRC/openSUSE:Factory/.python-octaviaclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-octaviaclient"
Fri May 3 22:41:36 2019 rev:2 rq:692844 version:1.8.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-octaviaclient/python-octaviaclient.changes 2018-12-18 14:57:50.714300962 +0100
+++ /work/SRC/openSUSE:Factory/.python-octaviaclient.new.5148/python-octaviaclient.changes 2019-05-03 22:41:37.803140851 +0200
@@ -1,0 +2,35 @@
+Mon Apr 8 12:10:41 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.8.0
+ - Add 'client_authentication' in Listener on client
+ - Add 2 new options to Pool for support backend certificates validation
+ - Update json module to jsonutils
+ - Make the documentation reproducible
+ - Add python 3.6 unit test job
+ - Add --provider to load balancer create
+ - import zuul job settings from project-config
+ - Add provider command support
+ - Add 4 l7rule types into Octavia CLI
+ - Add new options to HealthMonitor CLI
+ - Change openstack-dev to openstack-discuss
+ - Update reno for stable/rocky
+ - add python 3.6 unit test job
+ - Add some commands for octavia flavor and flavor_profile
+ - Add Python 3.6 classifier to setup.cfg
+ - Fix coverage and set a minimum
+ - switch documentation job to new PTI
+ - Adds loadbalancer amphora configure to OSC
+ - Add compute_flavor field to amphora
+ - Add enable_tls option into Pool CLI
+ - Fixed some typos
+ - Add load balancer flavor support to the OSC client
+ - Support REDIRECT_PREFIX for openstack client
+ - Add 'tls_container_ref' option into Pool for backend re-encrption
+ - Add a new option '--redirect-http-code' into L7Policy CLI
+ - Add client_crl_container_ref for Listener API in CLI
+ - Add 'client_ca_tls_container_ref' in Listener on client side
+ - Add failover an amphora client support
+ - add python 3.7 unit test job
+ - Use templates for cover and lower-constraints
+
+-------------------------------------------------------------------
Old:
----
python-octaviaclient-1.6.0.tar.gz
New:
----
python-octaviaclient-1.8.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-octaviaclient.spec ++++++
--- /var/tmp/diff_new_pack.23p0zR/_old 2019-05-03 22:41:38.179141642 +0200
+++ /var/tmp/diff_new_pack.23p0zR/_new 2019-05-03 22:41:38.179141642 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-octaviaclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
Name: python-octaviaclient
-Version: 1.6.0
+Version: 1.8.0
Release: 0
Summary: Octavia Plugin for the OpenStack Command-line Client
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-octaviaclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-octaviaclient/pytho…
+Source0: https://files.pythonhosted.org/packages/source/p/python-octaviaclient/pytho…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-mock
@@ -78,13 +78,13 @@
This package contains auto-generated documentation.
%prep
-%autosetup -p1 -n python-octaviaclient-1.6.0
+%autosetup -p1 -n python-octaviaclient-1.8.0
%py_req_cleanup
%build
%{python_build}
-PBR_VERSION=1.6.0 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=1.8.0 sphinx-build -b html doc/source doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.23p0zR/_old 2019-05-03 22:41:38.199141684 +0200
+++ /var/tmp/diff_new_pack.23p0zR/_new 2019-05-03 22:41:38.199141684 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-octaviaclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-octaviaclient/stable/roc…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-octaviaclient/stable/ste…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-octaviaclient</param>
</service>
++++++ python-octaviaclient-1.6.0.tar.gz -> python-octaviaclient-1.8.0.tar.gz ++++++
++++ 3203 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-novaclient for openSUSE:Factory checked in at 2019-05-03 22:41:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-novaclient (Old)
and /work/SRC/openSUSE:Factory/.python-novaclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-novaclient"
Fri May 3 22:41:33 2019 rev:31 rq:692843 version:13.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-novaclient/python-novaclient.changes 2018-09-07 15:38:12.666612978 +0200
+++ /work/SRC/openSUSE:Factory/.python-novaclient.new.5148/python-novaclient.changes 2019-05-03 22:41:33.815132455 +0200
@@ -1,0 +2,51 @@
+Mon Apr 8 12:24:19 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 13.0.0
+ - Fix test_instance_action functional test failure
+ - switch documentation job to new PTI
+ - Update the CLI reference
+ - Replace MB with MiB
+ - Update the contributor guide
+ - Fixes Python3 issue in decoding password
+ - Add support changes-before for microversion 2.66
+ - Follow up "Fix up userdata argument to rebuild"
+ - import zuul job settings from project-config
+ - Add Python 3.6 classifier to setup.cfg
+ - Handle unicode multi-byte characters
+ - Fix output of interface-attach command
+ - API microversion 2.69: Handles Down Cells
+ - Fix up userdata argument to rebuild.
+ - Change openstack-dev to openstack-discuss
+ - Microversion 2.68: Remove 'forced' live migrations, evacuations
+ - Update reno for stable/rocky
+ - add python 3.6 unit test job
+ - Fix server strings in reboot operation
+ - Remove unnecessary if statement
+ - Use jsonutils of oslo.serialization
+ - Cleanup zuul.yaml
+ - Refactor the getid method in novaclient/base.py
+ - Fix changes-before values in an instance action test
+ - add lib-forward-testing-python3 test job
+ - Replace os-client-config to openstacksdk
+ - Add missing options in CLI reference
+ - Microversion 2.71 - show server group
+ - doc: Start using openstackdoctheme's extlink extension
+ - Follow the new PTI for document build
+ - Deprecate the unused instance-name
+ - Add a note in "nova service-delete" help about deleting computes
+ - Add support for microversion 2.70 - expose device tags
+ - Use uuidutils of oslo.utils
+ - Recommend against using --force for evacuate/live migration
+ - Make Server.networks use a predictable sort order
+ - Improve the description of optional arguments
+ - Remove deprecated novaclient.v2.contrib modules
+ - Add support for microversion v2.72
+ - Update hacking version
+ - Enable split logging for cinder-novaclient interaction
+ - docs: Add redirects
+ - Add support for microversion 2.67: BDMv2 volume_type
+ - Fix flavor keyerror when nova boot vm
+ - add python 3.7 unit test job
+ - Fix a type of block_device_mapping_v2 in a comment
+
+-------------------------------------------------------------------
Old:
----
python-novaclient-11.0.0.tar.gz
New:
----
python-novaclient-13.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-novaclient.spec ++++++
--- /var/tmp/diff_new_pack.cF25b2/_old 2019-05-03 22:41:34.207133280 +0200
+++ /var/tmp/diff_new_pack.cF25b2/_new 2019-05-03 22:41:34.211133288 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-novaclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,20 +12,19 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-novaclient
-Version: 11.0.0
+Version: 13.0.0
Release: 0
Summary: Python API and CLI for OpenStack Nova
License: Apache-2.0
Group: Development/Languages/Python
-Source0: https://files.pythonhosted.org/packages/source/p/python-novaclient/python-n…
+Source0: https://files.pythonhosted.org/packages/source/p/python-novaclient/python-n…
BuildRequires: openssl
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-cinderclient
BuildRequires: python2-ddt
BuildRequires: python2-fixtures
@@ -42,7 +41,6 @@
BuildRequires: python2-testtools
BuildRequires: python3-cinderclient
BuildRequires: python3-ddt
-BuildRequires: python3-devel
BuildRequires: python3-fixtures
BuildRequires: python3-glanceclient
BuildRequires: python3-keystoneclient
@@ -59,7 +57,7 @@
Requires: python-Babel >= 2.3.4
Requires: python-PrettyTable >= 0.7.2
Requires: python-iso8601 >= 0.1.11
-Requires: python-keystoneauth1 >= 3.4.0
+Requires: python-keystoneauth1 >= 3.5.0
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.serialization >= 2.18.0
Requires: python-oslo.utils >= 3.33.0
@@ -88,6 +86,7 @@
BuildRequires: python-Sphinx
BuildRequires: python-openstackdocstheme
BuildRequires: python-reno
+BuildRequires: python-sphinxcontrib-apidoc
%description -n python-novaclient-doc
This is a client for the OpenStack Nova API. There's a Python API (the
@@ -99,14 +98,13 @@
%prep
%autosetup -p1 -n %{name}-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
-%{__python2} setup.py build_sphinx
+PBR_VERSION=13.0.0 sphinx-build -b html -d doc/build/doctrees doc/source doc/build/html
# Fix hidden-file-or-dir warnings
-rm -fr html/.doctrees html/.buildinfo
+rm -fr doc/build/html/.doctrees doc/build/html/.buildinfo
%install
%{python_install}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.cF25b2/_old 2019-05-03 22:41:34.227133322 +0200
+++ /var/tmp/diff_new_pack.cF25b2/_new 2019-05-03 22:41:34.227133322 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-novaclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-novaclient/stable/rocky/…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-novaclient/stable/stein/…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-novaclient</param>
</service>
++++++ python-novaclient-11.0.0.tar.gz -> python-novaclient-13.0.0.tar.gz ++++++
++++ 5563 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-neutronclient for openSUSE:Factory checked in at 2019-05-03 22:41:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-neutronclient (Old)
and /work/SRC/openSUSE:Factory/.python-neutronclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-neutronclient"
Fri May 3 22:41:30 2019 rev:21 rq:692842 version:6.12.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-neutronclient/python-neutronclient.changes 2018-11-29 23:01:11.111448371 +0100
+++ /work/SRC/openSUSE:Factory/.python-neutronclient.new.5148/python-neutronclient.changes 2019-05-03 22:41:32.199129053 +0200
@@ -1,0 +2,36 @@
+Mon Apr 8 12:27:07 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 6.12.0
+ - Fix api version handling, which completely breaks the client
+ - Switch to stestr
+ - Update json module to jsonutils
+ - Update mailinglist from dev to discuss
+ - Fix broken unittests
+ - Add subnet onboard CLI
+ - import zuul job settings from project-config
+ - Support of the boolean advertise_extra_routes
+ - Add B303 into list of skipped bandit plugins
+ - Ensure API calls for subnets are in URL length limit
+ - Add release note link in README
+ - Adds the destination and source fwg to fwr
+ - Change openstack-dev to openstack-discuss
+ - Fix docstring in method list_networks_on_dhcp_agent
+ - Update reno for stable/rocky
+ - Don't quote {posargs} in tox.ini
+ - add python 3.6 unit test job
+ - Add support for querying quotas with usage
+ - Add Python 3.6 classifier to setup.cfg
+ - Update hacking version to 1.1
+ - Update links in README
+ - add lib-forward-testing-python3 test job
+ - Fix docstring in method list_routers_on_l3_agent
+ - switch documentation job to new PTI
+ - Update min tox version to 2.3.2
+ - fix tox python3 overrides
+ - Remove basepython from [flake8] section
+ - Consolidate irrelevant files added for py3 project
+ - Add bandit to pep8 gate
+ - Use templates for cover and lower-constraints
+ - [log] Add 'firewall_group' as a loggable resource type for logging
+
+-------------------------------------------------------------------
Old:
----
python-neutronclient-6.9.1.tar.gz
New:
----
python-neutronclient-6.12.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-neutronclient.spec ++++++
--- /var/tmp/diff_new_pack.tfilJF/_old 2019-05-03 22:41:32.883130493 +0200
+++ /var/tmp/diff_new_pack.tfilJF/_new 2019-05-03 22:41:32.883130493 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-neutronclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,17 +17,16 @@
Name: python-neutronclient
-Version: 6.9.1
+Version: 6.12.0
Release: 0
Summary: Python API and CLI for OpenStack Neutron
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/%{name}
-Source0: https://files.pythonhosted.org/packages/source/p/python-neutronclient/pytho…
+Source0: https://files.pythonhosted.org/packages/source/p/python-neutronclient/pytho…
# https://review.openstack.org/585387
# Needed for osprofiler==2.3.0
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-cliff >= 2.8.0
BuildRequires: python2-fixtures
BuildRequires: python2-keystoneauth1 >= 3.4.0
@@ -46,11 +45,10 @@
BuildRequires: python2-pbr >= 2.0.0
BuildRequires: python2-requests-mock
BuildRequires: python2-setuptools
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
BuildRequires: python3-cliff >= 2.8.0
-BuildRequires: python3-devel
BuildRequires: python3-fixtures
BuildRequires: python3-keystoneauth1 >= 3.4.0
BuildRequires: python3-keystoneclient >= 3.8.0
@@ -68,7 +66,7 @@
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-requests-mock
BuildRequires: python3-setuptools
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
Requires: python-Babel >= 2.3.4
@@ -116,14 +114,14 @@
%prep
%autosetup -p1 -n %{name}-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
# Build HTML docs and man page
-PBR_VERSION=6.9.1 sphinx-build -b html doc/source doc/build/html
-PBR_VERSION=6.9.1 sphinx-build -b man doc/source doc/build/man
+PBR_VERSION=6.12.0 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=6.12.0 sphinx-build -b man doc/source doc/build/man
+rm -r doc/build/html/.{doctrees,buildinfo}
%install
%{python_install}
@@ -136,9 +134,7 @@
%python_uninstall_alternative neutron
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.tfilJF/_old 2019-05-03 22:41:32.899130526 +0200
+++ /var/tmp/diff_new_pack.tfilJF/_new 2019-05-03 22:41:32.899130526 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-neutronclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-neutronclient/stable/roc…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-neutronclient/stable/ste…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-neutronclient</param>
</service>
++++++ python-neutronclient-6.9.1.tar.gz -> python-neutronclient-6.12.0.tar.gz ++++++
++++ 2445 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-muranoclient for openSUSE:Factory checked in at 2019-05-03 22:41:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-muranoclient (Old)
and /work/SRC/openSUSE:Factory/.python-muranoclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-muranoclient"
Fri May 3 22:41:27 2019 rev:7 rq:692840 version:1.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-muranoclient/python-muranoclient.changes 2018-09-07 15:38:00.990625522 +0200
+++ /work/SRC/openSUSE:Factory/.python-muranoclient.new.5148/python-muranoclient.changes 2019-05-03 22:41:29.335123023 +0200
@@ -1,0 +2,20 @@
+Mon Apr 8 12:22:59 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.2.0
+ - Imported Translations from Zanata
+ - Use standard cover tox env
+ - switch documentation job to new PTI
+ - Update py27-ocata to py27-queens
+ - Change openstack-dev to openstack-discuss
+ - Move legacy-muranoclient-dsvm-functional-mysql-backend job to muranoclient
+ - Update reno for stable/rocky
+ - Update min tox version to 2.0
+ - Remove PyPI downloads
+ - Remove the export pre_test_hook from murano repo
+ - add python 3.6 unit test job
+ - add python 3.7 unit test job
+ - import zuul job settings from project-config
+ - Use templates for cover and lower-constraints
+ - Add Python 3.6 classifier to setup.cfg
+
+-------------------------------------------------------------------
Old:
----
python-muranoclient-1.1.1.tar.gz
New:
----
python-muranoclient-1.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-muranoclient.spec ++++++
--- /var/tmp/diff_new_pack.SvCT5K/_old 2019-05-03 22:41:30.707125911 +0200
+++ /var/tmp/diff_new_pack.SvCT5K/_new 2019-05-03 22:41:30.727125954 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-muranoclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,12 +12,12 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-muranoclient
-Version: 1.1.1
+Version: 1.2.0
Release: 0
Summary: Python API and CLI for OpenStack Murano
License: Apache-2.0
@@ -26,7 +26,6 @@
Source0: https://files.pythonhosted.org/packages/source/p/%{name}/%{name}-%{version}…
BuildRequires: openstack-macros
BuildRequires: python-PrettyTable >= 0.7.2
-BuildRequires: python-devel
BuildRequires: python-fixtures
BuildRequires: python-glanceclient >= 2.8.0
BuildRequires: python-keystoneclient >= 3.8.0
@@ -82,13 +81,13 @@
%prep
%autosetup -n %{name}-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%py2_build
# Build HTML docs and man page
PBR_VERSION=%version sphinx-build -b html doc/source doc/build/html
+rm -r doc/build/html/.{doctrees,buildinfo}
%install
%py2_install
++++++ _service ++++++
--- /var/tmp/diff_new_pack.SvCT5K/_old 2019-05-03 22:41:30.979126484 +0200
+++ /var/tmp/diff_new_pack.SvCT5K/_new 2019-05-03 22:41:30.995126518 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-muranoclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-muranoclient/stable/rock…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-muranoclient/stable/stei…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-muranoclient</param>
</service>
++++++ python-muranoclient-1.1.1.tar.gz -> python-muranoclient-1.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/.zuul.yaml new/python-muranoclient-1.2.0/.zuul.yaml
--- old/python-muranoclient-1.1.1/.zuul.yaml 2018-07-25 18:02:07.000000000 +0200
+++ new/python-muranoclient-1.2.0/.zuul.yaml 2019-03-08 21:51:21.000000000 +0100
@@ -1,7 +1,32 @@
- project:
+ templates:
+ - openstack-cover-jobs
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - check-requirements
+ - release-notes-jobs-python3
+ - publish-openstack-docs-pti
+ - openstackclient-plugin-jobs
check:
jobs:
- - openstack-tox-lower-constraints
+ - muranoclient-functional-test-mysql-backend
gate:
jobs:
- - openstack-tox-lower-constraints
+ - muranoclient-functional-test-mysql-backend
+
+- job:
+ name: muranoclient-functional-test-mysql-backend
+ parent: legacy-dsvm-base
+ run: playbooks/legacy/muranoclient-functional-test-mysql-backend/run.yaml
+ post-run: playbooks/legacy/muranoclient-functional-test-mysql-backend/post.yaml
+ timeout: 4200
+ required-projects:
+ - openstack-infra/devstack-gate
+ - openstack/heat
+ - openstack/murano
+ - openstack/murano-dashboard
+ - openstack/python-heatclient
+ - openstack/python-muranoclient
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/AUTHORS new/python-muranoclient-1.2.0/AUTHORS
--- old/python-muranoclient-1.1.1/AUTHORS 2018-07-25 18:06:23.000000000 +0200
+++ new/python-muranoclient-1.2.0/AUTHORS 2019-03-08 21:53:25.000000000 +0100
@@ -1,3 +1,4 @@
+98k <18552437190(a)163.com>
Aaron-DH <dinghh(a)awcloud.com>
Alexander Koryagin <akoryagin(a)mirantis.com>
Alexander Shlykov <ashlykov(a)mirantis.com>
@@ -12,7 +13,9 @@
AvnishPal <avnish.pal(a)nectechnologies.in>
Bertrand Lallau <bertrand.lallau(a)gmail.com>
Cao Xuan Hoang <hoangcx(a)vn.fujitsu.com>
+Chen <dstbtgagt(a)foxmail.com>
Christian Berendt <berendt(a)b1-systems.de>
+Corey Bryant <corey.bryant(a)canonical.com>
Dai Dang Van <daidv(a)vn.fujitsu.com>
Dmitry Teselkin <dteselkin(a)mirantis.com>
Dmytro Dovbii <ddovbii(a)mirantis.com>
@@ -89,7 +92,6 @@
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
XiaojueGuan <guanalbertjone(a)gmail.com>
Yosef Hoffman <yh128t(a)att.com>
-Zuul <zuul(a)review.openstack.org>
bhagyashris <bhagyashri.shewale(a)nttdata.com>
bharaththiruveedula <bharath.thiruveedula(a)tcs.com>
chenaidong1 <chen.aidong(a)zte.com.cn>
@@ -97,6 +99,7 @@
gecong1973 <ge.cong(a)zte.com.cn>
howardlee <lihongweibj(a)inspur.com>
hparekh <hardik.parekh(a)nectechnologies.in>
+huang.zhiping <huang.zhiping(a)99cloud.net>
huangsm <huangsm(a)awcloud.com>
leizhang <lei.a.zhang(a)intel.com>
lidong <lidongbj(a)inspur.com>
@@ -107,6 +110,7 @@
malei <malei(a)maleideMacBook-Pro.local>
melissaml <ma.lei(a)99cloud.net>
pawnesh.kumar <pawnesh.kumar(a)nectechnologies.in>
+qingszhao <zhao.daqing(a)99cloud.net>
ricolin <rico.l(a)inwinstack.com>
ricolin <rico.lin(a)easystack.cn>
srushti <srushti.gadadare(a)nttdata.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/ChangeLog new/python-muranoclient-1.2.0/ChangeLog
--- old/python-muranoclient-1.1.1/ChangeLog 2018-07-25 18:06:23.000000000 +0200
+++ new/python-muranoclient-1.2.0/ChangeLog 2019-03-08 21:53:25.000000000 +0100
@@ -1,6 +1,24 @@
CHANGES
=======
+1.2.0
+-----
+
+* add python 3.7 unit test job
+* Change openstack-dev to openstack-discuss
+* Add Python 3.6 classifier to setup.cfg
+* Update min tox version to 2.0
+* Use standard cover tox env
+* Use templates for cover and lower-constraints
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Imported Translations from Zanata
+* Remove the export pre\_test\_hook from murano repo
+* Update py27-ocata to py27-queens
+* Move legacy-muranoclient-dsvm-functional-mysql-backend job to muranoclient
+* Update reno for stable/rocky
+
1.1.1
-----
@@ -10,6 +28,7 @@
1.1.0
-----
+* Remove PyPI downloads
* fix tox python3 overrides
* Trivial: update url to new url
* Ignore default values for deprecated security parameters
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/PKG-INFO new/python-muranoclient-1.2.0/PKG-INFO
--- old/python-muranoclient-1.1.1/PKG-INFO 2018-07-25 18:06:24.000000000 +0200
+++ new/python-muranoclient-1.2.0/PKG-INFO 2019-03-08 21:53:25.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-muranoclient
-Version: 1.1.1
+Version: 1.2.0
Summary: python-muranoclient
Home-page: https://docs.openstack.org/python-muranoclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: Apache License, Version 2.0
Description: ========================
Team and repository tags
@@ -22,10 +22,6 @@
:target: https://pypi.org/project/python-muranoclient/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/python-muranoclient.svg
- :target: https://pypi.org/project/python-muranoclient/
- :alt: Downloads
-
Murano Project introduces an application catalog, which allows application
developers and cloud administrators to publish various cloud-ready
applications in a browsable categorised catalog, which may be used by the
@@ -96,3 +92,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/README.rst new/python-muranoclient-1.2.0/README.rst
--- old/python-muranoclient-1.1.1/README.rst 2018-07-25 18:02:07.000000000 +0200
+++ new/python-muranoclient-1.2.0/README.rst 2019-03-08 21:51:21.000000000 +0100
@@ -14,10 +14,6 @@
:target: https://pypi.org/project/python-muranoclient/
:alt: Latest Version
-.. image:: https://img.shields.io/pypi/dm/python-muranoclient.svg
- :target: https://pypi.org/project/python-muranoclient/
- :alt: Downloads
-
Murano Project introduces an application catalog, which allows application
developers and cloud administrators to publish various cloud-ready
applications in a browsable categorised catalog, which may be used by the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/playbooks/legacy/muranoclient-functional-test-mysql-backend/post.yaml new/python-muranoclient-1.2.0/playbooks/legacy/muranoclient-functional-test-mysql-backend/post.yaml
--- old/python-muranoclient-1.1.1/playbooks/legacy/muranoclient-functional-test-mysql-backend/post.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-muranoclient-1.2.0/playbooks/legacy/muranoclient-functional-test-mysql-backend/post.yaml 2019-03-08 21:51:21.000000000 +0100
@@ -0,0 +1,80 @@
+- hosts: primary
+ tasks:
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=**/*nose_results.html
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=**/*testr_results.html.gz
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/.testrepository/tmp*
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=**/*testrepository.subunit.gz
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}/tox'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/.tox/*/log/*
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
+
+ - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
+ synchronize:
+ src: '{{ ansible_user_dir }}/workspace/'
+ dest: '{{ zuul.executor.log_root }}'
+ mode: pull
+ copy_links: true
+ verify_host: true
+ rsync_opts:
+ - --include=/logs/**
+ - --include=*/
+ - --exclude=*
+ - --prune-empty-dirs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/playbooks/legacy/muranoclient-functional-test-mysql-backend/run.yaml new/python-muranoclient-1.2.0/playbooks/legacy/muranoclient-functional-test-mysql-backend/run.yaml
--- old/python-muranoclient-1.1.1/playbooks/legacy/muranoclient-functional-test-mysql-backend/run.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-muranoclient-1.2.0/playbooks/legacy/muranoclient-functional-test-mysql-backend/run.yaml 2019-03-08 21:51:21.000000000 +0100
@@ -0,0 +1,67 @@
+- hosts: all
+ name: Autoconverted job legacy-muranoclient-dsvm-functional-mysql-backend from old
+ job gate-muranoclient-dsvm-functional-mysql-backend-ubuntu-xenial
+ tasks:
+
+ - name: Ensure legacy workspace directory
+ file:
+ path: '{{ ansible_user_dir }}/workspace'
+ state: directory
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ cat > clonemap.yaml << EOF
+ clonemap:
+ - name: openstack-infra/devstack-gate
+ dest: devstack-gate
+ EOF
+ /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
+ git://git.openstack.org \
+ openstack-infra/devstack-gate
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
+
+ - shell:
+ cmd: |
+ set -e
+ set -x
+ export PYTHONUNBUFFERED=true
+ export DEVSTACK_GATE_NEUTRON=1
+ export DEVSTACK_PROJECT_FROM_GIT=python-muranoclient
+ export BRANCH_OVERRIDE=default
+
+ export ENABLED_SERVICES=tempest
+ export PROJECTS="openstack/heat $PROJECTS"
+ export PROJECTS="openstack/python-heatclient $PROJECTS"
+ export PROJECTS="openstack/murano $PROJECTS"
+ export PROJECTS="openstack/murano-dashboard $PROJECTS"
+ export KEEP_LOCALRC=1
+
+ # Enable murano devstack plugin. Provided repo should be cloned by zuul before devstack run
+ # and below provided link should not be used.
+ export DEVSTACK_LOCAL_CONFIG="enable_plugin heat git://git.openstack.org/openstack/heat"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin murano git://git.openstack.org/openstack/murano"
+
+ if [ "mysql-backend" = "glare-backend" ]; then
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service g-glare"
+ export DEVSTACK_LOCAL_CONFIG+=$'\n'"MURANO_USE_GLARE=True"
+ fi
+
+ if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+ export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+ fi
+
+ function post_test_hook {
+ # Configure and run functional tests
+ /opt/stack/new/python-muranoclient/muranoclient/tests/functional/hooks/post_test_hook.sh
+ }
+ export -f post_test_hook
+
+ cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
+ ./safe-devstack-vm-gate-wrap.sh
+ executable: /bin/bash
+ chdir: '{{ ansible_user_dir }}/workspace'
+ environment: '{{ zuul | zuul_legacy_vars }}'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/python_muranoclient.egg-info/PKG-INFO new/python-muranoclient-1.2.0/python_muranoclient.egg-info/PKG-INFO
--- old/python-muranoclient-1.1.1/python_muranoclient.egg-info/PKG-INFO 2018-07-25 18:06:23.000000000 +0200
+++ new/python-muranoclient-1.2.0/python_muranoclient.egg-info/PKG-INFO 2019-03-08 21:53:25.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-muranoclient
-Version: 1.1.1
+Version: 1.2.0
Summary: python-muranoclient
Home-page: https://docs.openstack.org/python-muranoclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: Apache License, Version 2.0
Description: ========================
Team and repository tags
@@ -22,10 +22,6 @@
:target: https://pypi.org/project/python-muranoclient/
:alt: Latest Version
- .. image:: https://img.shields.io/pypi/dm/python-muranoclient.svg
- :target: https://pypi.org/project/python-muranoclient/
- :alt: Downloads
-
Murano Project introduces an application catalog, which allows application
developers and cloud administrators to publish various cloud-ready
applications in a browsable categorised catalog, which may be used by the
@@ -96,3 +92,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/python_muranoclient.egg-info/SOURCES.txt new/python-muranoclient-1.2.0/python_muranoclient.egg-info/SOURCES.txt
--- old/python-muranoclient-1.1.1/python_muranoclient.egg-info/SOURCES.txt 2018-07-25 18:06:24.000000000 +0200
+++ new/python-muranoclient-1.2.0/python_muranoclient.egg-info/SOURCES.txt 2019-03-08 21:53:25.000000000 +0100
@@ -120,6 +120,8 @@
muranoclient/v1/package_creator/__init__.py
muranoclient/v1/package_creator/hot_package.py
muranoclient/v1/package_creator/mpl_package.py
+playbooks/legacy/muranoclient-functional-test-mysql-backend/post.yaml
+playbooks/legacy/muranoclient-functional-test-mysql-backend/run.yaml
python_muranoclient.egg-info/PKG-INFO
python_muranoclient.egg-info/SOURCES.txt
python_muranoclient.egg-info/dependency_links.txt
@@ -167,12 +169,12 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
-tools/cover.sh
tools/install_venv.py
tools/install_venv_common.py
tools/murano.bash_completion
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/python_muranoclient.egg-info/pbr.json new/python-muranoclient-1.2.0/python_muranoclient.egg-info/pbr.json
--- old/python-muranoclient-1.1.1/python_muranoclient.egg-info/pbr.json 2018-07-25 18:06:23.000000000 +0200
+++ new/python-muranoclient-1.2.0/python_muranoclient.egg-info/pbr.json 2019-03-08 21:53:25.000000000 +0100
@@ -1 +1 @@
-{"git_version": "70b4392", "is_release": true}
\ No newline at end of file
+{"git_version": "ed7a0ee", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/releasenotes/source/index.rst new/python-muranoclient-1.2.0/releasenotes/source/index.rst
--- old/python-muranoclient-1.1.1/releasenotes/source/index.rst 2018-07-25 18:02:07.000000000 +0200
+++ new/python-muranoclient-1.2.0/releasenotes/source/index.rst 2019-03-08 21:51:21.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 2
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po new/python-muranoclient-1.2.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
--- old/python-muranoclient-1.1.1/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2018-07-25 18:02:07.000000000 +0200
+++ new/python-muranoclient-1.2.0/releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po 2019-03-08 21:51:21.000000000 +0100
@@ -2,13 +2,13 @@
# Andi Chandler <andi(a)gowling.com>, 2018. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: Murano Client Release Notes\n"
+"Project-Id-Version: python-muranoclient\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-30 01:30+0000\n"
+"POT-Creation-Date: 2018-08-08 06:14+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"PO-Revision-Date: 2018-01-27 01:13+0000\n"
+"PO-Revision-Date: 2018-08-09 08:51+0000\n"
"Last-Translator: Andi Chandler <andi(a)gowling.com>\n"
"Language-Team: English (United Kingdom)\n"
"Language: en_GB\n"
@@ -280,6 +280,9 @@
msgid "Queens Series Release Notes"
msgstr "Queens Series Release Notes"
+msgid "Rocky Series Release Notes"
+msgstr "Rocky Series Release Notes"
+
msgid "Security Issues"
msgstr "Security Issues"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/releasenotes/source/rocky.rst new/python-muranoclient-1.2.0/releasenotes/source/rocky.rst
--- old/python-muranoclient-1.1.1/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-muranoclient-1.2.0/releasenotes/source/rocky.rst 2019-03-08 21:51:21.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/setup.cfg new/python-muranoclient-1.2.0/setup.cfg
--- old/python-muranoclient-1.1.1/setup.cfg 2018-07-25 18:06:24.000000000 +0200
+++ new/python-muranoclient-1.2.0/setup.cfg 2019-03-08 21:53:25.000000000 +0100
@@ -5,7 +5,7 @@
README.rst
license = Apache License, Version 2.0
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/python-muranoclient/latest/
classifier =
Development Status :: 4 - Beta
@@ -21,6 +21,7 @@
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/tools/cover.sh new/python-muranoclient-1.2.0/tools/cover.sh
--- old/python-muranoclient-1.1.1/tools/cover.sh 2018-07-25 18:02:07.000000000 +0200
+++ new/python-muranoclient-1.2.0/tools/cover.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,87 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016: Mirantis Inc.
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-ALLOWED_EXTRA_MISSING=4
-
-show_diff () {
- head -1 $1
- diff -U 0 $1 $2 | sed 1,2d
-}
-
-# Stash uncommitted changes, checkout master and save coverage report
-uncommitted=$(git status --porcelain | grep -v "^??")
-[[ -n $uncommitted ]] && git stash > /dev/null
-git checkout HEAD^
-
-baseline_report=$(mktemp -t muranoclient_coverageXXXXXXX)
-find . -type f -name "*.pyc" -delete
-stestr run '{posargs}'
-coverage combine
-coverage html -d cover
-coverage xml -o cover/coverage.xml
-coverage report > $baseline_report
-baseline_missing=$(awk 'END { print $3 }' $baseline_report)
-
-# Checkout back and unstash uncommitted changes (if any)
-git checkout -
-[[ -n $uncommitted ]] && git stash pop > /dev/null
-
-# Generate and save coverage report
-current_report=$(mktemp -t muranoclient_coverageXXXXXXX)
-find . -type f -name "*.pyc" -delete
-stestr run '{posargs}'
-coverage combine
-coverage html -d cover
-coverage xml -o cover/coverage.xml
-coverage report > $current_report
-current_missing=$(awk 'END { print $3 }' $current_report)
-
-baseline_percentage=$(awk 'END { print $4 }' $baseline_report)
-current_percentage=$(awk 'END { print $4 }' $current_report)
-# Show coverage details
-allowed_missing=$((baseline_missing+ALLOWED_EXTRA_MISSING))
-
-echo "Baseline report:"
-echo "$(cat ${baseline_report})"
-echo "Proposed change report:"
-echo "$(cat ${current_report})"
-echo ""
-echo ""
-echo "Allowed to introduce missing lines : ${ALLOWED_EXTRA_MISSING}"
-echo "Missing lines in master : ${baseline_missing}"
-echo "Missing lines in proposed change : ${current_missing}"
-echo "Current percentage : ${baseline_percentage}"
-echo "Proposed change percentage : ${current_percentage}"
-
-if [ $allowed_missing -gt $current_missing ];
-then
- if [ $baseline_missing -lt $current_missing ];
- then
- show_diff $baseline_report $current_report
- echo "I believe you can cover all your code with 100% coverage!"
- else
- echo "Thank you! You are awesome! Keep writing unit tests! :)"
- fi
- exit_code=0
-else
- show_diff $baseline_report $current_report
- echo "Please write more unit tests, we should keep our test coverage :( "
- exit_code=1
-fi
-
-rm $baseline_report $current_report
-exit $exit_code
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-muranoclient-1.1.1/tox.ini new/python-muranoclient-1.2.0/tox.ini
--- old/python-muranoclient-1.1.1/tox.ini 2018-07-25 18:02:07.000000000 +0200
+++ new/python-muranoclient-1.2.0/tox.ini 2019-03-08 21:51:21.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
envlist = py35,py27,pep8,docs
-minversion = 1.6
+minversion = 2.0
skipsdist = True
[testenv]
@@ -20,9 +20,10 @@
basepython = python3
commands = flake8 {posargs}
-[testenv:py27-mitaka]
-install_command = pip install -U {opts} {packages}
- {toxinidir}/tools/tox_install.sh https://git.openstack.org/cgit/openstack/requirements/plain/upper-constrain… {opts} {packages}
+[testenv:py27-queens]
+install_command = pip install -chttps://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/queens {opts} {packages}
+deps = -r{toxinidir}/requirements.txt
+ -r{toxinidir}/test-requirements.txt
[testenv:venv]
basepython = python3
@@ -39,7 +40,14 @@
[testenv:cover]
basepython = python3
-commands = {toxinidir}/tools/cover.sh {posargs}
+setenv =
+ {[testenv]setenv}
+ PYTHON=coverage run --source muranoclient --parallel-mode
+commands =
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
[testenv:debug]
basepython = python3
1
0
Hello community,
here is the log from the commit of package python-monascaclient for openSUSE:Factory checked in at 2019-05-03 22:41:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-monascaclient (Old)
and /work/SRC/openSUSE:Factory/.python-monascaclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-monascaclient"
Fri May 3 22:41:24 2019 rev:8 rq:692839 version:1.14.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-monascaclient/python-monascaclient.changes 2018-09-07 15:36:02.258756279 +0200
+++ /work/SRC/openSUSE:Factory/.python-monascaclient.new.5148/python-monascaclient.changes 2019-05-03 22:41:26.627117321 +0200
@@ -1,0 +2,22 @@
+Mon Apr 8 12:11:25 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.14.0
+ - Update hacking version
+ - Add using requirements.txt to tox tests run
+ - Use templates for docs, cover and lower-constraints
+ - Add Python 3.6 classifier to setup.cfg
+ - Remove setup.py check from pep8 job
+ - Change openstack-dev to openstack-discuss
+ - Update json module to jsonutils
+ - Return status from running command
+ - Update reno for stable/rocky
+ - fix tox python3 overrides
+ - Don't quote {posargs} in tox.ini
+ - switch documentation job to new PTI
+ - Add python 3.6 unit test job
+ - add python 3.6 unit test job
+ - Fix alarm-definition-list in Python 3
+ - add python 3.7 unit test job
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
python-monascaclient-1.12.1.tar.gz
New:
----
python-monascaclient-1.14.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-monascaclient.spec ++++++
--- /var/tmp/diff_new_pack.GdnEzF/_old 2019-05-03 22:41:27.939120084 +0200
+++ /var/tmp/diff_new_pack.GdnEzF/_new 2019-05-03 22:41:27.971120151 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-monascaclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,20 +12,19 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-monascaclient
-Version: 1.12.1
+Version: 1.14.0
Release: 0
Summary: Python API and CLI for OpenStack Monasca
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-monascaclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-monascaclient/pytho…
+Source0: https://files.pythonhosted.org/packages/source/p/python-monascaclient/pytho…
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-PrettyTable >= 0.7.2
BuildRequires: python2-PyYAML >= 3.12
BuildRequires: python2-fixtures
@@ -49,7 +48,6 @@
BuildRequires: python2-testtools
BuildRequires: python3-PrettyTable >= 0.7.2
BuildRequires: python3-PyYAML >= 3.12
-BuildRequires: python3-devel
BuildRequires: python3-fixtures
BuildRequires: python3-keystoneclient
BuildRequires: python3-mock
@@ -102,7 +100,7 @@
The Monasca Client was written using the OpenStack Heat Python client as a framework.
%prep
-%autosetup -p1 -n python-monascaclient-1.12.1
+%autosetup -p1 -n python-monascaclient-1.14.0
%py_req_cleanup
%build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.GdnEzF/_old 2019-05-03 22:41:28.307120858 +0200
+++ /var/tmp/diff_new_pack.GdnEzF/_new 2019-05-03 22:41:28.323120892 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-monascaclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-monascaclient/stable/roc…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-monascaclient/stable/ste…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-monascaclient</param>
</service>
++++++ python-monascaclient-1.12.1.tar.gz -> python-monascaclient-1.14.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/.zuul.yaml new/python-monascaclient-1.14.0/.zuul.yaml
--- old/python-monascaclient-1.12.1/.zuul.yaml 2018-07-24 19:05:15.000000000 +0200
+++ new/python-monascaclient-1.14.0/.zuul.yaml 2019-03-07 11:18:40.000000000 +0100
@@ -1,7 +1,11 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - openstack-cover-jobs
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - publish-openstack-docs-pti
+ - check-requirements
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/AUTHORS new/python-monascaclient-1.14.0/AUTHORS
--- old/python-monascaclient-1.12.1/AUTHORS 2018-07-24 19:09:01.000000000 +0200
+++ new/python-monascaclient-1.14.0/AUTHORS 2019-03-07 11:21:51.000000000 +0100
@@ -1,3 +1,5 @@
+98k <18552437190(a)163.com>
+Adrian Czarnecki <adrian.czarnecki(a)ts.fujitsu.com>
Amir Mofakhar <amofakhar(a)op5.com>
Andreas Jaeger <aj(a)suse.com>
Angelo Mendonca <angelomendonca(a)gmail.com>
@@ -7,6 +9,7 @@
Charles Short <zulcss(a)gmail.com>
Christian Berendt <berendt(a)b1-systems.de>
Cindy O Neill <cindy.o-neill(a)hp.com>
+Corey Bryant <corey.bryant(a)canonical.com>
Craig Bryant <craig.bryant(a)hp.com>
Craig Bryant <craig.bryant(a)hpe.com>
Dao Cong Tien <tiendc(a)vn.fujitsu.com>
@@ -14,7 +17,9 @@
Denis Poisson <denis.poisson(a)ts.fujitsu.com>
Dexter Fryar <dexter.fryar(a)outlook.com>
Dirk Mueller <dirk(a)dmllr.de>
+Dobroslaw Zybort <dobroslaw.zybort(a)ts.fujitsu.com>
Doug Hellmann <doug(a)doughellmann.com>
+Doug Szumski <doug(a)stackhpc.com>
Eyal <eyal.bar-ilan(a)nokia.com>
Flavio Percoco <flaper87(a)gmail.com>
Haiwei Xu <xu-haiwei(a)mxw.nes.nec.co.jp>
@@ -31,6 +36,7 @@
Luong Anh Tuan <tuanla(a)vn.fujitsu.com>
Mark Reynolds <mark.reynolds2(a)hp.com>
Michael James Hoppal <michael.jam.hoppal(a)hp.com>
+Nguyen Hai Truong <truongnh(a)vn.fujitsu.com>
Nguyen Tuong Thanh <thanhnt(a)vn.fujitsu.com>
Ondřej Nový <ondrej.novy(a)firma.seznam.cz>
OpenStack Release Bot <infra-root(a)openstack.org>
@@ -53,11 +59,13 @@
Tomasz Trębski <tomasz.trebski(a)ts.fujitsu.com>
Tony Breeds <tony(a)bakeyournoodle.com>
Victor Ion Munteanu <victor.munteanu(a)equillon.ro>
+Vieri <15050873171(a)163.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Witold Bedyk <witold.bedyk(a)est.fujitsu.com>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
-Zuul <zuul(a)review.openstack.org>
+ZhijunWei <wzj334965317(a)outlook.com>
bklei <bradley.klein(a)twcable.com>
+cao.yuan <cao.yuan(a)99cloud.net>
cindy oneill <cindy.o-neill(a)hp.com>
gecong1973 <ge.cong(a)zte.com.cn>
gengchc2 <geng.changcai2(a)zte.com.cn>
@@ -69,6 +77,7 @@
lingyongxu <lyxu(a)fiberhome.com>
melissaml <ma.lei(a)99cloud.net>
oneilcin <oneilcin(a)users.noreply.github.com>
+qingszhao <zhao.daqing(a)99cloud.net>
rajat29 <rajat.sharma(a)nectechnologies.in>
ricolin <rico.lin(a)easystack.cn>
venkatamahesh <venkatamaheshkotha(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/ChangeLog new/python-monascaclient-1.14.0/ChangeLog
--- old/python-monascaclient-1.12.1/ChangeLog 2018-07-24 19:09:01.000000000 +0200
+++ new/python-monascaclient-1.14.0/ChangeLog 2019-03-07 11:21:51.000000000 +0100
@@ -1,6 +1,31 @@
CHANGES
=======
+1.14.0
+------
+
+* Update hacking version
+* Update json module to jsonutils
+* add python 3.7 unit test job
+
+1.13.0
+------
+
+* Fix alarm-definition-list in Python 3
+* Return status from running command
+* Change openstack-dev to openstack-discuss
+* Add Python 3.6 classifier to setup.cfg
+* Add python 3.6 unit test job
+* Remove setup.py check from pep8 job
+* Don't quote {posargs} in tox.ini
+* fix tox python3 overrides
+* Use templates for docs, cover and lower-constraints
+* Add using requirements.txt to tox tests run
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+
1.12.1
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/HACKING.rst new/python-monascaclient-1.14.0/HACKING.rst
--- old/python-monascaclient-1.12.1/HACKING.rst 2018-07-24 19:05:15.000000000 +0200
+++ new/python-monascaclient-1.14.0/HACKING.rst 2019-03-07 11:18:40.000000000 +0100
@@ -1,4 +1,4 @@
python-monascaclient Style Commandments
-===============================================
+=======================================
Read the OpenStack Style Commandments http://docs.openstack.org/hacking/latest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/PKG-INFO new/python-monascaclient-1.14.0/PKG-INFO
--- old/python-monascaclient-1.12.1/PKG-INFO 2018-07-24 19:09:02.000000000 +0200
+++ new/python-monascaclient-1.14.0/PKG-INFO 2019-03-07 11:21:51.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-monascaclient
-Version: 1.12.1
+Version: 1.14.0
Summary: Monasca API Client Library
Home-page: https://docs.openstack.org/python-monascaclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -49,3 +49,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/RELEASENOTES.rst new/python-monascaclient-1.14.0/RELEASENOTES.rst
--- old/python-monascaclient-1.12.1/RELEASENOTES.rst 2018-07-24 19:09:02.000000000 +0200
+++ new/python-monascaclient-1.14.0/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-====================
-python-monascaclient
-====================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/lower-constraints.txt new/python-monascaclient-1.14.0/lower-constraints.txt
--- old/python-monascaclient-1.12.1/lower-constraints.txt 2018-07-24 19:05:15.000000000 +0200
+++ new/python-monascaclient-1.14.0/lower-constraints.txt 2019-03-07 11:18:40.000000000 +0100
@@ -19,7 +19,7 @@
future==0.16.0
gitdb==0.6.4
GitPython==1.0.1
-hacking==0.12.0
+hacking==1.1.0
imagesize==0.7.1
iso8601==0.1.11
Jinja2==2.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/monascaclient/common/utils.py new/python-monascaclient-1.14.0/monascaclient/common/utils.py
--- old/python-monascaclient-1.12.1/monascaclient/common/utils.py 2018-07-24 19:05:15.000000000 +0200
+++ new/python-monascaclient-1.14.0/monascaclient/common/utils.py 2019-03-07 11:18:40.000000000 +0100
@@ -78,7 +78,7 @@
caching=False, print_empty=False)
pt.align = 'l'
- for field in d.keys():
+ for field in d:
if field in formatters:
pt.add_row([field, formatters[field](d[field])])
else:
@@ -198,4 +198,4 @@
else:
key = k
string_list.append(key)
- return '\n'.join(string_list)
+ return b'\n'.join(string_list)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/monascaclient/shell.py new/python-monascaclient-1.14.0/monascaclient/shell.py
--- old/python-monascaclient-1.12.1/monascaclient/shell.py 2018-07-24 19:05:15.000000000 +0200
+++ new/python-monascaclient-1.14.0/monascaclient/shell.py 2019-03-07 11:18:40.000000000 +0100
@@ -106,7 +106,7 @@
encoding = locale.getpreferredencoding()
if encoding:
args = map(lambda arg: arg.decode(encoding), args)
- MonascaShell().run(args)
+ return MonascaShell().run(args)
except Exception as e:
if '--debug' in args or '-d' in args:
raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/monascaclient/tests/v2_0/shell/test_alarm_definitions.py new/python-monascaclient-1.14.0/monascaclient/tests/v2_0/shell/test_alarm_definitions.py
--- old/python-monascaclient-1.12.1/monascaclient/tests/v2_0/shell/test_alarm_definitions.py 2018-07-24 19:05:15.000000000 +0200
+++ new/python-monascaclient-1.14.0/monascaclient/tests/v2_0/shell/test_alarm_definitions.py 2019-03-07 11:18:40.000000000 +0100
@@ -72,6 +72,37 @@
)
@mock.patch('monascaclient.osc.migration.make_client')
+ def test_alarm_definitions_list(self, mc):
+ mc.return_value = c = FakeV2Client()
+
+ c.alarm_definitions.list.return_value = [{
+ "name": "ntp_sync_check",
+ "id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
+ "expression": "(max(ntp.offset{}, deterministic)>=1)",
+ "match_by": ['hostname'],
+ "description": "NTP time sync check",
+ "actions_enabled": True,
+ "deterministic": True,
+ "alarm_actions": ['aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'],
+ "ok_actions": [],
+ "undetermined_actions": [],
+ "severity": "HIGH",
+ }]
+
+ name, cmd_class = migr.create_command_class(
+ 'do_alarm_definition_list',
+ shell
+ )
+ cmd = cmd_class(mock.Mock(), mock.Mock())
+
+ parser = cmd.get_parser(name)
+ raw_args = []
+ parsed_args = parser.parse_args(raw_args)
+ cmd.run(parsed_args)
+
+ c.alarm_definitions.list.assert_called_once()
+
+ @mock.patch('monascaclient.osc.migration.make_client')
def test_should_patch_name(self, mc):
ad_id = '0495340b-58fd-4e1c-932b-5e6f9cc96490'
ad_name = 'patch_name'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/monascaclient/v2_0/__init__.py new/python-monascaclient-1.14.0/monascaclient/v2_0/__init__.py
--- old/python-monascaclient-1.12.1/monascaclient/v2_0/__init__.py 2018-07-24 19:05:15.000000000 +0200
+++ new/python-monascaclient-1.14.0/monascaclient/v2_0/__init__.py 2019-03-07 11:18:40.000000000 +0100
@@ -13,6 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-__all__ = ['Client']
-
from monascaclient.v2_0.client import Client
+
+__all__ = ['Client']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/monascaclient/v2_0/shell.py new/python-monascaclient-1.14.0/monascaclient/v2_0/shell.py
--- old/python-monascaclient-1.12.1/monascaclient/v2_0/shell.py 2018-07-24 19:05:15.000000000 +0200
+++ new/python-monascaclient-1.14.0/monascaclient/v2_0/shell.py 2019-03-07 11:18:40.000000000 +0100
@@ -15,7 +15,6 @@
# limitations under the License.
import datetime
-import json
import numbers
import time
@@ -91,7 +90,7 @@
@utils.arg('jsonbody', metavar='<JSON_BODY>',
- type=json.loads,
+ type=jsonutils.loads,
help='The raw JSON body in single quotes. See api doc.')
def do_metric_create_raw(mc, args):
'''Create metric from raw json body.'''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/python_monascaclient.egg-info/PKG-INFO new/python-monascaclient-1.14.0/python_monascaclient.egg-info/PKG-INFO
--- old/python-monascaclient-1.12.1/python_monascaclient.egg-info/PKG-INFO 2018-07-24 19:09:01.000000000 +0200
+++ new/python-monascaclient-1.14.0/python_monascaclient.egg-info/PKG-INFO 2019-03-07 11:21:51.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-monascaclient
-Version: 1.12.1
+Version: 1.14.0
Summary: Monasca API Client Library
Home-page: https://docs.openstack.org/python-monascaclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -49,3 +49,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/python_monascaclient.egg-info/SOURCES.txt new/python-monascaclient-1.14.0/python_monascaclient.egg-info/SOURCES.txt
--- old/python-monascaclient-1.12.1/python_monascaclient.egg-info/SOURCES.txt 2018-07-24 19:09:02.000000000 +0200
+++ new/python-monascaclient-1.14.0/python_monascaclient.egg-info/SOURCES.txt 2019-03-07 11:21:51.000000000 +0100
@@ -60,4 +60,5 @@
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/python_monascaclient.egg-info/pbr.json new/python-monascaclient-1.14.0/python_monascaclient.egg-info/pbr.json
--- old/python-monascaclient-1.12.1/python_monascaclient.egg-info/pbr.json 2018-07-24 19:09:01.000000000 +0200
+++ new/python-monascaclient-1.14.0/python_monascaclient.egg-info/pbr.json 2019-03-07 11:21:51.000000000 +0100
@@ -1 +1 @@
-{"git_version": "acb6a58", "is_release": true}
\ No newline at end of file
+{"git_version": "a1d50c6", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/releasenotes/notes/reno.cache new/python-monascaclient-1.14.0/releasenotes/notes/reno.cache
--- old/python-monascaclient-1.12.1/releasenotes/notes/reno.cache 2018-07-24 19:09:02.000000000 +0200
+++ new/python-monascaclient-1.14.0/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/releasenotes/source/index.rst new/python-monascaclient-1.14.0/releasenotes/source/index.rst
--- old/python-monascaclient-1.12.1/releasenotes/source/index.rst 2018-07-24 19:05:15.000000000 +0200
+++ new/python-monascaclient-1.14.0/releasenotes/source/index.rst 2019-03-07 11:18:40.000000000 +0100
@@ -8,4 +8,5 @@
:maxdepth: 1
unreleased
+ rocky
queens
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/releasenotes/source/rocky.rst new/python-monascaclient-1.14.0/releasenotes/source/rocky.rst
--- old/python-monascaclient-1.12.1/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-monascaclient-1.14.0/releasenotes/source/rocky.rst 2019-03-07 11:18:40.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/setup.cfg new/python-monascaclient-1.14.0/setup.cfg
--- old/python-monascaclient-1.12.1/setup.cfg 2018-07-24 19:09:02.000000000 +0200
+++ new/python-monascaclient-1.14.0/setup.cfg 2019-03-07 11:21:51.000000000 +0100
@@ -3,7 +3,7 @@
summary = Monasca API Client Library
description-file = README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/python-monascaclient/latest/
classifier =
Environment :: Console
@@ -16,6 +16,7 @@
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
[files]
packages = monascaclient
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/test-requirements.txt new/python-monascaclient-1.14.0/test-requirements.txt
--- old/python-monascaclient-1.12.1/test-requirements.txt 2018-07-24 19:05:15.000000000 +0200
+++ new/python-monascaclient-1.14.0/test-requirements.txt 2019-03-07 11:18:40.000000000 +0100
@@ -2,7 +2,7 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
bandit>=1.1.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-monascaclient-1.12.1/tox.ini new/python-monascaclient-1.14.0/tox.ini
--- old/python-monascaclient-1.12.1/tox.ini 2018-07-24 19:05:38.000000000 +0200
+++ new/python-monascaclient-1.14.0/tox.ini 2019-03-07 11:18:40.000000000 +0100
@@ -1,5 +1,5 @@
[tox]
-envlist = py{27,35},pypy,cover,pep8
+envlist = py{27,35,36},pypy,cover,pep8
minversion = 2.5
skipsdist = True
@@ -15,6 +15,7 @@
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/test-requirements.txt
+ -r{toxinidir}/requirements.txt
whitelist_externals = bash
find
rm
@@ -23,12 +24,12 @@
stestr run {posargs}
[testenv:cover]
-basepython = python2.7
+basepython = python3
setenv =
PYTHON=coverage run --source monascaclient --parallel-mode
commands =
coverage erase
- stestr run '{posargs}'
+ stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
@@ -46,7 +47,6 @@
{[testenv:flake8]commands}
{[testenv:bandit]commands}
{[testenv:checkniceness]commands}
- python setup.py check --restructuredtext --strict
[testenv:flake8]
basepython = python3
1
0
Hello community,
here is the log from the commit of package python-mistralclient for openSUSE:Factory checked in at 2019-05-03 22:41:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-mistralclient (Old)
and /work/SRC/openSUSE:Factory/.python-mistralclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-mistralclient"
Fri May 3 22:41:20 2019 rev:8 rq:692838 version:3.8.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-mistralclient/python-mistralclient.changes 2018-09-07 15:37:59.906626687 +0200
+++ /work/SRC/openSUSE:Factory/.python-mistralclient.new.5148/python-mistralclient.changes 2019-05-03 22:41:23.099109894 +0200
@@ -1,0 +2,29 @@
+Mon Apr 8 12:13:15 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.8.0
+ - switch documentation job to new PTI
+ - Remove tripleo newton and ocata jobs
+ - Use template for lower-constraints
+ - import zuul job settings from project-config
+ - Fix execution report printing
+ - Change openstack-dev to openstack-discuss
+ - Update reno for stable/rocky
+ - Update min tox version to 2.0
+ - add python 3.6 unit test job
+ - Replace tripleo-scenario003-multinode with scenario003-standalone
+ - fix mistral client failure
+ - Migrate python-mistralclient jobs to Zuul v3
+ - Add Python 3.6 classifier to setup.cfg
+ - Update links in README
+ - Fix Chinese quotes
+ - Follow the new PTI for document build
+ - Provide consistent options and return latest execution entries
+ - Add 'execution-get-report' command
+ - Can't pause a async action using cli
+ - Release note for the "execution-get-report" command
+ - Remove setup.py check from pep8 job
+ - Add namespace support for workbooks to client
+ - Update hacking version
+ - add python 3.7 unit test job
+
+-------------------------------------------------------------------
Old:
----
python-mistralclient-3.7.0.tar.gz
New:
----
python-mistralclient-3.8.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-mistralclient.spec ++++++
--- /var/tmp/diff_new_pack.tIIIZy/_old 2019-05-03 22:41:24.239112294 +0200
+++ /var/tmp/diff_new_pack.tIIIZy/_new 2019-05-03 22:41:24.279112378 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-mistralclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,12 +12,12 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-mistralclient
-Version: 3.7.0
+Version: 3.8.0
Release: 0
Summary: Python API and CLI for OpenStack Mistral
License: Apache-2.0
@@ -26,7 +26,6 @@
Source0: https://files.pythonhosted.org/packages/source/p/%{name}/%{name}-%{version}…
BuildRequires: openstack-macros
BuildRequires: python-PyYAML >= 3.12
-BuildRequires: python-devel
BuildRequires: python-fixtures
BuildRequires: python-mock
BuildRequires: python-nose
@@ -60,6 +59,7 @@
Group: Documentation/HTML
BuildRequires: python-Sphinx
BuildRequires: python-openstackdocstheme
+BuildRequires: python-sphinxcontrib-apidoc
%description doc
Client library for Mistral built on the Mistral API. It provides a Python API
@@ -69,14 +69,14 @@
%prep
%autosetup -p1 -n %{name}-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%py2_build
# Build HTML docs and man page
-%{__python2} setup.py build_sphinx -b man
-rm -rf html/.{doctrees,buildinfo}
+PBR_VERSION=%{version} sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=%{version} sphinx-build -b man doc/source doc/build/man
+rm -r doc/build/html/.{doctrees,buildinfo}
%install
%py2_install
++++++ _service ++++++
--- /var/tmp/diff_new_pack.tIIIZy/_old 2019-05-03 22:41:24.571112993 +0200
+++ /var/tmp/diff_new_pack.tIIIZy/_new 2019-05-03 22:41:24.583113018 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/pyth…</param>
+ <param name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/pyth…</param>
<param name="output-name">python-mistralclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-mistralclient/stable/roc…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-mistralclient/stable/ste…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-mistralclient</param>
++++++ python-mistralclient-3.7.0.tar.gz -> python-mistralclient-3.8.0.tar.gz ++++++
++++ 9321 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-microversion_parse for openSUSE:Factory checked in at 2019-05-03 22:41:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-microversion_parse (Old)
and /work/SRC/openSUSE:Factory/.python-microversion_parse.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-microversion_parse"
Fri May 3 22:41:17 2019 rev:2 rq:692837 version:0.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-microversion_parse/python-microversion_parse.changes 2018-09-05 13:49:05.726311986 +0200
+++ /work/SRC/openSUSE:Factory/.python-microversion_parse.new.5148/python-microversion_parse.changes 2019-05-03 22:41:18.751100740 +0200
@@ -1,0 +2,5 @@
+Mon Apr 8 14:01:03 UTC 2019 - Dirk Mueller <dmueller(a)suse.com>
+
+- switch to stable/stein template
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-microversion_parse.spec ++++++
--- /var/tmp/diff_new_pack.jJcuFI/_old 2019-05-03 22:41:19.387102079 +0200
+++ /var/tmp/diff_new_pack.jJcuFI/_new 2019-05-03 22:41:19.387102079 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-microversion_parse
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -26,7 +26,6 @@
Source0: https://files.pythonhosted.org/packages/source/m/microversion_parse/microve…
BuildRequires: openstack-macros
BuildRequires: python-WebOb >= 1.2.3
-BuildRequires: python-devel
BuildRequires: python-gabbi
BuildRequires: python-setuptools
BuildRequires: python-stestr
++++++ _service ++++++
--- /var/tmp/diff_new_pack.jJcuFI/_old 2019-05-03 22:41:19.415102138 +0200
+++ /var/tmp/diff_new_pack.jJcuFI/_new 2019-05-03 22:41:19.415102138 +0200
@@ -1,6 +1,6 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-microversion_parse.spec</param>
<param name="requirements">https://raw.githubusercontent.com/openstack/microversion-parse/master/requi…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
1
0
Hello community,
here is the log from the commit of package python-masakariclient for openSUSE:Factory checked in at 2019-05-03 22:41:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-masakariclient (Old)
and /work/SRC/openSUSE:Factory/.python-masakariclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-masakariclient"
Fri May 3 22:41:13 2019 rev:5 rq:692836 version:5.4.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-masakariclient/python-masakariclient.changes 2018-09-07 15:37:53.482633589 +0200
+++ /work/SRC/openSUSE:Factory/.python-masakariclient.new.5148/python-masakariclient.changes 2019-05-03 22:41:15.851094634 +0200
@@ -1,0 +2,19 @@
+Mon Apr 8 12:19:25 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 5.4.0
+ - Add --os-interface and --os-region-name options
+ - Update the hacking to latest
+ - Update the outdated URL in HACKING.rst
+ - Add Python 3.6 classifier to setup.cfg
+ - Run all jobs by default using python3
+ - Fix osc command issue
+ - Change openstack-dev to openstack-discuss
+ - Add api_version support
+ - Update reno for stable/rocky
+ - Display progress_details of the notification
+ - Use template for lower-constraints
+ - Delete segment and host shouldn't ignore not found error
+ - Deprecate masakari CLI
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
python-masakariclient-5.2.0.tar.gz
New:
----
python-masakariclient-5.4.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-masakariclient.spec ++++++
--- /var/tmp/diff_new_pack.2HL0PP/_old 2019-05-03 22:41:16.359095704 +0200
+++ /var/tmp/diff_new_pack.2HL0PP/_new 2019-05-03 22:41:16.359095704 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-masakariclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,13 +12,13 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global sname python-masakariclient
Name: python-masakariclient
-Version: 5.2.0
+Version: 5.4.0
Release: 0
Summary: Python API and CLI for OpenStack Masakari
License: Apache-2.0
@@ -33,7 +33,6 @@
BuildRequires: python-osc-lib >= 1.8.0
BuildRequires: python-oslo.serialization >= 2.18.0
BuildRequires: python-oslo.utils
-BuildRequires: python-oslosphinx
BuildRequires: python-oslotest
BuildRequires: python-python-subunit
BuildRequires: python-reno
@@ -58,6 +57,7 @@
Group: Documentation/HTML
BuildRequires: python-Sphinx
BuildRequires: python-oslosphinx
+BuildRequires: python-sphinxcontrib-apidoc
%description doc
Client library for Masakari built on the Masakari API. It provides a Python API
@@ -72,8 +72,9 @@
%py2_build
# Build HTML docs and man page
-%{__python2} setup.py build_sphinx --builder=html,man
-rm -rf html/.{doctrees,buildinfo}
+PBR_VERSION=%{version} sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=%{version} sphinx-build -b man doc/source doc/build/man
+rm -r doc/build/html/.{doctrees,buildinfo}
%install
%py2_install
++++++ _service ++++++
--- /var/tmp/diff_new_pack.2HL0PP/_old 2019-05-03 22:41:16.379095746 +0200
+++ /var/tmp/diff_new_pack.2HL0PP/_new 2019-05-03 22:41:16.383095754 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-masakariclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-masakariclient/stable/ro…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-masakariclient/stable/st…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-masakariclient</param>
</service>
++++++ python-masakariclient-5.2.0.tar.gz -> python-masakariclient-5.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/.zuul.yaml new/python-masakariclient-5.4.0/.zuul.yaml
--- old/python-masakariclient-5.2.0/.zuul.yaml 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/.zuul.yaml 2019-03-08 13:54:27.000000000 +0100
@@ -1,7 +1,9 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/AUTHORS new/python-masakariclient-5.4.0/AUTHORS
--- old/python-masakariclient-5.2.0/AUTHORS 2018-07-26 16:10:35.000000000 +0200
+++ new/python-masakariclient-5.4.0/AUTHORS 2019-03-08 13:56:32.000000000 +0100
@@ -5,15 +5,27 @@
Kengo Takahara <takahara-kn(a)njk.co.jp>
Kengo Takahara <takahara.kengo.z03(a)as.ntts.co.jp>
Monty Taylor <mordred(a)inaugust.com>
+Nguyen Hai <nguyentrihai93(a)gmail.com>
+OpenStack Release Bot <infra-root(a)openstack.org>
Rikimaru Honjo <honjo.rikimaru(a)po.ntts.co.jp>
Takahiro Izumi <izumi.takahiro.z04(a)as.ntts.co.jp>
-Zuul <zuul(a)review.openstack.org>
+ZhijunWei <wzj334965317(a)outlook.com>
avnish <avnish.pal(a)nectechnologies.in>
+bhagyashris <bhagyashri.shewale(a)nttdata.com>
dineshbhor <dinesh.bhor(a)nttdata.com>
ericxiett <eric_xiett(a)163.com>
hussainchachuliya <hussain.chachuliya(a)nttdata.com>
+jayashri bidwe <jayashri.bidwe(a)nttdata.com>
+melissaml <ma.lei(a)99cloud.net>
nehaalhat <neha.alhat(a)nttdata.com>
nizam <abdul.nizamuddin(a)nectechnologies.in>
+openstack <neha.alhat(a)nttdata.com>
+openstack <nehaalhat(a)nttdata.com>
poojajadhav <pooja.jadhav(a)nttdata.com>
+qingszhao <zhao.daqing(a)99cloud.net>
ricolin <rico.lin(a)easystack.cn>
+samp <sampath(a)SamMacBookPro2.local>
sampath <priyankara(a)lab.ntt.co.jp>
+shilpa.devharakar <shilpa.devharakar(a)nttdata.com>
+sunjia <sunjia(a)inspur.com>
+tpatil <tushar.vitthal.patil(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/ChangeLog new/python-masakariclient-5.4.0/ChangeLog
--- old/python-masakariclient-5.2.0/ChangeLog 2018-07-26 16:10:35.000000000 +0200
+++ new/python-masakariclient-5.4.0/ChangeLog 2019-03-08 13:56:32.000000000 +0100
@@ -1,6 +1,28 @@
CHANGES
=======
+5.4.0
+-----
+
+* Use template for lower-constraints
+* Display progress\_details of the notification
+* Deprecate masakari CLI
+* Add api\_version support
+* Run all jobs by default using python3
+
+5.3.0
+-----
+
+* Delete segment and host shouldn't ignore not found error
+* Update the hacking to latest
+* Change openstack-dev to openstack-discuss
+* Add Python 3.6 classifier to setup.cfg
+* Fix osc command issue
+* Update the outdated URL in HACKING.rst
+* import zuul job settings from project-config
+* Add --os-interface and --os-region-name options
+* Update reno for stable/rocky
+
5.2.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/HACKING.rst new/python-masakariclient-5.4.0/HACKING.rst
--- old/python-masakariclient-5.2.0/HACKING.rst 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/HACKING.rst 2019-03-08 13:54:22.000000000 +0100
@@ -1,4 +1,4 @@
python-masakariclient Style Commandments
-===============================================
+========================================
-Read the OpenStack Style Commandments http://docs.openstack.org/developer/hacking/
+Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/PKG-INFO new/python-masakariclient-5.4.0/PKG-INFO
--- old/python-masakariclient-5.2.0/PKG-INFO 2018-07-26 16:10:36.000000000 +0200
+++ new/python-masakariclient-5.4.0/PKG-INFO 2019-03-08 13:56:32.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-masakariclient
-Version: 5.2.0
+Version: 5.4.0
Summary: masakariclient module and a CLI tool for masakari
Home-page: http://www.openstack.org/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ===============================
python-masakariclient
@@ -38,3 +38,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/RELEASENOTES.rst new/python-masakariclient-5.4.0/RELEASENOTES.rst
--- old/python-masakariclient-5.2.0/RELEASENOTES.rst 2018-07-26 16:10:36.000000000 +0200
+++ new/python-masakariclient-5.4.0/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-=====================
-python-masakariclient
-=====================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/api_versions.py new/python-masakariclient-5.4.0/masakariclient/api_versions.py
--- old/python-masakariclient-5.2.0/masakariclient/api_versions.py 1970-01-01 01:00:00.000000000 +0100
+++ new/python-masakariclient-5.4.0/masakariclient/api_versions.py 2019-03-08 13:54:27.000000000 +0100
@@ -0,0 +1,150 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import re
+
+from masakariclient.common import exception
+from masakariclient.common.i18n import _
+
+
+_type_error_msg = _("'%(other)s' should be an instance of '%(cls)s'")
+
+
+class APIVersion(object):
+ """This class represents an API Version Request.
+
+ This class provides convenience methods for manipulation
+ and comparison of version numbers that we need to do to
+ implement microversions.
+ """
+
+ def __init__(self, version_str=None):
+ """Create an API version object.
+
+ :param version_str: String representation of APIVersionRequest.
+ Correct format is 'X.Y', where 'X' and 'Y'
+ are int values. None value should be used
+ to create Null APIVersionRequest, which is
+ equal to 0.0
+ """
+ self.ver_major = 0
+ self.ver_minor = 0
+
+ if version_str is not None:
+ match = re.match(r"^([1-9]\d*)\.([1-9]\d*|0|latest)$", version_str)
+ if match:
+ self.ver_major = int(match.group(1))
+ if match.group(2) == "latest":
+ # Infinity allows to easily determine latest version and
+ # doesn't require any additional checks in comparison
+ # methods.
+ self.ver_minor = float("inf")
+ else:
+ self.ver_minor = int(match.group(2))
+ else:
+ msg = _("Invalid format of client version '%s'. "
+ "Expected format 'X.Y', where X is a major part and Y "
+ "is a minor part of version.") % version_str
+ raise exception.UnsupportedVersion(msg)
+
+ def __str__(self):
+ """Debug/Logging representation of object."""
+ if self.is_latest():
+ return "Latest API Version Major: %s" % self.ver_major
+ return ("API Version Major: %s, Minor: %s"
+ % (self.ver_major, self.ver_minor))
+
+ def __repr__(self):
+ if self.is_null():
+ return "<APIVersion: null>"
+ else:
+ return "<APIVersion: %s>" % self.get_string()
+
+ def is_null(self):
+ return self.ver_major == 0 and self.ver_minor == 0
+
+ def is_latest(self):
+ return self.ver_minor == float("inf")
+
+ def __lt__(self, other):
+ if not isinstance(other, APIVersion):
+ raise TypeError(_type_error_msg % {"other": other,
+ "cls": self.__class__})
+
+ return ((self.ver_major, self.ver_minor) <
+ (other.ver_major, other.ver_minor))
+
+ def __eq__(self, other):
+ if not isinstance(other, APIVersion):
+ raise TypeError(_type_error_msg % {"other": other,
+ "cls": self.__class__})
+
+ return ((self.ver_major, self.ver_minor) ==
+ (other.ver_major, other.ver_minor))
+
+ def __gt__(self, other):
+ if not isinstance(other, APIVersion):
+ raise TypeError(_type_error_msg % {"other": other,
+ "cls": self.__class__})
+
+ return ((self.ver_major, self.ver_minor) >
+ (other.ver_major, other.ver_minor))
+
+ def __le__(self, other):
+ return self < other or self == other
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+
+ def __ge__(self, other):
+ return self > other or self == other
+
+ def matches(self, min_version, max_version):
+ """Matches the version object.
+
+ Returns whether the version object represents a version
+ greater than or equal to the minimum version and less than
+ or equal to the maximum version.
+
+ :param min_version: Minimum acceptable version.
+ :param max_version: Maximum acceptable version.
+ :returns: boolean
+
+ If min_version is null then there is no minimum limit.
+ If max_version is null then there is no maximum limit.
+ If self is null then raise ValueError
+ """
+
+ if self.is_null():
+ raise ValueError(_("Null APIVersion doesn't support 'matches'."))
+ if max_version.is_null() and min_version.is_null():
+ return True
+ elif max_version.is_null():
+ return min_version <= self
+ elif min_version.is_null():
+ return self <= max_version
+ else:
+ return min_version <= self <= max_version
+
+ def get_string(self):
+ """Version string representation.
+
+ Converts object to string representation which if used to create
+ an APIVersion object results in the same version.
+ """
+ if self.is_null():
+ raise ValueError(
+ _("Null APIVersion cannot be converted to string."))
+ elif self.is_latest():
+ return "%s.%s" % (self.ver_major, "latest")
+ return "%s.%s" % (self.ver_major, self.ver_minor)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/cliargs.py new/python-masakariclient-5.4.0/masakariclient/cliargs.py
--- old/python-masakariclient-5.2.0/masakariclient/cliargs.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/masakariclient/cliargs.py 2019-03-08 13:54:22.000000000 +0100
@@ -158,3 +158,14 @@
'--os-access-info', dest='access_info', metavar='ACCESS_INFO',
default=utils.env('OS_ACCESS_INFO'),
help=_('Access info, defaults to env[OS_ACCESS_INFO]'))
+
+ parser.add_argument(
+ '--os-interface', dest='interface', metavar='INTERFACE',
+ default=utils.env('OS_INTERFACE', default='internal'),
+ help=_('API Interface to use [public, internal, admin]'
+ ', defaults to env[OS_INTERFACE]'))
+
+ parser.add_argument(
+ '--os-region-name', dest='region_name', metavar='REGION_NAME',
+ default=utils.env('OS_REGION_NAME'),
+ help=_('Region of the cloud to use, defaults to env[OS_REGION_NAME]'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/common/exception.py new/python-masakariclient-5.4.0/masakariclient/common/exception.py
--- old/python-masakariclient-5.2.0/masakariclient/common/exception.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/masakariclient/common/exception.py 2019-03-08 13:54:27.000000000 +0100
@@ -24,3 +24,8 @@
class CommandError(BaseException):
"""Invalid usage of CLI."""
+
+
+class UnsupportedVersion(Exception):
+ """User is trying to use an unsupported version of the API."""
+ pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/osc/v1/notification.py new/python-masakariclient-5.4.0/masakariclient/osc/v1/notification.py
--- old/python-masakariclient-5.2.0/masakariclient/osc/v1/notification.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/masakariclient/osc/v1/notification.py 2019-03-08 13:54:27.000000000 +0100
@@ -18,6 +18,7 @@
from osc_lib import utils
from oslo_serialization import jsonutils
+from masakariclient import api_versions
from masakariclient.common.i18n import _
import masakariclient.common.utils as masakariclient_utils
@@ -151,7 +152,14 @@
'status',
'source_host_uuid',
'generated_time',
- 'payload',
+ 'payload'
]
+
+ if masakari_client.default_microversion:
+ api_version = api_versions.APIVersion(
+ masakari_client.default_microversion)
+ if api_version >= api_versions.APIVersion("1.1"):
+ columns.append('recovery_workflow_details')
+
return columns, utils.get_dict_properties(notification.to_dict(), columns,
formatters=formatters)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/plugin.py new/python-masakariclient-5.4.0/masakariclient/plugin.py
--- old/python-masakariclient-5.2.0/masakariclient/plugin.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/masakariclient/plugin.py 2019-03-08 13:54:27.000000000 +0100
@@ -12,19 +12,40 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from openstack import connection
+import logging
+
from osc_lib import utils
+LOG = logging.getLogger(__name__)
-DEFAULT_HA_API_VERSION = '1'
+DEFAULT_HA_API_VERSION = '1.1'
API_VERSION_OPTION = 'os_ha_api_version'
API_NAME = 'ha'
+SUPPORTED_VERSIONS = [
+ '1',
+ '1.0',
+ '1.1'
+]
+
+API_VERSIONS = {v: 'masakariclient.v1.client.Client'
+ for v in SUPPORTED_VERSIONS}
+
def make_client(instance):
- """Returns a ha proxy"""
- conn = connection.Connection(session=instance.session)
- return conn.instance_ha
+ """Returns a instance_ha proxy"""
+ version = instance._api_version[API_NAME]
+ masakari_client = utils.get_client_class(
+ API_NAME,
+ version,
+ API_VERSIONS)
+
+ LOG.debug('Instantiating masakari service client: %s', masakari_client)
+ client = masakari_client(session=instance.session,
+ interface=instance.interface,
+ region_name=instance.region_name,
+ api_version=instance._api_version[API_NAME])
+ return client.service
def build_option_parser(parser):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/shell.py new/python-masakariclient-5.4.0/masakariclient/shell.py
--- old/python-masakariclient-5.2.0/masakariclient/shell.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/masakariclient/shell.py 2019-03-08 13:54:22.000000000 +0100
@@ -12,6 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from __future__ import print_function
+
import argparse
import logging
import sys
@@ -111,6 +113,8 @@
'verify': args.verify,
'token': args.token,
'trust_id': args.trust_id,
+ 'interface': args.interface,
+ 'region_name': args.region_name,
}
return masakari_client.Client(api_ver, user_agent=USER_AGENT, **kwargs)
@@ -183,6 +187,9 @@
def main(args=None):
try:
+ print(_("Deprecated: masakari CLI is deprecated and will be removed "
+ "after Stein is released. Use openstack CLI instead."),
+ file=sys.stderr)
if args is None:
args = sys.argv[1:]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/tests/unit/osc/v1/test_notification.py new/python-masakariclient-5.4.0/masakariclient/tests/unit/osc/v1/test_notification.py
--- old/python-masakariclient-5.2.0/masakariclient/tests/unit/osc/v1/test_notification.py 1970-01-01 01:00:00.000000000 +0100
+++ new/python-masakariclient-5.4.0/masakariclient/tests/unit/osc/v1/test_notification.py 2019-03-08 13:54:27.000000000 +0100
@@ -0,0 +1,105 @@
+# Copyright(c) 2019 NTT DATA
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""
+test_masakariclient
+----------------------------------
+
+Tests for `masakariclient` module.
+"""
+import mock
+import uuid
+
+from osc_lib.tests import utils as osc_lib_utils
+from osc_lib import utils
+
+from masakariclient.osc.v1.notification import ShowNotification
+from masakariclient.tests import base
+
+NOTIFICATION_NAME = 'notification_name'
+NOTIFICATION_ID = uuid.uuid4()
+RECOVERY_WORKFLOW_DETAILS = [{
+ "progress": 1.0, "state": "SUCCESS",
+ "name": "DisableComputeNodeTask",
+ "progress_details": [
+ {"timestamp:": "2019-02-28 07:21:33.170190",
+ "progress": 0.5,
+ "message": "Disabling compute host: host"},
+ {"timestamp:": "2019-02-28 07:21:33.291810",
+ "progress": 1.0,
+ "message": "Skipping recovery for process nova-compute "
+ "as it is already disabled"}]}]
+
+
+class FakeNotification(object):
+ """Fake notification show detail."""
+ def __init__(self,):
+ super(FakeNotification, self).__init__()
+
+ def to_dict(self):
+ return {
+ 'created_at': '2019-02-18T05:47:46.000000',
+ 'updated_at': '2019-02-18T06:05:16.000000',
+ 'notification_uuid': NOTIFICATION_ID,
+ 'source_host_uuid': '9ab67dc7-110a-4a4c-af64-abc6e5798433',
+ 'name': NOTIFICATION_NAME,
+ 'id': 1,
+ 'type': 'VM',
+ 'payload': {
+ "instance_uuid": "99ffc832-2252-4a9e-9b98-28bc70f7ff09",
+ "vir_domain_event": "STOPPED_FAILED", "event": "LIFECYCLE"},
+ 'status': 'finished',
+ 'recovery_workflow_details': RECOVERY_WORKFLOW_DETAILS,
+ 'generated_time': '2019-02-13T15:34:55.000000'
+ }
+
+
+class BaseV1Notification(base.TestCase, osc_lib_utils.TestCommand):
+ def setUp(self):
+ super(BaseV1Notification, self).setUp()
+ self.app = mock.Mock()
+ self.app_args = mock.Mock()
+ self.client_manager = mock.Mock()
+ self.client_manager.default_microversion = '1.0'
+ self.app.client_manager.ha = self.client_manager
+ self.dummy_notification = FakeNotification()
+ self.show_notification = ShowNotification(
+ self.app, self.app_args, cmd_name='notification show')
+ self.columns = ['created_at', 'updated_at', 'notification_uuid',
+ 'type', 'status', 'source_host_uuid',
+ 'generated_time', 'payload']
+
+
+class TestShowNotificationV1(BaseV1Notification):
+
+ def test_take_action_by_uuid(self):
+ arglist = ['8c35987c-f416-46ca-be37-52f58fd8d294']
+ parsed_args = self.check_parser(self.show_notification, arglist, [])
+ self._test_take_action(parsed_args)
+
+ @mock.patch.object(utils, 'get_dict_properties')
+ def _test_take_action(self, parsed_args, mock_get_dict_properties):
+ self.app.client_manager.ha.get_notification.return_value = (
+ self.dummy_notification)
+
+ self.show_notification.take_action(parsed_args)
+ mock_get_dict_properties.assert_called_once_with(
+ self.dummy_notification.to_dict(), self.columns, formatters={})
+
+
+class TestShowNotificationV1_1(TestShowNotificationV1):
+
+ def setUp(self):
+ super(TestShowNotificationV1_1, self).setUp()
+ self.client_manager.default_microversion = '1.1'
+ self.columns.append('recovery_workflow_details')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/tests/unit/test_cliargs.py new/python-masakariclient-5.4.0/masakariclient/tests/unit/test_cliargs.py
--- old/python-masakariclient-5.2.0/masakariclient/tests/unit/test_cliargs.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/masakariclient/tests/unit/test_cliargs.py 2019-03-08 13:54:22.000000000 +0100
@@ -41,7 +41,9 @@
'--os-password',
'--os-trust-id',
'--os-token',
- '--os-access-info'
+ '--os-access-info',
+ '--os-interface',
+ '--os-region-name'
]
options = [arg[0][0] for arg in parser.add_argument.call_args_list]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/tests/unit/v1/test_client.py new/python-masakariclient-5.4.0/masakariclient/tests/unit/v1/test_client.py
--- old/python-masakariclient-5.2.0/masakariclient/tests/unit/v1/test_client.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/masakariclient/tests/unit/v1/test_client.py 2019-03-08 13:54:22.000000000 +0100
@@ -59,13 +59,17 @@
fake_user_domain_id = 'fake_user_domain_id'
fake_project_name = 'fake_project_name'
fake_project_domain_id = 'fake_project_domain_id'
+ fake_interface = 'fake_interface'
+ fake_region_name = 'fake_region_name'
res = mc.Client(auth_url=fake_auth_url,
username=fake_username,
password=fake_password,
user_domain_id=fake_user_domain_id,
project_name=fake_project_name,
- project_domain_id=fake_project_domain_id)
+ project_domain_id=fake_project_domain_id,
+ interface=fake_interface,
+ region_name=fake_region_name)
self.assertEqual(self.conn.instance_ha, res.service)
mock_password.assert_called_once_with(
@@ -76,4 +80,7 @@
project_name=fake_project_name,
project_domain_id=fake_project_domain_id)
mock_session.assert_called_once_with(auth=self.auth)
- mock_connection.assert_called_once_with(session=self.session)
+ mock_connection.assert_called_once_with(
+ session=self.session, interface=fake_interface,
+ region_name=fake_region_name,
+ ha_api_version=None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/tests/unit/v1/test_shell.py new/python-masakariclient-5.4.0/masakariclient/tests/unit/v1/test_shell.py
--- old/python-masakariclient-5.2.0/masakariclient/tests/unit/v1/test_shell.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/masakariclient/tests/unit/v1/test_shell.py 2019-03-08 13:54:22.000000000 +0100
@@ -17,9 +17,16 @@
Tests for `masakariclient` module.
"""
+
import ddt
import mock
+import six
+import sys
+
+from openstack import exceptions as sdk_exc
+from openstack.instance_ha.v1 import _proxy
+from masakariclient.common.i18n import _
from masakariclient.common import utils
from masakariclient import shell
from masakariclient.tests import base
@@ -204,6 +211,31 @@
mock_get_uuid_by_name.assert_called_once_with(service, args.id)
mock_print_dict.assert_called_once_with(self.segment_vals)
+ @mock.patch.object(utils, 'get_uuid_by_name')
+ @mock.patch.object(_proxy.Proxy, 'delete_segment')
+ def test_do_segment_delete_with_non_existing_uuid(
+ self, mock_get_uuid_by_name, mock_delete_segment):
+ mock_get_uuid_by_name.return_value = self.segment_vals.get('uuid')
+
+ expected_msg = _("No failover segment with "
+ "id (%s)") % mock_get_uuid_by_name
+
+ def fake_delete_segment(self, mock_get_uuid_by_name,
+ ignore_missing=False):
+ if not ignore_missing:
+ raise sdk_exc.ResourceNotFound(expected_msg)
+
+ mock_delete_segment.side_effect = fake_delete_segment
+ service = mock.Mock()
+ args = mock.Mock()
+
+ original = sys.stdout
+ sys.stdout = six.StringIO()
+ ms.do_segment_delete(service, args)
+ output = sys.stdout.getvalue()
+ sys.stdout = original
+ self.assertIn(expected_msg, output)
+
@mock.patch.object(utils, 'print_list')
@mock.patch.object(utils, 'get_uuid_by_name')
def test_do_host_list(self, mock_get_uuid_by_name, mock_print_list):
@@ -309,3 +341,30 @@
mock_get_uuid_by_name.assert_any_call(
service, args.id, segment=self.segment_vals.get('uuid'))
mock_print_dict.assert_called_once_with(self.hosts_vals)
+
+ @mock.patch.object(utils, 'get_uuid_by_name')
+ @mock.patch.object(_proxy.Proxy, 'delete_host')
+ def test_do_host_delete_with_non_existing_uuid(self,
+ mock_get_uuid_by_name,
+ mock_delete_host):
+ mock_get_uuid_by_name.return_value = self.segment_vals.get('uuid')
+ host_id = self.hosts_vals.get('uuid')
+ expected_msg = _("Host '%(host_id)s' under failover_segment " "'"
+ "%(seg_id)s' ""could not be found") % {
+ 'host_id': host_id, 'seg_id': mock_get_uuid_by_name}
+
+ def fake_delete_host(
+ host_id, mock_get_uuid_by_name, ignore_missing=False):
+ if not ignore_missing:
+ raise sdk_exc.ResourceNotFound(expected_msg)
+
+ mock_delete_host.side_effect = fake_delete_host
+ service = mock.Mock()
+ args = mock.Mock()
+
+ original = sys.stdout
+ sys.stdout = six.StringIO()
+ ms.do_host_delete(service, args)
+ output = sys.stdout.getvalue()
+ sys.stdout = original
+ self.assertIn(expected_msg, output)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/v1/client.py new/python-masakariclient-5.4.0/masakariclient/v1/client.py
--- old/python-masakariclient-5.2.0/masakariclient/v1/client.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/masakariclient/v1/client.py 2019-03-08 13:54:22.000000000 +0100
@@ -20,15 +20,21 @@
class Client(object):
def __init__(self, **kwargs):
+ session = kwargs.get('session')
+ if session is None:
+ auth = ks_password.Password(
+ auth_url=kwargs.get('auth_url'),
+ username=kwargs.get('username'),
+ password=kwargs.get('password'),
+ user_domain_id=kwargs.get('user_domain_id'),
+ project_name=kwargs.get('project_name'),
+ project_domain_id=kwargs.get('project_domain_id'))
- auth = ks_password.Password(
- auth_url=kwargs.get('auth_url'),
- username=kwargs.get('username'),
- password=kwargs.get('password'),
- user_domain_id=kwargs.get('user_domain_id'),
- project_name=kwargs.get('project_name'),
- project_domain_id=kwargs.get('project_domain_id'))
- session = ks_session.Session(auth=auth)
+ session = ks_session.Session(auth=auth)
- self.con = connection.Connection(session=session)
- self.service = self.con.instance_ha
+ con = connection.Connection(
+ session=session,
+ interface=kwargs.get('interface'),
+ region_name=kwargs.get('region_name'),
+ ha_api_version=kwargs.get('api_version'))
+ self.service = con.instance_ha
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/masakariclient/v1/shell.py new/python-masakariclient-5.4.0/masakariclient/v1/shell.py
--- old/python-masakariclient-5.2.0/masakariclient/v1/shell.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/masakariclient/v1/shell.py 2019-03-08 13:54:22.000000000 +0100
@@ -163,7 +163,7 @@
try:
segment_id = utils.get_uuid_by_name(
service, args.id)
- segment = service.delete_segment(segment_id, ignore_missing=True)
+ segment = service.delete_segment(segment_id, ignore_missing=False)
utils.print_dict(segment.to_dict())
except Exception as e:
print(e)
@@ -285,8 +285,8 @@
service, args.segment_id)
host_id = utils.get_uuid_by_name(
service, args.id, segment=segment_id)
- host = service.delete_host(host_id, segment_id=segment_id)
- if host:
- utils.print_dict(host.to_dict())
+ host = service.delete_host(host_id, segment_id=segment_id,
+ ignore_missing=False)
+ utils.print_dict(host.to_dict())
except Exception as e:
print(e)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/python_masakariclient.egg-info/PKG-INFO new/python-masakariclient-5.4.0/python_masakariclient.egg-info/PKG-INFO
--- old/python-masakariclient-5.2.0/python_masakariclient.egg-info/PKG-INFO 2018-07-26 16:10:35.000000000 +0200
+++ new/python-masakariclient-5.4.0/python_masakariclient.egg-info/PKG-INFO 2019-03-08 13:56:32.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-masakariclient
-Version: 5.2.0
+Version: 5.4.0
Summary: masakariclient module and a CLI tool for masakari
Home-page: http://www.openstack.org/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ===============================
python-masakariclient
@@ -38,3 +38,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/python_masakariclient.egg-info/SOURCES.txt new/python-masakariclient-5.4.0/python_masakariclient.egg-info/SOURCES.txt
--- old/python-masakariclient-5.2.0/python_masakariclient.egg-info/SOURCES.txt 2018-07-26 16:10:36.000000000 +0200
+++ new/python-masakariclient-5.4.0/python_masakariclient.egg-info/SOURCES.txt 2019-03-08 13:56:32.000000000 +0100
@@ -22,6 +22,7 @@
doc/source/readme.rst
doc/source/usage.rst
masakariclient/__init__.py
+masakariclient/api_versions.py
masakariclient/cliargs.py
masakariclient/client.py
masakariclient/plugin.py
@@ -44,6 +45,7 @@
masakariclient/tests/unit/osc/__init__.py
masakariclient/tests/unit/osc/v1/__init__.py
masakariclient/tests/unit/osc/v1/test_host.py
+masakariclient/tests/unit/osc/v1/test_notification.py
masakariclient/tests/unit/osc/v1/test_segment.py
masakariclient/tests/unit/v1/__init__.py
masakariclient/tests/unit/v1/fakes.py
@@ -61,8 +63,12 @@
python_masakariclient.egg-info/requires.txt
python_masakariclient.egg-info/top_level.txt
releasenotes/notes/.placeholder
+releasenotes/notes/add-version-support-for-progress-details-recovery-workflows-06614c76d44e64ff.yaml
+releasenotes/notes/bug-1764931-889d9fe4cfb80b01.yaml
+releasenotes/notes/deprecate-cli-9ffee25a5c3d1b3b.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/python_masakariclient.egg-info/pbr.json new/python-masakariclient-5.4.0/python_masakariclient.egg-info/pbr.json
--- old/python-masakariclient-5.2.0/python_masakariclient.egg-info/pbr.json 2018-07-26 16:10:35.000000000 +0200
+++ new/python-masakariclient-5.4.0/python_masakariclient.egg-info/pbr.json 2019-03-08 13:56:32.000000000 +0100
@@ -1 +1 @@
-{"git_version": "319bfb3", "is_release": true}
\ No newline at end of file
+{"git_version": "96613b9", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/releasenotes/notes/add-version-support-for-progress-details-recovery-workflows-06614c76d44e64ff.yaml new/python-masakariclient-5.4.0/releasenotes/notes/add-version-support-for-progress-details-recovery-workflows-06614c76d44e64ff.yaml
--- old/python-masakariclient-5.2.0/releasenotes/notes/add-version-support-for-progress-details-recovery-workflows-06614c76d44e64ff.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-masakariclient-5.4.0/releasenotes/notes/add-version-support-for-progress-details-recovery-workflows-06614c76d44e64ff.yaml 2019-03-08 13:54:27.000000000 +0100
@@ -0,0 +1,7 @@
+---
+features:
+ - |
+ The 1.1 microversion is now supported. This introduces the following changes:
+
+ * User can get the `progress_details` of the notification in microversion 1.1. The default version
+ is set to 1.1 if not provided.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/releasenotes/notes/bug-1764931-889d9fe4cfb80b01.yaml new/python-masakariclient-5.4.0/releasenotes/notes/bug-1764931-889d9fe4cfb80b01.yaml
--- old/python-masakariclient-5.2.0/releasenotes/notes/bug-1764931-889d9fe4cfb80b01.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-masakariclient-5.4.0/releasenotes/notes/bug-1764931-889d9fe4cfb80b01.yaml 2019-03-08 13:54:22.000000000 +0100
@@ -0,0 +1,10 @@
+---
+features:
+ - |
+ Added ``--os-region-name`` and ``--os-interface`` options to select which
+ endpoint it should use to connect to the masakari service.
+ If masakari services are running in multiple regions of your cloud,
+ you can specify `--os-region-name` in order to get OpenStack service
+ client for the specified region. By default, keystoneauth always selects
+ `public` interface endpoint from the service catalog. Now you can also
+ specify `admin` or `internal` in the --os-interface option.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/releasenotes/notes/deprecate-cli-9ffee25a5c3d1b3b.yaml new/python-masakariclient-5.4.0/releasenotes/notes/deprecate-cli-9ffee25a5c3d1b3b.yaml
--- old/python-masakariclient-5.2.0/releasenotes/notes/deprecate-cli-9ffee25a5c3d1b3b.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-masakariclient-5.4.0/releasenotes/notes/deprecate-cli-9ffee25a5c3d1b3b.yaml 2019-03-08 13:54:22.000000000 +0100
@@ -0,0 +1,6 @@
+---
+deprecations:
+ - |
+ The masakari CLI is now deprecated. This is the signal that it is
+ time to start using the openstack CLI. No new features will be
+ added to the masakari CLI.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/releasenotes/notes/reno.cache new/python-masakariclient-5.4.0/releasenotes/notes/reno.cache
--- old/python-masakariclient-5.2.0/releasenotes/notes/reno.cache 2018-07-26 16:10:36.000000000 +0200
+++ new/python-masakariclient-5.4.0/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/releasenotes/source/conf.py new/python-masakariclient-5.4.0/releasenotes/source/conf.py
--- old/python-masakariclient-5.2.0/releasenotes/source/conf.py 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/releasenotes/source/conf.py 2019-03-08 13:54:22.000000000 +0100
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Glance Release Notes documentation build configuration file, created by
+# Masakari Release Notes documentation build configuration file, created by
# sphinx-quickstart on Tue Nov 3 17:40:50 2015.
#
# This file is execfile()d with the current directory set to its
@@ -55,7 +55,7 @@
master_doc = 'index'
# General information about the project.
-project = u'masakariclient Release Notes'
+project = u'PythonMasakariClient Release Notes'
copyright = u'2016, OpenStack Foundation'
# The version info for the project you're documenting, acts as replacement for
@@ -189,7 +189,7 @@
# html_file_suffix = None
# Output file base name for HTML help builder.
-htmlhelp_basename = 'GlanceReleaseNotesdoc'
+htmlhelp_basename = 'MasakariClientReleaseNotesdoc'
# -- Options for LaTeX output ---------------------------------------------
@@ -209,8 +209,9 @@
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
- ('index', 'GlanceReleaseNotes.tex', u'Glance Release Notes Documentation',
- u'Glance Developers', 'manual'),
+ ('index', 'MasakariClientReleaseNotes.tex',
+ u'MasakariClient Release Notes Documentation',
+ u'MasakariClient Developers', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -239,8 +240,9 @@
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
- ('index', 'glancereleasenotes', u'Glance Release Notes Documentation',
- [u'Glance Developers'], 1)
+ ('index', 'MasakariClientreleasenotes',
+ u'MasakariClient Release Notes Documentation',
+ [u'MasakariClient Developers'], 1)
]
# If true, show URL addresses after external links.
@@ -253,12 +255,11 @@
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
- ('index', 'GlanceReleaseNotes', u'Glance Release Notes Documentation',
- u'Glance Developers', 'GlanceReleaseNotes',
- 'One line description of project.',
- 'Miscellaneous'),
+ ('index', 'PythonMasakariClient',
+ u'PythonMasakariClient Release Notes Documentation',
+ u'Masakari developers', 'PythonMasakariClient',
+ 'One line description of project.', 'Miscellaneous')
]
-
# Documents to append as an appendix to all manuals.
# texinfo_appendices = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/releasenotes/source/index.rst new/python-masakariclient-5.4.0/releasenotes/source/index.rst
--- old/python-masakariclient-5.2.0/releasenotes/source/index.rst 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/releasenotes/source/index.rst 2019-03-08 13:54:22.000000000 +0100
@@ -6,3 +6,4 @@
:maxdepth: 1
unreleased
+ rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/releasenotes/source/rocky.rst new/python-masakariclient-5.4.0/releasenotes/source/rocky.rst
--- old/python-masakariclient-5.2.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-masakariclient-5.4.0/releasenotes/source/rocky.rst 2019-03-08 13:54:22.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/setup.cfg new/python-masakariclient-5.4.0/setup.cfg
--- old/python-masakariclient-5.2.0/setup.cfg 2018-07-26 16:10:36.000000000 +0200
+++ new/python-masakariclient-5.4.0/setup.cfg 2019-03-08 13:56:32.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = http://www.openstack.org/
classifier =
Environment :: OpenStack
@@ -17,6 +17,7 @@
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-masakariclient-5.2.0/tox.ini new/python-masakariclient-5.4.0/tox.ini
--- old/python-masakariclient-5.2.0/tox.ini 2018-07-26 16:06:13.000000000 +0200
+++ new/python-masakariclient-5.4.0/tox.ini 2019-03-08 13:54:22.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
minversion = 2.0
-envlist = py35,py27,pypy,pep8
+envlist = pep8,py27,py35,py36
skipsdist = True
[testenv]
@@ -32,6 +32,12 @@
commands =
{[testenv]commands}
ostestr '{posargs}'
+
+[testenv:py36]
+basepython = python3.6
+commands =
+ {[testenv]commands}
+ ostestr '{posargs}'
[testenv:pep8]
basepython = python3
1
0
Hello community,
here is the log from the commit of package python-manilaclient for openSUSE:Factory checked in at 2019-05-03 22:41:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-manilaclient (Old)
and /work/SRC/openSUSE:Factory/.python-manilaclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-manilaclient"
Fri May 3 22:41:10 2019 rev:14 rq:692835 version:1.27.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-manilaclient/python-manilaclient.changes 2018-09-07 15:37:52.722634406 +0200
+++ /work/SRC/openSUSE:Factory/.python-manilaclient.new.5148/python-manilaclient.changes 2019-05-03 22:41:13.147088941 +0200
@@ -1,0 +2,36 @@
+Mon Apr 8 12:23:37 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.27.0
+ - Return is_default as a value instead of a function object
+ - Add Release Notes in README
+ - Fix type-show command with name
+ - Change python3.5 job to python3.7 job on Stein+
+ - Replace unicode with six.text_type
+ - Fix sort options --sort-key and --sort-dir in list command.
+ - [CI] Fix logs for the functional test job
+ - Update reno for stable/rocky
+ - import zuul job settings from project-config
+ - Fix get_base_url
+ - Add default value for 'is_public' attribute in the help text
+ - Change openstack-dev to openstack-discuss
+ - Loosen docutils requirement pin
+ - Fix functional tests
+ - Don't quote {posargs} in tox.ini
+ - [Python3] Fix python3 bugs in code
+ - Add support for replica export location APIs
+ - Add missing organizational unit (--ou) parameter in manila cli
+ - Add unit-test for availability_zones.AvailabilityZone repr()
+ - Add Python 3.6 classifier to setup.cfg
+ - [CI] Use openstackclient instead of neutronclient
+ - switch documentation job to new PTI
+ - add python 3.6 unit test job
+ - Convert functional tests to python3
+ - fix tox python3 overrides
+ - Remove setup.py check from pep8 job
+ - Add CLI commands for Manage-Unmanage of Share Servers
+ - Stop encoding "~" in query parameters
+ - Run manilaclient-dsvm-neutron-functional on bionic
+ - Drop 'clidoc' from sphinx extensions
+ - Use templates for cover and lower-constraints
+
+-------------------------------------------------------------------
Old:
----
python-manilaclient-1.24.1.tar.gz
New:
----
python-manilaclient-1.27.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-manilaclient.spec ++++++
--- /var/tmp/diff_new_pack.rzgipP/_old 2019-05-03 22:41:13.583089859 +0200
+++ /var/tmp/diff_new_pack.rzgipP/_new 2019-05-03 22:41:13.587089868 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-manilaclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-manilaclient
-Version: 1.24.1
+Version: 1.27.0
Release: 0
Summary: Client Library for OpenStack Share API
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-manilaclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-manilaclient/python…
+Source0: https://files.pythonhosted.org/packages/source/p/python-manilaclient/python…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-ddt
@@ -72,6 +72,7 @@
Group: Documentation/HTML
BuildRequires: python-Sphinx
BuildRequires: python-openstackdocstheme
+BuildRequires: python-sphinxcontrib-programoutput
%description -n python-manilaclient-doc
Client library and command line utility for interacting with Openstack
@@ -79,14 +80,13 @@
This package contains auto-generated documentation.
%prep
-%autosetup -p1 -n python-manilaclient-1.24.1
+%autosetup -p1 -n python-manilaclient-1.27.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
-PBR_VERSION=1.24.1 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=1.27.0 sphinx-build -b html doc/source doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.rzgipP/_old 2019-05-03 22:41:13.607089910 +0200
+++ /var/tmp/diff_new_pack.rzgipP/_new 2019-05-03 22:41:13.611089918 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/pyth…</param>
+ <param name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/pyth…</param>
<param name="output-name">python-manilaclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-manilaclient/stable/rock…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-manilaclient/stable/stei…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-manilaclient</param>
</service>
++++++ python-manilaclient-1.24.1.tar.gz -> python-manilaclient-1.27.0.tar.gz ++++++
++++ 3928 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-magnumclient for openSUSE:Factory checked in at 2019-05-03 22:41:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-magnumclient (Old)
and /work/SRC/openSUSE:Factory/.python-magnumclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-magnumclient"
Fri May 3 22:41:07 2019 rev:6 rq:692834 version:2.12.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-magnumclient/python-magnumclient.changes 2018-09-07 15:37:49.866637475 +0200
+++ /work/SRC/openSUSE:Factory/.python-magnumclient.new.5148/python-magnumclient.changes 2019-05-03 22:41:09.291080823 +0200
@@ -1,0 +2,18 @@
+Mon Apr 8 12:22:35 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.12.0
+ - Add Python 3.6 classifier to setup.cfg
+ - Fix py37 compatibility
+ - Trivial: Update pypi url to new url
+ - [k8s] Add embed certs to config
+ - osc: Don't pass parameters with null value
+ - Use oslo_serialization instead of the json module directly
+ - switch documentation job to new PTI
+ - Fix crash on Service catalog empty 403 response
+ - add python 3.6 unit test job
+ - Use template for lower-constraints
+ - import zuul job settings from project-config
+ - Keystone auth support
+ - Add release notes for magnum client
+
+-------------------------------------------------------------------
Old:
----
python-magnumclient-2.10.0.tar.gz
New:
----
python-magnumclient-2.12.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-magnumclient.spec ++++++
--- /var/tmp/diff_new_pack.h3uw2S/_old 2019-05-03 22:41:09.719081724 +0200
+++ /var/tmp/diff_new_pack.h3uw2S/_new 2019-05-03 22:41:09.719081724 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-magnumclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,20 +12,19 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-magnumclient
-Version: 2.10.0
+Version: 2.12.0
Release: 0
Summary: Python API and CLI for OpenStack Magnum
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-magnumclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-magnumclient/python…
+Source0: https://files.pythonhosted.org/packages/source/p/python-magnumclient/python…
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-PrettyTable >= 0.7.2
BuildRequires: python2-cryptography >= 2.1
BuildRequires: python2-decorator >= 3.4.0
@@ -49,7 +48,6 @@
BuildRequires: python3-PrettyTable >= 0.7.2
BuildRequires: python3-cryptography >= 2.1
BuildRequires: python3-decorator >= 3.4.0
-BuildRequires: python3-devel
BuildRequires: python3-fixtures
BuildRequires: python3-keystoneauth1 >= 3.4.0
BuildRequires: python3-mock
@@ -108,17 +106,16 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n python-magnumclient-2.10.0
+%autosetup -p1 -n python-magnumclient-2.12.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
# Build HTML docs and man page
-PBR_VERSION=2.10.0 sphinx-build -b html doc/source doc/build/html
-PBR_VERSION=2.10.0 sphinx-build -b man doc/source doc/build/man
-rm -rf html/.{doctrees,buildinfo}
+PBR_VERSION=2.12.0 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=2.12.0 sphinx-build -b man doc/source doc/build/man
+rm -r doc/build/html/.{doctrees,buildinfo}
%install
%{python_install}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.h3uw2S/_old 2019-05-03 22:41:09.739081766 +0200
+++ /var/tmp/diff_new_pack.h3uw2S/_new 2019-05-03 22:41:09.739081766 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-magnumclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-magnumclient/stable/rock…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-magnumclient/stable/stei…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-magnumclient</param>
</service>
++++++ python-magnumclient-2.10.0.tar.gz -> python-magnumclient-2.12.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/.zuul.yaml new/python-magnumclient-2.12.0/.zuul.yaml
--- old/python-magnumclient-2.10.0/.zuul.yaml 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/.zuul.yaml 2019-03-06 17:45:56.000000000 +0100
@@ -1,7 +1,16 @@
- project:
+ templates:
+ - check-requirements
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - publish-openstack-docs-pti
check:
jobs:
- - openstack-tox-lower-constraints
+ - build-openstack-releasenotes
+ - openstack-tox-cover:
+ voting: false
gate:
jobs:
- - openstack-tox-lower-constraints
+ - build-openstack-releasenotes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/AUTHORS new/python-magnumclient-2.12.0/AUTHORS
--- old/python-magnumclient-2.10.0/AUTHORS 2018-08-06 23:16:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/AUTHORS 2019-03-06 17:47:59.000000000 +0100
@@ -9,6 +9,7 @@
Andrew Melton <andrew.melton(a)rackspace.com>
Anh Tran <anhtt(a)vn.fujitsu.com>
Bharath Thiruveedula <bharath_ves(a)hotmail.com>
+Boris Pilka <boris.pilka(a)x-works.io>
Cedric Brandily <zzelle(a)gmail.com>
Christoph Jansen <jansen.christoph(a)yahoo.de>
Clenimar Filemon <clenimar.filemon(a)gmail.com>
@@ -22,11 +23,14 @@
Davanum Srinivas <davanum(a)gmail.com>
Davanum Srinivas <dims(a)linux.vnet.ibm.com>
David Liu <david.liu(a)cn.ibm.com>
+David Rabel <rabel(a)b1-systems.de>
Doug Hellmann <doug(a)doughellmann.com>
Eli Qiao <liyong.qiao(a)intel.com>
Eric Brown <browne(a)vmware.com>
+Erik Olof Gunnar Andersson <eandersson(a)blizzard.com>
Fang Fenghua <449171342(a)qq.com>
Fang fenghua <449171342(a)qq.com>
+Feilong Wang <flwang(a)catalyst.net.nz>
Feng Shengqin <feng.shengqin(a)zte.com.cn>
Flavio Percoco <flaper87(a)gmail.com>
Haiwei Xu <xu-haiwei(a)mxw.nes.nec.co.jp>
@@ -60,6 +64,7 @@
Manjeet Singh Bhatia <manjeet.s.bhatia(a)intel.com>
Mark Goddard <mark(a)stackhpc.com>
Michael Lekkas <lekkasmi(a)uk.ibm.com>
+Michal Arbet <michal.arbet(a)ultimum.io>
Mike Fedosin <mfedosin(a)gmail.com>
Monty Taylor <mordred(a)inaugust.com>
Motohiro OTSUKA <ootsuka(a)mxs.nes.nec.co.jp>
@@ -84,6 +89,7 @@
Tom Cammann <tom.cammann(a)hp.com>
Tom Cammann <tom.cammann(a)hpe.com>
Tovin Seven <vinhnt(a)vn.fujitsu.com>
+Vieri <15050873171(a)163.com>
Vijendar Komalla <vijendar.komalla(a)RACKSPACE.COM>
Vikas Choudhary <choudharyvikas16(a)gmail.com>
Vilobh Meshram <vilobhmm(a)yahoo-inc.com>
@@ -95,7 +101,6 @@
Yang Hongyang <hongyang.yang(a)easystack.cn>
Yolanda Robla <yolanda.robla-mota(a)hp.com>
Zhenguo Niu <niuzhenguo(a)huawei.com>
-Zuul <zuul(a)review.openstack.org>
chenaidong1 <chen.aidong(a)zte.com.cn>
chenlx <chenlx(a)fiberhome.com>
coldmoment <yan.zhiwei1(a)zte.com.cn>
@@ -111,6 +116,7 @@
npraveen35 <npraveen35(a)gmail.com>
pawnesh.kumar <pawnesh.kumar(a)nectechnologies.in>
phelanm <phelanm(a)gmail.com>
+qingszhao <zhao.daqing(a)99cloud.net>
rajat29 <rajat.sharma(a)nectechnologies.in>
ricolin <rico.l(a)inwinstack.com>
ricolin <rico.lin(a)easystack.cn>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/ChangeLog new/python-magnumclient-2.12.0/ChangeLog
--- old/python-magnumclient-2.10.0/ChangeLog 2018-08-06 23:16:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/ChangeLog 2019-03-06 17:47:59.000000000 +0100
@@ -1,10 +1,32 @@
CHANGES
=======
+2.12.0
+------
+
+* Keystone auth support
+* Fix py37 compatibility
+* Use oslo\_serialization instead of the json module directly
+* Use template for lower-constraints
+* Add Python 3.6 classifier to setup.cfg
+* add python 3.6 unit test job
+* Trivial: Update pypi url to new url
+
+2.11.0
+------
+
+* Fix crash on Service catalog empty 403 response
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Add release notes for magnum client
+* [k8s] Add embed certs to config
+
2.10.0
------
* Switch to stestr
+* osc: Don't pass parameters with null value
* fix tox python3 overrides
* Fix entrypoints for quotas
* Follow the new PTI for document build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/PKG-INFO new/python-magnumclient-2.12.0/PKG-INFO
--- old/python-magnumclient-2.10.0/PKG-INFO 2018-08-06 23:16:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/PKG-INFO 2019-03-06 17:48:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-magnumclient
-Version: 2.10.0
+Version: 2.12.0
Summary: Client library for Magnum API
Home-page: https://docs.openstack.org/python-magnumclient/latest/
Author: OpenStack
@@ -19,11 +19,11 @@
=================================
.. image:: https://img.shields.io/pypi/v/python-magnumclient.svg
- :target: https://pypi.python.org/pypi/python-magnumclient/
+ :target: https://pypi.org/project/python-magnumclient/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/python-magnumclient.svg
- :target: https://pypi.python.org/pypi/python-magnumclient/
+ :target: https://pypi.org/project/python-magnumclient/
:alt: Downloads
This is a client library for Magnum built on the Magnum API. It
@@ -41,7 +41,7 @@
* `Bugs`_ - issue tracking
* `Source`_
- .. _PyPi: https://pypi.python.org/pypi/python-magnumclient
+ .. _PyPi: https://pypi.org/project/python-magnumclient
.. _Online Documentation: https://docs.openstack.org/python-magnumclient/latest/
.. _Launchpad project: https://launchpad.net/python-magnumclient
.. _Bugs: https://bugs.launchpad.net/python-magnumclient
@@ -59,3 +59,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/README.rst new/python-magnumclient-2.12.0/README.rst
--- old/python-magnumclient-2.10.0/README.rst 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/README.rst 2019-03-06 17:45:56.000000000 +0100
@@ -11,11 +11,11 @@
=================================
.. image:: https://img.shields.io/pypi/v/python-magnumclient.svg
- :target: https://pypi.python.org/pypi/python-magnumclient/
+ :target: https://pypi.org/project/python-magnumclient/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/python-magnumclient.svg
- :target: https://pypi.python.org/pypi/python-magnumclient/
+ :target: https://pypi.org/project/python-magnumclient/
:alt: Downloads
This is a client library for Magnum built on the Magnum API. It
@@ -33,7 +33,7 @@
* `Bugs`_ - issue tracking
* `Source`_
-.. _PyPi: https://pypi.python.org/pypi/python-magnumclient
+.. _PyPi: https://pypi.org/project/python-magnumclient
.. _Online Documentation: https://docs.openstack.org/python-magnumclient/latest/
.. _Launchpad project: https://launchpad.net/python-magnumclient
.. _Bugs: https://bugs.launchpad.net/python-magnumclient
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/doc/requirements.txt new/python-magnumclient-2.12.0/doc/requirements.txt
--- old/python-magnumclient-2.10.0/doc/requirements.txt 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/doc/requirements.txt 2019-03-06 17:45:56.000000000 +0100
@@ -1,2 +1,3 @@
sphinx!=1.6.6,>=1.6.2 # BSD
openstackdocstheme>=1.18.1 # Apache-2.0
+reno>=2.5.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/magnumclient/common/httpclient.py new/python-magnumclient-2.12.0/magnumclient/common/httpclient.py
--- old/python-magnumclient-2.10.0/magnumclient/common/httpclient.py 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/magnumclient/common/httpclient.py 2019-03-06 17:45:56.000000000 +0100
@@ -16,13 +16,13 @@
# under the License.
import copy
-import json
import logging
import os
import socket
import ssl
from keystoneauth1 import adapter
+from oslo_serialization import jsonutils
from oslo_utils import importutils
import six
import six.moves.urllib.parse as urlparse
@@ -39,30 +39,40 @@
DEFAULT_API_VERSION = 'latest'
-def _extract_error_json(body):
- """Return error_message from the HTTP response body."""
+def _extract_error_json_text(body_json):
error_json = {}
- try:
- body_json = json.loads(body)
- if 'error_message' in body_json:
- raw_msg = body_json['error_message']
- error_json = json.loads(raw_msg)
- elif 'error' in body_json:
- error_body = body_json['error']
- error_json = {'faultstring': error_body['title'],
- 'debuginfo': error_body['message']}
- else:
- error_body = body_json['errors'][0]
- error_json = {'faultstring': error_body['title']}
- if 'detail' in error_body:
- error_json['debuginfo'] = error_body['detail']
- elif 'description' in error_body:
- error_json['debuginfo'] = error_body['description']
+ if 'error_message' in body_json:
+ raw_msg = body_json['error_message']
+ error_json = jsonutils.loads(raw_msg)
+ elif 'error' in body_json:
+ error_body = body_json['error']
+ error_json = {'faultstring': error_body['title'],
+ 'debuginfo': error_body['message']}
+ else:
+ error_body = body_json['errors'][0]
+ error_json = {'faultstring': error_body['title']}
+ if 'detail' in error_body:
+ error_json['debuginfo'] = error_body['detail']
+ elif 'description' in error_body:
+ error_json['debuginfo'] = error_body['description']
+ return error_json
- except ValueError:
- return {}
- return error_json
+def _extract_error_json(body, resp):
+ """Return error_message from the HTTP response body."""
+ content_type = resp.headers.get("Content-Type", "")
+ if content_type.startswith("application/json"):
+ try:
+ body_json = resp.json()
+ return _extract_error_json_text(body_json)
+ except ValueError:
+ return {}
+ else:
+ try:
+ body_json = jsonutils.loads(body)
+ return _extract_error_json_text(body_json)
+ except ValueError:
+ return {}
class HTTPClient(object):
@@ -200,7 +210,7 @@
if 400 <= resp.status < 600:
LOG.warning("Request returned failure status.")
- error_json = _extract_error_json(body_str)
+ error_json = _extract_error_json(body_str, resp)
raise exceptions.from_response(
resp, error_json.get('faultstring'),
error_json.get('debuginfo'), method, url)
@@ -218,7 +228,7 @@
kwargs['headers'].setdefault('Accept', 'application/json')
if 'body' in kwargs:
- kwargs['body'] = json.dumps(kwargs['body'])
+ kwargs['body'] = jsonutils.dumps(kwargs['body'])
resp, body_iter = self._http_request(url, method, **kwargs)
content_type = resp.getheader('content-type', None)
@@ -229,7 +239,7 @@
if 'application/json' in content_type:
body = ''.join([chunk for chunk in body_iter])
try:
- body = json.loads(body)
+ body = jsonutils.loads(body)
except ValueError:
LOG.error('Could not decode response body as JSON')
else:
@@ -346,7 +356,7 @@
raise_exc=False, **kwargs)
if 400 <= resp.status_code < 600:
- error_json = _extract_error_json(resp.content)
+ error_json = _extract_error_json(resp.content, resp)
raise exceptions.from_response(
resp, error_json.get('faultstring'),
error_json.get('debuginfo'), method, url)
@@ -363,7 +373,7 @@
kwargs['headers'].setdefault('Content-Type', 'application/json')
kwargs['headers'].setdefault('Accept', 'application/json')
if 'body' in kwargs:
- kwargs['data'] = json.dumps(kwargs.pop('body'))
+ kwargs['data'] = jsonutils.dumps(kwargs.pop('body'))
resp = self._http_request(url, method, **kwargs)
body = resp.content
@@ -396,7 +406,10 @@
def __iter__(self):
while True:
- yield self.next()
+ try:
+ yield self.next()
+ except StopIteration:
+ return
def __bool__(self):
return hasattr(self, 'items')
@@ -408,7 +421,7 @@
if chunk:
return chunk
else:
- raise StopIteration()
+ raise StopIteration
def _construct_http_client(*args, **kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/magnumclient/common/utils.py new/python-magnumclient-2.12.0/magnumclient/common/utils.py
--- old/python-magnumclient-2.10.0/magnumclient/common/utils.py 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/magnumclient/common/utils.py 2019-03-06 17:46:00.000000000 +0100
@@ -15,7 +15,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-import json
+import base64
import os
from cryptography.hazmat.backends import default_backend
@@ -24,6 +24,7 @@
from cryptography.hazmat.primitives import serialization
from cryptography import x509
from cryptography.x509.oid import NameOID
+from oslo_serialization import jsonutils
from magnumclient import exceptions as exc
from magnumclient.i18n import _
@@ -63,7 +64,7 @@
raise exc.CommandError(_('Attributes must be a list of '
'PATH=VALUE not "%s"') % string)
try:
- value = json.loads(value)
+ value = jsonutils.loads(value)
except ValueError:
pass
@@ -99,7 +100,7 @@
if 'mesos_slave_executor_env_file' in labels:
environment_variables_data = handle_json_from_file(
labels['mesos_slave_executor_env_file'])
- labels['mesos_slave_executor_env_variables'] = json.dumps(
+ labels['mesos_slave_executor_env_variables'] = jsonutils.dumps(
environment_variables_data)
return labels
@@ -145,7 +146,7 @@
try:
with open(json_arg, 'r') as f:
json_arg = f.read().strip()
- json_arg = json.loads(json_arg)
+ json_arg = jsonutils.loads(json_arg)
except IOError as e:
err = _("Cannot get JSON from file '%(file)s'. "
"Error: %(err)s") % {'err': e, 'file': json_arg}
@@ -158,21 +159,23 @@
return json_arg
-def config_cluster(cluster, cluster_template, cfg_dir, force=False):
+def config_cluster(cluster, cluster_template, cfg_dir, force=False,
+ certs=None, use_keystone=False):
"""Return and write configuration for the given cluster."""
if cluster_template.coe == 'kubernetes':
- return _config_cluster_kubernetes(cluster, cluster_template,
- cfg_dir, force)
+ return _config_cluster_kubernetes(cluster, cluster_template, cfg_dir,
+ force, certs, use_keystone)
elif (cluster_template.coe == 'swarm'
or cluster_template.coe == 'swarm-mode'):
- return _config_cluster_swarm(cluster, cluster_template, cfg_dir, force)
+ return _config_cluster_swarm(cluster, cluster_template, cfg_dir,
+ force, certs)
-def _config_cluster_kubernetes(cluster, cluster_template,
- cfg_dir, force=False):
+def _config_cluster_kubernetes(cluster, cluster_template, cfg_dir,
+ force=False, certs=None, use_keystone=False):
"""Return and write configuration for the given kubernetes cluster."""
cfg_file = "%s/config" % cfg_dir
- if cluster_template.tls_disabled:
+ if cluster_template.tls_disabled or certs is None:
cfg = ("apiVersion: v1\n"
"clusters:\n"
"- cluster:\n"
@@ -190,28 +193,64 @@
"- name: %(name)s'\n"
% {'name': cluster.name, 'api_address': cluster.api_address})
else:
- cfg = ("apiVersion: v1\n"
- "clusters:\n"
- "- cluster:\n"
- " certificate-authority: %(cfg_dir)s/ca.pem\n"
- " server: %(api_address)s\n"
- " name: %(name)s\n"
- "contexts:\n"
- "- context:\n"
- " cluster: %(name)s\n"
- " user: admin\n"
- " name: default\n"
- "current-context: default\n"
- "kind: Config\n"
- "preferences: {}\n"
- "users:\n"
- "- name: admin\n"
- " user:\n"
- " client-certificate: %(cfg_dir)s/cert.pem\n"
- " client-key: %(cfg_dir)s/key.pem\n"
- % {'name': cluster.name,
- 'api_address': cluster.api_address,
- 'cfg_dir': cfg_dir})
+ if not use_keystone:
+ cfg = ("apiVersion: v1\n"
+ "clusters:\n"
+ "- cluster:\n"
+ " certificate-authority-data: %(ca)s\n"
+ " server: %(api_address)s\n"
+ " name: %(name)s\n"
+ "contexts:\n"
+ "- context:\n"
+ " cluster: %(name)s\n"
+ " user: admin\n"
+ " name: default\n"
+ "current-context: default\n"
+ "kind: Config\n"
+ "preferences: {}\n"
+ "users:\n"
+ "- name: admin\n"
+ " user:\n"
+ " client-certificate-data: %(cert)s\n"
+ " client-key-data: %(key)s\n"
+ % {'name': cluster.name,
+ 'api_address': cluster.api_address,
+ 'key': base64.b64encode(certs['key']),
+ 'cert': base64.b64encode(certs['cert']),
+ 'ca': base64.b64encode(certs['ca'])})
+ else:
+ cfg = ("apiVersion: v1\n"
+ "clusters:\n"
+ "- cluster:\n"
+ " certificate-authority-data: %(ca)s\n"
+ " server: %(api_address)s\n"
+ " name: %(name)s\n"
+ "contexts:\n"
+ "- context:\n"
+ " cluster: %(name)s\n"
+ " user: openstackuser\n"
+ " name: openstackuser@kubernetes\n"
+ "current-context: openstackuser@kubernetes\n"
+ "kind: Config\n"
+ "preferences: {}\n"
+ "users:\n"
+ "- name: openstackuser\n"
+ " user:\n"
+ " exec:\n"
+ " command: /bin/bash\n"
+ " apiVersion: client.authentication.k8s.io/v1alpha1\n"
+ " args:\n"
+ " - -c\n"
+ " - >\n"
+ " if [ -z ${OS_TOKEN} ]; then\n"
+ " echo 'Error: Missing OpenStack credential from environment variable $OS_TOKEN' > /dev/stderr\n" # noqa
+ " exit 1\n"
+ " else\n"
+ " echo '{ \"apiVersion\": \"client.authentication.k8s.io/v1alpha1\", \"kind\": \"ExecCredential\", \"status\": { \"token\": \"'\"${OS_TOKEN}\"'\"}}'\n" # noqa
+ " fi\n"
+ % {'name': cluster.name,
+ 'api_address': cluster.api_address,
+ 'ca': base64.b64encode(certs['ca'])})
if os.path.exists(cfg_file) and not force:
raise exc.CommandError("File %s exists, aborting." % cfg_file)
@@ -225,7 +264,8 @@
return "export KUBECONFIG=%s\n" % cfg_file
-def _config_cluster_swarm(cluster, cluster_template, cfg_dir, force=False):
+def _config_cluster_swarm(cluster, cluster_template, cfg_dir,
+ force=False, certs=None):
"""Return and write configuration for the given swarm cluster."""
tls = "" if cluster_template.tls_disabled else True
if 'csh' in os.environ['SHELL']:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/magnumclient/osc/v1/clusters.py new/python-magnumclient-2.12.0/magnumclient/osc/v1/clusters.py
--- old/python-magnumclient-2.10.0/magnumclient/osc/v1/clusters.py 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/magnumclient/osc/v1/clusters.py 2019-03-06 17:45:56.000000000 +0100
@@ -124,18 +124,24 @@
'cluster_template_id': parsed_args.cluster_template,
'create_timeout': parsed_args.timeout,
'discovery_url': parsed_args.discovery_url,
- 'docker_volume_size': parsed_args.docker_volume_size,
'keypair': parsed_args.keypair,
'master_count': parsed_args.master_count,
'name': parsed_args.name,
'node_count': parsed_args.node_count,
- 'master_flavor_id': parsed_args.master_flavor,
- 'flavor_id': parsed_args.flavor,
}
if parsed_args.labels is not None:
args['labels'] = magnum_utils.handle_labels(parsed_args.labels)
+ if parsed_args.docker_volume_size is not None:
+ args['docker_volume_size'] = parsed_args.docker_volume_size
+
+ if parsed_args.master_flavor is not None:
+ args['master_flavor_id'] = parsed_args.master_flavor
+
+ if parsed_args.flavor is not None:
+ args['flavor_id'] = parsed_args.flavor
+
cluster = mag_client.clusters.create(**args)
print("Request to create cluster %s accepted"
% cluster.uuid)
@@ -293,6 +299,24 @@
dest='force',
default=False,
help=_('Overwrite files if existing.'))
+ parser.add_argument(
+ '--output-certs',
+ action='store_true',
+ dest='output_certs',
+ default=False,
+ help=_('Output certificates in separate files.'))
+ parser.add_argument(
+ '--use-certificate',
+ action='store_true',
+ dest='use_certificate',
+ default=True,
+ help=_('Use certificate in config files.'))
+ parser.add_argument(
+ '--use-keystone',
+ action='store_true',
+ dest='use_keystone',
+ default=False,
+ help=_('Use Keystone token in config files.'))
return parser
@@ -303,6 +327,11 @@
the corresponding COE configured to access the cluster.
"""
+ if parsed_args.use_keystone:
+ parsed_args.use_certificate = False
+ if not parsed_args.use_certificate:
+ parsed_args.use_keystone = True
+
self.log.debug("take_action(%s)", parsed_args)
mag_client = self.app.client_manager.container_infra
@@ -319,21 +348,22 @@
'cluster_uuid': cluster.uuid,
}
+ tls = None
if not cluster_template.tls_disabled:
tls = magnum_utils.generate_csr_and_key()
tls['ca'] = mag_client.certificates.get(**opts).pem
opts['csr'] = tls['csr']
tls['cert'] = mag_client.certificates.create(**opts).pem
- for k in ('key', 'cert', 'ca'):
- fname = "%s/%s.pem" % (parsed_args.dir, k)
- if os.path.exists(fname) and not parsed_args.force:
- raise Exception("File %s exists, aborting." % fname)
- else:
- f = open(fname, "w")
- f.write(tls[k])
- f.close()
-
- print(magnum_utils.config_cluster(cluster,
- cluster_template,
- parsed_args.dir,
- force=parsed_args.force))
+ if parsed_args.output_certs:
+ for k in ('key', 'cert', 'ca'):
+ fname = "%s/%s.pem" % (parsed_args.dir, k)
+ if os.path.exists(fname) and not parsed_args.force:
+ raise Exception("File %s exists, aborting." % fname)
+ else:
+ with open(fname, "w") as f:
+ f.write(tls[k])
+
+ print(magnum_utils.config_cluster(
+ cluster, cluster_template, parsed_args.dir,
+ force=parsed_args.force, certs=tls,
+ use_keystone=parsed_args.use_keystone))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/magnumclient/tests/osc/unit/osc_fakes.py new/python-magnumclient-2.12.0/magnumclient/tests/osc/unit/osc_fakes.py
--- old/python-magnumclient-2.10.0/magnumclient/tests/osc/unit/osc_fakes.py 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/magnumclient/tests/osc/unit/osc_fakes.py 2019-03-06 17:45:56.000000000 +0100
@@ -13,13 +13,12 @@
# under the License.
#
-import json
import mock
+from oslo_serialization import jsonutils
import sys
from keystoneauth1 import fixture
import requests
-import six
AUTH_TOKEN = "foobar"
AUTH_URL = "http://0.0.0.0"
@@ -239,9 +238,7 @@
self.status_code = status_code
self.headers.update(headers)
- self._content = json.dumps(data)
- if not isinstance(self._content, six.binary_type):
- self._content = self._content.encode()
+ self._content = jsonutils.dump_as_bytes(data)
class FakeModel(dict):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/magnumclient/tests/osc/unit/v1/test_clusters.py new/python-magnumclient-2.12.0/magnumclient/tests/osc/unit/v1/test_clusters.py
--- old/python-magnumclient-2.10.0/magnumclient/tests/osc/unit/v1/test_clusters.py 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/magnumclient/tests/osc/unit/v1/test_clusters.py 2019-03-06 17:46:00.000000000 +0100
@@ -52,13 +52,10 @@
'cluster_template_id': 'fake-ct',
'create_timeout': 60,
'discovery_url': None,
- 'docker_volume_size': None,
- 'flavor_id': None,
'keypair': None,
'master_count': 1,
'name': 'fake-cluster-1',
'node_count': 1,
- 'master_flavor_id': None,
}
self.clusters_mock.create = mock.Mock()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/magnumclient/tests/test_httpclient.py new/python-magnumclient-2.12.0/magnumclient/tests/test_httpclient.py
--- old/python-magnumclient-2.10.0/magnumclient/tests/test_httpclient.py 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/magnumclient/tests/test_httpclient.py 2019-03-06 17:45:56.000000000 +0100
@@ -13,9 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-import json
-
import mock
+from oslo_serialization import jsonutils
import six
import socket
@@ -37,7 +36,7 @@
'faultstring': faultstring,
'debuginfo': debuginfo
}
- raw_error_body = json.dumps(error_body)
+ raw_error_body = jsonutils.dumps(error_body)
body = {'error_message': raw_error_body}
elif err_type == ERROR_DICT:
body = {'error': {'title': faultstring, 'message': debuginfo}}
@@ -47,7 +46,7 @@
elif err_type == ERROR_LIST_WITH_DESC:
main_body = {'title': faultstring, 'description': debuginfo}
body = {'errors': [main_body]}
- raw_body = json.dumps(body)
+ raw_body = jsonutils.dumps(body)
return raw_body
@@ -347,7 +346,7 @@
resp, body = client.json_request('GET', '/v1/resources')
self.assertEqual(resp, fake_resp)
- self.assertEqual(json.dumps(body), err)
+ self.assertEqual(jsonutils.dumps(body), err)
def test_raw_request(self):
fake_resp = utils.FakeResponse(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/magnumclient/tests/test_utils.py new/python-magnumclient-2.12.0/magnumclient/tests/test_utils.py
--- old/python-magnumclient-2.10.0/magnumclient/tests/test_utils.py 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/magnumclient/tests/test_utils.py 2019-03-06 17:45:56.000000000 +0100
@@ -17,7 +17,7 @@
import collections
import mock
-from oslo_serialization import jsonutils as json
+from oslo_serialization import jsonutils
import six
import six.moves.builtins as __builtin__
import tempfile
@@ -261,7 +261,7 @@
f.flush()
steps = utils.handle_json_from_file(f.name)
- self.assertEqual(json.loads(contents), steps)
+ self.assertEqual(jsonutils.loads(contents), steps)
@mock.patch.object(__builtin__, 'open', autospec=True)
def test_handle_json_from_file_open_fail(self, mock_open):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/magnumclient/tests/utils.py new/python-magnumclient-2.12.0/magnumclient/tests/utils.py
--- old/python-magnumclient-2.10.0/magnumclient/tests/utils.py 2018-08-06 23:13:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/magnumclient/tests/utils.py 2019-03-06 17:45:56.000000000 +0100
@@ -16,6 +16,7 @@
import copy
import datetime
import os
+from oslo_serialization import jsonutils
import sys
import fixtures
@@ -179,6 +180,12 @@
self.content = content
self.status_code = status_code
+ def json(self):
+ if self.content is not None:
+ return jsonutils.loads(self.content)
+ else:
+ return {}
+
class FakeSession(object):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/python_magnumclient.egg-info/PKG-INFO new/python-magnumclient-2.12.0/python_magnumclient.egg-info/PKG-INFO
--- old/python-magnumclient-2.10.0/python_magnumclient.egg-info/PKG-INFO 2018-08-06 23:16:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/python_magnumclient.egg-info/PKG-INFO 2019-03-06 17:48:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-magnumclient
-Version: 2.10.0
+Version: 2.12.0
Summary: Client library for Magnum API
Home-page: https://docs.openstack.org/python-magnumclient/latest/
Author: OpenStack
@@ -19,11 +19,11 @@
=================================
.. image:: https://img.shields.io/pypi/v/python-magnumclient.svg
- :target: https://pypi.python.org/pypi/python-magnumclient/
+ :target: https://pypi.org/project/python-magnumclient/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/python-magnumclient.svg
- :target: https://pypi.python.org/pypi/python-magnumclient/
+ :target: https://pypi.org/project/python-magnumclient/
:alt: Downloads
This is a client library for Magnum built on the Magnum API. It
@@ -41,7 +41,7 @@
* `Bugs`_ - issue tracking
* `Source`_
- .. _PyPi: https://pypi.python.org/pypi/python-magnumclient
+ .. _PyPi: https://pypi.org/project/python-magnumclient
.. _Online Documentation: https://docs.openstack.org/python-magnumclient/latest/
.. _Launchpad project: https://launchpad.net/python-magnumclient
.. _Bugs: https://bugs.launchpad.net/python-magnumclient
@@ -59,3 +59,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/python_magnumclient.egg-info/SOURCES.txt new/python-magnumclient-2.12.0/python_magnumclient.egg-info/SOURCES.txt
--- old/python-magnumclient-2.10.0/python_magnumclient.egg-info/SOURCES.txt 2018-08-06 23:16:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/python_magnumclient.egg-info/SOURCES.txt 2019-03-06 17:48:00.000000000 +0100
@@ -115,5 +115,9 @@
python_magnumclient.egg-info/top_level.txt
releasenotes/notes/partial_osc_implementation_for_certificate-4597c20b59c152e1.yaml
releasenotes/notes/partial_osc_implementation_for_quotas-33f44c0496d721f8.yaml
+releasenotes/source/conf.py
+releasenotes/source/index.rst
+releasenotes/source/rocky.rst
+releasenotes/source/unreleased.rst
tools/cover.sh
tools/magnum.bash_completion
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/python_magnumclient.egg-info/pbr.json new/python-magnumclient-2.12.0/python_magnumclient.egg-info/pbr.json
--- old/python-magnumclient-2.10.0/python_magnumclient.egg-info/pbr.json 2018-08-06 23:16:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/python_magnumclient.egg-info/pbr.json 2019-03-06 17:48:00.000000000 +0100
@@ -1 +1 @@
-{"git_version": "3e728f9", "is_release": true}
\ No newline at end of file
+{"git_version": "37e602d", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/releasenotes/source/conf.py new/python-magnumclient-2.12.0/releasenotes/source/conf.py
--- old/python-magnumclient-2.10.0/releasenotes/source/conf.py 1970-01-01 01:00:00.000000000 +0100
+++ new/python-magnumclient-2.12.0/releasenotes/source/conf.py 2019-03-06 17:45:56.000000000 +0100
@@ -0,0 +1,276 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Magnum-Client documentation build configuration file, created by
+# sphinx-quickstart on Tue Dec 20 11:53:00 2016.
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+# sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+ 'openstackdocstheme',
+ 'reno.sphinxext',
+]
+
+# Add any paths that contain templates here, relative to this directory.
+# templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+# source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'MagnumClientReleaseNotes'
+copyright = u'2016, OpenStack Foundation'
+
+# Release notes are version independent.
+# The short X.Y version.
+version = ''
+# The full version, including alpha/beta/rc tags.
+release = ''
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+# language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+# today = ''
+# Else, today_fmt is used as the format for a strftime call.
+# today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = []
+
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+# default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+# add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+# add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+# show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+# modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+# keep_warnings = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+html_theme = 'openstackdocs'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+# html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+# html_theme_path = []
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+# html_title = None
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+# html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+# html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+# html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+# html_static_path = ['_static']
+
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+# html_extra_path = []
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+# html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+# html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+# html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+# html_additional_pages = {}
+
+# If false, no module index is generated.
+# html_domain_indices = True
+
+# If false, no index is generated.
+# html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+# html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+# html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+# html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+# html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+# html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+# html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'MagnumClientReleaseNotesdoc'
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+# The item in latex_elements:
+# The paper size ('letterpaper' or 'a4paper').
+# 'papersize': 'letterpaper',
+# The font size ('10pt', '11pt' or '12pt').
+# 'pointsize': '10pt',
+# Additional stuff for the LaTeX preamble.
+# 'preamble': '',
+latex_elements = {}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+# author, documentclass [howto, manual, or own class]).
+latex_documents = [
+ ('index', 'MagnumClientReleaseNotes.tex',
+ u'MagnumClient ReleaseNotes Documentation',
+ u'OpenStack Foundation', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+# latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+# latex_use_parts = False
+
+# If true, show page references after internal links.
+# latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+# latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+# latex_appendices = []
+
+# If false, no module index is generated.
+# latex_domain_indices = True
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ ('index', 'MagnumClientReleaseNotes',
+ u'MagnumClient ReleaseNotes Documentation',
+ [u'OpenStack Foundation'], 1)
+]
+
+# If true, show URL addresses after external links.
+# man_show_urls = False
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ ('index', 'MagnumClientReleaseNotes',
+ u'MagnumClient ReleaseNotes Documentation',
+ u'OpenStack Foundation', 'MagnumClientReleaseNotes',
+ 'One line description of project.',
+ 'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+# texinfo_appendices = []
+
+# If false, no module index is generated.
+# texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+# texinfo_show_urls = 'footnote'
+
+# If true, do not generate a @detailmenu in the "Top" node's menu.
+# texinfo_no_detailmenu = False
+
+# -- Options for Internationalization output ------------------------------
+locale_dirs = ['locale/']
+
+# -- Options for openstackdocstheme -------------------------------------------
+repository_name = 'openstack/python-magnumclient'
+bug_project = 'python-magnumclient'
+bug_tag = ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/releasenotes/source/index.rst new/python-magnumclient-2.12.0/releasenotes/source/index.rst
--- old/python-magnumclient-2.10.0/releasenotes/source/index.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-magnumclient-2.12.0/releasenotes/source/index.rst 2019-03-06 17:45:56.000000000 +0100
@@ -0,0 +1,33 @@
+============================
+ Magnum Client Release Notes
+============================
+
+.. toctree::
+ :maxdepth: 1
+
+ unreleased
+ rocky
+
+OpenStack Releases
+------------------
+
+The MagnumClient release that was current when the corresponding
+OpenStack release was made is shown below:
+
+================= ====================
+OpenStack Release MagnumClient Release
+================= ====================
+Rocky 2.10.0
+================= ====================
+
+Further details for historical OpenStack releases are found at the
+`OpenStack Releases`_ page.
+
+.. _`OpenStack Releases`: https://releases.openstack.org/
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/releasenotes/source/rocky.rst new/python-magnumclient-2.12.0/releasenotes/source/rocky.rst
--- old/python-magnumclient-2.10.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-magnumclient-2.12.0/releasenotes/source/rocky.rst 2019-03-06 17:45:56.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/releasenotes/source/unreleased.rst new/python-magnumclient-2.12.0/releasenotes/source/unreleased.rst
--- old/python-magnumclient-2.10.0/releasenotes/source/unreleased.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-magnumclient-2.12.0/releasenotes/source/unreleased.rst 2019-03-06 17:45:56.000000000 +0100
@@ -0,0 +1,5 @@
+=====================
+Current Release Notes
+=====================
+
+.. release-notes::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/setup.cfg new/python-magnumclient-2.12.0/setup.cfg
--- old/python-magnumclient-2.10.0/setup.cfg 2018-08-06 23:16:07.000000000 +0200
+++ new/python-magnumclient-2.12.0/setup.cfg 2019-03-06 17:48:00.000000000 +0100
@@ -17,6 +17,7 @@
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-magnumclient-2.10.0/tox.ini new/python-magnumclient-2.12.0/tox.ini
--- old/python-magnumclient-2.10.0/tox.ini 2018-08-06 23:13:17.000000000 +0200
+++ new/python-magnumclient-2.12.0/tox.ini 2019-03-06 17:45:56.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
minversion = 1.6
-envlist = py35,py27,pypy,pep8
+envlist = py36,py35,py27,pypy,pep8
skipsdist = True
[testenv]
@@ -83,3 +83,10 @@
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
+
+[testenv:releasenotes]
+basepython = python3
+deps = -r{toxinidir}/doc/requirements.txt
+commands =
+ rm -rf releasenotes/build
+ sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
1
0
Hello community,
here is the log from the commit of package python-keystonemiddleware for openSUSE:Factory checked in at 2019-05-03 22:41:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-keystonemiddleware (Old)
and /work/SRC/openSUSE:Factory/.python-keystonemiddleware.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-keystonemiddleware"
Fri May 3 22:41:03 2019 rev:8 rq:692833 version:6.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-keystonemiddleware/python-keystonemiddleware.changes 2018-09-07 15:37:45.966641667 +0200
+++ /work/SRC/openSUSE:Factory/.python-keystonemiddleware.new.5148/python-keystonemiddleware.changes 2019-05-03 22:41:06.551075055 +0200
@@ -1,0 +2,33 @@
+Mon Apr 8 13:54:07 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 6.0.0
+ - Remove tox_install.sh
+ - Respect delay_auth_decision when Keystone is unavailable
+ - Add auth invalidation in auth_token for identity endpoint update
+ - Stop supporting revocation list
+ - Update reno for stable/rocky
+ - Skip the services with no endpoints when parsing service catalog
+ - import zuul job settings from project-config
+ - Make sure audit middleware use own context
+ - Add py36 tox environment
+ - Change openstack-dev to openstack-discuss
+ - Handle DiscoveryFailure errors
+ - Fix audit target service selection
+ - add python 3.6 unit test job
+ - add lib-forward-testing-python3 test job
+ - add releasenotes to readme.rst
+ - No need to compare CONF content
+ - Replace port 35357 with 5000
+ - Documentation Fix - auth_url Port Number
+ - Remove testr.conf as it's been replaced by stestr
+ - Trivial: Update pypi url to new url
+ - trivial: fix convention in release note
+ - Document endpoint interface and region behavior
+ - switch documentation job to new PTI
+ - Expect paste.deploy and gnocchi/panko options
+ - Use templates for cover and lower-constraints
+ - Fix service_token_role_required option
+ - add python 3.7 unit test job
+ - Added request_id and global_request_id to CADF notifications
+
+-------------------------------------------------------------------
Old:
----
keystonemiddleware-5.2.0.tar.gz
New:
----
keystonemiddleware-6.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-keystonemiddleware.spec ++++++
--- /var/tmp/diff_new_pack.HKCygQ/_old 2019-05-03 22:41:06.915075821 +0200
+++ /var/tmp/diff_new_pack.HKCygQ/_new 2019-05-03 22:41:06.919075830 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-keystonemiddleware
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,13 +12,13 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global sname keystonemiddleware
Name: python-keystonemiddleware
-Version: 5.2.0
+Version: 6.0.0
Release: 0
Summary: Middleware for OpenStack Identity
License: Apache-2.0
@@ -47,8 +47,8 @@
BuildRequires: python2-requests >= 2.14.2
BuildRequires: python2-requests-mock
BuildRequires: python2-six >= 1.10.0
+BuildRequires: python2-stestr
BuildRequires: python2-stevedore
-BuildRequires: python2-testrepository
BuildRequires: python2-testresources
BuildRequires: python2-testtools
BuildRequires: python3-WebOb >= 1.7.1
@@ -71,8 +71,8 @@
BuildRequires: python3-requests >= 2.14.2
BuildRequires: python3-requests-mock
BuildRequires: python3-six >= 1.10.0
+BuildRequires: python3-stestr
BuildRequires: python3-stevedore
-BuildRequires: python3-testrepository
BuildRequires: python3-testresources
BuildRequires: python3-testtools
Requires: python-WebOb >= 1.7.1
@@ -110,7 +110,6 @@
%prep
%autosetup -p1 -n %{sname}-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -125,10 +124,7 @@
rm -rf doc/build/html/.{doctrees,buildinfo}
%check
-export PYTHONWARNINGS="ignore"
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %python_files
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.HKCygQ/_old 2019-05-03 22:41:06.943075880 +0200
+++ /var/tmp/diff_new_pack.HKCygQ/_new 2019-05-03 22:41:06.943075880 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-keystonemiddleware.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/keystonemiddleware/stable/rocky…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/keystonemiddleware/stable/stein…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,keystonemiddleware</param>
</service>
++++++ keystonemiddleware-5.2.0.tar.gz -> keystonemiddleware-6.0.0.tar.gz ++++++
++++ 2212 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-keystoneclient for openSUSE:Factory checked in at 2019-05-03 22:40:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-keystoneclient (Old)
and /work/SRC/openSUSE:Factory/.python-keystoneclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-keystoneclient"
Fri May 3 22:40:58 2019 rev:30 rq:692832 version:3.19.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-keystoneclient/python-keystoneclient.changes 2018-09-07 15:37:41.654646301 +0200
+++ /work/SRC/openSUSE:Factory/.python-keystoneclient.new.5148/python-keystoneclient.changes 2019-05-03 22:41:01.707064857 +0200
@@ -1,0 +2,32 @@
+Mon Apr 8 11:57:54 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.19.0
+ - Switch to stestr
+ - Deprecate region enabled parameter
+ - refactor the getid method in keystoneclient/base.py
+ - Use python3 for functional tests
+ - import zuul job settings from project-config
+ - Add release note link in README
+ - Add Response class to return request-id to caller
+ - Add py36 tox environment
+ - Change openstack-dev to openstack-discuss
+ - Fix keystoneclient-devstack-functional job
+ - Update reno for stable/rocky
+ - Don't quote {posargs} in tox.ini
+ - add python 3.6 unit test job
+ - Add return-request-id-to-caller function(v3/contrib)
+ - Import legacy keystoneclient-dsvm-functional
+ - Add Python 3.6 classifier to setup.cfg
+ - add lib-forward-testing-python3 test job
+ - Make the functional test voting
+ - Convert functional tests to Zuulv3
+ - switch documentation job to new PTI
+ - Add return-request-id-to-caller function(v3)
+ - fix misspelling of 'default'
+ - Update hacking version
+ - Update IdentityProviderManager docstring
+ - Add release notes for return-request-id-to-caller
+ - add python 3.7 unit test job
+ - Use templates for cover and lower-constraints
+
+-------------------------------------------------------------------
Old:
----
python-keystoneclient-3.17.0.tar.gz
New:
----
python-keystoneclient-3.19.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-keystoneclient.spec ++++++
--- /var/tmp/diff_new_pack.KjaeFM/_old 2019-05-03 22:41:02.087065656 +0200
+++ /var/tmp/diff_new_pack.KjaeFM/_new 2019-05-03 22:41:02.091065665 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-keystoneclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-keystoneclient
-Version: 3.17.0
+Version: 3.19.0
Release: 0
Summary: Client library for OpenStack Identity API
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-keystoneclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-keystoneclient/pyth…
+Source0: https://files.pythonhosted.org/packages/source/p/python-keystoneclient/pyth…
BuildRequires: openssl
BuildRequires: openstack-macros
BuildRequires: python-devel
@@ -39,7 +39,7 @@
BuildRequires: python2-pbr >= 2.0.0
BuildRequires: python2-requests-mock
BuildRequires: python2-six >= 1.10.0
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testresources
BuildRequires: python2-testscenarios
BuildRequires: python3-debtcollector >= 1.2.0
@@ -55,7 +55,7 @@
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-requests-mock
BuildRequires: python3-six >= 1.10.0
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testresources
BuildRequires: python3-testscenarios
Requires: python-debtcollector >= 1.2.0
@@ -84,11 +84,10 @@
Identity API.
%prep
-%autosetup -p1 -n python-keystoneclient-3.17.0
+%autosetup -p1 -n python-keystoneclient-3.19.0
%py_req_cleanup
# disable intersphinx - no network access during build
echo "intersphinx_mapping = {}" >> doc/source/conf.py
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -106,9 +105,7 @@
rm -fr html/.doctrees html/.buildinfo
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%doc README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.KjaeFM/_old 2019-05-03 22:41:02.111065707 +0200
+++ /var/tmp/diff_new_pack.KjaeFM/_new 2019-05-03 22:41:02.111065707 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-keystoneclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-keystoneclient/stable/ro…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-keystoneclient/stable/st…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-keystoneclient</param>
</service>
++++++ python-keystoneclient-3.17.0.tar.gz -> python-keystoneclient-3.19.0.tar.gz ++++++
++++ 2057 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-keystoneauth1 for openSUSE:Factory checked in at 2019-05-03 22:40:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-keystoneauth1 (Old)
and /work/SRC/openSUSE:Factory/.python-keystoneauth1.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-keystoneauth1"
Fri May 3 22:40:54 2019 rev:10 rq:692831 version:3.13.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-keystoneauth1/python-keystoneauth1.changes 2018-09-26 14:23:00.209961742 +0200
+++ /work/SRC/openSUSE:Factory/.python-keystoneauth1.new.5148/python-keystoneauth1.changes 2019-05-03 22:40:58.931059012 +0200
@@ -1,0 +2,35 @@
+Mon Apr 8 13:56:08 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.13.1
+ - add release notes to readme.rst
+ - Replacing the HTTP protocal with HTTPS in using-sessions.rst.
+ - Add support for client-side rate limiting
+ - Drop py35 jobs
+ - Use template for lower-constraints
+ - Add Keystone2Keystone example
+ - Fix rate semaphore for keystoneclient
+ - import zuul job settings from project-config
+ - Expose app creds and new attrs in fixtures
+ - Add py36 tox environment
+ - Change openstack-dev to openstack-discuss
+ - Cache root urls with and without trailing slashes
+ - Update reno for stable/rocky
+ - Make new-style single endpoint version discovery actually work for ironic
+ - Remove os-testr from requirements
+ - Remove shade jobs
+ - add python 3.6 unit test job
+ - Protect against endpoint_data not existing
+ - Reformat Adapter docstring
+ - add lib-forward-testing-python3 test job
+ - Add ability to filter version data by service-type
+ - Fix version discovery for clouds with int project_ids
+ - switch documentation job to new PTI
+ - Add support for ironic single-version responses
+ - Change log hashing to SHA256
+ - add python 3.7 unit test job
+ - Add missing release note for ironic discovery fix
+ - fix wrong spelling of "unnecessary"
+ - Update sphinx extension logging
+ - Expose application credentials in AccessInfoV3
+
+-------------------------------------------------------------------
Old:
----
keystoneauth1-3.10.0.tar.gz
New:
----
keystoneauth1-3.13.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-keystoneauth1.spec ++++++
--- /var/tmp/diff_new_pack.3Bmw4a/_old 2019-05-03 22:41:00.031061328 +0200
+++ /var/tmp/diff_new_pack.3Bmw4a/_new 2019-05-03 22:41:00.043061354 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-keystoneauth1
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,13 +12,13 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global sname keystoneauth1
Name: python-keystoneauth1
-Version: 3.10.0
+Version: 3.13.1
Release: 0
Summary: OpenStack authenticating tools
License: Apache-2.0
@@ -34,7 +34,6 @@
BuildRequires: python2-mock
BuildRequires: python2-oauthlib
BuildRequires: python2-os-service-types >= 1.2.0
-BuildRequires: python2-os-testr
BuildRequires: python2-oslo.config
BuildRequires: python2-oslo.utils
BuildRequires: python2-oslotest
@@ -53,7 +52,6 @@
BuildRequires: python3-mock
BuildRequires: python3-oauthlib
BuildRequires: python3-os-service-types >= 1.2.0
-BuildRequires: python3-os-testr
BuildRequires: python3-oslo.config
BuildRequires: python3-oslo.utils
BuildRequires: python3-oslotest
@@ -93,9 +91,8 @@
Documentation for OpenStack authenticating tools.
%prep
-%autosetup -n %{sname}-%{version}
+%autosetup -p1 -n %{sname}-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
# cleanup intersphinx (we have no network during build)
echo "intersphinx_mapping = {}" >> doc/source/conf.py
++++++ _service ++++++
--- /var/tmp/diff_new_pack.3Bmw4a/_old 2019-05-03 22:41:00.067061404 +0200
+++ /var/tmp/diff_new_pack.3Bmw4a/_new 2019-05-03 22:41:00.067061404 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-keystoneauth1.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/keystoneauth/stable/rocky/requi…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/keystoneauth/stable/stein/requi…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,keystoneauth</param>
</service>
++++++ keystoneauth1-3.10.0.tar.gz -> keystoneauth1-3.13.1.tar.gz ++++++
++++ 1910 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-k8sclient for openSUSE:Factory checked in at 2019-05-03 22:40:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-k8sclient (Old)
and /work/SRC/openSUSE:Factory/.python-k8sclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-k8sclient"
Fri May 3 22:40:51 2019 rev:8 rq:692830 version:0.4.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-k8sclient/python-k8sclient.changes 2018-09-07 15:37:32.630656001 +0200
+++ /work/SRC/openSUSE:Factory/.python-k8sclient.new.5148/python-k8sclient.changes 2019-05-03 22:40:54.239049134 +0200
@@ -1,0 +2,5 @@
+Mon Apr 8 12:32:02 UTC 2019 - Dirk Mueller <dmueller(a)suse.com>
+
+- switch to stable/stein template
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-k8sclient.spec ++++++
--- /var/tmp/diff_new_pack.NTkeU6/_old 2019-05-03 22:40:55.607052014 +0200
+++ /var/tmp/diff_new_pack.NTkeU6/_new 2019-05-03 22:40:55.643052090 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-k8sclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
++++++ _service ++++++
--- /var/tmp/diff_new_pack.NTkeU6/_old 2019-05-03 22:40:55.943052721 +0200
+++ /var/tmp/diff_new_pack.NTkeU6/_new 2019-05-03 22:40:55.967052772 +0200
@@ -1,6 +1,6 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-k8sclient.spec</param>
<param name="requirements">https://raw.githubusercontent.com/openstack/python-k8sclient/stable/ocata/r…</param>
</service>
1
0
Hello community,
here is the log from the commit of package python-ironicclient for openSUSE:Factory checked in at 2019-05-03 22:40:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ironicclient (Old)
and /work/SRC/openSUSE:Factory/.python-ironicclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ironicclient"
Fri May 3 22:40:48 2019 rev:15 rq:692829 version:2.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ironicclient/python-ironicclient.changes 2019-02-26 22:18:55.618139492 +0100
+++ /work/SRC/openSUSE:Factory/.python-ironicclient.new.5148/python-ironicclient.changes 2019-05-03 22:40:49.763039710 +0200
@@ -1,0 +2,39 @@
+Mon Apr 8 12:28:23 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.7.0
+ - Follow-up to the configdrive change
+ - Fix a typo in the docstring
+ - pass endpoint interface to http client
+ - Update release notes
+ - Add node owner
+ - import zuul job settings from project-config
+ - Minor fixes to README.rst
+ - Change openstack-dev to openstack-discuss
+ - [Trivial] Allocation API: fix incorrect parameter description
+ - Update reno for stable/rocky
+ - Update min tox version to 2.0
+ - Deploy templates: client support
+ - add python 3.6 unit test job
+ - Support node description
+ - Add Python 3.6 classifier to setup.cfg
+ - Fix a LOG.warning which didn't work properly
+ - Add Events support
+ - Replace assertRaisesRegexp with assertRaisesRegex
+ - Allocation API: client API and CLI
+ - Add 'hostname' to port's local link connection
+ - switch documentation job to new PTI
+ - Replace mock.has_calls() with assert_has_calls
+ - Support passing a dictionary for configdrive
+ - Add is-smartnic port attribute to port command
+ - Support for conductors exposed from API
+ - Support for protected and protected_reason fields
+ - Add management of automated_clean field
+ - [Follow Up] Add 'hostname' to port's local link connection
+ - fix typo
+ - Sort columns in node detailed list alphabetically
+ - Accept 'valid_interfaces' in client setup
+ - add python 3.7 unit test job
+ - Modify useful links to project resources in README
+ - Use templates for cover and lower-constraints
+
+-------------------------------------------------------------------
Old:
----
python-ironicclient-2.5.1.tar.gz
New:
----
python-ironicclient-2.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ironicclient.spec ++++++
--- /var/tmp/diff_new_pack.QHado8/_old 2019-05-03 22:40:51.159042650 +0200
+++ /var/tmp/diff_new_pack.QHado8/_new 2019-05-03 22:40:51.183042700 +0200
@@ -17,13 +17,13 @@
Name: python-ironicclient
-Version: 2.5.1
+Version: 2.7.0
Release: 0
Summary: Python API and CLI for OpenStack Ironic
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-ironicclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-ironicclient/python…
+Source0: https://files.pythonhosted.org/packages/source/p/python-ironicclient/python…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-Babel
@@ -35,7 +35,6 @@
BuildRequires: python2-jsonschema >= 2.6.0
BuildRequires: python2-mock
BuildRequires: python2-openstackclient
-BuildRequires: python2-os-testr
BuildRequires: python2-osc-lib >= 1.10.0
BuildRequires: python2-oslo.i18n >= 3.15.3
BuildRequires: python2-oslo.utils >= 3.33.0
@@ -44,6 +43,7 @@
BuildRequires: python2-python-subunit
BuildRequires: python2-requests >= 2.14.2
BuildRequires: python2-requests-mock
+BuildRequires: python2-stestr
BuildRequires: python2-testtools
BuildRequires: python3-Babel
BuildRequires: python3-PrettyTable >= 0.7.1
@@ -55,7 +55,6 @@
BuildRequires: python3-jsonschema >= 2.6.0
BuildRequires: python3-mock
BuildRequires: python3-openstackclient
-BuildRequires: python3-os-testr
BuildRequires: python3-osc-lib >= 1.10.0
BuildRequires: python3-oslo.i18n >= 3.15.3
BuildRequires: python3-oslo.utils >= 3.33.0
@@ -64,6 +63,7 @@
BuildRequires: python3-python-subunit
BuildRequires: python3-requests >= 2.14.2
BuildRequires: python3-requests-mock
+BuildRequires: python3-stestr
BuildRequires: python3-testtools
Requires: python-PrettyTable >= 0.7.1
Requires: python-PyYAML >= 3.12
@@ -74,6 +74,7 @@
Requires: python-openstackclient
Requires: python-osc-lib >= 1.10.0
Requires: python-oslo.i18n >= 3.15.3
+Requires: python-oslo.serialization >= 2.18.0
Requires: python-oslo.utils >= 3.33.0
Requires: python-pbr >= 2.0.0
Requires: python-requests >= 2.14.2
@@ -110,14 +111,13 @@
This package contains auto-generated documentation.
%prep
-%autosetup -p1 -n python-ironicclient-2.5.1
+%autosetup -p1 -n python-ironicclient-2.7.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
-PBR_VERSION=2.5.1 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=2.7.0 sphinx-build -b html doc/source doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.QHado8/_old 2019-05-03 22:40:51.523043416 +0200
+++ /var/tmp/diff_new_pack.QHado8/_new 2019-05-03 22:40:51.543043458 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/pyth…</param>
+ <param name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/pyth…</param>
<param name="output-name">python-ironicclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-ironicclient/stable/rock…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-ironicclient/stable/stei…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-ironicclient</param>
</service>
++++++ python-ironicclient-2.5.1.tar.gz -> python-ironicclient-2.7.0.tar.gz ++++++
++++ 6610 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-ironic-inspector-client for openSUSE:Factory checked in at 2019-05-03 22:40:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ironic-inspector-client (Old)
and /work/SRC/openSUSE:Factory/.python-ironic-inspector-client.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ironic-inspector-client"
Fri May 3 22:40:44 2019 rev:10 rq:692828 version:3.5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-ironic-inspector-client/python-ironic-inspector-client.changes 2018-09-26 14:22:55.101969876 +0200
+++ /work/SRC/openSUSE:Factory/.python-ironic-inspector-client.new.5148/python-ironic-inspector-client.changes 2019-05-03 22:40:47.299034523 +0200
@@ -1,0 +2,21 @@
+Mon Apr 8 12:27:57 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 3.5.0
+ - Remove dsvm from zuulv3 job names
+ - Support loading introspection rules from YAML files
+ - Update tox.ini to support Python 3.x unit tests
+ - Fix setup.cfg for release
+ - add python 3.7 unit test job
+ - Follow-up check-errors flag
+ - Change openstack-dev to openstack-discuss
+ - Update reno for stable/rocky
+ - CI: stop trying to pull the tempest plugin from ironic-inspector
+ - Update min tox version to 2.0
+ - Add check-errors flag to Introspection
+ - switch documentation job to new PTI
+ - Change basepython to python3
+ - add python 3.6 unit test job
+ - Zuul migration
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
python-ironic-inspector-client-3.3.0.tar.gz
New:
----
python-ironic-inspector-client-3.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ironic-inspector-client.spec ++++++
--- /var/tmp/diff_new_pack.RIPGMt/_old 2019-05-03 22:40:47.699035365 +0200
+++ /var/tmp/diff_new_pack.RIPGMt/_new 2019-05-03 22:40:47.699035365 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-ironic-inspector-client
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-ironic-inspector-client
-Version: 3.3.0
+Version: 3.5.0
Release: 0
Summary: Python client and CLI tool for Ironic Inspector
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-ironic-inspector-client
-Source0: https://files.pythonhosted.org/packages/source/p/python-ironic-inspector-cl…
+Source0: https://files.pythonhosted.org/packages/source/p/python-ironic-inspector-cl…
BuildRequires: openstack-macros
BuildRequires: python-Sphinx
BuildRequires: python-devel
@@ -54,7 +54,7 @@
This package contains Python client and command line tool for Ironic Inspector.
%prep
-%autosetup -p1 -n python-ironic-inspector-client-3.3.0
+%autosetup -p1 -n python-ironic-inspector-client-3.5.0
sed -i -e 's,hacking.*,,' test-requirements.txt
sed -i -e 's,coverage.*,,' test-requirements.txt
sed -i -e 's,doc8.*,,' test-requirements.txt
++++++ _service ++++++
--- /var/tmp/diff_new_pack.RIPGMt/_old 2019-05-03 22:40:47.719035407 +0200
+++ /var/tmp/diff_new_pack.RIPGMt/_new 2019-05-03 22:40:47.719035407 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/pyth…</param>
+ <param name="input-template">https://git.openstack.org/cgit/openstack/rpm-packaging/plain/openstack/pyth…</param>
<param name="output-name">python-ironic-inspector-client.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-ironic-inspector-client/…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-ironic-inspector-client/…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-ironic-inspector-client</param>
</service>
++++++ python-ironic-inspector-client-3.3.0.tar.gz -> python-ironic-inspector-client-3.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/AUTHORS new/python-ironic-inspector-client-3.5.0/AUTHORS
--- old/python-ironic-inspector-client-3.3.0/AUTHORS 2018-07-26 10:48:57.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/AUTHORS 2019-03-08 13:28:32.000000000 +0100
@@ -1,20 +1,26 @@
+98k <18552437190(a)163.com>
Andreas Jaeger <aj(a)suse.com>
Anton Arefiev <aarefiev(a)mirantis.com>
Bob Fournier <bfournie(a)redhat.com>
Cao Xuan Hoang <hoangcx(a)vn.fujitsu.com>
Clenimar Filemon <clenimar(a)lsd.ufcg.edu.br>
+Corey Bryant <corey.bryant(a)canonical.com>
Dmitry Tantsur <divius.inside(a)gmail.com>
Dmitry Tantsur <dtantsur(a)redhat.com>
Doug Hellmann <doug(a)doughellmann.com>
Flavio Percoco <flaper87(a)gmail.com>
+Iury Gregory Melo Ferreira <imelofer(a)redhat.com>
+Iury Gregory Melo Ferreira <iurygregory(a)gmail.com>
James E. Blair <jeblair(a)redhat.com>
Janonymous <janonymous.codevulture(a)gmail.com>
Jay Faulkner <jay(a)jvf.cc>
Jim Rollenhagen <jim(a)jimrollenhagen.com>
John L. Villalovos <john.l.villalovos(a)intel.com>
Julia Kreger <juliaashleykreger(a)gmail.com>
+Kaifeng Wang <kaifeng.w(a)gmail.com>
Luong Anh Tuan <tuanla(a)vn.fujitsu.com>
Monty Taylor <mordred(a)inaugust.com>
+Nguyen Hai Truong <truongnh(a)vn.fujitsu.com>
Nguyen Hung Phuong <phuongnh(a)vn.fujitsu.com>
OpenStack Release Bot <infra-root(a)openstack.org>
Ruby Loo <ruby.loo(a)intel.com>
@@ -22,7 +28,6 @@
Tang Chen <chen.tang(a)easystack.cn>
Tao Li <litao3721(a)126.com>
Yuiko Takada <yui-takada(a)tg.jp.nec.com>
-Zuul <zuul(a)review.openstack.org>
chenxing <chen.xing(a)99cloud.net>
dparalen <vetrisko(a)gmail.com>
fpxie <fpxie(a)fiberhome.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/ChangeLog new/python-ironic-inspector-client-3.5.0/ChangeLog
--- old/python-ironic-inspector-client-3.3.0/ChangeLog 2018-07-26 10:48:57.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/ChangeLog 2019-03-08 13:28:32.000000000 +0100
@@ -1,6 +1,30 @@
CHANGES
=======
+3.5.0
+-----
+
+* add python 3.7 unit test job
+* Remove dsvm from zuulv3 job names
+* Zuul migration
+* Update tox.ini to support Python 3.x unit tests
+* Change openstack-dev to openstack-discuss
+* Follow-up check-errors flag
+* Add check-errors flag to Introspection
+* Update min tox version to 2.0
+
+3.4.0
+-----
+
+* Change basepython to python3
+* Support loading introspection rules from YAML files
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* CI: stop trying to pull the tempest plugin from ironic-inspector
+* Update reno for stable/rocky
+* Fix setup.cfg for release
+
3.3.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/PKG-INFO new/python-ironic-inspector-client-3.5.0/PKG-INFO
--- old/python-ironic-inspector-client-3.3.0/PKG-INFO 2018-07-26 10:48:58.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/PKG-INFO 2019-03-08 13:28:32.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: python-ironic-inspector-client
-Version: 3.3.0
+Version: 3.5.0
Summary: Python client for Ironic Inspector
Home-page: https://docs.openstack.org/python-ironic-inspector-client/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: Apache-2
Description: Ironic Inspector Client
=======================
@@ -46,5 +46,5 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
-Provides-Extra: cli
Provides-Extra: test
+Provides-Extra: cli
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/RELEASENOTES.rst new/python-ironic-inspector-client-3.5.0/RELEASENOTES.rst
--- old/python-ironic-inspector-client-3.3.0/RELEASENOTES.rst 2018-07-26 10:48:58.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-==============================
-python-ironic-inspector-client
-==============================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/doc/source/cli/index.rst new/python-ironic-inspector-client-3.5.0/doc/source/cli/index.rst
--- old/python-ironic-inspector-client-3.3.0/doc/source/cli/index.rst 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/doc/source/cli/index.rst 2019-03-08 13:26:51.000000000 +0100
@@ -21,7 +21,7 @@
::
- $ openstack baremetal introspection start [--wait] NODE_ID [NODE_ID ...]
+ $ openstack baremetal introspection start [--wait] [--check-errors] NODE_ID [NODE_ID ...]
* ``NODE_ID`` - Ironic node UUID or name;
@@ -36,6 +36,14 @@
With ``--wait`` flag it waits until introspection ends for all given nodes,
then displays the results as a table.
+The ``--check-errors`` flag verifies if any error occurred during the
+introspection of the selected nodes while waiting for the results. If any error
+has occurred in the introspection result of selected nodes no output is
+displayed, otherwise it shows the result as a table.
+
+.. note::
+ ``--check-errors`` can only be used with ``--wait``
+
Query introspection status
--------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/shell.py new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/shell.py
--- old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/shell.py 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/shell.py 2019-03-08 13:26:51.000000000 +0100
@@ -19,7 +19,10 @@
import sys
from osc_lib.command import command
+from osc_lib import exceptions
+from osc_lib.i18n import _
from osc_lib import utils
+import yaml
import ironic_inspector_client
from ironic_inspector_client import resource as res
@@ -70,9 +73,19 @@
action='store_true',
help='wait for introspection to finish; the result'
' will be displayed in the end')
+ parser.add_argument('--check-errors',
+ action='store_true',
+ help='check if errors occurred during the'
+ ' introspection; if any error occurs only the'
+ ' errors are displayed; can only be used with'
+ ' --wait')
return parser
def take_action(self, parsed_args):
+ if parsed_args.check_errors and not parsed_args.wait:
+ raise exceptions.CommandError(
+ _("--check-errors can only be used with --wait"))
+
client = self.app.client_manager.baremetal_introspection
for uuid in parsed_args.node:
client.introspect(uuid)
@@ -82,6 +95,14 @@
result = client.wait_for_finish(parsed_args.node)
result = [(uuid, s.get('error'))
for uuid, s in result.items()]
+ if parsed_args.check_errors:
+ uuids_errors = "\n".join("%s (%s)" % node_info
+ for node_info in result
+ if node_info[1] is not None)
+ if uuids_errors:
+ raise Exception(
+ _("Introspection failed for some nodes: %s")
+ % uuids_errors)
else:
result = []
@@ -176,19 +197,19 @@
class RuleImportCommand(command.Lister):
- """Import one or several introspection rules from a json file."""
+ """Import one or several introspection rules from a JSON/YAML file."""
COLUMNS = ("UUID", "Description")
def get_parser(self, prog_name):
parser = super(RuleImportCommand, self).get_parser(prog_name)
- parser.add_argument('file', help='JSON file to import, may contain '
- 'one or several rules')
+ parser.add_argument('file', help='JSON or YAML file to import, may '
+ 'contain one or several rules')
return parser
def take_action(self, parsed_args):
with open(parsed_args.file, 'r') as fp:
- rules = json.load(fp)
+ rules = yaml.safe_load(fp)
if not isinstance(rules, list):
rules = [rules]
client = self.app.client_manager.baremetal_introspection
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/test/functional.py new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/functional.py
--- old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/test/functional.py 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/functional.py 2019-03-08 13:26:51.000000000 +0100
@@ -22,6 +22,8 @@
import tempfile
import unittest
+import six
+
from ironic_inspector.common import swift
from ironic_inspector import introspection_state as istate
from ironic_inspector.test import functional
@@ -332,17 +334,21 @@
return fake_status
def test_cli_negative(self):
+ if six.PY3:
+ msg_missing_param = 'the following arguments are required'
+ else:
+ msg_missing_param = 'too few arguments'
err = self.run_cli('start', expect_error=True)
- self.assertIn('too few arguments', err)
+ self.assertIn(msg_missing_param, err)
err = self.run_cli('status', expect_error=True)
- self.assertIn('too few arguments', err)
+ self.assertIn(msg_missing_param, err)
err = self.run_cli('rule', 'show', 'uuid', expect_error=True)
self.assertIn('not found', err)
err = self.run_cli('rule', 'delete', 'uuid', expect_error=True)
self.assertIn('not found', err)
err = self.run_cli('interface', 'list', expect_error=True)
- self.assertIn('too few arguments', err)
+ self.assertIn(msg_missing_param, err)
def test_introspect_get_status(self):
self.run_cli('start', self.uuid)
@@ -373,7 +379,7 @@
'actions': [{'action': 'fail', 'message': 'boom'}],
'description': 'Cool actions',
'uuid': self.uuid}
- with tempfile.NamedTemporaryFile() as fp:
+ with tempfile.NamedTemporaryFile(mode='w') as fp:
json.dump(rule, fp)
fp.flush()
res = self.run_cli('rule', 'import', fp.name, parse_json=True)
@@ -393,7 +399,7 @@
res = self.run_cli('rule', 'list', parse_json=True)
self.assertEqual([], res)
- with tempfile.NamedTemporaryFile() as fp:
+ with tempfile.NamedTemporaryFile(mode='w') as fp:
rule.pop('uuid')
json.dump([rule, rule], fp)
fp.flush()
@@ -420,23 +426,21 @@
u'Switch Port VLAN IDs': [101, 102, 106]}
res = self.run_cli('interface', 'list', self.uuid, parse_json=True)
- res.sort()
- self.assertEqual(expected_eth1, res[0])
- self.assertEqual(expected_eth3, res[1])
+ self.assertIn(expected_eth1, res)
+ self.assertIn(expected_eth3, res)
# Filter on vlan
res = self.run_cli('interface', 'list', self.uuid, '--vlan', '106',
parse_json=True)
- res.sort()
- self.assertEqual(expected_eth3, res[0])
+ self.assertIn(expected_eth3, res)
# Select fields
res = self.run_cli('interface', 'list', self.uuid, '--fields',
'switch_port_mtu',
parse_json=True)
- res.sort()
- self.assertEqual({u'Switch Port MTU': 1514}, res[0])
- self.assertEqual({u'Switch Port MTU': 9216}, res[1])
+
+ self.assertIn({u'Switch Port MTU': 1514}, res)
+ self.assertIn({u'Switch Port MTU': 9216}, res)
@mock.patch.object(swift, 'get_introspection_data', autospec=True)
def test_interface_show(self, get_mock):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/test/test_shell.py new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/test_shell.py
--- old/python-ironic-inspector-client-3.3.0/ironic_inspector_client/test/test_shell.py 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/ironic_inspector_client/test/test_shell.py 2019-03-08 13:26:51.000000000 +0100
@@ -15,6 +15,7 @@
import collections
import mock
+from osc_lib import exceptions
from osc_lib.tests import utils
import six
import tempfile
@@ -101,6 +102,56 @@
self.assertEqual([('uuid1', None), ('uuid2', 'boom'), ('uuid3', None)],
sorted(values))
+ def test_wait_with_check_errors_no_raise_exception(self):
+ nodes = ['uuid1', 'uuid2', 'uuid3']
+ arglist = ['--wait'] + ['--check-errors'] + nodes
+ verifylist = [('node', nodes), ('wait', True), ('check_errors', True)]
+ self.client.wait_for_finish.return_value = {
+ 'uuid1': {'finished': True, 'error': None},
+ 'uuid2': {'finished': True, 'error': None},
+ 'uuid3': {'finished': True, 'error': None},
+ }
+
+ cmd = shell.StartCommand(self.app, None)
+ parsed_args = self.check_parser(cmd, arglist, verifylist)
+ _c, values = cmd.take_action(parsed_args)
+
+ calls = [mock.call(node) for node in nodes]
+ self.assertEqual(calls, self.client.introspect.call_args_list)
+ self.assertEqual([('uuid1', None), ('uuid2', None), ('uuid3', None)],
+ sorted(values))
+
+ def test_wait_with_check_errors(self):
+ nodes = ['uuid1', 'uuid2', 'uuid3']
+ arglist = ['--wait'] + ['--check-errors'] + nodes
+ verifylist = [('node', nodes), ('wait', True), ('check_errors', True)]
+ self.client.wait_for_finish.return_value = {
+ 'uuid1': {'finished': True, 'error': None},
+ 'uuid2': {'finished': True, 'error': 'boom'},
+ 'uuid3': {'finished': True, 'error': None},
+ }
+
+ cmd = shell.StartCommand(self.app, None)
+ parsed_args = self.check_parser(cmd, arglist, verifylist)
+ msg = "Introspection failed for"
+ self.assertRaisesRegex(Exception, msg, cmd.take_action, parsed_args)
+
+ def test_check_errors_alone(self):
+ nodes = ['uuid1', 'uuid2', 'uuid3']
+ arglist = ['--check-errors'] + nodes
+ verifylist = [('node', nodes), ('check_errors', True)]
+ self.client.wait_for_finish.return_value = {
+ 'uuid1': {'finished': True, 'error': None},
+ 'uuid2': {'finished': True, 'error': 'boom'},
+ 'uuid3': {'finished': True, 'error': None},
+ }
+
+ cmd = shell.StartCommand(self.app, None)
+ parsed_args = self.check_parser(cmd, arglist, verifylist)
+ msg = "--check-errors can only be used with --wait"
+ self.assertRaisesRegex(exceptions.CommandError, msg, cmd.take_action,
+ parsed_args)
+
def test_abort(self):
node = 'uuid1'
arglist = [node]
@@ -214,6 +265,32 @@
f.flush()
arglist = [f.name]
+ verifylist = [('file', f.name)]
+
+ self.rules_api.from_json.side_effect = iter([
+ {'uuid': '1', 'description': 'd1', 'links': []},
+ {'uuid': '2', 'description': 'd2', 'links': []}
+ ])
+
+ cmd = shell.RuleImportCommand(self.app, None)
+ parsed_args = self.check_parser(cmd, arglist, verifylist)
+ cols, values = cmd.take_action(parsed_args)
+
+ self.assertEqual(('UUID', 'Description'), cols)
+ self.assertEqual([('1', 'd1'), ('2', 'd2')], values)
+ self.rules_api.from_json.assert_any_call({'foo': 'bar'})
+ self.rules_api.from_json.assert_any_call({'answer': 42})
+
+ def test_import_yaml(self):
+ f = tempfile.NamedTemporaryFile()
+ self.addCleanup(f.close)
+ f.write(b"""---
+- foo: bar
+- answer: 42
+""")
+ f.flush()
+
+ arglist = [f.name]
verifylist = [('file', f.name)]
self.rules_api.from_json.side_effect = iter([
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml new/python-ironic-inspector-client-3.5.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml
--- old/python-ironic-inspector-client-3.3.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml 1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-- hosts: primary
- tasks:
-
- - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
- synchronize:
- src: '{{ ansible_user_dir }}/workspace/'
- dest: '{{ zuul.executor.log_root }}'
- mode: pull
- copy_links: true
- verify_host: true
- rsync_opts:
- - --include=/logs/**
- - --include=*/
- - --exclude=*
- - --prune-empty-dirs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml new/python-ironic-inspector-client-3.5.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml
--- old/python-ironic-inspector-client-3.3.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml 1970-01-01 01:00:00.000000000 +0100
@@ -1,143 +0,0 @@
-- hosts: all
- name: Autoconverted job legacy-tempest-dsvm-python-ironic-inspector-client from
- old job gate-tempest-dsvm-python-ironic-inspector-client-ubuntu-xenial
- tasks:
-
- - name: Ensure legacy workspace directory
- file:
- path: '{{ ansible_user_dir }}/workspace'
- state: directory
-
- - shell:
- cmd: |
- set -e
- set -x
- cat > clonemap.yaml << EOF
- clonemap:
- - name: openstack-infra/devstack-gate
- dest: devstack-gate
- EOF
- /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
- git://git.openstack.org \
- openstack-infra/devstack-gate
- executable: /bin/bash
- chdir: '{{ ansible_user_dir }}/workspace'
- environment: '{{ zuul | zuul_legacy_vars }}'
-
- - shell:
- cmd: |
- cat << 'EOF' >> ironic-extra-vars
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_SPECS_RAM=384"
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_RAMDISK_TYPE=tinyipa"
- EOF
- chdir: '{{ ansible_user_dir }}/workspace'
- environment: '{{ zuul | zuul_legacy_vars }}'
-
- - shell:
- cmd: |
- cat << 'EOF' >> ironic-extra-vars
- export DEVSTACK_GATE_TEMPEST_REGEX="InspectorBasicTest"
-
- EOF
- chdir: '{{ ansible_user_dir }}/workspace'
- environment: '{{ zuul | zuul_legacy_vars }}'
-
- - shell:
- cmd: |
- cat << 'EOF' >> ironic-extra-vars
- export PROJECTS="openstack/ironic-inspector $PROJECTS"
- export PROJECTS="openstack/python-ironic-inspector-client $PROJECTS"
- export DEVSTACK_GATE_IRONIC_INSPECTOR=1
-
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic-inspector git://git.openstack.org/openstack/ironic-inspector"
-
- # use tempest plugin
- if [[ "$ZUUL_BRANCH" != "master" ]] ; then
- # NOTE(jroll) if this is not a patch against master, then
- # fetch master to install the plugin
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' git+git://git.openstack.org/openstack/ironic-inspector'"
- else
- # on master, use the local change, so we can pick up any changes to the plugin
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic-inspector'"
- fi
-
- EOF
- chdir: '{{ ansible_user_dir }}/workspace'
- environment: '{{ zuul | zuul_legacy_vars }}'
-
- - shell:
- cmd: |
- cat << 'EOF' >> ironic-extra-vars
- export DEVSTACK_PROJECT_FROM_GIT="python-ironic-inspector-client,$DEVSTACK_PROJECT_FROM_GIT"
-
- EOF
- chdir: '{{ ansible_user_dir }}/workspace'
- environment: '{{ zuul | zuul_legacy_vars }}'
-
- - shell:
- cmd: |
- cat << 'EOF' >> ironic-vars-early
- # use tempest plugin
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"TEMPEST_PLUGINS+=' /opt/stack/new/ironic-tempest-plugin'"
- export TEMPEST_CONCURRENCY=1
- EOF
- chdir: '{{ ansible_user_dir }}/workspace'
- environment: '{{ zuul | zuul_legacy_vars }}'
-
- - shell:
- cmd: |
- set -e
- set -x
- export PROJECTS="openstack/ironic $PROJECTS"
- export PROJECTS="openstack/ironic-lib $PROJECTS"
- export PROJECTS="openstack/ironic-python-agent $PROJECTS"
- export PROJECTS="openstack/ironic-tempest-plugin $PROJECTS"
- export PROJECTS="openstack/python-ironicclient $PROJECTS"
- export PROJECTS="openstack/pyghmi $PROJECTS"
- export PROJECTS="openstack/virtualbmc $PROJECTS"
- export PYTHONUNBUFFERED=true
- export DEVSTACK_GATE_TEMPEST=1
- export DEVSTACK_GATE_IRONIC=1
- export DEVSTACK_GATE_NEUTRON=1
- export DEVSTACK_GATE_VIRT_DRIVER=ironic
- export DEVSTACK_GATE_CONFIGDRIVE=1
- export DEVSTACK_GATE_IRONIC_DRIVER=ipmi
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEFAULT_DEPLOY_INTERFACE=direct"
- # direct deploy requires Swift temporary URLs
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"SWIFT_ENABLE_TEMPURLS=True"
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"SWIFT_TEMPURL_KEY=secretkey"
-
- export BRANCH_OVERRIDE=default
- if [ "$BRANCH_OVERRIDE" != "default" ] ; then
- export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
- fi
-
- if [[ ! "stable/newton stable/ocata stable/pike" =~ $ZUUL_BRANCH ]] ; then
- export DEVSTACK_GATE_TLSPROXY=1
- fi
-
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_TEMPEST_WHOLE_DISK_IMAGE=True"
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_EPHEMERAL_DISK=0"
-
- export DEVSTACK_GATE_IRONIC_BUILD_RAMDISK=0
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_INSPECTOR_BUILD_RAMDISK=False"
-
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_VM_COUNT=1"
-
- # Ensure the ironic-vars-EARLY file exists
- touch ironic-vars-early
- # Pull in the EARLY variables injected by the optional builders
- source ironic-vars-early
-
- export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
-
- # Ensure the ironic-EXTRA-vars file exists
- touch ironic-extra-vars
- # Pull in the EXTRA variables injected by the optional builders
- source ironic-extra-vars
-
- cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
- ./safe-devstack-vm-gate-wrap.sh
- executable: /bin/bash
- chdir: '{{ ansible_user_dir }}/workspace'
- environment: '{{ zuul | zuul_legacy_vars }}'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/PKG-INFO new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/PKG-INFO
--- old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/PKG-INFO 2018-07-26 10:48:57.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/PKG-INFO 2019-03-08 13:28:32.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 2.1
Name: python-ironic-inspector-client
-Version: 3.3.0
+Version: 3.5.0
Summary: Python client for Ironic Inspector
Home-page: https://docs.openstack.org/python-ironic-inspector-client/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: Apache-2
Description: Ironic Inspector Client
=======================
@@ -46,5 +46,5 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
-Provides-Extra: cli
Provides-Extra: test
+Provides-Extra: cli
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/SOURCES.txt new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/SOURCES.txt
--- old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/SOURCES.txt 2018-07-26 10:48:58.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/SOURCES.txt 2019-03-08 13:28:32.000000000 +0100
@@ -28,8 +28,6 @@
ironic_inspector_client/test/test_init.py
ironic_inspector_client/test/test_shell.py
ironic_inspector_client/test/test_v1.py
-playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml
-playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml
python_ironic_inspector_client.egg-info/PKG-INFO
python_ironic_inspector_client.egg-info/SOURCES.txt
python_ironic_inspector_client.egg-info/dependency_links.txt
@@ -52,6 +50,7 @@
releasenotes/notes/drop-setting-ipmi-creds-feature-4965aaba75a40326.yaml
releasenotes/notes/interface-list-show-39cedaca3cd9db9b.yaml
releasenotes/notes/introspect-multiple-uuids-0790d57e0a0b9292.yaml
+releasenotes/notes/introspection-check-errors-587ebb2c00038b5a.yaml
releasenotes/notes/introspection-wait-a7e8fe832c3aaff9.yaml
releasenotes/notes/ks-session-ac614a9abda3e228.yaml
releasenotes/notes/list-introspection-statuses-4ad9e7e56823e754.yaml
@@ -64,6 +63,7 @@
releasenotes/notes/remove-client-64778b2011c26f6b.yaml
releasenotes/notes/rename-func-427aa11c60c2838b.yaml
releasenotes/notes/reprocess-stored-introspection-data-c4910325254426c5.yaml
+releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml
releasenotes/notes/service-catalog-45466d1cfd330231.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
@@ -73,8 +73,9 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
-zuul.d/legacy-python-ironic-inspector-jobs.yaml
-zuul.d/project.yaml
\ No newline at end of file
+zuul.d/project.yaml
+zuul.d/python-ironic-inspector-client-jobs.yaml
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/pbr.json new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/pbr.json
--- old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/pbr.json 2018-07-26 10:48:57.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/pbr.json 2019-03-08 13:28:32.000000000 +0100
@@ -1 +1 @@
-{"git_version": "53bf4e8", "is_release": true}
\ No newline at end of file
+{"git_version": "9bb1150", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/requires.txt new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/requires.txt
--- old/python-ironic-inspector-client-3.3.0/python_ironic_inspector_client.egg-info/requires.txt 2018-07-26 10:48:57.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/python_ironic_inspector_client.egg-info/requires.txt 2019-03-08 13:28:32.000000000 +0100
@@ -3,6 +3,7 @@
oslo.i18n>=3.15.3
oslo.utils>=3.33.0
pbr!=2.1.0,>=2.0.0
+PyYAML>=3.12
requests>=2.14.2
six>=1.10.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/releasenotes/notes/introspection-check-errors-587ebb2c00038b5a.yaml new/python-ironic-inspector-client-3.5.0/releasenotes/notes/introspection-check-errors-587ebb2c00038b5a.yaml
--- old/python-ironic-inspector-client-3.3.0/releasenotes/notes/introspection-check-errors-587ebb2c00038b5a.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-ironic-inspector-client-3.5.0/releasenotes/notes/introspection-check-errors-587ebb2c00038b5a.yaml 2019-03-08 13:26:51.000000000 +0100
@@ -0,0 +1,8 @@
+---
+features:
+ - |
+ Adds ``--check-errors`` flag to verify if any error occurred when
+ waiting for the introspection to finish for the selected nodes.
+ If any error occurs no output is displayed and the exit status for the
+ command is different from 0 (success).
+ The ``--check-errors`` option can only be used with ``--wait``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/releasenotes/notes/reno.cache new/python-ironic-inspector-client-3.5.0/releasenotes/notes/reno.cache
--- old/python-ironic-inspector-client-3.3.0/releasenotes/notes/reno.cache 2018-07-26 10:48:58.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml new/python-ironic-inspector-client-3.5.0/releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml
--- old/python-ironic-inspector-client-3.3.0/releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-ironic-inspector-client-3.5.0/releasenotes/notes/rules-import-yaml-815ebc6ca6fe28b9.yaml 2019-03-08 13:26:51.000000000 +0100
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Supports importing introspection rules from YAML files (in addition to
+ already supported JSON format).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/releasenotes/source/index.rst new/python-ironic-inspector-client-3.5.0/releasenotes/source/index.rst
--- old/python-ironic-inspector-client-3.3.0/releasenotes/source/index.rst 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/releasenotes/source/index.rst 2019-03-08 13:26:51.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/releasenotes/source/rocky.rst new/python-ironic-inspector-client-3.5.0/releasenotes/source/rocky.rst
--- old/python-ironic-inspector-client-3.3.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-ironic-inspector-client-3.5.0/releasenotes/source/rocky.rst 2019-03-08 13:26:51.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/requirements.txt new/python-ironic-inspector-client-3.5.0/requirements.txt
--- old/python-ironic-inspector-client-3.3.0/requirements.txt 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/requirements.txt 2019-03-08 13:26:51.000000000 +0100
@@ -6,5 +6,6 @@
oslo.i18n>=3.15.3 # Apache-2.0
oslo.utils>=3.33.0 # Apache-2.0
pbr!=2.1.0,>=2.0.0 # Apache-2.0
+PyYAML>=3.12 # MIT
requests>=2.14.2 # Apache-2.0
six>=1.10.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/setup.cfg new/python-ironic-inspector-client-3.5.0/setup.cfg
--- old/python-ironic-inspector-client-3.3.0/setup.cfg 2018-07-26 10:48:58.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/setup.cfg 2019-03-08 13:28:32.000000000 +0100
@@ -3,7 +3,7 @@
summary = Python client for Ironic Inspector
description-file = README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/python-ironic-inspector-client/latest/
license = Apache-2
classifier =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/tox.ini new/python-ironic-inspector-client-3.5.0/tox.ini
--- old/python-ironic-inspector-client-3.3.0/tox.ini 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/tox.ini 2019-03-08 13:26:51.000000000 +0100
@@ -1,5 +1,6 @@
[tox]
-envlist = py35,py27,pep8,functional
+minversion = 2.0
+envlist = py3,py27,pep8,functional
[testenv]
install_command = pip install {opts} {packages}
@@ -14,7 +15,7 @@
setenv = PYTHONDONTWRITEBYTECODE=1
[testenv:pep8]
-basepython = python2.7
+basepython = python3
commands =
flake8 ironic_inspector_client
doc8 README.rst doc/source
@@ -26,10 +27,17 @@
commands =
python -m ironic_inspector_client.test.functional
+[testenv:functional-py35]
+basepython = python3
+deps = {[testenv]deps}
+ -r{toxinidir}/functest-requirements.txt
+commands =
+ python -m ironic_inspector_client.test.functional
+
[testenv:func]
# Replaced in CI with "functional" environment but kept here as a
# backwards-compatibility shim for transition
-basepython = python2.7
+basepython = python3
deps = {[testenv:functional]deps}
commands = {[testenv:functional]commands}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/zuul.d/legacy-python-ironic-inspector-jobs.yaml new/python-ironic-inspector-client-3.5.0/zuul.d/legacy-python-ironic-inspector-jobs.yaml
--- old/python-ironic-inspector-client-3.3.0/zuul.d/legacy-python-ironic-inspector-jobs.yaml 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/zuul.d/legacy-python-ironic-inspector-jobs.yaml 1970-01-01 01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-- job:
- name: python-ironic-inspector-client-tempest-dsvm
- parent: legacy-dsvm-base
- irrelevant-files:
- - ^(func|)test-requirements.txt$
- - ^.*\.rst$
- - ^doc/.*$
- - ^ironic_inspector_client/test/.*$
- - ^releasenotes/.*$
- - ^setup.cfg$
- - ^tools/.*$
- - ^tox.ini$
- required-projects:
- - openstack-infra/devstack-gate
- - openstack/ironic
- - openstack/ironic-inspector
- - openstack/ironic-lib
- - openstack/ironic-python-agent
- - openstack/ironic-tempest-plugin
- - openstack/pyghmi
- - openstack/python-ironic-inspector-client
- - openstack/python-ironicclient
- - openstack/tempest
- - openstack/virtualbmc
- run: playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/run.yaml
- post-run: playbooks/legacy/python-ironic-inspector-client-tempest-dsvm/post.yaml
- timeout: 10800
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/zuul.d/project.yaml new/python-ironic-inspector-client-3.5.0/zuul.d/project.yaml
--- old/python-ironic-inspector-client-3.3.0/zuul.d/project.yaml 2018-07-26 10:45:22.000000000 +0200
+++ new/python-ironic-inspector-client-3.5.0/zuul.d/project.yaml 2019-03-08 13:26:51.000000000 +0100
@@ -1,11 +1,24 @@
- project:
+ templates:
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - publish-openstack-docs-pti
+ - check-requirements
+ - release-notes-jobs-python3
+ - openstackclient-plugin-jobs
check:
jobs:
- openstack-tox-functional
- - python-ironic-inspector-client-tempest-dsvm
+ - openstack-tox-functional-py35
+ - python-ironic-inspector-client-tempest-python2
+ - python-ironic-inspector-client-tempest-python3
- openstack-tox-lower-constraints
gate:
jobs:
- openstack-tox-functional
- - python-ironic-inspector-client-tempest-dsvm
+ - openstack-tox-functional-py35
+ - python-ironic-inspector-client-tempest-python2
+ - python-ironic-inspector-client-tempest-python3
- openstack-tox-lower-constraints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-ironic-inspector-client-3.3.0/zuul.d/python-ironic-inspector-client-jobs.yaml new/python-ironic-inspector-client-3.5.0/zuul.d/python-ironic-inspector-client-jobs.yaml
--- old/python-ironic-inspector-client-3.3.0/zuul.d/python-ironic-inspector-client-jobs.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-ironic-inspector-client-3.5.0/zuul.d/python-ironic-inspector-client-jobs.yaml 2019-03-08 13:26:51.000000000 +0100
@@ -0,0 +1,120 @@
+- job:
+ name: python-ironic-inspector-client-base
+ description: Base job for devstack/tempest based python-ironic-inspector-client jobs.
+ parent: devstack-tempest
+ timeout: 10800
+ required-projects:
+ - openstack/ironic
+ - openstack/ironic-inspector
+ - openstack/ironic-lib
+ - openstack/ironic-python-agent
+ - openstack/ironic-tempest-plugin
+ - openstack/pyghmi
+ - openstack/python-ironic-inspector-client
+ - openstack/python-ironicclient
+ - openstack/virtualbmc
+ irrelevant-files:
+ - ^(func|)test-requirements.txt$
+ - ^.*\.rst$
+ - ^doc/.*$
+ - ^ironic_inspector_client/tests/.*$
+ - ^releasenotes/.*$
+ - ^setup.cfg$
+ - ^tox.ini$
+ vars:
+ tox_envlist: all
+ tempest_test_regex: ironic_tempest_plugin.tests.scenario.test_introspection_basic
+ tempest_concurrency: 1
+ devstack_localrc:
+ DEFAULT_INSTANCE_TYPE: baremetal
+ FORCE_CONFIG_DRIVE: True
+ INSTALL_TEMPEST: False # Don't install a tempest package globaly
+ OVERRIDE_PUBLIC_BRIDGE_MTU: 1400
+ TEMPEST_PLUGINS: "'{{ ansible_user_dir }}/src/git.openstack.org/openstack/ironic-tempest-plugin'"
+ VIRT_DRIVER: ironic
+ BUILD_TIMEOUT: 600
+ IRONIC_BAREMETAL_BASIC_OPS: True
+ IRONIC_BUILD_DEPLOY_RAMDISK: False
+ IRONIC_CALLBACK_TIMEOUT: 600
+ IRONIC_DEPLOY_DRIVER: ipmi
+ IRONIC_INSPECTOR_BUILD_RAMDISK: False
+ IRONIC_RAMDISK_TYPE: tinyipa
+ IRONIC_TEMPEST_BUILD_TIMEOUT: 600
+ IRONIC_TEMPEST_WHOLE_DISK_IMAGE: False
+ IRONIC_VM_COUNT: 1
+ IRONIC_VM_EPHEMERAL_DISK: 0
+ IRONIC_VM_LOG_DIR: '{{ devstack_base_dir }}/ironic-bm-logs'
+ IRONIC_VM_SPECS_RAM: 384
+ IRONIC_DEFAULT_DEPLOY_INTERFACE: direct
+ IRONIC_DEFAULT_RESCUE_INTERFACE: agent
+
+ Q_AGENT: openvswitch
+ Q_ML2_TENANT_NETWORK_TYPE: vxlan
+
+ SWIFT_ENABLE_TEMPURLS: True
+ SWIFT_TEMPURL_KEY: secretkey
+
+ devstack_plugins:
+ ironic: git://git.openstack.org/openstack/ironic
+ ironic-inspector: git://git.openstack.org/openstack/ironic-inspector
+ zuul_copy_output:
+ '{{ devstack_base_dir }}/ironic-bm-logs': 'logs'
+ devstack_services:
+ c-api: False
+ c-bak: False
+ c-sch: False
+ c-vol: False
+ cinder: False
+
+ s-account: True
+ s-container: True
+ s-object: True
+ s-proxy: True
+
+ dstat: True
+ g-api: True
+ g-reg: True
+ key: True
+ mysql: True
+ n-api: True
+ n-api-meta: True
+ n-cauth: True
+ n-cond: True
+ n-cpu: True
+ n-novnc: True
+ n-obj: True
+ n-sch: True
+ placement-api: True
+ q-agt: False
+ q-dhcp: False
+ q-l3: False
+ q-meta: False
+ q-metering: False
+ q-svc: False
+ neutron-api: True
+ neutron-agent: True
+ neutron-dhcp: True
+ neutron-l3: True
+ neutron-metadata-agent: True
+ neutron-metering: True
+ rabbit: True
+ ir-api: True
+ ir-cond: True
+ ironic-inspector: True
+ ironic-inspector-dhcp: True
+
+- job:
+ name: python-ironic-inspector-client-tempest-python2
+ description: python-ironic-inspector-client-tempest-python2
+ parent: python-ironic-inspector-client-base
+ vars:
+ devstack_localrc:
+ USE_PYTHON3: False
+
+- job:
+ name: python-ironic-inspector-client-tempest-python3
+ description: python-ironic-inspector-client-tempest-python3
+ parent: python-ironic-inspector-client-base
+ vars:
+ devstack_localrc:
+ USE_PYTHON3: True
1
0
Hello community,
here is the log from the commit of package python-heatclient for openSUSE:Factory checked in at 2019-05-03 22:40:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-heatclient (Old)
and /work/SRC/openSUSE:Factory/.python-heatclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-heatclient"
Fri May 3 22:40:40 2019 rev:29 rq:692827 version:1.17.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-heatclient/python-heatclient.changes 2018-09-07 15:37:19.354670275 +0200
+++ /work/SRC/openSUSE:Factory/.python-heatclient.new.5148/python-heatclient.changes 2019-05-03 22:40:44.987029655 +0200
@@ -1,0 +2,21 @@
+Mon Apr 8 12:18:46 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.17.0
+ - Don't change pyyaml behavior
+ - Switch to stestr
+ - Update min tox version to 2.0
+ - Set X-Region-Name in header when using SessionClient
+ - fix bug link in readme
+ - Migrate the link of bug report button to storyboard
+ - Load files from adopt file when adopt stack
+ - Update the bugs link to storyboard
+ - Trivial: Update pypi url to new url
+ - Update reno for stable/rocky
+ - Replace deprecated "decodestring()" by "decodebytes()"
+ - Don't quote {posargs} in tox.ini
+ - switch documentation job to new PTI
+ - add python 3.6 unit test job
+ - import zuul job settings from project-config
+ - Use templates for cover and lower-constraints
+
+-------------------------------------------------------------------
Old:
----
python-heatclient-1.16.1.tar.gz
New:
----
python-heatclient-1.17.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-heatclient.spec ++++++
--- /var/tmp/diff_new_pack.75A3l3/_old 2019-05-03 22:40:45.951031685 +0200
+++ /var/tmp/diff_new_pack.75A3l3/_new 2019-05-03 22:40:45.951031685 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-heatclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-heatclient
-Version: 1.16.1
+Version: 1.17.0
Release: 0
Summary: Python API and CLI for OpenStack Heat
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-heatclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-heatclient/python-h…
+Source0: https://files.pythonhosted.org/packages/source/p/python-heatclient/python-h…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-PyYAML >= 3.12
@@ -35,8 +35,8 @@
BuildRequires: python2-oslo.serialization >= 2.18.0
BuildRequires: python2-pbr >= 2.0.0
BuildRequires: python2-requests-mock
+BuildRequires: python2-stestr
BuildRequires: python2-swiftclient >= 3.2.0
-BuildRequires: python2-testrepository
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
BuildRequires: python3-PyYAML >= 3.12
@@ -49,8 +49,8 @@
BuildRequires: python3-oslo.serialization >= 2.18.0
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-requests-mock
+BuildRequires: python3-stestr
BuildRequires: python3-swiftclient >= 3.2.0
-BuildRequires: python3-testrepository
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
Requires: python-Babel >= 2.3.4
@@ -95,15 +95,15 @@
This package contains auto-generated documentation.
%prep
-%autosetup -p1 -n python-heatclient-1.16.1
+%autosetup -p1 -n python-heatclient-1.17.0
%py_req_cleanup
%build
%{python_build}
%{__python2} setup.py build_sphinx --builder=html,man
-PBR_VERSION=1.16.1 sphinx-build -b html doc/source doc/build/html
-PBR_VERSION=1.16.1 sphinx-build -b man doc/source doc/build/man
+PBR_VERSION=1.17.0 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=1.17.0 sphinx-build -b man doc/source doc/build/man
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
@@ -124,9 +124,7 @@
%python_uninstall_alternative heat
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.75A3l3/_old 2019-05-03 22:40:45.971031727 +0200
+++ /var/tmp/diff_new_pack.75A3l3/_new 2019-05-03 22:40:45.971031727 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-heatclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-heatclient/stable/rocky/…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-heatclient/stable/stein/…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-heatclient</param>
</service>
++++++ python-heatclient-1.16.1.tar.gz -> python-heatclient-1.17.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/.stestr.conf new/python-heatclient-1.17.0/.stestr.conf
--- old/python-heatclient-1.16.1/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/python-heatclient-1.17.0/.stestr.conf 2019-01-15 02:35:54.000000000 +0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=${OS_TEST_PATH:-./heatclient/tests/unit}
+top_dir=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/.testr.conf new/python-heatclient-1.17.0/.testr.conf
--- old/python-heatclient-1.16.1/.testr.conf 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-[DEFAULT]
-test_command=${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH:-./heatclient/tests/unit} $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/.zuul.yaml new/python-heatclient-1.17.0/.zuul.yaml
--- old/python-heatclient-1.16.1/.zuul.yaml 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/.zuul.yaml 2019-01-15 02:35:54.000000000 +0100
@@ -12,11 +12,19 @@
branch_override: default
- project:
+ templates:
+ - openstack-cover-jobs
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - check-requirements
+ - openstackclient-plugin-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
check:
jobs:
- heatclient-functional
- - openstack-tox-lower-constraints
gate:
jobs:
- heatclient-functional
- - openstack-tox-lower-constraints
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/AUTHORS new/python-heatclient-1.17.0/AUTHORS
--- old/python-heatclient-1.16.1/AUTHORS 2018-07-27 18:43:24.000000000 +0200
+++ new/python-heatclient-1.17.0/AUTHORS 2019-01-15 02:39:00.000000000 +0100
@@ -65,6 +65,7 @@
M V P Nitesh <m.nitesh(a)nectechnologies.in>
Mark Vanderwiel <vanderwl(a)us.ibm.com>
Masahito Muroi <muroi.masahito(a)lab.ntt.co.jp>
+Mehdi Abaakouk <sileht(a)sileht.net>
Monty Taylor <mordred(a)inaugust.com>
Nachi Ueno <nachi(a)ntti3.com>
Nam Nguyen Hoai <namnh(a)vn.fujitsu.com>
@@ -122,9 +123,11 @@
Tim Schnell <tim.schnell(a)rackspace.com>
Tomas Sedovic <tomas(a)sedovic.cz>
Tomas Sedovic <tsedovic(a)redhat.com>
+Tovin Seven <vinhnt(a)vn.fujitsu.com>
Unmesh Gurjar <unmesh.gurjar(a)hp.com>
Van Hung Pham <hungpv(a)vn.fujitsu.com>
Victor Morales <victor.morales(a)intel.com>
+Vieri <15050873171(a)163.com>
Vijayaguru Guruchave <vijayaguru.g(a)cloudenablers.com>
Vijendar Komalla <vijendar.komalla(a)RACKSPACE.COM>
Vijendra Soni <vijendra.soni(a)cognizant.com>
@@ -134,7 +137,7 @@
Zhang Yang <neil.zhangyang(a)huawei.com>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
ZhiQiang Fan <zhiqiang.fan(a)huawei.com>
-Zuul <zuul(a)review.openstack.org>
+ZhijunWei <wzj334965317(a)outlook.com>
anusha-rayani-7 <anusha.rayani(a)tcs.com>
bhagyashris <bhagyashri.shewale(a)nttdata.com>
blue55 <yllan(a)fiberhome.com>
@@ -143,6 +146,7 @@
chenxiao <chenxiao(a)cn.ibm.com>
dixiaoli <dixiaobj(a)cn.ibm.com>
gong yong sheng <gong.yongsheng(a)99cloud.net>
+huang.zhiping <huang.zhiping(a)99cloud.net>
huangtianhua <huangtianhua(a)huawei.com>
ji-xuepeng <ji.xuepeng(a)zte.com.cn>
kairat_kushaev <kkushaev(a)mirantis.com>
@@ -172,4 +176,5 @@
zengyingzhe <zengyingzhe(a)huawei.com>
zhang-jinnan <ben.os(a)99cloud.net>
zhangguoqing <zhang.guoqing(a)99cloud.net>
+zhulingjie <easyzlj(a)gmail.com>
zzxwill <zzxwill(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/CONTRIBUTING.rst new/python-heatclient-1.17.0/CONTRIBUTING.rst
--- old/python-heatclient-1.16.1/CONTRIBUTING.rst 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/CONTRIBUTING.rst 2019-01-15 02:35:54.000000000 +0100
@@ -11,6 +11,6 @@
Pull requests submitted through GitHub will be ignored.
-Bugs should be filed on Launchpad, not GitHub:
+Bugs should be filed on Storyboard, not GitHub:
- https://bugs.launchpad.net/python-heatclient
+ https://storyboard.openstack.org/#!/project/openstack/python-heatclient
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/ChangeLog new/python-heatclient-1.17.0/ChangeLog
--- old/python-heatclient-1.16.1/ChangeLog 2018-07-27 18:43:24.000000000 +0200
+++ new/python-heatclient-1.17.0/ChangeLog 2019-01-15 02:39:00.000000000 +0100
@@ -1,9 +1,29 @@
CHANGES
=======
+1.17.0
+------
+
+* Update the bugs link to storyboard
+* Update min tox version to 2.0
+* Replace deprecated "decodestring()" by "decodebytes()"
+* Don't quote {posargs} in tox.ini
+* Set X-Region-Name in header when using SessionClient
+* Trivial: Update pypi url to new url
+* Use templates for cover and lower-constraints
+* Don't change pyyaml behavior
+* Migrate the link of bug report button to storyboard
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* fix bug link in readme
+* Update reno for stable/rocky
+* Switch to stestr
+
1.16.1
------
+* Load files from adopt file when adopt stack
* Handle token\_endpoint auth type in osc plugin
* Update the documentation link for doc migration
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/PKG-INFO new/python-heatclient-1.17.0/PKG-INFO
--- old/python-heatclient-1.16.1/PKG-INFO 2018-07-27 18:43:24.000000000 +0200
+++ new/python-heatclient-1.17.0/PKG-INFO 2019-01-15 02:39:01.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-heatclient
-Version: 1.16.1
+Version: 1.17.0
Summary: OpenStack Orchestration API Client Library
Home-page: https://docs.openstack.org/python-heatclient/latest
Author: OpenStack
@@ -20,7 +20,7 @@
=================
.. image:: https://img.shields.io/pypi/v/python-heatclient.svg
- :target: https://pypi.python.org/pypi/python-heatclient/
+ :target: https://pypi.org/project/python-heatclient/
:alt: Latest Version
@@ -41,11 +41,11 @@
* `Template`_
* `How to Contribute`_
- .. _PyPi: https://pypi.python.org/pypi/python-heatclient
+ .. _PyPi: https://pypi.org/project/python-heatclient
.. _Online Documentation: https://docs.openstack.org/python-heatclient/latest
.. _Launchpad project: https://launchpad.net/python-heatclient
.. _Blueprints: https://blueprints.launchpad.net/python-heatclient
- .. _Bugs: https://bugs.launchpad.net/python-heatclient
+ .. _Bugs: https://storyboard.openstack.org/#!/project/openstack/python-heatclient
.. _Source: https://git.openstack.org/cgit/openstack/python-heatclient
.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html
.. _Specs: https://specs.openstack.org/openstack/heat-specs/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/README.rst new/python-heatclient-1.17.0/README.rst
--- old/python-heatclient-1.16.1/README.rst 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/README.rst 2019-01-15 02:35:54.000000000 +0100
@@ -12,7 +12,7 @@
=================
.. image:: https://img.shields.io/pypi/v/python-heatclient.svg
- :target: https://pypi.python.org/pypi/python-heatclient/
+ :target: https://pypi.org/project/python-heatclient/
:alt: Latest Version
@@ -33,11 +33,11 @@
* `Template`_
* `How to Contribute`_
-.. _PyPi: https://pypi.python.org/pypi/python-heatclient
+.. _PyPi: https://pypi.org/project/python-heatclient
.. _Online Documentation: https://docs.openstack.org/python-heatclient/latest
.. _Launchpad project: https://launchpad.net/python-heatclient
.. _Blueprints: https://blueprints.launchpad.net/python-heatclient
-.. _Bugs: https://bugs.launchpad.net/python-heatclient
+.. _Bugs: https://storyboard.openstack.org/#!/project/openstack/python-heatclient
.. _Source: https://git.openstack.org/cgit/openstack/python-heatclient
.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html
.. _Specs: https://specs.openstack.org/openstack/heat-specs/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/doc/source/conf.py new/python-heatclient-1.17.0/doc/source/conf.py
--- old/python-heatclient-1.16.1/doc/source/conf.py 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/doc/source/conf.py 2019-01-15 02:35:54.000000000 +0100
@@ -262,5 +262,5 @@
# -- Options for openstackdocstheme -------------------------------------------
repository_name = 'openstack/python-heatclient'
-bug_project = 'python-heatclient'
-bug_tag = ''
+bug_project = '997'
+bug_tag = 'docs'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/heatclient/common/http.py new/python-heatclient-1.17.0/heatclient/common/http.py
--- old/python-heatclient-1.16.1/heatclient/common/http.py 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/heatclient/common/http.py 2019-01-15 02:35:54.000000000 +0100
@@ -358,6 +358,10 @@
if 'interface' not in kwargs and endpoint_type:
kwargs['interface'] = endpoint_type
+ if 'region_name' in kwargs:
+ kwargs['additional_headers'] = {
+ 'X-Region-Name': kwargs['region_name']}
+
return SessionClient(session, auth=auth, **kwargs)
else:
return HTTPClient(endpoint=endpoint, username=username,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/heatclient/common/template_format.py new/python-heatclient-1.17.0/heatclient/common/template_format.py
--- old/python-heatclient-1.16.1/heatclient/common/template_format.py 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/heatclient/common/template_format.py 2019-01-15 02:35:54.000000000 +0100
@@ -16,14 +16,23 @@
from heatclient._i18n import _
if hasattr(yaml, 'CSafeLoader'):
- yaml_loader = yaml.CSafeLoader
+ yaml_loader_base = yaml.CSafeLoader
else:
- yaml_loader = yaml.SafeLoader
+ yaml_loader_base = yaml.SafeLoader
if hasattr(yaml, 'CSafeDumper'):
- yaml_dumper = yaml.CSafeDumper
+ yaml_dumper_base = yaml.CSafeDumper
else:
- yaml_dumper = yaml.SafeDumper
+ yaml_dumper_base = yaml.SafeDumper
+
+
+# We create custom class to not overriden the default yaml behavior
+class yaml_loader(yaml_loader_base):
+ pass
+
+
+class yaml_dumper(yaml_dumper_base):
+ pass
def _construct_yaml_str(self, node):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/heatclient/osc/v1/stack.py new/python-heatclient-1.17.0/heatclient/osc/v1/stack.py
--- old/python-heatclient-1.16.1/heatclient/osc/v1/stack.py 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/heatclient/osc/v1/stack.py 2019-01-15 02:35:54.000000000 +0100
@@ -22,6 +22,7 @@
from oslo_serialization import jsonutils
import six
from six.moves.urllib import request
+import yaml
from heatclient._i18n import _
from heatclient.common import event_utils
@@ -822,13 +823,15 @@
adopt_url = heat_utils.normalise_file_path_to_url(
parsed_args.adopt_file)
adopt_data = request.urlopen(adopt_url).read().decode('utf-8')
-
+ yaml_adopt_data = yaml.safe_load(adopt_data) or {}
+ files = yaml_adopt_data.get('files', {})
+ files.update(env_files)
fields = {
'stack_name': parsed_args.name,
'disable_rollback': not parsed_args.enable_rollback,
'adopt_stack_data': adopt_data,
'parameters': heat_utils.format_parameters(parsed_args.parameter),
- 'files': dict(list(env_files.items())),
+ 'files': files,
'environment': env,
'timeout': parsed_args.timeout
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/heatclient/tests/test_templates/adopt_with_file.json new/python-heatclient-1.17.0/heatclient/tests/test_templates/adopt_with_file.json
--- old/python-heatclient-1.16.1/heatclient/tests/test_templates/adopt_with_file.json 1970-01-01 01:00:00.000000000 +0100
+++ new/python-heatclient-1.17.0/heatclient/tests/test_templates/adopt_with_file.json 2019-01-15 02:35:54.000000000 +0100
@@ -0,0 +1,32 @@
+{
+ "files": {
+ "file://empty.yaml": "{\"heat_template_version\": \"2015-10-15\"}"
+ },
+ "status": "COMPLETE",
+ "name": "test",
+ "tags": null,
+ "stack_user_project_id": "8f51847805ee4994a1ac1d6d1a9bcd9b",
+ "environment": {
+ "event_sinks": [],
+ "parameter_defaults": {},
+ "parameters": {},
+ "resource_registry": {
+ "file://empty.yaml": "file://empty.yaml",
+ "resources": {}
+ }
+ },
+ "template": {
+ "heat_template_version": "2015-04-30",
+ "resources": {
+ "empty_child": {
+ "type": "file://empty.yaml"
+ }
+ }
+ },
+ "action": "CREATE",
+ "project_id": "02228cd21ae24ed7966768a9a41be507",
+ "id": "25b97c3b-2e9a-4222-bc30-da116ae74a08",
+ "resources": {
+ "empty_child": {}
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/heatclient/tests/unit/osc/v1/test_stack.py new/python-heatclient-1.17.0/heatclient/tests/unit/osc/v1/test_stack.py
--- old/python-heatclient-1.16.1/heatclient/tests/unit/osc/v1/test_stack.py 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/heatclient/tests/unit/osc/v1/test_stack.py 2019-01-15 02:35:54.000000000 +0100
@@ -730,9 +730,12 @@
class TestStackAdopt(TestStack):
adopt_file = 'heatclient/tests/test_templates/adopt.json'
+ adopt_with_files = ('heatclient/tests/test_templates/adopt_with_file.json')
with open(adopt_file, 'r') as f:
adopt_data = f.read()
+ with open(adopt_with_files, 'r') as f:
+ adopt_with_files_data = f.read()
defaults = {
'stack_name': 'my_stack',
@@ -744,6 +747,18 @@
'timeout': None
}
+ child_stack_yaml = "{\"heat_template_version\": \"2015-10-15\"}"
+
+ expected_with_files = {
+ 'stack_name': 'my_stack',
+ 'disable_rollback': True,
+ 'adopt_stack_data': adopt_with_files_data,
+ 'parameters': {},
+ 'files': {'file://empty.yaml': child_stack_yaml},
+ 'environment': {},
+ 'timeout': None
+ }
+
def setUp(self):
super(TestStackAdopt, self).setUp()
self.cmd = stack.AdoptStack(self.app, None)
@@ -776,8 +791,8 @@
'Stack my_stack ADOPT_COMPLETE'))
def test_stack_adopt_wait(self, mock_poll):
arglist = ['my_stack', '--adopt-file', self.adopt_file, '--wait']
- self.stack_client.get.return_value = \
- stacks.Stack(None, {'stack_status': 'ADOPT_COMPLETE'})
+ self.stack_client.get.return_value = stacks.Stack(
+ None, {'stack_status': 'ADOPT_COMPLETE'})
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
@@ -791,12 +806,25 @@
'Stack my_stack ADOPT_FAILED'))
def test_stack_adopt_wait_fail(self, mock_poll):
arglist = ['my_stack', '--adopt-file', self.adopt_file, '--wait']
- self.stack_client.get.return_value = \
- stacks.Stack(None, {'stack_status': 'ADOPT_FAILED'})
+ self.stack_client.get.return_value = stacks.Stack(
+ None, {'stack_status': 'ADOPT_FAILED'})
parsed_args = self.check_parser(self.cmd, arglist, [])
self.assertRaises(exc.CommandError, self.cmd.take_action, parsed_args)
+ def test_stack_adopt_with_adopt_files(self):
+ # Make sure when we adopt with files in adopt script, we will load
+ # those files as part of input when calling adopt.
+ arglist = ['my_stack', '--adopt-file', self.adopt_with_files]
+ cols = ['id', 'stack_name', 'description', 'creation_time',
+ 'updated_time', 'stack_status', 'stack_status_reason']
+ parsed_args = self.check_parser(self.cmd, arglist, [])
+
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.stack_client.create.assert_called_with(**self.expected_with_files)
+ self.assertEqual(cols, columns)
+
class TestStackExport(TestStack):
@@ -1225,8 +1253,8 @@
self.mock_client.actions.cancel_update,
'ROLLBACK'
)
- self.mock_client.stacks.get.return_value = \
- self.stack_update_in_progress
+ self.mock_client.stacks.get.return_value = (
+ self.stack_update_in_progress)
def test_stack_cancel(self):
self._test_stack_action(2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/heatclient/tests/unit/test_template_utils.py new/python-heatclient-1.17.0/heatclient/tests/unit/test_template_utils.py
--- old/python-heatclient-1.16.1/heatclient/tests/unit/test_template_utils.py 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/heatclient/tests/unit/test_template_utils.py 2019-01-15 02:35:54.000000000 +0100
@@ -11,11 +11,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import base64
import json
import tempfile
import mock
+from oslo_serialization import base64
import six
from six.moves.urllib import error
import testtools
@@ -715,7 +715,7 @@
'content': {'get_file': url},
'encoding': 'b64'}]}}}}}
with mock.patch('six.moves.urllib.request.urlopen') as mock_url:
- raw_content = base64.decodestring(content)
+ raw_content = base64.decode_as_bytes(content)
response = six.BytesIO(raw_content)
mock_url.return_value = response
files = {}
@@ -732,8 +732,8 @@
AAAACAAYAAAAAAABAAAApIEA\nAAAAaGVhdC50eHRVVAUAAxRbDVN1eAsAAQToAwA\
ABOkDAABQSwUGAAAAAAEAAQBOAAAARwAAAAAA\n'''
# zip has '\0' in stream
- self.assertIn(b'\0', base64.decodestring(content))
- decoded_content = base64.decodestring(content)
+ self.assertIn(b'\0', base64.decode_as_bytes(content))
+ decoded_content = base64.decode_as_bytes(content)
if six.PY3:
self.assertRaises(UnicodeDecodeError, decoded_content.decode)
else:
@@ -748,8 +748,8 @@
filename = 'heat.utf16'
content = b'//4tTkhTCgA=\n'
# utf6 has '\0' in stream
- self.assertIn(b'\0', base64.decodestring(content))
- decoded_content = base64.decodestring(content)
+ self.assertIn(b'\0', base64.decode_as_bytes(content))
+ decoded_content = base64.decode_as_bytes(content)
if six.PY3:
self.assertRaises(UnicodeDecodeError, decoded_content.decode)
else:
@@ -763,8 +763,8 @@
filename = 'heat.gb18030'
content = b'1tDO5wo=\n'
# gb18030 has no '\0' in stream
- self.assertNotIn('\0', base64.decodestring(content))
- decoded_content = base64.decodestring(content)
+ self.assertNotIn('\0', base64.decode_as_bytes(content))
+ decoded_content = base64.decode_as_bytes(content)
if six.PY3:
self.assertRaises(UnicodeDecodeError, decoded_content.decode)
else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/heatclient/v1/shell.py new/python-heatclient-1.17.0/heatclient/v1/shell.py
--- old/python-heatclient-1.16.1/heatclient/v1/shell.py 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/heatclient/v1/shell.py 2019-01-15 02:35:54.000000000 +0100
@@ -185,6 +185,10 @@
adopt_url = utils.normalise_file_path_to_url(args.adopt_file)
adopt_data = request.urlopen(adopt_url).read()
+ yaml_adopt_data = yaml.safe_load(adopt_data) or {}
+
+ files = yaml_adopt_data.get('files', {})
+ files.update(env_files)
if not len(adopt_data):
raise exc.CommandError('Invalid adopt-file, no data!')
@@ -201,7 +205,7 @@
'disable_rollback': not(args.enable_rollback),
'adopt_stack_data': adopt_data,
'parameters': utils.format_parameters(args.parameters),
- 'files': dict(list(env_files.items())),
+ 'files': files,
'environment': env
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/lower-constraints.txt new/python-heatclient-1.17.0/lower-constraints.txt
--- old/python-heatclient-1.16.1/lower-constraints.txt 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/lower-constraints.txt 2019-01-15 02:35:54.000000000 +0100
@@ -85,10 +85,9 @@
snowballstemmer==1.2.1
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
-stestr==1.0.0
+stestr==2.0.0
stevedore==1.20.0
tempest==17.1.0
-testrepository==0.0.18
testscenarios==0.4
testtools==2.2.0
traceback2==1.4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/python_heatclient.egg-info/PKG-INFO new/python-heatclient-1.17.0/python_heatclient.egg-info/PKG-INFO
--- old/python-heatclient-1.16.1/python_heatclient.egg-info/PKG-INFO 2018-07-27 18:43:24.000000000 +0200
+++ new/python-heatclient-1.17.0/python_heatclient.egg-info/PKG-INFO 2019-01-15 02:39:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-heatclient
-Version: 1.16.1
+Version: 1.17.0
Summary: OpenStack Orchestration API Client Library
Home-page: https://docs.openstack.org/python-heatclient/latest
Author: OpenStack
@@ -20,7 +20,7 @@
=================
.. image:: https://img.shields.io/pypi/v/python-heatclient.svg
- :target: https://pypi.python.org/pypi/python-heatclient/
+ :target: https://pypi.org/project/python-heatclient/
:alt: Latest Version
@@ -41,11 +41,11 @@
* `Template`_
* `How to Contribute`_
- .. _PyPi: https://pypi.python.org/pypi/python-heatclient
+ .. _PyPi: https://pypi.org/project/python-heatclient
.. _Online Documentation: https://docs.openstack.org/python-heatclient/latest
.. _Launchpad project: https://launchpad.net/python-heatclient
.. _Blueprints: https://blueprints.launchpad.net/python-heatclient
- .. _Bugs: https://bugs.launchpad.net/python-heatclient
+ .. _Bugs: https://storyboard.openstack.org/#!/project/openstack/python-heatclient
.. _Source: https://git.openstack.org/cgit/openstack/python-heatclient
.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html
.. _Specs: https://specs.openstack.org/openstack/heat-specs/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/python_heatclient.egg-info/SOURCES.txt new/python-heatclient-1.17.0/python_heatclient.egg-info/SOURCES.txt
--- old/python-heatclient-1.16.1/python_heatclient.egg-info/SOURCES.txt 2018-07-27 18:43:24.000000000 +0200
+++ new/python-heatclient-1.17.0/python_heatclient.egg-info/SOURCES.txt 2019-01-15 02:39:01.000000000 +0100
@@ -1,5 +1,5 @@
.coveragerc
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -71,6 +71,7 @@
heatclient/tests/functional/templates/heat_minimal.yaml
heatclient/tests/functional/templates/heat_minimal_hot.yaml
heatclient/tests/test_templates/adopt.json
+heatclient/tests/test_templates/adopt_with_file.json
heatclient/tests/test_templates/empty.yaml
heatclient/tests/test_templates/parameters.yaml
heatclient/tests/unit/__init__.py
@@ -146,5 +147,6 @@
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
tools/heat.bash_completion
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/python_heatclient.egg-info/pbr.json new/python-heatclient-1.17.0/python_heatclient.egg-info/pbr.json
--- old/python-heatclient-1.16.1/python_heatclient.egg-info/pbr.json 2018-07-27 18:43:24.000000000 +0200
+++ new/python-heatclient-1.17.0/python_heatclient.egg-info/pbr.json 2019-01-15 02:39:00.000000000 +0100
@@ -1 +1 @@
-{"git_version": "b5f3d34", "is_release": true}
\ No newline at end of file
+{"git_version": "8af5deb", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/releasenotes/source/index.rst new/python-heatclient-1.17.0/releasenotes/source/index.rst
--- old/python-heatclient-1.16.1/releasenotes/source/index.rst 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/releasenotes/source/index.rst 2019-01-15 02:35:54.000000000 +0100
@@ -7,5 +7,6 @@
:caption: Contents:
unreleased
+ rocky
queens
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/releasenotes/source/rocky.rst new/python-heatclient-1.17.0/releasenotes/source/rocky.rst
--- old/python-heatclient-1.16.1/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-heatclient-1.17.0/releasenotes/source/rocky.rst 2019-01-15 02:35:54.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/test-requirements.txt new/python-heatclient-1.17.0/test-requirements.txt
--- old/python-heatclient-1.16.1/test-requirements.txt 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/test-requirements.txt 2019-01-15 02:35:54.000000000 +0100
@@ -10,7 +10,7 @@
mock>=2.0.0 # BSD
mox3>=0.20.0 # Apache-2.0
python-openstackclient>=3.12.0 # Apache-2.0
+stestr>=2.0.0 # Apache-2.0
tempest>=17.1.0 # Apache-2.0
-testrepository>=0.0.18 # Apache-2.0/BSD
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-heatclient-1.16.1/tox.ini new/python-heatclient-1.17.0/tox.ini
--- old/python-heatclient-1.16.1/tox.ini 2018-07-27 18:39:31.000000000 +0200
+++ new/python-heatclient-1.17.0/tox.ini 2019-01-15 02:35:54.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
envlist = pypy,py35,py27,pep8
-minversion = 1.6
+minversion = 2.0
skipsdist = True
[testenv]
@@ -13,7 +13,7 @@
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = find . -type f -name "*.py[c|o]" -delete
- python setup.py testr --slowest --testr-args='{posargs}'
+ stestr run --slowest {posargs}
whitelist_externals = find
[testenv:debug]
@@ -45,8 +45,13 @@
[testenv:cover]
basepython = python3
+setenv =
+ PYTHON=coverage run --source heatclient --parallel-mode
commands =
- python setup.py testr --coverage --testr-args='{posargs}'
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
coverage report
[testenv:docs]
1
0
Hello community,
here is the log from the commit of package python-glareclient for openSUSE:Factory checked in at 2019-05-03 22:40:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-glareclient (Old)
and /work/SRC/openSUSE:Factory/.python-glareclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-glareclient"
Fri May 3 22:40:34 2019 rev:7 rq:692826 version:0.5.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-glareclient/python-glareclient.changes 2018-09-07 15:37:16.698673131 +0200
+++ /work/SRC/openSUSE:Factory/.python-glareclient.new.5148/python-glareclient.changes 2019-05-03 22:40:43.467026455 +0200
@@ -1,0 +2,5 @@
+Mon Apr 8 12:06:10 UTC 2019 - Dirk Mueller <dmueller(a)suse.com>
+
+- switch to stable/stein template
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-glareclient.spec ++++++
--- /var/tmp/diff_new_pack.KObMwb/_old 2019-05-03 22:40:43.931027432 +0200
+++ /var/tmp/diff_new_pack.KObMwb/_new 2019-05-03 22:40:43.935027441 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-glareclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
++++++ _service ++++++
--- /var/tmp/diff_new_pack.KObMwb/_old 2019-05-03 22:40:43.955027483 +0200
+++ /var/tmp/diff_new_pack.KObMwb/_new 2019-05-03 22:40:43.959027491 +0200
@@ -1,6 +1,6 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-glareclient.spec</param>
<param name="requirements">https://raw.githubusercontent.com/openstack/python-glareclient/master/requi…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
1
0
Hello community,
here is the log from the commit of package python-glanceclient for openSUSE:Factory checked in at 2019-05-03 22:40:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-glanceclient (Old)
and /work/SRC/openSUSE:Factory/.python-glanceclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-glanceclient"
Fri May 3 22:40:27 2019 rev:29 rq:692825 version:2.16.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-glanceclient/python-glanceclient.changes 2019-02-11 21:24:56.427094944 +0100
+++ /work/SRC/openSUSE:Factory/.python-glanceclient.new.5148/python-glanceclient.changes 2019-05-03 22:40:40.303019794 +0200
@@ -1,0 +2,26 @@
+Mon Apr 8 11:58:56 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.16.0
+ - Update irrelevant-files for dsvm-functional tests
+ - Refactor periodic "tips" jobs
+ - Cleanup .zuul.yaml
+ - Add Python 3.6 classifier to setup.cfg
+ - Show the backend store info
+ - add lib-forward-testing-python3 test job
+ - Change openstack-dev to openstack-discuss
+ - Use "multihash" for data download validation
+ - Update min tox version to 2.0
+ - Update reno for stable/rocky
+ - Skip quote '=' for token header
+ - Remove redundant information from error message
+ - switch documentation job to new PTI
+ - Add image-list filter for multihash
+ - Release notes for 2.16.0
+ - add python 3.6 unit test job
+ - Embed validation data when adding location
+ - Don't quote colon in HTTP headers
+ - add python 3.7 unit test job
+ - import zuul job settings from project-config
+ - Remove team diversity tags note in README
+
+-------------------------------------------------------------------
Old:
----
python-glanceclient-2.13.1.tar.gz
New:
----
python-glanceclient-2.16.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-glanceclient.spec ++++++
--- /var/tmp/diff_new_pack.AimCXf/_old 2019-05-03 22:40:41.175021630 +0200
+++ /var/tmp/diff_new_pack.AimCXf/_new 2019-05-03 22:40:41.175021630 +0200
@@ -17,13 +17,13 @@
Name: python-glanceclient
-Version: 2.13.1
+Version: 2.16.0
Release: 0
Summary: Python API and CLI for OpenStack Glance
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-glanceclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-glanceclient/python…
+Source0: https://files.pythonhosted.org/packages/source/p/python-glanceclient/python…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-PrettyTable >= 0.7.1
@@ -94,16 +94,15 @@
This package contains auto-generated documentation.
%prep
-%autosetup -p1 -n python-glanceclient-2.13.1
+%autosetup -p1 -n python-glanceclient-2.16.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%python_build
# generate html docs
-PBR_VERSION=2.13.1 sphinx-build -b html doc/source doc/build/html
-PBR_VERSION=2.13.1 sphinx-build -b man doc/source doc/build/man
+PBR_VERSION=2.16.0 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=2.16.0 sphinx-build -b man doc/source doc/build/man
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.AimCXf/_old 2019-05-03 22:40:41.195021672 +0200
+++ /var/tmp/diff_new_pack.AimCXf/_new 2019-05-03 22:40:41.199021680 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-glanceclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-glanceclient/stable/rock…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-glanceclient/stable/stei…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-glanceclient</param>
</service>
++++++ python-glanceclient-2.13.1.tar.gz -> python-glanceclient-2.16.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/.zuul.yaml new/python-glanceclient-2.16.0/.zuul.yaml
--- old/python-glanceclient-2.13.1/.zuul.yaml 2018-12-12 04:54:05.000000000 +0100
+++ new/python-glanceclient-2.16.0/.zuul.yaml 2019-03-08 01:26:17.000000000 +0100
@@ -36,6 +36,15 @@
s-proxy: true
# Hardcode glanceclient path so the job can be run on glance patches
zuul_work_dir: src/git.openstack.org/openstack/python-glanceclient
+ irrelevant-files:
+ - ^doc/.*$
+ - ^releasenotes/.*$
+ - ^.*\.rst$
+ - ^(test-|)requirements.txt$
+ - ^lower-constraints.txt$
+ - ^setup.cfg$
+ - ^tox.ini$
+ - ^\.zuul\.yaml$
- job:
name: glanceclient-dsvm-functional
@@ -66,6 +75,15 @@
s-proxy: true
# Hardcode glanceclient path so the job can be run on glance patches
zuul_work_dir: src/git.openstack.org/openstack/python-glanceclient
+ irrelevant-files:
+ - ^doc/.*$
+ - ^releasenotes/.*$
+ - ^.*\.rst$
+ - ^(test-|)requirements.txt$
+ - ^lower-constraints.txt$
+ - ^setup.cfg$
+ - ^tox.ini$
+ - ^\.zuul\.yaml$
- job:
name: glanceclient-tox-keystone-tips-base
@@ -125,22 +143,25 @@
- project:
templates:
- - openstack-python-jobs
- - openstack-python35-jobs
- - release-notes-jobs
- - publish-openstack-sphinx-docs
- check-requirements
- lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-cover-jobs
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
check:
jobs:
- glanceclient-dsvm-functional-v1
- glanceclient-dsvm-functional
- - openstack-tox-lower-constraints
gate:
jobs:
- glanceclient-dsvm-functional-v1
- glanceclient-dsvm-functional
- - openstack-tox-lower-constraints
periodic:
jobs:
# NOTE(rosmaita): we only want the "tips" jobs to be run against
@@ -166,6 +187,3 @@
experimental:
jobs:
- glanceclient-dsvm-functional-py3
- post:
- jobs:
- - openstack-tox-cover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/AUTHORS new/python-glanceclient-2.16.0/AUTHORS
--- old/python-glanceclient-2.13.1/AUTHORS 2018-12-12 04:56:32.000000000 +0100
+++ new/python-glanceclient-2.16.0/AUTHORS 2019-03-08 01:28:04.000000000 +0100
@@ -95,6 +95,7 @@
Ian Wienand <iwienand(a)redhat.com>
Ihar Hrachyshka <ihrachys(a)redhat.com>
Itisha Dewan <ishadewan07(a)gmail.com>
+Jack Ding <jack.ding(a)windriver.com>
Jake Yip <jake.yip(a)unimelb.edu.au>
Jakub Ruzicka <jruzicka(a)redhat.com>
James E. Blair <jeblair(a)hp.com>
@@ -124,6 +125,7 @@
Lars Gellrich <lars.gellrich(a)hp.com>
Le Tian Ren <renlet(a)cn.ibm.com>
Li Wei <wei.li(a)easystack.cn>
+Liang Fang <liang.a.fang(a)intel.com>
LiuNanke <nanke.liu(a)easystack.cn>
Long Quan Sha <shalq(a)cn.ibm.com>
Longgeek <longgeek(a)thstack.com>
@@ -221,6 +223,7 @@
dineshbhor <dinesh.bhor(a)nttdata.com>
eddie-sheffield <eddie.sheffield(a)rackspace.com>
haobing1 <hao.bing1(a)zte.com.cn>
+huang.zhiping <huang.zhiping(a)99cloud.net>
iccha-sethi <iccha.sethi(a)rackspace.com>
iccha.sethi <iccha.sethi(a)rackspace.com>
imacdonn <iain.macdonnell(a)oracle.com>
@@ -243,6 +246,7 @@
shu-mutou <shu-mutou(a)rf.jp.nec.com>
sonu.kumar <sonu.kumar(a)nectechnologies.in>
sridhargaddam <sridhar.gaddam(a)enovance.com>
+sunjia <sunjia(a)inspur.com>
venkatamahesh <venkatamaheshkotha(a)gmail.com>
wanghong <w.wanghong(a)huawei.com>
wangqi <wang.qi(a)99cloud.net>
@@ -253,6 +257,7 @@
yangds <dongsheng.yang(a)easystack.cn>
yatin <ykarel(a)redhat.com>
yatin karel <yatin.karel(a)nectechnologies.in>
+zhangbailin <zhangbailin(a)inspur.com>
zheng yin <yin.zheng(a)easystack.cn>
zhengyao1 <zheng.yao1(a)zte.com.cn>
zwei <leidong(a)unitedstack.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/ChangeLog new/python-glanceclient-2.16.0/ChangeLog
--- old/python-glanceclient-2.13.1/ChangeLog 2018-12-12 04:56:32.000000000 +0100
+++ new/python-glanceclient-2.16.0/ChangeLog 2019-03-08 01:28:04.000000000 +0100
@@ -1,25 +1,38 @@
CHANGES
=======
-2.13.1
+2.16.0
------
-* Don't quote colon in HTTP headers
+* Release notes for 2.16.0
+* Remove redundant information from error message
+* Update min tox version to 2.0
+* Update irrelevant-files for dsvm-functional tests
+* add python 3.7 unit test job
+* Add image-list filter for multihash
+* Change openstack-dev to openstack-discuss
+* Add Python 3.6 classifier to setup.cfg
-2.13.0
+2.15.0
------
-* Use "multihash" for data download validation
-* Refactor periodic "tips" jobs
-* import zuul job settings from project-config
+* Show the backend store info
+* Don't quote colon in HTTP headers
+* Embed validation data when adding location
-2.12.1
+2.14.0
------
+* Refactor periodic "tips" jobs
+* Cleanup .zuul.yaml
+* Use "multihash" for data download validation
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Remove team diversity tags note in README
+* Update reno for stable/rocky
* Skip quote '=' for token header
-* Add releasenote for 2.12.1
-* Update UPPER\_CONSTRAINTS\_FILE for stable/rocky
-* Update .gitreview for stable/rocky
2.12.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/PKG-INFO new/python-glanceclient-2.16.0/PKG-INFO
--- old/python-glanceclient-2.13.1/PKG-INFO 2018-12-12 04:56:32.000000000 +0100
+++ new/python-glanceclient-2.16.0/PKG-INFO 2019-03-08 01:28:04.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-glanceclient
-Version: 2.13.1
+Version: 2.16.0
Summary: OpenStack Image API Client Library
Home-page: https://docs.openstack.org/python-glanceclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: Apache License, Version 2.0
Description: ========================
Team and repository tags
@@ -16,8 +16,7 @@
OpenStack Images API:
"project:official",
"stable:follows-policy",
- "vulnerability:managed",
- "team:diverse-affiliation".
+ "vulnerability:managed".
Follow the link for an explanation of these tags.
.. NOTE(rosmaita): the alt text above will have to be updated when
additional tags are asserted for python-glanceclient. (The SVG in the
@@ -35,9 +34,9 @@
This is a client library for Glance built on the OpenStack Images API. It provides a Python API (the ``glanceclient`` module) and a command-line tool (``glance``). This library fully supports the v1 Images API, while support for the v2 API is in progress.
- Development takes place via the usual OpenStack processes as outlined in the `developer guide <http://docs.openstack.org/infra/manual/developers.html>`_. The master repository is in `Git <https://git.openstack.org/cgit/openstack/python-glanceclient>`_.
+ Development takes place via the usual OpenStack processes as outlined in the `developer guide <https://docs.openstack.org/infra/manual/developers.html>`_. The master repository is in `Git <https://git.openstack.org/cgit/openstack/python-glanceclient>`_.
- See release notes and more at `<http://docs.openstack.org/python-glanceclient/>`_.
+ See release notes and more at `<https://docs.openstack.org/python-glanceclient/latest/>`_.
* License: Apache License, Version 2.0
* `PyPi`_ - package installation
@@ -73,3 +72,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/README.rst new/python-glanceclient-2.16.0/README.rst
--- old/python-glanceclient-2.13.1/README.rst 2018-12-12 04:54:05.000000000 +0100
+++ new/python-glanceclient-2.16.0/README.rst 2019-03-08 01:26:17.000000000 +0100
@@ -8,8 +8,7 @@
OpenStack Images API:
"project:official",
"stable:follows-policy",
- "vulnerability:managed",
- "team:diverse-affiliation".
+ "vulnerability:managed".
Follow the link for an explanation of these tags.
.. NOTE(rosmaita): the alt text above will have to be updated when
additional tags are asserted for python-glanceclient. (The SVG in the
@@ -27,9 +26,9 @@
This is a client library for Glance built on the OpenStack Images API. It provides a Python API (the ``glanceclient`` module) and a command-line tool (``glance``). This library fully supports the v1 Images API, while support for the v2 API is in progress.
-Development takes place via the usual OpenStack processes as outlined in the `developer guide <http://docs.openstack.org/infra/manual/developers.html>`_. The master repository is in `Git <https://git.openstack.org/cgit/openstack/python-glanceclient>`_.
+Development takes place via the usual OpenStack processes as outlined in the `developer guide <https://docs.openstack.org/infra/manual/developers.html>`_. The master repository is in `Git <https://git.openstack.org/cgit/openstack/python-glanceclient>`_.
-See release notes and more at `<http://docs.openstack.org/python-glanceclient/>`_.
+See release notes and more at `<https://docs.openstack.org/python-glanceclient/latest/>`_.
* License: Apache License, Version 2.0
* `PyPi`_ - package installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/glanceclient/exc.py new/python-glanceclient-2.16.0/glanceclient/exc.py
--- old/python-glanceclient-2.13.1/glanceclient/exc.py 2018-12-12 04:53:59.000000000 +0100
+++ new/python-glanceclient-2.16.0/glanceclient/exc.py 2019-03-08 01:26:17.000000000 +0100
@@ -52,7 +52,7 @@
self.details = details or self.__class__.__name__
def __str__(self):
- return "%s (HTTP %s)" % (self.details, self.code)
+ return "HTTP %s" % (self.details)
class HTTPMultipleChoices(HTTPException):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/glanceclient/tests/unit/v2/test_images.py new/python-glanceclient-2.16.0/glanceclient/tests/unit/v2/test_images.py
--- old/python-glanceclient-2.13.1/glanceclient/tests/unit/v2/test_images.py 2018-12-12 04:53:59.000000000 +0100
+++ new/python-glanceclient-2.16.0/glanceclient/tests/unit/v2/test_images.py 2019-03-08 01:26:17.000000000 +0100
@@ -26,6 +26,10 @@
_CHKSUM = '93264c3edf5972c9f1cb309543d38a5c'
_CHKSUM1 = '54264c3edf5972c9f1cb309453d38a46'
+_HASHVAL = '54264c3edf93264c3edf5972c9f1cb309543d38a5c5972c9f1cb309453d38a46'
+_HASHVAL1 = 'cb309543d38a5c5972c9f1cb309453d38a4654264c3edf93264c3edf5972c9f1'
+_HASHBAD = '93264c3edf597254264c3edf5972c9f1cb309453d38a46c9f1cb309543d38a5c'
+
_TAG1 = 'power'
_TAG2 = '64bit'
@@ -457,6 +461,41 @@
{'images': []},
),
},
+ '/v2/images?limit=%d&os_hash_value=%s' % (images.DEFAULT_PAGE_SIZE,
+ _HASHVAL): {
+ 'GET': (
+ {},
+ {'images': [
+ {
+ 'id': '3a4560a1-e585-443e-9b39-553b46ec92d1',
+ 'name': 'image-1',
+ }
+ ]},
+ ),
+ },
+ '/v2/images?limit=%d&os_hash_value=%s' % (images.DEFAULT_PAGE_SIZE,
+ _HASHVAL1): {
+ 'GET': (
+ {},
+ {'images': [
+ {
+ 'id': '2a4560b2-e585-443e-9b39-553b46ec92d1',
+ 'name': 'image-1',
+ },
+ {
+ 'id': '6f99bf80-2ee6-47cf-acfe-1f1fabb7e810',
+ 'name': 'image-2',
+ },
+ ]},
+ ),
+ },
+ '/v2/images?limit=%d&os_hash_value=%s' % (images.DEFAULT_PAGE_SIZE,
+ _HASHBAD): {
+ 'GET': (
+ {},
+ {'images': []},
+ ),
+ },
'/v2/images?limit=%d&tag=%s' % (images.DEFAULT_PAGE_SIZE, _TAG1): {
'GET': (
{},
@@ -754,6 +793,27 @@
images = self.controller.list(**filters)
self.assertEqual(0, len(images))
+ def test_list_images_for_hash_single_image(self):
+ fake_id = '3a4560a1-e585-443e-9b39-553b46ec92d1'
+ filters = {'filters': {'os_hash_value': _HASHVAL}}
+ images = self.controller.list(**filters)
+ self.assertEqual(1, len(images))
+ self.assertEqual('%s' % fake_id, images[0].id)
+
+ def test_list_images_for_hash_multiple_images(self):
+ fake_id1 = '2a4560b2-e585-443e-9b39-553b46ec92d1'
+ fake_id2 = '6f99bf80-2ee6-47cf-acfe-1f1fabb7e810'
+ filters = {'filters': {'os_hash_value': _HASHVAL1}}
+ images = self.controller.list(**filters)
+ self.assertEqual(2, len(images))
+ self.assertEqual('%s' % fake_id1, images[0].id)
+ self.assertEqual('%s' % fake_id2, images[1].id)
+
+ def test_list_images_for_wrong_hash(self):
+ filters = {'filters': {'os_hash_value': _HASHBAD}}
+ images = self.controller.list(**filters)
+ self.assertEqual(0, len(images))
+
def test_list_images_for_bogus_owner(self):
filters = {'filters': {'owner': _BOGUS_ID}}
images = self.controller.list(**filters)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/glanceclient/tests/unit/v2/test_shell_v2.py new/python-glanceclient-2.16.0/glanceclient/tests/unit/v2/test_shell_v2.py
--- old/python-glanceclient-2.13.1/glanceclient/tests/unit/v2/test_shell_v2.py 2018-12-12 04:54:05.000000000 +0100
+++ new/python-glanceclient-2.16.0/glanceclient/tests/unit/v2/test_shell_v2.py 2019-03-08 01:26:21.000000000 +0100
@@ -264,6 +264,8 @@
'sort_dir': ['desc', 'asc'],
'sort': None,
'verbose': False,
+ 'include_stores': False,
+ 'os_hash_value': None,
'os_hidden': False
}
args = self._make_args(input)
@@ -286,6 +288,86 @@
filters=exp_img_filters)
utils.print_list.assert_called_once_with({}, ['ID', 'Name'])
+ def test_do_image_list_verbose(self):
+ input = {
+ 'limit': None,
+ 'page_size': 18,
+ 'visibility': True,
+ 'member_status': 'Fake',
+ 'owner': 'test',
+ 'checksum': 'fake_checksum',
+ 'tag': 'fake tag',
+ 'properties': [],
+ 'sort_key': ['name', 'id'],
+ 'sort_dir': ['desc', 'asc'],
+ 'sort': None,
+ 'verbose': True,
+ 'include_stores': False,
+ 'os_hash_value': None,
+ 'os_hidden': False
+ }
+ args = self._make_args(input)
+ with mock.patch.object(self.gc.images, 'list') as mocked_list:
+ mocked_list.return_value = {}
+
+ test_shell.do_image_list(self.gc, args)
+ utils.print_list.assert_called_once_with(
+ {}, ['ID', 'Name', 'Disk_format', 'Container_format',
+ 'Size', 'Status', 'Owner'])
+
+ def test_do_image_list_with_include_stores_true(self):
+ input = {
+ 'limit': None,
+ 'page_size': 18,
+ 'visibility': True,
+ 'member_status': 'Fake',
+ 'owner': 'test',
+ 'checksum': 'fake_checksum',
+ 'tag': 'fake tag',
+ 'properties': [],
+ 'sort_key': ['name', 'id'],
+ 'sort_dir': ['desc', 'asc'],
+ 'sort': None,
+ 'verbose': False,
+ 'include_stores': True,
+ 'os_hash_value': None,
+ 'os_hidden': False
+ }
+ args = self._make_args(input)
+ with mock.patch.object(self.gc.images, 'list') as mocked_list:
+ mocked_list.return_value = {}
+
+ test_shell.do_image_list(self.gc, args)
+ utils.print_list.assert_called_once_with(
+ {}, ['ID', 'Name', 'Stores'])
+
+ def test_do_image_list_verbose_with_include_stores_true(self):
+ input = {
+ 'limit': None,
+ 'page_size': 18,
+ 'visibility': True,
+ 'member_status': 'Fake',
+ 'owner': 'test',
+ 'checksum': 'fake_checksum',
+ 'tag': 'fake tag',
+ 'properties': [],
+ 'sort_key': ['name', 'id'],
+ 'sort_dir': ['desc', 'asc'],
+ 'sort': None,
+ 'verbose': True,
+ 'include_stores': True,
+ 'os_hash_value': None,
+ 'os_hidden': False
+ }
+ args = self._make_args(input)
+ with mock.patch.object(self.gc.images, 'list') as mocked_list:
+ mocked_list.return_value = {}
+
+ test_shell.do_image_list(self.gc, args)
+ utils.print_list.assert_called_once_with(
+ {}, ['ID', 'Name', 'Disk_format', 'Container_format',
+ 'Size', 'Status', 'Owner', 'Stores'])
+
def test_do_image_list_with_hidden_true(self):
input = {
'limit': None,
@@ -300,6 +382,8 @@
'sort_dir': ['desc', 'asc'],
'sort': None,
'verbose': False,
+ 'include_stores': False,
+ 'os_hash_value': None,
'os_hidden': True
}
args = self._make_args(input)
@@ -336,6 +420,8 @@
'sort_dir': ['desc'],
'sort': None,
'verbose': False,
+ 'include_stores': False,
+ 'os_hash_value': None,
'os_hidden': False
}
args = self._make_args(input)
@@ -372,6 +458,8 @@
'sort_key': [],
'sort_dir': [],
'verbose': False,
+ 'include_stores': False,
+ 'os_hash_value': None,
'os_hidden': False
}
args = self._make_args(input)
@@ -408,6 +496,8 @@
'sort_dir': ['desc'],
'sort': None,
'verbose': False,
+ 'include_stores': False,
+ 'os_hash_value': None,
'os_hidden': False
}
args = self._make_args(input)
@@ -1428,18 +1518,25 @@
def test_do_location_add(self):
gc = self.gc
- loc = {'url': 'http://foo.com/', 'metadata': {'foo': 'bar'}}
- args = self._make_args({'id': 'pass',
- 'url': loc['url'],
- 'metadata': json.dumps(loc['metadata'])})
+ loc = {'url': 'http://foo.com/',
+ 'metadata': {'foo': 'bar'},
+ 'validation_data': {'checksum': 'csum',
+ 'os_hash_algo': 'algo',
+ 'os_hash_value': 'value'}}
+ args = {'id': 'pass',
+ 'url': loc['url'],
+ 'metadata': json.dumps(loc['metadata']),
+ 'checksum': 'csum',
+ 'hash_algo': 'algo',
+ 'hash_value': 'value'}
with mock.patch.object(gc.images, 'add_location') as mocked_addloc:
expect_image = {'id': 'pass', 'locations': [loc]}
mocked_addloc.return_value = expect_image
- test_shell.do_location_add(self.gc, args)
- mocked_addloc.assert_called_once_with('pass',
- loc['url'],
- loc['metadata'])
+ test_shell.do_location_add(self.gc, self._make_args(args))
+ mocked_addloc.assert_called_once_with(
+ 'pass', loc['url'], loc['metadata'],
+ validation_data=loc['validation_data'])
utils.print_dict.assert_called_once_with(expect_image)
def test_do_location_delete(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/glanceclient/v2/images.py new/python-glanceclient-2.16.0/glanceclient/v2/images.py
--- old/python-glanceclient-2.13.1/glanceclient/v2/images.py 2018-12-12 04:53:59.000000000 +0100
+++ new/python-glanceclient-2.16.0/glanceclient/v2/images.py 2019-03-08 01:26:21.000000000 +0100
@@ -432,7 +432,7 @@
data=json.dumps(patch_body))
return (resp, body), resp
- def add_location(self, image_id, url, metadata):
+ def add_location(self, image_id, url, metadata, validation_data=None):
"""Add a new location entry to an image's list of locations.
It is an error to add a URL that is already present in the list of
@@ -441,10 +441,13 @@
:param image_id: ID of image to which the location is to be added.
:param url: URL of the location to add.
:param metadata: Metadata associated with the location.
+ :param validation_data: Validation data for the image.
:returns: The updated image
"""
add_patch = [{'op': 'add', 'path': '/locations/-',
'value': {'url': url, 'metadata': metadata}}]
+ if validation_data:
+ add_patch[0]['value']['validation_data'] = validation_data
response = self._send_image_update_request(image_id, add_patch)
# Get request id from the above update request and pass the same to
# following get request
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/glanceclient/v2/shell.py new/python-glanceclient-2.16.0/glanceclient/v2/shell.py
--- old/python-glanceclient-2.13.1/glanceclient/v2/shell.py 2018-12-12 04:54:05.000000000 +0100
+++ new/python-glanceclient-2.16.0/glanceclient/v2/shell.py 2019-03-08 01:26:21.000000000 +0100
@@ -327,6 +327,9 @@
action='append', dest='properties', default=[])
@utils.arg('--checksum', metavar='<CHECKSUM>',
help=_('Displays images that match the MD5 checksum.'))
+(a)utils.arg('--hash', dest='os_hash_value', default=None,
+ metavar='<HASH_VALUE>',
+ help=_('Displays images that match the specified hash value.'))
@utils.arg('--tag', metavar='<TAG>', action='append',
help=_("Filter images by a user-defined tag."))
@utils.arg('--sort-key', default=[], action='append',
@@ -348,10 +351,17 @@
const=True,
nargs='?',
help="Filters results by hidden status. Default=None.")
+(a)utils.arg('--include-stores',
+ metavar='[True|False]',
+ default=None,
+ type=strutils.bool_from_string,
+ const=True,
+ nargs='?',
+ help="Print backend store id.")
def do_image_list(gc, args):
"""List images you can access."""
filter_keys = ['visibility', 'member_status', 'owner', 'checksum', 'tag',
- 'os_hidden']
+ 'os_hidden', 'os_hash_value']
filter_items = [(key, getattr(args, key)) for key in filter_keys]
if args.properties:
@@ -384,6 +394,9 @@
columns += ['Disk_format', 'Container_format', 'Size', 'Status',
'Owner']
+ if args.include_stores:
+ columns += ['Stores']
+
images = gc.images.list(**kwargs)
utils.print_list(images, columns)
@@ -737,16 +750,30 @@
@utils.arg('--metadata', metavar='<STRING>', default='{}',
help=_('Metadata associated with the location. '
'Must be a valid JSON object (default: %(default)s)'))
+(a)utils.arg('--checksum', metavar='<STRING>',
+ help=_('md5 checksum of image contents'))
+(a)utils.arg('--hash-algo', metavar='<STRING>',
+ help=_('Multihash algorithm'))
+(a)utils.arg('--hash-value', metavar='<STRING>',
+ help=_('Multihash value'))
@utils.arg('id', metavar='<IMAGE_ID>',
help=_('ID of image to which the location is to be added.'))
def do_location_add(gc, args):
"""Add a location (and related metadata) to an image."""
+ validation_data = {}
+ if args.checksum:
+ validation_data['checksum'] = args.checksum
+ if args.hash_algo:
+ validation_data['os_hash_algo'] = args.hash_algo
+ if args.hash_value:
+ validation_data['os_hash_value'] = args.hash_value
try:
metadata = json.loads(args.metadata)
except ValueError:
utils.exit('Metadata is not a valid JSON object.')
else:
- image = gc.images.add_location(args.id, args.url, metadata)
+ image = gc.images.add_location(args.id, args.url, metadata,
+ validation_data=validation_data)
utils.print_dict(image)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/python_glanceclient.egg-info/PKG-INFO new/python-glanceclient-2.16.0/python_glanceclient.egg-info/PKG-INFO
--- old/python-glanceclient-2.13.1/python_glanceclient.egg-info/PKG-INFO 2018-12-12 04:56:32.000000000 +0100
+++ new/python-glanceclient-2.16.0/python_glanceclient.egg-info/PKG-INFO 2019-03-08 01:28:04.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-glanceclient
-Version: 2.13.1
+Version: 2.16.0
Summary: OpenStack Image API Client Library
Home-page: https://docs.openstack.org/python-glanceclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: Apache License, Version 2.0
Description: ========================
Team and repository tags
@@ -16,8 +16,7 @@
OpenStack Images API:
"project:official",
"stable:follows-policy",
- "vulnerability:managed",
- "team:diverse-affiliation".
+ "vulnerability:managed".
Follow the link for an explanation of these tags.
.. NOTE(rosmaita): the alt text above will have to be updated when
additional tags are asserted for python-glanceclient. (The SVG in the
@@ -35,9 +34,9 @@
This is a client library for Glance built on the OpenStack Images API. It provides a Python API (the ``glanceclient`` module) and a command-line tool (``glance``). This library fully supports the v1 Images API, while support for the v2 API is in progress.
- Development takes place via the usual OpenStack processes as outlined in the `developer guide <http://docs.openstack.org/infra/manual/developers.html>`_. The master repository is in `Git <https://git.openstack.org/cgit/openstack/python-glanceclient>`_.
+ Development takes place via the usual OpenStack processes as outlined in the `developer guide <https://docs.openstack.org/infra/manual/developers.html>`_. The master repository is in `Git <https://git.openstack.org/cgit/openstack/python-glanceclient>`_.
- See release notes and more at `<http://docs.openstack.org/python-glanceclient/>`_.
+ See release notes and more at `<https://docs.openstack.org/python-glanceclient/latest/>`_.
* License: Apache License, Version 2.0
* `PyPi`_ - package installation
@@ -73,3 +72,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/python_glanceclient.egg-info/SOURCES.txt new/python-glanceclient-2.16.0/python_glanceclient.egg-info/SOURCES.txt
--- old/python-glanceclient-2.13.1/python_glanceclient.egg-info/SOURCES.txt 2018-12-12 04:56:32.000000000 +0100
+++ new/python-glanceclient-2.16.0/python_glanceclient.egg-info/SOURCES.txt 2019-03-08 01:28:04.000000000 +0100
@@ -114,19 +114,21 @@
python_glanceclient.egg-info/requires.txt
python_glanceclient.egg-info/top_level.txt
releasenotes/notes/.placeholder
+releasenotes/notes/2.16.0_Release-43ebe06b74a272ba.yaml
releasenotes/notes/bp-use-keystoneauth-e12f300e58577b13.yaml
releasenotes/notes/headers-encoding-bug-rocky-889ccd885a9cc4e8.yaml
-releasenotes/notes/headers-encoding-bug-rocky-part-deux-a58a7c0feaa6f27e.yaml
releasenotes/notes/hidden-images-support-9e2277ad62bf0d31.yaml
releasenotes/notes/http-headers-per-rfc-8187-aafa3199f863be81.yaml
releasenotes/notes/log-request-id-e7f67a23a0ed5c7b.yaml
releasenotes/notes/multi-store-support-acc7ad0e7e8b6f99.yaml
releasenotes/notes/multihash-download-verification-596e91bf7b68e7db.yaml
+releasenotes/notes/multihash-filter-ef2a48dc48fae9dc.yaml
releasenotes/notes/multihash-support-f1474590cf3ef5cf.yaml
releasenotes/notes/pike-relnote-2c77b01aa8799f35.yaml
releasenotes/notes/return-request-id-to-caller-47f4c0a684b1d88e.yaml
releasenotes/notes/rm-deprecate-ssl-opts-c88225a4ba2285ad.yaml
releasenotes/notes/rocky-2.11.0-ba936fd5e969198d.yaml
+releasenotes/notes/validation-data-support-dfb2463914818cd2.yaml
releasenotes/source/conf.py
releasenotes/source/earlier.rst
releasenotes/source/index.rst
@@ -135,6 +137,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/python_glanceclient.egg-info/pbr.json new/python-glanceclient-2.16.0/python_glanceclient.egg-info/pbr.json
--- old/python-glanceclient-2.13.1/python_glanceclient.egg-info/pbr.json 2018-12-12 04:56:32.000000000 +0100
+++ new/python-glanceclient-2.16.0/python_glanceclient.egg-info/pbr.json 2019-03-08 01:28:04.000000000 +0100
@@ -1 +1 @@
-{"git_version": "e0673a1", "is_release": true}
\ No newline at end of file
+{"git_version": "44a4dbd", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/releasenotes/notes/2.16.0_Release-43ebe06b74a272ba.yaml new/python-glanceclient-2.16.0/releasenotes/notes/2.16.0_Release-43ebe06b74a272ba.yaml
--- old/python-glanceclient-2.13.1/releasenotes/notes/2.16.0_Release-43ebe06b74a272ba.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-glanceclient-2.16.0/releasenotes/notes/2.16.0_Release-43ebe06b74a272ba.yaml 2019-03-08 01:26:21.000000000 +0100
@@ -0,0 +1,12 @@
+---
+prelude: >
+ This version of python-glanceclient adds Python 3.6 classifier and gating
+ on Python 3.7 environment.
+fixes:
+ - |
+ * Bug 1788271_: Add image-list filter for multihash
+ * Bug 1598714_: Remove redundant information from error message
+
+ .. _1788271: https://code.launchpad.net/bugs/1788271
+ .. _1598714: https://code.launchpad.net/bugs/1598714
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/releasenotes/notes/headers-encoding-bug-rocky-part-deux-a58a7c0feaa6f27e.yaml new/python-glanceclient-2.16.0/releasenotes/notes/headers-encoding-bug-rocky-part-deux-a58a7c0feaa6f27e.yaml
--- old/python-glanceclient-2.13.1/releasenotes/notes/headers-encoding-bug-rocky-part-deux-a58a7c0feaa6f27e.yaml 2018-12-12 04:54:05.000000000 +0100
+++ new/python-glanceclient-2.16.0/releasenotes/notes/headers-encoding-bug-rocky-part-deux-a58a7c0feaa6f27e.yaml 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
----
-fixes:
- - |
- The announcement that `Bug 1783290
- <https://code.launchpad.net/bugs/1783290>`_ was fixed in the previous
- release was premature. That bug has been more thoroughly fixed in
- this release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/releasenotes/notes/multihash-filter-ef2a48dc48fae9dc.yaml new/python-glanceclient-2.16.0/releasenotes/notes/multihash-filter-ef2a48dc48fae9dc.yaml
--- old/python-glanceclient-2.13.1/releasenotes/notes/multihash-filter-ef2a48dc48fae9dc.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-glanceclient-2.16.0/releasenotes/notes/multihash-filter-ef2a48dc48fae9dc.yaml 2019-03-08 01:26:17.000000000 +0100
@@ -0,0 +1,13 @@
+---
+features:
+ - |
+ For parity with the old ``checksum`` field, this release adds the
+ ability for CLI users to filter the image list based upon a particular
+ multihash value using the ``--hash <HASH_VALUE>`` option. Issue the
+ command:
+
+ .. code-block:: none
+
+ glance help image-list
+
+ for more information.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/releasenotes/notes/validation-data-support-dfb2463914818cd2.yaml new/python-glanceclient-2.16.0/releasenotes/notes/validation-data-support-dfb2463914818cd2.yaml
--- old/python-glanceclient-2.13.1/releasenotes/notes/validation-data-support-dfb2463914818cd2.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/python-glanceclient-2.16.0/releasenotes/notes/validation-data-support-dfb2463914818cd2.yaml 2019-03-08 01:26:21.000000000 +0100
@@ -0,0 +1,12 @@
+---
+features:
+ - |
+ Support for embedding validation data (checksum and multihash) when adding
+ a location to an image. Requires the Stein release server-side.
+
+ The ``glance.images.add_location()`` method now accepts an optional
+ argument ``validation_data``, in the form of a dictionary containing
+ ``checksum``, ``os_hash_algo`` and ``os_hash_value``.
+
+ The ``location-add`` command now accepts optional arguments ``--checksum``,
+ ``--hash-algo`` and ``--hash-value``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/releasenotes/source/index.rst new/python-glanceclient-2.16.0/releasenotes/source/index.rst
--- old/python-glanceclient-2.13.1/releasenotes/source/index.rst 2018-12-12 04:54:05.000000000 +0100
+++ new/python-glanceclient-2.16.0/releasenotes/source/index.rst 2019-03-08 01:26:17.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/releasenotes/source/rocky.rst new/python-glanceclient-2.16.0/releasenotes/source/rocky.rst
--- old/python-glanceclient-2.13.1/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-glanceclient-2.16.0/releasenotes/source/rocky.rst 2019-03-08 01:26:17.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/setup.cfg new/python-glanceclient-2.16.0/setup.cfg
--- old/python-glanceclient-2.13.1/setup.cfg 2018-12-12 04:56:32.000000000 +0100
+++ new/python-glanceclient-2.16.0/setup.cfg 2019-03-08 01:28:04.000000000 +0100
@@ -5,7 +5,7 @@
README.rst
license = Apache License, Version 2.0
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/python-glanceclient/latest/
classifier =
Development Status :: 5 - Production/Stable
@@ -20,6 +20,7 @@
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-glanceclient-2.13.1/tox.ini new/python-glanceclient-2.16.0/tox.ini
--- old/python-glanceclient-2.13.1/tox.ini 2018-12-12 04:54:05.000000000 +0100
+++ new/python-glanceclient-2.16.0/tox.ini 2019-03-08 01:26:17.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
envlist = py35,py27,pep8
-minversion = 1.6
+minversion = 2.0
skipsdist = True
[testenv]
@@ -11,7 +11,7 @@
OS_STDERR_NOCAPTURE=False
deps =
- -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+ -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
1
0
Hello community,
here is the log from the commit of package python-futurist for openSUSE:Factory checked in at 2019-05-03 22:40:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-futurist (Old)
and /work/SRC/openSUSE:Factory/.python-futurist.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-futurist"
Fri May 3 22:40:24 2019 rev:8 rq:692824 version:1.8.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-futurist/python-futurist.changes 2018-09-07 15:37:11.278678959 +0200
+++ /work/SRC/openSUSE:Factory/.python-futurist.new.5148/python-futurist.changes 2019-05-03 22:40:34.151006842 +0200
@@ -1,0 +2,19 @@
+Mon Apr 8 14:00:23 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.8.1
+ - fix tox python3 overrides
+ - Add blueprints notes link to README
+ - Use template for lower-constraints
+ - Trivial: Update pypi url to new url
+ - Change openstack-dev to openstack-discuss
+ - import zuul job settings from project-config
+ - Update reno for stable/rocky
+ - Only install monotonic on python2
+ - Don't quote {posargs} in tox.ini
+ - Follow the new PTI for document build
+ - Remove the duplicated word
+ - add lib-forward-testing-python3 test job
+ - add python 3.6 unit test job
+ - Switch to stestr
+
+-------------------------------------------------------------------
Old:
----
futurist-1.7.0.tar.gz
New:
----
futurist-1.8.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-futurist.spec ++++++
--- /var/tmp/diff_new_pack.UhnDRj/_old 2019-05-03 22:40:34.879008375 +0200
+++ /var/tmp/diff_new_pack.UhnDRj/_new 2019-05-03 22:40:34.883008383 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-futurist
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,20 +12,19 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-futurist
-Version: 1.7.0
+Version: 1.8.1
Release: 0
Summary: Useful additions to futures, from the future.
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/futurist
-Source0: https://files.pythonhosted.org/packages/source/f/futurist/futurist-1.7.0.ta…
+Source0: https://files.pythonhosted.org/packages/source/f/futurist/futurist-1.8.1.ta…
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python2-PrettyTable >= 0.7.1
BuildRequires: python2-Sphinx
BuildRequires: python2-contextlib2 >= 0.4.0
@@ -37,12 +36,10 @@
BuildRequires: python2-pbr >= 2.0.0
BuildRequires: python2-setuptools
BuildRequires: python2-six >= 1.10.0
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testscenarios
-BuildRequires: python2-testtools
BuildRequires: python3-PrettyTable >= 0.7.1
BuildRequires: python3-Sphinx
-BuildRequires: python3-devel
BuildRequires: python3-eventlet
BuildRequires: python3-monotonic >= 0.6
BuildRequires: python3-openstackdocstheme
@@ -50,9 +47,8 @@
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-setuptools
BuildRequires: python3-six >= 1.10.0
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testscenarios
-BuildRequires: python3-testtools
Requires: python-PrettyTable >= 0.7.1
Requires: python-monotonic >= 0.6
Requires: python-six >= 1.10.0
@@ -67,25 +63,20 @@
Useful additions to futures, from the future.
%prep
-%autosetup -p1 -n futurist-1.7.0
+%autosetup -p1 -n futurist-1.8.1
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
# generate html docs
-%{__python2} setup.py build_sphinx
-# remove the sphinx-build leftovers
-rm -rf html/.{doctrees,buildinfo}
+PBR_VERSION=1.8.1 sphinx-build -b html doc/source doc/build/html
%install
%{python_install}
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%doc doc/build/html README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.UhnDRj/_old 2019-05-03 22:40:34.931008484 +0200
+++ /var/tmp/diff_new_pack.UhnDRj/_new 2019-05-03 22:40:34.935008493 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-futurist.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/futurist/stable/rocky/requireme…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/futurist/stable/stein/requireme…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,futurist</param>
</service>
++++++ futurist-1.7.0.tar.gz -> futurist-1.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/.stestr.conf new/futurist-1.8.1/.stestr.conf
--- old/futurist-1.7.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/futurist-1.8.1/.stestr.conf 2019-02-28 19:05:31.000000000 +0100
@@ -0,0 +1,4 @@
+[DEFAULT]
+test_path=./futurist/tests
+top_dir=./
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/.testr.conf new/futurist-1.8.1/.testr.conf
--- old/futurist-1.7.0/.testr.conf 2018-04-23 23:06:20.000000000 +0200
+++ new/futurist-1.8.1/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/.zuul.yaml new/futurist-1.8.1/.zuul.yaml
--- old/futurist-1.7.0/.zuul.yaml 2018-04-23 23:06:20.000000000 +0200
+++ new/futurist-1.8.1/.zuul.yaml 2019-02-28 19:05:31.000000000 +0100
@@ -1,7 +1,12 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/AUTHORS new/futurist-1.8.1/AUTHORS
--- old/futurist-1.7.0/AUTHORS 2018-04-23 23:08:46.000000000 +0200
+++ new/futurist-1.8.1/AUTHORS 2019-02-28 19:07:55.000000000 +0100
@@ -1,3 +1,4 @@
+98k <18552437190(a)163.com>
Akihiro Motoki <amotoki(a)gmail.com>
Andreas Jaeger <aj(a)suse.com>
Anh Tran <anhtt(a)vn.fujitsu.com>
@@ -12,6 +13,7 @@
Joshua Harlow <harlowja(a)gmail.com>
Joshua Harlow <harlowja(a)yahoo-inc.com>
Joshua Harlow <jxharlow(a)godaddy.com>
+LeopardMa <mabao(a)inspur.com>
Mehdi Abaakouk <sileht(a)sileht.net>
Monty Taylor <mordred(a)inaugust.com>
Nguyen Van Trung <trungnv(a)vn.fujitsu.com>
@@ -22,8 +24,8 @@
Thomas Bechtold <tbechtold(a)suse.com>
Tony Breeds <tony(a)bakeyournoodle.com>
Tony Xu <hhktony(a)gmail.com>
+Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Yuriy Zveryanskyy <yzveryanskyy(a)mirantis.com>
-Zuul <zuul(a)review.openstack.org>
aditi <aditi.s(a)nectechnologies.in>
gengchc2 <geng.changcai2(a)zte.com.cn>
janonymous <janonymous.codevulture(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/ChangeLog new/futurist-1.8.1/ChangeLog
--- old/futurist-1.7.0/ChangeLog 2018-04-23 23:08:46.000000000 +0200
+++ new/futurist-1.8.1/ChangeLog 2019-02-28 19:07:55.000000000 +0100
@@ -1,6 +1,28 @@
CHANGES
=======
+1.8.1
+-----
+
+* Use template for lower-constraints
+* Change openstack-dev to openstack-discuss
+
+1.8.0
+-----
+
+* Only install monotonic on python2
+* Don't quote {posargs} in tox.ini
+* Remove the duplicated word
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+* Switch to stestr
+* Follow the new PTI for document build
+* Add blueprints notes link to README
+* fix tox python3 overrides
+* Trivial: Update pypi url to new url
+
1.7.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/PKG-INFO new/futurist-1.8.1/PKG-INFO
--- old/futurist-1.7.0/PKG-INFO 2018-04-23 23:08:47.000000000 +0200
+++ new/futurist-1.8.1/PKG-INFO 2019-02-28 19:07:55.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: futurist
-Version: 1.7.0
+Version: 1.8.1
Summary: Useful additions to futures, from the future.
Home-page: https://docs.openstack.org/futurist/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -20,11 +20,11 @@
========
.. image:: https://img.shields.io/pypi/v/futurist.svg
- :target: https://pypi.python.org/pypi/futurist/
+ :target: https://pypi.org/project/futurist/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/futurist.svg
- :target: https://pypi.python.org/pypi/futurist/
+ :target: https://pypi.org/project/futurist/
:alt: Downloads
Code from the future, delivered to you in the **now**. The goal of this library
@@ -37,6 +37,7 @@
* Documentation: https://docs.openstack.org/futurist/latest/
* Source: https://git.openstack.org/cgit/openstack/futurist
* Bugs: https://bugs.launchpad.net/futurist
+ * Blueprints: https://blueprints.launchpad.net/futurist
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/README.rst new/futurist-1.8.1/README.rst
--- old/futurist-1.7.0/README.rst 2018-04-23 23:06:20.000000000 +0200
+++ new/futurist-1.8.1/README.rst 2019-02-28 19:05:31.000000000 +0100
@@ -12,11 +12,11 @@
========
.. image:: https://img.shields.io/pypi/v/futurist.svg
- :target: https://pypi.python.org/pypi/futurist/
+ :target: https://pypi.org/project/futurist/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/futurist.svg
- :target: https://pypi.python.org/pypi/futurist/
+ :target: https://pypi.org/project/futurist/
:alt: Downloads
Code from the future, delivered to you in the **now**. The goal of this library
@@ -29,3 +29,4 @@
* Documentation: https://docs.openstack.org/futurist/latest/
* Source: https://git.openstack.org/cgit/openstack/futurist
* Bugs: https://bugs.launchpad.net/futurist
+* Blueprints: https://blueprints.launchpad.net/futurist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/doc/requirements.txt new/futurist-1.8.1/doc/requirements.txt
--- old/futurist-1.7.0/doc/requirements.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/futurist-1.8.1/doc/requirements.txt 2019-02-28 19:05:31.000000000 +0100
@@ -0,0 +1,3 @@
+sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
+openstackdocstheme>=1.18.1 # Apache-2.0
+reno>=2.5.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/futurist/_utils.py new/futurist-1.8.1/futurist/_utils.py
--- old/futurist-1.7.0/futurist/_utils.py 2018-04-23 23:06:20.000000000 +0200
+++ new/futurist-1.8.1/futurist/_utils.py 2019-02-28 19:05:31.000000000 +0100
@@ -21,7 +21,12 @@
import threading
import traceback
-from monotonic import monotonic as now # noqa
+try:
+ from monotonic import monotonic as now # noqa
+except ImportError:
+ import time
+ now = time.monotonic
+
import six
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/futurist/tests/test_executors.py new/futurist-1.8.1/futurist/tests/test_executors.py
--- old/futurist-1.7.0/futurist/tests/test_executors.py 2018-04-23 23:06:20.000000000 +0200
+++ new/futurist-1.8.1/futurist/tests/test_executors.py 2019-02-28 19:05:31.000000000 +0100
@@ -83,7 +83,7 @@
self.assertEqual(3, self.executor.statistics.executed)
self.assertEqual(1, self.executor.statistics.failures)
self.assertGreaterEqual(self.executor.statistics.runtime,
- # It appears that the the thread run loop
+ # It appears that the thread run loop
# may call this before 0.2 seconds (or 0.2
# will not be represented as a float correctly)
# is really up so accommodate for that
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/futurist.egg-info/PKG-INFO new/futurist-1.8.1/futurist.egg-info/PKG-INFO
--- old/futurist-1.7.0/futurist.egg-info/PKG-INFO 2018-04-23 23:08:46.000000000 +0200
+++ new/futurist-1.8.1/futurist.egg-info/PKG-INFO 2019-02-28 19:07:55.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: futurist
-Version: 1.7.0
+Version: 1.8.1
Summary: Useful additions to futures, from the future.
Home-page: https://docs.openstack.org/futurist/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -20,11 +20,11 @@
========
.. image:: https://img.shields.io/pypi/v/futurist.svg
- :target: https://pypi.python.org/pypi/futurist/
+ :target: https://pypi.org/project/futurist/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/dm/futurist.svg
- :target: https://pypi.python.org/pypi/futurist/
+ :target: https://pypi.org/project/futurist/
:alt: Downloads
Code from the future, delivered to you in the **now**. The goal of this library
@@ -37,6 +37,7 @@
* Documentation: https://docs.openstack.org/futurist/latest/
* Source: https://git.openstack.org/cgit/openstack/futurist
* Bugs: https://bugs.launchpad.net/futurist
+ * Blueprints: https://blueprints.launchpad.net/futurist
Platform: UNKNOWN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/futurist.egg-info/SOURCES.txt new/futurist-1.8.1/futurist.egg-info/SOURCES.txt
--- old/futurist-1.7.0/futurist.egg-info/SOURCES.txt 2018-04-23 23:08:47.000000000 +0200
+++ new/futurist-1.8.1/futurist.egg-info/SOURCES.txt 2019-02-28 19:07:55.000000000 +0100
@@ -1,6 +1,6 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -16,6 +16,7 @@
setup.py
test-requirements.txt
tox.ini
+doc/requirements.txt
doc/source/conf.py
doc/source/index.rst
doc/source/contributor/index.rst
@@ -52,6 +53,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/futurist.egg-info/pbr.json new/futurist-1.8.1/futurist.egg-info/pbr.json
--- old/futurist-1.7.0/futurist.egg-info/pbr.json 2018-04-23 23:08:46.000000000 +0200
+++ new/futurist-1.8.1/futurist.egg-info/pbr.json 2019-02-28 19:07:55.000000000 +0100
@@ -1 +1 @@
-{"git_version": "936a5d5", "is_release": true}
\ No newline at end of file
+{"git_version": "481e940", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/futurist.egg-info/requires.txt new/futurist-1.8.1/futurist.egg-info/requires.txt
--- old/futurist-1.7.0/futurist.egg-info/requires.txt 2018-04-23 23:08:46.000000000 +0200
+++ new/futurist-1.8.1/futurist.egg-info/requires.txt 2019-02-28 19:07:55.000000000 +0100
@@ -1,8 +1,12 @@
pbr!=2.1.0,>=2.0.0
six>=1.10.0
-monotonic>=0.6
-contextlib2>=0.4.0
PrettyTable<0.8,>=0.7.1
+[:(python_version<'3.0')]
+contextlib2>=0.4.0
+
+[:(python_version<'3.3')]
+monotonic>=0.6
+
[:(python_version=='2.7' or python_version=='2.6')]
futures>=3.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/lower-constraints.txt new/futurist-1.8.1/lower-constraints.txt
--- old/futurist-1.7.0/lower-constraints.txt 2018-04-23 23:06:20.000000000 +0200
+++ new/futurist-1.8.1/lower-constraints.txt 2019-02-28 19:05:31.000000000 +0100
@@ -45,7 +45,7 @@
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
stevedore==1.20.0
-testrepository==0.0.18
+stestr==2.0.0
testscenarios==0.4
testtools==2.2.0
traceback2==1.4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/releasenotes/source/index.rst new/futurist-1.8.1/releasenotes/source/index.rst
--- old/futurist-1.7.0/releasenotes/source/index.rst 2018-04-23 23:06:20.000000000 +0200
+++ new/futurist-1.8.1/releasenotes/source/index.rst 2019-02-28 19:05:31.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/releasenotes/source/rocky.rst new/futurist-1.8.1/releasenotes/source/rocky.rst
--- old/futurist-1.7.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/futurist-1.8.1/releasenotes/source/rocky.rst 2019-02-28 19:05:31.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/requirements.txt new/futurist-1.8.1/requirements.txt
--- old/futurist-1.7.0/requirements.txt 2018-04-23 23:06:20.000000000 +0200
+++ new/futurist-1.8.1/requirements.txt 2019-02-28 19:05:31.000000000 +0100
@@ -4,7 +4,7 @@
pbr!=2.1.0,>=2.0.0 # Apache-2.0
six>=1.10.0 # MIT
-monotonic>=0.6 # Apache-2.0
+monotonic>=0.6;python_version<'3.3' # Apache-2.0
futures>=3.0.0;python_version=='2.7' or python_version=='2.6' # BSD
-contextlib2>=0.4.0 # PSF License
+contextlib2>=0.4.0;python_version<'3.0' # PSF License
PrettyTable<0.8,>=0.7.1 # BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/setup.cfg new/futurist-1.8.1/setup.cfg
--- old/futurist-1.7.0/setup.cfg 2018-04-23 23:08:47.000000000 +0200
+++ new/futurist-1.8.1/setup.cfg 2019-02-28 19:07:55.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/futurist/latest/
classifier =
Environment :: OpenStack
@@ -22,15 +22,6 @@
packages =
futurist
-[build_sphinx]
-source-dir = doc/source
-build-dir = doc/build
-all_files = 1
-warning-is-error = 1
-
-[upload_sphinx]
-upload-dir = doc/build/html
-
[compile_catalog]
directory = futurist/locale
domain = futurist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/test-requirements.txt new/futurist-1.8.1/test-requirements.txt
--- old/futurist-1.7.0/test-requirements.txt 2018-04-23 23:06:20.000000000 +0200
+++ new/futurist-1.8.1/test-requirements.txt 2019-02-28 19:05:31.000000000 +0100
@@ -10,10 +10,7 @@
doc8>=0.6.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
python-subunit>=1.0.0 # Apache-2.0/BSD
-sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
-openstackdocstheme>=1.18.1 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
-testrepository>=0.0.18 # Apache-2.0/BSD
+stestr>=2.0.0 # Apache-2.0
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
-reno>=2.5.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/futurist-1.7.0/tox.ini new/futurist-1.8.1/tox.ini
--- old/futurist-1.7.0/tox.ini 2018-04-23 23:06:20.000000000 +0200
+++ new/futurist-1.8.1/tox.ini 2019-02-28 19:05:31.000000000 +0100
@@ -3,7 +3,6 @@
envlist = py35,py27,pypy,pep8
[testenv]
-basepython = python3
install_command = pip install {opts} {packages}
whitelist_externals = find
rm
@@ -12,33 +11,43 @@
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
- python setup.py testr --slowest --testr-args='{posargs}'
- sphinx-build -E -W -b doctest doc/source doc/build/doctest
+ stestr run --slowest {posargs}
[testenv:pep8]
+basepython = python3
commands =
flake8
doc8 doc/source
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:cover]
+basepython = python3
+setenv =
+ PYTHON=coverage run --source $project --parallel-mode
commands =
- coverage erase
- find . -type f -name "*.pyc" -delete
- python setup.py test --coverage --testr-args='{posargs}'
- coverage report
+ coverage erase
+ find . -type f -name "*.pyc" -delete
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
+ coverage report
[testenv:py27]
basepython = python2.7
[testenv:docs]
+basepython = python3
+deps = -r{toxinidir}/doc/requirements.txt
commands =
rm -rf doc/build
sphinx-build -E -W -b html doc/source doc/build/html
[testenv:debug]
+basepython = python3
commands = oslo_debug_helper {posargs}
[flake8]
@@ -49,9 +58,11 @@
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
[testenv:releasenotes]
+basepython = python3
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:lower-constraints]
+basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
1
0
Hello community,
here is the log from the commit of package python-freezerclient for openSUSE:Factory checked in at 2019-05-03 22:40:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-freezerclient (Old)
and /work/SRC/openSUSE:Factory/.python-freezerclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-freezerclient"
Fri May 3 22:40:21 2019 rev:5 rq:692823 version:2.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-freezerclient/python-freezerclient.changes 2018-09-07 15:37:06.662684063 +0200
+++ /work/SRC/openSUSE:Factory/.python-freezerclient.new.5148/python-freezerclient.changes 2019-05-03 22:40:27.506992854 +0200
@@ -1,0 +2,41 @@
+Mon Apr 8 12:35:24 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.1.0
+ - Freezer command line tool add argument: "--os-backup-api-version"
+ - Add 'freezerclient.v2.managers.clients' unit test cases
+ - Switch to stestr
+ - Add freezerclient.client in order to use the python api directly
+ - Remove PyPI downloads
+ - import zuul job settings from project-config
+ - Update freezerclient documentation
+ - Remove "--os-identity-api-version" argument
+ - Add some unit test cases for API version 2
+ - The path of the import module is incorrect
+ - Add backup create client support for freezer
+ - Add release note link in README
+ - session-show status and result error, and add session_tag
+ - add action show command field for freezerclient
+ - Use keystoneauth1.loading instead of specifying V2 or V3 of keystone
+ - Update min tox version to 2.0
+ - Don't quote {posargs} in tox.ini
+ - add show job command field for client v1
+ - add python 3.6 unit test job
+ - 'Tenant' is replaced by 'project' in keystone starting in API version 3.
+ - add action show command field for client v1
+ - Add py36 testenv
+ - Trivial: Update pypi url to new url
+ - Add 'freezerclient.v2.managers.jobs' unit test cases
+ - Add backup create for api v1
+ - Add the describes about search option
+ - switch documentation job to new PTI
+ - fix tox python3 overrides
+ - Correct search opt param in SessionList
+ - add show job command field for freezerclient
+ - Freezerclient use "token" to authentication is not success
+ - Add detailed information fro session-show and session-list for v1
+ - Add freezer-tempest-client job as check/gate test job
+ - Add 'freezerclient.v2.managers.sessions' unit test cases
+ - Add detailed information fro session-show and session-list
+ - add backup show command field for freezerclient
+
+-------------------------------------------------------------------
Old:
----
python-freezerclient-1.7.0.tar.gz
New:
----
python-freezerclient-2.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-freezerclient.spec ++++++
--- /var/tmp/diff_new_pack.5VKY9W/_old 2019-05-03 22:40:28.246994412 +0200
+++ /var/tmp/diff_new_pack.5VKY9W/_new 2019-05-03 22:40:28.278994479 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-freezerclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,20 +12,20 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-freezerclient
-Version: 1.7.0
+Version: 2.1.0
Release: 0
Summary: Python API and CLI for OpenStack Freezer
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-freezerclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-freezerclient/pytho…
+Source0: https://files.pythonhosted.org/packages/source/p/python-freezerclient/pytho…
BuildRequires: openstack-macros
-BuildRequires: python-devel
+BuildRequires: python2-cliff >= 2.8.0
BuildRequires: python2-fixtures
BuildRequires: python2-keystoneclient
BuildRequires: python2-mock
@@ -35,9 +35,9 @@
BuildRequires: python2-pbr >= 2.0.0
BuildRequires: python2-python-subunit
BuildRequires: python2-setuptools >= 21.0.0
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testtools
-BuildRequires: python3-devel
+BuildRequires: python3-cliff >= 2.8.0
BuildRequires: python3-fixtures
BuildRequires: python3-keystoneclient
BuildRequires: python3-mock
@@ -47,7 +47,7 @@
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-python-subunit
BuildRequires: python3-setuptools >= 21.0.0
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testtools
Requires: python-cliff >= 2.8.0
Requires: python-keystoneclient
@@ -86,14 +86,13 @@
%prep
%autosetup -p1 -n %{name}-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
# Build HTML docs and man page
-PBR_VERSION=1.7.0 sphinx-build -b html doc/source doc/build/html
-rm -rf html/.{doctrees,buildinfo}
+PBR_VERSION=2.1.0 sphinx-build -b html doc/source doc/build/html
+rm -r doc/build/html/.{doctrees,buildinfo}
%install
%{python_install}
@@ -106,9 +105,7 @@
%python_uninstall_alternative freezer
%check
-%{python_expand rm -rf .testrepository
-$python setup.py testr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%doc README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.5VKY9W/_old 2019-05-03 22:40:28.354994640 +0200
+++ /var/tmp/diff_new_pack.5VKY9W/_new 2019-05-03 22:40:28.378994690 +0200
@@ -1,6 +1,6 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-freezerclient.spec</param>
<param name="requirements">https://raw.githubusercontent.com/openstack/python-freezerclient/master/req…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
++++++ python-freezerclient-1.7.0.tar.gz -> python-freezerclient-2.1.0.tar.gz ++++++
++++ 4854 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-designateclient for openSUSE:Factory checked in at 2019-05-03 22:40:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-designateclient (Old)
and /work/SRC/openSUSE:Factory/.python-designateclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-designateclient"
Fri May 3 22:40:16 2019 rev:14 rq:692822 version:2.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-designateclient/python-designateclient.changes 2018-09-07 15:37:03.426687688 +0200
+++ /work/SRC/openSUSE:Factory/.python-designateclient.new.5148/python-designateclient.changes 2019-05-03 22:40:23.218983827 +0200
@@ -1,0 +2,12 @@
+Mon Apr 8 12:00:50 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 2.11.0
+ - Update reno for stable/rocky
+ - Don't quote {posargs} in tox.ini
+ - switch documentation job to new PTI
+ - add python 3.6 unit test job
+ - import zuul job settings from project-config
+ - Use templates for cover and lower-constraints
+ - Check item is one of six.string_types not just str
+
+-------------------------------------------------------------------
Old:
----
python-designateclient-2.10.0.tar.gz
New:
----
python-designateclient-2.11.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-designateclient.spec ++++++
--- /var/tmp/diff_new_pack.6MFhEw/_old 2019-05-03 22:40:24.690986926 +0200
+++ /var/tmp/diff_new_pack.6MFhEw/_new 2019-05-03 22:40:24.718986984 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-designateclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,13 +12,13 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global sname python-designateclient
Name: python-designateclient
-Version: 2.10.0
+Version: 2.11.0
Release: 0
Summary: OpenStack DNS as a Service - Client
License: Apache-2.0
@@ -26,7 +26,6 @@
URL: https://launchpad.net/%{sname}
Source0: https://files.pythonhosted.org/packages/source/p/%{sname}/%{sname}-%{versio…
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python-jsonschema >= 2.6.0
BuildRequires: python-keystoneclient
BuildRequires: python-mock
@@ -63,7 +62,6 @@
%prep
%autosetup -n %{sname}-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%py2_build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.6MFhEw/_old 2019-05-03 22:40:25.086987759 +0200
+++ /var/tmp/diff_new_pack.6MFhEw/_new 2019-05-03 22:40:25.098987784 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-designateclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-designateclient/stable/r…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-designateclient/stable/s…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-designateclient</param>
</service>
++++++ python-designateclient-2.10.0.tar.gz -> python-designateclient-2.11.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/.zuul.yaml new/python-designateclient-2.11.0/.zuul.yaml
--- old/python-designateclient-2.10.0/.zuul.yaml 2018-08-10 18:35:44.000000000 +0200
+++ new/python-designateclient-2.11.0/.zuul.yaml 2018-11-01 14:30:25.000000000 +0100
@@ -1,9 +1,13 @@
- project:
templates:
+ - check-requirements
- designate-devstack-jobs
- check:
- jobs:
- - openstack-tox-lower-constraints
+ - openstack-cover-jobs
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstackclient-plugin-jobs
+ - publish-openstack-docs-pti
gate:
- jobs:
- - openstack-tox-lower-constraints
+ queue: designate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/AUTHORS new/python-designateclient-2.11.0/AUTHORS
--- old/python-designateclient-2.10.0/AUTHORS 2018-08-10 18:38:57.000000000 +0200
+++ new/python-designateclient-2.11.0/AUTHORS 2018-11-01 14:33:27.000000000 +0100
@@ -44,6 +44,7 @@
Lakshmi N Sampath <lakshmi.sampath(a)hp.com>
Marcus Furlong <furlongm(a)gmail.com>
Monty Taylor <mordred(a)inaugust.com>
+Nguyen Hai <nguyentrihai93(a)gmail.com>
Ondřej Nový <ondrej.novy(a)firma.seznam.cz>
OpenStack Release Bot <infra-root(a)openstack.org>
Patrick Galbraith <patg(a)patg.net>
@@ -68,8 +69,8 @@
Tony Breeds <tony(a)bakeyournoodle.com>
Tony Xu <hhktony(a)gmail.com>
Venkata Mahesh Jonnalagadda <Venkata.Jonnalagadda(a)intl.att.com>
+Vieri <15050873171(a)163.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
-Zuul <zuul(a)review.openstack.org>
abhishekkekane <abhishek.kekane(a)nttdata.com>
algerwang <wang.weijie(a)99cloud.net>
ashish-kumar-gupta <ashish-kumar.gupta(a)hpe.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/ChangeLog new/python-designateclient-2.11.0/ChangeLog
--- old/python-designateclient-2.10.0/ChangeLog 2018-08-10 18:38:57.000000000 +0200
+++ new/python-designateclient-2.11.0/ChangeLog 2018-11-01 14:33:27.000000000 +0100
@@ -1,6 +1,16 @@
CHANGES
=======
+2.11.0
+------
+
+* Don't quote {posargs} in tox.ini
+* Use templates for cover and lower-constraints
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+
2.10.0
------
@@ -11,6 +21,7 @@
* fix tox python3 overrides
* Trivial: Update pypi url to new url
* Updated from global requirements
+* Check item is one of six.string\_types not just str
* add lower-constraints job
* Updated from global requirements
* Updated from global requirements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/PKG-INFO new/python-designateclient-2.11.0/PKG-INFO
--- old/python-designateclient-2.10.0/PKG-INFO 2018-08-10 18:38:58.000000000 +0200
+++ new/python-designateclient-2.11.0/PKG-INFO 2018-11-01 14:33:27.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-designateclient
-Version: 2.10.0
+Version: 2.11.0
Summary: OpenStack DNS-as-a-Service - Client
Home-page: https://docs.openstack.org/python-designateclient/latest
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/RELEASENOTES.rst new/python-designateclient-2.11.0/RELEASENOTES.rst
--- old/python-designateclient-2.10.0/RELEASENOTES.rst 2018-08-10 18:38:58.000000000 +0200
+++ new/python-designateclient-2.11.0/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-======================
-python-designateclient
-======================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/designateclient/v2/cli/common.py new/python-designateclient-2.11.0/designateclient/v2/cli/common.py
--- old/python-designateclient-2.10.0/designateclient/v2/cli/common.py 2018-08-10 18:35:44.000000000 +0200
+++ new/python-designateclient-2.11.0/designateclient/v2/cli/common.py 2018-11-01 14:30:25.000000000 +0100
@@ -13,6 +13,7 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
+import six
def add_all_projects_option(parser):
@@ -70,5 +71,5 @@
set_edit_managed(client, parsed_args.edit_managed)
if parsed_args.sudo_project_id is not None and \
- isinstance(parsed_args.sudo_project_id, str):
+ isinstance(parsed_args.sudo_project_id, six.string_types):
set_sudo_project_id(client, parsed_args.sudo_project_id)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/designateclient/v2/cli/zones.py new/python-designateclient-2.11.0/designateclient/v2/cli/zones.py
--- old/python-designateclient-2.10.0/designateclient/v2/cli/zones.py 2018-08-10 18:35:44.000000000 +0200
+++ new/python-designateclient-2.11.0/designateclient/v2/cli/zones.py 2018-11-01 14:30:25.000000000 +0100
@@ -70,8 +70,6 @@
client = self.app.client_manager.dns
common.set_all_common_headers(client, parsed_args)
- common.set_all_common_headers(client, parsed_args)
-
criterion = {}
if parsed_args.type is not None:
criterion["type"] = parsed_args.type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/python_designateclient.egg-info/PKG-INFO new/python-designateclient-2.11.0/python_designateclient.egg-info/PKG-INFO
--- old/python-designateclient-2.10.0/python_designateclient.egg-info/PKG-INFO 2018-08-10 18:38:57.000000000 +0200
+++ new/python-designateclient-2.11.0/python_designateclient.egg-info/PKG-INFO 2018-11-01 14:33:27.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-designateclient
-Version: 2.10.0
+Version: 2.11.0
Summary: OpenStack DNS-as-a-Service - Client
Home-page: https://docs.openstack.org/python-designateclient/latest
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/python_designateclient.egg-info/SOURCES.txt new/python-designateclient-2.11.0/python_designateclient.egg-info/SOURCES.txt
--- old/python-designateclient-2.10.0/python_designateclient.egg-info/SOURCES.txt 2018-08-10 18:38:58.000000000 +0200
+++ new/python-designateclient-2.11.0/python_designateclient.egg-info/SOURCES.txt 2018-11-01 14:33:27.000000000 +0100
@@ -148,6 +148,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/python_designateclient.egg-info/pbr.json new/python-designateclient-2.11.0/python_designateclient.egg-info/pbr.json
--- old/python-designateclient-2.10.0/python_designateclient.egg-info/pbr.json 2018-08-10 18:38:57.000000000 +0200
+++ new/python-designateclient-2.11.0/python_designateclient.egg-info/pbr.json 2018-11-01 14:33:27.000000000 +0100
@@ -1 +1 @@
-{"git_version": "200f519", "is_release": true}
\ No newline at end of file
+{"git_version": "f0b7eb4", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/releasenotes/notes/reno.cache new/python-designateclient-2.11.0/releasenotes/notes/reno.cache
--- old/python-designateclient-2.10.0/releasenotes/notes/reno.cache 2018-08-10 18:38:58.000000000 +0200
+++ new/python-designateclient-2.11.0/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/releasenotes/source/index.rst new/python-designateclient-2.11.0/releasenotes/source/index.rst
--- old/python-designateclient-2.10.0/releasenotes/source/index.rst 2018-08-10 18:35:44.000000000 +0200
+++ new/python-designateclient-2.11.0/releasenotes/source/index.rst 2018-11-01 14:30:25.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/releasenotes/source/rocky.rst new/python-designateclient-2.11.0/releasenotes/source/rocky.rst
--- old/python-designateclient-2.10.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-designateclient-2.11.0/releasenotes/source/rocky.rst 2018-11-01 14:30:25.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.10.0/tox.ini new/python-designateclient-2.11.0/tox.ini
--- old/python-designateclient-2.10.0/tox.ini 2018-08-10 18:35:44.000000000 +0200
+++ new/python-designateclient-2.11.0/tox.ini 2018-11-01 14:30:25.000000000 +0100
@@ -49,7 +49,7 @@
setenv =
PYTHON=coverage run --source designateclient --parallel-mode
commands =
- stestr run '{posargs}'
+ stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
1
0
Hello community,
here is the log from the commit of package python-congressclient for openSUSE:Factory checked in at 2019-05-03 22:40:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-congressclient (Old)
and /work/SRC/openSUSE:Factory/.python-congressclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-congressclient"
Fri May 3 22:40:09 2019 rev:7 rq:692820 version:1.12.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-congressclient/python-congressclient.changes 2018-09-07 15:36:59.902691636 +0200
+++ /work/SRC/openSUSE:Factory/.python-congressclient.new.5148/python-congressclient.changes 2019-05-03 22:40:18.310973494 +0200
@@ -1,0 +2,14 @@
+Mon Apr 8 12:05:30 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.12.0
+ - Add Python 3.6 classifier to setup.cfg
+ - Switch to stestr
+ - Change openstack-dev to openstack-discuss
+ - Update hacking version
+ - Add python 3.6 for test in tox
+ - switch documentation job to new PTI
+ - add python 3.6 unit test job
+ - Use template for lower-constraints
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
python-congressclient-1.11.0.tar.gz
New:
----
python-congressclient-1.12.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-congressclient.spec ++++++
--- /var/tmp/diff_new_pack.SQwDjr/_old 2019-05-03 22:40:20.754978639 +0200
+++ /var/tmp/diff_new_pack.SQwDjr/_new 2019-05-03 22:40:20.794978723 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-congressclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,21 +12,20 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global sname python-congressclient
Name: python-congressclient
-Version: 1.11.0
+Version: 1.12.0
Release: 0
Summary: Client library for Congress
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/%{name}
-Source0: https://files.pythonhosted.org/packages/source/p/python-congressclient/pyth…
+Source0: https://files.pythonhosted.org/packages/source/p/python-congressclient/pyth…
BuildRequires: openstack-macros
-BuildRequires: python-devel
BuildRequires: python-fixtures
BuildRequires: python-jsonpatch
BuildRequires: python-mock
@@ -40,9 +39,8 @@
BuildRequires: python-requests-mock
BuildRequires: python-setuptools
BuildRequires: python-sphinxcontrib-apidoc
-BuildRequires: python-testrepository
+BuildRequires: python-stestr
BuildRequires: python-testscenarios
-BuildRequires: python-testtools
Requires: python-Babel >= 2.3.4
Requires: python-cliff >= 2.8.0
Requires: python-keystoneauth1 >= 3.4.0
@@ -86,20 +84,19 @@
%prep
%autosetup -n %{name}-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{py2_build}
# Build HTML docs and man page
-PBR_VERSION=1.11.0 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=1.12.0 sphinx-build -b html doc/source doc/build/html
rm -rf doc/build/html/.{doctrees,buildinfo}
%install
%{py2_install}
%check
-%{__python2} setup.py testr
+stestr run
%files
%doc README.rst
++++++ _service ++++++
--- /var/tmp/diff_new_pack.SQwDjr/_old 2019-05-03 22:40:21.154979481 +0200
+++ /var/tmp/diff_new_pack.SQwDjr/_new 2019-05-03 22:40:21.178979532 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-congressclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-congressclient/stable/ro…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-congressclient/stable/st…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-congressclient</param>
</service>
++++++ python-congressclient-1.11.0.tar.gz -> python-congressclient-1.12.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/.stestr.conf new/python-congressclient-1.12.0/.stestr.conf
--- old/python-congressclient-1.11.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/python-congressclient-1.12.0/.stestr.conf 2019-02-05 22:58:57.000000000 +0100
@@ -0,0 +1,4 @@
+[DEFAULT]
+test_path=./congressclient/tests
+top_dir=./
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/.testr.conf new/python-congressclient-1.12.0/.testr.conf
--- old/python-congressclient-1.11.0/.testr.conf 2018-07-27 00:20:19.000000000 +0200
+++ new/python-congressclient-1.12.0/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/.zuul.yaml new/python-congressclient-1.12.0/.zuul.yaml
--- old/python-congressclient-1.11.0/.zuul.yaml 2018-07-27 00:20:19.000000000 +0200
+++ new/python-congressclient-1.12.0/.zuul.yaml 2019-02-05 22:58:57.000000000 +0100
@@ -1,7 +1,9 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - openstackclient-plugin-jobs
+ - publish-openstack-docs-pti
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/AUTHORS new/python-congressclient-1.12.0/AUTHORS
--- old/python-congressclient-1.11.0/AUTHORS 2018-07-27 00:23:05.000000000 +0200
+++ new/python-congressclient-1.12.0/AUTHORS 2019-02-05 23:00:51.000000000 +0100
@@ -17,6 +17,7 @@
Kiran_totad <kiran.totad(a)nectechnologies.in>
Masahito Muroi <muroi.masahito(a)lab.ntt.co.jp>
Monty Taylor <mordred(a)inaugust.com>
+Nguyen Hai <nguyentrihai93(a)gmail.com>
Pierre Crégut <pierre.cregut(a)orange.com>
Rui Chen <chenrui.momo(a)gmail.com>
Rui Yuan Dou <rydou(a)fiberhome.com>
@@ -32,14 +33,16 @@
Tony Breeds <tony(a)bakeyournoodle.com>
Tony Xu <hhktony(a)gmail.com>
Zhenzan Zhou <zhenzan.zhou(a)intel.com>
-Zuul <zuul(a)review.openstack.org>
+ZhijunWei <wzj334965317(a)outlook.com>
aimee.ukasick <au7569(a)att.com>
+akhiljain23 <akhil.jain(a)india.nec.com>
howardlee <lihongweibj(a)inspur.com>
jacky06 <zhang.min(a)99cloud.net>
kavithahr <kavitha.r(a)nectechnologies.in>
lingyongxu <lyxu(a)fiberhome.com>
malei <malei(a)maleideMacBook-Pro.local>
melissaml <ma.lei(a)99cloud.net>
+qingszhao <zhao.daqing(a)99cloud.net>
ricolin <rico.lin(a)easystack.cn>
shu-mutou <shu-mutou(a)rf.jp.nec.com>
yuyafei <yu.yafei(a)zte.com.cn>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/ChangeLog new/python-congressclient-1.12.0/ChangeLog
--- old/python-congressclient-1.11.0/ChangeLog 2018-07-27 00:23:05.000000000 +0200
+++ new/python-congressclient-1.12.0/ChangeLog 2019-02-05 23:00:51.000000000 +0100
@@ -1,6 +1,19 @@
CHANGES
=======
+1.12.0
+------
+
+* Update hacking version
+* Use template for lower-constraints
+* Change openstack-dev to openstack-discuss
+* Add Python 3.6 classifier to setup.cfg
+* Switch to stestr
+* Add python 3.6 for test in tox
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+
1.11.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/PKG-INFO new/python-congressclient-1.12.0/PKG-INFO
--- old/python-congressclient-1.11.0/PKG-INFO 2018-07-27 00:23:06.000000000 +0200
+++ new/python-congressclient-1.12.0/PKG-INFO 2019-02-05 23:00:51.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-congressclient
-Version: 1.11.0
+Version: 1.12.0
Summary: Client for Congress
Home-page: https://docs.openstack.org/python-congressclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -116,3 +116,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/congressclient/__init__.py new/python-congressclient-1.12.0/congressclient/__init__.py
--- old/python-congressclient-1.11.0/congressclient/__init__.py 2018-07-27 00:20:19.000000000 +0200
+++ new/python-congressclient-1.12.0/congressclient/__init__.py 2019-02-05 22:58:57.000000000 +0100
@@ -10,10 +10,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-__all__ = ['__version__']
-
import pbr.version
+__all__ = ['__version__']
+
version_info = pbr.version.VersionInfo('python-congressclient')
try:
__version__ = version_info.version_string()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/lower-constraints.txt new/python-congressclient-1.12.0/lower-constraints.txt
--- old/python-congressclient-1.11.0/lower-constraints.txt 2018-07-27 00:20:19.000000000 +0200
+++ new/python-congressclient-1.12.0/lower-constraints.txt 2019-02-05 22:58:57.000000000 +0100
@@ -53,7 +53,7 @@
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
stevedore==1.28.0
-testrepository==0.0.18
+stestr==2.0.0
testtools==2.2.0
traceback2==1.4.0
unittest2==1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/python_congressclient.egg-info/PKG-INFO new/python-congressclient-1.12.0/python_congressclient.egg-info/PKG-INFO
--- old/python-congressclient-1.11.0/python_congressclient.egg-info/PKG-INFO 2018-07-27 00:23:05.000000000 +0200
+++ new/python-congressclient-1.12.0/python_congressclient.egg-info/PKG-INFO 2019-02-05 23:00:51.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-congressclient
-Version: 1.11.0
+Version: 1.12.0
Summary: Client for Congress
Home-page: https://docs.openstack.org/python-congressclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: ========================
Team and repository tags
@@ -116,3 +116,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/python_congressclient.egg-info/SOURCES.txt new/python-congressclient-1.12.0/python_congressclient.egg-info/SOURCES.txt
--- old/python-congressclient-1.11.0/python_congressclient.egg-info/SOURCES.txt 2018-07-27 00:23:06.000000000 +0200
+++ new/python-congressclient-1.12.0/python_congressclient.egg-info/SOURCES.txt 2019-02-05 23:00:51.000000000 +0100
@@ -1,6 +1,6 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/python_congressclient.egg-info/pbr.json new/python-congressclient-1.12.0/python_congressclient.egg-info/pbr.json
--- old/python-congressclient-1.11.0/python_congressclient.egg-info/pbr.json 2018-07-27 00:23:05.000000000 +0200
+++ new/python-congressclient-1.12.0/python_congressclient.egg-info/pbr.json 2019-02-05 23:00:51.000000000 +0100
@@ -1 +1 @@
-{"git_version": "c7cd43b", "is_release": true}
\ No newline at end of file
+{"git_version": "b704432", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/setup.cfg new/python-congressclient-1.12.0/setup.cfg
--- old/python-congressclient-1.11.0/setup.cfg 2018-07-27 00:23:06.000000000 +0200
+++ new/python-congressclient-1.12.0/setup.cfg 2019-02-05 23:00:51.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/python-congressclient/latest/
classifier =
Environment :: OpenStack
@@ -17,6 +17,7 @@
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/test-requirements.txt new/python-congressclient-1.12.0/test-requirements.txt
--- old/python-congressclient-1.11.0/test-requirements.txt 2018-07-27 00:20:19.000000000 +0200
+++ new/python-congressclient-1.12.0/test-requirements.txt 2019-02-05 22:58:57.000000000 +0100
@@ -1,10 +1,10 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
-testrepository>=0.0.18 # Apache-2.0/BSD
+stestr>=2.0.0 # Apache-2.0
testtools>=2.2.0 # MIT
mock>=2.0.0 # BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-congressclient-1.11.0/tox.ini new/python-congressclient-1.12.0/tox.ini
--- old/python-congressclient-1.11.0/tox.ini 2018-07-27 00:20:19.000000000 +0200
+++ new/python-congressclient-1.12.0/tox.ini 2019-02-05 22:58:57.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
minversion = 2.0
-envlist = py35,py27,pep8
+envlist = py36,py35,py27,pep8
skipsdist = True
[testenv]
@@ -13,7 +13,7 @@
-r{toxinidir}/test-requirements.txt
commands =
find . -type f -name "*.pyc" -delete
- python setup.py testr --slowest --testr-args='{posargs}'
+ stestr run --slowest {posargs}
[testenv:pep8]
basepython = python3
@@ -25,7 +25,7 @@
[testenv:cover]
basepython = python3
-commands = python setup.py testr --coverage --testr-args='{posargs}'
+commands = stestr run {posargs}
[testenv:docs]
basepython = python3
1
0
Hello community,
here is the log from the commit of package python-cinderclient for openSUSE:Factory checked in at 2019-05-03 22:40:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cinderclient (Old)
and /work/SRC/openSUSE:Factory/.python-cinderclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cinderclient"
Fri May 3 22:40:03 2019 rev:34 rq:692818 version:4.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cinderclient/python-cinderclient.changes 2018-09-07 15:36:58.238693500 +0200
+++ /work/SRC/openSUSE:Factory/.python-cinderclient.new.5148/python-cinderclient.changes 2019-05-03 22:40:13.210962756 +0200
@@ -1,0 +2,21 @@
+Mon Apr 8 12:32:35 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 4.1.0
+ - refactor the getid method base.py
+ - Fix functional error check for invalid volume create size
+ - [Optimize] Update help text for hint argument
+ - Fix backwards compat for volume transfer < 3.55
+ - add lib-forward-testing-python3 test job
+ - Default help output to include MV updates
+ - update wrong link
+ - Fix encoding of query parameters
+ - Update reno for stable/rocky
+ - __repr__ crashes when empty dict passed
+ - Fix endpoint identification for api-version query
+ - switch documentation job to new PTI
+ - [Trivial] Add backup-id to 'size' param info
+ - add python 3.6 unit test job
+ - import zuul job settings from project-config
+ - Use templates for cover and lower-constraints
+
+-------------------------------------------------------------------
Old:
----
python-cinderclient-4.0.1.tar.gz
New:
----
python-cinderclient-4.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-cinderclient.spec ++++++
--- /var/tmp/diff_new_pack.EEzVvl/_old 2019-05-03 22:40:15.458967489 +0200
+++ /var/tmp/diff_new_pack.EEzVvl/_new 2019-05-03 22:40:15.486967548 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-cinderclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-cinderclient
-Version: 4.0.1
+Version: 4.1.0
Release: 0
Summary: Python API and CLI for OpenStack Cinder
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-cinderclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-cinderclient/python…
+Source0: https://files.pythonhosted.org/packages/source/p/python-cinderclient/python…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-PrettyTable >= 0.7.1
@@ -31,14 +31,13 @@
BuildRequires: python2-fixtures
BuildRequires: python2-keystoneauth1 >= 3.4.0
BuildRequires: python2-mock
-BuildRequires: python2-os-testr
BuildRequires: python2-oslo.serialization
BuildRequires: python2-oslo.utils >= 3.33.0
BuildRequires: python2-pbr >= 2.0.0
BuildRequires: python2-python-subunit
-BuildRequires: python2-requests
+BuildRequires: python2-requests >= 2.14.2
BuildRequires: python2-requests-mock
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
BuildRequires: python3-PrettyTable >= 0.7.1
@@ -47,14 +46,13 @@
BuildRequires: python3-fixtures
BuildRequires: python3-keystoneauth1 >= 3.4.0
BuildRequires: python3-mock
-BuildRequires: python3-os-testr
BuildRequires: python3-oslo.serialization
BuildRequires: python3-oslo.utils >= 3.33.0
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-python-subunit
-BuildRequires: python3-requests
+BuildRequires: python3-requests >= 2.14.2
BuildRequires: python3-requests-mock
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
Requires: python-Babel >= 2.3.4
@@ -62,7 +60,7 @@
Requires: python-keystoneauth1 >= 3.4.0
Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.utils >= 3.33.0
-Requires: python-requests
+Requires: python-requests >= 2.14.2
Requires: python-simplejson >= 3.5.1
Requires: python-six >= 1.10.0
BuildArch: noarch
@@ -95,15 +93,14 @@
This package contains auto-generated documentation.
%prep
-%autosetup -p1 -n python-cinderclient-4.0.1
+%autosetup -p1 -n python-cinderclient-4.1.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
-PBR_VERSION=4.0.1 sphinx-build -b html doc/source doc/build/html
-PBR_VERSION=4.0.1 sphinx-build -b man doc/source doc/build/man
+PBR_VERSION=4.1.0 sphinx-build -b html doc/source doc/build/html
+PBR_VERSION=4.1.0 sphinx-build -b man doc/source doc/build/man
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
@@ -125,9 +122,7 @@
%check
rm cinderclient/tests/unit/test_shell.py
-%{python_expand rm -rf .testrepository
-ostestr
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.EEzVvl/_old 2019-05-03 22:40:15.890968399 +0200
+++ /var/tmp/diff_new_pack.EEzVvl/_new 2019-05-03 22:40:15.914968449 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-cinderclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-cinderclient/stable/rock…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-cinderclient/stable/stei…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-cinderclient</param>
</service>
++++++ python-cinderclient-4.0.1.tar.gz -> python-cinderclient-4.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/.zuul.yaml new/python-cinderclient-4.1.0/.zuul.yaml
--- old/python-cinderclient-4.0.1/.zuul.yaml 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/.zuul.yaml 2018-10-08 20:03:35.000000000 +0200
@@ -24,11 +24,20 @@
- project:
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-cover-jobs
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
check:
jobs:
- cinderclient-dsvm-functional
- cinderclient-dsvm-functional-identity-v3-only
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ - openstack-tox-pylint:
+ voting: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/AUTHORS new/python-cinderclient-4.1.0/AUTHORS
--- old/python-cinderclient-4.0.1/AUTHORS 2018-08-01 18:17:44.000000000 +0200
+++ new/python-cinderclient-4.1.0/AUTHORS 2018-10-08 20:04:26.000000000 +0200
@@ -76,6 +76,7 @@
Gerhard Muntingh <gerhard(a)qux.nl>
Gloria Gu <gloria.gu(a)hp.com>
Gorka Eguileor <geguileo(a)redhat.com>
+Goutham Pacha Ravi <gouthampravi(a)gmail.com>
Gábor Antal <antal(a)inf.u-szeged.hu>
Haneef Ali <haneef.ali(a)hp.com>
Hangdong Zhang <hdzhang(a)fiberhome.com>
@@ -222,7 +223,6 @@
ZhiQiang Fan <aji.zqfan(a)gmail.com>
Zhiteng Huang <zhiteng.huang(a)intel.com>
Zhiteng Huang <zhithuang(a)ebaysf.com>
-Zuul <zuul(a)review.openstack.org>
abhishekkekane <abhishek.kekane(a)nttdata.com>
alex <wujian3659(a)163.com>
bhagyashris <bhagyashri.shewale(a)nttdata.com>
@@ -288,6 +288,8 @@
wanghao <sxmatch1986(a)gmail.com>
wanghao <wanghao749(a)huawei.com>
wangxiyuan <wangxiyuan(a)huawei.com>
+whoami-rajat <rajatdhasmana(a)gmail.com>
+wu.chunyang <wu.chunyang(a)99cloud.net>
xianming mao <xianming.mao(a)easystack.cn>
xiexs <xiexs(a)cn.fujitsu.com>
xing-yang <xing.yang(a)emc.com>
@@ -303,4 +305,5 @@
zheng yin <yin.zheng(a)easystack.cn>
zhengyin <zhengyin(a)chinac.com>
zhu.rong <zhu.rong(a)99cloud.net>
+zhubx007 <zhu.boxiang(a)99cloud.net>
zwei <leidong(a)unitedstack.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/ChangeLog new/python-cinderclient-4.1.0/ChangeLog
--- old/python-cinderclient-4.0.1/ChangeLog 2018-08-01 18:17:44.000000000 +0200
+++ new/python-cinderclient-4.1.0/ChangeLog 2018-10-08 20:04:26.000000000 +0200
@@ -1,6 +1,25 @@
CHANGES
=======
+4.1.0
+-----
+
+* Default help output to include MV updates
+* [Trivial] Add backup-id to 'size' param info
+* Fix encoding of query parameters
+* Fix functional error check for invalid volume create size
+* Use templates for cover and lower-constraints
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* \_\_repr\_\_ crashes when empty dict passed
+* Update reno for stable/rocky
+* refactor the getid method base.py
+* Fix endpoint identification for api-version query
+* Fix backwards compat for volume transfer < 3.55
+* update wrong link
+
4.0.1
-----
@@ -19,6 +38,7 @@
* Transfer snapshots with volumes
* Add release note for ability to set attachment mode
* fix tox python3 overrides
+* [Optimize] Update help text for hint argument
* Add mode option to attachment-create
* Remove initialization of logger if logger is None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/PKG-INFO new/python-cinderclient-4.1.0/PKG-INFO
--- old/python-cinderclient-4.0.1/PKG-INFO 2018-08-01 18:17:47.000000000 +0200
+++ new/python-cinderclient-4.1.0/PKG-INFO 2018-10-08 20:04:27.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-cinderclient
-Version: 4.0.1
+Version: 4.1.0
Summary: OpenStack Block Storage API Client Library
Home-page: https://docs.openstack.org/python-cinderclient/latest/
Author: OpenStack
@@ -44,7 +44,7 @@
for the Rackspace API solely or the BSD license, you should use that repository.
python-cinderclient is licensed under the Apache License like the rest of OpenStack.
- __ https://github.com/jacobian-archive/python-cloudservers
+ __ https://github.com/rackerlabs/python-cloudservers
* License: Apache License, Version 2.0
* `PyPi`_ - package installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/README.rst new/python-cinderclient-4.1.0/README.rst
--- old/python-cinderclient-4.0.1/README.rst 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/README.rst 2018-10-08 20:03:35.000000000 +0200
@@ -36,7 +36,7 @@
for the Rackspace API solely or the BSD license, you should use that repository.
python-cinderclient is licensed under the Apache License like the rest of OpenStack.
-__ https://github.com/jacobian-archive/python-cloudservers
+__ https://github.com/rackerlabs/python-cloudservers
* License: Apache License, Version 2.0
* `PyPi`_ - package installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/RELEASENOTES.rst new/python-cinderclient-4.1.0/RELEASENOTES.rst
--- old/python-cinderclient-4.0.1/RELEASENOTES.rst 2018-08-01 18:17:46.000000000 +0200
+++ new/python-cinderclient-4.1.0/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,92 +0,0 @@
-===================
-python-cinderclient
-===================
-
-.. _python-cinderclient_4.0.1:
-
-4.0.1
-=====
-
-.. _python-cinderclient_4.0.1_Bug Fixes:
-
-Bug Fixes
----------
-
-.. releasenotes/notes/volume-transfer-bug-23c760efb9f98a4d.yaml @ b'460229c6099719dec0d027f798f9c751b8ec7e44'
-
-- An issue was discovered with the way API microversions were handled for the
- new volume-transfer with snapshot handling with microversion 3.55. This
- release includes a fix to keep backwards compatibility with earlier
- releases. See `bug #1784703
- <https://bugs.launchpad.net/cinder/+bug/1784703>`_ for more details.
-
-
-.. _python-cinderclient_4.0.0:
-
-4.0.0
-=====
-
-.. _python-cinderclient_4.0.0_New Features:
-
-New Features
-------------
-
-.. releasenotes/notes/attachment-mode-8427aa6a2fa26e70.yaml @ b'826c5fc16d6f572cf544e3f0a91330bf92701c69'
-
-- Added the ability to specify the read-write or read-only mode of an
- attachment starting with microversion 3.54. The command line usage is
- `cinder attachment-create --mode [rw|ro]`.
-
-.. releasenotes/notes/transfer-snapshots-555c61477835bcf7.yaml @ b'a554faa6530fa0bb70430572869a6a2555783912'
-
-- Starting with microversion 3.55, the volume transfer command now has the
- ability to exclude a volume's snapshots when transferring a volume to another
- project. The new command format is `cinder transfer-create --no-snapshots`.
-
-
-.. _python-cinderclient_4.0.0_Upgrade Notes:
-
-Upgrade Notes
--------------
-
-.. releasenotes/notes/remove-deprecations-621919062f867015.yaml @ b'a331f06df0158fff28162eabc765f164855afcee'
-
-- The following CLI options were deprecated for one or more releases and have
- now been removed:
-
- ``--endpoint-type``
- This option has been replaced by ``--os-endpoint-type``.
-
- ``--bypass-url``
- This option has been replaced by ``--os-endpoint``.
-
- ``--os-auth-system``
- This option has been replaced by ``--os-auth-type``.
-
-.. releasenotes/notes/remove-replv1-cabf2194edb9d963.yaml @ b'32251f0ea3863098b4d4d54364c8ee18ff170a44'
-
-- The volume creation argument ``--source-replica`` on the command line and
- the ``source_replica`` kwarg for the ``create()`` call when using the
- cinderclient library were for the replication v1 support that was removed
- in the Mitaka release. These options have now been removed.
-
-
-.. _python-cinderclient_3.6.0:
-
-3.6.0
-=====
-
-.. _python-cinderclient_3.6.0_New Features:
-
-New Features
-------------
-
-.. releasenotes/notes/feature-cross-az-backups-9d428ad4dfc552e1.yaml @ b'2c774cc015cb6624fe37823b586864c63525c379'
-
-- Support cross AZ backup creation specifying desired backup service AZ
- (added in microversion v3.51)
-
-.. releasenotes/notes/support-filter-type-7yt69ub7ccbf7419.yaml @ b'5a1513244caf7acbd41e181419bc8b62bf4bcaba'
-
-- New command option ``--filters`` is added to ``type-list`` command to support filter types since 3.52, and it's only valid for administrator.
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/apiclient/base.py new/python-cinderclient-4.1.0/cinderclient/apiclient/base.py
--- old/python-cinderclient-4.0.1/cinderclient/apiclient/base.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/apiclient/base.py 2018-10-08 20:03:35.000000000 +0200
@@ -28,9 +28,9 @@
from requests import Response
import six
-from six.moves.urllib import parse
from cinderclient.apiclient import exceptions
+from cinderclient import utils
from oslo_utils import encodeutils
from oslo_utils import strutils
@@ -41,15 +41,10 @@
Abstracts the common pattern of allowing both an object or an object's ID
(UUID) as a parameter when dealing with relationships.
"""
- try:
- if obj.uuid:
- return obj.uuid
- except AttributeError:
- pass
- try:
- return obj.id
- except AttributeError:
- return obj
+ if getattr(obj, 'uuid', None):
+ return obj.uuid
+ else:
+ return getattr(obj, 'id', obj)
# TODO(aababilov): call run_hooks() in HookableMixin's child classes
@@ -330,7 +325,7 @@
return self._list(
'%(base_url)s%(query)s' % {
'base_url': self.build_url(base_url=base_url, **kwargs),
- 'query': '?%s' % parse.urlencode(kwargs) if kwargs else '',
+ 'query': utils.build_query_param(kwargs),
},
self.collection_key)
@@ -369,7 +364,7 @@
rl = self._list(
'%(base_url)s%(query)s' % {
'base_url': self.build_url(base_url=base_url, **kwargs),
- 'query': '?%s' % parse.urlencode(kwargs) if kwargs else '',
+ 'query': '?%s' % utils.build_query_param(kwargs),
},
self.collection_key)
num = len(rl)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/base.py new/python-cinderclient-4.1.0/cinderclient/base.py
--- old/python-cinderclient-4.0.1/cinderclient/base.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/base.py 2018-10-08 20:03:35.000000000 +0200
@@ -24,7 +24,6 @@
import os
import six
-from six.moves.urllib import parse
from cinderclient.apiclient import base as common_base
from cinderclient import exceptions
@@ -53,10 +52,7 @@
Abstracts the common pattern of allowing both an object or an object's ID
as a parameter when dealing with relationships.
"""
- try:
- return obj.id
- except AttributeError:
- return obj
+ return getattr(obj, 'id', obj)
class Manager(common_base.HookableMixin):
@@ -173,10 +169,8 @@
query_params = utils.unicode_key_value_to_string(query_params)
# Transform the dict to a sequence of two-element tuples in fixed
# order, then the encoded string will be consistent in Python 2&3.
- query_string = ""
- if query_params:
- params = sorted(query_params.items(), key=lambda x: x[0])
- query_string = "?%s" % parse.urlencode(params)
+
+ query_string = utils.build_query_param(query_params, sort=True)
detail = ""
if detailed:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/client.py new/python-cinderclient-4.1.0/cinderclient/client.py
--- old/python-cinderclient-4.0.1/cinderclient/client.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/client.py 2018-10-08 20:03:35.000000000 +0200
@@ -210,7 +210,13 @@
def _get_base_url(self):
endpoint = self.get_endpoint()
- base_url = '/'.join(endpoint.split('/')[:3]) + '/'
+ m = re.search('(.+)/v[1-3].*', endpoint)
+ if m:
+ # Get everything up until the version identifier
+ base_url = '%s/' % m.group(1)
+ else:
+ # Fall back to the root of the URL
+ base_url = '/'.join(endpoint.split('/')[:3]) + '/'
return base_url
def get_volume_api_version_from_endpoint(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/shell.py new/python-cinderclient-4.1.0/cinderclient/shell.py
--- old/python-cinderclient-4.0.1/cinderclient/shell.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/shell.py 2018-10-08 20:03:35.000000000 +0200
@@ -51,7 +51,6 @@
_i18n.enable_lazy()
-DEFAULT_MAJOR_OS_VOLUME_API_VERSION = "3"
DEFAULT_CINDER_ENDPOINT_TYPE = 'publicURL'
V1_SHELL = 'cinderclient.v1.shell'
V2_SHELL = 'cinderclient.v2.shell'
@@ -534,7 +533,7 @@
if not options.os_volume_api_version:
api_version = api_versions.get_api_version(
- DEFAULT_MAJOR_OS_VOLUME_API_VERSION)
+ api_versions.MAX_VERSION)
else:
api_version = api_versions.get_api_version(
options.os_volume_api_version)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/tests/functional/test_volume_create_cli.py new/python-cinderclient-4.1.0/cinderclient/tests/functional/test_volume_create_cli.py
--- old/python-cinderclient-4.0.1/cinderclient/tests/functional/test_volume_create_cli.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/tests/functional/test_volume_create_cli.py 2018-10-08 20:03:35.000000000 +0200
@@ -26,8 +26,8 @@
@ddt.data(
('', (r'Size is a required parameter')),
- ('-1', (r'Invalid volume size provided for create request')),
- ('0', (r"Volume size '0' must be an integer and greater than 0")),
+ ('-1', (r'Invalid input for field/attribute size')),
+ ('0', (r"Invalid input for field/attribute size")),
('size', (r'invalid int value')),
('0.2', (r'invalid int value')),
('2 GB', (r'unrecognized arguments')),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/tests/unit/test_client.py new/python-cinderclient-4.1.0/cinderclient/tests/unit/test_client.py
--- old/python-cinderclient-4.0.1/cinderclient/tests/unit/test_client.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/tests/unit/test_client.py 2018-10-08 20:03:35.000000000 +0200
@@ -32,6 +32,7 @@
from cinderclient.tests.unit.v3 import fakes
+(a)ddt.ddt
class ClientTest(utils.TestCase):
def test_get_client_class_v1(self):
@@ -99,11 +100,21 @@
unknown_url)
@mock.patch('cinderclient.client.SessionClient.get_endpoint')
- def test_get_base_url(self, mock_get_endpoint):
- url = 'http://192.168.122.104:8776/v3/de50d1f33a38415fadfd3e1dea28f4d3'
+ @ddt.data(
+ ('http://192.168.1.1:8776/v2', 'http://192.168.1.1:8776/'),
+ ('http://192.168.1.1:8776/v3/e5526285ebd741b1819393f772f11fc3',
+ 'http://192.168.1.1:8776/'),
+ ('https://192.168.1.1:8080/volumes/v3/'
+ 'e5526285ebd741b1819393f772f11fc3',
+ 'https://192.168.1.1:8080/volumes/'),
+ ('http://192.168.1.1/volumes/v3/e5526285ebd741b1819393f772f11fc3',
+ 'http://192.168.1.1/volumes/'),
+ ('https://volume.example.com/', 'https://volume.example.com/'))
+ @ddt.unpack
+ def test_get_base_url(self, url, expected_base, mock_get_endpoint):
mock_get_endpoint.return_value = url
cs = cinderclient.client.SessionClient(self, api_version='3.0')
- self.assertEqual('http://192.168.122.104:8776/', cs._get_base_url())
+ self.assertEqual(expected_base, cs._get_base_url())
@mock.patch.object(adapter.Adapter, 'request')
@mock.patch.object(exceptions, 'from_response')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/tests/unit/test_utils.py new/python-cinderclient-4.1.0/cinderclient/tests/unit/test_utils.py
--- old/python-cinderclient-4.0.1/cinderclient/tests/unit/test_utils.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/tests/unit/test_utils.py 2018-10-08 20:03:35.000000000 +0200
@@ -162,6 +162,7 @@
self.read = self.stringio.read
+(a)ddt.ddt
class BuildQueryParamTestCase(test_utils.TestCase):
def test_build_param_without_sort_switch(self):
@@ -187,19 +188,17 @@
expected = "?key1=val1&key2=val2&key3=val3"
self.assertEqual(expected, result)
- def test_build_param_with_none(self):
- dict_param = {
- 'key1': 'val1',
- 'key2': None,
- 'key3': False,
- 'key4': ''
- }
- result_1 = utils.build_query_param(dict_param)
- result_2 = utils.build_query_param(None)
-
- expected = "?key1=val1"
- self.assertEqual(expected, result_1)
- self.assertFalse(result_2)
+ @ddt.data({},
+ None,
+ {'key1': 'val1', 'key2': None, 'key3': False, 'key4': ''})
+ def test_build_param_with_nones(self, dict_param):
+ result = utils.build_query_param(dict_param)
+
+ expected = ("key1=val1", "key3=False") if dict_param else ()
+ for exp in expected:
+ self.assertIn(exp, result)
+ if not expected:
+ self.assertEqual("", result)
@ddt.ddt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/tests/unit/v1/test_shell.py new/python-cinderclient-4.1.0/cinderclient/tests/unit/v1/test_shell.py
--- old/python-cinderclient-4.0.1/cinderclient/tests/unit/v1/test_shell.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/tests/unit/v1/test_shell.py 2018-10-08 20:03:35.000000000 +0200
@@ -101,7 +101,7 @@
def test_list(self):
self.run_command('list')
# NOTE(jdg): we default to detail currently
- self.assert_called('GET', '/volumes/detail')
+ self.assert_called('GET', '/volumes/detail?all_tenants=0')
def test_list_filter_tenant_with_all_tenants(self):
self.run_command('list --tenant=123 --all-tenants 1')
@@ -184,11 +184,13 @@
def test_list_filter_status(self):
self.run_command('list --status=available')
- self.assert_called('GET', '/volumes/detail?status=available')
+ self.assert_called('GET',
+ '/volumes/detail?all_tenants=0&status=available')
def test_list_filter_display_name(self):
self.run_command('list --display-name=1234')
- self.assert_called('GET', '/volumes/detail?display_name=1234')
+ self.assert_called('GET',
+ '/volumes/detail?all_tenants=0&display_name=1234')
def test_list_all_tenants(self):
self.run_command('list --all-tenants=1')
@@ -200,7 +202,7 @@
def test_list_limit(self):
self.run_command('list --limit=10')
- self.assert_called('GET', '/volumes/detail?limit=10')
+ self.assert_called('GET', '/volumes/detail?all_tenants=0&limit=10')
def test_show(self):
self.run_command('show 1234')
@@ -231,12 +233,13 @@
def test_snapshot_list_filter_volume_id(self):
self.run_command('snapshot-list --volume-id=1234')
- self.assert_called('GET', '/snapshots/detail?volume_id=1234')
+ self.assert_called('GET',
+ '/snapshots/detail?all_tenants=0&volume_id=1234')
def test_snapshot_list_filter_status_and_volume_id(self):
self.run_command('snapshot-list --status=available --volume-id=1234')
self.assert_called('GET', '/snapshots/detail?'
- 'status=available&volume_id=1234')
+ 'all_tenants=0&status=available&volume_id=1234')
def test_rename(self):
# basic rename with positional arguments
@@ -483,7 +486,7 @@
def test_list_transfer(self):
self.run_command('transfer-list')
- self.assert_called('GET', '/os-volume-transfer/detail')
+ self.assert_called('GET', '/os-volume-transfer/detail?all_tenants=0')
def test_list_transfer_all_tenants(self):
self.run_command('transfer-list --all-tenants=1')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/tests/unit/v2/test_capabilities.py new/python-cinderclient-4.1.0/cinderclient/tests/unit/v2/test_capabilities.py
--- old/python-cinderclient-4.0.1/cinderclient/tests/unit/v2/test_capabilities.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/tests/unit/v2/test_capabilities.py 2018-10-08 20:03:35.000000000 +0200
@@ -53,3 +53,8 @@
cap = Capabilities(None, FAKE_CAPABILITY)
self.assertEqual(
"<Capabilities: %s>" % FAKE_CAPABILITY['namespace'], repr(cap))
+
+ def test__repr__when_empty(self):
+ cap = Capabilities(None, {})
+ self.assertEqual(
+ "<Capabilities: None>", repr(cap))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/tests/unit/v2/test_shell.py new/python-cinderclient-4.1.0/cinderclient/tests/unit/v2/test_shell.py
--- old/python-cinderclient-4.0.1/cinderclient/tests/unit/v2/test_shell.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/tests/unit/v2/test_shell.py 2018-10-08 20:03:35.000000000 +0200
@@ -1176,7 +1176,7 @@
def test_list_transfer(self):
self.run_command('transfer-list')
- self.assert_called('GET', '/os-volume-transfer/detail')
+ self.assert_called('GET', '/os-volume-transfer/detail?all_tenants=0')
def test_list_transfer_all_tenants(self):
self.run_command('transfer-list --all-tenants=1')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/tests/unit/v3/test_shell.py new/python-cinderclient-4.1.0/cinderclient/tests/unit/v3/test_shell.py
--- old/python-cinderclient-4.0.1/cinderclient/tests/unit/v3/test_shell.py 2018-08-01 18:15:51.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/tests/unit/v3/test_shell.py 2018-10-08 20:03:35.000000000 +0200
@@ -131,37 +131,37 @@
{'command':
'list --filters name~=456',
'expected':
- '/volumes/detail?name%7E=456'},
+ '/volumes/detail?name~=456'},
{'command':
u'list --filters name~=Σ',
'expected':
- '/volumes/detail?name%7E=%CE%A3'},
+ '/volumes/detail?name~=%CE%A3'},
# testcases for list group
{'command':
'group-list --filters name=456',
'expected':
- '/groups/detail?name=456'},
+ '/groups/detail?all_tenants=0&name=456'},
{'command':
'group-list --filters status=available',
'expected':
- '/groups/detail?status=available'},
+ '/groups/detail?all_tenants=0&status=available'},
{'command':
'group-list --filters name~=456',
'expected':
- '/groups/detail?name%7E=456'},
+ '/groups/detail?all_tenants=0&name~=456'},
# testcases for list group-snapshot
{'command':
'group-snapshot-list --status=error --filters status=available',
'expected':
- '/group_snapshots/detail?status=available'},
+ '/group_snapshots/detail?all_tenants=0&status=available'},
{'command':
'group-snapshot-list --filters availability_zone=123',
'expected':
- '/group_snapshots/detail?availability_zone=123'},
+ '/group_snapshots/detail?all_tenants=0&availability_zone=123'},
{'command':
'group-snapshot-list --filters status~=available',
'expected':
- '/group_snapshots/detail?status%7E=available'},
+ '/group_snapshots/detail?all_tenants=0&status~=available'},
# testcases for list message
{'command':
'message-list --event_id=123 --filters event_id=456',
@@ -174,7 +174,7 @@
{'command':
'message-list --filters request_id~=123',
'expected':
- '/messages?request_id%7E=123'},
+ '/messages?request_id~=123'},
# testcases for list attachment
{'command':
'attachment-list --volume-id=123 --filters volume_id=456',
@@ -187,7 +187,7 @@
{'command':
'attachment-list --filters volume_id~=456',
'expected':
- '/attachments?volume_id%7E=456'},
+ '/attachments?volume_id~=456'},
# testcases for list backup
{'command':
'backup-list --volume-id=123 --filters volume_id=456',
@@ -200,7 +200,7 @@
{'command':
'backup-list --filters volume_id~=456',
'expected':
- '/backups/detail?volume_id%7E=456'},
+ '/backups/detail?volume_id~=456'},
# testcases for list snapshot
{'command':
'snapshot-list --volume-id=123 --filters volume_id=456',
@@ -213,7 +213,7 @@
{'command':
'snapshot-list --filters volume_id~=456',
'expected':
- '/snapshots/detail?volume_id%7E=456'},
+ '/snapshots/detail?volume_id~=456'},
# testcases for get pools
{'command':
'get-pools --filters name=456 --detail',
@@ -632,7 +632,7 @@
def test_group_list(self):
self.run_command('--os-volume-api-version 3.13 group-list')
- self.assert_called_anytime('GET', '/groups/detail')
+ self.assert_called_anytime('GET', '/groups/detail?all_tenants=0')
def test_group_list__with_all_tenant(self):
self.run_command(
@@ -691,7 +691,8 @@
def test_group_snapshot_list(self):
self.run_command('--os-volume-api-version 3.14 group-snapshot-list')
- self.assert_called_anytime('GET', '/group_snapshots/detail')
+ self.assert_called_anytime('GET',
+ '/group_snapshots/detail?all_tenants=0')
def test_group_snapshot_show(self):
self.run_command('--os-volume-api-version 3.14 '
@@ -1338,7 +1339,7 @@
expected = {'transfer': {'volume_id': 1234,
'name': None,
}}
- self.assert_called('POST', '/volume-transfers', body=expected)
+ self.assert_called('POST', '/os-volume-transfer', body=expected)
def test_create_transfer_no_snaps(self):
self.run_command('--os-volume-api-version 3.55 transfer-create '
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/tests/unit/v3/test_volume_transfers.py new/python-cinderclient-4.1.0/cinderclient/tests/unit/v3/test_volume_transfers.py
--- old/python-cinderclient-4.0.1/cinderclient/tests/unit/v3/test_volume_transfers.py 2018-08-01 18:15:51.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/tests/unit/v3/test_volume_transfers.py 2018-10-08 20:03:35.000000000 +0200
@@ -17,55 +17,93 @@
from cinderclient.tests.unit import utils
from cinderclient.tests.unit.v3 import fakes
+TRANSFER_URL = 'os-volume-transfer'
+TRANSFER_355_URL = 'volume-transfers'
# Create calls need the right version of faked client
-v3cs = fakes.FakeClient(api_versions.APIVersion('3.55'))
-# Other calls fall back to default behavior
-cs = fakes.FakeClient()
+v355cs = fakes.FakeClient(api_versions.APIVersion('3.55'))
+# Other calls fall back to API extension behavior
+v3cs = fakes.FakeClient(api_versions.APIVersion('3.0'))
class VolumeTransfersTest(utils.TestCase):
def test_create(self):
vol = v3cs.transfers.create('1234')
- v3cs.assert_called('POST', '/volume-transfers',
- body={'transfer': {'volume_id': '1234', 'name': None,
- 'no_snapshots': False}})
+ v3cs.assert_called('POST', '/%s' % TRANSFER_URL,
+ body={'transfer': {'volume_id': '1234',
+ 'name': None}})
+ self._assert_request_id(vol)
+
+ def test_create_355(self):
+ vol = v355cs.transfers.create('1234')
+ v355cs.assert_called('POST', '/%s' % TRANSFER_355_URL,
+ body={'transfer': {'volume_id': '1234',
+ 'name': None,
+ 'no_snapshots': False}})
self._assert_request_id(vol)
def test_create_without_snapshots(self):
- vol = v3cs.transfers.create('1234', no_snapshots=True)
- v3cs.assert_called('POST', '/volume-transfers',
- body={'transfer': {'volume_id': '1234', 'name': None,
- 'no_snapshots': True}})
+ vol = v355cs.transfers.create('1234', no_snapshots=True)
+ v355cs.assert_called('POST', '/%s' % TRANSFER_355_URL,
+ body={'transfer': {'volume_id': '1234',
+ 'name': None,
+ 'no_snapshots': True}})
self._assert_request_id(vol)
- def test_get(self):
+ def _test_get(self, client, expected_url):
transfer_id = '5678'
- vol = cs.transfers.get(transfer_id)
- cs.assert_called('GET', '/os-volume-transfer/%s' % transfer_id)
+ vol = client.transfers.get(transfer_id)
+ client.assert_called('GET', '/%s/%s' % (expected_url, transfer_id))
self._assert_request_id(vol)
- def test_list(self):
- lst = cs.transfers.list()
- cs.assert_called('GET', '/os-volume-transfer/detail')
+ def test_get(self):
+ self._test_get(v3cs, TRANSFER_URL)
+
+ def test_get_355(self):
+ self._test_get(v355cs, TRANSFER_355_URL)
+
+ def _test_list(self, client, expected_url):
+ lst = client.transfers.list()
+ client.assert_called('GET', '/%s/detail' % expected_url)
self._assert_request_id(lst)
- def test_delete(self):
- b = cs.transfers.list()[0]
+ def test_list(self):
+ self._test_list(v3cs, TRANSFER_URL)
+
+ def test_list_355(self):
+ self._test_list(v355cs, TRANSFER_355_URL)
+
+ def _test_delete(self, client, expected_url):
+ url = '/%s/5678' % expected_url
+ b = client.transfers.list()[0]
vol = b.delete()
- cs.assert_called('DELETE', '/os-volume-transfer/5678')
+ client.assert_called('DELETE', url)
self._assert_request_id(vol)
- vol = cs.transfers.delete('5678')
+ vol = client.transfers.delete('5678')
self._assert_request_id(vol)
- cs.assert_called('DELETE', '/os-volume-transfer/5678')
- vol = cs.transfers.delete(b)
- cs.assert_called('DELETE', '/os-volume-transfer/5678')
+ client.assert_called('DELETE', url)
+ vol = client.transfers.delete(b)
+ client.assert_called('DELETE', url)
self._assert_request_id(vol)
- def test_accept(self):
+ def test_delete(self):
+ self._test_delete(v3cs, TRANSFER_URL)
+
+ def test_delete_355(self):
+ self._test_delete(v355cs, TRANSFER_355_URL)
+
+ def _test_accept(self, client, expected_url):
transfer_id = '5678'
auth_key = '12345'
- vol = cs.transfers.accept(transfer_id, auth_key)
- cs.assert_called('POST', '/os-volume-transfer/%s/accept' % transfer_id)
+ vol = client.transfers.accept(transfer_id, auth_key)
+ client.assert_called(
+ 'POST',
+ '/%s/%s/accept' % (expected_url, transfer_id))
self._assert_request_id(vol)
+
+ def test_accept(self):
+ self._test_accept(v3cs, TRANSFER_URL)
+
+ def test_accept_355(self):
+ self._test_accept(v355cs, TRANSFER_355_URL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/utils.py new/python-cinderclient-4.1.0/cinderclient/utils.py
--- old/python-cinderclient-4.0.1/cinderclient/utils.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/utils.py 2018-10-08 20:03:35.000000000 +0200
@@ -206,15 +206,27 @@
def build_query_param(params, sort=False):
"""parse list to url query parameters"""
- if params is None:
- params = {}
+ if not params:
+ return ""
+
if not sort:
param_list = list(params.items())
else:
param_list = list(sorted(params.items()))
query_string = parse.urlencode(
- [(k, v) for (k, v) in param_list if v])
+ [(k, v) for (k, v) in param_list if v not in (None, '')])
+
+ # urllib's parse library used to adhere to RFC 2396 until
+ # python 3.7. The library moved from RFC 2396 to RFC 3986
+ # for quoting URL strings in python 3.7 and '~' is now
+ # included in the set of reserved characters. [1]
+ #
+ # Below ensures "~" is never encoded. See LP 1784728 [2] for more details.
+ # [1] https://docs.python.org/3/library/urllib.parse.html#url-quoting
+ # [2] https://bugs.launchpad.net/python-cinderclient/+bug/1784728
+ query_string = query_string.replace("%7E=", "~=")
+
if query_string:
query_string = "?%s" % (query_string,)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/v1/volume_snapshots.py new/python-cinderclient-4.1.0/cinderclient/v1/volume_snapshots.py
--- old/python-cinderclient-4.0.1/cinderclient/v1/volume_snapshots.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/v1/volume_snapshots.py 2018-10-08 20:03:35.000000000 +0200
@@ -107,7 +107,7 @@
:rtype: list of :class:`Snapshot`
"""
- query_string = utils.build_query_param(search_opts, True)
+ query_string = utils.build_query_param(search_opts, sort=True)
detail = ""
if detailed:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/v1/volumes.py new/python-cinderclient-4.1.0/cinderclient/v1/volumes.py
--- old/python-cinderclient-4.0.1/cinderclient/v1/volumes.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/v1/volumes.py 2018-10-08 20:03:35.000000000 +0200
@@ -203,7 +203,7 @@
if limit:
search_opts['limit'] = limit
- query_string = utils.build_query_param(search_opts, True)
+ query_string = utils.build_query_param(search_opts, sort=True)
detail = ""
if detailed:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/v2/capabilities.py new/python-cinderclient-4.1.0/cinderclient/v2/capabilities.py
--- old/python-cinderclient-4.0.1/cinderclient/v2/capabilities.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/v2/capabilities.py 2018-10-08 20:03:35.000000000 +0200
@@ -22,7 +22,7 @@
NAME_ATTR = 'name'
def __repr__(self):
- return "<Capabilities: %s>" % self._info['namespace']
+ return "<Capabilities: %s>" % self._info.get('namespace')
class CapabilitiesManager(base.Manager):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/v2/limits.py new/python-cinderclient-4.1.0/cinderclient/v2/limits.py
--- old/python-cinderclient-4.0.1/cinderclient/v2/limits.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/v2/limits.py 2018-10-08 20:03:35.000000000 +0200
@@ -14,9 +14,8 @@
# limitations under the License.
"""Limits interface (v2 extension)"""
-from six.moves.urllib import parse
-
from cinderclient import base
+from cinderclient import utils
class Limits(base.Resource):
@@ -95,6 +94,6 @@
if tenant_id:
opts['tenant_id'] = tenant_id
- query_string = "?%s" % parse.urlencode(opts) if opts else ""
+ query_string = utils.build_query_param(opts)
return self._get("/limits%s" % query_string, "limits")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/v2/shell.py new/python-cinderclient-4.1.0/cinderclient/v2/shell.py
--- old/python-cinderclient-4.0.1/cinderclient/v2/shell.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/v2/shell.py 2018-10-08 20:03:35.000000000 +0200
@@ -290,7 +290,9 @@
dest='scheduler_hints',
action='append',
default=[],
- help='Scheduler hint, like in nova.')
+ help='Scheduler hint, similar to nova. Repeat option to set '
+ 'multiple hints. Values with the same key will be stored '
+ 'as a list.')
@utils.arg('--allow-multiattach',
dest='multiattach',
action="store_true",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/v3/group_snapshots.py new/python-cinderclient-4.1.0/cinderclient/v3/group_snapshots.py
--- old/python-cinderclient-4.0.1/cinderclient/v3/group_snapshots.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/v3/group_snapshots.py 2018-10-08 20:03:35.000000000 +0200
@@ -96,7 +96,7 @@
:param search_opts: search options
:rtype: list of :class:`GroupSnapshot`
"""
- query_string = utils.build_query_param(search_opts)
+ query_string = utils.build_query_param(search_opts, sort=True)
detail = ""
if detailed:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/v3/groups.py new/python-cinderclient-4.1.0/cinderclient/v3/groups.py
--- old/python-cinderclient-4.0.1/cinderclient/v3/groups.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/v3/groups.py 2018-10-08 20:03:35.000000000 +0200
@@ -14,8 +14,6 @@
# under the License.
"""Group interface (v3 extension)."""
-from six.moves.urllib import parse
-
from cinderclient import api_versions
from cinderclient.apiclient import base as common_base
from cinderclient import base
@@ -140,11 +138,7 @@
:rtype: :class:`Group`
"""
query_params = utils.unicode_key_value_to_string(kwargs)
-
- query_string = ""
- if query_params:
- params = sorted(query_params.items(), key=lambda x: x[0])
- query_string = "?%s" % parse.urlencode(params)
+ query_string = utils.build_query_param(query_params, sort=True)
return self._get("/groups/%s" % group_id + query_string,
"group")
@@ -159,7 +153,7 @@
if not search_opts:
search_opts = {}
search_opts['list_volume'] = True
- query_string = utils.build_query_param(search_opts)
+ query_string = utils.build_query_param(search_opts, sort=True)
detail = ""
if detailed:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/v3/shell.py new/python-cinderclient-4.1.0/cinderclient/v3/shell.py
--- old/python-cinderclient-4.0.1/cinderclient/v3/shell.py 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/v3/shell.py 2018-10-08 20:03:35.000000000 +0200
@@ -481,7 +481,7 @@
type=int,
action=CheckSizeArgForCreate,
help='Size of volume, in GiBs. (Required unless '
- 'snapshot-id/source-volid is specified).')
+ 'snapshot-id/source-volid/backup-id is specified).')
@utils.arg('--consisgroup-id',
metavar='<consistencygroup-id>',
default=None,
@@ -560,7 +560,9 @@
dest='scheduler_hints',
action='append',
default=[],
- help='Scheduler hint, like in nova.')
+ help='Scheduler hint, similar to nova. Repeat option to set '
+ 'multiple hints. Values with the same key will be stored '
+ 'as a list.')
@utils.arg('--allow-multiattach',
dest='multiattach',
action="store_true",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/cinderclient/v3/volume_transfers.py new/python-cinderclient-4.1.0/cinderclient/v3/volume_transfers.py
--- old/python-cinderclient-4.0.1/cinderclient/v3/volume_transfers.py 2018-08-01 18:15:51.000000000 +0200
+++ new/python-cinderclient-4.1.0/cinderclient/v3/volume_transfers.py 2018-10-08 20:03:35.000000000 +0200
@@ -13,10 +13,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-"""
-Volume transfer interface (v3 extension).
-"""
+"""Volume transfer interface (v3 extension)."""
+from cinderclient import base
+from cinderclient import utils
from cinderclient.v2 import volume_transfers
@@ -33,4 +33,63 @@
'name': name}}
if self.api_version.matches('3.55'):
body['transfer']['no_snapshots'] = no_snapshots
- return self._create('/volume-transfers', body, 'transfer')
+ return self._create('/volume-transfers', body, 'transfer')
+
+ return self._create('/os-volume-transfer', body, 'transfer')
+
+ def accept(self, transfer_id, auth_key):
+ """Accept a volume transfer.
+
+ :param transfer_id: The ID of the transfer to accept.
+ :param auth_key: The auth_key of the transfer.
+ :rtype: :class:`VolumeTransfer`
+ """
+ body = {'accept': {'auth_key': auth_key}}
+ if self.api_version.matches('3.55'):
+ return self._create('/volume-transfers/%s/accept' % transfer_id,
+ body, 'transfer')
+
+ return self._create('/os-volume-transfer/%s/accept' % transfer_id,
+ body, 'transfer')
+
+ def get(self, transfer_id):
+ """Show details of a volume transfer.
+
+ :param transfer_id: The ID of the volume transfer to display.
+ :rtype: :class:`VolumeTransfer`
+ """
+ if self.api_version.matches('3.55'):
+ return self._get("/volume-transfers/%s" % transfer_id, "transfer")
+
+ return self._get("/os-volume-transfer/%s" % transfer_id, "transfer")
+
+ def list(self, detailed=True, search_opts=None):
+ """Get a list of all volume transfer.
+
+ :param detailed: Get detailed object information.
+ :param search_opts: Filtering options.
+ :rtype: list of :class:`VolumeTransfer`
+ """
+ query_string = utils.build_query_param(search_opts)
+
+ detail = ""
+ if detailed:
+ detail = "/detail"
+
+ if self.api_version.matches('3.55'):
+ return self._list("/volume-transfers%s%s" % (detail, query_string),
+ "transfers")
+
+ return self._list("/os-volume-transfer%s%s" % (detail, query_string),
+ "transfers")
+
+ def delete(self, transfer_id):
+ """Delete a volume transfer.
+
+ :param transfer_id: The :class:`VolumeTransfer` to delete.
+ """
+ if self.api_version.matches('3.55'):
+ return self._delete(
+ "/volume-transfers/%s" % base.getid(transfer_id))
+
+ return self._delete("/os-volume-transfer/%s" % base.getid(transfer_id))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/python_cinderclient.egg-info/PKG-INFO new/python-cinderclient-4.1.0/python_cinderclient.egg-info/PKG-INFO
--- old/python-cinderclient-4.0.1/python_cinderclient.egg-info/PKG-INFO 2018-08-01 18:17:44.000000000 +0200
+++ new/python-cinderclient-4.1.0/python_cinderclient.egg-info/PKG-INFO 2018-10-08 20:04:26.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: python-cinderclient
-Version: 4.0.1
+Version: 4.1.0
Summary: OpenStack Block Storage API Client Library
Home-page: https://docs.openstack.org/python-cinderclient/latest/
Author: OpenStack
@@ -44,7 +44,7 @@
for the Rackspace API solely or the BSD license, you should use that repository.
python-cinderclient is licensed under the Apache License like the rest of OpenStack.
- __ https://github.com/jacobian-archive/python-cloudservers
+ __ https://github.com/rackerlabs/python-cloudservers
* License: Apache License, Version 2.0
* `PyPi`_ - package installation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/python_cinderclient.egg-info/SOURCES.txt new/python-cinderclient-4.1.0/python_cinderclient.egg-info/SOURCES.txt
--- old/python-cinderclient-4.0.1/python_cinderclient.egg-info/SOURCES.txt 2018-08-01 18:17:45.000000000 +0200
+++ new/python-cinderclient-4.1.0/python_cinderclient.egg-info/SOURCES.txt 2018-10-08 20:04:27.000000000 +0200
@@ -260,6 +260,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/python_cinderclient.egg-info/pbr.json new/python-cinderclient-4.1.0/python_cinderclient.egg-info/pbr.json
--- old/python-cinderclient-4.0.1/python_cinderclient.egg-info/pbr.json 2018-08-01 18:17:44.000000000 +0200
+++ new/python-cinderclient-4.1.0/python_cinderclient.egg-info/pbr.json 2018-10-08 20:04:26.000000000 +0200
@@ -1 +1 @@
-{"git_version": "460229c", "is_release": true}
\ No newline at end of file
+{"git_version": "4e17e1d", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/releasenotes/notes/reno.cache new/python-cinderclient-4.1.0/releasenotes/notes/reno.cache
--- old/python-cinderclient-4.0.1/releasenotes/notes/reno.cache 2018-08-01 18:17:46.000000000 +0200
+++ new/python-cinderclient-4.1.0/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,87 +0,0 @@
----
-file-contents:
- releasenotes/notes/attachment-mode-8427aa6a2fa26e70.yaml:
- features: ['Added the ability to specify the read-write or read-only mode of an
-
- attachment starting with microversion 3.54. The command line usage is
-
- `cinder attachment-create --mode [rw|ro]`.
-
- ']
- releasenotes/notes/feature-cross-az-backups-9d428ad4dfc552e1.yaml:
- features: ['Support cross AZ backup creation specifying desired backup service
- AZ
-
- (added in microversion v3.51)
-
- ']
- releasenotes/notes/remove-deprecations-621919062f867015.yaml:
- upgrade: ["The following CLI options were deprecated for one or more releases\
- \ and have\nnow been removed:\n\n``--endpoint-type``\n This option has been\
- \ replaced by ``--os-endpoint-type``.\n\n``--bypass-url``\n This option has\
- \ been replaced by ``--os-endpoint``.\n\n``--os-auth-system``\n This option\
- \ has been replaced by ``--os-auth-type``.\n"]
- releasenotes/notes/remove-replv1-cabf2194edb9d963.yaml:
- upgrade: ['The volume creation argument ``--source-replica`` on the command line
- and
-
- the ``source_replica`` kwarg for the ``create()`` call when using the
-
- cinderclient library were for the replication v1 support that was removed
-
- in the Mitaka release. These options have now been removed.
-
- ']
- releasenotes/notes/support-filter-type-7yt69ub7ccbf7419.yaml:
- features: ['New command option ``--filters`` is added to ``type-list`` command
- to support filter types since 3.52, and it''s only valid for administrator.']
- releasenotes/notes/transfer-snapshots-555c61477835bcf7.yaml:
- features: ['Starting with microversion 3.55, the volume transfer command now has
- the
-
- ability to exclude a volume''s snapshots when transferring a volume to another
-
- project. The new command format is `cinder transfer-create --no-snapshots`.
-
- ']
- releasenotes/notes/volume-transfer-bug-23c760efb9f98a4d.yaml:
- fixes: ['An issue was discovered with the way API microversions were handled for
- the
-
- new volume-transfer with snapshot handling with microversion 3.55. This
-
- release includes a fix to keep backwards compatibility with earlier
-
- releases. See `bug #1784703
-
- <https://bugs.launchpad.net/cinder/+bug/1784703>`_ for more details.
-
- ']
-notes:
-- files:
- - - releasenotes/notes/volume-transfer-bug-23c760efb9f98a4d.yaml
- - !!binary |
- NDYwMjI5YzYwOTk3MTlkZWMwZDAyN2Y3OThmOWM3NTFiOGVjN2U0NA==
- version: 4.0.1
-- files:
- - - releasenotes/notes/attachment-mode-8427aa6a2fa26e70.yaml
- - !!binary |
- ODI2YzVmYzE2ZDZmNTcyY2Y1NDRlM2YwYTkxMzMwYmY5MjcwMWM2OQ==
- - - releasenotes/notes/remove-deprecations-621919062f867015.yaml
- - !!binary |
- YTMzMWYwNmRmMDE1OGZmZjI4MTYyZWFiYzc2NWYxNjQ4NTVhZmNlZQ==
- - - releasenotes/notes/remove-replv1-cabf2194edb9d963.yaml
- - !!binary |
- MzIyNTFmMGVhMzg2MzA5OGI0ZDRkNTQzNjRjOGVlMThmZjE3MGE0NA==
- - - releasenotes/notes/transfer-snapshots-555c61477835bcf7.yaml
- - !!binary |
- YTU1NGZhYTY1MzBmYTBiYjcwNDMwNTcyODY5YTZhMjU1NTc4MzkxMg==
- version: 4.0.0
-- files:
- - - releasenotes/notes/feature-cross-az-backups-9d428ad4dfc552e1.yaml
- - !!binary |
- MmM3NzRjYzAxNWNiNjYyNGZlMzc4MjNiNTg2ODY0YzYzNTI1YzM3OQ==
- - - releasenotes/notes/support-filter-type-7yt69ub7ccbf7419.yaml
- - !!binary |
- NWExNTEzMjQ0Y2FmN2FjYmQ0MWUxODE0MTliYzhiNjJiZjRiY2FiYQ==
- version: 3.6.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/releasenotes/source/index.rst new/python-cinderclient-4.1.0/releasenotes/source/index.rst
--- old/python-cinderclient-4.0.1/releasenotes/source/index.rst 2018-08-01 18:15:36.000000000 +0200
+++ new/python-cinderclient-4.1.0/releasenotes/source/index.rst 2018-10-08 20:03:35.000000000 +0200
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-cinderclient-4.0.1/releasenotes/source/rocky.rst new/python-cinderclient-4.1.0/releasenotes/source/rocky.rst
--- old/python-cinderclient-4.0.1/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/python-cinderclient-4.1.0/releasenotes/source/rocky.rst 2018-10-08 20:03:35.000000000 +0200
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
1
0
Hello community,
here is the log from the commit of package python-castellan for openSUSE:Factory checked in at 2019-05-03 22:39:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-castellan (Old)
and /work/SRC/openSUSE:Factory/.python-castellan.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-castellan"
Fri May 3 22:39:59 2019 rev:8 rq:692817 version:1.2.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-castellan/python-castellan.changes 2018-10-09 15:53:40.722317479 +0200
+++ /work/SRC/openSUSE:Factory/.python-castellan.new.5148/python-castellan.changes 2019-05-03 22:40:01.654938630 +0200
@@ -1,0 +2,25 @@
+Mon Apr 8 13:56:51 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.2.2
+ - Bump HashiCorp Vault version for tests.
+ - Change openstack-dev to openstack-discuss
+ - fix tox python3 overrides
+ - Fix Vault K/V API compatibility.
+ - Add release note link in README
+ - Switch to stestr
+ - Add Castellan Oslo Config Driver.
+ - Fix length usage in VaultKeyManager.create_key.
+ - vault: add AppRole support
+ - Update reno for stable/rocky
+ - Update min tox version to 2.0
+ - Don't quote {posargs} in tox.ini
+ - Use template for lower-constraints
+ - Add method to wrap HashiCorp Vault HTTP API calls.
+ - Set py3 tests according to Stein runtimes.
+ - add python 3.6 unit test job
+ - vault: support configuration of KV mountpoint
+ - add python 3.7 unit test job
+ - import zuul job settings from project-config
+ - Add code to generate private keys
+
+-------------------------------------------------------------------
Old:
----
castellan-0.19.0.tar.gz
New:
----
castellan-1.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-castellan.spec ++++++
--- /var/tmp/diff_new_pack.E9P1Bf/_old 2019-05-03 22:40:02.474940334 +0200
+++ /var/tmp/diff_new_pack.E9P1Bf/_new 2019-05-03 22:40:02.474940334 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-castellan
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,50 +12,55 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-castellan
-Version: 0.19.0
+Version: 1.2.2
Release: 0
Summary: Generic Key Manager interface for OpenStack
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/castellan
-Source0: https://files.pythonhosted.org/packages/source/c/castellan/castellan-0.19.0…
+Source0: https://files.pythonhosted.org/packages/source/c/castellan/castellan-1.2.2.…
BuildRequires: openstack-macros
BuildRequires: python2-barbicanclient >= 4.5.2
BuildRequires: python2-cryptography >= 2.1
BuildRequires: python2-keystoneauth1 >= 3.4.0
-BuildRequires: python2-oslo.config >= 5.2.0
+BuildRequires: python2-oslo.config >= 6.4.0
BuildRequires: python2-oslo.log >= 3.36.0
BuildRequires: python2-oslotest
+BuildRequires: python2-pifpaf
BuildRequires: python2-python-subunit
+BuildRequires: python2-reno
BuildRequires: python2-setuptools
-BuildRequires: python2-testrepository
+BuildRequires: python2-stestr
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
BuildRequires: python3-barbicanclient >= 4.5.2
BuildRequires: python3-cryptography >= 2.1
BuildRequires: python3-keystoneauth1 >= 3.4.0
-BuildRequires: python3-oslo.config >= 5.2.0
+BuildRequires: python3-oslo.config >= 6.4.0
BuildRequires: python3-oslo.log >= 3.36.0
BuildRequires: python3-oslotest
+BuildRequires: python3-pifpaf
BuildRequires: python3-python-subunit
+BuildRequires: python3-reno
BuildRequires: python3-setuptools
-BuildRequires: python3-testrepository
+BuildRequires: python3-stestr
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
Requires: python-Babel >= 2.3.4
+Requires: python-barbicanclient >= 4.5.2
Requires: python-cryptography >= 2.1
Requires: python-keystoneauth1 >= 3.4.0
-Requires: python-oslo.config >= 5.2.0
+Requires: python-oslo.config >= 6.4.0
Requires: python-oslo.context >= 2.19.2
+Requires: python-oslo.i18n >= 3.15.3
Requires: python-oslo.log >= 3.36.0
-Requires: python-oslo.policy
-Requires: python-oslo.serialization
Requires: python-oslo.utils >= 3.33.0
+Requires: python-stevedore >= 1.20.0
BuildArch: noarch
%python_subpackages
@@ -73,9 +78,8 @@
This package contains the documentation
%prep
-%autosetup -p1 -n castellan-0.19.0
+%autosetup -p1 -n castellan-1.2.2
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
@@ -88,11 +92,7 @@
%{python_install}
%check
-%{python_expand rm -rf .testrepository
-# Functional tests require a working Keystone infrastructure
-export OS_TEST_PATH=./castellan/tests/unit
-$python setup.py test
-}
+%python_exec -m stestr.cli run
%files %{python_files}
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.E9P1Bf/_old 2019-05-03 22:40:02.498940383 +0200
+++ /var/tmp/diff_new_pack.E9P1Bf/_new 2019-05-03 22:40:02.498940383 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-castellan.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/castellan/stable/rocky/requirem…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/castellan/stable/stein/requirem…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,castellan</param>
</service>
++++++ castellan-0.19.0.tar.gz -> castellan-1.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/.stestr.conf new/castellan-1.2.2/.stestr.conf
--- old/castellan-0.19.0/.stestr.conf 1970-01-01 01:00:00.000000000 +0100
+++ new/castellan-1.2.2/.stestr.conf 2019-02-28 19:02:40.000000000 +0100
@@ -0,0 +1,4 @@
+[DEFAULT]
+test_path=./castellan/tests
+top_dir=./
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/.testr.conf new/castellan-1.2.2/.testr.conf
--- old/castellan-0.19.0/.testr.conf 2018-08-21 22:00:55.000000000 +0200
+++ new/castellan-1.2.2/.testr.conf 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH:-./castellan/tests} $LISTOPT $IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/.zuul.yaml new/castellan-1.2.2/.zuul.yaml
--- old/castellan-0.19.0/.zuul.yaml 2018-08-21 22:00:55.000000000 +0200
+++ new/castellan-1.2.2/.zuul.yaml 2019-02-28 19:02:40.000000000 +0100
@@ -51,18 +51,18 @@
jobs:
- castellan-functional-vault
- castellan-functional-devstack
- - openstack-tox-lower-constraints
- barbican-simple-crypto-devstack-tempest-castellan-from-git
gate:
jobs:
- castellan-functional-vault
- castellan-functional-devstack
- - openstack-tox-lower-constraints
- barbican-simple-crypto-devstack-tempest-castellan-from-git
templates:
- - openstack-python-jobs
- - openstack-python35-jobs
- - release-notes-jobs-python3
- - publish-openstack-docs-pti
- check-requirements
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python36-jobs
+ - openstack-python37-jobs
- periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/AUTHORS new/castellan-1.2.2/AUTHORS
--- old/castellan-0.19.0/AUTHORS 2018-08-21 22:04:14.000000000 +0200
+++ new/castellan-1.2.2/AUTHORS 2019-02-28 19:06:34.000000000 +0100
@@ -7,6 +7,7 @@
Brianna Poulos <brianna.poulos(a)jhuapl.edu>
Chris Solis <cnsolis(a)us.ibm.com>
Christopher Solis <cnsolis(a)us.ibm.com>
+Corey Bryant <corey.bryant(a)canonical.com>
Dai Dang Van <daidv(a)vn.fujitsu.com>
Davanum Srinivas <davanum(a)gmail.com>
Dave McCowan <dmccowan(a)cisco.com>
@@ -17,6 +18,7 @@
Fernando Diaz <diazjf(a)us.ibm.com>
Flavio Percoco <flaper87(a)gmail.com>
James E. Blair <jeblair(a)redhat.com>
+James Page <james.page(a)ubuntu.com>
Jamie Lennox <jamielennox(a)gmail.com>
Jeremy Liu <liujiong(a)gohighsec.com>
Jeremy Stanley <fungi(a)yuggoth.org>
@@ -27,7 +29,10 @@
Kaitlin Farr <kaitlin.farr(a)jhuapl.edu>
Kiran_totad <kiran.totad(a)nectechnologies.in>
Michael McCune <msm(a)redhat.com>
+Moises Guimaraes de Medeiros <moguimar(a)redhat.com>
+Moisés Guimarães de Medeiros <moguimar(a)redhat.com>
Monty Taylor <mordred(a)inaugust.com>
+Nguyen Van Trung <trungnv(a)vn.fujitsu.com>
Niall Bunting <niall.bunting(a)hpe.com>
OpenStack Release Bot <infra-root(a)openstack.org>
Paul Bourke <paul.bourke(a)oracle.com>
@@ -38,9 +43,9 @@
Tim Kelsey <tim.kelsey(a)hp.com>
Tom Cocozzello <tjcocozz(a)us.ibm.com>
Van Hung Pham <hungpv(a)vn.fujitsu.com>
+Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Yushiro FURUKAWA <y.furukawa_2(a)jp.fujitsu.com>
Zhao Lei <zhaolei(a)cn.fujitsu.com>
-Zuul <zuul(a)review.openstack.org>
bhavani.cr <bhavani.r(a)nectechnologies.in>
dane-fichter <dane.fichter(a)jhuapl.edu>
gaofei <gao.fei(a)inspur.com>
@@ -52,6 +57,8 @@
rajat29 <rajat.sharma(a)nectechnologies.in>
sonu.kumar <sonu.kumar(a)nectechnologies.in>
ting.wang <ting.wang(a)easystack.cn>
+wu.chunyang <wu.chunyang(a)99cloud.net>
xhzhf <guoyongxhzhf(a)163.com>
yushangbin <yushb(a)gohighsec.com>
+zhangzs <zhangzhaoshan(a)inspur.com>
“Fernando <diazjf(a)us.ibm.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/ChangeLog new/castellan-1.2.2/ChangeLog
--- old/castellan-0.19.0/ChangeLog 2018-08-21 22:04:14.000000000 +0200
+++ new/castellan-1.2.2/ChangeLog 2019-02-28 19:06:34.000000000 +0100
@@ -1,13 +1,49 @@
CHANGES
=======
-0.19.0
+1.2.2
+-----
+
+* Set py3 tests according to Stein runtimes
+
+1.2.1
+-----
+
+* Fix length usage in VaultKeyManager.create\_key
+* add python 3.7 unit test job
+
+1.2.0
+-----
+
+* Change openstack-dev to openstack-discuss
+
+1.1.0
+-----
+
+* Add Castellan Oslo Config Driver
+* Use template for lower-constraints
+* Update min tox version to 2.0
+* vault: support configuration of KV mountpoint
+* vault: add AppRole support
+* Don't quote {posargs} in tox.ini
+
+1.0.0
+-----
+
+* Add method to wrap HashiCorp Vault HTTP API calls
+
+0.20.1
------
-* Add code to generate private keys
+* Bump HashiCorp Vault version for tests
+* Fix Vault K/V API compatibility
+* add python 3.6 unit test job
* import zuul job settings from project-config
-* Update UPPER\_CONSTRAINTS\_FILE for stable/rocky
-* Update .gitreview for stable/rocky
+* Update reno for stable/rocky
+* Switch to stestr
+* Add release note link in README
+* Add code to generate private keys
+* fix tox python3 overrides
0.18.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/PKG-INFO new/castellan-1.2.2/PKG-INFO
--- old/castellan-0.19.0/PKG-INFO 2018-08-21 22:04:15.000000000 +0200
+++ new/castellan-1.2.2/PKG-INFO 2019-02-28 19:06:34.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: castellan
-Version: 0.19.0
+Version: 1.2.2
Summary: Generic Key Manager interface for OpenStack
Home-page: https://docs.openstack.org/castellan/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: =========
Castellan
@@ -16,6 +16,7 @@
* Documentation: https://docs.openstack.org/castellan/latest
* Source: https://git.openstack.org/cgit/openstack/castellan
* Bugs: https://bugs.launchpad.net/castellan
+ * Release notes: https://docs.openstack.org/releasenotes/castellan
Team and repository tags
========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/README.rst new/castellan-1.2.2/README.rst
--- old/castellan-0.19.0/README.rst 2018-08-21 22:00:55.000000000 +0200
+++ new/castellan-1.2.2/README.rst 2019-02-28 19:02:40.000000000 +0100
@@ -8,6 +8,7 @@
* Documentation: https://docs.openstack.org/castellan/latest
* Source: https://git.openstack.org/cgit/openstack/castellan
* Bugs: https://bugs.launchpad.net/castellan
+* Release notes: https://docs.openstack.org/releasenotes/castellan
Team and repository tags
========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/RELEASENOTES.rst new/castellan-1.2.2/RELEASENOTES.rst
--- old/castellan-0.19.0/RELEASENOTES.rst 2018-08-21 22:04:15.000000000 +0200
+++ new/castellan-1.2.2/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-=========
-castellan
-=========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/castellan/_config_driver.py new/castellan-1.2.2/castellan/_config_driver.py
--- old/castellan-0.19.0/castellan/_config_driver.py 1970-01-01 01:00:00.000000000 +0100
+++ new/castellan-1.2.2/castellan/_config_driver.py 2019-02-28 19:02:40.000000000 +0100
@@ -0,0 +1,141 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+r"""
+Castellan Oslo Config Driver
+----------------------------
+
+This driver is an oslo.config backend driver implemented with Castellan. It
+extends oslo.config's capabilities by enabling it to retrieve configuration
+values from a secret manager behind Castellan.
+
+The setup of a Castellan configuration source is as follow::
+
+ [DEFAULT]
+ config_source = castellan_config_group
+
+ [castellan_config_group]
+ driver = castellan
+ config_file = castellan.conf
+ mapping_file = mapping.conf
+
+In the following sessions, you can find more information about this driver's
+classes and its options.
+
+The Driver Class
+================
+
+.. autoclass:: CastellanConfigurationSourceDriver
+
+The Configuration Source Class
+==============================
+
+.. autoclass:: CastellanConfigurationSource
+
+"""
+from castellan.common.exception import KeyManagerError
+from castellan.common.exception import ManagedObjectNotFoundError
+from castellan import key_manager
+
+from oslo_config import cfg
+from oslo_config import sources
+from oslo_log import log
+
+LOG = log.getLogger(__name__)
+
+
+class CastellanConfigurationSourceDriver(sources.ConfigurationSourceDriver):
+ """A backend driver for configuration values served through castellan.
+
+ Required options:
+ - config_file: The castellan configuration file.
+
+ - mapping_file: A configuration/castellan_id mapping file. This file
+ creates connections between configuration options and
+ castellan ids. The group and option name remains the
+ same, while the value gets stored a secret manager behind
+ castellan and is replaced by its castellan id. The ids
+ will be used to fetch the values through castellan.
+ """
+
+ _castellan_driver_opts = [
+ cfg.StrOpt(
+ 'config_file',
+ required=True,
+ sample_default='etc/castellan/castellan.conf',
+ help=('The path to a castellan configuration file.'),
+ ),
+ cfg.StrOpt(
+ 'mapping_file',
+ required=True,
+ sample_default='etc/castellan/secrets_mapping.conf',
+ help=('The path to a configuration/castellan_id mapping file.'),
+ ),
+ ]
+
+ def list_options_for_discovery(self):
+ return self._castellan_driver_opts
+
+ def open_source_from_opt_group(self, conf, group_name):
+ conf.register_opts(self._castellan_driver_opts, group_name)
+
+ return CastellanConfigurationSource(
+ group_name,
+ conf[group_name].config_file,
+ conf[group_name].mapping_file)
+
+
+class CastellanConfigurationSource(sources.ConfigurationSource):
+ """A configuration source for configuration values served through castellan.
+
+ :param config_file: The path to a castellan configuration file.
+
+ :param mapping_file: The path to a configuration/castellan_id mapping file.
+ """
+
+ def __init__(self, group_name, config_file, mapping_file):
+ conf = cfg.ConfigOpts()
+ conf(args=[], default_config_files=[config_file])
+
+ self._name = group_name
+ self._mngr = key_manager.API(conf)
+ self._mapping = {}
+
+ cfg.ConfigParser(mapping_file, self._mapping).parse()
+
+ def get(self, group_name, option_name, opt):
+ try:
+ group_name = group_name or "DEFAULT"
+
+ castellan_id = self._mapping[group_name][option_name][0]
+
+ return (self._mngr.get("ctx", castellan_id).get_encoded().decode(),
+ cfg.LocationInfo(cfg.Locations.user, castellan_id))
+
+ except KeyError:
+ # no mapping 'option = castellan_id'
+ LOG.info("option '[%s] %s' not present in '[%s] mapping_file'",
+ group_name, option_name, self._name)
+
+ except KeyManagerError:
+ # bad mapping 'option =' without a castellan_id
+ LOG.warning("missing castellan_id for option "
+ "'[%s] %s' in '[%s] mapping_file'",
+ group_name, option_name, self._name)
+
+ except ManagedObjectNotFoundError:
+ # good mapping, but unknown castellan_id by secret manager
+ LOG.warning("invalid castellan_id for option "
+ "'[%s] %s' in '[%s] mapping_file'",
+ group_name, option_name, self._name)
+
+ return (sources._NoValue, None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/castellan/key_manager/vault_key_manager.py new/castellan-1.2.2/castellan/key_manager/vault_key_manager.py
--- old/castellan-0.19.0/castellan/key_manager/vault_key_manager.py 2018-08-21 22:00:30.000000000 +0200
+++ new/castellan-1.2.2/castellan/key_manager/vault_key_manager.py 2019-02-28 19:02:40.000000000 +0100
@@ -29,6 +29,7 @@
from keystoneauth1 import loading
from oslo_config import cfg
from oslo_log import log as logging
+from oslo_utils import timeutils
import requests
import six
@@ -43,10 +44,19 @@
from castellan.key_manager import key_manager
DEFAULT_VAULT_URL = "http://127.0.0.1:8200"
+DEFAULT_MOUNTPOINT = "secret"
vault_opts = [
cfg.StrOpt('root_token_id',
help='root token for vault'),
+ cfg.StrOpt('approle_role_id',
+ help='AppRole role_id for authentication with vault'),
+ cfg.StrOpt('approle_secret_id',
+ help='AppRole secret_id for authentication with vault'),
+ cfg.StrOpt('kv_mountpoint',
+ default=DEFAULT_MOUNTPOINT,
+ help='Mountpoint of KV store in Vault to use, for example: '
+ '{}'.format(DEFAULT_MOUNTPOINT)),
cfg.StrOpt('vault_url',
default=DEFAULT_VAULT_URL,
help='Use this endpoint to connect to Vault, for example: '
@@ -88,17 +98,121 @@
loading.register_session_conf_options(self._conf, VAULT_OPT_GROUP)
self._session = requests.Session()
self._root_token_id = self._conf.vault.root_token_id
+ self._approle_role_id = self._conf.vault.approle_role_id
+ self._approle_secret_id = self._conf.vault.approle_secret_id
+ self._cached_approle_token_id = None
+ self._approle_token_ttl = None
+ self._approle_token_issue = None
+ self._kv_mountpoint = self._conf.vault.kv_mountpoint
self._vault_url = self._conf.vault.vault_url
if self._vault_url.startswith("https://"):
self._verify_server = self._conf.vault.ssl_ca_crt_file or True
else:
self._verify_server = False
+ self._vault_kv_version = None
def _get_url(self):
if not self._vault_url.endswith('/'):
self._vault_url += '/'
return self._vault_url
+ def _get_api_version(self):
+ if self._vault_kv_version:
+ return self._vault_kv_version
+
+ resource_url = '{}v1/sys/internal/ui/mounts/{}'.format(
+ self._get_url(),
+ self._kv_mountpoint
+ )
+ resp = self._do_http_request(self._session.get, resource_url)
+
+ if resp.status_code == requests.codes['not_found']:
+ self._vault_kv_version = '1'
+ else:
+ self._vault_kv_version = resp.json()['data']['options']['version']
+
+ return self._vault_kv_version
+
+ def _get_resource_url(self, key_id=None):
+ return '{}v1/{}/{}{}'.format(
+ self._get_url(),
+ self._kv_mountpoint,
+
+ '' if self._get_api_version() == '1' else
+ 'data/' if key_id else
+ 'metadata/', # no key_id is for listing and 'data/' doesn't works
+
+ key_id if key_id else '?list=true')
+
+ @property
+ def _approle_token_id(self):
+ if (all((self._approle_token_issue, self._approle_token_ttl)) and
+ timeutils.is_older_than(self._approle_token_issue,
+ self._approle_token_ttl)):
+ self._cached_approle_token_id = None
+ return self._cached_approle_token_id
+
+ def _build_auth_headers(self):
+ if self._root_token_id:
+ return {'X-Vault-Token': self._root_token_id}
+
+ if self._approle_token_id:
+ return {'X-Vault-Token': self._approle_token_id}
+
+ if self._approle_role_id:
+ params = {
+ 'role_id': self._approle_role_id
+ }
+ if self._approle_secret_id:
+ params['secret_id'] = self._approle_secret_id
+ approle_login_url = '{}v1/auth/approle/login'.format(
+ self._get_url()
+ )
+ token_issue_utc = timeutils.utcnow()
+ try:
+ resp = self._session.post(url=approle_login_url,
+ json=params,
+ verify=self._verify_server)
+ except requests.exceptions.Timeout as ex:
+ raise exception.KeyManagerError(six.text_type(ex))
+ except requests.exceptions.ConnectionError as ex:
+ raise exception.KeyManagerError(six.text_type(ex))
+ except Exception as ex:
+ raise exception.KeyManagerError(six.text_type(ex))
+
+ if resp.status_code in _EXCEPTIONS_BY_CODE:
+ raise exception.KeyManagerError(resp.reason)
+ if resp.status_code == requests.codes['forbidden']:
+ raise exception.Forbidden()
+
+ resp = resp.json()
+ self._cached_approle_token_id = resp['auth']['client_token']
+ self._approle_token_issue = token_issue_utc
+ self._approle_token_ttl = resp['auth']['lease_duration']
+ return {'X-Vault-Token': self._approle_token_id}
+
+ return {}
+
+ def _do_http_request(self, method, resource, json=None):
+ verify = self._verify_server
+ headers = self._build_auth_headers()
+
+ try:
+ resp = method(resource, headers=headers, json=json, verify=verify)
+ except requests.exceptions.Timeout as ex:
+ raise exception.KeyManagerError(six.text_type(ex))
+ except requests.exceptions.ConnectionError as ex:
+ raise exception.KeyManagerError(six.text_type(ex))
+ except Exception as ex:
+ raise exception.KeyManagerError(six.text_type(ex))
+
+ if resp.status_code in _EXCEPTIONS_BY_CODE:
+ raise exception.KeyManagerError(resp.reason)
+ if resp.status_code == requests.codes['forbidden']:
+ raise exception.Forbidden()
+
+ return resp
+
def create_key_pair(self, context, algorithm, length,
expiration=None, name=None):
"""Creates an asymmetric key pair."""
@@ -157,34 +271,22 @@
raise exception.KeyManagerError(
"Unknown type for value : %r" % value)
- headers = {'X-Vault-Token': self._root_token_id}
- try:
- resource_url = self._get_url() + 'v1/secret/' + key_id
- record = {
- 'type': type_value,
- 'value': binascii.hexlify(value.get_encoded()).decode('utf-8'),
- 'algorithm': (value.algorithm if hasattr(value, 'algorithm')
- else None),
- 'bit_length': (value.bit_length if hasattr(value, 'bit_length')
- else None),
- 'name': value.name,
- 'created': value.created
- }
- resp = self._session.post(resource_url,
- verify=self._verify_server,
- json=record,
- headers=headers)
- except requests.exceptions.Timeout as ex:
- raise exception.KeyManagerError(six.text_type(ex))
- except requests.exceptions.ConnectionError as ex:
- raise exception.KeyManagerError(six.text_type(ex))
- except Exception as ex:
- raise exception.KeyManagerError(six.text_type(ex))
-
- if resp.status_code in _EXCEPTIONS_BY_CODE:
- raise exception.KeyManagerError(resp.reason)
- if resp.status_code == requests.codes['forbidden']:
- raise exception.Forbidden()
+ record = {
+ 'type': type_value,
+ 'value': binascii.hexlify(value.get_encoded()).decode('utf-8'),
+ 'algorithm': (value.algorithm if hasattr(value, 'algorithm')
+ else None),
+ 'bit_length': (value.bit_length if hasattr(value, 'bit_length')
+ else None),
+ 'name': value.name,
+ 'created': value.created
+ }
+ if self._get_api_version() != '1':
+ record = {'data': record}
+
+ self._do_http_request(self._session.post,
+ self._get_resource_url(key_id),
+ json=record)
return key_id
@@ -196,13 +298,18 @@
msg = _("User is not authorized to use key manager.")
raise exception.Forbidden(msg)
+ if length % 8:
+ msg = _("Length must be multiple of 8.")
+ raise ValueError(msg)
+
key_id = uuid.uuid4().hex
- key_value = os.urandom(length or 32)
+ key_value = os.urandom((length or 256) // 8)
key = sym_key.SymmetricKey(algorithm,
- length or 32,
+ length or 256,
key_value,
key_id,
name or int(time.time()))
+
return self._store_key_value(key_id, key)
def store(self, context, key_value, **kwargs):
@@ -227,27 +334,16 @@
if not key_id:
raise exception.KeyManagerError('key identifier not provided')
- headers = {'X-Vault-Token': self._root_token_id}
- try:
- resource_url = self._get_url() + 'v1/secret/' + key_id
- resp = self._session.get(resource_url,
- verify=self._verify_server,
- headers=headers)
- except requests.exceptions.Timeout as ex:
- raise exception.KeyManagerError(six.text_type(ex))
- except requests.exceptions.ConnectionError as ex:
- raise exception.KeyManagerError(six.text_type(ex))
- except Exception as ex:
- raise exception.KeyManagerError(six.text_type(ex))
+ resp = self._do_http_request(self._session.get,
+ self._get_resource_url(key_id))
- if resp.status_code in _EXCEPTIONS_BY_CODE:
- raise exception.KeyManagerError(resp.reason)
- if resp.status_code == requests.codes['forbidden']:
- raise exception.Forbidden()
if resp.status_code == requests.codes['not_found']:
raise exception.ManagedObjectNotFoundError(uuid=key_id)
record = resp.json()['data']
+ if self._get_api_version() != '1':
+ record = record['data']
+
key = None if metadata_only else binascii.unhexlify(record['value'])
clazz = None
@@ -283,23 +379,9 @@
if not key_id:
raise exception.KeyManagerError('key identifier not provided')
- headers = {'X-Vault-Token': self._root_token_id}
- try:
- resource_url = self._get_url() + 'v1/secret/' + key_id
- resp = self._session.delete(resource_url,
- verify=self._verify_server,
- headers=headers)
- except requests.exceptions.Timeout as ex:
- raise exception.KeyManagerError(six.text_type(ex))
- except requests.exceptions.ConnectionError as ex:
- raise exception.KeyManagerError(six.text_type(ex))
- except Exception as ex:
- raise exception.KeyManagerError(six.text_type(ex))
+ resp = self._do_http_request(self._session.delete,
+ self._get_resource_url(key_id))
- if resp.status_code in _EXCEPTIONS_BY_CODE:
- raise exception.KeyManagerError(resp.reason)
- if resp.status_code == requests.codes['forbidden']:
- raise exception.Forbidden()
if resp.status_code == requests.codes['not_found']:
raise exception.ManagedObjectNotFoundError(uuid=key_id)
@@ -315,26 +397,13 @@
msg = _("Invalid secret type: %s") % object_type
raise exception.KeyManagerError(reason=msg)
- headers = {'X-Vault-Token': self._root_token_id}
- try:
- resource_url = self._get_url() + 'v1/secret/?list=true'
- resp = self._session.get(resource_url,
- verify=self._verify_server,
- headers=headers)
- keys = resp.json()['data']['keys']
- except requests.exceptions.Timeout as ex:
- raise exception.KeyManagerError(six.text_type(ex))
- except requests.exceptions.ConnectionError as ex:
- raise exception.KeyManagerError(six.text_type(ex))
- except Exception as ex:
- raise exception.KeyManagerError(six.text_type(ex))
+ resp = self._do_http_request(self._session.get,
+ self._get_resource_url())
- if resp.status_code in _EXCEPTIONS_BY_CODE:
- raise exception.KeyManagerError(resp.reason)
- if resp.status_code == requests.codes['forbidden']:
- raise exception.Forbidden()
if resp.status_code == requests.codes['not_found']:
keys = []
+ else:
+ keys = resp.json()['data']['keys']
objects = []
for obj_id in keys:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/castellan/options.py new/castellan-1.2.2/castellan/options.py
--- old/castellan-0.19.0/castellan/options.py 2018-08-21 22:00:30.000000000 +0200
+++ new/castellan-1.2.2/castellan/options.py 2019-02-28 19:02:40.000000000 +0100
@@ -39,7 +39,9 @@
def set_defaults(conf, backend=None, barbican_endpoint=None,
barbican_api_version=None, auth_endpoint=None,
retry_delay=None, number_of_retries=None, verify_ssl=None,
- api_class=None, vault_root_token_id=None, vault_url=None,
+ api_class=None, vault_root_token_id=None,
+ vault_approle_role_id=None, vault_approle_secret_id=None,
+ vault_kv_mountpoint=None, vault_url=None,
vault_ssl_ca_crt_file=None, vault_use_ssl=None,
barbican_endpoint_type=None):
"""Set defaults for configuration values.
@@ -54,6 +56,10 @@
:param number_of_retries: Use this attribute to set number of retries.
:param verify_ssl: Use this to specify if ssl should be verified.
:param vault_root_token_id: Use this for the root token id for vault.
+ :param vault_approle_role_id: Use this for the approle role_id for vault.
+ :param vault_approle_secret_id: Use this for the approle secret_id
+ for vault.
+ :param vault_kv_mountpoint: Mountpoint of KV store in vault to use.
:param vault_url: Use this for the url for vault.
:param vault_use_ssl: Use this to force vault driver to use ssl.
:param vault_ssl_ca_crt_file: Use this for the CA file for vault.
@@ -98,6 +104,15 @@
if vault_root_token_id is not None:
conf.set_default('root_token_id', vault_root_token_id,
group=vkm.VAULT_OPT_GROUP)
+ if vault_approle_role_id is not None:
+ conf.set_default('approle_role_id', vault_approle_role_id,
+ group=vkm.VAULT_OPT_GROUP)
+ if vault_approle_secret_id is not None:
+ conf.set_default('approle_secret_id', vault_approle_secret_id,
+ group=vkm.VAULT_OPT_GROUP)
+ if vault_kv_mountpoint is not None:
+ conf.set_default('kv_mountpoint', vault_kv_mountpoint,
+ group=vkm.VAULT_OPT_GROUP)
if vault_url is not None:
conf.set_default('vault_url', vault_url,
group=vkm.VAULT_OPT_GROUP)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/castellan/tests/functional/key_manager/test_vault_key_manager.py new/castellan-1.2.2/castellan/tests/functional/key_manager/test_vault_key_manager.py
--- old/castellan-0.19.0/castellan/tests/functional/key_manager/test_vault_key_manager.py 2018-08-21 22:00:30.000000000 +0200
+++ new/castellan-1.2.2/castellan/tests/functional/key_manager/test_vault_key_manager.py 2019-02-28 19:02:40.000000000 +0100
@@ -17,11 +17,13 @@
"""
import abc
import os
+import uuid
from oslo_config import cfg
from oslo_context import context
from oslo_utils import uuidutils
from oslotest import base
+import requests
from testtools import testcase
from castellan.common import exception
@@ -109,3 +111,129 @@
base.BaseTestCase):
def get_context(self):
return context.get_admin_context()
+
+
+TEST_POLICY = '''
+path "{backend}/*" {{
+ capabilities = ["create", "read", "update", "delete", "list"]
+}}
+
+path "sys/internal/ui/mounts/{backend}" {{
+ capabilities = ["read"]
+}}
+'''
+
+AUTH_ENDPOINT = 'v1/sys/auth/{auth_type}'
+POLICY_ENDPOINT = 'v1/sys/policy/{policy_name}'
+APPROLE_ENDPOINT = 'v1/auth/approle/role/{role_name}'
+
+
+class VaultKeyManagerAppRoleTestCase(VaultKeyManagerOSLOContextTestCase):
+
+ mountpoint = 'secret'
+
+ def _create_key_manager(self):
+ key_mgr = vault_key_manager.VaultKeyManager(cfg.CONF)
+
+ if ('VAULT_TEST_URL' not in os.environ or
+ 'VAULT_TEST_ROOT_TOKEN' not in os.environ):
+ raise testcase.TestSkipped('Missing Vault setup information')
+
+ self.root_token_id = os.environ['VAULT_TEST_ROOT_TOKEN']
+ self.vault_url = os.environ['VAULT_TEST_URL']
+
+ test_uuid = str(uuid.uuid4())
+ vault_policy = 'policy-{}'.format(test_uuid)
+ vault_approle = 'approle-{}'.format(test_uuid)
+
+ self.session = requests.Session()
+ self.session.headers.update({'X-Vault-Token': self.root_token_id})
+
+ self._mount_kv(self.mountpoint)
+ self._enable_approle()
+ self._create_policy(vault_policy)
+ self._create_approle(vault_approle, vault_policy)
+
+ key_mgr._approle_role_id, key_mgr._approle_secret_id = (
+ self._retrieve_approle(vault_approle)
+ )
+ key_mgr._kv_mountpoint = self.mountpoint
+ key_mgr._vault_url = self.vault_url
+ return key_mgr
+
+ def _mount_kv(self, vault_mountpoint):
+ backends = self.session.get(
+ '{}/v1/sys/mounts'.format(self.vault_url)).json()
+ if vault_mountpoint not in backends:
+ params = {
+ 'type': 'kv',
+ 'options': {
+ 'version': 2,
+ }
+ }
+ self.session.post(
+ '{}/v1/sys/mounts/{}'.format(self.vault_url,
+ vault_mountpoint),
+ json=params)
+
+ def _enable_approle(self):
+ params = {
+ 'type': 'approle'
+ }
+ self.session.post(
+ '{}/{}'.format(
+ self.vault_url,
+ AUTH_ENDPOINT.format(auth_type='approle')
+ ),
+ json=params,
+ )
+
+ def _create_policy(self, vault_policy):
+ params = {
+ 'rules': TEST_POLICY.format(backend=self.mountpoint),
+ }
+ self.session.put(
+ '{}/{}'.format(
+ self.vault_url,
+ POLICY_ENDPOINT.format(policy_name=vault_policy)
+ ),
+ json=params,
+ )
+
+ def _create_approle(self, vault_approle, vault_policy):
+ params = {
+ 'token_ttl': '60s',
+ 'token_max_ttl': '60s',
+ 'policies': [vault_policy],
+ 'bind_secret_id': 'true',
+ 'bound_cidr_list': '127.0.0.1/32'
+ }
+ self.session.post(
+ '{}/{}'.format(
+ self.vault_url,
+ APPROLE_ENDPOINT.format(role_name=vault_approle)
+ ),
+ json=params,
+ )
+
+ def _retrieve_approle(self, vault_approle):
+ approle_role_id = (
+ self.session.get(
+ '{}/v1/auth/approle/role/{}/role-id'.format(
+ self.vault_url,
+ vault_approle
+ )).json()['data']['role_id']
+ )
+ approle_secret_id = (
+ self.session.post(
+ '{}/v1/auth/approle/role/{}/secret-id'.format(
+ self.vault_url,
+ vault_approle
+ )).json()['data']['secret_id']
+ )
+ return (approle_role_id, approle_secret_id)
+
+
+class VaultKeyManagerAltMountpointTestCase(VaultKeyManagerAppRoleTestCase):
+
+ mountpoint = 'different-secrets'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/castellan/tests/unit/test_config_driver.py new/castellan-1.2.2/castellan/tests/unit/test_config_driver.py
--- old/castellan-0.19.0/castellan/tests/unit/test_config_driver.py 1970-01-01 01:00:00.000000000 +0100
+++ new/castellan-1.2.2/castellan/tests/unit/test_config_driver.py 2019-02-28 19:02:40.000000000 +0100
@@ -0,0 +1,108 @@
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""
+Functional test cases for the Castellan Oslo Config Driver.
+
+Note: This requires local running instance of Vault.
+"""
+import tempfile
+
+from oslo_config import cfg
+from oslo_config import fixture
+
+from oslotest import base
+
+from castellan import _config_driver
+from castellan.common.objects import opaque_data
+from castellan.tests.unit.key_manager import fake
+
+
+class CastellanSourceTestCase(base.BaseTestCase):
+
+ def setUp(self):
+ super(CastellanSourceTestCase, self).setUp()
+ self.driver = _config_driver.CastellanConfigurationSourceDriver()
+ self.conf = cfg.ConfigOpts()
+ self.conf_fixture = self.useFixture(fixture.Config(self.conf))
+
+ def test_incomplete_driver(self):
+ # The group exists, but does not specify the
+ # required options for this driver.
+ self.conf_fixture.load_raw_values(
+ group='incomplete_driver',
+ driver='castellan',
+ )
+ source = self.conf._open_source_from_opt_group('incomplete_driver')
+
+ self.assertIsNone(source)
+ self.assertEqual(self.conf.incomplete_driver.driver, 'castellan')
+
+ def test_complete_driver(self):
+ self.conf_fixture.load_raw_values(
+ group='castellan_source',
+ driver='castellan',
+ config_file='config.conf',
+ mapping_file='mapping.conf',
+ )
+
+ with base.mock.patch.object(
+ _config_driver,
+ 'CastellanConfigurationSource') as source_class:
+ self.driver.open_source_from_opt_group(
+ self.conf, 'castellan_source')
+
+ source_class.assert_called_once_with(
+ 'castellan_source',
+ self.conf.castellan_source.config_file,
+ self.conf.castellan_source.mapping_file)
+
+ def test_fetch_secret(self):
+ # fake KeyManager populated with secret
+ km = fake.fake_api()
+ secret_id = km.store("fake_context",
+ opaque_data.OpaqueData(b"super_secret!"))
+
+ # driver config
+ config = "[key_manager]\nbackend=vault"
+ mapping = "[DEFAULT]\nmy_secret=" + secret_id
+
+ # creating temp files
+ with tempfile.NamedTemporaryFile() as config_file:
+ config_file.write(config.encode("utf-8"))
+ config_file.flush()
+
+ with tempfile.NamedTemporaryFile() as mapping_file:
+ mapping_file.write(mapping.encode("utf-8"))
+ mapping_file.flush()
+
+ self.conf_fixture.load_raw_values(
+ group='castellan_source',
+ driver='castellan',
+ config_file=config_file.name,
+ mapping_file=mapping_file.name,
+ )
+
+ source = self.driver.open_source_from_opt_group(
+ self.conf,
+ 'castellan_source')
+
+ # replacing key_manager with fake one
+ source._mngr = km
+
+ # testing if the source is able to retrieve
+ # the secret value stored in the key_manager
+ # using the secret_id from the mapping file
+ self.assertEqual("super_secret!",
+ source.get("DEFAULT",
+ "my_secret",
+ cfg.StrOpt(""))[0])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/castellan.egg-info/PKG-INFO new/castellan-1.2.2/castellan.egg-info/PKG-INFO
--- old/castellan-0.19.0/castellan.egg-info/PKG-INFO 2018-08-21 22:04:14.000000000 +0200
+++ new/castellan-1.2.2/castellan.egg-info/PKG-INFO 2019-02-28 19:06:34.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: castellan
-Version: 0.19.0
+Version: 1.2.2
Summary: Generic Key Manager interface for OpenStack
Home-page: https://docs.openstack.org/castellan/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: =========
Castellan
@@ -16,6 +16,7 @@
* Documentation: https://docs.openstack.org/castellan/latest
* Source: https://git.openstack.org/cgit/openstack/castellan
* Bugs: https://bugs.launchpad.net/castellan
+ * Release notes: https://docs.openstack.org/releasenotes/castellan
Team and repository tags
========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/castellan.egg-info/SOURCES.txt new/castellan-1.2.2/castellan.egg-info/SOURCES.txt
--- old/castellan-0.19.0/castellan.egg-info/SOURCES.txt 2018-08-21 22:04:15.000000000 +0200
+++ new/castellan-1.2.2/castellan.egg-info/SOURCES.txt 2019-02-28 19:06:34.000000000 +0100
@@ -1,6 +1,6 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
.zuul.yaml
AUTHORS
CONTRIBUTING.rst
@@ -16,6 +16,7 @@
test-requirements.txt
tox.ini
castellan/__init__.py
+castellan/_config_driver.py
castellan/i18n.py
castellan/options.py
castellan.egg-info/PKG-INFO
@@ -63,6 +64,7 @@
castellan/tests/functional/key_manager/test_key_manager.py
castellan/tests/functional/key_manager/test_vault_key_manager.py
castellan/tests/unit/__init__.py
+castellan/tests/unit/test_config_driver.py
castellan/tests/unit/test_options.py
castellan/tests/unit/test_utils.py
castellan/tests/unit/credentials/__init__.py
@@ -100,11 +102,15 @@
playbooks/devstack/run.yaml
releasenotes/notes/add-vault-provider-29a4c19fe67ab51f.yaml
releasenotes/notes/deprecate-auth-endpoint-b91a3e67b5c7263f.yaml
+releasenotes/notes/fix-vault-create-key-b4340a3067cbd93c.yaml
releasenotes/notes/support-legacy-fixed-key-id-9fa897b547111610.yaml
+releasenotes/notes/vault-approle-support-5ea04daea07a152f.yaml
+releasenotes/notes/vault-kv-mountpoint-919eb547764a0c74.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/castellan.egg-info/entry_points.txt new/castellan-1.2.2/castellan.egg-info/entry_points.txt
--- old/castellan-0.19.0/castellan.egg-info/entry_points.txt 2018-08-21 22:04:14.000000000 +0200
+++ new/castellan-1.2.2/castellan.egg-info/entry_points.txt 2019-02-28 19:06:34.000000000 +0100
@@ -2,6 +2,9 @@
barbican = castellan.key_manager.barbican_key_manager:BarbicanKeyManager
vault = castellan.key_manager.vault_key_manager:VaultKeyManager
+[oslo.config.driver]
+castellan = castellan._config_driver:CastellanConfigurationSourceDriver
+
[oslo.config.opts]
castellan.config = castellan.options:list_opts
castellan.tests.functional.config = castellan.tests.functional.config:list_opts
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/castellan.egg-info/pbr.json new/castellan-1.2.2/castellan.egg-info/pbr.json
--- old/castellan-0.19.0/castellan.egg-info/pbr.json 2018-08-21 22:04:14.000000000 +0200
+++ new/castellan-1.2.2/castellan.egg-info/pbr.json 2019-02-28 19:06:34.000000000 +0100
@@ -1 +1 @@
-{"git_version": "a99da51", "is_release": true}
\ No newline at end of file
+{"git_version": "9a34dc9", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/castellan.egg-info/requires.txt new/castellan-1.2.2/castellan.egg-info/requires.txt
--- old/castellan-0.19.0/castellan.egg-info/requires.txt 2018-08-21 22:04:14.000000000 +0200
+++ new/castellan-1.2.2/castellan.egg-info/requires.txt 2019-02-28 19:06:34.000000000 +0100
@@ -2,7 +2,7 @@
Babel!=2.4.0,>=2.3.4
cryptography>=2.1
python-barbicanclient>=4.5.2
-oslo.config>=5.2.0
+oslo.config>=6.4.0
oslo.context>=2.19.2
oslo.i18n>=3.15.3
oslo.log>=3.36.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/lower-constraints.txt new/castellan-1.2.2/lower-constraints.txt
--- old/castellan-0.19.0/lower-constraints.txt 2018-08-21 22:00:55.000000000 +0200
+++ new/castellan-1.2.2/lower-constraints.txt 2019-02-28 19:02:40.000000000 +0100
@@ -33,7 +33,7 @@
netifaces==0.10.4
openstackdocstheme==1.18.1
os-client-config==1.28.0
-oslo.config==5.2.0
+oslo.config==6.4.0
oslo.context==2.19.2
oslo.i18n==3.15.3
oslo.log==3.36.0
@@ -66,7 +66,7 @@
Sphinx==1.6.2
sphinxcontrib-websupport==1.0.1
stevedore==1.20.0
-testrepository==0.0.18
+stestr==2.0.0
testscenarios==0.4
testtools==2.2.0
traceback2==1.4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/releasenotes/notes/fix-vault-create-key-b4340a3067cbd93c.yaml new/castellan-1.2.2/releasenotes/notes/fix-vault-create-key-b4340a3067cbd93c.yaml
--- old/castellan-0.19.0/releasenotes/notes/fix-vault-create-key-b4340a3067cbd93c.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/castellan-1.2.2/releasenotes/notes/fix-vault-create-key-b4340a3067cbd93c.yaml 2019-02-28 19:02:40.000000000 +0100
@@ -0,0 +1,10 @@
+---
+fixes:
+ - |
+ Fixed VaultKeyManager.create_key() to consider the `length` param as bits
+ instead of bytes for the key length. This was causing a discrepancy between
+ keys generated by the HashiCorp Vault backend and the OpenStack Barbican
+ backend. Considering `km` as an instance of a key manager, the following
+ code `km.create_key(ctx, "AES", 256)` was generating a 256 bit AES key when
+ Barbican is configured as the backend, but generating a 2048 bit AES key
+ when Vault was configured as the backend.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/releasenotes/notes/reno.cache new/castellan-1.2.2/releasenotes/notes/reno.cache
--- old/castellan-0.19.0/releasenotes/notes/reno.cache 2018-08-21 22:04:15.000000000 +0200
+++ new/castellan-1.2.2/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/releasenotes/notes/vault-approle-support-5ea04daea07a152f.yaml new/castellan-1.2.2/releasenotes/notes/vault-approle-support-5ea04daea07a152f.yaml
--- old/castellan-0.19.0/releasenotes/notes/vault-approle-support-5ea04daea07a152f.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/castellan-1.2.2/releasenotes/notes/vault-approle-support-5ea04daea07a152f.yaml 2019-02-28 19:02:40.000000000 +0100
@@ -0,0 +1,7 @@
+---
+features:
+ - |
+ Added support for AppRole based authentication to the Vault
+ key manager configured using new approle_role_id and
+ optional approle_secret_id options.
+ (https://www.vaultproject.io/docs/auth/approle.html)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/releasenotes/notes/vault-kv-mountpoint-919eb547764a0c74.yaml new/castellan-1.2.2/releasenotes/notes/vault-kv-mountpoint-919eb547764a0c74.yaml
--- old/castellan-0.19.0/releasenotes/notes/vault-kv-mountpoint-919eb547764a0c74.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/castellan-1.2.2/releasenotes/notes/vault-kv-mountpoint-919eb547764a0c74.yaml 2019-02-28 19:02:40.000000000 +0100
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ Added configuration option to the Vault key manager to allow
+ the KV store mountpoint in Vault to be specified; the existing
+ default of 'secret' is maintained.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/releasenotes/source/index.rst new/castellan-1.2.2/releasenotes/source/index.rst
--- old/castellan-0.19.0/releasenotes/source/index.rst 2018-08-21 22:00:55.000000000 +0200
+++ new/castellan-1.2.2/releasenotes/source/index.rst 2019-02-28 19:02:40.000000000 +0100
@@ -6,5 +6,6 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/releasenotes/source/rocky.rst new/castellan-1.2.2/releasenotes/source/rocky.rst
--- old/castellan-0.19.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/castellan-1.2.2/releasenotes/source/rocky.rst 2019-02-28 19:02:40.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/requirements.txt new/castellan-1.2.2/requirements.txt
--- old/castellan-0.19.0/requirements.txt 2018-08-21 22:00:30.000000000 +0200
+++ new/castellan-1.2.2/requirements.txt 2019-02-28 19:02:40.000000000 +0100
@@ -6,7 +6,7 @@
Babel!=2.4.0,>=2.3.4 # BSD
cryptography>=2.1 # BSD/Apache-2.0
python-barbicanclient>=4.5.2 # Apache-2.0
-oslo.config>=5.2.0 # Apache-2.0
+oslo.config>=6.4.0 # Apache-2.0
oslo.context>=2.19.2 # Apache-2.0
oslo.i18n>=3.15.3 # Apache-2.0
oslo.log>=3.36.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/setup.cfg new/castellan-1.2.2/setup.cfg
--- old/castellan-0.19.0/setup.cfg 2018-08-21 22:04:15.000000000 +0200
+++ new/castellan-1.2.2/setup.cfg 2019-02-28 19:06:34.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/castellan/latest/
classifier =
Environment :: OpenStack
@@ -26,6 +26,8 @@
oslo.config.opts =
castellan.tests.functional.config = castellan.tests.functional.config:list_opts
castellan.config = castellan.options:list_opts
+oslo.config.driver =
+ castellan = castellan._config_driver:CastellanConfigurationSourceDriver
castellan.drivers =
barbican = castellan.key_manager.barbican_key_manager:BarbicanKeyManager
vault = castellan.key_manager.vault_key_manager:VaultKeyManager
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/test-requirements.txt new/castellan-1.2.2/test-requirements.txt
--- old/castellan-0.19.0/test-requirements.txt 2018-08-21 22:00:55.000000000 +0200
+++ new/castellan-1.2.2/test-requirements.txt 2019-02-28 19:02:40.000000000 +0100
@@ -9,7 +9,8 @@
sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
openstackdocstheme>=1.18.1 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
-testrepository>=0.0.18 # Apache-2.0/BSD
+stestr>=2.0.0 # Apache-2.0
+fixtures>=3.0.0 # Apache-2.0/BSD
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
bandit>=1.1.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/tools/setup-vault-env.sh new/castellan-1.2.2/tools/setup-vault-env.sh
--- old/castellan-0.19.0/tools/setup-vault-env.sh 2018-08-21 22:00:30.000000000 +0200
+++ new/castellan-1.2.2/tools/setup-vault-env.sh 2019-02-28 19:02:40.000000000 +0100
@@ -1,7 +1,7 @@
#!/bin/bash
set -eux
if [ -z "$(which vault)" ]; then
- VAULT_VERSION=0.7.3
+ VAULT_VERSION=0.10.4
SUFFIX=zip
case `uname -s` in
Darwin)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/castellan-0.19.0/tox.ini new/castellan-1.2.2/tox.ini
--- old/castellan-0.19.0/tox.ini 2018-08-21 22:00:55.000000000 +0200
+++ new/castellan-1.2.2/tox.ini 2019-02-28 19:02:40.000000000 +0100
@@ -1,30 +1,31 @@
[tox]
-minversion = 1.6
-envlist = py35,py27,pep8
+minversion = 2.0
+envlist = py36,py27,pep8
skipsdist = True
[testenv]
-basepython = python3
usedevelop = True
install_command = pip install {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./castellan/tests/unit
deps =
- -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+ -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
[testenv:py27]
basepython = python2.7
[testenv:pep8]
+basepython = python3
commands =
flake8
bandit -r castellan -x tests -s B105,B106,B107,B607
[testenv:bandit]
+basepython = python3
# This command runs the bandit security linter against the castellan
# codebase minus the tests directory. Some tests are being excluded to
# reduce the number of positives before a team inspection, and to ensure a
@@ -37,20 +38,30 @@
bandit -r castellan -x tests -s B105,B106,B107,B607
[testenv:venv]
+basepython = python3
commands = {posargs}
[testenv:debug]
+basepython = python3
commands = oslo_debug_helper {posargs}
[testenv:cover]
+basepython = python3
+setenv =
+ PYTHON=coverage run --source $project --parallel-mode
commands =
- python setup.py testr --coverage --testr-args='{posargs}'
- coverage report
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
+ coverage report
[testenv:docs]
+basepython = python3
commands = python setup.py build_sphinx
[testenv:releasenotes]
+basepython = python3
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:functional]
@@ -59,7 +70,7 @@
setenv =
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./castellan/tests/functional
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+commands = stestr run --slowest {posargs}
[testenv:functional-vault]
passenv = HOME
@@ -69,9 +80,10 @@
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./castellan/tests/functional
commands =
- {toxinidir}/tools/setup-vault-env.sh pifpaf -e VAULT_TEST run vault -- python setup.py testr --slowest --testr-args='{posargs}'
+ {toxinidir}/tools/setup-vault-env.sh pifpaf -e VAULT_TEST run vault -- stestr run --slowest {posargs}
[testenv:genconfig]
+basepython = python3
commands =
oslo-config-generator --config-file=etc/castellan/functional-config-generator.conf
oslo-config-generator --config-file=etc/castellan/sample-config-generator.conf
@@ -87,6 +99,7 @@
import_exceptions = castellan.i18n
[testenv:lower-constraints]
+basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
1
0
Hello community,
here is the log from the commit of package python-barbicanclient for openSUSE:Factory checked in at 2019-05-03 22:39:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-barbicanclient (Old)
and /work/SRC/openSUSE:Factory/.python-barbicanclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-barbicanclient"
Fri May 3 22:39:54 2019 rev:11 rq:692816 version:4.8.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-barbicanclient/python-barbicanclient.changes 2019-02-26 22:18:51.310140955 +0100
+++ /work/SRC/openSUSE:Factory/.python-barbicanclient.new.5148/python-barbicanclient.changes 2019-05-03 22:39:58.822932747 +0200
@@ -1,0 +2,18 @@
+Mon Apr 8 12:34:23 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 4.8.1
+ - Update mailinglist from dev to discuss
+ - Add Python 3.6 classifier to setup.cfg
+ - Allow fetching by UUID, and respect interface
+ - Change openstack-dev to openstack-discuss
+ - Secret payload should also be fetched by UUID
+ - Update hacking version
+ - Import python-barbicanclient-dsvm
+ - Update min tox version to 2.0
+ - Don't quote {posargs} in tox.ini
+ - switch documentation job to new PTI
+ - add python 3.6 unit test job
+ - Use template for lower-constraints
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
python-barbicanclient-4.7.2.tar.gz
New:
----
python-barbicanclient-4.8.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-barbicanclient.spec ++++++
--- /var/tmp/diff_new_pack.p9hKTd/_old 2019-05-03 22:39:59.246933628 +0200
+++ /var/tmp/diff_new_pack.p9hKTd/_new 2019-05-03 22:39:59.250933636 +0200
@@ -17,13 +17,13 @@
Name: python-barbicanclient
-Version: 4.7.2
+Version: 4.8.1
Release: 0
Summary: Client for the Barbican Key Management API
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/python-barbicanclient
-Source0: https://files.pythonhosted.org/packages/source/p/python-barbicanclient/pyth…
+Source0: https://files.pythonhosted.org/packages/source/p/python-barbicanclient/pyth…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-cliff >= 2.8.0
@@ -91,7 +91,6 @@
%prep
%autosetup -p1 -n %{name}-%{version}
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
# Remove the sphinx-build leftovers
rm -rf html/.{doctrees,buildinfo}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.p9hKTd/_old 2019-05-03 22:39:59.266933669 +0200
+++ /var/tmp/diff_new_pack.p9hKTd/_new 2019-05-03 22:39:59.270933678 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-barbicanclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-barbicanclient/stable/ro…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-barbicanclient/stable/st…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-barbicanclient</param>
</service>
++++++ python-barbicanclient-4.7.2.tar.gz -> python-barbicanclient-4.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-barbicanclient-4.7.2/.zuul.yaml new/python-barbicanclient-4.8.1/.zuul.yaml
--- old/python-barbicanclient-4.7.2/.zuul.yaml 2019-01-24 00:13:16.000000000 +0100
+++ new/python-barbicanclient-4.8.1/.zuul.yaml 2019-01-21 21:18:56.000000000 +0100
@@ -12,16 +12,16 @@
- project:
templates:
+ - check-requirements
+ - openstack-lower-constraints-jobs
- openstack-python-jobs
- openstack-python35-jobs
- - publish-openstack-sphinx-docs
- - check-requirements
+ - openstack-python36-jobs
- openstackclient-plugin-jobs
+ - publish-openstack-docs-pti
check:
jobs:
- - openstack-tox-lower-constraints
- python-barbicanclient-dsvm
gate:
jobs:
- - openstack-tox-lower-constraints
- python-barbicanclient-dsvm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-barbicanclient-4.7.2/AUTHORS new/python-barbicanclient-4.8.1/AUTHORS
--- old/python-barbicanclient-4.7.2/AUTHORS 2019-01-24 00:15:10.000000000 +0100
+++ new/python-barbicanclient-4.8.1/AUTHORS 2019-01-21 21:20:54.000000000 +0100
@@ -1,3 +1,4 @@
+98k <18552437190(a)163.com>
Adam Harwell <flux.adam(a)gmail.com>
Ade Lee <alee(a)redhat.com>
Alex Gaynor <alex.gaynor(a)gmail.com>
@@ -55,7 +56,6 @@
Nguyen Hai <nguyentrihai93(a)gmail.com>
Oleksii Chuprykov <ochuprykov(a)mirantis.com>
Ondřej Nový <ondrej.novy(a)firma.seznam.cz>
-OpenStack Release Bot <infra-root(a)openstack.org>
Paul Kehrer <paul.l.kehrer(a)gmail.com>
Petr Kovar <pkovar(a)redhat.com>
Richard Lee <rblee88(a)gmail.com>
@@ -74,18 +74,23 @@
Tony Breeds <tony(a)bakeyournoodle.com>
Tony Xu <hhktony(a)gmail.com>
Van Hung Pham <hungpv(a)vn.fujitsu.com>
+Vieri <15050873171(a)163.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
Wyllys Ingersoll <wyllys.ingersoll(a)evault.com>
Yushiro FURUKAWA <y.furukawa_2(a)jp.fujitsu.com>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
+ZhijunWei <wzj334965317(a)outlook.com>
chadlung <chad.lung(a)gmail.com>
+chenlx <chenlx(a)fiberhome.com>
chenxing <chen.xing(a)99cloud.net>
hongzhezheng <zheng.hongzhe32(a)zte.com.cn>
+huang.zhiping <huang.zhiping(a)99cloud.net>
huangshan <huangshan(a)fiberhome.com>
ji-xuepeng <ji.xuepeng(a)zte.com.cn>
lingyongxu <lyxu(a)fiberhome.com>
liujiong <liujiong(a)gohighsec.com>
melissaml <ma.lei(a)99cloud.net>
+qingszhao <zhao.daqing(a)99cloud.net>
rajat29 <rajat.sharma(a)nectechnologies.in>
reedip <reedip.banerjee(a)nectechnologies.in>
rico.lin <rico.lin.guanyu(a)gmail.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-barbicanclient-4.7.2/ChangeLog new/python-barbicanclient-4.8.1/ChangeLog
--- old/python-barbicanclient-4.7.2/ChangeLog 2019-01-24 00:15:10.000000000 +0100
+++ new/python-barbicanclient-4.8.1/ChangeLog 2019-01-21 21:20:54.000000000 +0100
@@ -1,19 +1,27 @@
CHANGES
=======
-4.7.2
+4.8.1
-----
+* Update hacking version
* Secret payload should also be fetched by UUID
+* Use template for lower-constraints
+* Update mailinglist from dev to discuss
+* Change openstack-dev to openstack-discuss
+* Add Python 3.6 classifier to setup.cfg
+* add python 3.6 unit test job
+* Update min tox version to 2.0
-4.7.1
+4.8.0
-----
+* Don't quote {posargs} in tox.ini
* Allow fetching by UUID, and respect interface
* Import python-barbicanclient-dsvm
+* add python 3.6 unit test job
+* switch documentation job to new PTI
* import zuul job settings from project-config
-* Update UPPER\_CONSTRAINTS\_FILE for stable/rocky
-* Update .gitreview for stable/rocky
4.7.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-barbicanclient-4.7.2/PKG-INFO new/python-barbicanclient-4.8.1/PKG-INFO
--- old/python-barbicanclient-4.7.2/PKG-INFO 2019-01-24 00:15:10.000000000 +0100
+++ new/python-barbicanclient-4.8.1/PKG-INFO 2019-01-21 21:20:55.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-barbicanclient
-Version: 4.7.2
+Version: 4.8.1
Summary: Client Library for OpenStack Barbican Key Management API
Home-page: https://docs.openstack.org/python-barbicanclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: python-barbicanclient
=====================
@@ -231,3 +231,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-barbicanclient-4.7.2/python_barbicanclient.egg-info/PKG-INFO new/python-barbicanclient-4.8.1/python_barbicanclient.egg-info/PKG-INFO
--- old/python-barbicanclient-4.7.2/python_barbicanclient.egg-info/PKG-INFO 2019-01-24 00:15:10.000000000 +0100
+++ new/python-barbicanclient-4.8.1/python_barbicanclient.egg-info/PKG-INFO 2019-01-21 21:20:54.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: python-barbicanclient
-Version: 4.7.2
+Version: 4.8.1
Summary: Client Library for OpenStack Barbican Key Management API
Home-page: https://docs.openstack.org/python-barbicanclient/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: python-barbicanclient
=====================
@@ -231,3 +231,4 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-barbicanclient-4.7.2/python_barbicanclient.egg-info/pbr.json new/python-barbicanclient-4.8.1/python_barbicanclient.egg-info/pbr.json
--- old/python-barbicanclient-4.7.2/python_barbicanclient.egg-info/pbr.json 2019-01-24 00:15:10.000000000 +0100
+++ new/python-barbicanclient-4.8.1/python_barbicanclient.egg-info/pbr.json 2019-01-21 21:20:54.000000000 +0100
@@ -1 +1 @@
-{"git_version": "f14511d", "is_release": true}
\ No newline at end of file
+{"git_version": "1b28235", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-barbicanclient-4.7.2/setup.cfg new/python-barbicanclient-4.8.1/setup.cfg
--- old/python-barbicanclient-4.7.2/setup.cfg 2019-01-24 00:15:10.000000000 +0100
+++ new/python-barbicanclient-4.8.1/setup.cfg 2019-01-21 21:20:55.000000000 +0100
@@ -4,7 +4,7 @@
description-file =
README.rst
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/python-barbicanclient/latest/
classifier =
Environment :: OpenStack
@@ -17,6 +17,7 @@
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-barbicanclient-4.7.2/test-requirements.txt new/python-barbicanclient-4.8.1/test-requirements.txt
--- old/python-barbicanclient-4.7.2/test-requirements.txt 2019-01-24 00:13:16.000000000 +0100
+++ new/python-barbicanclient-4.8.1/test-requirements.txt 2019-01-21 21:18:56.000000000 +0100
@@ -2,7 +2,7 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
coverage!=4.4,>=4.0 # Apache-2.0
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0,<1.2.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
requests-mock>=1.2.0 # Apache-2.0
mock>=2.0.0 # BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-barbicanclient-4.7.2/tox.ini new/python-barbicanclient-4.8.1/tox.ini
--- old/python-barbicanclient-4.7.2/tox.ini 2019-01-24 00:13:16.000000000 +0100
+++ new/python-barbicanclient-4.8.1/tox.ini 2019-01-21 21:18:56.000000000 +0100
@@ -1,6 +1,6 @@
[tox]
-minversion = 1.6
-envlist = py35,py27,pep8
+minversion = 2.0
+envlist = py35,py36,py27,pep8
skipsdist = True
[testenv]
@@ -10,14 +10,14 @@
PYTHON=coverage run --source barbicanclient --parallel-mode
VIRTUAL_ENV={envdir}
deps =
- -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+ -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
rm -f .testrepository/times.dbm
coverage erase
- stestr run '{posargs}'
+ stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
@@ -39,7 +39,7 @@
[testenv:docs]
basepython = python3
deps =
- -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky}
+ -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -b html doc/source doc/build/html
1
0
Hello community,
here is the log from the commit of package python-automaton for openSUSE:Factory checked in at 2019-05-03 22:39:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-automaton (Old)
and /work/SRC/openSUSE:Factory/.python-automaton.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-automaton"
Fri May 3 22:39:50 2019 rev:13 rq:692815 version:1.16.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-automaton/python-automaton.changes 2018-09-26 14:22:48.737980010 +0200
+++ /work/SRC/openSUSE:Factory/.python-automaton.new.5148/python-automaton.changes 2019-05-03 22:39:53.146920957 +0200
@@ -1,0 +2,11 @@
+Mon Apr 8 13:58:02 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.16.0
+ - add lib-forward-testing-python3 test job
+ - Change openstack-dev to openstack-discuss
+ - Update reno for stable/rocky
+ - Use template for lower-constraints
+ - add python 3.6 unit test job
+ - import zuul job settings from project-config
+
+-------------------------------------------------------------------
Old:
----
automaton-1.15.0.tar.gz
New:
----
automaton-1.16.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-automaton.spec ++++++
--- /var/tmp/diff_new_pack.489Y61/_old 2019-05-03 22:39:53.602921904 +0200
+++ /var/tmp/diff_new_pack.489Y61/_new 2019-05-03 22:39:53.606921913 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-automaton
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,39 +12,34 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-automaton
-Version: 1.15.0
+Version: 1.16.0
Release: 0
Summary: Friendly state machines for python
License: Apache-2.0
Group: Development/Languages/Python
URL: https://launchpad.net/automaton
-Source0: https://files.pythonhosted.org/packages/source/a/automaton/automaton-1.15.0…
+Source0: https://files.pythonhosted.org/packages/source/a/automaton/automaton-1.16.0…
BuildRequires: openstack-macros
BuildRequires: python-devel
BuildRequires: python2-PrettyTable >= 0.7.2
-BuildRequires: python2-debtcollector
-BuildRequires: python2-oslosphinx
BuildRequires: python2-oslotest
BuildRequires: python2-pbr >= 2.0.0
BuildRequires: python2-stestr
BuildRequires: python2-testscenarios
BuildRequires: python2-testtools
BuildRequires: python3-PrettyTable >= 0.7.2
-BuildRequires: python3-debtcollector
BuildRequires: python3-devel
-BuildRequires: python3-oslosphinx
BuildRequires: python3-oslotest
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-stestr
BuildRequires: python3-testscenarios
BuildRequires: python3-testtools
Requires: python-PrettyTable >= 0.7.2
-Requires: python-debtcollector
Requires: python-pbr >= 2.0.0
Requires: python-six >= 1.10.0
BuildArch: noarch
@@ -63,9 +58,8 @@
Documentation for the Automaton library.
%prep
-%autosetup -p1 -n automaton-1.15.0
+%autosetup -p1 -n automaton-1.16.0
%py_req_cleanup
-sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{python_build}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.489Y61/_old 2019-05-03 22:39:53.630921962 +0200
+++ /var/tmp/diff_new_pack.489Y61/_new 2019-05-03 22:39:53.630921962 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-automaton.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/automaton/stable/rocky/requirem…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/automaton/stable/stein/requirem…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,automaton</param>
</service>
++++++ automaton-1.15.0.tar.gz -> automaton-1.16.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/.zuul.yaml new/automaton-1.16.0/.zuul.yaml
--- old/automaton-1.15.0/.zuul.yaml 2018-07-20 03:07:20.000000000 +0200
+++ new/automaton-1.16.0/.zuul.yaml 2019-03-01 19:45:52.000000000 +0100
@@ -1,7 +1,12 @@
- project:
- check:
- jobs:
- - openstack-tox-lower-constraints
- gate:
- jobs:
- - openstack-tox-lower-constraints
+ templates:
+ - check-requirements
+ - lib-forward-testing
+ - lib-forward-testing-python3
+ - openstack-lower-constraints-jobs
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - periodic-stable-jobs
+ - publish-openstack-docs-pti
+ - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/AUTHORS new/automaton-1.16.0/AUTHORS
--- old/automaton-1.15.0/AUTHORS 2018-07-20 03:12:56.000000000 +0200
+++ new/automaton-1.16.0/AUTHORS 2019-03-01 19:47:56.000000000 +0100
@@ -15,8 +15,8 @@
Tom Cocozzello <tjcocozz(a)us.ibm.com>
Tony Breeds <tony(a)bakeyournoodle.com>
Vu Cong Tuan <tuanvc(a)vn.fujitsu.com>
-Zuul <zuul(a)review.openstack.org>
gecong1973 <ge.cong(a)zte.com.cn>
+kangyufei <kangyf(a)inspur.com>
melissaml <ma.lei(a)99cloud.net>
nizam <abdul.nizamuddin(a)nectechnologies.in>
sonu.kumar <sonu.kumar(a)nectechnologies.in>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/CONTRIBUTING.rst new/automaton-1.16.0/CONTRIBUTING.rst
--- old/automaton-1.15.0/CONTRIBUTING.rst 2018-07-20 03:07:20.000000000 +0200
+++ new/automaton-1.16.0/CONTRIBUTING.rst 2019-03-01 19:45:52.000000000 +0100
@@ -22,7 +22,7 @@
The mailing list is (prefix subjects with "[Oslo][Automaton]"):
- http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
+ http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss
Questions and discussions take place in #openstack-state-management on
irc.freenode.net.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/ChangeLog new/automaton-1.16.0/ChangeLog
--- old/automaton-1.15.0/ChangeLog 2018-07-20 03:12:56.000000000 +0200
+++ new/automaton-1.16.0/ChangeLog 2019-03-01 19:47:56.000000000 +0100
@@ -1,6 +1,17 @@
CHANGES
=======
+1.16.0
+------
+
+* Use template for lower-constraints
+* Change openstack-dev to openstack-discuss
+* Change openstack-dev to openstack-discuss
+* add lib-forward-testing-python3 test job
+* add python 3.6 unit test job
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+
1.15.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/PKG-INFO new/automaton-1.16.0/PKG-INFO
--- old/automaton-1.15.0/PKG-INFO 2018-07-20 03:12:57.000000000 +0200
+++ new/automaton-1.16.0/PKG-INFO 2019-03-01 19:47:56.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: automaton
-Version: 1.15.0
+Version: 1.16.0
Summary: Friendly state machines for python.
Home-page: https://docs.openstack.org/automaton/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: =========
Automaton
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/RELEASENOTES.rst new/automaton-1.16.0/RELEASENOTES.rst
--- old/automaton-1.15.0/RELEASENOTES.rst 2018-07-20 03:12:57.000000000 +0200
+++ new/automaton-1.16.0/RELEASENOTES.rst 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-=========
-automaton
-=========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/automaton.egg-info/PKG-INFO new/automaton-1.16.0/automaton.egg-info/PKG-INFO
--- old/automaton-1.15.0/automaton.egg-info/PKG-INFO 2018-07-20 03:12:56.000000000 +0200
+++ new/automaton-1.16.0/automaton.egg-info/PKG-INFO 2019-03-01 19:47:56.000000000 +0100
@@ -1,10 +1,10 @@
Metadata-Version: 1.1
Name: automaton
-Version: 1.15.0
+Version: 1.16.0
Summary: Friendly state machines for python.
Home-page: https://docs.openstack.org/automaton/latest/
Author: OpenStack
-Author-email: openstack-dev(a)lists.openstack.org
+Author-email: openstack-discuss(a)lists.openstack.org
License: UNKNOWN
Description: =========
Automaton
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/automaton.egg-info/SOURCES.txt new/automaton-1.16.0/automaton.egg-info/SOURCES.txt
--- old/automaton-1.15.0/automaton.egg-info/SOURCES.txt 2018-07-20 03:12:57.000000000 +0200
+++ new/automaton-1.16.0/automaton.egg-info/SOURCES.txt 2019-03-01 19:47:56.000000000 +0100
@@ -45,6 +45,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/automaton.egg-info/pbr.json new/automaton-1.16.0/automaton.egg-info/pbr.json
--- old/automaton-1.15.0/automaton.egg-info/pbr.json 2018-07-20 03:12:56.000000000 +0200
+++ new/automaton-1.16.0/automaton.egg-info/pbr.json 2019-03-01 19:47:56.000000000 +0100
@@ -1 +1 @@
-{"git_version": "ce03d76", "is_release": true}
\ No newline at end of file
+{"git_version": "0e9634c", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/releasenotes/notes/reno.cache new/automaton-1.16.0/releasenotes/notes/reno.cache
--- old/automaton-1.15.0/releasenotes/notes/reno.cache 2018-07-20 03:12:57.000000000 +0200
+++ new/automaton-1.16.0/releasenotes/notes/reno.cache 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
----
-file-contents: {}
-notes: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/releasenotes/source/index.rst new/automaton-1.16.0/releasenotes/source/index.rst
--- old/automaton-1.15.0/releasenotes/source/index.rst 2018-07-20 03:07:20.000000000 +0200
+++ new/automaton-1.16.0/releasenotes/source/index.rst 2019-03-01 19:45:52.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/releasenotes/source/rocky.rst new/automaton-1.16.0/releasenotes/source/rocky.rst
--- old/automaton-1.15.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/automaton-1.16.0/releasenotes/source/rocky.rst 2019-03-01 19:45:52.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/automaton-1.15.0/setup.cfg new/automaton-1.16.0/setup.cfg
--- old/automaton-1.15.0/setup.cfg 2018-07-20 03:12:57.000000000 +0200
+++ new/automaton-1.16.0/setup.cfg 2019-03-01 19:47:56.000000000 +0100
@@ -2,7 +2,7 @@
name = automaton
summary = Friendly state machines for python.
author = OpenStack
-author-email = openstack-dev(a)lists.openstack.org
+author-email = openstack-discuss(a)lists.openstack.org
home-page = https://docs.openstack.org/automaton/latest/
description-file =
README.rst
1
0
Hello community,
here is the log from the commit of package python-aodhclient for openSUSE:Factory checked in at 2019-05-03 22:39:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-aodhclient (Old)
and /work/SRC/openSUSE:Factory/.python-aodhclient.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-aodhclient"
Fri May 3 22:39:44 2019 rev:7 rq:692814 version:1.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-aodhclient/python-aodhclient.changes 2018-09-07 15:36:51.838700671 +0200
+++ /work/SRC/openSUSE:Factory/.python-aodhclient.new.5148/python-aodhclient.changes 2019-05-03 22:39:50.350915149 +0200
@@ -1,0 +2,15 @@
+Mon Apr 8 12:36:24 UTC 2019 - cloud-devel(a)suse.de
+
+- update to version 1.2.0
+ - fix tox python3 overrides
+ - switch documentation job to new PTI
+ - Add metavar for alarm_id in alarm-history show
+ - Add gating on py37
+ - Update reno for stable/rocky
+ - Consider interface and region options with OSC
+ - fix warnings in documentation build
+ - add python 3.6 unit test job
+ - import zuul job settings from project-config
+ - Add Python 3.6 classifier to setup.cfg
+
+-------------------------------------------------------------------
Old:
----
aodhclient-1.1.0.tar.gz
New:
----
aodhclient-1.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-aodhclient.spec ++++++
--- /var/tmp/diff_new_pack.kGM3bD/_old 2019-05-03 22:39:50.934916362 +0200
+++ /var/tmp/diff_new_pack.kGM3bD/_new 2019-05-03 22:39:50.934916362 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-aodhclient
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,13 +12,13 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global sname aodhclient
Name: python-aodhclient
-Version: 1.1.0
+Version: 1.2.0
Release: 0
Summary: Python client library for Aodh
License: Apache-2.0
@@ -27,9 +27,7 @@
Source0: https://files.pythonhosted.org/packages/source/a/%{sname}/%{sname}-%{versio…
BuildRequires: openstack-macros
BuildRequires: python-cliff >= 1.14.0
-BuildRequires: python-devel
BuildRequires: python-keystoneauth1 >= 1.0.0
-BuildRequires: python-openstackdocstheme
BuildRequires: python-oslo.serialization >= 1.4.0
BuildRequires: python-oslo.utils >= 2.0.0
BuildRequires: python-oslotest
@@ -60,7 +58,7 @@
Summary: Documentation for OpenStack Aodh API Client
Group: Documentation/HTML
BuildRequires: python-Sphinx
-BuildRequires: python-oslosphinx
+BuildRequires: python-openstackdocstheme
%description doc
This is a client library for Aodh built on the Aodh API. It
@@ -80,7 +78,7 @@
PBR_VERSION=%{version} sphinx-build -b html doc/source doc/build/html
# Fix hidden-file-or-dir warnings
-rm -rf html/.doctrees html/.buildinfo
+rm -r doc/build/html/.{doctrees,buildinfo}
%check
# FIXME: only run unittests for now.
++++++ _service ++++++
--- /var/tmp/diff_new_pack.kGM3bD/_old 2019-05-03 22:39:50.954916404 +0200
+++ /var/tmp/diff_new_pack.kGM3bD/_new 2019-05-03 22:39:50.954916404 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/stein/open…</param>
<param name="output-name">python-aodhclient.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/python-aodhclient/stable/rocky/…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/python-aodhclient/stable/stein/…</param>
<param name="changelog-email">cloud-devel(a)suse.de</param>
<param name="changelog-provider">gh,openstack,python-aodhclient</param>
</service>
++++++ aodhclient-1.1.0.tar.gz -> aodhclient-1.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/.zuul.yaml new/aodhclient-1.2.0/.zuul.yaml
--- old/aodhclient-1.1.0/.zuul.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/aodhclient-1.2.0/.zuul.yaml 2019-03-08 21:15:01.000000000 +0100
@@ -0,0 +1,14 @@
+- project:
+ templates:
+ - openstack-python-jobs
+ - openstack-python35-jobs
+ - openstack-python36-jobs
+ - publish-openstack-docs-pti
+ - openstackclient-plugin-jobs
+ check:
+ jobs:
+ - telemetry-tox-py37
+ gate:
+ jobs:
+ - telemetry-tox-py37
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/AUTHORS new/aodhclient-1.2.0/AUTHORS
--- old/aodhclient-1.1.0/AUTHORS 2018-06-18 14:40:38.000000000 +0200
+++ new/aodhclient-1.2.0/AUTHORS 2019-03-08 21:16:07.000000000 +0100
@@ -1,6 +1,7 @@
Andreas Jaeger <aj(a)suse.com>
Cao Xuan Hoang <hoangcx(a)vn.fujitsu.com>
Chaozhe.Chen <chaozhe.chen(a)easystack.cn>
+David Rabel <rabel(a)b1-systems.de>
Doug Hellmann <doug(a)doughellmann.com>
Eyal <eyal.bar-ilan(a)nokia.com>
Hanxi Liu <hanxi.liu(a)easystack.cn>
@@ -8,6 +9,7 @@
Julien Danjou <julien(a)danjou.info>
KATO Tomoyuki <kato.tomoyuki(a)jp.fujitsu.com>
Kevin_Zheng <zhengzhenyu(a)huawei.com>
+Matthias Bastian <bastian(a)strato.de>
Mehdi ABAAKOUK <sileht(a)sileht.net>
Mehdi Abaakouk <sileht(a)redhat.com>
Mehdi Abaakouk <sileht(a)sileht.net>
@@ -25,13 +27,13 @@
Zhao Lei <zhaolei(a)cn.fujitsu.com>
ZhiQiang Fan <aji.zqfan(a)gmail.com>
Zi Lian Ji <jizilian(a)cn.ibm.com>
-Zuul <zuul(a)review.openstack.org>
gord chung <gord(a)live.ca>
gordon chung <gord(a)live.ca>
houweichao <houwch(a)gohighsec.com>
lipan <lipan7195(a)fiberhome.com>
liusheng <liusheng(a)huawei.com>
liyuanzhen <li.yuanzhen(a)zte.com.cn>
+qingszhao <zhao.daqing(a)99cloud.net>
rajat29 <rajat.sharma(a)nectechnologies.in>
venkatamahesh <venkatamaheshkotha(a)gmail.com>
xialinjuan <ljxiash(a)cn.ibm.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/ChangeLog new/aodhclient-1.2.0/ChangeLog
--- old/aodhclient-1.1.0/ChangeLog 2018-06-18 14:40:38.000000000 +0200
+++ new/aodhclient-1.2.0/ChangeLog 2019-03-08 21:16:07.000000000 +0100
@@ -1,10 +1,28 @@
CHANGES
=======
+1.2.0
+-----
+
+* Add Python 3.6 classifier to setup.cfg
+* Add metavar for alarm\_id in alarm-history show
+* add python 3.6 unit test job
+* switch documentation job to new PTI
+* import zuul job settings from project-config
+* Update reno for stable/rocky
+* Add gating on py37
+
+1.1.1
+-----
+
+* Consider interface and region options with OSC
+
1.1.0
-----
* Fixup README
+* fix tox python3 overrides
+* fix warnings in documentation build
* cli: replace metrics by metric
* Follow the new PTI for document build
* Not able to set threshold value to ‘0’ in aodh alarm creation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/PKG-INFO new/aodhclient-1.2.0/PKG-INFO
--- old/aodhclient-1.1.0/PKG-INFO 2018-06-18 14:40:39.000000000 +0200
+++ new/aodhclient-1.2.0/PKG-INFO 2019-03-08 21:16:07.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: aodhclient
-Version: 1.1.0
+Version: 1.2.0
Summary: Python client library for Aodh
Home-page: https://docs.openstack.org/python-aodhclient/latest/
Author: OpenStack
@@ -36,4 +36,5 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/aodhclient/osc.py new/aodhclient-1.2.0/aodhclient/osc.py
--- old/aodhclient-1.1.0/aodhclient/osc.py 2018-06-18 14:37:32.000000000 +0200
+++ new/aodhclient-1.2.0/aodhclient/osc.py 2019-03-08 21:15:01.000000000 +0100
@@ -39,7 +39,9 @@
API_VERSIONS)
# NOTE(sileht): ensure setup of the session is done
instance.setup_auth()
- return aodh_client(session=instance.session)
+ return aodh_client(session=instance.session,
+ interface=instance.interface,
+ region_name=instance.region_name)
def build_option_parser(parser):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/aodhclient/v2/alarm_history_cli.py new/aodhclient-1.2.0/aodhclient/v2/alarm_history_cli.py
--- old/aodhclient-1.1.0/aodhclient/v2/alarm_history_cli.py 2018-06-18 14:37:32.000000000 +0200
+++ new/aodhclient-1.2.0/aodhclient/v2/alarm_history_cli.py 2019-03-08 21:15:01.000000000 +0100
@@ -46,7 +46,8 @@
def get_parser(self, prog_name):
parser = super(CliAlarmHistoryShow, self).get_parser(prog_name)
- parser.add_argument("alarm_id", help="ID of an alarm")
+ parser.add_argument("alarm_id", metavar="<alarm-id>",
+ help="ID of an alarm")
parser.add_argument("--limit", type=int, metavar="<LIMIT>",
help="Number of resources to return "
"(Default is server default)")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/aodhclient.egg-info/PKG-INFO new/aodhclient-1.2.0/aodhclient.egg-info/PKG-INFO
--- old/aodhclient-1.1.0/aodhclient.egg-info/PKG-INFO 2018-06-18 14:40:38.000000000 +0200
+++ new/aodhclient-1.2.0/aodhclient.egg-info/PKG-INFO 2019-03-08 21:16:07.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: aodhclient
-Version: 1.1.0
+Version: 1.2.0
Summary: Python client library for Aodh
Home-page: https://docs.openstack.org/python-aodhclient/latest/
Author: OpenStack
@@ -36,4 +36,5 @@
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/aodhclient.egg-info/SOURCES.txt new/aodhclient-1.2.0/aodhclient.egg-info/SOURCES.txt
--- old/aodhclient-1.1.0/aodhclient.egg-info/SOURCES.txt 2018-06-18 14:40:39.000000000 +0200
+++ new/aodhclient-1.2.0/aodhclient.egg-info/SOURCES.txt 2019-03-08 21:16:07.000000000 +0100
@@ -1,5 +1,6 @@
.coveragerc
.testr.conf
+.zuul.yaml
AUTHORS
CONTRIBUTING.rst
ChangeLog
@@ -7,6 +8,7 @@
LICENSE
README.rst
babel.cfg
+bindep.txt
requirements.txt
setup.cfg
setup.py
@@ -70,6 +72,7 @@
releasenotes/source/ocata.rst
releasenotes/source/pike.rst
releasenotes/source/queens.rst
+releasenotes/source/rocky.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/aodhclient.egg-info/pbr.json new/aodhclient-1.2.0/aodhclient.egg-info/pbr.json
--- old/aodhclient-1.1.0/aodhclient.egg-info/pbr.json 2018-06-18 14:40:38.000000000 +0200
+++ new/aodhclient-1.2.0/aodhclient.egg-info/pbr.json 2019-03-08 21:16:07.000000000 +0100
@@ -1 +1 @@
-{"git_version": "6d1ad0f", "is_release": true}
\ No newline at end of file
+{"git_version": "6d03e61", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/bindep.txt new/aodhclient-1.2.0/bindep.txt
--- old/aodhclient-1.1.0/bindep.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/aodhclient-1.2.0/bindep.txt 2019-03-08 21:15:01.000000000 +0100
@@ -0,0 +1,7 @@
+mysql-server [test platform:dpkg]
+postgresql [test]
+postgresql-client [test platform:dpkg]
+postgresql-devel [test platform:rpm]
+postgresql-server [test platform:rpm]
+libpq-dev [test platform:dpkg]
+python37 [platform:rpm py37]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/doc/source/shell.rst new/aodhclient-1.2.0/doc/source/shell.rst
--- old/aodhclient-1.1.0/doc/source/shell.rst 2018-06-18 14:37:51.000000000 +0200
+++ new/aodhclient-1.2.0/doc/source/shell.rst 2019-03-08 21:15:01.000000000 +0100
@@ -8,8 +8,8 @@
from the command line. It supports the entirety of the Aodh API.
You'll need to provide :program:`aodh` with your OpenStack credentials.
-You can do this with the :option:`--os-username`, :option:`--os-password`,
-:option:`--os-tenant-id` and :option:`--os-auth-url` options, but it's easier to
+You can do this with the ``--os-username``, ``--os-password``,
+``--os-tenant-id`` and ``--os-auth-url`` options, but it's easier to
just set them as environment variables:
.. envvar:: OS_USERNAME
@@ -37,7 +37,7 @@
The command line tool will attempt to reauthenticate using your provided credentials
for every request. You can override this behavior by manually supplying an auth
-token using :option:`--aodh-endpoint` and :option:`--os-auth-token`. You can alternatively
+token using ``--aodh-endpoint`` and ``--os-auth-token``. You can alternatively
set these environment variables::
export AODH_ENDPOINT=http://aodh.example.org:8041
@@ -45,8 +45,8 @@
export OS_AUTH_TOKEN=3bcc3d3a03f44e3d8377f9247b0ad155
Also, if the server doesn't support authentication, you can provide
-:option:`--os-auth-plugon` aodh-noauth, :option:`--aodh-endpoint`, :option:`--user-id`
-and :option:`--project-id`. You can alternatively set these environment variables::
+``--os-auth-plugin`` aodh-noauth, ``--aodh-endpoint``, ``--user-id``
+and ``--project-id``. You can alternatively set these environment variables::
export OS_AUTH_PLUGIN=aodh-noauth
export AODH_ENDPOINT=http://aodh.example.org:8041
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/releasenotes/source/index.rst new/aodhclient-1.2.0/releasenotes/source/index.rst
--- old/aodhclient-1.1.0/releasenotes/source/index.rst 2018-06-18 14:37:32.000000000 +0200
+++ new/aodhclient-1.2.0/releasenotes/source/index.rst 2019-03-08 21:15:01.000000000 +0100
@@ -8,6 +8,7 @@
:maxdepth: 2
unreleased
+ rocky
queens
pike
ocata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/releasenotes/source/rocky.rst new/aodhclient-1.2.0/releasenotes/source/rocky.rst
--- old/aodhclient-1.1.0/releasenotes/source/rocky.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/aodhclient-1.2.0/releasenotes/source/rocky.rst 2019-03-08 21:15:01.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Rocky Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/rocky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/setup.cfg new/aodhclient-1.2.0/setup.cfg
--- old/aodhclient-1.1.0/setup.cfg 2018-06-18 14:40:39.000000000 +0200
+++ new/aodhclient-1.2.0/setup.cfg 2019-03-08 21:16:07.000000000 +0100
@@ -17,6 +17,7 @@
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.5
+ Programming Language :: Python :: 3.6
[files]
packages =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aodhclient-1.1.0/tox.ini new/aodhclient-1.2.0/tox.ini
--- old/aodhclient-1.1.0/tox.ini 2018-06-18 14:37:51.000000000 +0200
+++ new/aodhclient-1.2.0/tox.ini 2019-03-08 21:15:01.000000000 +0100
@@ -19,30 +19,36 @@
commands = pifpaf run aodh -- python setup.py test --slowest --testr-args='{posargs}'
[testenv:pep8]
+basepython = python3
deps = hacking<0.13,>=0.12
commands = flake8
[testenv:venv]
+basepython = python3
# Used by openstack-infra to build the doc
deps = -r{toxinidir}/doc/requirements.txt
commands = {posargs}
[testenv:cover]
+basepython = python3
commands =
python setup.py test --coverage --testr-args='{posargs}'
coverage report
[testenv:releasenotes]
+basepython = python3
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:docs]
+basepython = python3
deps = -r{toxinidir}/doc/requirements.txt
commands =
rm -rf doc/build
- sphinx-build -b html doc/source doc/build/html
+ sphinx-build -W -b html doc/source doc/build/html
whitelist_externals = rm
[testenv:debug]
+basepython = python3
commands = pifpaf --debug run aodh -- oslo_debug_helper {posargs}
[flake8]
1
0
Hello community,
here is the log from the commit of package openstack-tempest for openSUSE:Factory checked in at 2019-05-03 22:39:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openstack-tempest (Old)
and /work/SRC/openSUSE:Factory/.openstack-tempest.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openstack-tempest"
Fri May 3 22:39:40 2019 rev:2 rq:692813 version:18.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/openstack-tempest/openstack-tempest.changes 2016-10-13 11:28:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.openstack-tempest.new.5148/openstack-tempest.changes 2019-05-03 22:39:44.382902752 +0200
@@ -1,0 +2,6 @@
+Mon Oct 8 19:15:50 UTC 2018 - dmueller(a)suse.com
+
+- update to version 18.0.0:
+ * Release matching OpenStack Rocky requirements
+
+-------------------------------------------------------------------
Old:
----
tempest-12.1.0.tar.gz
New:
----
tempest-18.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openstack-tempest.spec ++++++
--- /var/tmp/diff_new_pack.yMTrUv/_old 2019-05-03 22:39:47.214908635 +0200
+++ /var/tmp/diff_new_pack.yMTrUv/_new 2019-05-03 22:39:47.218908644 +0200
@@ -1,7 +1,7 @@
#
# spec file for package openstack-tempest
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,66 +12,67 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global sname tempest
Name: openstack-tempest
-Version: 12.1.0
+Version: 18.0.0
Release: 0
Summary: The OpenStack Integration Test Suite
License: Apache-2.0
Group: Development/Languages/Python
-Url: http://launchpad.net/tempest
-Source0: https://pypi.io/packages/source/t/%{sname}/%{sname}-%{version}.tar.gz
+URL: https://launchpad.net/tempest
+Source0: https://files.pythonhosted.org/packages/source/T/Tempest/%{sname}-%{version…
BuildRequires: openstack-macros
-BuildRequires: python-PrettyTable >= 0.7
-BuildRequires: python-PyYAML >= 3.1.0
-BuildRequires: python-cliff >= 1.15.0
+BuildRequires: python-PrettyTable >= 0.7.1
+BuildRequires: python-PyYAML >= 3.10
+BuildRequires: python-cliff >= 2.8.0
+BuildRequires: python-debtcollector >= 1.2.0
BuildRequires: python-devel
BuildRequires: python-fixtures >= 3.0.0
-BuildRequires: python-jsonschema >= 2.0.0
-BuildRequires: python-mock >= 2.0
-BuildRequires: python-netaddr >= 0.7.12
-BuildRequires: python-os-testr >= 0.7.0
-BuildRequires: python-oslo.concurrency >= 3.8.0
-BuildRequires: python-oslo.config >= 3.14.0
-BuildRequires: python-oslo.i18n >= 2.1.0
-BuildRequires: python-oslo.log >= 1.14.0
-BuildRequires: python-oslo.serialization >= 1.10.0
-BuildRequires: python-oslo.utils >= 3.16.0
-BuildRequires: python-oslotest >= 1.10.0
-BuildRequires: python-paramiko >= 2.0
-BuildRequires: python-pep8 >= 1.5.7
-BuildRequires: python-pyOpenSSL >= 0.14
-BuildRequires: python-six >= 1.9.0
-BuildRequires: python-stevedore >= 1.16.0
-BuildRequires: python-testrepository >= 0.0.18
-BuildRequires: python-testscenarios >= 0.4
-BuildRequires: python-testtools >= 1.4.0
-BuildRequires: python-urllib3 >= 1.15.1
-Requires: python-PrettyTable >= 0.7
-Requires: python-PyYAML >= 3.1.0
-Requires: python-cliff >= 1.15.0
+BuildRequires: python-jsonschema >= 2.6.0
+BuildRequires: python-mock
+BuildRequires: python-netaddr >= 0.7.18
+BuildRequires: python-openstackdocstheme
+BuildRequires: python-os-testr
+BuildRequires: python-oslo.concurrency >= 3.25.0
+BuildRequires: python-oslo.config >= 5.1.0
+BuildRequires: python-oslo.log >= 3.36.0
+BuildRequires: python-oslo.serialization >= 2.18.0
+BuildRequires: python-oslo.utils >= 3.33.0
+BuildRequires: python-oslotest
+BuildRequires: python-paramiko >= 2.0.0
+BuildRequires: python-pep8
+BuildRequires: python-python-subunit >= 1.0.0
+BuildRequires: python-six >= 1.10.0
+BuildRequires: python-stevedore >= 1.20.0
+BuildRequires: python-testrepository
+BuildRequires: python-testscenarios
+BuildRequires: python-testtools >= 2.2.0
+BuildRequires: python-urllib3 >= 1.21.1
+Requires: python-PrettyTable >= 0.7.1
+Requires: python-PyYAML >= 3.10
+Requires: python-cliff >= 2.8.0
+Requires: python-debtcollector >= 1.2.0
Requires: python-fixtures >= 3.0.0
-Requires: python-jsonschema >= 2.0.0
-Requires: python-netaddr >= 0.7.12
-Requires: python-os-testr >= 0.7.0
-Requires: python-oslo.concurrency >= 3.8.0
-Requires: python-oslo.config >= 3.14.0
-Requires: python-oslo.i18n >= 2.1.0
-Requires: python-oslo.log >= 1.14.0
-Requires: python-oslo.serialization >= 1.10.0
-Requires: python-oslo.utils >= 3.16.0
-Requires: python-paramiko >= 2.0
-Requires: python-pyOpenSSL >= 0.14
-Requires: python-six >= 1.9.0
-Requires: python-stevedore >= 1.16.0
-Requires: python-testrepository >= 0.0.18
-Requires: python-testscenarios >= 0.4
-Requires: python-testtools >= 1.4.0
-Requires: python-urllib3 >= 1.15.1
+Requires: python-jsonschema >= 2.6.0
+Requires: python-netaddr >= 0.7.18
+Requires: python-os-testr
+Requires: python-oslo.concurrency >= 3.25.0
+Requires: python-oslo.config >= 5.1.0
+Requires: python-oslo.log >= 3.36.0
+Requires: python-oslo.serialization >= 2.18.0
+Requires: python-oslo.utils >= 3.33.0
+Requires: python-paramiko >= 2.0.0
+Requires: python-python-subunit >= 1.0.0
+Requires: python-six >= 1.10.0
+Requires: python-stevedore >= 1.20.0
+Requires: python-testrepository
+Requires: python-testscenarios
+Requires: python-testtools >= 2.2.0
+Requires: python-urllib3 >= 1.21.1
BuildArch: noarch
%description
@@ -84,15 +85,15 @@
Summary: Documentation for the OpenStack Integration Test Suite
Group: Development/Languages/Python
BuildRequires: python-Sphinx
-BuildRequires: python-oslosphinx >= 2.5.0
+BuildRequires: python-oslosphinx
%description doc
Documentation for the OpenStack Integration Test Suite.
%prep
-%setup -q -n %{sname}-%{version}
-# FIXME(toabctl): Remove when https://review.openstack.org/#/c/363036/ is merged
-sed -i -e 's/^\(html_last_updated_fmt.*\)\(git_cmd\)/\1"\/usr\/bin\/true"/' doc/source/conf.py
+%autosetup -n %{sname}-%{version}
+%py_req_cleanup
+sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{py2_build}
@@ -103,7 +104,6 @@
# NOTE(toabctl): config files are installed into usr/etc/
install -d -m 755 %{buildroot}%{_sysconfdir}/tempest
mv %{buildroot}/%{_prefix}/%{_sysconfdir}/%{sname}/accounts.yaml.sample %{buildroot}/%{_sysconfdir}/%{sname}/accounts.yaml
-mv %{buildroot}/%{_prefix}/%{_sysconfdir}/%{sname}/javelin-resources.yaml.sample %{buildroot}/%{_sysconfdir}/%{sname}/javelin-resources.yaml
mv %{buildroot}/%{_prefix}/%{_sysconfdir}/%{sname}/logging.conf.sample %{buildroot}/%{_sysconfdir}/%{sname}/logging.conf
mv %{buildroot}/%{_prefix}/%{_sysconfdir}/%{sname}/whitelist.yaml %{buildroot}/%{_sysconfdir}/%{sname}/whitelist.yaml
@@ -123,9 +123,6 @@
%{python2_sitelib}/*.egg-info
%{_bindir}/tempest
%{_bindir}/verify-tempest-config
-%{_bindir}/javelin2
-%{_bindir}/run-tempest-stress
-%{_bindir}/tempest-cleanup
%{_bindir}/tempest-account-generator
%{_bindir}/skip-tracker
%{_bindir}/check-uuid
@@ -134,7 +131,6 @@
%config(noreplace) %{_sysconfdir}/tempest/logging.conf
%config(noreplace) %{_sysconfdir}/tempest/accounts.yaml
%config(noreplace) %{_sysconfdir}/tempest/whitelist.yaml
-%config(noreplace) %{_sysconfdir}/tempest/javelin-resources.yaml
%files doc
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.yMTrUv/_old 2019-05-03 22:39:47.238908685 +0200
+++ /var/tmp/diff_new_pack.yMTrUv/_new 2019-05-03 22:39:47.242908693 +0200
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/newton/ope…</param>
+ <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/rocky/open…</param>
<param name="output-name">openstack-tempest.spec</param>
- <param name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/newton/glo…</param>
+ <param name="requirements">https://raw.githubusercontent.com/openstack/tempest/18.0.0/requirements.txt</param>
</service>
<service mode="disabled" name="download_files">
<param name="changesgenerate">enable</param>
++++++ tempest-12.1.0.tar.gz -> tempest-18.0.0.tar.gz ++++++
++++ 123009 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package salt for openSUSE:Factory checked in at 2019-05-03 22:37:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/salt (Old)
and /work/SRC/openSUSE:Factory/.salt.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "salt"
Fri May 3 22:37:55 2019 rev:83 rq:700350 version:2019.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/salt/salt.changes 2019-04-15 11:51:54.894533129 +0200
+++ /work/SRC/openSUSE:Factory/.salt.new.5148/salt.changes 2019-05-03 22:37:57.482680698 +0200
@@ -1,0 +2,50 @@
+Fri May 3 09:42:06 UTC 2019 - mdinca <mdinca(a)suse.de>
+
+- Include aliases in FQDNS grain (bsc#1121439)
+
+-------------------------------------------------------------------
+Thu May 2 16:18:45 UTC 2019 - mdinca <mdinca(a)suse.de>
+
+- Fix issue preventing syndic to start
+- Update year on spec copyright notice
+
+- Added:
+ * fix-syndic-start-issue.patch
+
+-------------------------------------------------------------------
+Tue Apr 30 11:51:59 UTC 2019 - psuarezhernandez(a)suse.com
+
+- Use ThreadPool from multiprocessing.pool to avoid leakings
+ when calculating FQDNs
+- Do not report patches as installed on RHEL systems when not all
+ the related packages are installed (bsc#1128061)
+
+- Added:
+ * use-threadpool-from-multiprocessing.pool-to-avoid-le.patch
+ * do-not-report-patches-as-installed-when-not-all-the-.patch
+
+-------------------------------------------------------------------
+Fri Apr 26 10:00:01 UTC 2019 - mdinca(a)suse.de
+
+- Update to 2019.2.0 complete (FATE#327138, bsc#1133523)
+- Fix batch/batch-async related issues
+- Calculate FQDNs in parallel to avoid blockings (bsc#1129079)
+- Incorporate virt.volume_info fixes (PR#131)
+- Re-adds patch because of increased offset due to previous patch removal
+- Removing patch to add root parameter to zypper module
+- Fix for -t parameter in mount module
+
+- Added:
+ * mount-fix-extra-t-parameter.patch
+ * add-batch_presence_ping_timeout-and-batch_presence_p.patch
+ * fix-async-batch-race-conditions.patch
+ * calculate-fqdns-in-parallel-to-avoid-blockings-bsc-1.patch
+
+- Modified:
+ * don-t-call-zypper-with-more-than-one-no-refresh.patch
+ * add-virt.volume_infos-and-virt.volume_delete.patch
+
+- Removed:
+ * zypper-add-root-configuration-parameter.patch
+
+-------------------------------------------------------------------
Old:
----
zypper-add-root-configuration-parameter.patch
New:
----
add-batch_presence_ping_timeout-and-batch_presence_p.patch
calculate-fqdns-in-parallel-to-avoid-blockings-bsc-1.patch
do-not-report-patches-as-installed-when-not-all-the-.patch
fix-async-batch-race-conditions.patch
fix-syndic-start-issue.patch
mount-fix-extra-t-parameter.patch
use-threadpool-from-multiprocessing.pool-to-avoid-le.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ salt.spec ++++++
--- /var/tmp/diff_new_pack.5ZApBc/_old 2019-05-03 22:38:02.786691716 +0200
+++ /var/tmp/diff_new_pack.5ZApBc/_new 2019-05-03 22:38:02.822691791 +0200
@@ -1,7 +1,7 @@
#
# spec file for package salt
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -141,22 +141,34 @@
Patch38: remove-arch-from-name-when-pkg.list_pkgs-is-called-w.patch
# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/51119
Patch39: fix-issue-2068-test.patch
-# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/50125
-Patch40: zypper-add-root-configuration-parameter.patch
# PATCH_FIX_OPENSUSE: Temporary fix allowing "id_" and "force" params while upstrem figures it out
-Patch41: temporary-fix-extend-the-whitelist-of-allowed-comman.patch
+Patch40: temporary-fix-extend-the-whitelist-of-allowed-comman.patch
# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/51382
-Patch42: don-t-call-zypper-with-more-than-one-no-refresh.patch
+Patch41: don-t-call-zypper-with-more-than-one-no-refresh.patch
# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/50109
# PATCH_FIX_OPENSUSE https://github.com/openSUSE/salt/pull/121
-Patch43: add-virt.all_capabilities.patch
+Patch42: add-virt.all_capabilities.patch
# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/51691
-Patch44: add-virt.volume_infos-and-virt.volume_delete.patch
+Patch43: add-virt.volume_infos-and-virt.volume_delete.patch
# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/51384
-Patch45: include-aliases-in-the-fqdns-grains.patch
+Patch44: include-aliases-in-the-fqdns-grains.patch
# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/50546
# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/51863
-Patch46: async-batch-implementation.patch
+Patch45: async-batch-implementation.patch
+# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/51905
+Patch46: mount-fix-extra-t-parameter.patch
+# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/52527
+Patch47: calculate-fqdns-in-parallel-to-avoid-blockings-bsc-1.patch
+#PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/139
+Patch48: fix-async-batch-race-conditions.patch
+#PATCH-FIX_OPENSUSE: https://github.com/openSUSE/salt/pull/141
+Patch49: add-batch_presence_ping_timeout-and-batch_presence_p.patch
+#PATCH-FIX_UPSTREAM: https://github.com/saltstack/salt/pull/52657
+Patch50: do-not-report-patches-as-installed-when-not-all-the-.patch
+# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/52527
+Patch51: use-threadpool-from-multiprocessing.pool-to-avoid-le.patch
+# PATCH-FIX_UPSTREAM https://github.com/saltstack/salt/pull/52519 (partial porting)
+Patch52: fix-syndic-start-issue.patch
# BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -661,6 +673,12 @@
%patch44 -p1
%patch45 -p1
%patch46 -p1
+%patch47 -p1
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
%build
%if 0%{?build_py2}
++++++ _lastrevision ++++++
--- /var/tmp/diff_new_pack.5ZApBc/_old 2019-05-03 22:38:03.446693087 +0200
+++ /var/tmp/diff_new_pack.5ZApBc/_new 2019-05-03 22:38:03.462693121 +0200
@@ -1 +1 @@
-65afa65b0d69f90c1cd716474cdddcdc98751274
\ No newline at end of file
+8d79ae9a816ab27810786c5a4a60021af08ec366
\ No newline at end of file
++++++ add-batch_presence_ping_timeout-and-batch_presence_p.patch ++++++
>From 902a3527415807448be0aa28a651374a189d102c Mon Sep 17 00:00:00 2001
From: Marcelo Chiaradia <mchiaradia(a)suse.com>
Date: Thu, 4 Apr 2019 13:57:38 +0200
Subject: [PATCH] Add 'batch_presence_ping_timeout' and
'batch_presence_ping_gather_job_timeout' parameters for synchronous batching
---
salt/cli/batch.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/salt/cli/batch.py b/salt/cli/batch.py
index 4bd07f584a..ce239215cb 100644
--- a/salt/cli/batch.py
+++ b/salt/cli/batch.py
@@ -83,6 +83,9 @@ def batch_get_opts(
if key not in opts:
opts[key] = val
+ opts['batch_presence_ping_timeout'] = kwargs.get('batch_presence_ping_timeout', opts['timeout'])
+ opts['batch_presence_ping_gather_job_timeout'] = kwargs.get('batch_presence_ping_gather_job_timeout', opts['gather_job_timeout'])
+
return opts
@@ -119,7 +122,7 @@ class Batch(object):
args = [self.opts['tgt'],
'test.ping',
[],
- self.opts['timeout'],
+ self.opts.get('batch_presence_ping_timeout', self.opts['timeout']),
]
selected_target_option = self.opts.get('selected_target_option', None)
@@ -130,7 +133,7 @@ class Batch(object):
self.pub_kwargs['yield_pub_data'] = True
ping_gen = self.local.cmd_iter(*args,
- gather_job_timeout=self.opts['gather_job_timeout'],
+ gather_job_timeout=self.opts.get('batch_presence_ping_gather_job_timeout', self.opts['gather_job_timeout']),
**self.pub_kwargs)
# Broadcast to targets
--
2.20.1
++++++ add-virt.volume_infos-and-virt.volume_delete.patch ++++++
--- /var/tmp/diff_new_pack.5ZApBc/_old 2019-05-03 22:38:04.246694749 +0200
+++ /var/tmp/diff_new_pack.5ZApBc/_new 2019-05-03 22:38:04.266694791 +0200
@@ -1,4 +1,4 @@
-From 2536ee56bd0060c024994f97388f9975ccbe1ee1 Mon Sep 17 00:00:00 2001
+From 5e202207d02d2bf4860cc5487ed19f9d835993d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat(a)suse.com>
Date: Fri, 15 Feb 2019 17:28:00 +0100
Subject: [PATCH] Add virt.volume_infos() and virt.volume_delete()
@@ -11,15 +11,15 @@
virt.volume_delete() allows removing a given volume.
---
- salt/modules/virt.py | 113 ++++++++++++++++++++
- tests/unit/modules/test_virt.py | 184 ++++++++++++++++++++++++++++++++
- 2 files changed, 297 insertions(+)
+ salt/modules/virt.py | 126 +++++++++++++++++++++
+ tests/unit/modules/test_virt.py | 195 ++++++++++++++++++++++++++++++++
+ 2 files changed, 321 insertions(+)
diff --git a/salt/modules/virt.py b/salt/modules/virt.py
-index 0921122a8a..4a301f289c 100644
+index 0921122a8a..17039444c4 100644
--- a/salt/modules/virt.py
+++ b/salt/modules/virt.py
-@@ -4988,3 +4988,116 @@ def pool_list_volumes(name, **kwargs):
+@@ -4988,3 +4988,129 @@ def pool_list_volumes(name, **kwargs):
return pool.listVolumes()
finally:
conn.close()
@@ -34,6 +34,19 @@
+ return pool_obj.storageVolLookupByName(vol)
+
+
++def _is_valid_volume(vol):
++ '''
++ Checks whether a volume is valid for further use since those may have disappeared since
++ the last pool refresh.
++ '''
++ try:
++ # Getting info on an invalid volume raises error
++ vol.info()
++ return True
++ except libvirt.libvirtError as err:
++ return False
++
++
+def _get_all_volumes_paths(conn):
+ '''
+ Extract the path and backing stores path of all volumes.
@@ -42,17 +55,17 @@
+ '''
+ volumes = [vol for l in [obj.listAllVolumes() for obj in conn.listAllStoragePools()] for vol in l]
+ return {vol.path(): [path.text for path in ElementTree.fromstring(vol.XMLDesc()).findall('.//backingStore/path')]
-+ for vol in volumes}
++ for vol in volumes if _is_valid_volume(vol)}
+
+
-+def volume_infos(pool, volume, **kwargs):
++def volume_infos(pool=None, volume=None, **kwargs):
+ '''
+ Provide details on a storage volume. If no volume name is provided, the infos
+ all the volumes contained in the pool are provided. If no pool is provided,
+ the infos of the volumes of all pools are output.
+
-+ :param pool: libvirt storage pool name
-+ :param volume: name of the volume to get infos from
++ :param pool: libvirt storage pool name (default: ``None``)
++ :param volume: name of the volume to get infos from (default: ``None``)
+ :param connection: libvirt connection URI, overriding defaults
+ :param username: username to connect with, overriding defaults
+ :param password: password to connect with, overriding defaults
@@ -102,7 +115,7 @@
+ pools = [obj for obj in conn.listAllStoragePools() if pool is None or obj.name() == pool]
+ vols = {pool_obj.name(): {vol.name(): _volume_extract_infos(vol)
+ for vol in pool_obj.listAllVolumes()
-+ if volume is None or vol.name() == volume}
++ if (volume is None or vol.name() == volume) and _is_valid_volume(vol)}
+ for pool_obj in pools}
+ return {pool_name: volumes for (pool_name, volumes) in vols.items() if volumes}
+ except libvirt.libvirtError as err:
@@ -137,10 +150,10 @@
+ finally:
+ conn.close()
diff --git a/tests/unit/modules/test_virt.py b/tests/unit/modules/test_virt.py
-index bd34962a6a..55005f1d04 100644
+index bd34962a6a..14e51e1e2a 100644
--- a/tests/unit/modules/test_virt.py
+++ b/tests/unit/modules/test_virt.py
-@@ -2698,3 +2698,187 @@ class VirtTestCase(TestCase, LoaderModuleMockMixin):
+@@ -2698,3 +2698,198 @@ class VirtTestCase(TestCase, LoaderModuleMockMixin):
self.mock_conn.storagePoolLookupByName.return_value = mock_pool
# pylint: enable=no-member
self.assertEqual(names, virt.pool_list_volumes('default'))
@@ -203,6 +216,13 @@
+ 'name': 'pool1',
+ 'volumes': [
+ {
++ 'key': '/key/of/vol0bad',
++ 'name': 'vol0bad',
++ 'path': '/path/to/vol0bad.qcow2',
++ 'info': None,
++ 'backingStore': None
++ },
++ {
+ 'key': '/key/of/vol1',
+ 'name': 'vol1',
+ 'path': '/path/to/vol1.qcow2',
@@ -230,23 +250,27 @@
+ mock_volume.name.return_value = vol_data['name']
+ mock_volume.key.return_value = vol_data['key']
+ mock_volume.path.return_value = '/path/to/{0}.qcow2'.format(vol_data['name'])
-+ mock_volume.info.return_value = vol_data['info']
-+ backing_store = '''
-+ <backingStore>
-+ <format>qcow2</format>
-+ <path>{0}</path>
-+ </backingStore>
-+ '''.format(vol_data['backingStore']) if vol_data['backingStore'] else '<backingStore/>'
-+ mock_volume.XMLDesc.return_value = '''
-+ <volume type='file'>
-+ <name>{0}</name>
-+ <target>
-+ <format>qcow2</format>
-+ <path>/path/to/{0}.qcow2</path>
-+ </target>
-+ {1}
-+ </volume>
-+ '''.format(vol_data['name'], backing_store)
++ if vol_data['info']:
++ mock_volume.info.return_value = vol_data['info']
++ backing_store = '''
++ <backingStore>
++ <format>qcow2</format>
++ <path>{0}</path>
++ </backingStore>
++ '''.format(vol_data['backingStore']) if vol_data['backingStore'] else '<backingStore/>'
++ mock_volume.XMLDesc.return_value = '''
++ <volume type='file'>
++ <name>{0}</name>
++ <target>
++ <format>qcow2</format>
++ <path>/path/to/{0}.qcow2</path>
++ </target>
++ {1}
++ </volume>
++ '''.format(vol_data['name'], backing_store)
++ else:
++ mock_volume.info.side_effect = self.mock_libvirt.libvirtError('No such volume')
++ mock_volume.XMLDesc.side_effect = self.mock_libvirt.libvirtError('No such volume')
+ mock_volumes.append(mock_volume)
+ # pylint: enable=no-member
+ mock_pool.listAllVolumes.return_value = mock_volumes # pylint: disable=no-member
++++++ calculate-fqdns-in-parallel-to-avoid-blockings-bsc-1.patch ++++++
>From 722b9395a6489da7626e6a388c78bf8e8812190e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
<psuarezhernandez(a)suse.com>
Date: Fri, 12 Apr 2019 16:47:03 +0100
Subject: [PATCH] Calculate FQDNs in parallel to avoid blockings (bsc#1129079)
Fix pylint issue
---
salt/grains/core.py | 31 ++++++++++++++++++++++++++-----
1 file changed, 26 insertions(+), 5 deletions(-)
diff --git a/salt/grains/core.py b/salt/grains/core.py
index 05a9d5035d..796458939d 100644
--- a/salt/grains/core.py
+++ b/salt/grains/core.py
@@ -20,11 +20,14 @@ import platform
import logging
import locale
import uuid
+import time
import zlib
from errno import EACCES, EPERM
import datetime
import warnings
+from multiprocessing.dummy import Pool as ThreadPool
+
# pylint: disable=import-error
try:
import dateutil.tz
@@ -2200,13 +2203,10 @@ def fqdns():
grains = {}
fqdns = set()
- addresses = salt.utils.network.ip_addrs(include_loopback=False, interface_data=_get_interfaces())
- addresses.extend(salt.utils.network.ip_addrs6(include_loopback=False, interface_data=_get_interfaces()))
- err_message = 'Exception during resolving address: %s'
- for ip in addresses:
+ def _lookup_fqdn(ip):
try:
name, aliaslist, addresslist = socket.gethostbyaddr(ip)
- fqdns.update([socket.getfqdn(name)] + [als for als in aliaslist if salt.utils.network.is_fqdn(als)])
+ return [socket.getfqdn(name)] + [als for als in aliaslist if salt.utils.network.is_fqdn(als)]
except socket.herror as err:
if err.errno == 0:
# No FQDN for this IP address, so we don't need to know this all the time.
@@ -2216,6 +2216,27 @@ def fqdns():
except (socket.error, socket.gaierror, socket.timeout) as err:
log.error(err_message, err)
+ start = time.time()
+
+ addresses = salt.utils.network.ip_addrs(include_loopback=False, interface_data=_get_interfaces())
+ addresses.extend(salt.utils.network.ip_addrs6(include_loopback=False, interface_data=_get_interfaces()))
+ err_message = 'Exception during resolving address: %s'
+
+ # Create a ThreadPool to process the underlying calls to 'socket.gethostbyaddr' in parallel.
+ # This avoid blocking the execution when the "fqdn" is not defined for certains IP addresses, which was causing
+ # that "socket.timeout" was reached multiple times secuencially, blocking execution for several seconds.
+ pool = ThreadPool(8)
+ results = pool.map(_lookup_fqdn, addresses)
+ pool.close()
+ pool.join()
+
+ for item in results:
+ if item:
+ fqdns.update(item)
+
+ elapsed = time.time() - start
+ log.debug('Elapsed time getting FQDNs: {} seconds'.format(elapsed))
+
return {"fqdns": sorted(list(fqdns))}
--
2.17.1
++++++ do-not-report-patches-as-installed-when-not-all-the-.patch ++++++
>From 769c9e85499bc9912b050fff7d3105690f1d7c7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
<psuarezhernandez(a)suse.com>
Date: Wed, 13 Mar 2019 16:14:07 +0000
Subject: [PATCH] Do not report patches as installed when not all the
related packages are installed (bsc#1128061)
Co-authored-by: Mihai Dinca <mdinca(a)suse.de>
---
salt/modules/yumpkg.py | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/salt/modules/yumpkg.py b/salt/modules/yumpkg.py
index 4f26a41670..5ec3835574 100644
--- a/salt/modules/yumpkg.py
+++ b/salt/modules/yumpkg.py
@@ -3212,12 +3212,18 @@ def _get_patches(installed_only=False):
for line in salt.utils.itertools.split(ret, os.linesep):
inst, advisory_id, sev, pkg = re.match(r'([i|\s]) ([^\s]+) +([^\s]+) +([^\s]+)',
line).groups()
- if inst != 'i' and installed_only:
- continue
- patches[advisory_id] = {
- 'installed': True if inst == 'i' else False,
- 'summary': pkg
- }
+ if not advisory_id in patches:
+ patches[advisory_id] = {
+ 'installed': True if inst == 'i' else False,
+ 'summary': [pkg]
+ }
+ else:
+ patches[advisory_id]['summary'].append(pkg)
+ if inst != 'i':
+ patches[advisory_id]['installed'] = False
+
+ if installed_only:
+ patches = {k: v for k, v in patches.items() if v['installed']}
return patches
--
2.20.1
++++++ don-t-call-zypper-with-more-than-one-no-refresh.patch ++++++
--- /var/tmp/diff_new_pack.5ZApBc/_old 2019-05-03 22:38:04.914696137 +0200
+++ /var/tmp/diff_new_pack.5ZApBc/_new 2019-05-03 22:38:04.926696161 +0200
@@ -1,4 +1,4 @@
-From 1c3f8f32d475701e8b7fab64b8cb9dcd44b587d4 Mon Sep 17 00:00:00 2001
+From 5e0fe08c6afd75a7d65d6ccd6cf6b4b197fb1064 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat(a)suse.com>
Date: Tue, 29 Jan 2019 09:44:03 +0100
Subject: [PATCH] Don't call zypper with more than one --no-refresh
@@ -11,23 +11,23 @@
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/salt/modules/zypperpkg.py b/salt/modules/zypperpkg.py
-index c442337c58..bab9e22dec 100644
+index 92e7052020..7ac0df26c6 100644
--- a/salt/modules/zypperpkg.py
+++ b/salt/modules/zypperpkg.py
-@@ -291,7 +291,7 @@ class _Zypper(object):
+@@ -282,7 +282,7 @@ class _Zypper(object):
self.__called = True
if self.__xml:
self.__cmd.append('--xmlout')
- if not self.__refresh:
+ if not self.__refresh and '--no-refresh' not in args:
self.__cmd.append('--no-refresh')
- if self.__root:
- self.__cmd.extend(['--root', self.__root])
+
+ self.__cmd.extend(args)
diff --git a/tests/unit/modules/test_zypperpkg.py b/tests/unit/modules/test_zypperpkg.py
-index e7474ff777..9d109a431d 100644
+index f586c23fd0..5c5091a570 100644
--- a/tests/unit/modules/test_zypperpkg.py
+++ b/tests/unit/modules/test_zypperpkg.py
-@@ -141,7 +141,7 @@ class ZypperTestCase(TestCase, LoaderModuleMockMixin):
+@@ -138,7 +138,7 @@ class ZypperTestCase(TestCase, LoaderModuleMockMixin):
self.assertEqual(zypper.__zypper__.call('foo'), stdout_xml_snippet)
self.assertEqual(len(sniffer.calls), 1)
++++++ fix-async-batch-race-conditions.patch ++++++
>From 33c5e10c2912f584243d29c764c2c6cca86edf4a Mon Sep 17 00:00:00 2001
From: Mihai Dinca <mdinca(a)suse.de>
Date: Thu, 11 Apr 2019 15:57:59 +0200
Subject: [PATCH] Fix async batch race conditions
Close batching when there is no next batch
---
salt/cli/batch_async.py | 80 +++++++++++++++---------------
tests/unit/cli/test_batch_async.py | 35 ++++++-------
2 files changed, 54 insertions(+), 61 deletions(-)
diff --git a/salt/cli/batch_async.py b/salt/cli/batch_async.py
index 3160d46d8b..9c20b2fc6e 100644
--- a/salt/cli/batch_async.py
+++ b/salt/cli/batch_async.py
@@ -37,14 +37,14 @@ class BatchAsync(object):
- tag: salt/batch/<batch-jid>/start
- data: {
"available_minions": self.minions,
- "down_minions": self.down_minions
+ "down_minions": targeted_minions - presence_ping_minions
}
When the batch ends, an `done` event is fired:
- tag: salt/batch/<batch-jid>/done
- data: {
"available_minions": self.minions,
- "down_minions": self.down_minions,
+ "down_minions": targeted_minions - presence_ping_minions
"done_minions": self.done_minions,
"timedout_minions": self.timedout_minions
}
@@ -67,7 +67,7 @@ class BatchAsync(object):
self.eauth = batch_get_eauth(clear_load['kwargs'])
self.metadata = clear_load['kwargs'].get('metadata', {})
self.minions = set()
- self.down_minions = set()
+ self.targeted_minions = set()
self.timedout_minions = set()
self.done_minions = set()
self.active = set()
@@ -108,8 +108,7 @@ class BatchAsync(object):
minion = data['id']
if op == 'ping_return':
self.minions.add(minion)
- self.down_minions.remove(minion)
- if not self.down_minions:
+ if self.targeted_minions == self.minions:
self.event.io_loop.spawn_callback(self.start_batch)
elif op == 'find_job_return':
self.find_job_returned.add(minion)
@@ -120,9 +119,6 @@ class BatchAsync(object):
# call later so that we maybe gather more returns
self.event.io_loop.call_later(self.batch_delay, self.schedule_next)
- if self.initialized and self.done_minions == self.minions.difference(self.timedout_minions):
- self.end_batch()
-
def _get_next(self):
to_run = self.minions.difference(
self.done_minions).difference(
@@ -135,16 +131,13 @@ class BatchAsync(object):
return set(list(to_run)[:next_batch_size])
@tornado.gen.coroutine
- def check_find_job(self, minions):
- did_not_return = minions.difference(self.find_job_returned)
- if did_not_return:
- for minion in did_not_return:
- if minion in self.find_job_returned:
- self.find_job_returned.remove(minion)
- if minion in self.active:
- self.active.remove(minion)
- self.timedout_minions.add(minion)
- running = minions.difference(did_not_return).difference(self.done_minions).difference(self.timedout_minions)
+ def check_find_job(self, batch_minions):
+ timedout_minions = batch_minions.difference(self.find_job_returned).difference(self.done_minions)
+ self.timedout_minions = self.timedout_minions.union(timedout_minions)
+ self.active = self.active.difference(self.timedout_minions)
+ running = batch_minions.difference(self.done_minions).difference(self.timedout_minions)
+ if timedout_minions:
+ self.event.io_loop.call_later(self.batch_delay, self.schedule_next)
if running:
self.event.io_loop.add_callback(self.find_job, running)
@@ -183,7 +176,7 @@ class BatchAsync(object):
jid=self.ping_jid,
metadata=self.metadata,
**self.eauth)
- self.down_minions = set(ping_return['minions'])
+ self.targeted_minions = set(ping_return['minions'])
@tornado.gen.coroutine
def start_batch(self):
@@ -192,36 +185,43 @@ class BatchAsync(object):
self.initialized = True
data = {
"available_minions": self.minions,
- "down_minions": self.down_minions,
+ "down_minions": self.targeted_minions.difference(self.minions),
"metadata": self.metadata
}
self.event.fire_event(data, "salt/batch/{0}/start".format(self.batch_jid))
yield self.schedule_next()
def end_batch(self):
- data = {
- "available_minions": self.minions,
- "down_minions": self.down_minions,
- "done_minions": self.done_minions,
- "timedout_minions": self.timedout_minions,
- "metadata": self.metadata
- }
- self.event.fire_event(data, "salt/batch/{0}/done".format(self.batch_jid))
- self.event.remove_event_handler(self.__event_handler)
+ left = self.minions.symmetric_difference(self.done_minions.union(self.timedout_minions))
+ if not left:
+ data = {
+ "available_minions": self.minions,
+ "down_minions": self.targeted_minions.difference(self.minions),
+ "done_minions": self.done_minions,
+ "timedout_minions": self.timedout_minions,
+ "metadata": self.metadata
+ }
+ self.event.fire_event(data, "salt/batch/{0}/done".format(self.batch_jid))
+ self.event.remove_event_handler(self.__event_handler)
@tornado.gen.coroutine
def schedule_next(self):
next_batch = self._get_next()
if next_batch:
- yield self.local.run_job_async(
- next_batch,
- self.opts['fun'],
- self.opts['arg'],
- 'list',
- raw=self.opts.get('raw', False),
- ret=self.opts.get('return', ''),
- gather_job_timeout=self.opts['gather_job_timeout'],
- jid=self.batch_jid,
- metadata=self.metadata)
- self.event.io_loop.call_later(self.opts['timeout'], self.find_job, set(next_batch))
self.active = self.active.union(next_batch)
+ try:
+ yield self.local.run_job_async(
+ next_batch,
+ self.opts['fun'],
+ self.opts['arg'],
+ 'list',
+ raw=self.opts.get('raw', False),
+ ret=self.opts.get('return', ''),
+ gather_job_timeout=self.opts['gather_job_timeout'],
+ jid=self.batch_jid,
+ metadata=self.metadata)
+ self.event.io_loop.call_later(self.opts['timeout'], self.find_job, set(next_batch))
+ except Exception as ex:
+ self.active = self.active.difference(next_batch)
+ else:
+ self.end_batch()
diff --git a/tests/unit/cli/test_batch_async.py b/tests/unit/cli/test_batch_async.py
index f65b6a06c3..d519157d92 100644
--- a/tests/unit/cli/test_batch_async.py
+++ b/tests/unit/cli/test_batch_async.py
@@ -75,8 +75,8 @@ class AsyncBatchTestCase(AsyncTestCase, TestCase):
self.batch.local.run_job_async.call_args[0],
('*', 'test.ping', [], 'glob')
)
- # assert down_minions == all minions matched by tgt
- self.assertEqual(self.batch.down_minions, set(['foo', 'bar']))
+ # assert targeted_minions == all minions matched by tgt
+ self.assertEqual(self.batch.targeted_minions, set(['foo', 'bar']))
@tornado.testing.gen_test
def test_batch_start_on_gather_job_timeout(self):
@@ -121,7 +121,10 @@ class AsyncBatchTestCase(AsyncTestCase, TestCase):
self.assertEqual(len(self.batch.schedule_next.mock_calls), 1)
def test_batch_fire_done_event(self):
+ self.batch.targeted_minions = {'foo', 'baz', 'bar'}
self.batch.minions = set(['foo', 'bar'])
+ self.batch.done_minions = {'foo'}
+ self.batch.timedout_minions = {'bar'}
self.batch.event = MagicMock()
self.batch.metadata = {'mykey': 'myvalue'}
self.batch.end_batch()
@@ -130,9 +133,9 @@ class AsyncBatchTestCase(AsyncTestCase, TestCase):
(
{
'available_minions': set(['foo', 'bar']),
- 'done_minions': set(),
- 'down_minions': set(),
- 'timedout_minions': set(),
+ 'done_minions': self.batch.done_minions,
+ 'down_minions': {'baz'},
+ 'timedout_minions': self.batch.timedout_minions,
'metadata': self.batch.metadata
},
"salt/batch/1235/done"
@@ -212,7 +215,7 @@ class AsyncBatchTestCase(AsyncTestCase, TestCase):
self.assertEqual(self.batch._get_next(), set())
def test_batch__event_handler_ping_return(self):
- self.batch.down_minions = {'foo'}
+ self.batch.targeted_minions = {'foo'}
self.batch.event = MagicMock(
unpack=MagicMock(return_value=('salt/job/1234/ret/foo', {'id': 'foo'})))
self.batch.start()
@@ -222,7 +225,7 @@ class AsyncBatchTestCase(AsyncTestCase, TestCase):
self.assertEqual(self.batch.done_minions, set())
def test_batch__event_handler_call_start_batch_when_all_pings_return(self):
- self.batch.down_minions = {'foo'}
+ self.batch.targeted_minions = {'foo'}
self.batch.event = MagicMock(
unpack=MagicMock(return_value=('salt/job/1234/ret/foo', {'id': 'foo'})))
self.batch.start()
@@ -232,7 +235,7 @@ class AsyncBatchTestCase(AsyncTestCase, TestCase):
(self.batch.start_batch,))
def test_batch__event_handler_not_call_start_batch_when_not_all_pings_return(self):
- self.batch.down_minions = {'foo', 'bar'}
+ self.batch.targeted_minions = {'foo', 'bar'}
self.batch.event = MagicMock(
unpack=MagicMock(return_value=('salt/job/1234/ret/foo', {'id': 'foo'})))
self.batch.start()
@@ -260,20 +263,10 @@ class AsyncBatchTestCase(AsyncTestCase, TestCase):
self.assertEqual(self.batch.find_job_returned, {'foo'})
@tornado.testing.gen_test
- def test_batch__event_handler_end_batch(self):
- self.batch.event = MagicMock(
- unpack=MagicMock(return_value=('salt/job/not-my-jid/ret/foo', {'id': 'foo'})))
- future = tornado.gen.Future()
- future.set_result({'minions': ['foo', 'bar', 'baz']})
- self.batch.local.run_job_async.return_value = future
- self.batch.start()
- self.batch.initialized = True
- self.assertEqual(self.batch.down_minions, {'foo', 'bar', 'baz'})
+ def test_batch_schedule_next_end_batch_when_no_next(self):
self.batch.end_batch = MagicMock()
- self.batch.minions = {'foo', 'bar', 'baz'}
- self.batch.done_minions = {'foo', 'bar'}
- self.batch.timedout_minions = {'baz'}
- self.batch._BatchAsync__event_handler(MagicMock())
+ self.batch._get_next = MagicMock(return_value={})
+ self.batch.schedule_next()
self.assertEqual(len(self.batch.end_batch.mock_calls), 1)
@tornado.testing.gen_test
--
2.20.1
++++++ fix-syndic-start-issue.patch ++++++
>From 0b15fe1ecc3ed468714a5a8d84787ab23ac6144e Mon Sep 17 00:00:00 2001
From: Mihai Dinca <mdinca(a)suse.de>
Date: Thu, 2 May 2019 10:50:17 +0200
Subject: [PATCH] Fix syndic start issue
---
salt/utils/event.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/salt/utils/event.py b/salt/utils/event.py
index d2700bd2a0..160cba9bde 100644
--- a/salt/utils/event.py
+++ b/salt/utils/event.py
@@ -879,7 +879,7 @@ class SaltEvent(object):
self.subscriber.callbacks.add(event_handler)
if not self.subscriber.reading:
# This will handle reconnects
- self.subscriber.read_async()
+ return self.subscriber.read_async()
def __del__(self):
# skip exceptions in destroy-- since destroy() doesn't cover interpreter
--
2.20.1
++++++ mount-fix-extra-t-parameter.patch ++++++
>From 215d8d9c8f872b510a1c3fbb19ab4e91bc96bb64 Mon Sep 17 00:00:00 2001
From: Alberto Planas <aplanas(a)gmail.com>
Date: Thu, 28 Feb 2019 15:45:28 +0100
Subject: [PATCH] mount: fix extra -t parameter
If 'fstype' parameter is not set in Linux environments, salt will
build a mount command with an empty -t value, making the command
fail.
---
salt/modules/mount.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/salt/modules/mount.py b/salt/modules/mount.py
index 4ba370e5b3..e807b1729e 100644
--- a/salt/modules/mount.py
+++ b/salt/modules/mount.py
@@ -1218,7 +1218,8 @@ def mount(name, device, mkmnt=False, fstype='', opts='defaults', user=None, util
if fstype:
args += ' -v {0}'.format(fstype)
else:
- args += ' -t {0}'.format(fstype)
+ if fstype:
+ args += ' -t {0}'.format(fstype)
cmd = 'mount {0} {1} {2} '.format(args, device, name)
out = __salt__['cmd.run_all'](cmd, runas=user, python_shell=False)
if out['retcode']:
--
2.20.1
++++++ use-threadpool-from-multiprocessing.pool-to-avoid-le.patch ++++++
>From cd8e175738f7742fbb7c9e9d329039371bc0e579 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
<psuarezhernandez(a)suse.com>
Date: Tue, 30 Apr 2019 10:51:42 +0100
Subject: [PATCH] Use ThreadPool from multiprocessing.pool to avoid
leakings
---
salt/grains/core.py | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/salt/grains/core.py b/salt/grains/core.py
index 796458939d..fec7b204bc 100644
--- a/salt/grains/core.py
+++ b/salt/grains/core.py
@@ -26,7 +26,7 @@ from errno import EACCES, EPERM
import datetime
import warnings
-from multiprocessing.dummy import Pool as ThreadPool
+from multiprocessing.pool import ThreadPool
# pylint: disable=import-error
try:
@@ -2225,10 +2225,14 @@ def fqdns():
# Create a ThreadPool to process the underlying calls to 'socket.gethostbyaddr' in parallel.
# This avoid blocking the execution when the "fqdn" is not defined for certains IP addresses, which was causing
# that "socket.timeout" was reached multiple times secuencially, blocking execution for several seconds.
- pool = ThreadPool(8)
- results = pool.map(_lookup_fqdn, addresses)
- pool.close()
- pool.join()
+
+ try:
+ pool = ThreadPool(8)
+ results = pool.map(_lookup_fqdn, addresses)
+ pool.close()
+ pool.join()
+ except Exception as exc:
+ log.error("Exception while creating a ThreadPool for resolving FQDNs: %s", exc)
for item in results:
if item:
--
2.17.1
1
0
Hello community,
here is the log from the commit of package baloo5-widgets for openSUSE:Factory checked in at 2019-05-03 22:37:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/baloo5-widgets (Old)
and /work/SRC/openSUSE:Factory/.baloo5-widgets.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "baloo5-widgets"
Fri May 3 22:37:48 2019 rev:45 rq:698746 version:19.04.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/baloo5-widgets/baloo5-widgets.changes 2019-04-26 22:46:14.865588342 +0200
+++ /work/SRC/openSUSE:Factory/.baloo5-widgets.new.5148/baloo5-widgets.changes 2019-05-03 22:37:48.254661530 +0200
@@ -1,0 +2,9 @@
+Fri Apr 26 22:20:46 UTC 2019 - Stefan Brüns <stefan.bruens(a)rwth-aachen.de>
+
+- Fix truncation of first tag character (kde#405777)
+ * 0001-TagsFileItemAction-Fix-bad-truncation-of-tag-name.patch
+- Correct required versions for KF5 (5.57) and Qt5 (5.8.0)
+- Use 'cmake(Qt5*)' BuildRequires instead of pkgconfig
+- Remove kdelibs4support BuildRequires
+
+-------------------------------------------------------------------
New:
----
0001-TagsFileItemAction-Fix-bad-truncation-of-tag-name.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ baloo5-widgets.spec ++++++
--- /var/tmp/diff_new_pack.GcN6ms/_old 2019-05-03 22:37:48.702662461 +0200
+++ /var/tmp/diff_new_pack.GcN6ms/_new 2019-05-03 22:37:48.702662461 +0200
@@ -16,7 +16,7 @@
#
-%define kf5_version 5.26.0
+%define kf5_version 5.57.0
# Latest stable Applications (e.g. 17.08 in KA, but 17.11.80 in KUA)
%{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')}
%bcond_without lang
@@ -29,18 +29,18 @@
URL: http://www.kde.org
Source: baloo-widgets-%{version}.tar.xz
Source99: baloo5-widgets-rpmlintrc
+# PATCH-FIX-UPSTREAM
+Patch0: 0001-TagsFileItemAction-Fix-bad-truncation-of-tag-name.patch
BuildRequires: baloo5-devel
BuildRequires: extra-cmake-modules >= %{kf5_version}
-BuildRequires: kdelibs4support-devel
BuildRequires: kf5-filesystem
BuildRequires: kfilemetadata5-devel
BuildRequires: ki18n-devel
BuildRequires: kio-devel
BuildRequires: kservice-devel
-BuildRequires: pkgconfig
-BuildRequires: pkgconfig(Qt5Core) >= 5.2.0
-BuildRequires: pkgconfig(Qt5Test) >= 5.2.0
-BuildRequires: pkgconfig(Qt5Widgets) >= 5.2.0
+BuildRequires: cmake(Qt5Core) >= 5.8.0
+BuildRequires: cmake(Qt5Test) >= 5.8.0
+BuildRequires: cmake(Qt5Widgets) >= 5.8.0
Recommends: %{name}-lang
Obsoletes: libKF5BalooWidgets5
Provides: libKF5BalooNaturalQueryParser1 = %{version}
@@ -54,8 +54,7 @@
Group: Development/Libraries/KDE
Requires: %{name} = %{version}
Requires: kio-devel
-Requires: pkgconfig
-Requires: pkgconfig(Qt5Widgets) >= 5.2.0
+Requires: cmake(Qt5Widgets) >= 5.8.0
Provides: baloo-widgets5-devel
Obsoletes: baloo-widgets5-devel
@@ -66,6 +65,7 @@
%prep
%setup -q -n baloo-widgets-%{version}
+%patch0 -p1
%build
%cmake_kf5 -d build
++++++ 0001-TagsFileItemAction-Fix-bad-truncation-of-tag-name.patch ++++++
>From 03b915cb5801e458816ca48647644f29e44c4e1e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens(a)rwth-aachen.de>
Date: Fri, 26 Apr 2019 23:49:39 +0200
Subject: [PATCH 1/2] [TagsFileItemAction] Fix bad truncation of tag name
Summary:
Instead of reconstructing the tag name from the QAction text, just
capture the tag name. The action is not required in the capture, as the
`checked` state is emitted as a signal parameter.
BUG: 405777
Test Plan: Add tag via context menu
Reviewers: #baloo, #dolphin, nicolasfella, ngraham, elvisangelaccio
Tags: #baloo
Differential Revision: https://phabricator.kde.org/D20855
---
.../tagsfileitemaction.cpp | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/src/tagsfileitemactionplugin/tagsfileitemaction.cpp b/src/tagsfileitemactionplugin/tagsfileitemaction.cpp
index f5ce499..44fb2cb 100644
--- a/src/tagsfileitemactionplugin/tagsfileitemaction.cpp
+++ b/src/tagsfileitemactionplugin/tagsfileitemaction.cpp
@@ -52,18 +52,14 @@ TagsFileItemAction::TagsFileItemAction(QObject* parent, const QVariantList&)
action->setCheckable(true);
action->setChecked(m_metaData->tags().contains(name));
- connect(action, &QAction::triggered, this, [this, action] {
- if (action->isChecked()) {
- QStringList newTags = m_metaData->tags();
- // HACK the first character of QAction::text is '&'
- newTags.append(action->text().remove(0,1));
- m_metaData->setTags(newTags);
+ connect(action, &QAction::triggered, this, [this, name](bool isChecked) {
+ QStringList newTags = m_metaData->tags();
+ if (isChecked) {
+ newTags.append(name);
} else {
- QStringList newTags = m_metaData->tags();
- // HACK the first character of QAction::text is '&'
- newTags.removeAll(action->text().remove(0,1));
- m_metaData->setTags(newTags);
+ newTags.removeAll(name);
}
+ m_metaData->setTags(newTags);
});
}
});
--
2.21.0
1
0
Hello community,
here is the log from the commit of package exo for openSUSE:Factory checked in at 2019-05-03 22:37:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/exo (Old)
and /work/SRC/openSUSE:Factory/.exo.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "exo"
Fri May 3 22:37:39 2019 rev:63 rq:698664 version:0.12.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/exo/exo.changes 2019-03-27 16:10:27.211682068 +0100
+++ /work/SRC/openSUSE:Factory/.exo.new.5148/exo.changes 2019-05-03 22:37:40.658645752 +0200
@@ -1,0 +2,5 @@
+Fri Apr 26 15:58:20 UTC 2019 - Ignaz Forster <iforster(a)suse.com>
+
+- Fix failing %postun macro
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ exo.spec ++++++
--- /var/tmp/diff_new_pack.muu26k/_old 2019-05-03 22:37:41.450647397 +0200
+++ /var/tmp/diff_new_pack.muu26k/_new 2019-05-03 22:37:41.450647397 +0200
@@ -215,7 +215,6 @@
%post -n %{libname_gtk3} -p /sbin/ldconfig
%postun -n %{libname_gtk3} -p /sbin/ldconfig
-# marcros necessary for Leap 42.3 and below
%if 0%{?suse_version} < 1500
%post tools
%icon_theme_cache_post
1
0
Hello community,
here is the log from the commit of package perl-Test2-Suite for openSUSE:Factory checked in at 2019-05-03 22:37:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Test2-Suite (Old)
and /work/SRC/openSUSE:Factory/.perl-Test2-Suite.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Test2-Suite"
Fri May 3 22:37:31 2019 rev:14 rq:698644 version:0.000120
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Test2-Suite/perl-Test2-Suite.changes 2019-04-02 09:17:46.200498754 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Test2-Suite.new.5148/perl-Test2-Suite.changes 2019-05-03 22:37:32.998629840 +0200
@@ -1,0 +2,10 @@
+Sat Apr 27 05:37:03 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 0.000120
+ see /usr/share/doc/packages/perl-Test2-Suite/Changes
+
+ 0.000120 2019-04-26 05:19:18-07:00 America/Los_Angeles
+
+ - Allow all_items inside bag
+
+-------------------------------------------------------------------
Old:
----
Test2-Suite-0.000119.tar.gz
New:
----
Test2-Suite-0.000120.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Test2-Suite.spec ++++++
--- /var/tmp/diff_new_pack.YU7MbU/_old 2019-05-03 22:37:34.450632856 +0200
+++ /var/tmp/diff_new_pack.YU7MbU/_new 2019-05-03 22:37:34.458632873 +0200
@@ -17,7 +17,7 @@
Name: perl-Test2-Suite
-Version: 0.000119
+Version: 0.000120
Release: 0
%define cpan_name Test2-Suite
Summary: Distribution with a rich set of tools built upon the Test2
++++++ Test2-Suite-0.000119.tar.gz -> Test2-Suite-0.000120.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/Changes new/Test2-Suite-0.000120/Changes
--- old/Test2-Suite-0.000119/Changes 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/Changes 2019-04-26 14:19:19.000000000 +0200
@@ -1,3 +1,7 @@
+0.000120 2019-04-26 05:19:18-07:00 America/Los_Angeles
+
+ - Allow all_items inside bag
+
0.000119 2019-03-16 15:17:33-07:00 America/Los_Angeles
- Allow meta-checks in bag/array/hash (Thanks jjatria)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/META.json new/Test2-Suite-0.000120/META.json
--- old/Test2-Suite-0.000119/META.json 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/META.json 2019-04-26 14:19:19.000000000 +0200
@@ -62,7 +62,7 @@
"url" : "http://github.com/Test-More/Test2-Suite/"
}
},
- "version" : "0.000119",
+ "version" : "0.000120",
"x_generated_by_perl" : "v5.28.1",
"x_serialization_backend" : "Cpanel::JSON::XS version 4.08"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/META.yml new/Test2-Suite-0.000120/META.yml
--- old/Test2-Suite-0.000119/META.yml 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/META.yml 2019-04-26 14:19:19.000000000 +0200
@@ -31,6 +31,6 @@
resources:
bugtracker: http://github.com/Test-More/Test2-Suite/issues
repository: http://github.com/Test-More/Test2-Suite/
-version: '0.000119'
+version: '0.000120'
x_generated_by_perl: v5.28.1
x_serialization_backend: 'YAML::Tiny version 1.73'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/Makefile.PL new/Test2-Suite-0.000120/Makefile.PL
--- old/Test2-Suite-0.000119/Makefile.PL 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/Makefile.PL 2019-04-26 14:19:19.000000000 +0200
@@ -32,7 +32,7 @@
"overload" => 0,
"utf8" => 0
},
- "VERSION" => "0.000119",
+ "VERSION" => "0.000120",
"test" => {
"TESTS" => "t/*.t t/acceptance/*.t t/behavior/*.t t/modules/*.t t/modules/AsyncSubtest/*.t t/modules/AsyncSubtest/Event/*.t t/modules/Bundle/*.t t/modules/Compare/*.t t/modules/Plugin/*.t t/modules/Require/*.t t/modules/Tools/*.t t/modules/Util/*.t t/modules/Util/Table/*.t t/modules/Workflow/*.t t/modules/Workflow/Task/*.t t/regression/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/AsyncSubtest/Event/Attach.pm new/Test2-Suite-0.000120/lib/Test2/AsyncSubtest/Event/Attach.pm
--- old/Test2-Suite-0.000119/lib/Test2/AsyncSubtest/Event/Attach.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/AsyncSubtest/Event/Attach.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use base 'Test2::Event';
use Test2::Util::HashBase qw/id/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/AsyncSubtest/Event/Detach.pm new/Test2-Suite-0.000120/lib/Test2/AsyncSubtest/Event/Detach.pm
--- old/Test2-Suite-0.000119/lib/Test2/AsyncSubtest/Event/Detach.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/AsyncSubtest/Event/Detach.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use base 'Test2::Event';
use Test2::Util::HashBase qw/id/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/AsyncSubtest/Formatter.pm new/Test2-Suite-0.000120/lib/Test2/AsyncSubtest/Formatter.pm
--- old/Test2-Suite-0.000119/lib/Test2/AsyncSubtest/Formatter.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/AsyncSubtest/Formatter.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
die "Should not load this anymore";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/AsyncSubtest/Hub.pm new/Test2-Suite-0.000120/lib/Test2/AsyncSubtest/Hub.pm
--- old/Test2-Suite-0.000119/lib/Test2/AsyncSubtest/Hub.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/AsyncSubtest/Hub.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use base 'Test2::Hub::Subtest';
use Test2::Util::HashBase qw/ast_ids ast/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/AsyncSubtest.pm new/Test2-Suite-0.000120/lib/Test2/AsyncSubtest.pm
--- old/Test2-Suite-0.000119/lib/Test2/AsyncSubtest.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/AsyncSubtest.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use Test2::IPC;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
our @CARP_NOT = qw/Test2::Util::HashBase/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Bundle/Extended.pm new/Test2-Suite-0.000120/lib/Test2/Bundle/Extended.pm
--- old/Test2-Suite-0.000119/lib/Test2/Bundle/Extended.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Bundle/Extended.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use Test2::V0;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
BEGIN {
push @Test2::Bundle::Extended::ISA => 'Test2::V0';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Bundle/More.pm new/Test2-Suite-0.000120/lib/Test2/Bundle/More.pm
--- old/Test2-Suite-0.000119/lib/Test2/Bundle/More.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Bundle/More.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Plugin::ExitSummary;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Bundle/Simple.pm new/Test2-Suite-0.000120/lib/Test2/Bundle/Simple.pm
--- old/Test2-Suite-0.000119/lib/Test2/Bundle/Simple.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Bundle/Simple.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Plugin::ExitSummary;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Bundle.pm new/Test2-Suite-0.000120/lib/Test2/Bundle.pm
--- old/Test2-Suite-0.000119/lib/Test2/Bundle.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Bundle.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Array.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Array.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Array.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Array.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/inref meta ending items order for_each/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Bag.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Bag.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Bag.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Bag.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,9 +4,9 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
-use Test2::Util::HashBase qw/ending meta items/;
+use Test2::Util::HashBase qw/ending meta items for_each/;
use Carp qw/croak confess/;
use Scalar::Util qw/reftype looks_like_number/;
@@ -14,7 +14,8 @@
sub init {
my $self = shift;
- $self->{+ITEMS} ||= [];
+ $self->{+ITEMS} ||= [];
+ $self->{+FOR_EACH} ||= [];
$self->SUPER::init();
}
@@ -48,6 +49,11 @@
push @{$self->{+ITEMS}}, $check;
}
+sub add_for_each {
+ my $self = shift;
+ push @{$self->{+FOR_EACH}} => @_;
+}
+
sub deltas {
my $self = shift;
my %params = @_;
@@ -56,6 +62,7 @@
my @deltas;
my $state = 0;
my @items = @{$self->{+ITEMS}};
+ my @for_each = @{$self->{+FOR_EACH}};
# Make a copy that we can munge as needed.
my @list = @$got;
@@ -98,6 +105,27 @@
}
}
+ if (@for_each) {
+ my @checks = map { $convert->($_) } @for_each;
+
+ for my $idx (0..$#list) {
+ # All items are matched if we have conditions for all items
+ delete $unmatched{$idx};
+
+ my $val = $list[$idx];
+
+ for my $check (@checks) {
+ push @deltas => $check->run(
+ id => [ARRAY => $idx],
+ convert => $convert,
+ seen => $seen,
+ exists => 1,
+ got => $val,
+ );
+ }
+ }
+ }
+
# if elements are left over, and ending is true, we have a problem!
if($self->{+ENDING} && keys %unmatched) {
for my $idx (sort keys %unmatched) {
@@ -147,7 +175,7 @@
unexpected. If set to false then it is assumed you do not care about extra
items.
-=item $hashref = $arr->items()
+=item $arrayref = $arr->items()
Returns the arrayref of values to be checked in the array.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Base.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Base.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Base.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Base.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/confess croak/;
use Scalar::Util qw/blessed/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Bool.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Bool.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Bool.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Bool.pm 2019-04-26 14:19:19.000000000 +0200
@@ -6,7 +6,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/input/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Custom.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Custom.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Custom.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Custom.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/code name operator/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/DeepRef.pm new/Test2-Suite-0.000120/lib/Test2/Compare/DeepRef.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/DeepRef.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/DeepRef.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/input/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Delta.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Delta.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Delta.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Delta.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw{verified id got chk children dne exception note};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Event.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Event.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Event.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Event.pm 2019-04-26 14:19:19.000000000 +0200
@@ -8,7 +8,7 @@
use base 'Test2::Compare::Object';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/etype/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/EventMeta.pm new/Test2-Suite-0.000120/lib/Test2/Compare/EventMeta.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/EventMeta.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/EventMeta.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Meta';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Float.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Float.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Float.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Float.pm 2019-04-26 14:19:19.000000000 +0200
@@ -6,7 +6,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
our $DEFAULT_TOLERANCE = 1e-08;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Hash.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Hash.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Hash.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Hash.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/inref meta ending items order for_each_key for_each_val/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Meta.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Meta.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Meta.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Meta.pm 2019-04-26 14:19:19.000000000 +0200
@@ -6,7 +6,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/items/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Negatable.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Negatable.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Negatable.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Negatable.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
require overload;
require Test2::Util::HashBase;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Number.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Number.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Number.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Number.pm 2019-04-26 14:19:19.000000000 +0200
@@ -6,7 +6,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/input/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Object.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Object.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Object.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Object.pm 2019-04-26 14:19:19.000000000 +0200
@@ -8,7 +8,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/calls meta refcheck ending/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/OrderedSubset.pm new/Test2-Suite-0.000120/lib/Test2/Compare/OrderedSubset.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/OrderedSubset.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/OrderedSubset.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/inref items/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Pattern.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Pattern.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Pattern.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Pattern.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/pattern stringify_got/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Ref.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Ref.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Ref.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Ref.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/input/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Regex.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Regex.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Regex.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Regex.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/input/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Scalar.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Scalar.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Scalar.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Scalar.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/item/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Set.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Set.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Set.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Set.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/checks _reduction/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/String.pm new/Test2-Suite-0.000120/lib/Test2/Compare/String.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/String.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/String.pm 2019-04-26 14:19:19.000000000 +0200
@@ -6,7 +6,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/input/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Undef.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Undef.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Undef.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Undef.pm 2019-04-26 14:19:19.000000000 +0200
@@ -6,7 +6,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare/Wildcard.pm new/Test2-Suite-0.000120/lib/Test2/Compare/Wildcard.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare/Wildcard.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare/Wildcard.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Compare::Base';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/expect/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Compare.pm new/Test2-Suite-0.000120/lib/Test2/Compare.pm
--- old/Test2-Suite-0.000119/lib/Test2/Compare.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Compare.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Scalar::Util qw/blessed/;
use Test2::Util qw/try/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Event/Times.pm new/Test2-Suite-0.000120/lib/Test2/Event/Times.pm
--- old/Test2-Suite-0.000119/lib/Test2/Event/Times.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Event/Times.pm 2019-04-26 14:19:19.000000000 +0200
@@ -7,7 +7,7 @@
use Test2::Util::Times qw/render_bench/;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
sub summary {
my $self = shift;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/API.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/API.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/API.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/API.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/Context.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/Context.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/Context.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/Context.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/EndToEnd.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/EndToEnd.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/EndToEnd.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/EndToEnd.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/Event.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/Event.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/Event.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/Event.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/Hubs.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/Hubs.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/Hubs.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/Hubs.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/IPC.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/IPC.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/IPC.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/IPC.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/Utilities.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/Utilities.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy/Utilities.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy/Utilities.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Anatomy.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Anatomy.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Contributing.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Contributing.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Contributing.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Contributing.pm 2019-04-26 14:19:19.000000000 +0200
@@ -1,6 +1,6 @@
package Test2::Manual::Contributing;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Testing/Introduction.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Testing/Introduction.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Testing/Introduction.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Testing/Introduction.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Testing/Migrating.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Testing/Migrating.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Testing/Migrating.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Testing/Migrating.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Testing/Planning.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Testing/Planning.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Testing/Planning.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Testing/Planning.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Testing/Todo.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Testing/Todo.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Testing/Todo.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Testing/Todo.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Testing.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Testing.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Testing.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Testing.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/FirstTool.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/FirstTool.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/FirstTool.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/FirstTool.pm 2019-04-26 14:19:19.000000000 +0200
@@ -1,6 +1,6 @@
package Test2::Manual::Tooling::FirstTool;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Formatter.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Formatter.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Formatter.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Formatter.pm 2019-04-26 14:19:19.000000000 +0200
@@ -1,6 +1,6 @@
package Test2::Manual::Tooling::Formatter;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Nesting.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Nesting.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Nesting.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Nesting.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Plugin/TestExit.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Plugin/TestExit.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Plugin/TestExit.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Plugin/TestExit.pm 2019-04-26 14:19:19.000000000 +0200
@@ -1,6 +1,6 @@
package Test2::Manual::Tooling::Plugin::TestExit;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Plugin/TestingDone.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Plugin/TestingDone.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Plugin/TestingDone.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Plugin/TestingDone.pm 2019-04-26 14:19:19.000000000 +0200
@@ -1,6 +1,6 @@
package Test2::Manual::Tooling::Plugin::TestingDone;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Plugin/ToolCompletes.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Plugin/ToolCompletes.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Plugin/ToolCompletes.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Plugin/ToolCompletes.pm 2019-04-26 14:19:19.000000000 +0200
@@ -1,6 +1,6 @@
package Test2::Manual::Tooling::Plugin::ToolCompletes;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Plugin/ToolStarts.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Plugin/ToolStarts.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Plugin/ToolStarts.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Plugin/ToolStarts.pm 2019-04-26 14:19:19.000000000 +0200
@@ -1,6 +1,6 @@
package Test2::Manual::Tooling::Plugin::ToolStarts;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Subtest.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Subtest.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Subtest.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Subtest.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/TestBuilder.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/TestBuilder.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/TestBuilder.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/TestBuilder.pm 2019-04-26 14:19:19.000000000 +0200
@@ -1,6 +1,6 @@
package Test2::Manual::Tooling::TestBuilder;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Testing.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Testing.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling/Testing.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling/Testing.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling.pm new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual/Tooling.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual/Tooling.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Manual.pm new/Test2-Suite-0.000120/lib/Test2/Manual.pm
--- old/Test2-Suite-0.000119/lib/Test2/Manual.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Manual.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Mock.pm new/Test2-Suite-0.000120/lib/Test2/Mock.pm
--- old/Test2-Suite-0.000119/lib/Test2/Mock.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Mock.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak confess/;
our @CARP_NOT = (__PACKAGE__);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Plugin/BailOnFail.pm new/Test2-Suite-0.000120/lib/Test2/Plugin/BailOnFail.pm
--- old/Test2-Suite-0.000119/lib/Test2/Plugin/BailOnFail.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Plugin/BailOnFail.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API qw/test2_add_callback_context_release/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Plugin/DieOnFail.pm new/Test2-Suite-0.000120/lib/Test2/Plugin/DieOnFail.pm
--- old/Test2-Suite-0.000119/lib/Test2/Plugin/DieOnFail.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Plugin/DieOnFail.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API qw/test2_add_callback_context_release/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Plugin/ExitSummary.pm new/Test2-Suite-0.000120/lib/Test2/Plugin/ExitSummary.pm
--- old/Test2-Suite-0.000119/lib/Test2/Plugin/ExitSummary.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Plugin/ExitSummary.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API qw/test2_add_callback_exit/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Plugin/SRand.pm new/Test2-Suite-0.000120/lib/Test2/Plugin/SRand.pm
--- old/Test2-Suite-0.000119/lib/Test2/Plugin/SRand.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Plugin/SRand.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/carp/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Plugin/Times.pm new/Test2-Suite-0.000120/lib/Test2/Plugin/Times.pm
--- old/Test2-Suite-0.000119/lib/Test2/Plugin/Times.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Plugin/Times.pm 2019-04-26 14:19:19.000000000 +0200
@@ -10,7 +10,7 @@
use Time::HiRes qw/time/;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
sub import {
my $start = time;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Plugin/UTF8.pm new/Test2-Suite-0.000120/lib/Test2/Plugin/UTF8.pm
--- old/Test2-Suite-0.000119/lib/Test2/Plugin/UTF8.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Plugin/UTF8.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API qw{
test2_add_callback_post_load
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Plugin.pm new/Test2-Suite-0.000120/lib/Test2/Plugin.pm
--- old/Test2-Suite-0.000119/lib/Test2/Plugin.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Plugin.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Require/AuthorTesting.pm new/Test2-Suite-0.000120/lib/Test2/Require/AuthorTesting.pm
--- old/Test2-Suite-0.000119/lib/Test2/Require/AuthorTesting.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Require/AuthorTesting.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Require';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
sub skip {
my $class = shift;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Require/EnvVar.pm new/Test2-Suite-0.000120/lib/Test2/Require/EnvVar.pm
--- old/Test2-Suite-0.000119/lib/Test2/Require/EnvVar.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Require/EnvVar.pm 2019-04-26 14:19:19.000000000 +0200
@@ -5,7 +5,7 @@
use Carp qw/confess/;
use base 'Test2::Require';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
sub skip {
my $class = shift;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Require/Fork.pm new/Test2-Suite-0.000120/lib/Test2/Require/Fork.pm
--- old/Test2-Suite-0.000119/lib/Test2/Require/Fork.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Require/Fork.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Require';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util qw/CAN_FORK/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Require/Module.pm new/Test2-Suite-0.000120/lib/Test2/Require/Module.pm
--- old/Test2-Suite-0.000119/lib/Test2/Require/Module.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Require/Module.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Require';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util qw/pkg_to_file/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Require/Perl.pm new/Test2-Suite-0.000120/lib/Test2/Require/Perl.pm
--- old/Test2-Suite-0.000119/lib/Test2/Require/Perl.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Require/Perl.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Require';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util qw/pkg_to_file/;
use Scalar::Util qw/reftype/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Require/RealFork.pm new/Test2-Suite-0.000120/lib/Test2/Require/RealFork.pm
--- old/Test2-Suite-0.000119/lib/Test2/Require/RealFork.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Require/RealFork.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Require';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util qw/CAN_REALLY_FORK/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Require/Threads.pm new/Test2-Suite-0.000120/lib/Test2/Require/Threads.pm
--- old/Test2-Suite-0.000119/lib/Test2/Require/Threads.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Require/Threads.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use base 'Test2::Require';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util qw/CAN_THREAD/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Require.pm new/Test2-Suite-0.000120/lib/Test2/Require.pm
--- old/Test2-Suite-0.000119/lib/Test2/Require.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Require.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API qw/context/;
use Carp qw/croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Suite.pm new/Test2-Suite-0.000120/lib/Test2/Suite.pm
--- old/Test2-Suite-0.000119/lib/Test2/Suite.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Suite.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Todo.pm new/Test2-Suite-0.000120/lib/Test2/Todo.pm
--- old/Test2-Suite-0.000119/lib/Test2/Todo.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Todo.pm 2019-04-26 14:19:19.000000000 +0200
@@ -9,7 +9,7 @@
use overload '""' => \&reason, fallback => 1;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
sub init {
my $self = shift;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/AsyncSubtest.pm new/Test2-Suite-0.000120/lib/Test2/Tools/AsyncSubtest.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/AsyncSubtest.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/AsyncSubtest.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::IPC;
use Test2::AsyncSubtest;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Basic.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Basic.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Basic.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Basic.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak/;
use Test2::API qw/context/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Class.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Class.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Class.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Class.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API qw/context/;
use Test2::Util::Ref qw/render_ref/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/ClassicCompare.pm new/Test2-Suite-0.000120/lib/Test2/Tools/ClassicCompare.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/ClassicCompare.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/ClassicCompare.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
our @EXPORT = qw/is is_deeply isnt like unlike cmp_ok/;
use base 'Exporter';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Compare.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Compare.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Compare.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Compare.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak/;
use Scalar::Util qw/reftype/;
@@ -994,9 +994,13 @@
rounded to 'precision' number of fractional decimal digits and
compared with C<eq>.
+ is($near_val, float($val, precision = 4), "Near 4 decimal digits");
+
Otherwise, the check will be made within a range of +/- 'tolerance',
with a default 'tolerance' of 1e-08.
+ is( $near_val, float($val, tolerance = 0.01), "Almost there...");
+
See also C<within> and C<rounded>.
=item $check = !float ...;
@@ -1328,6 +1332,11 @@
B<Note:> This function can only be used inside an array, bag or subset
builder sub, and must be called in void context.
+=item all_items($CHECK1, $CHECK2, ...)
+
+Add checks that apply to all items. You can put this anywhere in the bag
+block, and can call it any number of times with any number of arguments.
+
=item end()
Enforce that there are no more items after the last one specified.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Defer.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Defer.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Defer.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Defer.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Encoding.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Encoding.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Encoding.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Encoding.pm 2019-04-26 14:19:19.000000000 +0200
@@ -8,7 +8,7 @@
use base 'Exporter';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
our @EXPORT = qw/set_encoding/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Event.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Event.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Event.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Event.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util qw/pkg_to_file/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Exception.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Exception.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Exception.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Exception.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API qw/context/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Exports.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Exports.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Exports.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Exports.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak carp/;
use Test2::API qw/context/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/GenTemp.pm new/Test2-Suite-0.000120/lib/Test2/Tools/GenTemp.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/GenTemp.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/GenTemp.pm 2019-04-26 14:19:19.000000000 +0200
@@ -3,7 +3,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use File::Temp qw/tempdir/;
use File::Spec;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Grab.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Grab.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Grab.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Grab.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::Grabber;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Mock.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Mock.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Mock.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Mock.pm 2019-04-26 14:19:19.000000000 +0200
@@ -11,7 +11,7 @@
use base 'Exporter';
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
our @CARP_NOT = (__PACKAGE__, 'Test2::Mock');
our @EXPORT = qw/mock mocked/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Ref.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Ref.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Ref.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Ref.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Scalar::Util qw/reftype refaddr/;
use Test2::API qw/context/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Spec.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Spec.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Spec.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Spec.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak/;
use Test2::Workflow qw/parse_args build current_build root_build init_root build_stack/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Subtest.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Subtest.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Subtest.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Subtest.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API qw/context run_subtest/;
use Test2::Util qw/try/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Target.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Target.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Target.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Target.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Tester.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Tester.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Tester.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Tester.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak/;
use Module::Pluggable search_path => ['Test2::EventFacet'], require => 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools/Warnings.pm new/Test2-Suite-0.000120/lib/Test2/Tools/Warnings.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools/Warnings.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools/Warnings.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API qw/context/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Tools.pm new/Test2-Suite-0.000120/lib/Test2/Tools.pm
--- old/Test2-Suite-0.000119/lib/Test2/Tools.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Tools.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Util/Grabber.pm new/Test2-Suite-0.000120/lib/Test2/Util/Grabber.pm
--- old/Test2-Suite-0.000119/lib/Test2/Util/Grabber.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Util/Grabber.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Hub::Interceptor();
use Test2::Util::Trace();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Util/Ref.pm new/Test2-Suite-0.000120/lib/Test2/Util/Ref.pm
--- old/Test2-Suite-0.000119/lib/Test2/Util/Ref.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Util/Ref.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Scalar::Util qw/reftype blessed refaddr/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Util/Stash.pm new/Test2-Suite-0.000120/lib/Test2/Util/Stash.pm
--- old/Test2-Suite-0.000119/lib/Test2/Util/Stash.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Util/Stash.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak/;
use B;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Util/Sub.pm new/Test2-Suite-0.000120/lib/Test2/Util/Sub.pm
--- old/Test2-Suite-0.000119/lib/Test2/Util/Sub.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Util/Sub.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak carp/;
use B();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Util/Table/Cell.pm new/Test2-Suite-0.000120/lib/Test2/Util/Table/Cell.pm
--- old/Test2-Suite-0.000119/lib/Test2/Util/Table/Cell.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Util/Table/Cell.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use base 'Term::Table::Cell';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Util/Table/LineBreak.pm new/Test2-Suite-0.000120/lib/Test2/Util/Table/LineBreak.pm
--- old/Test2-Suite-0.000119/lib/Test2/Util/Table/LineBreak.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Util/Table/LineBreak.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use base 'Term::Table::LineBreak';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Util/Table.pm new/Test2-Suite-0.000120/lib/Test2/Util/Table.pm
--- old/Test2-Suite-0.000119/lib/Test2/Util/Table.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Util/Table.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use base 'Term::Table';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Util/Term.pm new/Test2-Suite-0.000120/lib/Test2/Util/Term.pm
--- old/Test2-Suite-0.000119/lib/Test2/Util/Term.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Util/Term.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use Term::Table::Util qw/term_size USE_GCS USE_TERM_READKEY uni_length/;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Importer Importer => 'import';
our @EXPORT_OK = qw/term_size USE_GCS USE_TERM_READKEY uni_length/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Util/Times.pm new/Test2-Suite-0.000120/lib/Test2/Util/Times.pm
--- old/Test2-Suite-0.000119/lib/Test2/Util/Times.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Util/Times.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use List::Util qw/sum/;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
our @EXPORT_OK = qw/render_bench/;
use base 'Exporter';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/V0.pm new/Test2-Suite-0.000120/lib/Test2/V0.pm
--- old/Test2-Suite-0.000119/lib/Test2/V0.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/V0.pm 2019-04-26 14:19:19.000000000 +0200
@@ -4,7 +4,7 @@
use Importer;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Workflow/BlockBase.pm new/Test2-Suite-0.000120/lib/Test2/Workflow/BlockBase.pm
--- old/Test2-Suite-0.000119/lib/Test2/Workflow/BlockBase.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Workflow/BlockBase.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Util::HashBase qw/code frame _info _lines/;
use Sub::Info qw/sub_info/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Workflow/Build.pm new/Test2-Suite-0.000120/lib/Test2/Workflow/Build.pm
--- old/Test2-Suite-0.000119/lib/Test2/Workflow/Build.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Workflow/Build.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::Workflow::Task::Group;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Workflow/Runner.pm new/Test2-Suite-0.000120/lib/Test2/Workflow/Runner.pm
--- old/Test2-Suite-0.000119/lib/Test2/Workflow/Runner.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Workflow/Runner.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API();
use Test2::Todo();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Workflow/Task/Action.pm new/Test2-Suite-0.000120/lib/Test2/Workflow/Task/Action.pm
--- old/Test2-Suite-0.000119/lib/Test2/Workflow/Task/Action.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Workflow/Task/Action.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use base 'Test2::Workflow::Task';
use Test2::Util::HashBase qw/around/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Workflow/Task/Group.pm new/Test2-Suite-0.000120/lib/Test2/Workflow/Task/Group.pm
--- old/Test2-Suite-0.000119/lib/Test2/Workflow/Task/Group.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Workflow/Task/Group.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Carp qw/croak/;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Workflow/Task.pm new/Test2-Suite-0.000120/lib/Test2/Workflow/Task.pm
--- old/Test2-Suite-0.000119/lib/Test2/Workflow/Task.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Workflow/Task.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
use Test2::API();
use Test2::Event::Exception();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/lib/Test2/Workflow.pm new/Test2-Suite-0.000120/lib/Test2/Workflow.pm
--- old/Test2-Suite-0.000119/lib/Test2/Workflow.pm 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/lib/Test2/Workflow.pm 2019-04-26 14:19:19.000000000 +0200
@@ -2,7 +2,7 @@
use strict;
use warnings;
-our $VERSION = '0.000119';
+our $VERSION = '0.000120';
our @EXPORT_OK = qw/parse_args current_build build root_build init_root build_stack/;
use base 'Exporter';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test2-Suite-0.000119/t/modules/Tools/Compare.t new/Test2-Suite-0.000120/t/modules/Tools/Compare.t
--- old/Test2-Suite-0.000119/t/modules/Tools/Compare.t 2019-03-16 23:17:34.000000000 +0100
+++ new/Test2-Suite-0.000120/t/modules/Tools/Compare.t 2019-04-26 14:19:19.000000000 +0200
@@ -1644,7 +1644,7 @@
ok(!$_->{pass}, "Event was a failure") for @$events
};
-subtest all_items => sub {
+subtest all_items_on_array => sub {
like(
[qw/a aa aaa/],
array {
@@ -1687,6 +1687,55 @@
],
),
};
+
+ },
+ "items do not all match, and diag reflects all issues, and in order"
+ );
+};
+
+subtest all_items_on_bag => sub {
+ like(
+ [qw/a aa aaa/],
+ bag {
+ all_items match qr/^a+$/;
+ item 'a';
+ item 'aa';
+ },
+ "All items match regex"
+ );
+
+ my @lines;
+ my $array = [qw/a aa aaa/];
+ my $regx = qr/^b+$/;
+ my $events = intercept {
+ is(
+ $array,
+ bag {
+ all_items match $regx; push @lines => __LINE__;
+ item 'b'; push @lines => __LINE__;
+ item 'aa'; push @lines => __LINE__;
+ end;
+ },
+ "items do not all match, and diag reflects all issues, and in order"
+ );
+ };
+
+ like(
+ $events,
+ array {
+ fail_events Ok => {pass => 0};
+ event Diag => {
+ message => table(
+ header => [qw/PATH GOT OP CHECK LNs/],
+ rows => [
+ ['', "$array", '', "<BAG>", ($lines[0] - 1) . ", " . ($lines[-1] + 2)],
+ ['[*]', '<DOES NOT EXIST>', '', 'b', $lines[1]],
+ ['[0]', 'a', '=~', $regx, $lines[0]],
+ ['[1]', 'aa', '=~', $regx, $lines[0]],
+ ['[2]', 'aaa', '=~', $regx, $lines[0]],
+ ],
+ ),
+ };
},
"items do not all match, and diag reflects all issues, and in order"
1
0
Hello community,
here is the log from the commit of package perl-Module-Metadata for openSUSE:Factory checked in at 2019-05-03 22:37:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Module-Metadata (Old)
and /work/SRC/openSUSE:Factory/.perl-Module-Metadata.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Module-Metadata"
Fri May 3 22:37:23 2019 rev:6 rq:698637 version:1.000036
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Module-Metadata/perl-Module-Metadata.changes 2019-04-21 09:03:14.738541549 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Module-Metadata.new.5148/perl-Module-Metadata.changes 2019-05-03 22:37:24.662612524 +0200
@@ -1,0 +2,9 @@
+Sat Apr 20 05:15:40 UTC 2019 - Stephan Kulow <coolo(a)suse.com>
+
+- updated to 1.000036
+ see /usr/share/doc/packages/perl-Module-Metadata/Changes
+
+ 1.000036 2019-04-18 18:25:15Z
+ - properly clean up temp dirs after testing
+
+-------------------------------------------------------------------
Old:
----
Module-Metadata-1.000035.tar.gz
New:
----
Module-Metadata-1.000036.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Module-Metadata.spec ++++++
--- /var/tmp/diff_new_pack.eftLyf/_old 2019-05-03 22:37:25.406614070 +0200
+++ /var/tmp/diff_new_pack.eftLyf/_new 2019-05-03 22:37:25.410614079 +0200
@@ -17,7 +17,7 @@
Name: perl-Module-Metadata
-Version: 1.000035
+Version: 1.000036
Release: 0
%define cpan_name Module-Metadata
Summary: Gather package and POD information from perl module files
++++++ Module-Metadata-1.000035.tar.gz -> Module-Metadata-1.000036.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/Changes new/Module-Metadata-1.000036/Changes
--- old/Module-Metadata-1.000035/Changes 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/Changes 2019-04-18 20:25:23.000000000 +0200
@@ -1,5 +1,8 @@
Revision history for Module-Metadata
+1.000036 2019-04-18 18:25:15Z
+ - properly clean up temp dirs after testing
+
1.000035 2019-04-18 02:43:11Z
- quieten noisy tests (issue #31)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/META.json new/Module-Metadata-1.000036/META.json
--- old/Module-Metadata-1.000035/META.json 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/META.json 2019-04-18 20:25:23.000000000 +0200
@@ -167,7 +167,7 @@
"provides" : {
"Module::Metadata" : {
"file" : "lib/Module/Metadata.pm",
- "version" : "1.000035"
+ "version" : "1.000036"
}
},
"release_status" : "stable",
@@ -185,7 +185,7 @@
"x_IRC" : "irc://irc.perl.org/#toolchain",
"x_MailingList" : "http://lists.perl.org/list/cpan-workers.html"
},
- "version" : "1.000035",
+ "version" : "1.000036",
"x_Dist_Zilla" : {
"perl" : {
"version" : "5.029009"
@@ -1020,7 +1020,7 @@
"branch" : null,
"changelog" : "Changes",
"signed" : 0,
- "tag" : "v1.000035",
+ "tag" : "v1.000036",
"tag_format" : "v%V",
"tag_message" : "v%v%t"
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/META.yml new/Module-Metadata-1.000036/META.yml
--- old/Module-Metadata-1.000035/META.yml 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/META.yml 2019-04-18 20:25:23.000000000 +0200
@@ -32,7 +32,7 @@
provides:
Module::Metadata:
file: lib/Module/Metadata.pm
- version: '1.000035'
+ version: '1.000036'
requires:
Carp: '0'
Fcntl: '0'
@@ -48,7 +48,7 @@
bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Module-Metadata
homepage: https://github.com/Perl-Toolchain-Gang/Module-Metadata
repository: https://github.com/Perl-Toolchain-Gang/Module-Metadata.git
-version: '1.000035'
+version: '1.000036'
x_Dist_Zilla:
perl:
version: '5.029009'
@@ -687,7 +687,7 @@
branch: ~
changelog: Changes
signed: 0
- tag: v1.000035
+ tag: v1.000036
tag_format: v%V
tag_message: v%v%t
Dist::Zilla::Role::Git::Repo:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/Makefile.PL new/Module-Metadata-1.000036/Makefile.PL
--- old/Module-Metadata-1.000035/Makefile.PL 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/Makefile.PL 2019-04-18 20:25:23.000000000 +0200
@@ -36,7 +36,7 @@
"Test::More" => "0.88",
"lib" => 0
},
- "VERSION" => "1.000035",
+ "VERSION" => "1.000036",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/README new/Module-Metadata-1.000036/README
--- old/Module-Metadata-1.000035/README 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/README 2019-04-18 20:25:23.000000000 +0200
@@ -1,5 +1,5 @@
This archive contains the distribution Module-Metadata,
-version 1.000035:
+version 1.000036:
Gather package and POD information from perl module files
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/lib/Module/Metadata.pm new/Module-Metadata-1.000036/lib/Module/Metadata.pm
--- old/Module-Metadata-1.000035/lib/Module/Metadata.pm 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/lib/Module/Metadata.pm 2019-04-18 20:25:23.000000000 +0200
@@ -1,6 +1,6 @@
# -*- mode: cperl; tab-width: 8; indent-tabs-mode: nil; basic-offset: 2 -*-
# vim:ts=8:sw=2:et:sta:sts=2:tw=78
-package Module::Metadata; # git description: v1.000034-7-gcc9c7d0
+package Module::Metadata; # git description: v1.000035-3-gaa51be1
# ABSTRACT: Gather package and POD information from perl module files
# Adapted from Perl-licensed code originally distributed with
@@ -14,7 +14,7 @@
use strict;
use warnings;
-our $VERSION = '1.000035';
+our $VERSION = '1.000036';
use Carp qw/croak/;
use File::Spec;
@@ -841,7 +841,7 @@
=head1 VERSION
-version 1.000035
+version 1.000036
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/t/extract-package.t new/Module-Metadata-1.000036/t/extract-package.t
--- old/Module-Metadata-1.000035/t/extract-package.t 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/t/extract-package.t 2019-04-18 20:25:23.000000000 +0200
@@ -159,7 +159,8 @@
or $errs++;
}
is( $warnings, '', "case $test_case->{name}: no warnings from parsing" ) or $errs++;
- diag "Got: '" . join(', ', @got) . "'\nModule contents:\n$code" if !$ENV{PERL_CORE} && $errs;
+ diag "Got: '" . join(', ', @got) . "'\nModule contents:\n$code"
+ if $errs and not $ENV{PERL_CORE} and ($ENV{AUTHOR_TESTING} or $ENV{AUTOMATED_TESTING});
}
continue {
++$test_num;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/t/extract-version.t new/Module-Metadata-1.000036/t/extract-version.t
--- old/Module-Metadata-1.000035/t/extract-version.t 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/t/extract-version.t 2019-04-18 20:25:23.000000000 +0200
@@ -690,7 +690,8 @@
}
is( $warnings, '', "case '$test_case->{name}': no warnings from parsing" ) or $errs++;
- diag 'parsed module: ', explain($pm_info) if !$ENV{PERL_CORE} && $errs;
+ diag 'parsed module: ', explain($pm_info) if $errs and not $ENV{PERL_CORE}
+ and ($ENV{AUTHOR_TESTING} or $ENV{AUTOMATED_TESTING});
}
}
continue {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/t/lib/GeneratePackage.pm new/Module-Metadata-1.000036/t/lib/GeneratePackage.pm
--- old/Module-Metadata-1.000035/t/lib/GeneratePackage.pm 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/t/lib/GeneratePackage.pm 2019-04-18 20:25:23.000000000 +0200
@@ -17,18 +17,21 @@
sub _original_cwd { return $cwd }
}
+my @tmpdirs;
sub tmpdir {
my (@args) = @_;
- File::Temp::tempdir(
+ my $tmpdir = File::Temp::tempdir(
'MMD-XXXXXXXX',
CLEANUP => 0,
DIR => ($ENV{PERL_CORE} ? _original_cwd : File::Spec->tmpdir),
@args,
);
+ Test::More::note "using temp dir $tmpdir";
+ push @tmpdirs, $tmpdir;
+ return $tmpdir;
}
my $tmp;
-BEGIN { $tmp = tmpdir; Test::More::note "using temp dir $tmp"; }
sub generate_file {
my ($dir, $rel_filename, $content) = @_;
@@ -48,9 +51,11 @@
END {
die "tests failed; leaving temp dir $tmp behind"
if $ENV{AUTHOR_TESTING} and not Test::Builder->new->is_passing;
- Test::More::note "removing temp dir $tmp";
chdir _original_cwd;
- File::Path::rmtree($tmp);
+ foreach my $tmp (@tmpdirs) {
+ Test::More::note "removing temp dir $tmp";
+ File::Path::rmtree($tmp);
+ }
}
1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/t/metadata.t new/Module-Metadata-1.000036/t/metadata.t
--- old/Module-Metadata-1.000035/t/metadata.t 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/t/metadata.t 2019-04-18 20:25:23.000000000 +0200
@@ -196,7 +196,8 @@
is( $pm_info->version, '0.01', "correct script version ($i of $n)" ) or $errs++;
$i++;
- diag 'parsed module: ', explain($pm_info) if !$ENV{PERL_CORE} && $errs;
+ diag 'parsed module: ', explain($pm_info) if $errs and not $ENV{PERL_CORE}
+ and ($ENV{AUTHOR_TESTING} or $ENV{AUTOMATED_TESTING});
}
{
@@ -351,7 +352,8 @@
)
or $errs++;
- diag 'parsed module: ', explain($pm_info) if !$ENV{PERL_CORE} && $errs;
+ diag 'parsed module: ', explain($pm_info) if $errs and not $ENV{PERL_CORE}
+ and ($ENV{AUTHOR_TESTING} or $ENV{AUTOMATED_TESTING});
}
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-Metadata-1.000035/xt/release/changes_has_content.t new/Module-Metadata-1.000036/xt/release/changes_has_content.t
--- old/Module-Metadata-1.000035/xt/release/changes_has_content.t 2019-04-18 04:43:19.000000000 +0200
+++ new/Module-Metadata-1.000036/xt/release/changes_has_content.t 2019-04-18 20:25:23.000000000 +0200
@@ -2,7 +2,7 @@
note 'Checking Changes';
my $changes_file = 'Changes';
-my $newver = '1.000035';
+my $newver = '1.000036';
my $trial_token = '-TRIAL';
my $encoding = 'UTF-8';
1
0
Hello community,
here is the log from the commit of package python-sphinx-issues for openSUSE:Factory checked in at 2019-05-03 22:37:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sphinx-issues (Old)
and /work/SRC/openSUSE:Factory/.python-sphinx-issues.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sphinx-issues"
Fri May 3 22:37:14 2019 rev:4 rq:698629 version:1.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sphinx-issues/python-sphinx-issues.changes 2018-12-24 11:44:21.285294536 +0100
+++ /work/SRC/openSUSE:Factory/.python-sphinx-issues.new.5148/python-sphinx-issues.changes 2019-05-03 22:37:14.906592260 +0200
@@ -1,0 +2,16 @@
+Fri Apr 26 13:05:20 UTC 2019 - Marketa Calabkova <mcalabkova(a)suse.com>
+
+- update to version 1.2.0
+ 1.?.?
+ * Add :commit: role for linking to commits.
+ * Add support for linking to external repos.
+ * Add :cve: role for linking to CVEs on https://cve.mitre.org.
+ * Add :pr: role.
+ * Drop support for Python 3.4.
+ 0.4.0
+ * Raise ValueError if neither issues_uri nor issues_github_path
+ is set.
+ * Drop support for Python 2.6 and 3.3.
+- take GitHub tarball because of the tests
+
+-------------------------------------------------------------------
Old:
----
sphinx-issues-0.3.1.tar.gz
New:
----
1.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sphinx-issues.spec ++++++
--- /var/tmp/diff_new_pack.mMS8hM/_old 2019-05-03 22:37:15.374593232 +0200
+++ /var/tmp/diff_new_pack.mMS8hM/_new 2019-05-03 22:37:15.378593240 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-sphinx-issues
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,22 +20,23 @@
%{!?license: %global license %doc}
%bcond_without test
Name: python-sphinx-issues
-Version: 0.3.1
+Version: 1.2.0
Release: 0
Summary: A Sphinx extension for linking to a project's issue tracker
License: MIT
Group: Development/Languages/Python
-Url: https://github.com/sloria/sphinx-issues
-Source: https://files.pythonhosted.org/packages/source/s/sphinx-issues/sphinx-issue…
+URL: https://github.com/sloria/sphinx-issues
+Source: https://github.com/sloria/sphinx-issues/archive/%{version}.tar.gz
BuildRequires: %{python_module setuptools}
+BuildRequires: fdupes
BuildRequires: python-rpm-macros
+Requires: python-Sphinx
+BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module Sphinx}
+BuildRequires: %{python_module pytest}
+BuildRequires: python-mock
%endif
-BuildRequires: fdupes
-Requires: python-Sphinx
-BuildArch: noarch
-
%python_subpackages
%description
@@ -53,8 +54,10 @@
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
+%check
+%pytest test_sphinx_issues.py
+
%files %{python_files}
-%defattr(-,root,root,-)
%doc README.rst
%license LICENSE
%{python_sitelib}/*
++++++ sphinx-issues-0.3.1.tar.gz -> 1.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/.gitignore new/sphinx-issues-1.2.0/.gitignore
--- old/sphinx-issues-0.3.1/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/sphinx-issues-1.2.0/.gitignore 2018-12-26 17:05:00.000000000 +0100
@@ -0,0 +1,43 @@
+*.py[cod]
+
+# C extensions
+*.so
+
+# Packages
+*.egg
+*.egg-info
+dist
+build
+eggs
+parts
+bin
+var
+sdist
+develop-eggs
+.installed.cfg
+lib
+lib64
+
+# Installer logs
+pip-log.txt
+
+# Unit test / coverage reports
+.coverage
+.tox
+nosetests.xml
+
+# Translations
+*.mo
+
+# Mr Developer
+.mr.developer.cfg
+.project
+.pydevproject
+
+# Complexity
+output/*.html
+output/*/index.html
+
+# Sphinx
+docs/_build
+README.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/.pre-commit-config.yaml new/sphinx-issues-1.2.0/.pre-commit-config.yaml
--- old/sphinx-issues-0.3.1/.pre-commit-config.yaml 1970-01-01 01:00:00.000000000 +0100
+++ new/sphinx-issues-1.2.0/.pre-commit-config.yaml 2018-12-26 17:05:00.000000000 +0100
@@ -0,0 +1,15 @@
+repos:
+- repo: https://github.com/ambv/black
+ rev: 18.9b0
+ hooks:
+ - id: black
+ language_version: python3.6
+- repo: https://github.com/pre-commit/pre-commit-hooks
+ rev: v2.0.0
+ hooks:
+ - id: flake8
+- repo: https://github.com/asottile/blacken-docs
+ rev: v0.3.0
+ hooks:
+ - id: blacken-docs
+ additional_dependencies: [black==18.9b0]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/.travis.yml new/sphinx-issues-1.2.0/.travis.yml
--- old/sphinx-issues-0.3.1/.travis.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/sphinx-issues-1.2.0/.travis.yml 2018-12-26 17:05:00.000000000 +0100
@@ -0,0 +1,29 @@
+language: python
+sudo: false
+cache: pip
+install: travis_retry pip install -U tox
+script: tox
+jobs:
+ fast_finish: true
+
+ include:
+ - { python: '3.6', env: TOXENV=lint }
+ - { python: '2.7', env: TOXENV=py27 }
+ - { python: '3.5', env: TOXENV=py35 }
+ - { python: '3.6', env: TOXENV=py36 }
+ - { python: '3.7', env: TOXENV=py37, dist: xenial, sudo: true }
+
+ - stage: PyPI Release
+ if: tag IS present
+ python: "3.6"
+ env: []
+ install: skip
+ script: skip
+ deploy:
+ provider: pypi
+ user: sloria
+ on:
+ tags: true
+ distributions: sdist bdist_wheel
+ password:
+ secure: D0c2PYyI06+N5/inLaPHkEaM/GVgKVPCBDm2asmQvCTs14ory9KK17cnS+tOmrTNyMzw2tYSvD1Ar5a7MQAfcJ+p2bOnr/UCLqzt98H2LlE/2NJdzQtI3FtNCkhRVx20LK85G8ZWaHCecGIkgGmbIDZ56u1Aj+G16z0PqEz5i7s=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/CONTRIBUTING.md new/sphinx-issues-1.2.0/CONTRIBUTING.md
--- old/sphinx-issues-0.3.1/CONTRIBUTING.md 1970-01-01 01:00:00.000000000 +0100
+++ new/sphinx-issues-1.2.0/CONTRIBUTING.md 2018-12-26 17:05:00.000000000 +0100
@@ -0,0 +1,33 @@
+# Contributing
+
+## Setting up for development
+
+* Create and activate a new virtual environment
+* `pip install -e '.[dev]'`
+* (Optional but recommended) If you're using a Python 3.6 virtual
+ environment, install the pre-commit hooks, which will
+ format and lint your git staged files:
+
+
+```
+# The pre-commit CLI was installed above
+pre-commit install
+```
+
+* To run tests:
+
+```
+pytest
+```
+
+* To run syntax checks:
+
+```
+tox -e lint
+```
+
+* (Optional) To run tests on Python 2.7, 3.5, 3.6, and 3.7 virtual environments (must have each interpreter installed):
+
+```
+tox
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/LICENSE new/sphinx-issues-1.2.0/LICENSE
--- old/sphinx-issues-0.3.1/LICENSE 2017-01-16 22:51:57.000000000 +0100
+++ new/sphinx-issues-1.2.0/LICENSE 2018-12-26 17:05:00.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright 2017 Steven Loria
+Copyright 2018 Steven Loria
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/NOTICE new/sphinx-issues-1.2.0/NOTICE
--- old/sphinx-issues-0.3.1/NOTICE 1970-01-01 01:00:00.000000000 +0100
+++ new/sphinx-issues-1.2.0/NOTICE 2018-12-26 17:05:00.000000000 +0100
@@ -0,0 +1,27 @@
+sphinx-issues includes code adapted from other libraries. Their licenses are included here.
+
+releases License
+================
+
+Copyright (c) 2014, Jeff Forcier
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/PKG-INFO new/sphinx-issues-1.2.0/PKG-INFO
--- old/sphinx-issues-0.3.1/PKG-INFO 2017-01-16 23:01:28.000000000 +0100
+++ new/sphinx-issues-1.2.0/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
@@ -1,134 +0,0 @@
-Metadata-Version: 1.1
-Name: sphinx-issues
-Version: 0.3.1
-Summary: A Sphinx extension for linking to your project's issue tracker
-Home-page: https://github.com/sloria/sphinx-issues
-Author: Steven Loria
-Author-email: sloria1(a)gmail.com
-License: Copyright 2017 Steven Loria
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-Description: =============
- sphinx-issues
- =============
-
- .. image:: https://travis-ci.org/sloria/sphinx-issues.svg?branch=master
- :target: https://travis-ci.org/sloria/sphinx-issues
-
- A Sphinx extension for linking to your project's issue tracker. Includes roles for linking to both issues and user profiles, with built-in support for GitHub (though this works with other services).
-
- Example
- *******
-
- For an example usage, check out `marshmallow's changelog <http://marshmallow.readthedocs.org/en/latest/changelog.html#changelog>`_, which makes use of the roles in this library.
-
- Installation and Configuration
- ******************************
- ::
-
- $ pip install sphinx-issues
-
- Add ``sphinx_issues`` to ``extensions`` in your ``conf.py``. If your project is on Github, add the ``issues_github_path`` config variable. Otherwise, use ``issues_uri``.
-
- .. code-block:: python
-
- # docs/conf.py
-
- #...
- extensions = [
- #...
- 'sphinx_issues',
- ]
-
- # Github repo
- issues_github_path = 'sloria/marshmallow'
-
- # equivalent to
- issues_uri = 'https://github.com/sloria/marshmallow/issues/{issue}'
-
- Usage
- *****
-
- Use the ``:issue:`` role in your docs like so:
-
- .. code-block:: rst
-
- See issue :issue:`42`
-
- See issues :issue:`12,13`
-
-
- Use the ``:user:`` role in your docs to link to user profiles (Github by default, but can be configured via the ``issues_user_uri`` config variable).
-
- .. code-block:: rst
-
- Thanks to :user:`bitprophet` for the idea!
-
- You can also use explicit names if you want to use a different name than the github user name:
-
- .. code-block:: rst
-
- This change is due to :user:`Andreas Mueller <amueller>`.
-
- Credits
- *******
-
- Credit goes to Jeff Forcier for his work on the `releases <https://github.com/bitprophet/releases>`_ extension, which is a full-featured solution for generating changelogs. I just needed a quick way to reference Github issues in my docs, so I yoinked the bits that I needed.
-
- License
- *******
-
- MIT licensed. See the bundled `LICENSE <https://github.com/sloria/sphinx-issues/blob/master/LICENSE>`_ file for more details.
-
-
- Changelog
- *********
-
- 0.3.1 (2017-01-16)
- ------------------
-
- - ``setup`` returns metadata, preventing warnings about parallel reads and writes. Thanks @jfinkels for reporting.
-
- 0.3.0 (2016-10-20)
- ------------------
-
- - Support anchor text for ``:user:`` role. Thanks @jnothman for the suggestion and thanks @amueller for the PR.
-
- 0.2.0 (2014-12-22)
- ------------------
-
- - Add ``:user:`` role for linking to Github user profiles.
-
- 0.1.0 (2014-12-21)
- ------------------
-
- - Initial release.
-
-Keywords: sphinx,issues,github
-Platform: UNKNOWN
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Topic :: Software Development :: Documentation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/README.rst new/sphinx-issues-1.2.0/README.rst
--- old/sphinx-issues-0.3.1/README.rst 2017-01-16 22:59:52.000000000 +0100
+++ new/sphinx-issues-1.2.0/README.rst 2018-12-26 17:05:00.000000000 +0100
@@ -5,41 +5,45 @@
.. image:: https://travis-ci.org/sloria/sphinx-issues.svg?branch=master
:target: https://travis-ci.org/sloria/sphinx-issues
-A Sphinx extension for linking to your project's issue tracker. Includes roles for linking to both issues and user profiles, with built-in support for GitHub (though this works with other services).
+A Sphinx extension for linking to your project's issue tracker. Includes roles for linking to issues, pull requests, user profiles, with built-in support for GitHub (though this works with other services).
Example
*******
-For an example usage, check out `marshmallow's changelog <http://marshmallow.readthedocs.org/en/latest/changelog.html#changelog>`_, which makes use of the roles in this library.
+For an example usage, check out `marshmallow's changelog <http://marshmallow.readthedocs.org/en/latest/changelog.html>`_, which makes use of the roles in this library.
Installation and Configuration
******************************
-::
- $ pip install sphinx-issues
+.. code-block:: console
-Add ``sphinx_issues`` to ``extensions`` in your ``conf.py``. If your project is on Github, add the ``issues_github_path`` config variable. Otherwise, use ``issues_uri``.
+ pip install sphinx-issues
+
+
+Add ``sphinx_issues`` to ``extensions`` in your ``conf.py``. If your project is on GitHub, add the ``issues_github_path`` config variable. Otherwise, use ``issues_uri`` and ``issues_pr_uri``.
.. code-block:: python
# docs/conf.py
- #...
+ # ...
extensions = [
- #...
- 'sphinx_issues',
+ # ...
+ "sphinx_issues"
]
# Github repo
- issues_github_path = 'sloria/marshmallow'
+ issues_github_path = "sloria/marshmallow"
# equivalent to
- issues_uri = 'https://github.com/sloria/marshmallow/issues/{issue}'
+ issues_uri = "https://github.com/sloria/marshmallow/issues/{issue}"
+ issues_pr_uri = "https://github.com/sloria/marshmallow/pull/{pr}"
+ issues_commit_uri = "https://github.com/sloria/marshmallow/commit/{commit}"
Usage
*****
-Use the ``:issue:`` role in your docs like so:
+Use the ``:issue:`` and ``:pr:`` roles in your docs like so:
.. code-block:: rst
@@ -47,6 +51,10 @@
See issues :issue:`12,13`
+ See :issue:`sloria/konch#45`.
+
+ See PR :pr:`58`
+
Use the ``:user:`` role in your docs to link to user profiles (Github by default, but can be configured via the ``issues_user_uri`` config variable).
@@ -60,6 +68,19 @@
This change is due to :user:`Andreas Mueller <amueller>`.
+
+Use the ``:commit:`` role to link to commits.
+
+.. code-block:: rst
+
+ Fixed in :commit:`6bb9124d5e9dbb2f7b52864c3d8af7feb1b69403`.
+
+Use the ``:cve:`` role to link to CVEs on https://cve.mitre.org.
+
+.. code-block:: rst
+
+ :cve:`CVE-2018-17175` - Addresses possible vulnerability when...
+
Credits
*******
@@ -74,6 +95,30 @@
Changelog
*********
+1.2.0 (2018-12-26)
+------------------
+
+- Add ``:commit:`` role for linking to commits.
+- Add support for linking to external repos.
+- Test against Python 3.7.
+
+1.1.0 (2018-09-18)
+------------------
+
+- Add ``:cve:`` role for linking to CVEs on https://cve.mitre.org.
+
+1.0.0 (2018-07-14)
+------------------
+
+- Add ``:pr:`` role. Thanks @jnotham for the suggestion.
+- Drop support for Python 3.4.
+
+0.4.0 (2017-11-25)
+------------------
+
+- Raise ``ValueError`` if neither ``issues_uri`` nor ``issues_github_path`` is set. Thanks @jnothman for the PR.
+- Drop support for Python 2.6 and 3.3.
+
0.3.1 (2017-01-16)
------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/setup.cfg new/sphinx-issues-1.2.0/setup.cfg
--- old/sphinx-issues-0.3.1/setup.cfg 2017-01-16 23:01:28.000000000 +0100
+++ new/sphinx-issues-1.2.0/setup.cfg 2018-12-26 17:05:00.000000000 +0100
@@ -1,13 +1,13 @@
-[wheel]
+[metadata]
+# This includes the license file in the wheel.
+license_file = LICENSE
+
+[bdist_wheel]
universal = 1
[flake8]
-ignore = E127,E128,E265,E302,N803,N804,N806
-max-line-length = 90
-exclude = .git,.ropeproject,.tox,docs,.git,marshmallow/compat.py,marshmallow/ordereddict.py,build,setup.py,env,venv
-
-[egg_info]
-tag_build =
-tag_date = 0
-tag_svn_revision = 0
-
+ignore = E203, E266, E501, W503, E302, W504
+max-line-length = 100
+max-complexity = 18
+select = B,C,E,F,W,T4,B9
+exclude = .git,.ropeproject,.tox,build,env,venv,__pycache__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/setup.py new/sphinx-issues-1.2.0/setup.py
--- old/sphinx-issues-0.3.1/setup.py 2016-10-21 04:13:57.000000000 +0200
+++ new/sphinx-issues-1.2.0/setup.py 2018-12-26 17:05:00.000000000 +0100
@@ -2,13 +2,24 @@
import re
from setuptools import setup
+INSTALL_REQUIRES = ["sphinx"]
+EXTRAS_REQUIRE = {
+ "tests": ["pytest", 'mock; python_version < "3.0"'],
+ "lint": [
+ "flake8==3.6.0",
+ 'flake8-bugbear==18.8.0; python_version >= "3.5"',
+ "pre-commit==1.13.0",
+ ],
+}
+EXTRAS_REQUIRE["dev"] = EXTRAS_REQUIRE["tests"] + EXTRAS_REQUIRE["lint"] + ["tox"]
+
def find_version(fname):
"""Attempts to find the version number in the file names fname.
Raises RuntimeError if not found.
"""
- version = ''
- with open(fname, 'r') as fp:
+ version = ""
+ with open(fname, "r") as fp:
reg = re.compile(r'__version__ = [\'"]([^\'"]*)[\'"]')
for line in fp:
m = reg.match(line)
@@ -16,39 +27,39 @@
version = m.group(1)
break
if not version:
- raise RuntimeError('Cannot find version information')
+ raise RuntimeError("Cannot find version information")
return version
-__version__ = find_version('sphinx_issues.py')
-
def read(fname):
with open(fname) as fp:
content = fp.read()
return content
+
setup(
- name='sphinx-issues',
- version=__version__,
- description="A Sphinx extension for linking to your project's "
- "issue tracker",
- long_description=read('README.rst'),
- install_requires=['sphinx'],
- author='Steven Loria',
- author_email='sloria1(a)gmail.com',
- url='https://github.com/sloria/sphinx-issues',
- license=read('LICENSE'),
- keywords='sphinx,issues,github',
+ name="sphinx-issues",
+ version=find_version("sphinx_issues.py"),
+ description="A Sphinx extension for linking to your project's " "issue tracker",
+ long_description=read("README.rst"),
+ install_requires=INSTALL_REQUIRES,
+ extras_require=EXTRAS_REQUIRE,
+ author="Steven Loria",
+ author_email="sloria1(a)gmail.com",
+ url="https://github.com/sloria/sphinx-issues",
+ license="MIT",
+ keywords="sphinx issues github",
classifiers=[
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: MIT License',
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 2",
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.3',
- 'Programming Language :: Python :: 3.4',
- 'Programming Language :: Python :: 3.5',
- 'Topic :: Software Development :: Documentation',
+ "Programming Language :: Python :: 2.7",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.5",
+ "Programming Language :: Python :: 3.6",
+ "Programming Language :: Python :: 3.7",
+ "Topic :: Software Development :: Documentation",
],
- py_modules=['sphinx_issues']
+ py_modules=["sphinx_issues"],
+ project_urls={"Issues": "https://github.com/sloria/sphinx-issues/issues"},
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/sphinx_issues.egg-info/PKG-INFO new/sphinx-issues-1.2.0/sphinx_issues.egg-info/PKG-INFO
--- old/sphinx-issues-0.3.1/sphinx_issues.egg-info/PKG-INFO 2017-01-16 23:01:28.000000000 +0100
+++ new/sphinx-issues-1.2.0/sphinx_issues.egg-info/PKG-INFO 1970-01-01 01:00:00.000000000 +0100
@@ -1,134 +0,0 @@
-Metadata-Version: 1.1
-Name: sphinx-issues
-Version: 0.3.1
-Summary: A Sphinx extension for linking to your project's issue tracker
-Home-page: https://github.com/sloria/sphinx-issues
-Author: Steven Loria
-Author-email: sloria1(a)gmail.com
-License: Copyright 2017 Steven Loria
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-Description: =============
- sphinx-issues
- =============
-
- .. image:: https://travis-ci.org/sloria/sphinx-issues.svg?branch=master
- :target: https://travis-ci.org/sloria/sphinx-issues
-
- A Sphinx extension for linking to your project's issue tracker. Includes roles for linking to both issues and user profiles, with built-in support for GitHub (though this works with other services).
-
- Example
- *******
-
- For an example usage, check out `marshmallow's changelog <http://marshmallow.readthedocs.org/en/latest/changelog.html#changelog>`_, which makes use of the roles in this library.
-
- Installation and Configuration
- ******************************
- ::
-
- $ pip install sphinx-issues
-
- Add ``sphinx_issues`` to ``extensions`` in your ``conf.py``. If your project is on Github, add the ``issues_github_path`` config variable. Otherwise, use ``issues_uri``.
-
- .. code-block:: python
-
- # docs/conf.py
-
- #...
- extensions = [
- #...
- 'sphinx_issues',
- ]
-
- # Github repo
- issues_github_path = 'sloria/marshmallow'
-
- # equivalent to
- issues_uri = 'https://github.com/sloria/marshmallow/issues/{issue}'
-
- Usage
- *****
-
- Use the ``:issue:`` role in your docs like so:
-
- .. code-block:: rst
-
- See issue :issue:`42`
-
- See issues :issue:`12,13`
-
-
- Use the ``:user:`` role in your docs to link to user profiles (Github by default, but can be configured via the ``issues_user_uri`` config variable).
-
- .. code-block:: rst
-
- Thanks to :user:`bitprophet` for the idea!
-
- You can also use explicit names if you want to use a different name than the github user name:
-
- .. code-block:: rst
-
- This change is due to :user:`Andreas Mueller <amueller>`.
-
- Credits
- *******
-
- Credit goes to Jeff Forcier for his work on the `releases <https://github.com/bitprophet/releases>`_ extension, which is a full-featured solution for generating changelogs. I just needed a quick way to reference Github issues in my docs, so I yoinked the bits that I needed.
-
- License
- *******
-
- MIT licensed. See the bundled `LICENSE <https://github.com/sloria/sphinx-issues/blob/master/LICENSE>`_ file for more details.
-
-
- Changelog
- *********
-
- 0.3.1 (2017-01-16)
- ------------------
-
- - ``setup`` returns metadata, preventing warnings about parallel reads and writes. Thanks @jfinkels for reporting.
-
- 0.3.0 (2016-10-20)
- ------------------
-
- - Support anchor text for ``:user:`` role. Thanks @jnothman for the suggestion and thanks @amueller for the PR.
-
- 0.2.0 (2014-12-22)
- ------------------
-
- - Add ``:user:`` role for linking to Github user profiles.
-
- 0.1.0 (2014-12-21)
- ------------------
-
- - Initial release.
-
-Keywords: sphinx,issues,github
-Platform: UNKNOWN
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Topic :: Software Development :: Documentation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/sphinx_issues.egg-info/SOURCES.txt new/sphinx-issues-1.2.0/sphinx_issues.egg-info/SOURCES.txt
--- old/sphinx-issues-0.3.1/sphinx_issues.egg-info/SOURCES.txt 2017-01-16 23:01:28.000000000 +0100
+++ new/sphinx-issues-1.2.0/sphinx_issues.egg-info/SOURCES.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-LICENSE
-MANIFEST.in
-README.rst
-setup.cfg
-setup.py
-sphinx_issues.py
-sphinx_issues.egg-info/PKG-INFO
-sphinx_issues.egg-info/SOURCES.txt
-sphinx_issues.egg-info/dependency_links.txt
-sphinx_issues.egg-info/requires.txt
-sphinx_issues.egg-info/top_level.txt
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/sphinx_issues.egg-info/dependency_links.txt new/sphinx-issues-1.2.0/sphinx_issues.egg-info/dependency_links.txt
--- old/sphinx-issues-0.3.1/sphinx_issues.egg-info/dependency_links.txt 2017-01-16 23:01:28.000000000 +0100
+++ new/sphinx-issues-1.2.0/sphinx_issues.egg-info/dependency_links.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/sphinx_issues.egg-info/requires.txt new/sphinx-issues-1.2.0/sphinx_issues.egg-info/requires.txt
--- old/sphinx-issues-0.3.1/sphinx_issues.egg-info/requires.txt 2017-01-16 23:01:28.000000000 +0100
+++ new/sphinx-issues-1.2.0/sphinx_issues.egg-info/requires.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-sphinx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/sphinx_issues.egg-info/top_level.txt new/sphinx-issues-1.2.0/sphinx_issues.egg-info/top_level.txt
--- old/sphinx-issues-0.3.1/sphinx_issues.egg-info/top_level.txt 2017-01-16 23:01:28.000000000 +0100
+++ new/sphinx-issues-1.2.0/sphinx_issues.egg-info/top_level.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-sphinx_issues
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/sphinx_issues.py new/sphinx-issues-1.2.0/sphinx_issues.py
--- old/sphinx-issues-0.3.1/sphinx_issues.py 2017-01-16 22:51:38.000000000 +0100
+++ new/sphinx-issues-1.2.0/sphinx_issues.py 2018-12-26 17:05:00.000000000 +0100
@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
"""A Sphinx extension for linking to your project's issue tracker."""
+import re
+
from docutils import nodes, utils
from sphinx.util.nodes import split_explicit_title
-__version__ = '0.3.1'
-__author__ = 'Steven Loria'
-__license__ = 'MIT'
+__version__ = "1.2.0"
+__author__ = "Steven Loria"
+__license__ = "MIT"
-def user_role(name, rawtext, text, lineno,
- inliner, options=None, content=None):
+def user_role(name, rawtext, text, lineno, inliner, options=None, content=None):
"""Sphinx role for linking to a user profile. Defaults to linking to
Github profiles, but the profile URIS can be configured via the
``issues_user_uri`` config value.
@@ -32,70 +33,174 @@
if config.issues_user_uri:
ref = config.issues_user_uri.format(user=target)
else:
- ref = 'https://github.com/{0}'.format(target)
+ ref = "https://github.com/{0}".format(target)
if has_explicit_title:
text = title
else:
- text = '@{0}'.format(target)
+ text = "@{0}".format(target)
link = nodes.reference(text=text, refuri=ref, **options)
return [link], []
-def _make_issue_node(issue_no, config, options=None):
- options = options or {}
- if issue_no not in ('-', '0'):
- if config.issues_uri:
- ref = config.issues_uri.format(issue=issue_no)
- elif config.issues_github_path:
- ref = 'https://github.com/{0}/issues/{1}'.format(
- config.issues_github_path, issue_no
- )
- issue_text = '#{0}'.format(issue_no)
- link = nodes.reference(text=issue_text, refuri=ref, **options)
- else:
- link = None
- return link
-
-
-def issue_role(name, rawtext, text, lineno,
- inliner, options=None, content=None):
- """Sphinx role for linking to an issue. Must have
- `issues_uri` or `issues_github_path` configured in ``conf.py``.
+def cve_role(name, rawtext, text, lineno, inliner, options=None, content=None):
+ """Sphinx role for linking to a CVE on https://cve.mitre.org.
Examples: ::
- :issue:`123`
- :issue:`42,45`
+ :cve:`CVE-2018-17175`
+
"""
options = options or {}
content = content or []
- issue_nos = [each.strip() for each in utils.unescape(text).split(',')]
- config = inliner.document.settings.env.app.config
- ret = []
- for i, issue_no in enumerate(issue_nos):
- node = _make_issue_node(issue_no, config, options=options)
- ret.append(node)
- if i != len(issue_nos) - 1:
- sep = nodes.raw(text=', ', format='html')
- ret.append(sep)
- return ret, []
+ has_explicit_title, title, target = split_explicit_title(text)
+
+ target = utils.unescape(target).strip()
+ title = utils.unescape(title).strip()
+ ref = "https://cve.mitre.org/cgi-bin/cvename.cgi?name={0}".format(target)
+ text = title if has_explicit_title else target
+ link = nodes.reference(text=text, refuri=ref, **options)
+ return [link], []
+
+
+class IssueRole(object):
+
+ EXTERNAL_REPO_REGEX = re.compile(r"^(\w+)/(.+)([#@])([\w]+)$")
+
+ def __init__(
+ self, uri_config_option, format_kwarg, github_uri_template, format_text=None
+ ):
+ self.uri_config_option = uri_config_option
+ self.format_kwarg = format_kwarg
+ self.github_uri_template = github_uri_template
+ self.format_text = format_text or self.default_format_text
+
+ @staticmethod
+ def default_format_text(issue_no):
+ return "#{0}".format(issue_no)
+
+ def make_node(self, name, issue_no, config, options=None):
+ name_map = {"pr": "pull", "issue": "issues", "commit": "commit"}
+ options = options or {}
+ repo_match = self.EXTERNAL_REPO_REGEX.match(issue_no)
+ if repo_match: # External repo
+ username, repo, symbol, issue = repo_match.groups()
+ if name not in name_map:
+ raise ValueError(
+ "External repo linking not supported for :{}:".format(name)
+ )
+ path = name_map.get(name)
+ ref = "https://github.com/{issues_github_path}/{path}/{n}".format(
+ issues_github_path="{}/{}".format(username, repo), path=path, n=issue
+ )
+ formatted_issue = self.format_text(issue).lstrip("#")
+ text = "{username}/{repo}{symbol}{formatted_issue}".format(**locals())
+ link = nodes.reference(text=text, refuri=ref, **options)
+ return link
+
+ if issue_no not in ("-", "0"):
+ uri_template = getattr(config, self.uri_config_option, None)
+ if uri_template:
+ ref = uri_template.format(**{self.format_kwarg: issue_no})
+ elif config.issues_github_path:
+ ref = self.github_uri_template.format(
+ issues_github_path=config.issues_github_path, n=issue_no
+ )
+ else:
+ raise ValueError(
+ "Neither {} nor issues_github_path "
+ "is set".format(self.uri_config_option)
+ )
+ issue_text = self.format_text(issue_no)
+ link = nodes.reference(text=issue_text, refuri=ref, **options)
+ else:
+ link = None
+ return link
+
+ def __call__(
+ self, name, rawtext, text, lineno, inliner, options=None, content=None
+ ):
+ options = options or {}
+ content = content or []
+ issue_nos = [each.strip() for each in utils.unescape(text).split(",")]
+ config = inliner.document.settings.env.app.config
+ ret = []
+ for i, issue_no in enumerate(issue_nos):
+ node = self.make_node(name, issue_no, config, options=options)
+ ret.append(node)
+ if i != len(issue_nos) - 1:
+ sep = nodes.raw(text=", ", format="html")
+ ret.append(sep)
+ return ret, []
+
+
+"""Sphinx role for linking to an issue. Must have
+`issues_uri` or `issues_github_path` configured in ``conf.py``.
+Examples: ::
+ :issue:`123`
+ :issue:`42,45`
+ :issue:`sloria/konch#123`
+"""
+issue_role = IssueRole(
+ uri_config_option="issues_uri",
+ format_kwarg="issue",
+ github_uri_template="https://github.com/{issues_github_path}/issues/{n}",
+)
+
+"""Sphinx role for linking to a pull request. Must have
+`issues_pr_uri` or `issues_github_path` configured in ``conf.py``.
+Examples: ::
+ :pr:`123`
+ :pr:`42,45`
+ :pr:`sloria/konch#43`
+"""
+pr_role = IssueRole(
+ uri_config_option="issues_pr_uri",
+ format_kwarg="pr",
+ github_uri_template="https://github.com/{issues_github_path}/pull/{n}",
+)
+
+
+def format_commit_text(sha):
+ return sha[:7]
+
+
+"""Sphinx role for linking to a commit. Must have
+`issues_pr_uri` or `issues_github_path` configured in ``conf.py``.
+Examples: ::
+ :commit:`123abc456def`
+ :commit:`sloria/konch@123abc456def`
+"""
+commit_role = IssueRole(
+ uri_config_option="issues_commit_uri",
+ format_kwarg="commit",
+ github_uri_template="https://github.com/{issues_github_path}/commit/{n}",
+ format_text=format_commit_text,
+)
def setup(app):
# Format template for issues URI
# e.g. 'https://github.com/sloria/marshmallow/issues/{issue}
- app.add_config_value('issues_uri', default=None, rebuild='html')
+ app.add_config_value("issues_uri", default=None, rebuild="html")
+ # Format template for PR URI
+ # e.g. 'https://github.com/sloria/marshmallow/pull/{issue}
+ app.add_config_value("issues_pr_uri", default=None, rebuild="html")
+ # Format template for commit URI
+ # e.g. 'https://github.com/sloria/marshmallow/commits/{commit}
+ app.add_config_value("issues_commit_uri", default=None, rebuild="html")
# Shortcut for Github, e.g. 'sloria/marshmallow'
- app.add_config_value('issues_github_path', default=None, rebuild='html')
+ app.add_config_value("issues_github_path", default=None, rebuild="html")
# Format template for user profile URI
# e.g. 'https://github.com/{user}'
- app.add_config_value('issues_user_uri', default=None, rebuild='html')
- app.add_role('issue', issue_role)
- app.add_role('user', user_role)
+ app.add_config_value("issues_user_uri", default=None, rebuild="html")
+ app.add_role("issue", issue_role)
+ app.add_role("pr", pr_role)
+ app.add_role("user", user_role)
+ app.add_role("commit", commit_role)
+ app.add_role("cve", cve_role)
return {
- 'version': __version__,
- 'parallel_read_safe': True,
- 'parallel_write_safe': True,
+ "version": __version__,
+ "parallel_read_safe": True,
+ "parallel_write_safe": True,
}
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/test_sphinx_issues.py new/sphinx-issues-1.2.0/test_sphinx_issues.py
--- old/sphinx-issues-0.3.1/test_sphinx_issues.py 1970-01-01 01:00:00.000000000 +0100
+++ new/sphinx-issues-1.2.0/test_sphinx_issues.py 2018-12-26 17:05:00.000000000 +0100
@@ -0,0 +1,142 @@
+# -*- coding: utf-8 -*-
+from tempfile import mkdtemp
+from shutil import rmtree
+
+try:
+ from unittest.mock import Mock
+except ImportError:
+ from mock import Mock
+
+from sphinx.application import Sphinx
+from sphinx_issues import (
+ issue_role,
+ user_role,
+ pr_role,
+ cve_role,
+ commit_role,
+ setup as issues_setup,
+)
+
+import pytest
+
+
+(a)pytest.yield_fixture(
+ params=[
+ # Parametrize config
+ {"issues_github_path": "marshmallow-code/marshmallow"},
+ {
+ "issues_uri": "https://github.com/marshmallow-code/marshmallow/issues/{issue}",
+ "issues_pr_uri": "https://github.com/marshmallow-code/marshmallow/pull/{pr}",
+ "issues_commit_uri": "https://github.com/marshmallow-code/marshmallow/commit/{commit}",
+ },
+ ]
+)
+def app(request):
+ src, doctree, confdir, outdir = [mkdtemp() for _ in range(4)]
+ Sphinx._log = lambda self, message, wfile, nonl=False: None
+ app = Sphinx(
+ srcdir=src, confdir=None, outdir=outdir, doctreedir=doctree, buildername="html"
+ )
+ issues_setup(app)
+ # Stitch together as the sphinx app init() usually does w/ real conf files
+ app.config._raw_config = request.param
+ try:
+ app.config.init_values()
+ except TypeError:
+ app.config.init_values(lambda x: x)
+ yield app
+ [rmtree(x) for x in (src, doctree, confdir, outdir)]
+
+
+(a)pytest.fixture()
+def inliner(app):
+ return Mock(document=Mock(settings=Mock(env=Mock(app=app))))
+
+
+(a)pytest.mark.parametrize(
+ ("role", "role_name", "text", "expected_text", "expected_url"),
+ [
+ (
+ issue_role,
+ "issue",
+ "42",
+ "#42",
+ "https://github.com/marshmallow-code/marshmallow/issues/42",
+ ),
+ (
+ pr_role,
+ "pr",
+ "42",
+ "#42",
+ "https://github.com/marshmallow-code/marshmallow/pull/42",
+ ),
+ (user_role, "user", "sloria", "@sloria", "https://github.com/sloria"),
+ (
+ user_role,
+ "user",
+ "Steven Loria <sloria>",
+ "Steven Loria",
+ "https://github.com/sloria",
+ ),
+ (
+ cve_role,
+ "cve",
+ "CVE-2018-17175",
+ "CVE-2018-17175",
+ "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-17175",
+ ),
+ (
+ commit_role,
+ "commit",
+ "123abc456def",
+ "123abc4",
+ "https://github.com/marshmallow-code/marshmallow/commit/123abc456def",
+ ),
+ # External issue
+ (
+ issue_role,
+ "issue",
+ "sloria/webargs#42",
+ "sloria/webargs#42",
+ "https://github.com/sloria/webargs/issues/42",
+ ),
+ # External PR
+ (
+ pr_role,
+ "pr",
+ "sloria/webargs#42",
+ "sloria/webargs#42",
+ "https://github.com/sloria/webargs/pull/42",
+ ),
+ # External commit
+ (
+ commit_role,
+ "commit",
+ "sloria/webargs@abc123def456",
+ "sloria/webargs@abc123d",
+ "https://github.com/sloria/webargs/commit/abc123def456",
+ ),
+ ],
+)
+def test_roles(inliner, role, role_name, text, expected_text, expected_url):
+ result = role(role_name, rawtext="", text=text, lineno=None, inliner=inliner)
+ link = result[0][0]
+ assert link.astext() == expected_text
+ assert link.attributes["refuri"] == expected_url
+
+
+def test_issue_role_multiple(inliner):
+ result = issue_role(
+ name=None, rawtext="", text="42,43", inliner=inliner, lineno=None
+ )
+ link1 = result[0][0]
+ assert link1.astext() == "#42"
+ issue_url = "https://github.com/marshmallow-code/marshmallow/issues/"
+ assert link1.attributes["refuri"] == issue_url + "42"
+
+ sep = result[0][1]
+ assert sep.astext() == ", "
+
+ link2 = result[0][2]
+ assert link2.astext() == "#43"
+ assert link2.attributes["refuri"] == issue_url + "43"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-issues-0.3.1/tox.ini new/sphinx-issues-1.2.0/tox.ini
--- old/sphinx-issues-0.3.1/tox.ini 1970-01-01 01:00:00.000000000 +0100
+++ new/sphinx-issues-1.2.0/tox.ini 2018-12-26 17:05:00.000000000 +0100
@@ -0,0 +1,16 @@
+[tox]
+envlist = lint,py27,py35,py36,py37
+
+[testenv]
+extras = tests
+commands = pytest {posargs}
+
+[testenv:lint]
+extras = lint
+commands = pre-commit run --all-files --show-diff-on-failure
+
+; Below tasks are for development only (not run in CI)
+[testenv:watch-readme]
+deps = restview
+skip_install = true
+commands = restview README.rst
1
0
Hello community,
here is the log from the commit of package python-M2Crypto for openSUSE:Factory checked in at 2019-05-03 22:37:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-M2Crypto (Old)
and /work/SRC/openSUSE:Factory/.python-M2Crypto.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-M2Crypto"
Fri May 3 22:37:06 2019 rev:32 rq:698281 version:0.33.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-M2Crypto/python-M2Crypto.changes 2019-03-13 09:10:51.995413759 +0100
+++ /work/SRC/openSUSE:Factory/.python-M2Crypto.new.5148/python-M2Crypto.changes 2019-05-03 22:37:07.778577453 +0200
@@ -1,0 +2,14 @@
+Fri Apr 26 16:48:44 CEST 2019 - Matej Cepl <mcepl(a)suse.com>
+
+- Upgrade to 0.33.0:
+ - eb4525c - Stop pretending to support Python 3.4.
+ - 6a89548 - Fix use of urlunsplit (25 hours ago)
+ - 0a5a356 - tests/test_ssl: use -ciphercuites for TLS1.3 cipher in
+ openssl1.1
+ - 8a0a3e3 - There are apparently multiword CPP variables. Taking that
+ into account.
+- Remove
+ 0001-tests-test_ssl-use-ciphercuites-for-TLS1.3-cipher-in.patch
+ as it included in the latest release.
+
+-------------------------------------------------------------------
Old:
----
0001-tests-test_ssl-use-ciphercuites-for-TLS1.3-cipher-in.patch
M2Crypto-0.32.0.tar.gz
New:
----
M2Crypto-0.33.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-M2Crypto.spec ++++++
--- /var/tmp/diff_new_pack.5QWm4Y/_old 2019-05-03 22:37:08.302578541 +0200
+++ /var/tmp/diff_new_pack.5QWm4Y/_new 2019-05-03 22:37:08.306578550 +0200
@@ -19,14 +19,13 @@
%define oldpython python
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-M2Crypto
-Version: 0.32.0
+Version: 0.33.0
Release: 0
Summary: Crypto and SSL toolkit for Python
License: MIT
Group: Development/Languages/Python
Url: https://gitlab.com/m2crypto/m2crypto
Source: https://files.pythonhosted.org/packages/source/M/M2Crypto/M2Crypto-%{versio…
-Patch0: 0001-tests-test_ssl-use-ciphercuites-for-TLS1.3-cipher-in.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module typing}
++++++ M2Crypto-0.32.0.tar.gz -> M2Crypto-0.33.0.tar.gz ++++++
++++ 7927 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package pmdk for openSUSE:Factory checked in at 2019-05-03 22:36:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pmdk (Old)
and /work/SRC/openSUSE:Factory/.pmdk.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pmdk"
Fri May 3 22:36:58 2019 rev:6 rq:698275 version:1.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/pmdk/pmdk.changes 2018-11-08 09:49:03.393059788 +0100
+++ /work/SRC/openSUSE:Factory/.pmdk.new.5148/pmdk.changes 2019-05-03 22:36:59.650560569 +0200
@@ -1,0 +2,5 @@
+Wed Apr 24 17:31:35 UTC 2019 - Martin Liška <mliska(a)suse.cz>
+
+- Disable LTO (boo#1133276).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pmdk.spec ++++++
--- /var/tmp/diff_new_pack.kNOPyi/_old 2019-05-03 22:37:00.158561624 +0200
+++ /var/tmp/diff_new_pack.kNOPyi/_new 2019-05-03 22:37:00.166561641 +0200
@@ -1,7 +1,7 @@
#
# spec file for package pmdk
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright 2016, Intel Corporation
#
# All modifications and additions to the file contributed by third parties
@@ -285,6 +285,7 @@
%setup -q
%build
+%define _lto_cflags %{nil}
# Currently, NVML makefiles do not allow to easily override CFLAGS,
# so the build flags are passed via EXTRA_CFLAGS. For debug build
# selected flags are overriden to disable compiler optimizations.
1
0
Hello community,
here is the log from the commit of package patterns-microos for openSUSE:Factory checked in at 2019-05-03 22:36:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/patterns-microos (Old)
and /work/SRC/openSUSE:Factory/.patterns-microos.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patterns-microos"
Fri May 3 22:36:50 2019 rev:3 rq:698272 version:5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/patterns-microos/patterns-microos.changes 2019-04-17 10:05:08.526556370 +0200
+++ /work/SRC/openSUSE:Factory/.patterns-microos.new.5148/patterns-microos.changes 2019-05-03 22:36:51.842544351 +0200
@@ -1,0 +2,6 @@
+Fri Apr 26 13:48:16 UTC 2019 - Richard Brown <rbrown(a)suse.com>
+
+- Remove salt-master and -minion from onlyDVD pattern
+ Not needed for MicroOS, will be used in Kubic via system_roles
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ patterns-microos.spec ++++++
--- /var/tmp/diff_new_pack.6TRU9z/_old 2019-05-03 22:36:53.138547043 +0200
+++ /var/tmp/diff_new_pack.6TRU9z/_new 2019-05-03 22:36:53.178547126 +0200
@@ -284,8 +284,6 @@
Requires: hyper-v
Requires: open-vm-tools
%endif
-Requires: salt-master
-Requires: salt-minion
Requires: tftpboot-installation-openSUSE-MicroOS-%{_arch}
%ifarch %ix86 x86_64
Requires: ucode-amd
1
0
Hello community,
here is the log from the commit of package zstd for openSUSE:Factory checked in at 2019-05-03 22:36:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zstd (Old)
and /work/SRC/openSUSE:Factory/.zstd.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zstd"
Fri May 3 22:36:40 2019 rev:11 rq:698236 version:1.4.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/zstd/zstd.changes 2019-01-11 14:01:09.352061742 +0100
+++ /work/SRC/openSUSE:Factory/.zstd.new.5148/zstd.changes 2019-05-03 22:36:41.974523879 +0200
@@ -1,0 +2,16 @@
+Fri Apr 26 11:10:57 UTC 2019 - Martin Liška <mliska(a)suse.cz>
+
+- Use FAT LTO objects in order to provide proper static library (boo#1133297).
+
+-------------------------------------------------------------------
+Wed Apr 17 11:30:30 UTC 2019 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to new upstream release 1.4.0
+ * perf: level 1 compression speed was improved by ~6–8%
+ * cli: added --[no-]compress-literals flag to enable or disable
+ literal compression
+- Reword "real-time" in description by some actual statistics,
+ because 603MB/s (lowest zstd level) is not "real-time" for
+ quite some applications.
+
+-------------------------------------------------------------------
Old:
----
zstd-1.3.8.tar.gz
New:
----
zstd-1.4.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zstd.spec ++++++
--- /var/tmp/diff_new_pack.BeMLAn/_old 2019-05-03 22:36:42.582525115 +0200
+++ /var/tmp/diff_new_pack.BeMLAn/_new 2019-05-03 22:36:42.586525124 +0200
@@ -12,14 +12,14 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define major 1
%define libname lib%{name}%{major}
Name: zstd
-Version: %{major}.3.8
+Version: %{major}.4.0
Release: 0
Summary: Zstandard compression tools
License: BSD-3-Clause AND GPL-2.0-only
@@ -35,14 +35,18 @@
BuildRequires: pkgconfig
%description
-Zstd, short for Zstandard, is a lossless compression algorithm,
-targeting real-time compression scenarios at zlib-level compression ratio.
+Zstd, short for Zstandard, is a lossless compression algorithm. Speed
+vs. compression trade-off is configurable in small increments.
+Decompression speed is preserved and remains roughly the same at all
+settings, a property shared by most LZ compression algorithms, such
+as zlib or lzma.
+
+At roughly the same ratio, zstd (v1.3.5) achieves ~600%% faster
+compression than zlib. At roughly the same time, zstd achives a ~12%%
+better ratio than gzip. LZMA outperforms zstd by ~10%% faster
+compression for same ratio, or ~9%% size reduction for same time.
-Zstd can also offer stronger compression ratios at the cost of
-compression speed. Speed vs. compression trade-off is configurable by
-small increments. Decompression speed is preserved and remains
-roughly the same at all settings, a property shared by most LZ
-compression algorithms, such as zlib or lzma.
+# This compression summary is based on https://lists.opensuse.org/opensuse-factory/2018-10/msg00111.html
%package -n %{libname}
Summary: Zstd compression library
@@ -50,7 +54,7 @@
%description -n %{libname}
Zstd, short for Zstandard, is a lossless compression algorithm,
-targeting real-time compression scenarios at zlib-level compression ratio.
+targeting faster compression than zlib at comparable ratios.
This subpackage contains the implementation as a shared library.
@@ -62,7 +66,7 @@
%description -n lib%{name}-devel
Zstd, short for Zstandard, is a lossless compression algorithm,
-targeting real-time compression scenarios at zlib-level compression ratio.
+targeting faster compression than zlib at comparable ratios.
Needed for compiling programs that link with the library.
@@ -74,7 +78,7 @@
%description -n lib%{name}-devel-static
Zstd, short for Zstandard, is a lossless compression algorithm,
-targeting real-time compression scenarios at zlib-level compression ratio.
+targeting faster compression than zlib at comparable ratios.
Needed for compiling programs that link with the library.
@@ -84,6 +88,7 @@
%patch2 -p1
%build
+%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags} -std=c++11"
for dir in lib programs contrib/pzstd; do
++++++ zstd-1.3.8.tar.gz -> zstd-1.4.0.tar.gz ++++++
++++ 16788 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package mono-core for openSUSE:Factory checked in at 2019-05-03 22:36:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mono-core (Old)
and /work/SRC/openSUSE:Factory/.mono-core.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mono-core"
Fri May 3 22:36:32 2019 rev:122 rq:698227 version:5.20.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/mono-core/mono-core.changes 2019-04-15 11:51:06.526507508 +0200
+++ /work/SRC/openSUSE:Factory/.mono-core.new.5148/mono-core.changes 2019-05-03 22:36:34.174508072 +0200
@@ -1,0 +2,5 @@
+Wed Apr 24 17:25:10 UTC 2019 - Martin Liška <mliska(a)suse.cz>
+
+- Disable LTO (boo#1133266).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mono-core.spec ++++++
--- /var/tmp/diff_new_pack.pfacPf/_old 2019-05-03 22:36:37.578514970 +0200
+++ /var/tmp/diff_new_pack.pfacPf/_new 2019-05-03 22:36:37.582514978 +0200
@@ -216,6 +216,7 @@
%patch21 -p1
%build
+%define _lto_cflags %{nil}
# TODO: re-check on next release, already fixed in master branch
# remove accidentally packaged build artifacts that lead to build failures on non x86_64 platforms
# see https://github.com/mono/mono/issues/11619, https://github.com/mono/mono/issues/11501 for more info
1
0
Hello community,
here is the log from the commit of package libqca-qt5 for openSUSE:Factory checked in at 2019-05-03 22:36:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqca-qt5 (Old)
and /work/SRC/openSUSE:Factory/.libqca-qt5.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqca-qt5"
Fri May 3 22:36:21 2019 rev:9 rq:698222 version:2.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/libqca-qt5/libqca-qt5.changes 2017-12-29 18:47:56.763964599 +0100
+++ /work/SRC/openSUSE:Factory/.libqca-qt5.new.5148/libqca-qt5.changes 2019-05-03 22:36:24.446488357 +0200
@@ -1,0 +2,33 @@
+Fri Apr 26 12:49:36 UTC 2019 - Fabian Vogt <fabian(a)ritter-vogt.de>
+
+- Fix source URL
+
+-------------------------------------------------------------------
+Fri Apr 26 07:43:43 UTC 2019 - Wolfgang Bauer <wbauer(a)tmo.at>
+
+- Update to 2.2.1
+ * support for openssl 1.1
+ * support for AES GCM and AES CCM modes
+ * new base64 convenience functions
+ * new botan2 support
+ * new hkdf support
+ * various build improvements and (deprecation) cleanups
+- Drop patches merged upstream:
+ * 0001-Revert-tlsunittest-disable-some-ciphers.patch
+ * 0002-Disable-missed-openssl-cipher-suites.patch
+ * 0003-Add-support-for-OpenSSL-1.1.0.patch
+ * ansi.diff
+- Rename qca-2.1.3-fixDSA.patch to qca-2.2.1-fixDSA.patch and
+ rebase it
+- Re-enable pkcs11, there is no openssl conflict anymore
+- Don't hardcode the certstore path anymore, ca-certificates is
+ BuldRequired so this can be detected automatically
+
+-------------------------------------------------------------------
+Thu Oct 25 09:30:30 UTC 2018 - Jason Sikes <jsikes(a)suse.de>
+
+- Fix segfault when creating DSA keys
+ * [qca-2.1.3-fixDSA.patch]
+ * bsc#1108634
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/libqca-qt5/libqca2.changes 2017-12-29 18:47:56.819948520 +0100
+++ /work/SRC/openSUSE:Factory/.libqca-qt5.new.5148/libqca2.changes 2019-05-03 22:36:24.594488657 +0200
@@ -1,0 +2,31 @@
+Fri Apr 26 12:49:35 UTC 2019 - Fabian Vogt <fabian(a)ritter-vogt.de>
+
+- Fix source URL
+
+-------------------------------------------------------------------
+Fri Apr 26 07:43:43 UTC 2019 - Wolfgang Bauer <wbauer(a)tmo.at>
+
+- Update to 2.2.1
+ * support for openssl 1.1
+ * support for AES GCM and AES CCM modes
+ * new base64 convenience functions
+ * new botan2 support
+ * new hkdf support
+ * various build improvements and (deprecation) cleanups
+- Drop patches merged upstream:
+ * 0001-Revert-tlsunittest-disable-some-ciphers.patch
+ * 0002-Disable-missed-openssl-cipher-suites.patch
+ * 0003-Add-support-for-OpenSSL-1.1.0.patch
+- Rename qca-2.1.3-fixDSA.patch to qca-2.2.1-fixDSA.patch and
+ rebase it
+- Re-enable pkcs11, there is no openssl conflict anymore
+- Run spec-cleaner
+
+-------------------------------------------------------------------
+Thu Oct 25 09:28:30 UTC 2018 - Jason Sikes <jsikes(a)suse.de>
+
+- Fix segfault when creating DSA keys
+ * [qca-2.1.3-fixDSA.patch]
+ * bsc#1108634
+
+-------------------------------------------------------------------
Old:
----
0001-Revert-tlsunittest-disable-some-ciphers.patch
0002-Disable-missed-openssl-cipher-suites.patch
0003-Add-support-for-OpenSSL-1.1.0.patch
ansi.diff
qca-2.1.3.tar.xz
New:
----
qca-2.2.1-fixDSA.patch
qca-2.2.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libqca-qt5.spec ++++++
--- /var/tmp/diff_new_pack.8KIo8W/_old 2019-05-03 22:36:25.326490141 +0200
+++ /var/tmp/diff_new_pack.8KIo8W/_new 2019-05-03 22:36:25.326490141 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libqca-qt5
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,36 +12,25 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
-%if 0%{?suse_version} > 1320
-# Disable PKCS11 on TW, conflicts with older openssl
-%bcond_with pkcs11
-%else
%bcond_without pkcs11
-%endif
%define _so 2
Name: libqca-qt5
-Version: 2.1.3
+Version: 2.2.1
Release: 0
Summary: Qt Cryptographic Architecture 2
-License: LGPL-2.1+
+License: LGPL-2.1-or-later
Group: Development/Libraries/C and C++
Url: https://userbase.kde.org/QCA
-Source: http://download.kde.org/stable/qca/%{version}/src/qca-%{version}.tar.xz
+Source: https://download.kde.org/stable/qca/%{version}/qca-%{version}.tar.xz
Source1: baselibs.conf
Source99: libqca-qt5-rpmlintrc
-# PATCH-FIX-UPSTREAM (Needed for 0002 to apply)
-Patch1: 0001-Revert-tlsunittest-disable-some-ciphers.patch
-# PATCH-FIX-UPSTREAM (Variant of 0001, but for master)
-Patch2: 0002-Disable-missed-openssl-cipher-suites.patch
-# PATCH-FIX-UPSTREAM
-Patch3: 0003-Add-support-for-OpenSSL-1.1.0.patch
-# PATCH-FIX-OPENSUSE (Needed for gcrypt on 42.x?)
-Patch100: ansi.diff
+# PATCH-FIX-OPENSUSE
+Patch0: qca-2.2.1-fixDSA.patch
BuildRequires: ca-certificates
BuildRequires: cmake >= 2.8.12
BuildRequires: cyrus-sasl-devel
@@ -99,10 +88,7 @@
%prep
%setup -q -n qca-%{version}
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch100 -p1
+%patch0 -p1
%build
%cmake \
@@ -112,7 +98,6 @@
-DWITH_botan_PLUGIN=OFF \
-DQCA_BINARY_INSTALL_DIR:PATH="%{_bindir}" \
-DQCA_MAN_INSTALL_DIR:PATH="%{_mandir}" \
- -Dqca_CERTSTORE="/etc/ssl/ca-bundle.pem" \
-DQCA_SUFFIX=qt5
make %{?_smp_mflags}
++++++ libqca2.spec ++++++
--- /var/tmp/diff_new_pack.8KIo8W/_old 2019-05-03 22:36:25.342490173 +0200
+++ /var/tmp/diff_new_pack.8KIo8W/_new 2019-05-03 22:36:25.342490173 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libqca2
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -20,29 +20,22 @@
%if 0%{?suse_version} > 1320
# Enable gcrypt plugin on TW
%bcond_without gcrypt
-# Disable PKCS11 on TW, conflicts with older openssl
-%bcond_with pkcs11
%else
%bcond_with gcrypt
-%bcond_without pkcs11
%endif
%bcond_without nss
-
+%bcond_without pkcs11
Name: libqca2
-Version: 2.1.3
+Version: 2.2.1
Release: 0
Summary: Qt Cryptographic Architecture 2
-License: LGPL-2.1+
+License: LGPL-2.1-or-later
Group: Development/Libraries/C and C++
-Url: https://userbase.kde.org/QCA
-Source: http://download.kde.org/stable/qca/%{version}/src/qca-%{version}.tar.xz
+URL: https://userbase.kde.org/QCA
+Source: https://download.kde.org/stable/qca/%{version}/qca-%{version}.tar.xz
Source1: baselibs.conf
-# PATCH-FIX-UPSTREAM (Needed for 0002 to apply)
-Patch1: 0001-Revert-tlsunittest-disable-some-ciphers.patch
-# PATCH-FIX-UPSTREAM (Variant of 0001, but for master)
-Patch2: 0002-Disable-missed-openssl-cipher-suites.patch
-# PATCH-FIX-UPSTREAM
-Patch3: 0003-Add-support-for-OpenSSL-1.1.0.patch
+# PATCH-FIX-OPENSUSE
+Patch0: qca-2.2.1-fixDSA.patch
BuildRequires: ca-certificates
BuildRequires: cmake >= 2.8.12
BuildRequires: cyrus-sasl-devel
@@ -56,7 +49,7 @@
Requires: gpg2 >= 2.0.0
%requires_eq libqt4
%if %{with botan}
-BuildRequires: pkgconfig(botan-1.10)
+BuildRequires: libbotan-devel
%endif
%if %{with gcrypt}
BuildRequires: libgcrypt-devel >= 1.7
@@ -161,12 +154,9 @@
%prep
%setup -q -n qca-%{version}
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
+%patch0 -p1
%build
-# TODO: When needed switch to Qt5 build
%cmake \
-DQCA_PLUGINS_INSTALL_DIR=%{_libdir}/qt4/plugins/ \
-DQCA_FEATURE_INSTALL_DIR=%{_datadir}/qt4/mkspecs/features/ \
@@ -193,12 +183,11 @@
%cmake_install
%post -p /sbin/ldconfig
-
%postun -p /sbin/ldconfig
%files
-%defattr(-,root,root)
-%doc README COPYING TODO
+%license COPYING
+%doc README TODO
%{_bindir}/mozcerts
%{_libdir}/libqca.so.*
%dir %{_libdir}/qt4/plugins/crypto
@@ -208,40 +197,34 @@
%{_libdir}/qt4/plugins/crypto/libqca-gnupg.so
%files devel
-%defattr(-,root,root)
%{_bindir}/qcatool
%{_includedir}/QtCrypto
%{_datadir}/qt4/mkspecs/features/crypto.prf
-%{_mandir}/man1/qcatool.1.*
+%{_mandir}/man1/qcatool.1%{?ext_man}
%{_libdir}/libqca.so
%{_libdir}/pkgconfig/qca2.pc
%{_libdir}/cmake/Qca/
%files plugin-cyrus-sasl
-%defattr(-,root,root)
%{_libdir}/qt4/plugins/crypto/libqca-cyrus-sasl.so
%if %{with gcrypt}
%files plugin-gcrypt
-%defattr(-,root,root)
%{_libdir}/qt4/plugins/crypto/libqca-gcrypt.so
%endif
%if %{with botan}
%files plugin-botan
-%defattr(-,root,root)
%{_libdir}/qt4/plugins/crypto/libqca-botan.so
%endif
%if %{with nss}
%files plugin-nss
-%defattr(-,root,root)
%{_libdir}/qt4/plugins/crypto/libqca-nss.so
%endif
%if %{with pkcs11}
%files plugin-pkcs11
-%defattr(-,root,root)
%{_libdir}/qt4/plugins/crypto/libqca-pkcs11.so
%endif
++++++ qca-2.2.1-fixDSA.patch ++++++
Index: qca-2.2.1/plugins/qca-ossl/qca-ossl.cpp
===================================================================
--- qca-2.2.1.orig/plugins/qca-ossl/qca-ossl.cpp
+++ qca-2.2.1/plugins/qca-ossl/qca-ossl.cpp
@@ -1682,18 +1682,14 @@ public:
static bool make_dlgroup(const QByteArray &seed, int bits, int counter, DLParams *params)
{
- int ret_counter;
QScopedPointer<DSA, DsaDeleter> dsa(DSA_new());
if(!dsa)
return false;
if (DSA_generate_parameters_ex(dsa.data(), bits, (const unsigned char *)seed.data(), seed.size(),
- &ret_counter, NULL, NULL) != 1)
+ NULL, NULL, NULL) != 1)
return false;
- if(ret_counter != counter)
- return false;
-
const BIGNUM *bnp, *bnq, *bng;
DSA_get0_pqg(dsa.data(), &bnp, &bnq, &bng);
params->p = bn2bi(bnp);
++++++ qca-2.1.3.tar.xz -> qca-2.2.1.tar.xz ++++++
++++ 3883 lines of diff (skipped)
1
0