Hello community,
here is the log from the commit of package python-oslo.policy for
openSUSE:Factory checked in at 2017-02-21 13:40:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.policy (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.policy.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.policy"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.policy/python-oslo.policy.changes
2016-09-30 15:29:26.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.python-oslo.policy.new/python-oslo.policy.changes
2017-02-21 13:40:11.050332568 +0100
@@ -1,0 +2,33 @@
+Fri Feb 10 15:52:53 UTC 2017 - [email protected]
+
+- update to version 1.18.0:
+ - Add missing parameter description in module _cache_handler
+ - Imported Translations from Zanata
+ - Enable release notes translation
+ - Remove dead code and use default value of argparse.
+ - Remove oslo.utils from requirements
+ - Update reno for stable/newton
+ - Remove references to Python 3.4
+ - Change assertTrue(isinstance()) by optimal assert
+ - Add stevedore to requirements
+ - Show team and repo badges on README
+ - Improved performance of parse_file_contents() method
+ - Doc: declare YAML/JSON support
+ - Remove wrong parameter type for class NotCheck from docstring
+ - Add sphinx extension to build sample policy
+ - Perform basic checks on policy definitions
+ - Update docs on policy sample generator
+ - Fix a code logic while doing cyclical reference check to the policy
+ - doc: Add introduction to index page
+ - Add Constraints support
+ - Changed the home-page link
+ - Fix typo in oslo.policy
+ - Make exception PolicyNotAuthorized more readable
+ - Updated from global requirements
+
+-------------------------------------------------------------------
+Fri Oct 14 13:59:40 UTC 2016 - [email protected]
+
+- switch to stable/newton tarball in _service
+
+-------------------------------------------------------------------
Old:
----
oslo.policy-1.14.0.tar.gz
New:
----
oslo.policy-1.18.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.policy.spec ++++++
--- /var/tmp/diff_new_pack.imR6Ou/_old 2017-02-21 13:40:12.182172897 +0100
+++ /var/tmp/diff_new_pack.imR6Ou/_new 2017-02-21 13:40:12.186172333 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.policy
#
-# 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,29 +18,27 @@
%global sname oslo.policy
Name: python-oslo.policy
-Version: 1.14.0
+Version: 1.18.0
Release: 0
Summary: OpenStack Oslo Policy library
License: Apache-2.0
-Group: Documentation
+Group: Development/Languages/Python
Url: https://launchpad.net/%sname
Source0:
https://pypi.io/packages/source/o/%{sname}/%{sname}-%{version}.tar.gz
BuildRequires: openstack-macros
-BuildRequires: python-PyYAML >= 3.1.0
+BuildRequires: python-PyYAML >= 3.10.0
BuildRequires: python-devel
BuildRequires: python-oslo.config >= 3.14.0
BuildRequires: python-oslo.i18n >= 2.1.0
BuildRequires: python-oslo.serialization >= 1.10.0
-BuildRequires: python-oslo.utils >= 3.16.0
BuildRequires: python-oslotest >= 1.10.0
-BuildRequires: python-pbr >= 1.6
+BuildRequires: python-pbr >= 1.8
BuildRequires: python-requests >= 2.10.0
-BuildRequires: python-requests-mock >= 1.0
-Requires: python-PyYAML >= 3.1.0
+BuildRequires: python-requests-mock >= 1.1
+Requires: python-PyYAML >= 3.10.0
Requires: python-oslo.config >= 3.14.0
Requires: python-oslo.i18n >= 2.1.0
Requires: python-oslo.serialization >= 1.10.0
-Requires: python-oslo.utils >= 3.16.0
Requires: python-requests >= 2.10.0
Requires: python-six >= 1.9.0
BuildArch: noarch
@@ -53,13 +51,14 @@
Summary: Documentation for the Oslo Policy library
Group: Documentation
BuildRequires: python-Sphinx
-BuildRequires: python-oslosphinx >= 2.5.0
+BuildRequires: python-oslosphinx >= 4.7.0
%description doc
Documentation for the Oslo Policy library.
%prep
-%setup -q -n %{sname}-%{version}
+%autosetup -n %{sname}-%{version}
+%py_req_cleanup
%build
%{py2_build}
++++++ _service ++++++
--- /var/tmp/diff_new_pack.imR6Ou/_old 2017-02-21 13:40:12.226166690 +0100
+++ /var/tmp/diff_new_pack.imR6Ou/_new 2017-02-21 13:40:12.226166690 +0100
@@ -1,13 +1,12 @@
<services>
<service mode="disabled" name="renderspec">
- <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/master/openstack/oslo.policy/oslo.policy.spec.j2</param>
+ <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/ocata/openstack/oslo.policy/oslo.policy.spec.j2</param>
<param name="output-name">python-oslo.policy.spec</param>
- <param
name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/master/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.policy</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.policy-1.14.0.tar.gz -> oslo.policy-1.18.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/AUTHORS
new/oslo.policy-1.18.0/AUTHORS
--- old/oslo.policy-1.14.0/AUTHORS 2016-08-10 14:17:48.000000000 +0200
+++ new/oslo.policy-1.18.0/AUTHORS 2017-01-18 15:11:06.000000000 +0100
@@ -23,8 +23,10 @@
Doug Hellmann <[email protected]>
Douglas Mendizábal <[email protected]>
Edan David <[email protected]>
+Eric Brown <[email protected]>
Eric Windisch <[email protected]>
Flaper Fesp <[email protected]>
+Flavio Percoco <[email protected]>
Florent Flament <[email protected]>
Gary Kotton <[email protected]>
Haiwei Xu <[email protected]>
@@ -45,6 +47,7 @@
Kevin L. Mitchell <[email protected]>
Kirill Bespalov <[email protected]>
Kseniya Tychkova <[email protected]>
+Luong Anh Tuan <[email protected]>
Mark McClain <[email protected]>
Mark McLoughlin <[email protected]>
Maruti <[email protected]>
@@ -53,23 +56,31 @@
Nathan Kinder <[email protected]>
Rodrigo Duarte Sousa <[email protected]>
Ronald Bradford <[email protected]>
+Sami Makki <[email protected]>
Sean Dague <[email protected]>
Sergey Kraynev <[email protected]>
Sergey Lukjanov <[email protected]>
+Sergey Nikitin <[email protected]>
ShaoHe Feng <[email protected]>
Shuangtai Tian <[email protected]>
+Stephen Finucane <[email protected]>
Steve Martinelli <[email protected]>
Takashi NATSUME <[email protected]>
Thiago Paiva <[email protected]>
Tim Goddard <[email protected]>
Timothy Symanczyk <[email protected]>
Tony Breeds <[email protected]>
+Tony Xu <[email protected]>
Victor Sergeyev <[email protected]>
Vishvananda Ishaya <[email protected]>
Wei Li <[email protected]>
+Xu Ao <[email protected]>
Zhi Yan Liu <[email protected]>
Zhongyue Luo <[email protected]>
fujioka yuuichi <[email protected]>
+gecong1973 <[email protected]>
guohliu <[email protected]>
+howardlee <[email protected]>
+melissaml <[email protected]>
sonu.kumar <[email protected]>
vponomaryov <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/ChangeLog
new/oslo.policy-1.18.0/ChangeLog
--- old/oslo.policy-1.14.0/ChangeLog 2016-08-10 14:17:48.000000000 +0200
+++ new/oslo.policy-1.18.0/ChangeLog 2017-01-18 15:11:06.000000000 +0100
@@ -1,6 +1,53 @@
CHANGES
=======
+1.18.0
+------
+
+* Remove references to Python 3.4
+* Remove dead code and use default value of argparse
+* Add Constraints support
+* Updated from global requirements
+
+1.17.0
+------
+
+* Improved performance of parse_file_contents() method
+* Show team and repo badges on README
+* Remove wrong parameter type for class NotCheck from docstring
+* Fix a code logic while doing cyclical reference check to the policy
+* Updated from global requirements
+* Add missing parameter description in module _cache_handler
+* Fix typo in oslo.policy
+* Updated from global requirements
+* Add stevedore to requirements
+* Imported Translations from Zanata
+* Updated from global requirements
+* Make exception PolicyNotAuthorized more readable
+
+1.16.0
+------
+
+* Change assertTrue(isinstance()) by optimal assert
+* Perform basic checks on policy definitions
+* Enable release notes translation
+* Changed the home-page link
+* Change assertTrue(isinstance()) by optimal assert
+
+1.15.0
+------
+
+* Updated from global requirements
+* Update docs on policy sample generator
+* Updated from global requirements
+* doc: Add introduction to index page
+* Add sphinx extension to build sample policy
+* Updated from global requirements
+* Updated from global requirements
+* Doc: declare YAML/JSON support
+* Remove oslo.utils from requirements
+* Update reno for stable/newton
+
1.14.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/PKG-INFO
new/oslo.policy-1.18.0/PKG-INFO
--- old/oslo.policy-1.14.0/PKG-INFO 2016-08-10 14:17:49.000000000 +0200
+++ new/oslo.policy-1.18.0/PKG-INFO 2017-01-18 15:11:06.000000000 +0100
@@ -1,12 +1,21 @@
Metadata-Version: 1.1
Name: oslo.policy
-Version: 1.14.0
+Version: 1.18.0
Summary: Oslo Policy library
-Home-page: http://launchpad.net/oslo.policy
+Home-page: http://docs.openstack.org/developer/oslo.policy/
Author: OpenStack
Author-email: [email protected]
License: UNKNOWN
-Description: =============
+Description: ========================
+ Team and repository tags
+ ========================
+
+ .. image:: http://governance.openstack.org/badges/oslo.policy.svg
+ :target: http://governance.openstack.org/reference/tags/index.html
+
+ .. Change things from this point on
+
+ =============
oslo.policy
=============
@@ -37,5 +46,4 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/README.rst
new/oslo.policy-1.18.0/README.rst
--- old/oslo.policy-1.14.0/README.rst 2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/README.rst 2017-01-18 15:09:32.000000000 +0100
@@ -1,3 +1,12 @@
+========================
+Team and repository tags
+========================
+
+.. image:: http://governance.openstack.org/badges/oslo.policy.svg
+ :target: http://governance.openstack.org/reference/tags/index.html
+
+.. Change things from this point on
+
=============
oslo.policy
=============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/doc/source/index.rst
new/oslo.policy-1.18.0/doc/source/index.rst
--- old/oslo.policy-1.14.0/doc/source/index.rst 2016-08-10 14:15:46.000000000
+0200
+++ new/oslo.policy-1.18.0/doc/source/index.rst 2017-01-18 15:09:32.000000000
+0100
@@ -2,6 +2,9 @@
oslo.policy
=============
+An OpenStack library providing support for RBAC policy enforcement across all
+OpenStack services.
+
Contents
========
@@ -14,6 +17,14 @@
opts
cli
contributing
+ sphinxpolicygen
+
+Release Notes
+=============
+
+.. toctree::
+ :maxdepth: 1
+
history
Indices and tables
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/doc/source/sphinxpolicygen.rst
new/oslo.policy-1.18.0/doc/source/sphinxpolicygen.rst
--- old/oslo.policy-1.14.0/doc/source/sphinxpolicygen.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/oslo.policy-1.18.0/doc/source/sphinxpolicygen.rst 2017-01-18
15:09:32.000000000 +0100
@@ -0,0 +1,48 @@
+====================================
+Sphinx Oslo Sample Policy Generation
+====================================
+
+.. note::
+ This extension relies on ``oslopolicy-sample-generator``, which requires
+ configuration of policies in code to function. Refer to the :doc:`usage`
+ guide for more information.
+
+oslo.policy includes a sphinx extension to generate a sample policy file at the
+beginning of each sphinx build. This sample policy file can then be included in
+your documents as a raw file, for example, via the ``literalinclude``
directive.
+
+To activate the extension add ``oslo_policy.sphinxpolicygen`` to the list of
+extensions in your sphinx ``conf.py``. Once enabled, you need to define two
+options: ``policy_generator_config_file`` and ``sample_policy_basename``. For
+example::
+
+ policy_generator_config_file = '../../etc/nova/nova-policy-generator.conf'
+ sample_policy_basename = '_static/nova'
+
+where:
+
+``policy_generator_config_file``
+ Path to an configuration file used with the ``oslopolicy-sample-generator``
+ utility. This can be an full path or a value relative to the documentation
+ source directory (``app.srcdir``). If this option is not specified or is
+ invalid then the sample policy file generation will be skipped.
+
+``sample_policy_basename``
+ Base name of the output file. This name will be appended with a
+ ``.policy.yaml.sample`` extension to generate the final output file and the
+ path is relative to documentation source directory (``app.srcdir``). As such,
+ using the above example, the policy file will be output to
+ ``_static/nova.policy.yaml.sample``. If this option is not specified, the
+ file will be output to ``sample.policy.yaml``.
+
+Once configured, you can include this configuration file in your source:
+
+.. code:: reST
+
+ =============
+ Sample Policy
+ =============
+
+ Here is a sample policy file.
+
+ .. literalinclude:: _static/nova.policy.yaml.sample
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/doc/source/usage.rst
new/oslo.policy-1.18.0/doc/source/usage.rst
--- old/oslo.policy-1.14.0/doc/source/usage.rst 2016-08-10 14:15:46.000000000
+0200
+++ new/oslo.policy-1.18.0/doc/source/usage.rst 2017-01-18 15:09:32.000000000
+0100
@@ -90,15 +90,14 @@
[entry_points]
oslo.policy.policies =
- nova.api = nova.api.opts:list_policies
- nova.compute.api = nova.compute.api.opts:list_policies
+ nova = nova.policy:list_policies
where list_policies is a method that returns a list of policy.RuleDefault
objects.
Run the oslopolicy-sample-generator script with some configuration options::
- oslopolicy-sample-generator --namespace nova.api --namespace
nova.compute.api --output-file policy-sample.yaml
+ oslopolicy-sample-generator --namespace nova --output-file
policy-sample.yaml
or::
@@ -108,10 +107,9 @@
[DEFAULT]
output_file = policy-sample.yaml
- namespace = nova.api
- namespace = nova.compute.api
+ namespace = nova
-If output_file is ommitted the sample file will be sent to stdout.
+If output_file is omitted the sample file will be sent to stdout.
Merged file generation
----------------------
@@ -145,7 +143,7 @@
output_file = policy-merged.yaml
namespace = nova
-If output_file is ommitted the file will be sent to stdout.
+If output_file is omitted the file will be sent to stdout.
List of redundant configuration
-------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo.policy.egg-info/PKG-INFO
new/oslo.policy-1.18.0/oslo.policy.egg-info/PKG-INFO
--- old/oslo.policy-1.14.0/oslo.policy.egg-info/PKG-INFO 2016-08-10
14:17:48.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo.policy.egg-info/PKG-INFO 2017-01-18
15:11:06.000000000 +0100
@@ -1,12 +1,21 @@
Metadata-Version: 1.1
Name: oslo.policy
-Version: 1.14.0
+Version: 1.18.0
Summary: Oslo Policy library
-Home-page: http://launchpad.net/oslo.policy
+Home-page: http://docs.openstack.org/developer/oslo.policy/
Author: OpenStack
Author-email: [email protected]
License: UNKNOWN
-Description: =============
+Description: ========================
+ Team and repository tags
+ ========================
+
+ .. image:: http://governance.openstack.org/badges/oslo.policy.svg
+ :target: http://governance.openstack.org/reference/tags/index.html
+
+ .. Change things from this point on
+
+ =============
oslo.policy
=============
@@ -37,5 +46,4 @@
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo.policy.egg-info/SOURCES.txt
new/oslo.policy-1.18.0/oslo.policy.egg-info/SOURCES.txt
--- old/oslo.policy-1.14.0/oslo.policy.egg-info/SOURCES.txt 2016-08-10
14:17:49.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo.policy.egg-info/SOURCES.txt 2017-01-18
15:11:06.000000000 +0100
@@ -20,6 +20,7 @@
doc/source/index.rst
doc/source/installation.rst
doc/source/opts.rst
+doc/source/sphinxpolicygen.rst
doc/source/usage.rst
oslo.policy.egg-info/PKG-INFO
oslo.policy.egg-info/SOURCES.txt
@@ -39,6 +40,7 @@
oslo_policy/opts.py
oslo_policy/policy.py
oslo_policy/shell.py
+oslo_policy/sphinxpolicygen.py
oslo_policy/version.py
oslo_policy/locale/ar/LC_MESSAGES/oslo_policy-log-error.po
oslo_policy/locale/cs/LC_MESSAGES/oslo_policy-log-error.po
@@ -77,13 +79,18 @@
oslo_policy/tests/test_opts.py
oslo_policy/tests/test_parser.py
oslo_policy/tests/test_policy.py
+oslo_policy/tests/test_sphinxpolicygen.py
oslo_policy/tests/token_fixture.py
+releasenotes/notes/add-sphinxpolicygen-39e2f8fa24930b0c.yaml
releasenotes/notes/add_reno-3b4ae0789e9c45b4.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
+releasenotes/source/newton.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
sample_data/auth_v3_token_admin.json
-sample_data/auth_v3_token_member.json
\ No newline at end of file
+sample_data/auth_v3_token_member.json
+tools/tox_install.sh
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo.policy.egg-info/pbr.json
new/oslo.policy-1.18.0/oslo.policy.egg-info/pbr.json
--- old/oslo.policy-1.14.0/oslo.policy.egg-info/pbr.json 2016-08-10
14:17:48.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo.policy.egg-info/pbr.json 2017-01-18
15:11:06.000000000 +0100
@@ -1 +1 @@
-{"is_release": true, "git_version": "804be59"}
\ No newline at end of file
+{"is_release": true, "git_version": "b0621b4"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo.policy.egg-info/requires.txt
new/oslo.policy-1.18.0/oslo.policy.egg-info/requires.txt
--- old/oslo.policy-1.14.0/oslo.policy.egg-info/requires.txt 2016-08-10
14:17:48.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo.policy.egg-info/requires.txt 2017-01-18
15:11:06.000000000 +0100
@@ -1,7 +1,7 @@
-requests>=2.10.0
-oslo.config>=3.14.0
+requests!=2.12.2,>=2.10.0
+oslo.config!=3.18.0,>=3.14.0
oslo.i18n>=2.1.0
oslo.serialization>=1.10.0
-oslo.utils>=3.16.0
-PyYAML>=3.1.0
+PyYAML>=3.10.0
six>=1.9.0
+stevedore>=1.17.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo_policy/_cache_handler.py
new/oslo.policy-1.18.0/oslo_policy/_cache_handler.py
--- old/oslo.policy-1.14.0/oslo_policy/_cache_handler.py 2016-08-10
14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/_cache_handler.py 2017-01-18
15:09:32.000000000 +0100
@@ -22,6 +22,8 @@
def read_cached_file(cache, filename, force_reload=False):
"""Read from a file if it has been modified.
+ :param cache: dictionary to hold opaque cache.
+ :param filename: the file path to read.
:param force_reload: Whether to reload the file.
:returns: A tuple with a boolean specifying if the data is fresh
or not.
@@ -46,6 +48,7 @@
def delete_cached_file(cache, filename):
"""Delete cached file if present.
+ :param cache: dictionary to hold opaque cache.
:param filename: filename to delete
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/cs/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/cs/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/cs/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/cs/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -1,9 +1,9 @@
# OpenStack Infra <[email protected]>, 2015. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.5.1.dev7\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-24 22:21+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -33,6 +33,3 @@
msgid "Rules must be an instance of dict or Rules, got %s instead"
msgstr ""
"Pravidla musí být instancí slovníku nebo Pravidel, místo toho předáno %s"
-
-msgid "The JSON file that defines policies."
-msgstr "Soubor JSON určující zásady."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/de/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/de/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/de/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/de/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -2,9 +2,9 @@
# Tom Cocozzello <[email protected]>, 2015. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.5.1.dev7\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-24 22:21+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -37,6 +37,3 @@
msgstr ""
"Die Regeln müssen eine Instanz eines Verzeichnisses oder von Regeln sein, "
"anstatt dessen wurde %s zurückgemeldet."
-
-msgid "The JSON file that defines policies."
-msgstr "Die JSON Datei, welche die Richtlinien definiert."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/en_GB/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/en_GB/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/en_GB/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/en_GB/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -2,9 +2,9 @@
# Andi Chandler <[email protected]>, 2016. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.8.1.dev10\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-06-04 04:38+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -44,6 +44,3 @@
#, python-format
msgid "Rules must be an instance of dict or Rules, got %s instead"
msgstr "Rules must be an instance of dict or Rules, got %s instead"
-
-msgid "The JSON file that defines policies."
-msgstr "The JSON file that defines policies."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/es/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/es/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/es/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/es/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -1,15 +1,14 @@
# OpenStack Infra <[email protected]>, 2015. #zanata
-# Alex Eng <[email protected]>, 2016. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.8.1.dev10\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-06-04 04:38+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+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-03 05:56+0000\n"
-"Last-Translator: Alex Eng <[email protected]>\n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es\n"
"X-Generator: Zanata 3.7.3\n"
@@ -36,6 +35,3 @@
msgstr ""
"Reglas deben ser una instancia del diccionario o Reglas, obtenido %s en "
"lugar de"
-
-msgid "The JSON file that defines policies."
-msgstr "El archivo JSON que define políticas."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/fr/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/fr/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/fr/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/fr/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -2,9 +2,9 @@
# Tom Cocozzello <[email protected]>, 2015. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.5.1.dev7\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-24 22:21+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -37,6 +37,3 @@
msgstr ""
"Les Règles doivent être une instance d'un dict ou une Règle, pris %s à la "
"place"
-
-msgid "The JSON file that defines policies."
-msgstr "Le fichier JSON qui définit les stratégies."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/it/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/it/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/it/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/it/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -1,9 +1,9 @@
# Tom Cocozzello <[email protected]>, 2015. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.5.1.dev7\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-24 22:21+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -35,6 +35,3 @@
msgid "Rules must be an instance of dict or Rules, got %s instead"
msgstr ""
"le regole devono essere un'istanza di dict o Rules, si è ottenuto invece %s"
-
-msgid "The JSON file that defines policies."
-msgstr "Il file JSON che definisce le politiche"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/ja/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/ja/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/ja/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/ja/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -2,9 +2,9 @@
# KATO Tomoyuki <[email protected]>, 2016. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.9.1.dev3\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-06-11 00:26+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -43,6 +43,3 @@
msgstr ""
"ルールは辞書型または Rules のインスタンスでなければいけませんが、%s が渡され"
"ました。"
-
-msgid "The JSON file that defines policies."
-msgstr "ポリシーを定義した JSON ファイル。"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/ko_KR/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/ko_KR/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/ko_KR/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/ko_KR/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -2,9 +2,9 @@
# OpenStack Infra <[email protected]>, 2015. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.5.1.dev7\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-24 22:21+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -33,6 +33,3 @@
msgid "Rules must be an instance of dict or Rules, got %s instead"
msgstr ""
"규칙은 사전의 인스턴스이거나 규칙 그 자체여야 하지만 %s을(를) 가져왔습니다"
-
-msgid "The JSON file that defines policies."
-msgstr "JSON 파일로 정책을 정의합니다."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/pt_BR/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/pt_BR/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/pt_BR/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/pt_BR/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -2,9 +2,9 @@
# OpenStack Infra <[email protected]>, 2015. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.5.1.dev7\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-24 22:21+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -34,6 +34,3 @@
msgid "Rules must be an instance of dict or Rules, got %s instead"
msgstr ""
"Regras devem ser uma instância de dict ou Rules, recebeu %s em seu lugar"
-
-msgid "The JSON file that defines policies."
-msgstr "O arquivo JSON que define as políticas."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/ru/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/ru/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/ru/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/ru/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -2,9 +2,9 @@
# OpenStack Infra <[email protected]>, 2015. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.5.1.dev7\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-24 22:21+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -36,6 +36,3 @@
#, python-format
msgid "Rules must be an instance of dict or Rules, got %s instead"
msgstr "Rules должно быть экземпляром dict или Rules, получено %s"
-
-msgid "The JSON file that defines policies."
-msgstr "JSON файл определяющий политики."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/tr_TR/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/tr_TR/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/tr_TR/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/tr_TR/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -1,9 +1,9 @@
# OpenStack Infra <[email protected]>, 2015. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.5.1.dev7\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-24 22:21+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -31,6 +31,3 @@
#, python-format
msgid "Rules must be an instance of dict or Rules, got %s instead"
msgstr "Kurallar bir dict ya da Rules örneği olmalıdır, ama %s alındı"
-
-msgid "The JSON file that defines policies."
-msgstr "İlkeleri tanımlayan JSON dosyası."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/zh_CN/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/zh_CN/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/zh_CN/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/zh_CN/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -2,9 +2,9 @@
# liujunpeng <[email protected]>, 2015. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.5.1.dev7\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-24 22:21+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -31,6 +31,3 @@
#, python-format
msgid "Rules must be an instance of dict or Rules, got %s instead"
msgstr "规则必须是字典或者规则的实例化对像,获取 %s 取代"
-
-msgid "The JSON file that defines policies."
-msgstr "定义策略的JSON文件。"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/locale/zh_TW/LC_MESSAGES/oslo_policy.po
new/oslo.policy-1.18.0/oslo_policy/locale/zh_TW/LC_MESSAGES/oslo_policy.po
--- old/oslo.policy-1.14.0/oslo_policy/locale/zh_TW/LC_MESSAGES/oslo_policy.po
2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/locale/zh_TW/LC_MESSAGES/oslo_policy.po
2017-01-18 15:09:32.000000000 +0100
@@ -2,9 +2,9 @@
# OpenStack Infra <[email protected]>, 2015. #zanata
msgid ""
msgstr ""
-"Project-Id-Version: oslo.policy 1.5.1.dev7\n"
+"Project-Id-Version: oslo.policy 1.16.1.dev1\n"
"Report-Msgid-Bugs-To: https://bugs.launchpad.net/openstack-i18n/\n"
-"POT-Creation-Date: 2016-04-24 22:21+0000\n"
+"POT-Creation-Date: 2016-10-23 20:40+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -31,6 +31,3 @@
#, python-format
msgid "Rules must be an instance of dict or Rules, got %s instead"
msgstr "規則必須是已規範的實例或是規則內的實例,已使用 %s 來代替"
-
-msgid "The JSON file that defines policies."
-msgstr "定義了政策的 JSON 檔案。"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo_policy/opts.py
new/oslo.policy-1.18.0/oslo_policy/opts.py
--- old/oslo.policy-1.14.0/oslo_policy/opts.py 2016-08-10 14:15:46.000000000
+0200
+++ new/oslo.policy-1.18.0/oslo_policy/opts.py 2017-01-18 15:09:32.000000000
+0100
@@ -27,7 +27,7 @@
_options = [
cfg.StrOpt('policy_file',
default='policy.json',
- help=_('The JSON file that defines policies.'),
+ help=_('The file that defines policies.'),
deprecated_group='DEFAULT'),
cfg.StrOpt('policy_default_rule',
default='default',
@@ -84,7 +84,7 @@
:param conf: Configuration object, managed by the caller.
:type conf: oslo.config.cfg.ConfigOpts
- :param policy_file: The base filename for the JSON file that
+ :param policy_file: The base filename for the file that
defines policies.
:type policy_file: unicode
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo_policy/policy.py
new/oslo.policy-1.18.0/oslo_policy/policy.py
--- old/oslo.policy-1.14.0/oslo_policy/policy.py 2016-08-10
14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/policy.py 2017-01-18
15:09:32.000000000 +0100
@@ -232,6 +232,7 @@
from oslo_policy import _cache_handler
from oslo_policy import _checks
from oslo_policy._i18n import _
+from oslo_policy._i18n import _LW
from oslo_policy import _parser
from oslo_policy import opts
@@ -274,7 +275,6 @@
A policy check that inverts the result of another policy check.
:param rule: The rule to negate.
-:type rule: oslo_policy.policy.Check
"""
@@ -296,7 +296,8 @@
"""Default exception raised for policy enforcement failure."""
def __init__(self, rule, target, creds):
- msg = (_('%(rule)s on %(target)s by %(creds)s disallowed by policy') %
+ msg = (_('%(target)s is disallowed by policy rule %(rule)s '
+ 'with %(creds)s ') %
{'rule': rule, 'target': target, 'creds': creds})
super(PolicyNotAuthorized, self).__init__(msg)
@@ -324,11 +325,19 @@
'policy_name2': 'policy2,...}
"""
try:
- parsed = yaml.safe_load(data)
- except yaml.YAMLError as e:
- # For backwards-compatibility, convert yaml error to ValueError,
- # which is what JSON loader raised.
- raise ValueError(six.text_type(e))
+ # NOTE(snikitin): jsonutils.loads() is much faster than
+ # yaml.safe_load(). However jsonutils.loads() parses only JSON while
+ # yaml.safe_load() parses JSON and YAML. So here we try to parse data
+ # by jsonutils.loads() first. In case of failure yaml.safe_load()
+ # will be used instead.
+ parsed = jsonutils.loads(data)
+ except ValueError:
+ try:
+ parsed = yaml.safe_load(data)
+ except yaml.YAMLError as e:
+ # For backwards-compatibility, convert yaml error to ValueError,
+ # which is what JSON loader raised.
+ raise ValueError(six.text_type(e))
return parsed
@@ -529,6 +538,79 @@
if default.name not in self.rules:
self.rules[default.name] = default.check
+ # Detect and log obvious incorrect rule definitions
+ self.check_rules()
+
+ def check_rules(self):
+ """Look for rule definitions that are obviously incorrect."""
+ undefined_checks = []
+ cyclic_checks = []
+ violation = False
+ for name, check in self.rules.items():
+ if self._undefined_check(check):
+ undefined_checks.append(name)
+ violation = True
+ if self._cycle_check(check):
+ cyclic_checks.append(name)
+ violation = True
+
+ if undefined_checks:
+ LOG.warning(_LW('Policies %(names)s reference a rule that is not '
+ 'defined.'), {'names': undefined_checks})
+ if cyclic_checks:
+ LOG.warning(_LW('Policies %(names)s are part of a cyclical '
+ 'reference.'), {'names': cyclic_checks})
+
+ return not violation
+
+ def _undefined_check(self, check):
+ '''Check if a RuleCheck references an undefined rule.'''
+ if isinstance(check, RuleCheck):
+ if check.match not in self.rules:
+ # Undefined rule
+ return True
+
+ # An AndCheck or OrCheck is composed of multiple rules so check
+ # each of those.
+ rules = getattr(check, 'rules', None)
+ if rules:
+ for rule in rules:
+ if self._undefined_check(rule):
+ return True
+ return False
+
+ def _cycle_check(self, check, seen=None):
+ '''Check if RuleChecks cycle.
+
+ Looking for something like:
+ "foo": "rule:bar"
+ "bar": "rule:foo"
+ '''
+ if seen is None:
+ seen = set()
+
+ if isinstance(check, RuleCheck):
+ if check.match in seen:
+ # Cycle found
+ return True
+ seen.add(check.match)
+ if check.match in self.rules:
+ # There can only be a cycle if the referenced rule is defined.
+ if self._cycle_check(self.rules[check.match], seen):
+ return True
+
+ # An AndCheck or OrCheck is composed of multiple rules so check
+ # each of those.
+ rules = getattr(check, 'rules', None)
+ if rules:
+ for rule in rules:
+ # As there being an OrCheck or AndCheck, a copy of the father's
+ # seen should be called here. In order that the checks in
+ # different branchs are seperated.
+ if self._cycle_check(rule, seen.copy()):
+ return True
+ return False
+
@staticmethod
def _is_directory_updated(cache, path):
# Get the current modified time and compare it to what is in
@@ -584,7 +666,7 @@
LOG.debug('Reloaded policy file: %(path)s', {'path': path})
def _get_policy_path(self, path):
- """Locate the policy JSON data file/path.
+ """Locate the policy YAML/JSON data file/path.
:param path: It's value can be a full path or related path. When
full path specified, this function just returns the full
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo_policy/shell.py
new/oslo.policy-1.18.0/oslo_policy/shell.py
--- old/oslo.policy-1.14.0/oslo_policy/shell.py 2016-08-10 14:15:46.000000000
+0200
+++ new/oslo.policy-1.18.0/oslo_policy/shell.py 2017-01-18 15:09:32.000000000
+0100
@@ -56,14 +56,10 @@
return
for key, rule in rules.items():
if ":" in key:
- if apply_rule:
- if (apply_rule == key):
- _try_rule(key, rule, target, access_data, o)
- else:
- _try_rule(key, rule, target, access_data, o)
+ _try_rule(key, rule, target, access_data, o)
-def main(argv=sys.argv[1:]):
+def main():
parser = argparse.ArgumentParser(sys.argv[0])
parser.add_argument(
'--policy',
@@ -86,15 +82,11 @@
args = parser.parse_args()
try:
- apply_rule = args.rule
- except Exception:
- apply_rule = None
- try:
is_admin = args.is_admin.lower() == "true"
except Exception:
is_admin = False
- tool(args.policy, args.access, apply_rule, is_admin)
+ tool(args.policy, args.access, args.rule, is_admin)
if __name__ == "__main__":
- sys.exit(main(sys.argv[1:]))
+ sys.exit(main())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo_policy/sphinxpolicygen.py
new/oslo.policy-1.18.0/oslo_policy/sphinxpolicygen.py
--- old/oslo.policy-1.14.0/oslo_policy/sphinxpolicygen.py 1970-01-01
01:00:00.000000000 +0100
+++ new/oslo.policy-1.18.0/oslo_policy/sphinxpolicygen.py 2017-01-18
15:09:32.000000000 +0100
@@ -0,0 +1,73 @@
+# Copyright 2015 Hewlett-Packard Development Company, L.P.
+# Copyright 2016 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.
+
+"""Generate a sample policy file."""
+
+import os
+
+from oslo_policy import generator
+
+
+def generate_sample(app):
+ """Generate a sample policy file."""
+
+ if not app.config.policy_generator_config_file:
+ app.warn("No policy_generator_config_file is specified, "
+ "skipping sample policy generation")
+ return
+
+ _generate_sample(app,
+ app.config.policy_generator_config_file,
+ app.config.sample_policy_basename)
+
+
+def _generate_sample(app, policy_file, base_name):
+
+ def info(msg):
+ app.info('[%s] %s' % (__name__, msg))
+
+ # If we are given a file that isn't an absolute path, look for it
+ # in the source directory if it doesn't exist.
+ candidates = [
+ policy_file,
+ os.path.join(app.srcdir, policy_file,),
+ ]
+ for c in candidates:
+ if os.path.isfile(c):
+ info('reading config generator instructions from %s' % c)
+ config_path = c
+ break
+ else:
+ raise ValueError(
+ "Could not find policy_generator_config_file %r" %
+ app.config.policy_generator_config_file)
+
+ if base_name:
+ out_file = os.path.join(app.srcdir, base_name) + '.policy.yaml.sample'
+ if not os.path.isdir(os.path.dirname(os.path.abspath(out_file))):
+ os.mkdir(os.path.dirname(os.path.abspath(out_file)))
+ else:
+ file_name = 'sample.policy.yaml'
+ out_file = os.path.join(app.srcdir, file_name)
+
+ info('writing sample policy to %s' % out_file)
+ generator.generate_sample(args=['--config-file', config_path,
+ '--output-file', out_file])
+
+
+def setup(app):
+ app.add_config_value('policy_generator_config_file', None, 'env')
+ app.add_config_value('sample_policy_basename', None, 'env')
+ app.connect('builder-inited', generate_sample)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo_policy/tests/test_parser.py
new/oslo.policy-1.18.0/oslo_policy/tests/test_parser.py
--- old/oslo.policy-1.14.0/oslo_policy/tests/test_parser.py 2016-08-10
14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/tests/test_parser.py 2017-01-18
15:09:32.000000000 +0100
@@ -26,23 +26,23 @@
def test_false(self):
result = _parser._parse_check('!')
- self.assertTrue(isinstance(result, _checks.FalseCheck))
+ self.assertIsInstance(result, _checks.FalseCheck)
def test_true(self):
result = _parser._parse_check('@')
- self.assertTrue(isinstance(result, _checks.TrueCheck))
+ self.assertIsInstance(result, _checks.TrueCheck)
def test_bad_rule(self):
result = _parser._parse_check('foobar')
- self.assertTrue(isinstance(result, _checks.FalseCheck))
+ self.assertIsInstance(result, _checks.FalseCheck)
@mock.patch.object(_checks, 'registered_checks', {})
def test_no_handler(self):
result = _parser._parse_check('no:handler')
- self.assertTrue(isinstance(result, _checks.FalseCheck))
+ self.assertIsInstance(result, _checks.FalseCheck)
@mock.patch.object(_checks, 'registered_checks', {
'spam': mock.Mock(return_value='spam_check'),
@@ -71,21 +71,21 @@
def test_empty(self):
result = _parser._parse_list_rule([])
- self.assertTrue(isinstance(result, _checks.TrueCheck))
+ self.assertIsInstance(result, _checks.TrueCheck)
self.assertEqual('@', str(result))
@mock.patch.object(_parser, '_parse_check', base.FakeCheck)
def test_oneele_zeroele(self):
result = _parser._parse_list_rule([[]])
- self.assertTrue(isinstance(result, _checks.FalseCheck))
+ self.assertIsInstance(result, _checks.FalseCheck)
self.assertEqual('!', str(result))
@mock.patch.object(_parser, '_parse_check', base.FakeCheck)
def test_oneele_bare(self):
result = _parser._parse_list_rule(['rule'])
- self.assertTrue(isinstance(result, base.FakeCheck))
+ self.assertIsInstance(result, base.FakeCheck)
self.assertEqual('rule', result.result)
self.assertEqual('rule', str(result))
@@ -93,7 +93,7 @@
def test_oneele_oneele(self):
result = _parser._parse_list_rule([['rule']])
- self.assertTrue(isinstance(result, base.FakeCheck))
+ self.assertIsInstance(result, base.FakeCheck)
self.assertEqual('rule', result.result)
self.assertEqual('rule', str(result))
@@ -101,10 +101,10 @@
def test_oneele_multi(self):
result = _parser._parse_list_rule([['rule1', 'rule2']])
- self.assertTrue(isinstance(result, _checks.AndCheck))
+ self.assertIsInstance(result, _checks.AndCheck)
self.assertEqual(2, len(result.rules))
for i, value in enumerate(['rule1', 'rule2']):
- self.assertTrue(isinstance(result.rules[i], base.FakeCheck))
+ self.assertIsInstance(result.rules[i], base.FakeCheck)
self.assertEqual(value, result.rules[i].result)
self.assertEqual('(rule1 and rule2)', str(result))
@@ -112,10 +112,10 @@
def test_multi_oneele(self):
result = _parser._parse_list_rule([['rule1'], ['rule2']])
- self.assertTrue(isinstance(result, _checks.OrCheck))
+ self.assertIsInstance(result, _checks.OrCheck)
self.assertEqual(2, len(result.rules))
for i, value in enumerate(['rule1', 'rule2']):
- self.assertTrue(isinstance(result.rules[i], base.FakeCheck))
+ self.assertIsInstance(result.rules[i], base.FakeCheck)
self.assertEqual(value, result.rules[i].result)
self.assertEqual('(rule1 or rule2)', str(result))
@@ -124,14 +124,14 @@
result = _parser._parse_list_rule([['rule1', 'rule2'],
['rule3', 'rule4']])
- self.assertTrue(isinstance(result, _checks.OrCheck))
+ self.assertIsInstance(result, _checks.OrCheck)
self.assertEqual(2, len(result.rules))
for i, values in enumerate([['rule1', 'rule2'], ['rule3', 'rule4']]):
- self.assertTrue(isinstance(result.rules[i], _checks.AndCheck))
+ self.assertIsInstance(result.rules[i], _checks.AndCheck)
self.assertEqual(2, len(result.rules[i].rules))
for j, value in enumerate(values):
- self.assertTrue(isinstance(result.rules[i].rules[j],
- base.FakeCheck))
+ self.assertIsInstance(result.rules[i].rules[j],
+ base.FakeCheck)
self.assertEqual(value, result.rules[i].rules[j].result)
self.assertEqual('((rule1 and rule2) or (rule3 and rule4))',
str(result))
@@ -360,7 +360,7 @@
def test_empty(self):
result = _parser._parse_text_rule('')
- self.assertTrue(isinstance(result, _checks.TrueCheck))
+ self.assertIsInstance(result, _checks.TrueCheck)
@mock.patch.object(_parser, '_parse_tokenize',
return_value=[('tok1', 'val1'), ('tok2', 'val2')])
@@ -378,7 +378,7 @@
def test_fail(self, mock_parse_tokenize):
result = _parser._parse_text_rule('test rule')
- self.assertTrue(isinstance(result, _checks.FalseCheck))
+ self.assertIsInstance(result, _checks.FalseCheck)
mock_parse_tokenize.assert_called_once_with('test rule')
def test_A_or_B_or_C(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/oslo_policy/tests/test_policy.py
new/oslo.policy-1.18.0/oslo_policy/tests/test_policy.py
--- old/oslo.policy-1.14.0/oslo_policy/tests/test_policy.py 2016-08-10
14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/oslo_policy/tests/test_policy.py 2017-01-18
15:09:32.000000000 +0100
@@ -772,7 +772,7 @@
class RuleDefaultTestCase(base.PolicyBaseTestCase):
def test_rule_is_parsed(self):
opt = policy.RuleDefault(name='foo', check_str='rule:foo')
- self.assertTrue(isinstance(opt.check, _checks.BaseCheck))
+ self.assertIsInstance(opt.check, _checks.BaseCheck)
self.assertEqual('rule:foo', str(opt.check))
def test_str(self):
@@ -832,3 +832,45 @@
opt1 = policy.RuleDefault(name='foo', check_str='rule:foo')
opt2 = RuleDefaultSub(name='bar', check_str='rule:foo')
self.assertNotEqual(opt1, opt2)
+
+
+class EnforcerCheckRulesTest(base.PolicyBaseTestCase):
+ def setUp(self):
+ super(EnforcerCheckRulesTest, self).setUp()
+
+ def test_no_violations(self):
+ self.create_config_file('policy.json', POLICY_JSON_CONTENTS)
+ self.enforcer.load_rules(True)
+ self.assertTrue(self.enforcer.check_rules())
+
+ def test_undefined_rule(self):
+ rules = jsonutils.dumps({'foo': 'rule:bar'})
+ self.create_config_file('policy.json', rules)
+ self.enforcer.load_rules(True)
+
+ self.assertFalse(self.enforcer.check_rules())
+
+ def test_cyclical_rules(self):
+ rules = jsonutils.dumps({'foo': 'rule:bar', 'bar': 'rule:foo'})
+ self.create_config_file('policy.json', rules)
+ self.enforcer.load_rules(True)
+
+ self.assertFalse(self.enforcer.check_rules())
+
+ def test_complex_cyclical_rules_false(self):
+ rules = jsonutils.dumps({'foo': 'rule:bar',
+ 'bar': 'rule:baz and role:admin',
+ 'baz': 'rule:foo or role:user'})
+ self.create_config_file('policy.json', rules)
+ self.enforcer.load_rules(True)
+
+ self.assertFalse(self.enforcer.check_rules())
+
+ def test_complex_cyclical_rules_true(self):
+ rules = jsonutils.dumps({'foo': 'rule:bar or rule:baz',
+ 'bar': 'role:admin',
+ 'baz': 'rule:bar or role:user'})
+ self.create_config_file('policy.json', rules)
+ self.enforcer.load_rules(True)
+
+ self.assertTrue(self.enforcer.check_rules())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/oslo_policy/tests/test_sphinxpolicygen.py
new/oslo.policy-1.18.0/oslo_policy/tests/test_sphinxpolicygen.py
--- old/oslo.policy-1.14.0/oslo_policy/tests/test_sphinxpolicygen.py
1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.policy-1.18.0/oslo_policy/tests/test_sphinxpolicygen.py
2017-01-18 15:09:32.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 mock
+from oslotest import base
+
+from oslo_policy import sphinxpolicygen
+
+
+class SingleSampleGenerationTest(base.BaseTestCase):
+
+ @mock.patch('os.path.isdir')
+ @mock.patch('os.path.isfile')
+ @mock.patch('oslo_policy.generator.generate_sample')
+ def test_sample_gen_with_single_config_file(self, sample, isfile, isdir):
+ isfile.side_effect = [False, True]
+ isdir.return_value = True
+
+ config = mock.Mock(policy_generator_config_file='nova.conf',
+ sample_policy_basename='nova')
+ app = mock.Mock(srcdir='/opt/nova', config=config)
+ sphinxpolicygen.generate_sample(app)
+
+ sample.assert_called_once_with(args=[
+ '--config-file', '/opt/nova/nova.conf',
+ '--output-file', '/opt/nova/nova.policy.yaml.sample'])
+
+ @mock.patch('os.path.isdir')
+ @mock.patch('os.path.isfile')
+ @mock.patch('oslo_policy.generator.generate_sample')
+ def test_sample_gen_with_single_config_file_no_base(self, sample, isfile,
+ isdir):
+ isfile.side_effect = [False, True]
+ isdir.return_value = True
+
+ config = mock.Mock(policy_generator_config_file='nova.conf',
+ sample_policy_basename=None)
+ app = mock.Mock(srcdir='/opt/nova', config=config)
+ sphinxpolicygen.generate_sample(app)
+
+ sample.assert_called_once_with(args=[
+ '--config-file', '/opt/nova/nova.conf',
+ '--output-file', '/opt/nova/sample.policy.yaml'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/releasenotes/notes/add-sphinxpolicygen-39e2f8fa24930b0c.yaml
new/oslo.policy-1.18.0/releasenotes/notes/add-sphinxpolicygen-39e2f8fa24930b0c.yaml
---
old/oslo.policy-1.14.0/releasenotes/notes/add-sphinxpolicygen-39e2f8fa24930b0c.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.policy-1.18.0/releasenotes/notes/add-sphinxpolicygen-39e2f8fa24930b0c.yaml
2017-01-18 15:09:32.000000000 +0100
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Add ``sphinxpolicygen`` Sphinx plugin, which can be used to generate a
+ sample policy file for use in documentation.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/releasenotes/source/conf.py
new/oslo.policy-1.18.0/releasenotes/source/conf.py
--- old/oslo.policy-1.14.0/releasenotes/source/conf.py 2016-08-10
14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/releasenotes/source/conf.py 2017-01-18
15:09:32.000000000 +0100
@@ -271,3 +271,6 @@
# 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.policy-1.14.0/releasenotes/source/index.rst
new/oslo.policy-1.18.0/releasenotes/source/index.rst
--- old/oslo.policy-1.14.0/releasenotes/source/index.rst 2016-08-10
14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/releasenotes/source/index.rst 2017-01-18
15:09:32.000000000 +0100
@@ -1,8 +1,9 @@
-=============================
+===========================
oslo.policy Release Notes
-=============================
+===========================
.. toctree::
:maxdepth: 1
unreleased
+ newton
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.policy-1.14.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
new/oslo.policy-1.18.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
---
old/oslo.policy-1.14.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.policy-1.18.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
2017-01-18 15:09:32.000000000 +0100
@@ -0,0 +1,39 @@
+# Gérald LONLAS <[email protected]>, 2016. #zanata
+msgid ""
+msgstr ""
+"Project-Id-Version: oslo.policy Release Notes 1.16.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-10-23 20:40+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:02+0000\n"
+"Last-Translator: Gérald LONLAS <[email protected]>\n"
+"Language-Team: French\n"
+"Language: fr\n"
+"X-Generator: Zanata 3.7.3\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+
+msgid "1.15.0"
+msgstr "1.15.0"
+
+msgid "1.9.0"
+msgstr "1.9.0"
+
+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 "Switch to reno for managing release notes."
+msgstr "Commence à utiliser reno pour la gestion des notes de release"
+
+msgid "Unreleased Release Notes"
+msgstr "Note de release pour les changements non déployées"
+
+msgid "oslo.policy Release Notes"
+msgstr "Note de release pour oslo.policy"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/releasenotes/source/newton.rst
new/oslo.policy-1.18.0/releasenotes/source/newton.rst
--- old/oslo.policy-1.14.0/releasenotes/source/newton.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/oslo.policy-1.18.0/releasenotes/source/newton.rst 2017-01-18
15:09:32.000000000 +0100
@@ -0,0 +1,6 @@
+=============================
+ Newton Series Release Notes
+=============================
+
+.. release-notes::
+ :branch: origin/stable/newton
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/requirements.txt
new/oslo.policy-1.18.0/requirements.txt
--- old/oslo.policy-1.14.0/requirements.txt 2016-08-10 14:15:46.000000000
+0200
+++ new/oslo.policy-1.18.0/requirements.txt 2017-01-18 15:09:32.000000000
+0100
@@ -2,10 +2,10 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-requests>=2.10.0 # Apache-2.0
-oslo.config>=3.14.0 # Apache-2.0
+requests!=2.12.2,>=2.10.0 # Apache-2.0
+oslo.config!=3.18.0,>=3.14.0 # Apache-2.0
oslo.i18n>=2.1.0 # Apache-2.0
oslo.serialization>=1.10.0 # Apache-2.0
-oslo.utils>=3.16.0 # Apache-2.0
-PyYAML>=3.1.0 # MIT
+PyYAML>=3.10.0 # MIT
six>=1.9.0 # MIT
+stevedore>=1.17.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/setup.cfg
new/oslo.policy-1.18.0/setup.cfg
--- old/oslo.policy-1.14.0/setup.cfg 2016-08-10 14:17:49.000000000 +0200
+++ new/oslo.policy-1.18.0/setup.cfg 2017-01-18 15:11:06.000000000 +0100
@@ -5,7 +5,7 @@
README.rst
author = OpenStack
author-email = [email protected]
-home-page = http://launchpad.net/oslo.policy
+home-page = http://docs.openstack.org/developer/oslo.policy/
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
@@ -16,7 +16,6 @@
Programming Language :: Python :: 2
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
- Programming Language :: Python :: 3.4
Programming Language :: Python :: 3.5
[files]
@@ -64,5 +63,4 @@
[egg_info]
tag_build =
tag_date = 0
-tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/test-requirements.txt
new/oslo.policy-1.18.0/test-requirements.txt
--- old/oslo.policy-1.14.0/test-requirements.txt 2016-08-10
14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/test-requirements.txt 2017-01-18
15:09:32.000000000 +0100
@@ -4,13 +4,13 @@
hacking<0.11,>=0.10.0
oslotest>=1.10.0 # Apache-2.0
-requests-mock>=1.0 # Apache-2.0
+requests-mock>=1.1 # Apache-2.0
# computes code coverage percentages
-coverage>=3.6 # Apache-2.0
+coverage>=4.0 # Apache-2.0
# These are needed for docs generation
-oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
-sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
+oslosphinx>=4.7.0 # Apache-2.0
+sphinx!=1.3b1,<1.4,>=1.2.1 # BSD
-reno>=1.8.0 # Apache2
+reno>=1.8.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.policy-1.14.0/tools/tox_install.sh
new/oslo.policy-1.18.0/tools/tox_install.sh
--- old/oslo.policy-1.14.0/tools/tox_install.sh 1970-01-01 01:00:00.000000000
+0100
+++ new/oslo.policy-1.18.0/tools/tox_install.sh 2017-01-18 15:09:32.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.policy-1.14.0/tox.ini
new/oslo.policy-1.18.0/tox.ini
--- old/oslo.policy-1.14.0/tox.ini 2016-08-10 14:15:46.000000000 +0200
+++ new/oslo.policy-1.18.0/tox.ini 2017-01-18 15:09:32.000000000 +0100
@@ -1,8 +1,13 @@
[tox]
-minversion = 1.6
-envlist = py35,py34,py27,pep8,docs
+minversion = 2.0
+envlist = py35,py27,pep8,docs
[testenv]
+setenv =
+ VIRTUAL_ENV={envdir}
+ BRANCH_NAME=master
+ CLIENT_NAME=oslo.policy
+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
commands = python setup.py testr --slowest --testr-args='{posargs}'