Hello community,
here is the log from the commit of package python-keystoneclient for
openSUSE:Factory checked in at 2018-01-24 15:26:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-keystoneclient (Old)
and /work/SRC/openSUSE:Factory/.python-keystoneclient.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-keystoneclient"
Wed Jan 24 15:26:51 2018 rev:26 rq:567262 version:3.14.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-keystoneclient/python-keystoneclient.changes
2017-08-28 15:30:40.930737554 +0200
+++
/work/SRC/openSUSE:Factory/.python-keystoneclient.new/python-keystoneclient.changes
2018-01-24 15:26:57.372319298 +0100
@@ -1,0 +2,15 @@
+Mon Jan 15 11:41:39 UTC 2018 - [email protected]
+
+- update to version 3.14.0
+ - Remove functional tests for v2.0 API
+ - Use generic user for both zuul v2 and v3
+ - Update reno for stable/pike
+ - Remove use of positional decorator
+ - Remove setting of version/release from releasenotes
+ - Adds bandit nosec flag to hashlib.sha1
+ - Handle UTC+00:00 in datetime strings
+ - Imported Translations from Zanata
+ - Avoid tox_install.sh for constraints support
+ - Updated from global requirements
+
+-------------------------------------------------------------------
Old:
----
python-keystoneclient-3.13.0.tar.gz
New:
----
python-keystoneclient-3.14.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-keystoneclient.spec ++++++
--- /var/tmp/diff_new_pack.1Y6bdj/_old 2018-01-24 15:26:58.012289365 +0100
+++ /var/tmp/diff_new_pack.1Y6bdj/_new 2018-01-24 15:26:58.012289365 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-keystoneclient
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,54 +18,71 @@
%global sname python-keystoneclient
Name: python-keystoneclient
-Version: 3.13.0
+Version: 3.14.0
Release: 0
Summary: Client library for OpenStack Identity API
License: Apache-2.0
Group: Development/Languages/Python
Url: http://launchpad.net/%{sname}
-Source0:
https://pypi.io/packages/source/p/%{sname}/%{sname}-%{version}.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/p/%{sname}/%{sname}-%{version}.tar.gz
BuildRequires: openssl
BuildRequires: openstack-macros
-BuildRequires: python-debtcollector >= 1.2.0
BuildRequires: python-devel
-BuildRequires: python-keystoneauth1 >= 2.21.0
-BuildRequires: python-lxml >= 2.3
-BuildRequires: python-mock >= 2.0
-BuildRequires: python-oslo.config >= 4.0.0
-BuildRequires: python-oslo.i18n >= 2.1.0
-BuildRequires: python-oslo.serialization >= 1.10.0
-BuildRequires: python-oslo.utils >= 3.20.0
-BuildRequires: python-oslotest >= 1.10.0
-BuildRequires: python-pbr >= 2.0.0
-BuildRequires: python-positional >= 1.1.1
-BuildRequires: python-requests-mock >= 1.1
-BuildRequires: python-six >= 1.9.0
-BuildRequires: python-testrepository >= 0.0.18
-BuildRequires: python-testresources >= 0.2.4
-BuildRequires: python-testscenarios >= 0.4
+BuildRequires: python2-debtcollector >= 1.2.0
+BuildRequires: python2-keystoneauth1 >= 3.2.0
+BuildRequires: python2-lxml >= 3.4.1
+BuildRequires: python2-mock >= 2.0.0
+BuildRequires: python2-oslo.config >= 4.6.0
+BuildRequires: python2-oslo.i18n >= 3.15.3
+BuildRequires: python2-oslo.serialization >= 2.18.0
+BuildRequires: python2-oslo.utils >= 3.31.0
+BuildRequires: python2-oslotest >= 1.10.0
+BuildRequires: python2-pbr >= 2.0.0
+BuildRequires: python2-positional
+BuildRequires: python2-requests-mock >= 1.1.0
+BuildRequires: python2-six >= 1.10.0
+BuildRequires: python2-testrepository >= 0.0.18
+BuildRequires: python2-testresources >= 2.0.0
+BuildRequires: python2-testscenarios >= 0.4
+BuildRequires: python3-debtcollector >= 1.2.0
+BuildRequires: python3-devel
+BuildRequires: python3-keystoneauth1 >= 3.2.0
+BuildRequires: python3-lxml >= 3.4.1
+BuildRequires: python3-mock >= 2.0.0
+BuildRequires: python3-oslo.config >= 4.6.0
+BuildRequires: python3-oslo.i18n >= 3.15.3
+BuildRequires: python3-oslo.serialization >= 2.18.0
+BuildRequires: python3-oslo.utils >= 3.31.0
+BuildRequires: python3-oslotest >= 1.10.0
+BuildRequires: python3-pbr >= 2.0.0
+BuildRequires: python3-requests-mock >= 1.1.0
+BuildRequires: python3-six >= 1.10.0
+BuildRequires: python3-testrepository >= 0.0.18
+BuildRequires: python3-testresources >= 2.0.0
+BuildRequires: python3-testscenarios >= 0.4
Requires: python-debtcollector >= 1.2.0
-Requires: python-keystoneauth1 >= 2.21.0
-Requires: python-oslo.config >= 4.0.0
-Requires: python-oslo.i18n >= 2.1.0
-Requires: python-oslo.serialization >= 1.10.0
-Requires: python-oslo.utils >= 3.20.0
-Requires: python-positional >= 1.1.1
+Requires: python-keystoneauth1 >= 3.2.0
+Requires: python-oslo.config >= 4.6.0
+Requires: python-oslo.i18n >= 3.15.3
+Requires: python-oslo.serialization >= 2.18.0
+Requires: python-oslo.utils >= 3.31.0
+Requires: python-positional
Requires: python-requests >= 2.14.2
-Requires: python-six >= 1.9.0
+Requires: python-six >= 1.10.0
Requires: python-stevedore >= 1.20.0
BuildArch: noarch
+%python_subpackages
%description
Client library for interacting with Openstack Identity API.
-%package doc
+%package -n python-keystoneclient-doc
Summary: Documentation for OpenStack Identity API Client
-Group: Documentation
+Group: Documentation/HTML
BuildRequires: python-Sphinx
-BuildRequires: python-openstackdocstheme >= 1.11.0
+BuildRequires: python-openstackdocstheme >= 1.17.0
-%description doc
+%description -n python-keystoneclient-doc
Documentation for the client library for interacting with Openstack
Identity API.
@@ -77,13 +94,13 @@
sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
-%{py2_build}
+%{python_build}
# Build HTML docs and man page
%{__python2} setup.py build_sphinx
%install
-%{py2_install}
+%{python_install}
# Delete tests
rm -fr %{buildroot}%{python2_sitelib}/tests
@@ -92,15 +109,17 @@
rm -fr html/.doctrees html/.buildinfo
%check
-%{__python2} setup.py testr
+%{python_expand rm -rf .testrepository
+$python setup.py testr
+}
-%files
+%files %{python_files}
%doc README.rst
%license LICENSE
%{python2_sitelib}/keystoneclient
%{python2_sitelib}/*.egg-info
-%files doc
+%files -n python-keystoneclient-doc
%doc doc/build/html
%license LICENSE
++++++ _service ++++++
--- /var/tmp/diff_new_pack.1Y6bdj/_old 2018-01-24 15:26:58.040288055 +0100
+++ /var/tmp/diff_new_pack.1Y6bdj/_new 2018-01-24 15:26:58.040288055 +0100
@@ -1,8 +1,8 @@
<services>
<service mode="disabled" name="renderspec">
- <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/pike/openstack/python-keystoneclient/python-keystoneclient.spec.j2</param>
+ <param
name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/master/openstack/python-keystoneclient/python-keystoneclient.spec.j2</param>
<param name="output-name">python-keystoneclient.spec</param>
- <param
name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/stable/pike/global-requirements.txt</param>
+ <param
name="requirements">https://raw.githubusercontent.com/openstack/rpm-packaging/master/requirements.txt</param>
<param name="changelog-email">[email protected]</param>
<param name="changelog-provider">gh,openstack,python-keystoneclient</param>
</service>
++++++ python-keystoneclient-3.13.0.tar.gz ->
python-keystoneclient-3.14.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.13.0/AUTHORS
new/python-keystoneclient-3.14.0/AUTHORS
--- old/python-keystoneclient-3.13.0/AUTHORS 2017-07-28 16:07:53.000000000
+0200
+++ new/python-keystoneclient-3.14.0/AUTHORS 2017-12-09 05:06:22.000000000
+0100
@@ -151,6 +151,7 @@
Mouad Benchchaoui <[email protected]>
Nachiappan <[email protected]>
Nachiappan VR N <[email protected]>
+Nam Nguyen Hoai <[email protected]>
Navid Pustchi <[email protected]>
Nicolas Simonds <[email protected]>
Nisha Yadav <[email protected]>
@@ -168,6 +169,7 @@
Rob Crittenden <[email protected]>
Rodrigo Duarte <[email protected]>
Rodrigo Duarte Sousa <[email protected]>
+Rodrigo Duarte Sousa <[email protected]>
Rodrigo Duarte Sousa <[email protected]>
Rodrigo Duarte Sousa <[email protected]>
Roman Bogorodskiy <[email protected]>
@@ -230,6 +232,7 @@
Zhongyue Luo <[email protected]>
Zhongyue Luo <[email protected]>
Ziad Sawalha <[email protected]>
+Zuul <[email protected]>
ankitagrawal <[email protected]>
chenaidong1 <[email protected]>
chenxiao <[email protected]>
@@ -245,6 +248,7 @@
ji-xuepeng <[email protected]>
jun xie <[email protected]>
lawrancejing <[email protected]>
+lhinds <[email protected]>
lin-hua-cheng <[email protected]>
lin-hua-cheng <[email protected]>
liu-sheng <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.13.0/ChangeLog
new/python-keystoneclient-3.14.0/ChangeLog
--- old/python-keystoneclient-3.13.0/ChangeLog 2017-07-28 16:07:53.000000000
+0200
+++ new/python-keystoneclient-3.14.0/ChangeLog 2017-12-09 05:06:22.000000000
+0100
@@ -1,6 +1,25 @@
CHANGES
=======
+3.14.0
+------
+
+* Updated from global requirements
+* Avoid tox\_install.sh for constraints support
+* Handle UTC+00:00 in datetime strings
+* Remove setting of version/release from releasenotes
+* Updated from global requirements
+* Remove functional tests for v2.0 API
+* Updated from global requirements
+* Use generic user for both zuul v2 and v3
+* Updated from global requirements
+* Adds bandit nosec flag to hashlib.sha1
+* Updated from global requirements
+* Remove use of positional decorator
+* Imported Translations from Zanata
+* Update reno for stable/pike
+* Updated from global requirements
+
3.13.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.13.0/PKG-INFO
new/python-keystoneclient-3.14.0/PKG-INFO
--- old/python-keystoneclient-3.13.0/PKG-INFO 2017-07-28 16:07:54.000000000
+0200
+++ new/python-keystoneclient-3.14.0/PKG-INFO 2017-12-09 05:06:23.000000000
+0100
@@ -1,11 +1,12 @@
Metadata-Version: 1.1
Name: python-keystoneclient
-Version: 3.13.0
+Version: 3.14.0
Summary: Client Library for OpenStack Identity
Home-page: https://docs.openstack.org/python-keystoneclient/latest/
Author: OpenStack
Author-email: [email protected]
License: UNKNOWN
+Description-Content-Type: UNKNOWN
Description: ========================
Team and repository tags
========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/_discover.py
new/python-keystoneclient-3.14.0/keystoneclient/_discover.py
--- old/python-keystoneclient-3.13.0/keystoneclient/_discover.py
2017-07-28 16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/_discover.py
2017-12-09 05:02:58.000000000 +0100
@@ -24,8 +24,6 @@
import logging
import re
-from positional import positional
-
from keystoneclient import exceptions
from keystoneclient.i18n import _
@@ -33,7 +31,6 @@
_LOGGER = logging.getLogger(__name__)
-@positional()
def get_version_data(session, url, authenticated=None):
"""Retrieve raw version data from a url."""
headers = {'Accept': 'application/json'}
@@ -141,7 +138,6 @@
DEPRECATED_STATUSES = ('deprecated',)
EXPERIMENTAL_STATUSES = ('experimental',)
- @positional()
def __init__(self, session, url, authenticated=None):
self._data = get_version_data(session, url,
authenticated=authenticated)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/adapter.py
new/python-keystoneclient-3.14.0/keystoneclient/adapter.py
--- old/python-keystoneclient-3.13.0/keystoneclient/adapter.py 2017-07-28
16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/adapter.py 2017-12-09
05:02:58.000000000 +0100
@@ -13,7 +13,6 @@
import warnings
from oslo_serialization import jsonutils
-from positional import positional
class Adapter(object):
@@ -46,7 +45,6 @@
:type logger: logging.Logger
"""
- @positional()
def __init__(self, session, service_type=None, service_name=None,
interface=None, region_name=None, endpoint_override=None,
version=None, auth=None, user_agent=None,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/auth/cli.py
new/python-keystoneclient-3.14.0/keystoneclient/auth/cli.py
--- old/python-keystoneclient-3.13.0/keystoneclient/auth/cli.py 2017-07-28
16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/auth/cli.py 2017-12-09
05:02:58.000000000 +0100
@@ -14,7 +14,6 @@
import os
from debtcollector import removals
-from positional import positional
from keystoneclient.auth import base
@@ -24,7 +23,6 @@
version='2.1.0',
removal_version='3.0.0'
)
-@positional()
def register_argparse_arguments(parser, argv, default=None):
"""Register CLI options needed to create a plugin.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/access.py
new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/access.py
--- old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/access.py
2017-07-28 16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/access.py
2017-12-09 05:02:58.000000000 +0100
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient.auth.identity import base
@@ -32,7 +30,6 @@
if using the AUTH_INTERFACE with get_endpoint. (optional)
"""
- @positional()
def __init__(self, auth_ref, auth_url=None):
super(AccessInfoPlugin, self).__init__(auth_url=auth_url,
reauthenticate=False)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/base.py
new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/base.py
--- old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/base.py
2017-07-28 16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/base.py
2017-12-09 05:02:58.000000000 +0100
@@ -16,7 +16,6 @@
import warnings
from oslo_config import cfg
-from positional import positional
import six
from keystoneclient import _discover
@@ -366,7 +365,6 @@
def get_project_id(self, session, **kwargs):
return self.get_access(session).project_id
- @positional()
def get_discovery(self, session, url, authenticated=None):
"""Return the discovery object for a URL.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/generic/cli.py
new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/generic/cli.py
---
old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/generic/cli.py
2017-07-28 16:05:49.000000000 +0200
+++
new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/generic/cli.py
2017-12-09 05:02:58.000000000 +0100
@@ -11,7 +11,6 @@
# under the License.
from oslo_config import cfg
-from positional import positional
from keystoneclient.auth.identity.generic import password
from keystoneclient import exceptions as exc
@@ -25,7 +24,6 @@
as well as allowing users to override with a custom token and endpoint.
"""
- @positional()
def __init__(self, endpoint=None, token=None, **kwargs):
super(DefaultCLI, self).__init__(**kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/generic/password.py
new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/generic/password.py
---
old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/generic/password.py
2017-07-28 16:05:49.000000000 +0200
+++
new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/generic/password.py
2017-12-09 05:02:58.000000000 +0100
@@ -11,7 +11,6 @@
# under the License.
from oslo_config import cfg
-from positional import positional
from keystoneclient import _discover
from keystoneclient.auth.identity.generic import base
@@ -42,7 +41,6 @@
"""
- @positional()
def __init__(self, auth_url, username=None, user_id=None, password=None,
user_domain_id=None, user_domain_name=None, **kwargs):
super(Password, self).__init__(auth_url=auth_url, **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/v2.py
new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/v2.py
--- old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/v2.py
2017-07-28 16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/v2.py
2017-12-09 05:02:58.000000000 +0100
@@ -14,7 +14,6 @@
import logging
from oslo_config import cfg
-from positional import positional
import six
from keystoneclient import access
@@ -49,7 +48,6 @@
return options
- @positional()
def __init__(self, auth_url,
trust_id=None,
tenant_id=None,
@@ -128,7 +126,6 @@
:raises TypeError: if a user_id or username is not provided.
"""
- @positional(4)
def __init__(self, auth_url, username=_NOT_PASSED, password=None,
user_id=_NOT_PASSED, **kwargs):
super(Password, self).__init__(auth_url, **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/v3/base.py
new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/v3/base.py
--- old/python-keystoneclient-3.13.0/keystoneclient/auth/identity/v3/base.py
2017-07-28 16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/auth/identity/v3/base.py
2017-12-09 05:02:58.000000000 +0100
@@ -15,7 +15,6 @@
import logging
from oslo_config import cfg
-from positional import positional
import six
from keystoneclient import access
@@ -47,7 +46,6 @@
token. (optional) default True.
"""
- @positional()
def __init__(self, auth_url,
trust_id=None,
domain_id=None,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/contrib/auth/v3/oidc.py
new/python-keystoneclient-3.14.0/keystoneclient/contrib/auth/v3/oidc.py
--- old/python-keystoneclient-3.13.0/keystoneclient/contrib/auth/v3/oidc.py
2017-07-28 16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/contrib/auth/v3/oidc.py
2017-12-09 05:02:58.000000000 +0100
@@ -11,7 +11,6 @@
# under the License.
from oslo_config import cfg
-from positional import positional
from keystoneclient import access
from keystoneclient.auth.identity.v3 import federated
@@ -42,7 +41,6 @@
])
return options
- @positional(4)
def __init__(self, auth_url, identity_provider, protocol,
username, password, client_id, client_secret,
access_token_endpoint, scope='profile',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/discover.py
new/python-keystoneclient-3.14.0/keystoneclient/discover.py
--- old/python-keystoneclient-3.13.0/keystoneclient/discover.py 2017-07-28
16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/discover.py 2017-12-09
05:02:58.000000000 +0100
@@ -14,7 +14,6 @@
from debtcollector import removals
from keystoneauth1 import plugin
-from positional import positional
from keystoneclient import _discover
from keystoneclient import exceptions
@@ -146,7 +145,6 @@
"""
- @positional(2)
def __init__(self, session=None, authenticated=None, **kwargs):
if not session:
warnings.warn(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/httpclient.py
new/python-keystoneclient-3.14.0/keystoneclient/httpclient.py
--- old/python-keystoneclient-3.13.0/keystoneclient/httpclient.py
2017-07-28 16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/httpclient.py
2017-12-09 05:02:58.000000000 +0100
@@ -25,7 +25,6 @@
from keystoneauth1 import adapter
from oslo_serialization import jsonutils
import pkg_resources
-from positional import positional
import requests
try:
@@ -241,7 +240,6 @@
removal_version='2.0.0')
@renames.renamed_kwarg('tenant_id', 'project_id', version='1.7.0',
removal_version='2.0.0')
- @positional(enforcement=positional.WARN)
def __init__(self, username=None, tenant_id=None, tenant_name=None,
password=None, auth_url=None, region_name=None, endpoint=None,
token=None, auth_ref=None, use_keyring=False,
@@ -483,7 +481,6 @@
return self.project_name
- @positional(enforcement=positional.WARN)
def authenticate(self, username=None, password=None, tenant_name=None,
tenant_id=None, auth_url=None, token=None,
user_id=None, domain_name=None, domain_id=None,
@@ -693,7 +690,6 @@
# permanently setting _endpoint would better match that behaviour.
self._endpoint = value
- @positional(enforcement=positional.WARN)
def get_raw_token_from_identity_service(self, auth_url, username=None,
password=None, tenant_name=None,
tenant_id=None, token=None,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/service_catalog.py
new/python-keystoneclient-3.14.0/keystoneclient/service_catalog.py
--- old/python-keystoneclient-3.13.0/keystoneclient/service_catalog.py
2017-07-28 16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/service_catalog.py
2017-12-09 05:02:58.000000000 +0100
@@ -19,7 +19,6 @@
import abc
import warnings
-from positional import positional
import six
from keystoneclient import exceptions
@@ -209,7 +208,6 @@
return endpoints
@abc.abstractmethod
- @positional(enforcement=positional.WARN)
def get_urls(self, attr=None, filter_value=None,
service_type='identity', endpoint_type='publicURL',
region_name=None, service_name=None):
@@ -233,7 +231,6 @@
"""
raise NotImplementedError() # pragma: no cover
- @positional(3, enforcement=positional.WARN)
def url_for(self, attr=None, filter_value=None,
service_type='identity', endpoint_type='publicURL',
region_name=None, service_name=None):
@@ -348,7 +345,6 @@
pass
return token
- @positional(enforcement=positional.WARN)
def get_urls(self, attr=None, filter_value=None,
service_type='identity', endpoint_type='publicURL',
region_name=None, service_name=None):
@@ -415,7 +411,6 @@
pass
return token
- @positional(enforcement=positional.WARN)
def get_urls(self, attr=None, filter_value=None,
service_type='identity', endpoint_type='public',
region_name=None, service_name=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/session.py
new/python-keystoneclient-3.14.0/keystoneclient/session.py
--- old/python-keystoneclient-3.13.0/keystoneclient/session.py 2017-07-28
16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/session.py 2017-12-09
05:02:58.000000000 +0100
@@ -25,7 +25,6 @@
from oslo_utils import encodeutils
from oslo_utils import importutils
from oslo_utils import strutils
-from positional import positional
import requests
import six
from six.moves import urllib
@@ -134,7 +133,6 @@
"""This property is deprecated as of the 1.7.0 release and may be removed
in the 2.0.0 release."""
- @positional(2, enforcement=positional.WARN)
def __init__(self, auth=None, session=None, original_ip=None, verify=True,
cert=None, timeout=None, user_agent=None,
redirect=_DEFAULT_REDIRECT_LIMIT):
@@ -171,13 +169,14 @@
secure_headers = ('authorization', 'x-auth-token',
'x-subject-token', 'x-service-token')
if header[0].lower() in secure_headers:
- token_hasher = hashlib.sha1()
+ # hashlib.sha1() bandit nosec, as it is HMAC-SHA1 in
+ # keystone, which is considered secure (unlike just sha1)
+ token_hasher = hashlib.sha1() # nosec(lhinds)
token_hasher.update(header[1].encode('utf-8'))
token_hash = token_hasher.hexdigest()
return (header[0], '{SHA1}%s' % token_hash)
return header
- @positional()
def _http_log_request(self, url, method=None, data=None,
headers=None, logger=_logger):
if not logger.isEnabledFor(logging.DEBUG):
@@ -256,7 +255,6 @@
logger.debug(' '.join(string_parts))
# NOTE(artmr): parameter 'original_ip' value is never used
- @positional(enforcement=positional.WARN)
def request(self, url, method, json=None, original_ip=None,
user_agent=None, redirect=None, authenticated=None,
endpoint_filter=None, auth=None, requests_auth=None,
@@ -806,7 +804,7 @@
auth = self._auth_required(auth, msg)
return auth.get_project_id(self)
- @positional.classmethod()
+ @classmethod
def get_conf_options(cls, deprecated_opts=None):
"""Get oslo_config options that are needed for a :py:class:`.Session`.
@@ -855,7 +853,7 @@
help='Timeout value for http requests'),
]
- @positional.classmethod()
+ @classmethod
def register_conf_options(cls, conf, group, deprecated_opts=None):
"""Register the oslo_config options that are needed for a session.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/tests/functional/base.py
new/python-keystoneclient-3.14.0/keystoneclient/tests/functional/base.py
--- old/python-keystoneclient-3.13.0/keystoneclient/tests/functional/base.py
2017-07-28 16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/tests/functional/base.py
2017-12-09 05:02:58.000000000 +0100
@@ -83,7 +83,3 @@
class V3ClientTestCase(ClientTestCase):
version = '3'
-
-
-class V2ClientTestCase(ClientTestCase):
- version = '2.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/tests/functional/hooks/post_test_hook.sh
new/python-keystoneclient-3.14.0/keystoneclient/tests/functional/hooks/post_test_hook.sh
---
old/python-keystoneclient-3.13.0/keystoneclient/tests/functional/hooks/post_test_hook.sh
2017-07-28 16:05:49.000000000 +0200
+++
new/python-keystoneclient-3.14.0/keystoneclient/tests/functional/hooks/post_test_hook.sh
2017-12-09 05:02:58.000000000 +0100
@@ -21,7 +21,7 @@
sudo /usr/os-testr-env/bin/subunit2html
$BASE/logs/testrepository.subunit $BASE/logs/testr_results.html
sudo gzip -9 $BASE/logs/testrepository.subunit
sudo gzip -9 $BASE/logs/testr_results.html
- sudo chown jenkins:jenkins $BASE/logs/testrepository.subunit.gz
$BASE/logs/testr_results.html.gz
+ sudo chown $USER:$USER $BASE/logs/testrepository.subunit.gz
$BASE/logs/testr_results.html.gz
sudo chmod a+r $BASE/logs/testrepository.subunit.gz
$BASE/logs/testr_results.html.gz
fi
}
@@ -35,13 +35,13 @@
# Go to the keystoneclient dir
cd $KEYSTONECLIENT_DIR
-sudo chown -R jenkins:stack $KEYSTONECLIENT_DIR
+sudo chown -R $USER:stack $KEYSTONECLIENT_DIR
# Run tests
echo "Running keystoneclient functional test suite"
set +e
# Preserve env for OS_ credentials
-sudo -E -H -u jenkins tox -efunctional
+sudo -E -H -u $USER tox -efunctional
EXIT_CODE=$?
set -e
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/tests/functional/test_access.py
new/python-keystoneclient-3.14.0/keystoneclient/tests/functional/test_access.py
---
old/python-keystoneclient-3.13.0/keystoneclient/tests/functional/test_access.py
2017-07-28 16:05:49.000000000 +0200
+++
new/python-keystoneclient-3.14.0/keystoneclient/tests/functional/test_access.py
1970-01-01 01:00:00.000000000 +0100
@@ -1,50 +0,0 @@
-# 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 os
-
-import testtools
-
-from keystoneclient.auth.identity import v2
-from keystoneclient import session
-from tempest.lib import base
-
-
-class TestV2AccessInfo(base.BaseTestCase):
-
- def setUp(self):
- super(TestV2AccessInfo, self).setUp()
-
- self.session = session.Session()
-
- @testtools.skip("likely race condition, being skipped")
- def test_access_audit_id(self):
- unscoped_plugin = v2.Password(auth_url=os.environ.get('OS_AUTH_URL'),
- username=os.environ.get('OS_USERNAME'),
- password=os.environ.get('OS_PASSWORD'))
-
- unscoped_auth_ref = unscoped_plugin.get_access(self.session)
-
- self.assertIsNotNone(unscoped_auth_ref.audit_id)
- self.assertIsNone(unscoped_auth_ref.audit_chain_id)
-
- scoped_plugin = v2.Token(auth_url=os.environ.get('OS_AUTH_URL'),
- token=unscoped_auth_ref.auth_token,
- tenant_name=os.environ.get('OS_TENANT_NAME'))
-
- scoped_auth_ref = scoped_plugin.get_access(self.session)
-
- self.assertIsNotNone(scoped_auth_ref.audit_id)
- self.assertIsNotNone(scoped_auth_ref.audit_chain_id)
-
- self.assertEqual(unscoped_auth_ref.audit_id,
- scoped_auth_ref.audit_chain_id)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/tests/functional/test_base.py
new/python-keystoneclient-3.14.0/keystoneclient/tests/functional/test_base.py
---
old/python-keystoneclient-3.13.0/keystoneclient/tests/functional/test_base.py
2017-07-28 16:05:49.000000000 +0200
+++
new/python-keystoneclient-3.14.0/keystoneclient/tests/functional/test_base.py
2017-12-09 05:02:58.000000000 +0100
@@ -19,10 +19,3 @@
def test_version(self):
self.assertIsInstance(self.client,
keystoneclient.v3.client.Client)
-
-
-class V2ClientVersionTestCase(base.V2ClientTestCase):
-
- def test_version(self):
- self.assertIsInstance(self.client,
- keystoneclient.v2_0.client.Client)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/tests/unit/v3/test_tokens.py
new/python-keystoneclient-3.14.0/keystoneclient/tests/unit/v3/test_tokens.py
---
old/python-keystoneclient-3.13.0/keystoneclient/tests/unit/v3/test_tokens.py
2017-07-28 16:05:49.000000000 +0200
+++
new/python-keystoneclient-3.14.0/keystoneclient/tests/unit/v3/test_tokens.py
2017-12-09 05:02:58.000000000 +0100
@@ -64,11 +64,6 @@
self.assertQueryStringIs('audit_id_only')
self.assertEqual(sample_revoked_response, resp)
- def test_get_revoked_audit_id_only_positional_exc(self):
- # When get_revoked(True) an exception is raised because this must be
- # called with named parameter.
- self.assertRaises(TypeError, self.client.tokens.get_revoked, True)
-
def test_validate_token_with_token_id(self):
# Can validate a token passing a string token ID.
token_id = uuid.uuid4().hex
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.13.0/keystoneclient/utils.py
new/python-keystoneclient-3.14.0/keystoneclient/utils.py
--- old/python-keystoneclient-3.13.0/keystoneclient/utils.py 2017-07-28
16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/utils.py 2017-12-09
05:02:58.000000000 +0100
@@ -16,9 +16,6 @@
from keystoneauth1 import exceptions as ksa_exceptions
from oslo_utils import timeutils
-# NOTE(stevemar): do not remove positional. We need this to stay for a while
-# since versions of auth_token require it here.
-from positional import positional # noqa
import six
from keystoneclient import exceptions as ksc_exceptions
@@ -117,7 +114,7 @@
if not subsecond
else _ISO8601_TIME_FORMAT_SUBSECOND)
tz = at.tzinfo.tzname(None) if at.tzinfo else 'UTC'
- st += ('Z' if tz == 'UTC' else tz)
+ st += ('Z' if (tz == 'UTC' or tz == 'UTC+00:00') else tz)
return st
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v2_0/tokens.py
new/python-keystoneclient-3.14.0/keystoneclient/v2_0/tokens.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v2_0/tokens.py
2017-07-28 16:05:49.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v2_0/tokens.py
2017-12-09 05:02:58.000000000 +0100
@@ -12,7 +12,6 @@
from keystoneauth1 import exceptions
from keystoneauth1 import plugin
-from positional import positional
from keystoneclient import access
from keystoneclient import base
@@ -40,7 +39,6 @@
class TokenManager(base.Manager):
resource_class = Token
- @positional(enforcement=positional.WARN)
def authenticate(self, username=None, tenant_id=None, tenant_name=None,
password=None, token=None, return_raw=False):
if token:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/contrib/federation/identity_providers.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/contrib/federation/identity_providers.py
---
old/python-keystoneclient-3.13.0/keystoneclient/v3/contrib/federation/identity_providers.py
2017-07-28 16:05:49.000000000 +0200
+++
new/python-keystoneclient-3.14.0/keystoneclient/v3/contrib/federation/identity_providers.py
2017-12-09 05:02:58.000000000 +0100
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -40,7 +38,6 @@
return self._update(url, body=body, response_key=self.key,
method='PUT')
- @positional.method(0)
def create(self, id, **kwargs):
"""Create Identity Provider object.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/contrib/federation/mappings.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/contrib/federation/mappings.py
---
old/python-keystoneclient-3.13.0/keystoneclient/v3/contrib/federation/mappings.py
2017-07-28 16:05:49.000000000 +0200
+++
new/python-keystoneclient-3.14.0/keystoneclient/v3/contrib/federation/mappings.py
2017-12-09 05:02:58.000000000 +0100
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -41,7 +39,6 @@
response_key=self.key,
method='PUT')
- @positional.method(0)
def create(self, mapping_id, **kwargs):
"""Create federation mapping.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/contrib/federation/protocols.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/contrib/federation/protocols.py
---
old/python-keystoneclient-3.13.0/keystoneclient/v3/contrib/federation/protocols.py
2017-07-28 16:05:49.000000000 +0200
+++
new/python-keystoneclient-3.14.0/keystoneclient/v3/contrib/federation/protocols.py
2017-12-09 05:02:58.000000000 +0100
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -57,7 +55,6 @@
response_key=self.key,
method='PUT')
- @positional.method(3)
def create(self, protocol_id, identity_provider, mapping, **kwargs):
"""Create federation protocol object and tie to the Identity Provider.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/contrib/federation/service_providers.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/contrib/federation/service_providers.py
---
old/python-keystoneclient-3.13.0/keystoneclient/v3/contrib/federation/service_providers.py
2017-07-28 16:05:49.000000000 +0200
+++
new/python-keystoneclient-3.14.0/keystoneclient/v3/contrib/federation/service_providers.py
2017-12-09 05:02:58.000000000 +0100
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -42,7 +40,6 @@
return self._update(url, body=body, response_key=self.key,
method='PUT')
- @positional.method(0)
def create(self, id, **kwargs):
"""Create Service Provider object.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/credentials.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/credentials.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v3/credentials.py
2017-07-28 16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v3/credentials.py
2017-12-09 05:02:58.000000000 +0100
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -41,7 +39,6 @@
collection_key = 'credentials'
key = 'credential'
- @positional(1, enforcement=positional.WARN)
def create(self, user, type, blob, project=None, **kwargs):
"""Create a credential.
@@ -95,7 +92,6 @@
"""
return super(CredentialManager, self).list(**kwargs)
- @positional(2, enforcement=positional.WARN)
def update(self, credential, user, type=None, blob=None, project=None,
**kwargs):
"""Update a credential.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/domains.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/domains.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v3/domains.py
2017-07-28 16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v3/domains.py
2017-12-09 05:02:58.000000000 +0100
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -40,7 +38,6 @@
collection_key = 'domains'
key = 'domain'
- @positional(1, enforcement=positional.WARN)
def create(self, name, description=None, enabled=True, **kwargs):
"""Create a domain.
@@ -89,7 +86,6 @@
kwargs['enabled'] = 0
return super(DomainManager, self).list(**kwargs)
- @positional(enforcement=positional.WARN)
def update(self, domain, name=None,
description=None, enabled=None, **kwargs):
"""Update a domain.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/endpoints.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/endpoints.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v3/endpoints.py
2017-07-28 16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v3/endpoints.py
2017-12-09 05:02:58.000000000 +0100
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
from keystoneclient import exceptions
from keystoneclient.i18n import _
@@ -54,7 +52,6 @@
msg %= ', '.join(VALID_INTERFACES)
raise exceptions.ValidationError(msg)
- @positional(1, enforcement=positional.WARN)
def create(self, service, url, interface=None, region=None, enabled=True,
**kwargs):
"""Create an endpoint.
@@ -97,7 +94,6 @@
return super(EndpointManager, self).get(
endpoint_id=base.getid(endpoint))
- @positional(enforcement=positional.WARN)
def list(self, service=None, interface=None, region=None, enabled=None,
region_id=None, **kwargs):
"""List endpoints.
@@ -128,7 +124,6 @@
enabled=enabled,
**kwargs)
- @positional(enforcement=positional.WARN)
def update(self, endpoint, service=None, url=None, interface=None,
region=None, enabled=None, **kwargs):
"""Update an endpoint.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/groups.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/groups.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v3/groups.py
2017-07-28 16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v3/groups.py
2017-12-09 05:02:58.000000000 +0100
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -29,7 +27,6 @@
"""
- @positional(enforcement=positional.WARN)
def update(self, name=None, description=None):
kwargs = {
'name': name if name is not None else self.name,
@@ -54,7 +51,6 @@
collection_key = 'groups'
key = 'group'
- @positional(1, enforcement=positional.WARN)
def create(self, name, domain=None, description=None, **kwargs):
"""Create a group.
@@ -75,7 +71,6 @@
description=description,
**kwargs)
- @positional(enforcement=positional.WARN)
def list(self, user=None, domain=None, **kwargs):
"""List groups.
@@ -111,7 +106,6 @@
return super(GroupManager, self).get(
group_id=base.getid(group))
- @positional(enforcement=positional.WARN)
def update(self, group, name=None, description=None, **kwargs):
"""Update a group.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/policies.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/policies.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v3/policies.py
2017-07-28 16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v3/policies.py
2017-12-09 05:02:58.000000000 +0100
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -29,7 +27,6 @@
"""
- @positional(enforcement=positional.WARN)
def update(self, blob=None, type=None):
kwargs = {
'blob': blob if blob is not None else self.blob,
@@ -52,7 +49,6 @@
collection_key = 'policies'
key = 'policy'
- @positional(1, enforcement=positional.WARN)
def create(self, blob, type='application/json', **kwargs):
"""Create a policy.
@@ -95,7 +91,6 @@
"""
return super(PolicyManager, self).list(**kwargs)
- @positional(enforcement=positional.WARN)
def update(self, policy, blob=None, type=None, **kwargs):
"""Update a policy.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/projects.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/projects.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v3/projects.py
2017-07-28 16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v3/projects.py
2017-12-09 05:02:58.000000000 +0100
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
from keystoneclient import exceptions
from keystoneclient.i18n import _
@@ -37,7 +35,6 @@
"""
- @positional(enforcement=positional.WARN)
def update(self, name=None, description=None, enabled=None):
kwargs = {
'name': name if name is not None else self.name,
@@ -63,7 +60,6 @@
collection_key = 'projects'
key = 'project'
- @positional(3, enforcement=positional.WARN)
def create(self, name, domain, description=None,
enabled=True, parent=None, **kwargs):
"""Create a project.
@@ -96,7 +92,6 @@
enabled=enabled,
**kwargs)
- @positional(enforcement=positional.WARN)
def list(self, domain=None, user=None, **kwargs):
"""List projects.
@@ -132,7 +127,6 @@
'parameters, not both')
raise exceptions.ValidationError(msg)
- @positional()
def get(self, project, subtree_as_list=False, parents_as_list=False,
subtree_as_ids=False, parents_as_ids=False):
"""Retrieve a project.
@@ -182,7 +176,6 @@
url = self.build_url(dict_args_in_out=dict_args)
return self._get(url + query, self.key)
- @positional(enforcement=positional.WARN)
def update(self, project, name=None, domain=None, description=None,
enabled=None, **kwargs):
"""Update a project.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/roles.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/roles.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v3/roles.py 2017-07-28
16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v3/roles.py 2017-12-09
05:02:58.000000000 +0100
@@ -15,7 +15,6 @@
# under the License.
from debtcollector import removals
-from positional import positional
from keystoneclient import base
from keystoneclient import exceptions
@@ -96,7 +95,6 @@
msg = _('Must specify either a user or group')
raise exceptions.ValidationError(msg)
- @positional(1, enforcement=positional.WARN)
def create(self, name, domain=None, **kwargs):
"""Create a role.
@@ -132,7 +130,6 @@
"""
return super(RoleManager, self).get(role_id=base.getid(role))
- @positional(enforcement=positional.WARN)
def list(self, user=None, group=None, domain=None,
project=None, os_inherit_extension_inherited=False, **kwargs):
"""List roles and role grants.
@@ -178,7 +175,6 @@
return super(RoleManager, self).list(**kwargs)
- @positional(enforcement=positional.WARN)
def update(self, role, name=None, **kwargs):
"""Update a role.
@@ -212,7 +208,6 @@
return super(RoleManager, self).delete(
role_id=base.getid(role))
- @positional(enforcement=positional.WARN)
def grant(self, role, user=None, group=None, domain=None, project=None,
os_inherit_extension_inherited=False, **kwargs):
"""Grant a role to a user or group on a domain or project.
@@ -259,7 +254,6 @@
role_id=base.getid(role),
**kwargs)
- @positional(enforcement=positional.WARN)
def check(self, role, user=None, group=None, domain=None, project=None,
os_inherit_extension_inherited=False, **kwargs):
"""Check if a user or group has a role on a domain or project.
@@ -310,7 +304,6 @@
os_inherit_extension_inherited=os_inherit_extension_inherited,
**kwargs)
- @positional(enforcement=positional.WARN)
def revoke(self, role, user=None, group=None, domain=None, project=None,
os_inherit_extension_inherited=False, **kwargs):
"""Revoke a role from a user or group on a domain or project.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/services.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/services.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v3/services.py
2017-07-28 16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v3/services.py
2017-12-09 05:02:58.000000000 +0100
@@ -14,8 +14,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import base
@@ -41,7 +39,6 @@
collection_key = 'services'
key = 'service'
- @positional(1, enforcement=positional.WARN)
def create(self, name, type=None,
enabled=True, description=None, **kwargs):
"""Create a service.
@@ -78,7 +75,6 @@
return super(ServiceManager, self).get(
service_id=base.getid(service))
- @positional(enforcement=positional.WARN)
def list(self, name=None, type=None, **kwargs):
"""List services.
@@ -96,7 +92,6 @@
type=type_arg,
**kwargs)
- @positional(enforcement=positional.WARN)
def update(self, service, name=None, type=None, enabled=None,
description=None, **kwargs):
"""Update a service.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/tokens.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/tokens.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v3/tokens.py
2017-07-28 16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v3/tokens.py
2017-12-09 05:02:58.000000000 +0100
@@ -10,8 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-from positional import positional
-
from keystoneclient import access
from keystoneclient import base
@@ -40,7 +38,6 @@
headers = {'X-Subject-Token': token_id}
return self._client.delete('/auth/tokens', headers=headers)
- @positional.method(0)
def get_revoked(self, audit_id_only=False):
"""Get revoked tokens list.
@@ -60,7 +57,6 @@
resp, body = self._client.get(path)
return body
- @positional.method(1)
def get_token_data(self, token, include_catalog=True, allow_expired=False):
"""Fetch the data about a token from the identity server.
@@ -89,7 +85,6 @@
resp, body = self._client.get(url, headers=headers)
return body
- @positional.method(1)
def validate(self, token, include_catalog=True, allow_expired=False):
"""Validate a token.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/keystoneclient/v3/users.py
new/python-keystoneclient-3.14.0/keystoneclient/v3/users.py
--- old/python-keystoneclient-3.13.0/keystoneclient/v3/users.py 2017-07-28
16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/keystoneclient/v3/users.py 2017-12-09
05:02:58.000000000 +0100
@@ -15,7 +15,6 @@
# under the License.
from debtcollector import renames
-from positional import positional
from keystoneclient import base
from keystoneclient import exceptions
@@ -47,7 +46,6 @@
@renames.renamed_kwarg('project', 'default_project', version='1.7.0',
removal_version='2.0.0')
- @positional(1, enforcement=positional.WARN)
def create(self, name, domain=None, project=None, password=None,
email=None, description=None, enabled=True,
default_project=None, **kwargs):
@@ -96,7 +94,6 @@
@renames.renamed_kwarg('project', 'default_project', version='1.7.0',
removal_version='2.0.0')
- @positional(enforcement=positional.WARN)
def list(self, project=None, domain=None, group=None, default_project=None,
**kwargs):
"""List users.
@@ -153,7 +150,6 @@
@renames.renamed_kwarg('project', 'default_project', version='1.7.0',
removal_version='2.0.0')
- @positional(enforcement=positional.WARN)
def update(self, user, name=None, domain=None, project=None, password=None,
email=None, description=None, enabled=None,
default_project=None, **kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/python_keystoneclient.egg-info/PKG-INFO
new/python-keystoneclient-3.14.0/python_keystoneclient.egg-info/PKG-INFO
--- old/python-keystoneclient-3.13.0/python_keystoneclient.egg-info/PKG-INFO
2017-07-28 16:07:53.000000000 +0200
+++ new/python-keystoneclient-3.14.0/python_keystoneclient.egg-info/PKG-INFO
2017-12-09 05:06:22.000000000 +0100
@@ -1,11 +1,12 @@
Metadata-Version: 1.1
Name: python-keystoneclient
-Version: 3.13.0
+Version: 3.14.0
Summary: Client Library for OpenStack Identity
Home-page: https://docs.openstack.org/python-keystoneclient/latest/
Author: OpenStack
Author-email: [email protected]
License: UNKNOWN
+Description-Content-Type: UNKNOWN
Description: ========================
Team and repository tags
========================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/python_keystoneclient.egg-info/SOURCES.txt
new/python-keystoneclient-3.14.0/python_keystoneclient.egg-info/SOURCES.txt
--- old/python-keystoneclient-3.13.0/python_keystoneclient.egg-info/SOURCES.txt
2017-07-28 16:07:53.000000000 +0200
+++ new/python-keystoneclient-3.14.0/python_keystoneclient.egg-info/SOURCES.txt
2017-12-09 05:06:23.000000000 +0100
@@ -106,10 +106,8 @@
keystoneclient/tests/__init__.py
keystoneclient/tests/functional/__init__.py
keystoneclient/tests/functional/base.py
-keystoneclient/tests/functional/test_access.py
keystoneclient/tests/functional/test_base.py
keystoneclient/tests/functional/hooks/post_test_hook.sh
-keystoneclient/tests/functional/v2_0/__init__.py
keystoneclient/tests/functional/v3/__init__.py
keystoneclient/tests/functional/v3/client_fixtures.py
keystoneclient/tests/functional/v3/test_credentials.py
@@ -293,7 +291,8 @@
releasenotes/source/mitaka.rst
releasenotes/source/newton.rst
releasenotes/source/ocata.rst
+releasenotes/source/pike.rst
releasenotes/source/unreleased.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
-tools/tox_install.sh
\ No newline at end of file
+releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/python_keystoneclient.egg-info/pbr.json
new/python-keystoneclient-3.14.0/python_keystoneclient.egg-info/pbr.json
--- old/python-keystoneclient-3.13.0/python_keystoneclient.egg-info/pbr.json
2017-07-28 16:07:53.000000000 +0200
+++ new/python-keystoneclient-3.14.0/python_keystoneclient.egg-info/pbr.json
2017-12-09 05:06:22.000000000 +0100
@@ -1 +1 @@
-{"git_version": "a8de72a", "is_release": true}
\ No newline at end of file
+{"git_version": "2bea645", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/python_keystoneclient.egg-info/requires.txt
new/python-keystoneclient-3.14.0/python_keystoneclient.egg-info/requires.txt
---
old/python-keystoneclient-3.13.0/python_keystoneclient.egg-info/requires.txt
2017-07-28 16:07:53.000000000 +0200
+++
new/python-keystoneclient-3.14.0/python_keystoneclient.egg-info/requires.txt
2017-12-09 05:06:22.000000000 +0100
@@ -1,11 +1,10 @@
pbr!=2.1.0,>=2.0.0
debtcollector>=1.2.0
-keystoneauth1>=3.0.1
-oslo.config!=4.3.0,!=4.4.0,>=4.0.0
-oslo.i18n!=3.15.2,>=2.1.0
-oslo.serialization!=2.19.1,>=1.10.0
-oslo.utils>=3.20.0
-positional>=1.1.1
+keystoneauth1>=3.3.0
+oslo.config>=5.1.0
+oslo.i18n>=3.15.3
+oslo.serialization!=2.19.1,>=2.18.0
+oslo.utils>=3.31.0
requests>=2.14.2
-six>=1.9.0
+six>=1.10.0
stevedore>=1.20.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/releasenotes/source/conf.py
new/python-keystoneclient-3.14.0/releasenotes/source/conf.py
--- old/python-keystoneclient-3.13.0/releasenotes/source/conf.py
2017-07-28 16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/releasenotes/source/conf.py
2017-12-09 05:02:58.000000000 +0100
@@ -57,17 +57,11 @@
project = u'keystoneclient Release Notes'
copyright = u'2015, Keystone 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.
-import pbr.version
-keystone_version = pbr.version.VersionInfo('keystoneclient')
+# Release notes are version independent.
# The full version, including alpha/beta/rc tags.
-release = keystone_version.version_string_with_vcs()
+release = ''
# The short X.Y version.
-version = keystone_version.canonical_version_string()
+version = ''
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/releasenotes/source/index.rst
new/python-keystoneclient-3.14.0/releasenotes/source/index.rst
--- old/python-keystoneclient-3.13.0/releasenotes/source/index.rst
2017-07-28 16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/releasenotes/source/index.rst
2017-12-09 05:02:58.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ pike
ocata
newton
mitaka
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
new/python-keystoneclient-3.14.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
---
old/python-keystoneclient-3.13.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
1970-01-01 01:00:00.000000000 +0100
+++
new/python-keystoneclient-3.14.0/releasenotes/source/locale/fr/LC_MESSAGES/releasenotes.po
2017-12-09 05:02:58.000000000 +0100
@@ -0,0 +1,57 @@
+# Gérald LONLAS <[email protected]>, 2016. #zanata
+msgid ""
+msgstr ""
+"Project-Id-Version: keystoneclient Release Notes 3.12.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-07-24 15:13+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:08+0000\n"
+"Last-Translator: Gérald LONLAS <[email protected]>\n"
+"Language-Team: French\n"
+"Language: fr\n"
+"X-Generator: Zanata 3.9.6\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+
+msgid "2.1.0"
+msgstr "2.1.0"
+
+msgid "2.2.0"
+msgstr "2.2.0"
+
+msgid "2.3.0"
+msgstr "2.3.0"
+
+msgid "3.0.0"
+msgstr "3.0.0"
+
+msgid "3.6.0"
+msgstr "3.6.0"
+
+msgid "Bug Fixes"
+msgstr "Corrections de bugs"
+
+msgid "Critical Issues"
+msgstr "Erreurs critiques"
+
+msgid "Current Series Release Notes"
+msgstr "Note de la release actuelle"
+
+msgid "Deprecation Notes"
+msgstr "Notes dépréciées "
+
+msgid "Mitaka Series Release Notes"
+msgstr "Note de release pour Mitaka"
+
+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 "keystoneclient Release Notes"
+msgstr "Note de release pour keystoneclient"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-keystoneclient-3.13.0/releasenotes/source/pike.rst
new/python-keystoneclient-3.14.0/releasenotes/source/pike.rst
--- old/python-keystoneclient-3.13.0/releasenotes/source/pike.rst
1970-01-01 01:00:00.000000000 +0100
+++ new/python-keystoneclient-3.14.0/releasenotes/source/pike.rst
2017-12-09 05:02:58.000000000 +0100
@@ -0,0 +1,6 @@
+===================================
+ Pike Series Release Notes
+===================================
+
+.. release-notes::
+ :branch: stable/pike
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.13.0/requirements.txt
new/python-keystoneclient-3.14.0/requirements.txt
--- old/python-keystoneclient-3.13.0/requirements.txt 2017-07-28
16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/requirements.txt 2017-12-09
05:02:58.000000000 +0100
@@ -5,12 +5,11 @@
pbr!=2.1.0,>=2.0.0 # Apache-2.0
debtcollector>=1.2.0 # Apache-2.0
-keystoneauth1>=3.0.1 # Apache-2.0
-oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0
-oslo.i18n!=3.15.2,>=2.1.0 # Apache-2.0
-oslo.serialization!=2.19.1,>=1.10.0 # Apache-2.0
-oslo.utils>=3.20.0 # Apache-2.0
-positional>=1.1.1 # Apache-2.0
+keystoneauth1>=3.3.0 # Apache-2.0
+oslo.config>=5.1.0 # Apache-2.0
+oslo.i18n>=3.15.3 # Apache-2.0
+oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
+oslo.utils>=3.31.0 # Apache-2.0
requests>=2.14.2 # Apache-2.0
-six>=1.9.0 # MIT
+six>=1.10.0 # MIT
stevedore>=1.20.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.13.0/test-requirements.txt
new/python-keystoneclient-3.14.0/test-requirements.txt
--- old/python-keystoneclient-3.13.0/test-requirements.txt 2017-07-28
16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/test-requirements.txt 2017-12-09
05:02:58.000000000 +0100
@@ -8,19 +8,19 @@
coverage!=4.4,>=4.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
keyring>=5.5.1 # MIT/PSF
-lxml!=3.7.0,>=2.3 # BSD
-mock>=2.0 # BSD
-oauthlib>=0.6 # BSD
-openstackdocstheme>=1.11.0 # Apache-2.0
+lxml!=3.7.0,>=3.4.1 # BSD
+mock>=2.0.0 # BSD
+oauthlib>=0.6.0 # BSD
+openstackdocstheme>=1.17.0 # Apache-2.0
oslotest>=1.10.0 # Apache-2.0
-reno!=2.3.1,>=1.8.0 # Apache-2.0
-requests-mock>=1.1 # Apache-2.0
+reno>=2.5.0 # Apache-2.0
+requests-mock>=1.1.0 # Apache-2.0
sphinx>=1.6.2 # BSD
-tempest>=16.1.0 # Apache-2.0
+tempest>=17.1.0 # Apache-2.0
testrepository>=0.0.18 # Apache-2.0/BSD
-testresources>=0.2.4 # Apache-2.0/BSD
+testresources>=2.0.0 # Apache-2.0/BSD
testscenarios>=0.4 # Apache-2.0/BSD
-testtools>=1.4.0 # MIT
+testtools>=2.2.0 # MIT
# Bandit security code scanner
bandit>=1.1.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-keystoneclient-3.13.0/tools/tox_install.sh
new/python-keystoneclient-3.14.0/tools/tox_install.sh
--- old/python-keystoneclient-3.13.0/tools/tox_install.sh 2017-07-28
16:05:50.000000000 +0200
+++ new/python-keystoneclient-3.14.0/tools/tox_install.sh 1970-01-01
01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-#!/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/python-keystoneclient-3.13.0/tox.ini
new/python-keystoneclient-3.14.0/tox.ini
--- old/python-keystoneclient-3.13.0/tox.ini 2017-07-28 16:05:50.000000000
+0200
+++ new/python-keystoneclient-3.14.0/tox.ini 2017-12-09 05:02:58.000000000
+0100
@@ -5,14 +5,14 @@
[testenv]
usedevelop = True
-install_command = {toxinidir}/tools/tox_install.sh
{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
{opts} {packages}
+install_command = pip install {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
- BRANCH_NAME=master
- CLIENT_NAME=python-keystoneclient
OS_STDOUT_NOCAPTURE=False
OS_STDERR_NOCAPTURE=False
-deps = -r{toxinidir}/requirements.txt
+deps =
+
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
+ -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = find . -type f -name "*.pyc" -delete
python setup.py testr --slowest --testr-args='{posargs}'