Hello community,
here is the log from the commit of package python-os-client-config for
openSUSE:Factory checked in at 2018-02-14 10:51:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-os-client-config (Old)
and /work/SRC/openSUSE:Factory/.python-os-client-config.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-os-client-config"
Wed Feb 14 10:51:14 2018 rev:9 rq:576033 version:1.29.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-os-client-config/python-os-client-config.changes
2018-01-16 09:41:57.682838306 +0100
+++
/work/SRC/openSUSE:Factory/.python-os-client-config.new/python-os-client-config.changes
2018-02-14 10:51:15.226478999 +0100
@@ -1,0 +2,28 @@
+Tue Feb 13 10:08:06 UTC 2018 - [email protected]
+
+- update to version 1.29.0
+ - Update make_rest_client to work with version discovery
+ - Update globals safely
+ - Protect against p_opt not having prompt attribute
+ - Split docs requirements and update tox.ini
+ - Fix doc typo
+ - Add shade-tox-tips jobs
+ - Make the get_service_type() overrides tolernat of no defaults
+ - Remove osc devstack tips jobs
+ - Do not apply format expansions to passwords
+ - Add shade-functional-tips jobs
+ - Update the documentation link for doc migration
+ - Updates for stestr
+ - Manually sync with g-r
+ - Fix requires_floating_ip
+ - Treat clouds.yaml with one cloud like envvars
+ - DataCentred supports Keystone V3 and Glance V2.
+ - Add betacloud to the vendors
+ - Consume the osc-functional-devstack-tips job
+ - Update reno for stable/pike
+ - Remove setting of version/release from releasenotes
+ - Remove OSIC
+ - Updated from global requirements
+ - Added nat_source flag for networks.
+
+-------------------------------------------------------------------
Old:
----
os-client-config-1.28.0.tar.gz
New:
----
os-client-config-1.29.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-os-client-config.spec ++++++
--- /var/tmp/diff_new_pack.XGHAw9/_old 2018-02-14 10:51:15.842456831 +0100
+++ /var/tmp/diff_new_pack.XGHAw9/_new 2018-02-14 10:51:15.846456686 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-os-client-config
#
-# 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
@@ -20,7 +20,7 @@
%bcond_with test
%bcond_with docs
Name: python-os-client-config
-Version: 1.28.0
+Version: 1.29.0
Release: 0
Summary: OpenStack Client Configuration Library
License: Apache-2.0
@@ -34,23 +34,23 @@
BuildRequires: python3-devel
BuildRequires: python3-pbr >= 2.0.0
BuildRequires: python3-setuptools >= 16.0
-Requires: python-PyYAML >= 3.1.0
+Requires: python-PyYAML >= 3.10
Requires: python-appdirs >= 1.3.0
-Requires: python-keystoneauth1 >= 2.1.0
-Requires: python-requestsexceptions >= 1.1.1
+Requires: python-keystoneauth1 >= 3.3.0
+Requires: python-requestsexceptions >= 1.2.0
BuildArch: noarch
%if %{with test}
-BuildRequires: python-extras
+BuildRequires: python-extras >= 1.0.0
BuildRequires: python-fixtures >= 3.0.0
-BuildRequires: python-glanceclient >= 2.7.0
-BuildRequires: python-jsonschema >= 2.0.0
+BuildRequires: python-glanceclient >= 2.8.0
+BuildRequires: python-jsonschema >= 2.6.0
BuildRequires: python-keystoneclient >= 3.8.0
-BuildRequires: python-mock >= 2.0
-BuildRequires: python-oslotest >= 1.10.0
-BuildRequires: python-python-subunit >= 0.0.18
+BuildRequires: python-mock >= 2.0.0
+BuildRequires: python-oslotest >= 3.2.0
+BuildRequires: python-python-subunit >= 1.0.0
BuildRequires: python-testrepository >= 0.0.18
BuildRequires: python-testscenarios >= 0.4
-BuildRequires: python-testtools >= 1.4.0
+BuildRequires: python-testtools >= 2.2.0
%endif
%python_subpackages
@@ -67,8 +67,8 @@
Summary: Documentation for OpenStack client configuration library
Group: Development/Languages/Python
BuildRequires: python-Sphinx
-BuildRequires: python-oslosphinx >= 4.7.0
-BuildRequires: python-reno >= 1.8.0
+BuildRequires: python-openstackdocstheme >= 1.17.0
+BuildRequires: python-reno >= 2.5.0
%description -n python-os-client-config-doc
Documentation for the os-client-config library.
@@ -77,6 +77,7 @@
%prep
%autosetup -n %{sname}-%{version}
%py_req_cleanup
+sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%python_build
++++++ os-client-config-1.28.0.tar.gz -> os-client-config-1.29.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/.stestr.conf
new/os-client-config-1.29.0/.stestr.conf
--- old/os-client-config-1.28.0/.stestr.conf 1970-01-01 01:00:00.000000000
+0100
+++ new/os-client-config-1.29.0/.stestr.conf 2018-02-01 15:29:39.000000000
+0100
@@ -0,0 +1,3 @@
+[DEFAULT]
+test_path=.
+top_dir=./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/.testr.conf
new/os-client-config-1.29.0/.testr.conf
--- old/os-client-config-1.28.0/.testr.conf 2017-07-10 21:28:35.000000000
+0200
+++ new/os-client-config-1.29.0/.testr.conf 1970-01-01 01:00:00.000000000
+0100
@@ -1,7 +0,0 @@
-[DEFAULT]
-test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
- OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
- OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
- ${PYTHON:-python} -m subunit.run discover -t ./ . $LISTOPT
$IDOPTION
-test_id_option=--load-list $IDFILE
-test_list_option=--list
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/.zuul.yaml
new/os-client-config-1.29.0/.zuul.yaml
--- old/os-client-config-1.28.0/.zuul.yaml 1970-01-01 01:00:00.000000000
+0100
+++ new/os-client-config-1.29.0/.zuul.yaml 2018-02-01 15:29:39.000000000
+0100
@@ -0,0 +1,5 @@
+- project:
+ name: openstack/os-client-config
+ templates:
+ - shade-functional-tips
+ - shade-tox-tips
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/AUTHORS
new/os-client-config-1.29.0/AUTHORS
--- old/os-client-config-1.28.0/AUTHORS 2017-07-10 21:30:51.000000000 +0200
+++ new/os-client-config-1.29.0/AUTHORS 2018-02-01 15:33:09.000000000 +0100
@@ -8,6 +8,7 @@
Cedric Brandily <[email protected]>
ChangBo Guo(gcb) <[email protected]>
Chris Church <[email protected]>
+Christian Berendt <[email protected]>
Clark Boylan <[email protected]>
Clint Byrum <[email protected]>
Colleen Murphy <[email protected]>
@@ -15,6 +16,7 @@
Davide Guerri <[email protected]>
Dean Troyer <[email protected]>
Dean Troyer <[email protected]>
+Dirk Mueller <[email protected]>
Doug Hellmann <[email protected]>
Doug Wiegley <[email protected]>
Eric Harney <[email protected]>
@@ -27,7 +29,9 @@
Javier Pena <[email protected]>
Jeremy Stanley <[email protected]>
Jim Rollenhagen <[email protected]>
+John Dennis <[email protected]>
Jordan Pittier <[email protected]>
+Joshua Harlow <[email protected]>
Julia Kreger <[email protected]>
LiuNanke <[email protected]>
Mathieu Gagné <[email protected]>
@@ -36,6 +40,7 @@
Monty Taylor <[email protected]>
OpenStack Release Bot <[email protected]>
Paulo Matias <[email protected]>
+Sean Handley <[email protected]>
Shuquan Huang <[email protected]>
Simon Leinen <[email protected]>
Spencer Krum <[email protected]>
@@ -48,7 +53,9 @@
Xav Paice <[email protected]>
Yaguang Tang <[email protected]>
Yuriy Taraday <[email protected]>
+Zuul <[email protected]>
avnish <[email protected]>
lifeless <[email protected]>
+lingyongxu <[email protected]>
ricolin <[email protected]>
xhzhf <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/ChangeLog
new/os-client-config-1.29.0/ChangeLog
--- old/os-client-config-1.28.0/ChangeLog 2017-07-10 21:30:51.000000000
+0200
+++ new/os-client-config-1.29.0/ChangeLog 2018-02-01 15:33:09.000000000
+0100
@@ -1,6 +1,40 @@
CHANGES
=======
+1.29.0
+------
+
+* Updated from global requirements
+* Split docs requirements and update tox.ini
+* Add betacloud to the vendors
+* Make the get\_service\_type() overrides tolernat of no defaults
+* Remove osc devstack tips jobs
+* Do not apply format expansions to passwords
+* Updated from global requirements
+* Remove setting of version/release from releasenotes
+* Add shade-functional-tips jobs
+* Consume the osc-functional-devstack-tips job
+* Fix doc typo
+* Added nat\_source flag for networks
+* Add shade-tox-tips jobs
+* Update make\_rest\_client to work with version discovery
+* Protect against p\_opt not having prompt attribute
+* Treat clouds.yaml with one cloud like envvars
+* Updated from global requirements
+* Fix requires\_floating\_ip
+* Updates for stestr
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* Updated from global requirements
+* DataCentred supports Keystone V3 and Glance V2
+* Update globals safely
+* Update the documentation link for doc migration
+* Remove OSIC
+* Update reno for stable/pike
+* Updated from global requirements
+* Manually sync with g-r
+
1.28.0
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/HACKING.rst
new/os-client-config-1.29.0/HACKING.rst
--- old/os-client-config-1.28.0/HACKING.rst 2017-07-10 21:28:35.000000000
+0200
+++ new/os-client-config-1.29.0/HACKING.rst 2018-02-01 15:29:39.000000000
+0100
@@ -1,4 +1,4 @@
os-client-config Style Commandments
===============================================
-Read the OpenStack Style Commandments
http://docs.openstack.org/developer/hacking/
\ No newline at end of file
+Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/PKG-INFO
new/os-client-config-1.29.0/PKG-INFO
--- old/os-client-config-1.28.0/PKG-INFO 2017-07-10 21:30:52.000000000
+0200
+++ new/os-client-config-1.29.0/PKG-INFO 2018-02-01 15:33:10.000000000
+0100
@@ -1,11 +1,12 @@
Metadata-Version: 1.1
Name: os-client-config
-Version: 1.28.0
+Version: 1.29.0
Summary: OpenStack Client Configuation Library
-Home-page: http://docs.openstack.org/developer/os-client-config/
+Home-page: https://docs.openstack.org/os-client-config/latest
Author: OpenStack
Author-email: [email protected]
License: UNKNOWN
+Description-Content-Type: UNKNOWN
Description: ================
os-client-config
================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/doc/requirements.txt
new/os-client-config-1.29.0/doc/requirements.txt
--- old/os-client-config-1.28.0/doc/requirements.txt 1970-01-01
01:00:00.000000000 +0100
+++ new/os-client-config-1.29.0/doc/requirements.txt 2018-02-01
15:30:06.000000000 +0100
@@ -0,0 +1,4 @@
+docutils>=0.11 # OSI-Approved Open Source, Public Domain
+sphinx!=1.6.6,>=1.6.2 # BSD
+openstackdocstheme>=1.18.1 # Apache-2.0
+reno>=2.5.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/doc/source/install/index.rst
new/os-client-config-1.29.0/doc/source/install/index.rst
--- old/os-client-config-1.28.0/doc/source/install/index.rst 2017-07-10
21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/doc/source/install/index.rst 2018-02-01
15:30:06.000000000 +0100
@@ -9,4 +9,4 @@
Or, if you have virtualenvwrapper installed::
$ mkvirtualenv os-client-config
- $ pip install os-client-config
\ No newline at end of file
+ $ pip install os-client-config
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/doc/source/user/configuration.rst
new/os-client-config-1.29.0/doc/source/user/configuration.rst
--- old/os-client-config-1.28.0/doc/source/user/configuration.rst
2017-07-10 21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/doc/source/user/configuration.rst
2018-02-01 15:30:06.000000000 +0100
@@ -9,8 +9,8 @@
provide backwards compatibility to service-specific variables such as
`NOVA_USERNAME`.
-If you have OpenStack environment variables set, `os-client-config` will
produce
-a cloud config object named `envvars` containing your values from the
+If you have OpenStack environment variables set, `os-client-config` will
+produce a cloud config object named `envvars` containing your values from the
environment. If you don't like the name `envvars`, that's ok, you can override
it by setting `OS_CLOUD_NAME`.
@@ -115,11 +115,11 @@
`regions` can be a list of regions. When you call `get_all_clouds`,
you'll get a cloud config object for each cloud/region combo.
-As seen with `dns_service_type`, any setting that makes sense to be
per-service,
-like `service_type` or `endpoint` or `api_version` can be set by prefixing
-the setting with the default service type. That might strike you funny when
-setting `service_type` and it does me too - but that's just the world we live
-in.
+As seen with `dns_service_type`, any setting that makes sense to be
+per-service, like `service_type` or `endpoint` or `api_version` can be set by
+prefixing the setting with the default service type. That might strike you
+funny when setting `service_type` and it does me too - but that's just the
+world we live in.
Auth Settings
-------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/doc/source/user/network-config.rst
new/os-client-config-1.29.0/doc/source/user/network-config.rst
--- old/os-client-config-1.28.0/doc/source/user/network-config.rst
2017-07-10 21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/doc/source/user/network-config.rst
2018-02-01 15:29:39.000000000 +0100
@@ -58,3 +58,10 @@
possible to have more than one network that satisfies that condition, so the
user might want to tell programs which one to pick. There can be only one
`nat_destination` per cloud.
+
+`nat_source` is a boolean field that indicates which network floating
+ips should be requested from. It defaults to false. Normally this can be
+inferred by looking for a network that is attached to a router. But it's
+possible to have more than one network that satisfies that condition, so the
+user might want to tell programs which one to pick. There can be only one
+`nat_source` per cloud.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/doc/source/user/vendor-support.rst
new/os-client-config-1.29.0/doc/source/user/vendor-support.rst
--- old/os-client-config-1.28.0/doc/source/user/vendor-support.rst
2017-07-10 21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/doc/source/user/vendor-support.rst
2018-02-01 15:30:06.000000000 +0100
@@ -39,6 +39,20 @@
* Public IPv4 is provided via NAT with Neutron Floating IP
+betacloud
+---------
+
+============== ==================
+Region Name Location
+============== ==================
+betacloud-1 Nuremberg, Germany
+============== ==================
+
+* Identity API Version is 3
+* Images must be in `raw` format
+* Public IPv4 is provided via NAT with Neutron Floating IP
+* Volume API Version is 3
+
catalyst
--------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/os_client_config/__init__.py
new/os-client-config-1.29.0/os_client_config/__init__.py
--- old/os-client-config-1.28.0/os_client_config/__init__.py 2017-07-10
21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config/__init__.py 2018-02-01
15:29:39.000000000 +0100
@@ -45,7 +45,7 @@
def make_rest_client(
service_key, options=None,
- app_name=None, app_version=None,
+ app_name=None, app_version=None, version=None,
**kwargs):
"""Simple wrapper function. It has almost no features.
@@ -63,7 +63,7 @@
service_key=service_key, options=options,
app_name=app_name, app_version=app_version,
**kwargs)
- return cloud.get_session_client(service_key)
+ return cloud.get_session_client(service_key, version=version)
# Backwards compat - simple_client was a terrible name
simple_client = make_rest_client
# Backwards compat - session_client was a terrible name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config/cloud_config.py
new/os-client-config-1.29.0/os_client_config/cloud_config.py
--- old/os-client-config-1.28.0/os_client_config/cloud_config.py
2017-07-10 21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config/cloud_config.py
2018-02-01 15:29:39.000000000 +0100
@@ -167,12 +167,14 @@
# What's even more amazing is that they did it AGAIN with cinder v3
# And then I learned that mistral copied it.
if service_type == 'volume':
- if self.get_api_version(service_type).startswith('2'):
+ vol_type = self.get_api_version(service_type)
+ if vol_type and vol_type.startswith('2'):
service_type = 'volumev2'
- elif self.get_api_version(service_type).startswith('3'):
+ elif vol_type and vol_type.startswith('3'):
service_type = 'volumev3'
elif service_type == 'workflow':
- if self.get_api_version(service_type).startswith('2'):
+ wk_type = self.get_api_version(service_type)
+ if wk_type and wk_type.startswith('2'):
service_type = 'workflowv2'
return self.config.get(key, service_type)
@@ -235,7 +237,27 @@
"""Helper method to grab the service catalog."""
return self._auth.get_access(self.get_session()).service_catalog
- def get_session_client(self, service_key):
+ def _get_version_args(self, service_key, version):
+ """Translate OCC version args to those needed by ksa adapter.
+
+ If no version is requested explicitly and we have a configured version,
+ set the version parameter and let ksa deal with expanding that to
+ min=ver.0, max=ver.latest.
+
+ If version is set, pass it through.
+
+ If version is not set and we don't have a configured version, default
+ to latest.
+ """
+ if version == 'latest':
+ return None, None, 'latest'
+ if not version:
+ version = self.get_api_version(service_key)
+ if not version:
+ return None, None, 'latest'
+ return version, None, None
+
+ def get_session_client(self, service_key, version=None):
"""Return a prepped requests adapter for a given service.
This is useful for making direct requests calls against a
@@ -249,12 +271,17 @@
and it will work like you think.
"""
+ (version, min_version, max_version) = self._get_version_args(
+ service_key, version)
return adapter.Adapter(
session=self.get_session(),
service_type=self.get_service_type(service_key),
service_name=self.get_service_name(service_key),
interface=self.get_interface(service_key),
+ version=version,
+ min_version=min_version,
+ max_version=max_version,
region_name=self.region)
def _get_highest_endpoint(self, service_types, kwargs):
@@ -505,7 +532,7 @@
"""
if self.config['floating_ip_source'] == "None":
return False
- return self.config['requires_floating_ip']
+ return self.config.get('requires_floating_ip')
def get_external_networks(self):
"""Get list of network names for external networks."""
@@ -556,3 +583,10 @@
if net['nat_destination']:
return net['name']
return None
+
+ def get_nat_source(self):
+ """Get network used for NAT source."""
+ for net in self.config['networks']:
+ if net.get('nat_source'):
+ return net['name']
+ return None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/os_client_config/config.py
new/os-client-config-1.29.0/os_client_config/config.py
--- old/os-client-config-1.28.0/os_client_config/config.py 2017-07-10
21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config/config.py 2018-02-01
15:29:39.000000000 +0100
@@ -69,6 +69,8 @@
BOOL_KEYS = ('insecure', 'cache')
+FORMAT_EXCLUSIONS = frozenset(['password'])
+
# NOTE(dtroyer): This turns out to be not the best idea so let's move
# overriding defaults to a kwarg to OpenStackConfig.__init__()
@@ -263,6 +265,17 @@
if not self.default_cloud:
self.default_cloud = self.envvar_key
+ if not self.default_cloud and self.cloud_config['clouds']:
+ if len(self.cloud_config['clouds'].keys()) == 1:
+ # If there is only one cloud just use it. This matches envvars
+ # behavior and allows for much less typing.
+ # TODO(mordred) allow someone to mark a cloud as "default" in
+ # clouds.yaml.
+ # The next/iter thing is for python3 compat where dict.keys
+ # returns an iterator but in python2 it's a list.
+ self.default_cloud = next(iter(
+ self.cloud_config['clouds'].keys()))
+
# Finally, fall through and make a cloud that starts with defaults
# because we need somewhere to put arguments, and there are neither
# config files or env vars
@@ -539,6 +552,7 @@
network = dict(
name=name,
routes_externally=get_boolean(net.get('routes_externally')),
+ nat_source=get_boolean(net.get('nat_source')),
nat_destination=get_boolean(net.get('nat_destination')),
default_interface=get_boolean(net.get('default_interface')),
)
@@ -950,7 +964,7 @@
def option_prompt(self, config, p_opt):
"""Prompt user for option that requires a value"""
if (
- p_opt.prompt is not None and
+ getattr(p_opt, 'prompt', None) is not None and
p_opt.dest not in config['auth'] and
self._pw_callback is not None
):
@@ -1077,7 +1091,7 @@
# If any of the defaults reference other values, we need to expand
for (key, value) in config.items():
- if hasattr(value, 'format'):
+ if hasattr(value, 'format') and key not in FORMAT_EXCLUSIONS:
config[key] = value.format(**config)
force_ipv4 = config.pop('force_ipv4', self.force_ipv4)
@@ -1172,7 +1186,7 @@
# If any of the defaults reference other values, we need to expand
for (key, value) in config.items():
- if hasattr(value, 'format'):
+ if hasattr(value, 'format') and key not in FORMAT_EXCLUSIONS:
config[key] = value.format(**config)
force_ipv4 = config.pop('force_ipv4', self.force_ipv4)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config/constructors.py
new/os-client-config-1.29.0/os_client_config/constructors.py
--- old/os-client-config-1.28.0/os_client_config/constructors.py
2017-07-10 21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config/constructors.py
2018-02-01 15:29:39.000000000 +0100
@@ -14,15 +14,23 @@
import json
import os
+import threading
_json_path = os.path.join(
os.path.dirname(os.path.realpath(__file__)), 'constructors.json')
_class_mapping = None
+_class_mapping_lock = threading.Lock()
def get_constructor_mapping():
global _class_mapping
- if not _class_mapping:
+ if _class_mapping is not None:
+ return _class_mapping.copy()
+ with _class_mapping_lock:
+ if _class_mapping is not None:
+ return _class_mapping.copy()
+ tmp_class_mapping = {}
with open(_json_path, 'r') as json_file:
- _class_mapping = json.load(json_file)
- return _class_mapping
+ tmp_class_mapping.update(json.load(json_file))
+ _class_mapping = tmp_class_mapping
+ return tmp_class_mapping.copy()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/os_client_config/defaults.py
new/os-client-config-1.29.0/os_client_config/defaults.py
--- old/os-client-config-1.28.0/os_client_config/defaults.py 2017-07-10
21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config/defaults.py 2018-02-01
15:29:39.000000000 +0100
@@ -14,19 +14,30 @@
import json
import os
+import threading
_json_path = os.path.join(
os.path.dirname(os.path.realpath(__file__)), 'defaults.json')
_defaults = None
+_defaults_lock = threading.Lock()
def get_defaults():
global _defaults
- if not _defaults:
+ if _defaults is not None:
+ return _defaults.copy()
+ with _defaults_lock:
+ if _defaults is not None:
+ # Did someone else just finish filling it?
+ return _defaults.copy()
# Python language specific defaults
# These are defaults related to use of python libraries, they are
# not qualities of a cloud.
- _defaults = dict(
+ #
+ # NOTE(harlowja): update a in-memory dict, before updating
+ # the global one so that other callers of get_defaults do not
+ # see the partially filled one.
+ tmp_defaults = dict(
api_timeout=None,
verify=True,
cacert=None,
@@ -36,6 +47,6 @@
with open(_json_path, 'r') as json_file:
updates = json.load(json_file)
if updates is not None:
- _defaults.update(updates)
-
- return _defaults.copy()
+ tmp_defaults.update(updates)
+ _defaults = tmp_defaults
+ return tmp_defaults.copy()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config/tests/base.py
new/os-client-config-1.29.0/os_client_config/tests/base.py
--- old/os-client-config-1.28.0/os_client_config/tests/base.py 2017-07-10
21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config/tests/base.py 2018-02-01
15:29:39.000000000 +0100
@@ -102,6 +102,7 @@
'networks': [{
'name': 'a-public',
'routes_externally': True,
+ 'nat_source': True,
}, {
'name': 'another-public',
'routes_externally': True,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config/tests/test_cloud_config.py
new/os-client-config-1.29.0/os_client_config/tests/test_cloud_config.py
--- old/os-client-config-1.28.0/os_client_config/tests/test_cloud_config.py
2017-07-10 21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config/tests/test_cloud_config.py
2018-02-01 15:29:39.000000000 +0100
@@ -167,6 +167,13 @@
cc.config['workflow_api_version'] = '2'
self.assertEqual('workflowv2', cc.get_service_type('workflow'))
+ def test_no_override(self):
+ """Test no override happens when defaults are not configured"""
+ cc = cloud_config.CloudConfig("test1", "region-al", fake_services_dict)
+ self.assertEqual('volume', cc.get_service_type('volume'))
+ self.assertEqual('workflow', cc.get_service_type('workflow'))
+ self.assertEqual('not-exist', cc.get_service_type('not-exist'))
+
def test_get_session_no_auth(self):
config_dict = defaults.get_defaults()
config_dict.update(fake_services_dict)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config/tests/test_config.py
new/os-client-config-1.29.0/os_client_config/tests/test_config.py
--- old/os-client-config-1.28.0/os_client_config/tests/test_config.py
2017-07-10 21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config/tests/test_config.py
2018-02-01 15:29:39.000000000 +0100
@@ -55,6 +55,25 @@
self.assertIsInstance(cloud, cloud_config.CloudConfig)
self.assertEqual(cloud.name, '')
+ def test_get_one_cloud_default_cloud_from_file(self):
+ single_conf = base._write_yaml({
+ 'clouds': {
+ 'single': {
+ 'auth': {
+ 'auth_url': 'http://example.com/v2',
+ 'username': 'testuser',
+ 'password': 'testpass',
+ 'project_name': 'testproject',
+ },
+ 'region_name': 'test-region',
+ }
+ }
+ })
+ c = config.OpenStackConfig(config_files=[single_conf],
+ vendor_files=[self.vendor_yaml])
+ cc = c.get_one_cloud()
+ self.assertEqual(cc.name, 'single')
+
def test_get_one_cloud_auth_defaults(self):
c = config.OpenStackConfig(config_files=[self.cloud_yaml])
cc = c.get_one_cloud(cloud='_test-cloud_', auth={'username': 'user'})
@@ -205,6 +224,7 @@
self.assertEqual(
['a-private', 'another-private', 'split-no-default'],
cc.get_internal_networks())
+ self.assertEqual('a-public', cc.get_nat_source())
self.assertEqual('another-private', cc.get_nat_destination())
self.assertEqual('another-public', cc.get_default_network())
self.assertEqual(
@@ -220,6 +240,7 @@
cc = c.get_one_cloud('_test-cloud-domain-scoped_')
self.assertEqual([], cc.get_external_networks())
self.assertEqual([], cc.get_internal_networks())
+ self.assertIsNone(cc.get_nat_source())
self.assertIsNone(cc.get_nat_destination())
self.assertIsNone(cc.get_default_network())
@@ -355,6 +376,66 @@
self.assertEqual(region, {'name': 'no-cloud-region', 'values': {}})
+class TestExcludedFormattedConfigValue(base.TestCase):
+ # verify LaunchPad bug #1635696
+ #
+ # get_one_cloud() and get_one_cloud_osc() iterate over config
+ # values and try to expand any variables in those values by
+ # calling value.format(), however some config values
+ # (e.g. password) should never have format() applied to them, not
+ # only might that change the password but it will also cause the
+ # format() function to raise an exception if it can not parse the
+ # format string. Examples would be single brace (e.g. 'foo{')
+ # which raises an ValueError because it's looking for a matching
+ # end brace or a brace pair with a key value that cannot be found
+ # (e.g. 'foo{bar}') which raises a KeyError.
+
+ def setUp(self):
+ super(TestExcludedFormattedConfigValue, self).setUp()
+
+ self.args = dict(
+ auth_url='http://example.com/v2',
+ username='user',
+ project_name='project',
+ region_name='region2',
+ snack_type='cookie',
+ os_auth_token='no-good-things',
+ )
+
+ self.options = argparse.Namespace(**self.args)
+
+ def test_get_one_cloud_password_brace(self):
+ c = config.OpenStackConfig(config_files=[self.cloud_yaml],
+ vendor_files=[self.vendor_yaml])
+
+ password = 'foo{' # Would raise ValueError, single brace
+ self.options.password = password
+ cc = c.get_one_cloud(
+ cloud='_test_cloud_regions', argparse=self.options, validate=False)
+ self.assertEqual(cc.password, password)
+
+ password = 'foo{bar}' # Would raise KeyError, 'bar' not found
+ self.options.password = password
+ cc = c.get_one_cloud(
+ cloud='_test_cloud_regions', argparse=self.options, validate=False)
+ self.assertEqual(cc.password, password)
+
+ def test_get_one_cloud_osc_password_brace(self):
+ c = config.OpenStackConfig(config_files=[self.cloud_yaml],
+ vendor_files=[self.vendor_yaml])
+ password = 'foo{' # Would raise ValueError, single brace
+ self.options.password = password
+ cc = c.get_one_cloud_osc(
+ cloud='_test_cloud_regions', argparse=self.options, validate=False)
+ self.assertEqual(cc.password, password)
+
+ password = 'foo{bar}' # Would raise KeyError, 'bar' not found
+ self.options.password = password
+ cc = c.get_one_cloud_osc(
+ cloud='_test_cloud_regions', argparse=self.options, validate=False)
+ self.assertEqual(cc.password, password)
+
+
class TestConfigArgparse(base.TestCase):
def setUp(self):
@@ -1000,6 +1081,7 @@
'networks': [
{'name': 'private', 'routes_externally': False,
'nat_destination': False, 'default_interface': False,
+ 'nat_source': False,
'routes_ipv4_externally': False,
'routes_ipv6_externally': False},
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config/vendors/betacloud.json
new/os-client-config-1.29.0/os_client_config/vendors/betacloud.json
--- old/os-client-config-1.28.0/os_client_config/vendors/betacloud.json
1970-01-01 01:00:00.000000000 +0100
+++ new/os-client-config-1.29.0/os_client_config/vendors/betacloud.json
2018-02-01 15:30:06.000000000 +0100
@@ -0,0 +1,14 @@
+{
+ "name": "betacloud",
+ "profile": {
+ "auth": {
+ "auth_url": "https://api-1.betacloud.io:5000/v3"
+ },
+ "regions": [
+ "betacloud-1"
+ ],
+ "identity_api_version": "3",
+ "image_format": "raw",
+ "volume_api_version": "3"
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config/vendors/datacentred.json
new/os-client-config-1.29.0/os_client_config/vendors/datacentred.json
--- old/os-client-config-1.28.0/os_client_config/vendors/datacentred.json
2017-07-10 21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config/vendors/datacentred.json
2018-02-01 15:29:39.000000000 +0100
@@ -5,7 +5,7 @@
"auth_url": "https://compute.datacentred.io:5000"
},
"region-name": "sal01",
- "identity_api_version": "2",
- "image_api_version": "1"
+ "identity_api_version": "3",
+ "image_api_version": "2"
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config/vendors/osic.json
new/os-client-config-1.29.0/os_client_config/vendors/osic.json
--- old/os-client-config-1.28.0/os_client_config/vendors/osic.json
2017-07-10 21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config/vendors/osic.json
1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-{
- "name": "osic",
- "profile": {
- "auth": {
- "auth_url": "https://cloud1.osic.org:5000"
- },
- "regions": [
- "RegionOne"
- ]
- }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config.egg-info/PKG-INFO
new/os-client-config-1.29.0/os_client_config.egg-info/PKG-INFO
--- old/os-client-config-1.28.0/os_client_config.egg-info/PKG-INFO
2017-07-10 21:30:51.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config.egg-info/PKG-INFO
2018-02-01 15:33:09.000000000 +0100
@@ -1,11 +1,12 @@
Metadata-Version: 1.1
Name: os-client-config
-Version: 1.28.0
+Version: 1.29.0
Summary: OpenStack Client Configuation Library
-Home-page: http://docs.openstack.org/developer/os-client-config/
+Home-page: https://docs.openstack.org/os-client-config/latest
Author: OpenStack
Author-email: [email protected]
License: UNKNOWN
+Description-Content-Type: UNKNOWN
Description: ================
os-client-config
================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config.egg-info/SOURCES.txt
new/os-client-config-1.29.0/os_client_config.egg-info/SOURCES.txt
--- old/os-client-config-1.28.0/os_client_config.egg-info/SOURCES.txt
2017-07-10 21:30:52.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config.egg-info/SOURCES.txt
2018-02-01 15:33:10.000000000 +0100
@@ -1,6 +1,7 @@
.coveragerc
.mailmap
-.testr.conf
+.stestr.conf
+.zuul.yaml
AUTHORS
CONTRIBUTING.rst
ChangeLog
@@ -12,6 +13,7 @@
setup.py
test-requirements.txt
tox.ini
+doc/requirements.txt
doc/source/conf.py
doc/source/index.rst
doc/source/contributor/index.rst
@@ -50,6 +52,7 @@
os_client_config/tests/test_json.py
os_client_config/vendors/__init__.py
os_client_config/vendors/auro.json
+os_client_config/vendors/betacloud.json
os_client_config/vendors/bluebox.json
os_client_config/vendors/catalyst.json
os_client_config/vendors/citycloud.json
@@ -62,7 +65,6 @@
os_client_config/vendors/fuga.json
os_client_config/vendors/ibmcloud.json
os_client_config/vendors/internap.json
-os_client_config/vendors/osic.json
os_client_config/vendors/otc.json
os_client_config/vendors/ovh.json
os_client_config/vendors/rackspace.json
@@ -73,27 +75,31 @@
os_client_config/vendors/zetta.json
releasenotes/notes/catch-up-release-notes-e385fad34e9f3d6e.yaml
releasenotes/notes/cloud-profile-status-e0d29b5e2f10e95c.yaml
+releasenotes/notes/default-cloud-7ee0bcb9e5dd24b9.yaml
releasenotes/notes/fix-compat-with-old-keystoneauth-66e11ee9d008b962.yaml
releasenotes/notes/ironic-microversion-ba5b0f36f11196a6.yaml
releasenotes/notes/load-yaml-3177efca78e5c67a.yaml
releasenotes/notes/magic-fixes-dca4ae4dac2441a8.yaml
releasenotes/notes/make-rest-client-dd3d365632a26fa0.yaml
+releasenotes/notes/make-rest-client-version-discovery-84125700f159491a.yaml
releasenotes/notes/min-max-legacy-version-301242466ddefa93.yaml
+releasenotes/notes/nat-source-field-7c7db2a724616d59.yaml
releasenotes/notes/network-list-e6e9dafdd8446263.yaml
releasenotes/notes/option-precedence-1fecab21fdfb2c33.yaml
releasenotes/notes/sdk-helper-41f8d815cfbcfb00.yaml
releasenotes/notes/session-client-b581a6e5d18c8f04.yaml
releasenotes/notes/shade-helper-568f8cb372eef6d9.yaml
releasenotes/notes/started-using-reno-242e2b0cd27f9480.yaml
+releasenotes/notes/vendor-add-betacloud-03872c3485104853.yaml
releasenotes/notes/vendor-updates-f11184ba56bb27cf.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
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/keystone_version.py
-tools/nova_version.py
-tools/tox_install.sh
\ No newline at end of file
+tools/nova_version.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config.egg-info/pbr.json
new/os-client-config-1.29.0/os_client_config.egg-info/pbr.json
--- old/os-client-config-1.28.0/os_client_config.egg-info/pbr.json
2017-07-10 21:30:51.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config.egg-info/pbr.json
2018-02-01 15:33:09.000000000 +0100
@@ -1 +1 @@
-{"git_version": "f74902b", "is_release": true}
\ No newline at end of file
+{"git_version": "ed71a59", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/os_client_config.egg-info/requires.txt
new/os-client-config-1.29.0/os_client_config.egg-info/requires.txt
--- old/os-client-config-1.28.0/os_client_config.egg-info/requires.txt
2017-07-10 21:30:51.000000000 +0200
+++ new/os-client-config-1.29.0/os_client_config.egg-info/requires.txt
2018-02-01 15:33:09.000000000 +0100
@@ -1,4 +1,4 @@
-PyYAML>=3.1.0
+PyYAML>=3.10
appdirs>=1.3.0
-keystoneauth1>=2.1.0
-requestsexceptions>=1.1.1
+keystoneauth1>=3.3.0
+requestsexceptions>=1.2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/releasenotes/notes/default-cloud-7ee0bcb9e5dd24b9.yaml
new/os-client-config-1.29.0/releasenotes/notes/default-cloud-7ee0bcb9e5dd24b9.yaml
---
old/os-client-config-1.28.0/releasenotes/notes/default-cloud-7ee0bcb9e5dd24b9.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/os-client-config-1.29.0/releasenotes/notes/default-cloud-7ee0bcb9e5dd24b9.yaml
2018-02-01 15:29:39.000000000 +0100
@@ -0,0 +1,7 @@
+---
+issues:
+ - If there was only one cloud defined in clouds.yaml
+ os-client-config was requiring the cloud parameter
+ be passed. This is inconsistent with how the envvars
+ cloud works which WILL work without setting the cloud
+ parameter if it's the only cloud.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/releasenotes/notes/make-rest-client-version-discovery-84125700f159491a.yaml
new/os-client-config-1.29.0/releasenotes/notes/make-rest-client-version-discovery-84125700f159491a.yaml
---
old/os-client-config-1.28.0/releasenotes/notes/make-rest-client-version-discovery-84125700f159491a.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/os-client-config-1.29.0/releasenotes/notes/make-rest-client-version-discovery-84125700f159491a.yaml
2018-02-01 15:29:39.000000000 +0100
@@ -0,0 +1,6 @@
+---
+features:
+ - Add version argument to make_rest_client and plumb
+ version discovery through get_session_client so that
+ versioned endpoints are properly found if unversioned
+ are in the catalog.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/releasenotes/notes/nat-source-field-7c7db2a724616d59.yaml
new/os-client-config-1.29.0/releasenotes/notes/nat-source-field-7c7db2a724616d59.yaml
---
old/os-client-config-1.28.0/releasenotes/notes/nat-source-field-7c7db2a724616d59.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/os-client-config-1.29.0/releasenotes/notes/nat-source-field-7c7db2a724616d59.yaml
2018-02-01 15:29:39.000000000 +0100
@@ -0,0 +1,6 @@
+---
+features:
+ - Added nat_source flag for networks. In some more complex clouds there
+ can not only be more than one valid network on a server that NAT can
+ attach to, there can also be more than one valid network from which to
+ get a NAT address. Allow flagging a network so that it can be found.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/os-client-config-1.28.0/releasenotes/notes/vendor-add-betacloud-03872c3485104853.yaml
new/os-client-config-1.29.0/releasenotes/notes/vendor-add-betacloud-03872c3485104853.yaml
---
old/os-client-config-1.28.0/releasenotes/notes/vendor-add-betacloud-03872c3485104853.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/os-client-config-1.29.0/releasenotes/notes/vendor-add-betacloud-03872c3485104853.yaml
2018-02-01 15:30:06.000000000 +0100
@@ -0,0 +1,3 @@
+---
+other:
+ - Add betacloud region for Germany
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/releasenotes/source/conf.py
new/os-client-config-1.29.0/releasenotes/source/conf.py
--- old/os-client-config-1.28.0/releasenotes/source/conf.py 2017-07-10
21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/releasenotes/source/conf.py 2018-02-01
15:29:39.000000000 +0100
@@ -46,16 +46,12 @@
project = u'os-client-config Release Notes'
copyright = u'2015, os-client-config 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.
-#
-import pbr.version
-occ_version = pbr.version.VersionInfo('os-client-config')
+# Release notes do not need a version in the title, they span
+# multiple versions.
# The short X.Y version.
-version = occ_version.canonical_version_string()
+version = ''
# The full version, including alpha/beta/rc tags.
-release = occ_version.version_string_with_vcs()
+release = ''
# 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/os-client-config-1.28.0/releasenotes/source/index.rst
new/os-client-config-1.29.0/releasenotes/source/index.rst
--- old/os-client-config-1.28.0/releasenotes/source/index.rst 2017-07-10
21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/releasenotes/source/index.rst 2018-02-01
15:29:39.000000000 +0100
@@ -9,6 +9,7 @@
:maxdepth: 2
unreleased
+ pike
ocata
newton
mitaka
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/releasenotes/source/pike.rst
new/os-client-config-1.29.0/releasenotes/source/pike.rst
--- old/os-client-config-1.28.0/releasenotes/source/pike.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/os-client-config-1.29.0/releasenotes/source/pike.rst 2018-02-01
15:29:39.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/os-client-config-1.28.0/requirements.txt
new/os-client-config-1.29.0/requirements.txt
--- old/os-client-config-1.28.0/requirements.txt 2017-07-10
21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/requirements.txt 2018-02-01
15:29:39.000000000 +0100
@@ -1,7 +1,7 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-PyYAML>=3.1.0
-appdirs>=1.3.0
-keystoneauth1>=2.1.0
-requestsexceptions>=1.1.1 # Apache-2.0
+PyYAML>=3.10 # MIT
+appdirs>=1.3.0 # MIT License
+keystoneauth1>=3.3.0 # Apache-2.0
+requestsexceptions>=1.2.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/setup.cfg
new/os-client-config-1.29.0/setup.cfg
--- old/os-client-config-1.28.0/setup.cfg 2017-07-10 21:30:52.000000000
+0200
+++ new/os-client-config-1.29.0/setup.cfg 2018-02-01 15:33:10.000000000
+0100
@@ -5,7 +5,7 @@
README.rst
author = OpenStack
author-email = [email protected]
-home-page = http://docs.openstack.org/developer/os-client-config/
+home-page = https://docs.openstack.org/os-client-config/latest
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/setup.py
new/os-client-config-1.29.0/setup.py
--- old/os-client-config-1.28.0/setup.py 2017-07-10 21:28:35.000000000
+0200
+++ new/os-client-config-1.29.0/setup.py 2018-02-01 15:29:39.000000000
+0100
@@ -1,4 +1,3 @@
-#!/usr/bin/env python
# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,6 +16,14 @@
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
import setuptools
+# In python < 2.7.4, a lazy loading of package `pbr` will break
+# setuptools if some other modules registered functions in `atexit`.
+# solution from: http://bugs.python.org/issue15881#msg170215
+try:
+ import multiprocessing # noqa
+except ImportError:
+ pass
+
setuptools.setup(
- setup_requires=['pbr'],
+ setup_requires=['pbr>=2.0.0'],
pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/test-requirements.txt
new/os-client-config-1.29.0/test-requirements.txt
--- old/os-client-config-1.28.0/test-requirements.txt 2017-07-10
21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/test-requirements.txt 2018-02-01
15:30:06.000000000 +0100
@@ -2,20 +2,16 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-hacking>=0.12.0,!=0.13.0,<0.14 # Apache-2.0
+hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
-coverage>=3.6
-docutils>=0.11 # OSI-Approved Open Source, Public Domain
-extras
-fixtures>=0.3.14
-jsonschema>=2.0.0,<3.0.0,!=2.5.0
-mock>=1.2
-python-glanceclient>=0.18.0
-python-subunit>=0.0.18
-sphinx>=1.5.1 # BSD
-openstackdocstheme>=1.5.0 # Apache-2.0
-oslotest>=1.5.1,<1.6.0 # Apache-2.0
-reno>=0.1.1 # Apache2
-testrepository>=0.0.18
-testscenarios>=0.4
-testtools>=0.9.36,!=1.2.0
+coverage!=4.4,>=4.0 # Apache-2.0
+extras>=1.0.0 # MIT
+fixtures>=3.0.0 # Apache-2.0/BSD
+jsonschema<3.0.0,>=2.6.0 # MIT
+mock>=2.0.0 # BSD
+python-glanceclient>=2.8.0 # Apache-2.0
+python-subunit>=1.0.0 # Apache-2.0/BSD
+oslotest>=3.2.0 # Apache-2.0
+stestr>=1.0.0 # Apache-2.0
+testscenarios>=0.4 # Apache-2.0/BSD
+testtools>=2.2.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/os-client-config-1.28.0/tools/tox_install.sh
new/os-client-config-1.29.0/tools/tox_install.sh
--- old/os-client-config-1.28.0/tools/tox_install.sh 2017-07-10
21:28:35.000000000 +0200
+++ new/os-client-config-1.29.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/os-client-config-1.28.0/tox.ini
new/os-client-config-1.29.0/tox.ini
--- old/os-client-config-1.28.0/tox.ini 2017-07-10 21:28:35.000000000 +0200
+++ new/os-client-config-1.29.0/tox.ini 2018-02-01 15:30:06.000000000 +0100
@@ -5,34 +5,64 @@
[testenv]
usedevelop = True
-passenv = ZUUL_CACHE_DIR
- REQUIREMENTS_PIP_LOCATION
-install_command = {toxinidir}/tools/tox_install.sh
{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
{opts} {packages}
+passenv = UPPER_CONSTRAINTS_FILE
+install_command = pip install -U {opts} {packages}
setenv =
- VIRTUAL_ENV={envdir}
- BRANCH_NAME=master
- CLIENT_NAME=os-client-config
-deps = -r{toxinidir}/test-requirements.txt
-commands = python setup.py testr --slowest --testr-args='{posargs}'
+ VIRTUAL_ENV={envdir}
+ LANG=en_US.UTF-8
+ LANGUAGE=en_US:en
+ LC_ALL=C
+ OS_STDOUT_CAPTURE=1
+ OS_STDERR_CAPTURE=1
+ OS_TEST_TIMEOUT=60
+deps =
+
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
+ -r{toxinidir}/requirements.txt
+ -r{toxinidir}/test-requirements.txt
+commands = stestr run {posargs}
+ stestr slowest
[testenv:pep8]
-commands = flake8
+usedevelop = False
+skip_install = True
+deps =
+
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
+ doc8
+ hacking
+ pygments
+ readme
+commands =
+ doc8 doc/source
+ python setup.py check -r -s
+ flake8 os_client_config
[testenv:venv]
commands = {posargs}
[testenv:cover]
-commands = python setup.py test --coverage
--coverage-package-name=os_client_config --testr-args='{posargs}'
+setenv =
+ {[testenv]setenv}
+ PYTHON=coverage run --source os_client_config --parallel-mode
+commands =
+ stestr run {posargs}
+ coverage combine
+ coverage html -d cover
+ coverage xml -o cover/coverage.xml
[testenv:docs]
+skip_install = True
deps =
- {[testenv]deps}
- readme
+
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
+ -r{toxinidir}/requirements.txt
+ -r{toxinidir}/doc/requirements.txt
commands =
- python setup.py build_sphinx
- python setup.py check -r -s
+ sphinx-build -W -d doc/build/doctrees -b html doc/source/ doc/build/html
[testenv:releasenotes]
+skip_install = True
+deps =
+
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt}
+ -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html
releasenotes/source releasenotes/build/html
[flake8]