Hello community,

here is the log from the commit of package python-oslo.rootwrap for 
openSUSE:Factory checked in at 2017-02-21 13:42:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.rootwrap (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.rootwrap.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.rootwrap"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-oslo.rootwrap/python-oslo.rootwrap.changes    
    2016-11-15 18:01:29.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.rootwrap.new/python-oslo.rootwrap.changes
   2017-02-21 13:42:16.616618511 +0100
@@ -1,0 +2,16 @@
+Mon Feb 13 09:42:08 UTC 2017 - [email protected]
+
+- update to version 5.4.0:
+  - Remove discover from test-requirements
+  - Add Constraints support
+  - Updated from global requirements
+  - Show team and repo badges on README
+  - Update homepage with developer documentation page
+  - [TrivialFix] Replace 'assertFalse(a in b)' with 'assertNotIn(a, b)'
+  - Enable release notes translation
+  - Relax default strict option under python3.x for configparser
+  - Fix running unknown commands in daemon mode
+  - Enhance _program() and _program_path()
+  - Add reno for release notes management
+
+-------------------------------------------------------------------

Old:
----
  oslo.rootwrap-5.1.1.tar.gz

New:
----
  oslo.rootwrap-5.4.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-oslo.rootwrap.spec ++++++
--- /var/tmp/diff_new_pack.2CpTcz/_old  2017-02-21 13:42:18.620335839 +0100
+++ /var/tmp/diff_new_pack.2CpTcz/_new  2017-02-21 13:42:18.620335839 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-oslo.rootwrap
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 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
@@ -18,7 +18,7 @@
 
 %global sname oslo.rootwrap
 Name:           python-oslo.rootwrap
-Version:        5.1.1
+Version:        5.4.0
 Release:        0
 Summary:        Filtering shell commands to run as root from OpenStack services
 License:        Apache-2.0
@@ -31,7 +31,7 @@
 BuildRequires:  python-fixtures >= 3.0.0
 BuildRequires:  python-mock >= 2.0
 BuildRequires:  python-oslotest >= 1.10.0
-BuildRequires:  python-pbr >= 1.6
+BuildRequires:  python-pbr >= 1.8
 BuildRequires:  python-python-subunit >= 0.0.18
 BuildRequires:  python-six >= 1.9.0
 BuildRequires:  python-testrepository >= 0.0.18
@@ -50,16 +50,18 @@
 from OpenStack services.
 
 %package doc
-Summary:        Documentation  for OpenStack oslo rootwrap
+Summary:        Documentation for OpenStack %{sname}
 Group:          Development/Languages/Python
 BuildRequires:  python-Sphinx
-BuildRequires:  python-oslosphinx >= 2.5.0
+BuildRequires:  python-oslosphinx >= 4.7.0
+BuildRequires:  python-reno >= 1.8.0
 
 %description doc
-Documentation for the oslo.rootwrap library.
+Documentation for the OpenStack %{sname} library.
 
 %prep
-%setup -q -n %{sname}-%{version}
+%autosetup -n %{sname}-%{version}
+%py_req_cleanup
 
 %build
 %{py2_build}

++++++ _service ++++++
--- /var/tmp/diff_new_pack.2CpTcz/_old  2017-02-21 13:42:18.656330761 +0100
+++ /var/tmp/diff_new_pack.2CpTcz/_new  2017-02-21 13:42:18.656330761 +0100
@@ -1,14 +1,12 @@
 <services>
   <service mode="disabled" name="renderspec">
-    <param 
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/newton/openstack/oslo.rootwrap/oslo.rootwrap.spec.j2</param>
+    <param 
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/ocata/openstack/oslo.rootwrap/oslo.rootwrap.spec.j2</param>
     <param name="output-name">python-oslo.rootwrap.spec</param>
-    <param 
name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/newton/global-requirements.txt</param>
+    <param 
name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/ocata/global-requirements.txt</param>
+    <param name="changelog-email">[email protected]</param>
+    <param name="changelog-provider">gh,openstack,oslo.rootwrap</param>
   </service>
   <service mode="disabled" name="download_files">
-    <param name="changesgenerate">enable</param>
-  </service>
-  <service name="refresh_patches" mode="disabled">
-    <param name="changesgenerate">enable</param>
   </service>
   <service name="format_spec_file" mode="disabled"/>
 </services>

++++++ oslo.rootwrap-5.1.1.tar.gz -> oslo.rootwrap-5.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/AUTHORS 
new/oslo.rootwrap-5.4.0/AUTHORS
--- old/oslo.rootwrap-5.1.1/AUTHORS     2016-11-04 06:52:03.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/AUTHORS     2017-01-18 20:32:57.000000000 +0100
@@ -1,3 +1,4 @@
+Andreas Jaeger <[email protected]>
 Angus Lees <[email protected]>
 Bogdan Dobrelya <[email protected]>
 Cedric Brandily <[email protected]>
@@ -10,11 +11,13 @@
 Dirk Mueller <[email protected]>
 Doug Hellmann <[email protected]>
 Doug Hellmann <[email protected]>
+Flavio Percoco <[email protected]>
 Ihar Hrachyshka <[email protected]>
 Jakub Libosvar <[email protected]>
 James Carey <[email protected]>
 Jeremy Stanley <[email protected]>
 Julien Danjou <[email protected]>
+Kirill Bespalov <[email protected]>
 Mark McClain <[email protected]>
 Mark McLoughlin <[email protected]>
 Maru Newby <[email protected]>
@@ -27,9 +30,12 @@
 Sergey Lukjanov <[email protected]>
 Stanislav Kudriashev <[email protected]>
 Steve Martinelli <[email protected]>
+Swapnil Kulkarni (coolsvap) <[email protected]>
 Thierry Carrez <[email protected]>
 Thomas Bechtold <[email protected]>
 Tomoki Sekiyama <[email protected]>
+Tony Breeds <[email protected]>
+Tony Xu <[email protected]>
 Victor Stinner <[email protected]>
 Yatin Kumbhare <[email protected]>
 Yufang Zhang <[email protected]>
@@ -37,5 +43,6 @@
 Zhao Lei <[email protected]>
 Zhongyue Luo <[email protected]>
 fumihiko kakuma <[email protected]>
+howardlee <[email protected]>
 sonu.kumar <[email protected]>
 yan.haifeng <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/ChangeLog 
new/oslo.rootwrap-5.4.0/ChangeLog
--- old/oslo.rootwrap-5.1.1/ChangeLog   2016-11-04 06:52:03.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/ChangeLog   2017-01-18 20:32:57.000000000 +0100
@@ -1,22 +1,40 @@
 CHANGES
 =======
 
-5.1.1
+5.4.0
 -----
 
+* Relax default strict option under python3.x for configparser
+* Add Constraints support
+* Show team and repo badges on README
+
+5.3.0
+-----
+
+* Updated from global requirements
+* Updated from global requirements
+* [TrivialFix] Replace 'assertFalse(a in b)' with 'assertNotIn(a, b)'
 * Fix running unknown commands in daemon mode
-* Update .gitreview for stable/newton
+* Enable release notes translation
+
+5.2.0
+-----
+
+* Update homepage with developer documentation page
+* Enhance _program() and _program_path()
 
 5.1.0
 -----
 
 * Fix parameters of assertEqual are misplaced
+* Remove discover from test-requirements
 
 5.0.0
 -----
 
 * always allow privsep-helper as a command
 * Add Python 3.5 classifier and venv
+* Add reno for release notes management
 
 4.4.0
 -----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/PKG-INFO 
new/oslo.rootwrap-5.4.0/PKG-INFO
--- old/oslo.rootwrap-5.1.1/PKG-INFO    2016-11-04 06:52:03.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/PKG-INFO    2017-01-18 20:32:58.000000000 +0100
@@ -1,12 +1,21 @@
 Metadata-Version: 1.1
 Name: oslo.rootwrap
-Version: 5.1.1
+Version: 5.4.0
 Summary: Oslo Rootwrap
-Home-page: https://launchpad.net/oslo
+Home-page: http://docs.openstack.org/developer/oslo.rootwrap
 Author: OpenStack
 Author-email: [email protected]
 License: UNKNOWN
-Description: ===============================================
+Description: ========================
+        Team and repository tags
+        ========================
+        
+        .. image:: http://governance.openstack.org/badges/oslo.rootwrap.svg
+            :target: http://governance.openstack.org/reference/tags/index.html
+        
+        .. Change things from this point on
+        
+        ===============================================
          oslo.rootwrap -- Escalated Permission Control
         ===============================================
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/README.rst 
new/oslo.rootwrap-5.4.0/README.rst
--- old/oslo.rootwrap-5.1.1/README.rst  2016-11-04 06:50:51.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/README.rst  2017-01-18 20:31:15.000000000 +0100
@@ -1,3 +1,12 @@
+========================
+Team and repository tags
+========================
+
+.. image:: http://governance.openstack.org/badges/oslo.rootwrap.svg
+    :target: http://governance.openstack.org/reference/tags/index.html
+
+.. Change things from this point on
+
 ===============================================
  oslo.rootwrap -- Escalated Permission Control
 ===============================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/oslo.rootwrap.egg-info/PKG-INFO 
new/oslo.rootwrap-5.4.0/oslo.rootwrap.egg-info/PKG-INFO
--- old/oslo.rootwrap-5.1.1/oslo.rootwrap.egg-info/PKG-INFO     2016-11-04 
06:52:03.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/oslo.rootwrap.egg-info/PKG-INFO     2017-01-18 
20:32:57.000000000 +0100
@@ -1,12 +1,21 @@
 Metadata-Version: 1.1
 Name: oslo.rootwrap
-Version: 5.1.1
+Version: 5.4.0
 Summary: Oslo Rootwrap
-Home-page: https://launchpad.net/oslo
+Home-page: http://docs.openstack.org/developer/oslo.rootwrap
 Author: OpenStack
 Author-email: [email protected]
 License: UNKNOWN
-Description: ===============================================
+Description: ========================
+        Team and repository tags
+        ========================
+        
+        .. image:: http://governance.openstack.org/badges/oslo.rootwrap.svg
+            :target: http://governance.openstack.org/reference/tags/index.html
+        
+        .. Change things from this point on
+        
+        ===============================================
          oslo.rootwrap -- Escalated Permission Control
         ===============================================
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.rootwrap-5.1.1/oslo.rootwrap.egg-info/SOURCES.txt 
new/oslo.rootwrap-5.4.0/oslo.rootwrap.egg-info/SOURCES.txt
--- old/oslo.rootwrap-5.1.1/oslo.rootwrap.egg-info/SOURCES.txt  2016-11-04 
06:52:03.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/oslo.rootwrap.egg-info/SOURCES.txt  2017-01-18 
20:32:58.000000000 +0100
@@ -33,9 +33,17 @@
 oslo_rootwrap/daemon.py
 oslo_rootwrap/filters.py
 oslo_rootwrap/jsonrpc.py
+oslo_rootwrap/version.py
 oslo_rootwrap/wrapper.py
 oslo_rootwrap/tests/__init__.py
 oslo_rootwrap/tests/run_daemon.py
 oslo_rootwrap/tests/test_functional.py
 oslo_rootwrap/tests/test_functional_eventlet.py
-oslo_rootwrap/tests/test_rootwrap.py
\ No newline at end of file
+oslo_rootwrap/tests/test_rootwrap.py
+releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml
+releasenotes/source/conf.py
+releasenotes/source/index.rst
+releasenotes/source/unreleased.rst
+releasenotes/source/_static/.placeholder
+releasenotes/source/_templates/.placeholder
+tools/tox_install.sh
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/oslo.rootwrap.egg-info/pbr.json 
new/oslo.rootwrap-5.4.0/oslo.rootwrap.egg-info/pbr.json
--- old/oslo.rootwrap-5.1.1/oslo.rootwrap.egg-info/pbr.json     2016-11-04 
06:52:03.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/oslo.rootwrap.egg-info/pbr.json     2017-01-18 
20:32:57.000000000 +0100
@@ -1 +1 @@
-{"git_version": "36e9592", "is_release": true}
\ No newline at end of file
+{"is_release": true, "git_version": "698ce0b"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/oslo_rootwrap/filters.py 
new/oslo.rootwrap-5.4.0/oslo_rootwrap/filters.py
--- old/oslo.rootwrap-5.1.1/oslo_rootwrap/filters.py    2016-11-04 
06:50:51.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/oslo_rootwrap/filters.py    2017-01-18 
20:31:15.000000000 +0100
@@ -16,6 +16,7 @@
 import os
 import pwd
 import re
+import shutil
 
 
 def _getuid(user):
@@ -156,15 +157,26 @@
     def __init__(self, *args):
         super(KillFilter, self).__init__("/bin/kill", *args)
 
-    def _program_path(self, command):
-        """Determine the full path for command"""
+    @staticmethod
+    def _program_path(command):
+        """Try to determine the full path for command.
+
+        Return command if the full path cannot be found.
+        """
+
+        # shutil.which() was added to Python 3.3
+        if hasattr(shutil, 'which'):
+            return shutil.which(command)
+
         if os.path.isabs(command):
             return command
-        else:
-            for path in os.environ.get('PATH', '').split(os.pathsep):
-                program = os.path.join(path, command)
-                if os.path.isfile(program):
-                    return program
+
+        path = os.environ.get('PATH', os.defpath).split(os.pathsep)
+        for dir in path:
+            program = os.path.join(dir, command)
+            if os.path.isfile(program):
+                return program
+
         return command
 
     def _program(self, pid):
@@ -177,8 +189,8 @@
             return None
 
         # NOTE(yufang521247): /proc/PID/exe may have '\0' on the
-        # end, because python doesn't stop at '\0' when read the
-        # target path.
+        # end (ex: if an executable is updated or deleted), because python
+        # doesn't stop at '\0' when read the target path.
         command = command.partition('\0')[0]
 
         # NOTE(dprince): /proc/PID/exe may have ' (deleted)' on
@@ -186,23 +198,26 @@
         if command.endswith(" (deleted)"):
             command = command[:-len(" (deleted)")]
 
+        if os.path.isfile(command):
+            return command
+
         # /proc/PID/exe may have been renamed with
         # a ';......' or '.#prelink#......' suffix etc.
         # So defer to /proc/PID/cmdline in that case.
-        if not os.path.isfile(command):
-            try:
-                with open("/proc/%d/cmdline" % int(pid)) as pfile:
-                    cmdline = pfile.read().partition('\0')[0]
-                cmdline = self._program_path(cmdline)
-                if os.path.isfile(cmdline):
-                    command = cmdline
-                # Note we don't return None if cmdline doesn't exist
-                # as that will allow killing a process where the exe
-                # has been removed from the system rather than updated.
-            except EnvironmentError:
-                return None
+        try:
+            with open("/proc/%d/cmdline" % int(pid)) as pfile:
+                cmdline = pfile.read().partition('\0')[0]
 
-        return command
+            cmdline = self._program_path(cmdline)
+            if os.path.isfile(cmdline):
+                command = cmdline
+
+            # Note we don't return None if cmdline doesn't exist
+            # as that will allow killing a process where the exe
+            # has been removed from the system rather than updated.
+            return command
+        except EnvironmentError:
+            return None
 
     def match(self, userargs):
         if not userargs or userargs[0] != "kill":
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.rootwrap-5.1.1/oslo_rootwrap/tests/test_rootwrap.py 
new/oslo.rootwrap-5.4.0/oslo_rootwrap/tests/test_rootwrap.py
--- old/oslo.rootwrap-5.1.1/oslo_rootwrap/tests/test_rootwrap.py        
2016-11-04 06:50:51.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/oslo_rootwrap/tests/test_rootwrap.py        
2017-01-18 20:31:15.000000000 +0100
@@ -44,6 +44,18 @@
             self.assertEqual(["/fake/privsep-helper", "--context", "foo"],
                              filtermatch.get_command(privsep))
 
+    def test_strict_switched_off_in_configparser(self):
+        temp_dir = self.useFixture(fixtures.TempDir()).path
+        temp_file = os.path.join(temp_dir, 'test.conf')
+        f = open(temp_file, 'w')
+        f.write("""[Filters]
+privsep: PathFilter, privsep-helper, root
+privsep: PathFilter, privsep-helper, root
+""")
+        f.close()
+        filterlist = wrapper.load_filters([temp_dir])
+        self.assertIsNotNone(filterlist)
+
 
 class RootwrapTestCase(testtools.TestCase):
     if os.path.exists('/sbin/ip'):
@@ -156,7 +168,7 @@
         # check that environment variables are set
         self.assertEqual('/some/thing', env.get('A'))
         self.assertEqual('somethingelse', env.get('B'))
-        self.assertFalse('sleep' in env.keys())
+        self.assertNotIn('sleep', env.keys())
 
     def test_EnvFilter_without_leading_env(self):
         envset = ['A=/some/thing', 'B=somethingelse']
@@ -175,7 +187,7 @@
         # check that environment variables are set
         self.assertEqual('/some/thing', env.get('A'))
         self.assertEqual('somethingelse', env.get('B'))
-        self.assertFalse('sleep' in env.keys())
+        self.assertNotIn('sleep', env.keys())
 
     def test_KillFilter(self):
         if not os.path.exists("/proc/%d" % os.getpid()):
@@ -254,33 +266,42 @@
                 exists.side_effect = fake_exists
                 self.assertTrue(f.match(usercmd))
 
-    def test_KillFilter_upgraded_exe(self):
+    @mock.patch('os.readlink')
+    @mock.patch('os.path.isfile')
+    def test_KillFilter_upgraded_exe(self, mock_isfile, mock_readlink):
         """Makes sure upgraded exe's are killed correctly."""
         f = filters.KillFilter("root", "/bin/commandddddd")
         command = "/bin/commandddddd"
         usercmd = ['kill', 1234]
-        with mock.patch('os.readlink') as readlink:
-            readlink.return_value = command + '\0\05190bfb2 (deleted)'
-            with mock.patch('os.path.isfile') as exists:
-                def fake_exists(path):
-                    return path == command
-                exists.side_effect = fake_exists
-                self.assertTrue(f.match(usercmd))
 
-    def test_KillFilter_renamed_exe(self):
+        def fake_exists(path):
+            return path == command
+
+        mock_readlink.return_value = command + '\0\05190bfb2 (deleted)'
+        mock_isfile.side_effect = fake_exists
+        self.assertTrue(f.match(usercmd))
+
+    @mock.patch('os.readlink')
+    @mock.patch('os.path.isfile')
+    @mock.patch('os.path.exists')
+    @mock.patch('os.access')
+    def test_KillFilter_renamed_exe(self, mock_access, mock_exists,
+                                    mock_isfile, mock_readlink):
         """Makes sure renamed exe's are killed correctly."""
         command = "/bin/commandddddd"
         f = filters.KillFilter("root", command)
         usercmd = ['kill', 1234]
-        with mock.patch('os.readlink') as readlink:
-            readlink.return_value = command + ';90bfb2 (deleted)'
-            m = mock.mock_open(read_data=command)
-            with mock.patch("six.moves.builtins.open", m, create=True):
-                with mock.patch('os.path.isfile') as exists:
-                    def fake_exists(path):
-                        return path == command
-                    exists.side_effect = fake_exists
-                    self.assertTrue(f.match(usercmd))
+
+        def fake_os_func(path, *args):
+            return path == command
+
+        mock_readlink.return_value = command + ';90bfb2 (deleted)'
+        m = mock.mock_open(read_data=command)
+        with mock.patch("six.moves.builtins.open", m, create=True):
+            mock_isfile.side_effect = fake_os_func
+            mock_exists.side_effect = fake_os_func
+            mock_access.side_effect = fake_os_func
+            self.assertTrue(f.match(usercmd))
 
     def test_ReadFileFilter(self):
         goodfn = '/good/file.name'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/oslo_rootwrap/version.py 
new/oslo.rootwrap-5.4.0/oslo_rootwrap/version.py
--- old/oslo.rootwrap-5.1.1/oslo_rootwrap/version.py    1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/oslo_rootwrap/version.py    2017-01-18 
20:31:15.000000000 +0100
@@ -0,0 +1,18 @@
+#    Copyright 2016 OpenStack Foundation
+#
+#    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 pbr.version
+
+version_info = pbr.version.VersionInfo('oslo_rootwrap')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/oslo_rootwrap/wrapper.py 
new/oslo.rootwrap-5.4.0/oslo_rootwrap/wrapper.py
--- old/oslo.rootwrap-5.1.1/oslo_rootwrap/wrapper.py    2016-11-04 
06:50:51.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/oslo_rootwrap/wrapper.py    2017-01-18 
20:31:15.000000000 +0100
@@ -19,6 +19,7 @@
 import pwd
 import signal
 
+import six
 from six import moves
 
 from oslo_rootwrap import filters
@@ -116,7 +117,8 @@
             continue
         for filterfile in filter(lambda f: not f.startswith('.'),
                                  os.listdir(filterdir)):
-            filterconfig = moves.configparser.RawConfigParser()
+            kwargs = {"strict": False} if six.PY3 else {}
+            filterconfig = moves.configparser.RawConfigParser(**kwargs)
             filterconfig.read(os.path.join(filterdir, filterfile))
             for (name, value) in filterconfig.items("Filters"):
                 filterdefinition = [s.strip() for s in value.split(',')]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.rootwrap-5.1.1/releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml 
new/oslo.rootwrap-5.4.0/releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml
--- old/oslo.rootwrap-5.1.1/releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml   
1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml   
2017-01-18 20:31:15.000000000 +0100
@@ -0,0 +1,3 @@
+---
+other:
+  - Switch to reno for managing release notes.
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/releasenotes/source/conf.py 
new/oslo.rootwrap-5.4.0/releasenotes/source/conf.py
--- old/oslo.rootwrap-5.1.1/releasenotes/source/conf.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/releasenotes/source/conf.py 2017-01-18 
20:31:15.000000000 +0100
@@ -0,0 +1,277 @@
+# -*- coding: utf-8 -*-
+# 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.
+
+# 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 = [
+    'oslosphinx',
+    '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'oslo.rootwrap Release Notes'
+copyright = u'2016, oslo.rootwrap Developers'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+from oslo_rootwrap.version import version_info as oslo_rootwrap_version
+# The full version, including alpha/beta/rc tags.
+release = oslo_rootwrap_version.version_string_with_vcs()
+# The short X.Y version.
+version = oslo_rootwrap_version.canonical_version_string()
+
+# 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 = 'default'
+
+# 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 = 'oslo.rootwrapReleaseNotesDoc'
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+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': '',
+}
+
+# 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', 'oslo.rootwrapReleaseNotes.tex',
+     u'oslo.rootwrap Release Notes Documentation',
+     u'oslo.rootwrap Developers', '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', 'oslo.rootwrapReleaseNotes',
+     u'oslo.rootwrap Release Notes Documentation',
+     [u'oslo.rootwrap Developers'], 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', 'oslo.rootwrapReleaseNotes',
+     u'oslo.rootwrap Release Notes Documentation',
+     u'oslo.rootwrap Developers', 'oslo.rootwrapReleaseNotes',
+     'Allows fine-grained filtering of shell commands to run as root from'
+     ' OpenStack services.',
+     '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/']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/releasenotes/source/index.rst 
new/oslo.rootwrap-5.4.0/releasenotes/source/index.rst
--- old/oslo.rootwrap-5.1.1/releasenotes/source/index.rst       1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/releasenotes/source/index.rst       2017-01-18 
20:31:15.000000000 +0100
@@ -0,0 +1,8 @@
+=============================
+ oslo.rootwrap Release Notes
+=============================
+
+ .. toctree::
+    :maxdepth: 1
+
+    unreleased
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.rootwrap-5.1.1/releasenotes/source/unreleased.rst 
new/oslo.rootwrap-5.4.0/releasenotes/source/unreleased.rst
--- old/oslo.rootwrap-5.1.1/releasenotes/source/unreleased.rst  1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/releasenotes/source/unreleased.rst  2017-01-18 
20:31:15.000000000 +0100
@@ -0,0 +1,5 @@
+==========================
+ Unreleased Release Notes
+==========================
+
+.. release-notes::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/setup.cfg 
new/oslo.rootwrap-5.4.0/setup.cfg
--- old/oslo.rootwrap-5.1.1/setup.cfg   2016-11-04 06:52:03.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/setup.cfg   2017-01-18 20:32:58.000000000 +0100
@@ -5,7 +5,7 @@
 summary = Oslo Rootwrap
 description-file = 
        README.rst
-home-page = https://launchpad.net/oslo
+home-page = http://docs.openstack.org/developer/oslo.rootwrap
 classifier = 
        Development Status :: 4 - Beta
        Environment :: OpenStack
@@ -45,5 +45,4 @@
 [egg_info]
 tag_build = 
 tag_date = 0
-tag_svn_revision = 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/test-requirements.txt 
new/oslo.rootwrap-5.4.0/test-requirements.txt
--- old/oslo.rootwrap-5.1.1/test-requirements.txt       2016-11-04 
06:50:51.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/test-requirements.txt       2017-01-18 
20:31:15.000000000 +0100
@@ -4,7 +4,6 @@
 
 hacking<0.11,>=0.10.0
 
-discover # BSD
 fixtures>=3.0.0 # Apache-2.0/BSD
 python-subunit>=0.0.18 # Apache-2.0/BSD
 testrepository>=0.0.18 # Apache-2.0/BSD
@@ -12,8 +11,8 @@
 testtools>=1.4.0 # MIT
 
 # this is required for the docs build jobs
-sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
-oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
+sphinx!=1.3b1,<1.4,>=1.2.1 # BSD
+oslosphinx>=4.7.0 # Apache-2.0
 oslotest>=1.10.0 # Apache-2.0
 
 
@@ -22,3 +21,5 @@
 
 # rootwrap daemon's client should be verified to run in eventlet
 eventlet!=0.18.3,>=0.18.2 # MIT
+
+reno>=1.8.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/tools/tox_install.sh 
new/oslo.rootwrap-5.4.0/tools/tox_install.sh
--- old/oslo.rootwrap-5.1.1/tools/tox_install.sh        1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/tools/tox_install.sh        2017-01-18 
20:31:15.000000000 +0100
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+
+# Client constraint file contains this client version pin that is in conflict
+# with installing the client from source. We should remove the version pin in
+# the constraints file before applying it for from-source installation.
+
+CONSTRAINTS_FILE=$1
+shift 1
+
+set -e
+
+# NOTE(tonyb): Place this in the tox enviroment's log dir so it will get
+# published to logs.openstack.org for easy debugging.
+localfile="$VIRTUAL_ENV/log/upper-constraints.txt"
+
+if [[ $CONSTRAINTS_FILE != http* ]]; then
+    CONSTRAINTS_FILE=file://$CONSTRAINTS_FILE
+fi
+# NOTE(tonyb): need to add curl to bindep.txt if the project supports bindep
+curl $CONSTRAINTS_FILE --insecure --progress-bar --output $localfile
+
+pip install -c$localfile openstack-requirements
+
+# This is the main purpose of the script: Allow local installation of
+# the current repo. It is listed in constraints file and thus any
+# install will be constrained and we need to unconstrain it.
+edit-constraints $localfile -- $CLIENT_NAME
+
+pip install -c$localfile -U $*
+exit $?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.rootwrap-5.1.1/tox.ini 
new/oslo.rootwrap-5.4.0/tox.ini
--- old/oslo.rootwrap-5.1.1/tox.ini     2016-11-04 06:50:51.000000000 +0100
+++ new/oslo.rootwrap-5.4.0/tox.ini     2017-01-18 20:31:15.000000000 +0100
@@ -1,8 +1,13 @@
 [tox]
-minversion = 1.6
+minversion = 2.0
 envlist = py35,py34,py27,pep8
 
 [testenv]
+setenv =
+    VIRTUAL_ENV={envdir}
+    BRANCH_NAME=master
+    CLIENT_NAME=oslo.rootwrap
+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
 # Functional tests with Eventlet involve monkeypatching, so force them to be
 # run in a separate process
@@ -17,7 +22,6 @@
 [testenv:cover]
 deps = {[testenv]deps}
     coverage
-setenv = VIRTUAL_ENV={envdir}
 commands =
   python setup.py testr --coverage
 
@@ -42,3 +46,6 @@
 # of the requirements.txt files
 deps = pip_missing_reqs
 commands = pip-missing-reqs -d --ignore-module=oslo_rootwrap* 
--ignore-module=pkg_resources --ignore-file=oslo_rootwrap/test.py 
--ignore-file=oslo_rootwrap/tests/* oslo_rootwrap
+
+[testenv:releasenotes]
+commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html 
releasenotes/source releasenotes/build/html


Reply via email to