Hello community, here is the log from the commit of package python-designateclient for openSUSE:Factory checked in at 2018-01-24 15:26:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-designateclient (Old) and /work/SRC/openSUSE:Factory/.python-designateclient.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-designateclient" Wed Jan 24 15:26:44 2018 rev:10 rq:567260 version:2.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-designateclient/python-designateclient.changes 2017-08-28 15:30:13.810550127 +0200 +++ /work/SRC/openSUSE:Factory/.python-designateclient.new/python-designateclient.changes 2018-01-24 15:26:48.108752579 +0100 @@ -1,0 +2,17 @@ +Mon Jan 15 10:54:09 UTC 2018 - cloud-de...@suse.de + +- update to version 2.8.0 + - Improve recordset create UI + - Split doc requirements into their own file + - Update reno for stable/pike + - Use jobs from designate repo + - Remove setting of version/release from releasenotes + - Make remote error handling more robust + - Update the documentation link for doc migration + - Avoid tox_install.sh for constraints support + - Update and optimize documentation links + - Remove unneeded requirements file + - Updated from global requirements + - Add tsig key support to python-designateclient + +------------------------------------------------------------------- Old: ---- python-designateclient-2.7.0.tar.gz New: ---- python-designateclient-2.8.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-designateclient.spec ++++++ --- /var/tmp/diff_new_pack.wAi1hu/_old 2018-01-24 15:26:48.716724143 +0100 +++ /var/tmp/diff_new_pack.wAi1hu/_new 2018-01-24 15:26:48.720723956 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-designateclient # -# 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,33 +18,33 @@ %global sname python-designateclient Name: python-designateclient -Version: 2.7.0 +Version: 2.8.0 Release: 0 Summary: OpenStack DNS as a Service - Client License: Apache-2.0 Group: Development/Languages/Python Url: https://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: openstack-macros BuildRequires: python-devel -BuildRequires: python-jsonschema >= 2.0.0 +BuildRequires: python-jsonschema >= 2.6.0 BuildRequires: python-keystoneclient >= 3.8.0 -BuildRequires: python-mock >= 2.0 +BuildRequires: python-mock >= 2.0.0 BuildRequires: python-oslotest >= 1.10.0 BuildRequires: python-pbr >= 2.0.0 -BuildRequires: python-python-subunit >= 0.0.18 -BuildRequires: python-requests-mock >= 1.1 +BuildRequires: python-python-subunit >= 1.0.0 +BuildRequires: python-requests-mock >= 1.1.0 BuildRequires: python-setuptools >= 16.0 BuildRequires: python-testrepository >= 0.0.18 -Requires: python-cliff >= 2.6.0 +Requires: python-cliff >= 2.8.0 Requires: python-debtcollector >= 1.2.0 -Requires: python-jsonschema >= 2.0.0 -Requires: python-keystoneauth1 >= 2.21.0 +Requires: python-jsonschema >= 2.6.0 +Requires: python-keystoneauth1 >= 3.2.0 Requires: python-keystoneclient >= 3.8.0 -Requires: python-osc-lib >= 1.5.1 -Requires: python-oslo.utils >= 3.20.0 +Requires: python-osc-lib >= 1.7.0 +Requires: python-oslo.utils >= 3.31.0 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 @@ -53,9 +53,9 @@ %package doc Summary: Documentation for the OpenStack DNS as a Service - Client -Group: Documentation +Group: Documentation/HTML BuildRequires: python-Sphinx -BuildRequires: python-openstackdocstheme >= 1.11.0 +BuildRequires: python-openstackdocstheme >= 1.17.0 %description doc Documentation for the OpenStack DNS as a Service - Client. ++++++ _service ++++++ --- /var/tmp/diff_new_pack.wAi1hu/_old 2018-01-24 15:26:48.748722646 +0100 +++ /var/tmp/diff_new_pack.wAi1hu/_new 2018-01-24 15:26:48.748722646 +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-designateclient/python-designateclient.spec.j2</param> + <param name="input-template">https://raw.githubusercontent.com/openstack/rpm-packaging/master/openstack/python-designateclient/python-designateclient.spec.j2</param> <param name="output-name">python-designateclient.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">cloud-de...@suse.de</param> <param name="changelog-provider">gh,openstack,python-designateclient</param> </service> ++++++ python-designateclient-2.7.0.tar.gz -> python-designateclient-2.8.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/.zuul.yaml new/python-designateclient-2.8.0/.zuul.yaml --- old/python-designateclient-2.7.0/.zuul.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/python-designateclient-2.8.0/.zuul.yaml 2018-01-09 16:43:34.000000000 +0100 @@ -0,0 +1,12 @@ +- project: + name: openstack/python-designateclient + templates: + - designate-devstack-jobs + check: + jobs: + - requirements-check: + voting: false + gate: + jobs: + - requirements-check: + voting: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/AUTHORS new/python-designateclient-2.8.0/AUTHORS --- old/python-designateclient-2.7.0/AUTHORS 2017-07-27 17:00:23.000000000 +0200 +++ new/python-designateclient-2.8.0/AUTHORS 2018-01-09 16:47:27.000000000 +0100 @@ -24,11 +24,14 @@ Eric Wehrmeister <eric.wehrmeis...@rackspace.com> Federico Ceratto <federico.cera...@gmail.com> Flavio Percoco <flape...@gmail.com> +Graham Hayes <g...@ham.ie> Graham Hayes <graham.ha...@hp.com> Graham Hayes <graham.ha...@hpe.com> Graham Hayes <graham.ha...@suse.com> +Hangdong Zhang <hdzh...@fiberhome.com> James Li <yuel...@gmail.com> Janonymous <janonymous.codevult...@gmail.com> +Jens Harbott <j.harb...@x-ion.de> Jeremy Stanley <fu...@yuggoth.org> Joe Gordon <joe.gord...@gmail.com> Jordan Cazamias <jordan.cazam...@rackspace.com> @@ -47,6 +50,7 @@ Pradeep Kumar Singh <pradeep.si...@nectechnologies.in> Rahman Syed <rahman.s...@gmail.com> Reddy A, Penchal (pr8721) <pr8...@att.com> +Rudolf Vriend <rudolf.vri...@sap.com> Rui Chen <chenrui.m...@gmail.com> Sascha Peilicke <sasc...@gmx.de> Sascha Peilicke <speili...@suse.com> @@ -62,11 +66,13 @@ Tony Breeds <t...@bakeyournoodle.com> Tony Xu <hhkt...@gmail.com> Venkata Mahesh Jonnalagadda <venkata.jonnalaga...@intl.att.com> +Zuul <z...@review.openstack.org> abhishekkekane <abhishek.kek...@nttdata.com> algerwang <wang.wei...@99cloud.net> ashish-kumar-gupta <ashish-kumar.gu...@hpe.com> ghanshyam <ghanshyam.m...@nectechnologies.in> howardlee <lihongwe...@inspur.com> +lingyongxu <l...@fiberhome.com> ricolin <ric...@inwinstack.com> ricolin <rico....@easystack.cn> rjrjr <rrick...@ebaysf.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/CONTRIBUTING.rst new/python-designateclient-2.8.0/CONTRIBUTING.rst --- old/python-designateclient-2.7.0/CONTRIBUTING.rst 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/CONTRIBUTING.rst 2018-01-09 16:43:34.000000000 +0100 @@ -1,13 +1,13 @@ If you would like to contribute to the development of OpenStack, you must follow the steps documented at: - http://docs.openstack.org/infra/manual/developers.html + https://docs.openstack.org/infra/manual/developers.html Once those steps have been completed, changes to OpenStack should be submitted for review via the Gerrit tool, following the workflow documented at: - http://docs.openstack.org/infra/manual/developers.html#development-workflow + https://docs.openstack.org/infra/manual/developers.html#development-workflow Pull requests submitted through GitHub will be ignored. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/ChangeLog new/python-designateclient-2.8.0/ChangeLog --- old/python-designateclient-2.7.0/ChangeLog 2017-07-27 17:00:23.000000000 +0200 +++ new/python-designateclient-2.8.0/ChangeLog 2018-01-09 16:47:27.000000000 +0100 @@ -1,6 +1,28 @@ CHANGES ======= +2.8.0 +----- + +* Updated from global requirements +* Split doc requirements into their own file +* Remove unneeded requirements file +* Improve recordset create UI +* Avoid tox\_install.sh for constraints support +* Use jobs from designate repo +* Remove setting of version/release from releasenotes +* Updated from global requirements +* Updated from global requirements +* Updated from global requirements +* Updated from global requirements +* Updated from global requirements +* Make remote error handling more robust +* Updated from global requirements +* Update the documentation link for doc migration +* Update reno for stable/pike +* Updated from global requirements +* Update and optimize documentation links + 2.7.0 ----- @@ -10,6 +32,7 @@ * rearrange the existing docs into the new standard layout * use setuptools to build the docs even for testing * Update cli docs +* Add tsig key support to python-designateclient * Updated from global requirements * Updated from global requirements * Updated from global requirements diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/PKG-INFO new/python-designateclient-2.8.0/PKG-INFO --- old/python-designateclient-2.7.0/PKG-INFO 2017-07-27 17:00:24.000000000 +0200 +++ new/python-designateclient-2.8.0/PKG-INFO 2018-01-09 16:47:28.000000000 +0100 @@ -1,17 +1,18 @@ Metadata-Version: 1.1 Name: python-designateclient -Version: 2.7.0 +Version: 2.8.0 Summary: OpenStack DNS-as-a-Service - Client -Home-page: http://docs.openstack.org/developer/python-designateclient +Home-page: https://docs.openstack.org/python-designateclient/latest Author: OpenStack Author-email: openstack-...@lists.openstack.org License: Apache License, Version 2.0 +Description-Content-Type: UNKNOWN Description: ======================== Team and repository tags ======================== - .. image:: http://governance.openstack.org/badges/python-designateclient.svg - :target: http://governance.openstack.org/reference/tags/index.html + .. image:: https://governance.openstack.org/tc/badges/python-designateclient.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on @@ -31,10 +32,10 @@ (``designate``). Development takes place via the usual OpenStack processes as outlined in the - `developer guide <http://docs.openstack.org/infra/manual/developers.html>`_. The master - repository is in `Git <http://git.openstack.org/cgit/openstack/python-designateclient>`_. + `developer guide <https://docs.openstack.org/infra/manual/developers.html>`_. The master + repository is in `Git <https://git.openstack.org/cgit/openstack/python-designateclient>`_. - See release notes and more at `<http://docs.openstack.org/developer/python-designateclient/>`_. + See release notes and more at `<https://docs.openstack.org/python-designateclient/latest/>`_. * License: Apache License, Version 2.0 * `PyPi`_ - package installation @@ -44,10 +45,10 @@ * `How to Contribute`_ .. _PyPi: https://pypi.python.org/pypi/python-designateclient - .. _Online Documentation: http://docs.openstack.org/developer/python-designateclient + .. _Online Documentation: https://docs.openstack.org/python-designateclient/latest/ .. _Bugs: https://bugs.launchpad.net/python-designateclient .. _Source: https://git.openstack.org/cgit/openstack/python-designateclient - .. _How to Contribute: http://docs.openstack.org/infra/manual/developers.html + .. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html Platform: UNKNOWN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/README.rst new/python-designateclient-2.8.0/README.rst --- old/python-designateclient-2.7.0/README.rst 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/README.rst 2018-01-09 16:43:34.000000000 +0100 @@ -2,8 +2,8 @@ Team and repository tags ======================== -.. image:: http://governance.openstack.org/badges/python-designateclient.svg - :target: http://governance.openstack.org/reference/tags/index.html +.. image:: https://governance.openstack.org/tc/badges/python-designateclient.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on @@ -23,10 +23,10 @@ (``designate``). Development takes place via the usual OpenStack processes as outlined in the -`developer guide <http://docs.openstack.org/infra/manual/developers.html>`_. The master -repository is in `Git <http://git.openstack.org/cgit/openstack/python-designateclient>`_. +`developer guide <https://docs.openstack.org/infra/manual/developers.html>`_. The master +repository is in `Git <https://git.openstack.org/cgit/openstack/python-designateclient>`_. -See release notes and more at `<http://docs.openstack.org/developer/python-designateclient/>`_. +See release notes and more at `<https://docs.openstack.org/python-designateclient/latest/>`_. * License: Apache License, Version 2.0 * `PyPi`_ - package installation @@ -36,7 +36,7 @@ * `How to Contribute`_ .. _PyPi: https://pypi.python.org/pypi/python-designateclient -.. _Online Documentation: http://docs.openstack.org/developer/python-designateclient +.. _Online Documentation: https://docs.openstack.org/python-designateclient/latest/ .. _Bugs: https://bugs.launchpad.net/python-designateclient .. _Source: https://git.openstack.org/cgit/openstack/python-designateclient -.. _How to Contribute: http://docs.openstack.org/infra/manual/developers.html +.. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/exceptions.py new/python-designateclient-2.8.0/designateclient/exceptions.py --- old/python-designateclient-2.7.0/designateclient/exceptions.py 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/designateclient/exceptions.py 2018-01-09 16:43:34.000000000 +0100 @@ -36,7 +36,7 @@ class RemoteError(Base): def __init__(self, message=None, code=None, type=None, errors=None, - request_id=None): + request_id=None, **ignore): err_message = self._get_error_message(message, type, errors) self.message = err_message self.code = code diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/functionaltests/client.py new/python-designateclient-2.8.0/designateclient/functionaltests/client.py --- old/python-designateclient-2.7.0/designateclient/functionaltests/client.py 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/designateclient/functionaltests/client.py 2018-01-09 16:43:34.000000000 +0100 @@ -273,8 +273,44 @@ return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs) -class BlacklistCommands(object): +class TSIGKeyCommands(object): + def tsigkey_list(self, *args, **kwargs): + return self.parsed_cmd('tsigkey list', ListModel, *args, **kwargs) + + def tsigkey_show(self, id, *args, **kwargs): + return self.parsed_cmd('tsigkey show {0}'.format(id), FieldValueModel, + *args, **kwargs) + + def tsigkey_delete(self, id, *args, **kwargs): + return self.parsed_cmd('tsigkey delete {0}'.format(id), *args, + **kwargs) + + def tsigkey_create(self, name, algorithm, secret, scope, resource_id, + *args, **kwargs): + options_str = build_option_string({ + '--name': name, + '--algorithm': algorithm, + '--secret': secret, + '--scope': scope, + '--resource-id': resource_id, + }) + cmd = 'tsigkey create {0}'.format(options_str) + return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs) + def tsigkey_set(self, id, name=None, algorithm=None, secret=None, + scope=None, + *args, **kwargs): + options_str = build_option_string({ + '--name': name, + '--algorithm': algorithm, + '--secret': secret, + '--scope': scope, + }) + cmd = 'tsigkey set {0} {1}'.format(id, options_str) + return self.parsed_cmd(cmd, FieldValueModel, *args, **kwargs) + + +class BlacklistCommands(object): def zone_blacklist_list(self, *args, **kwargs): cmd = 'zone blacklist list' return self.parsed_cmd(cmd, ListModel, *args, **kwargs) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/functionaltests/datagen.py new/python-designateclient-2.8.0/designateclient/functionaltests/datagen.py --- old/python-designateclient-2.7.0/designateclient/functionaltests/datagen.py 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/designateclient/functionaltests/datagen.py 2018-01-09 16:43:34.000000000 +0100 @@ -25,6 +25,14 @@ return "{0}{1}".format(name, random_digits()) +def random_tsigkey_name(name='testtsig'): + return "{0}{1}".format(name, random_digits()) + + +def random_tsigkey_secret(name='test-secret'): + return "{0}-{1}".format(name, random_digits(254 - len(name))) + + def random_zone_name(name='testdomain', tld='com'): return "{0}{1}.{2}.".format(name, random_digits(), tld) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/functionaltests/v2/fixtures.py new/python-designateclient-2.8.0/designateclient/functionaltests/v2/fixtures.py --- old/python-designateclient-2.7.0/designateclient/functionaltests/v2/fixtures.py 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/designateclient/functionaltests/v2/fixtures.py 2018-01-09 16:43:34.000000000 +0100 @@ -193,6 +193,25 @@ pass +class TSIGKeyFixture(BaseFixture): + """See DesignateCLI.tsigkey_create for __init__ args""" + + def __init__(self, user='admin', *args, **kwargs): + super(TSIGKeyFixture, self).__init__(user=user, *args, **kwargs) + + def _setUp(self): + super(TSIGKeyFixture, self)._setUp() + self.tsigkey = self.client.tsigkey_create(*self.args, **self.kwargs) + self.addCleanup(self.cleanup_tsigkey(self.client, self.tsigkey.id)) + + @classmethod + def cleanup_tsigkey(cls, client, tsigkey_id): + try: + client.tsigkey_delete(tsigkey_id) + except CommandFailed: + pass + + class BlacklistFixture(BaseFixture): """See DesignateCLI.zone_blacklist_create for __init__ args""" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/functionaltests/v2/test_tsigkeys.py new/python-designateclient-2.8.0/designateclient/functionaltests/v2/test_tsigkeys.py --- old/python-designateclient-2.7.0/designateclient/functionaltests/v2/test_tsigkeys.py 1970-01-01 01:00:00.000000000 +0100 +++ new/python-designateclient-2.8.0/designateclient/functionaltests/v2/test_tsigkeys.py 2018-01-09 16:43:34.000000000 +0100 @@ -0,0 +1,90 @@ +""" +Copyright 2017 SAP SE + +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. +""" +from tempest.lib.exceptions import CommandFailed + +from designateclient.functionaltests.base import BaseDesignateTest +from designateclient.functionaltests.datagen import random_tsigkey_name +from designateclient.functionaltests.datagen import random_tsigkey_secret +from designateclient.functionaltests.datagen import random_zone_name +from designateclient.functionaltests.v2.fixtures import TSIGKeyFixture +from designateclient.functionaltests.v2.fixtures import ZoneFixture + + +class TestTSIGKey(BaseDesignateTest): + def setUp(self): + super(TestTSIGKey, self).setUp() + self.ensure_tsigkey_exists('com') + self.zone = self.useFixture(ZoneFixture( + name=random_zone_name(), + email='t...@example.com', + )).zone + tsig_name = random_tsigkey_name() + tsig_algorithm = "hmac-sha256" + tsig_secret = random_tsigkey_secret() + tsig_scope = 'ZONE' + self.tsig = self.useFixture(TSIGKeyFixture( + name=tsig_name, + algorithm=tsig_algorithm, + secret=tsig_secret, + scope=tsig_scope, + resource_id=self.zone.id + )).tsig + + self.assertEqual(self.tsig.name, tsig_name) + self.assertEqual(self.tsig.algorithm, tsig_algorithm) + self.assertEqual(self.tsig.secret, tsig_secret) + self.assertEqual(self.tsig.scope, tsig_scope) + self.assertEqual(self.tsig.resource_id, self.zone.id) + + def test_tsigkey_list(self): + tsigkeys = self.clients.as_user('admin').tsigkey_list() + self.assertGreater(len(tsigkeys), 0) + + def test_tsigkey_create_and_show(self): + tsigkey = self.clients.as_user('admin').tsigkey_show(self.tsigkey.id) + self.assertEqual(tsigkey.name, self.tsigkey.name) + self.assertEqual(tsigkey.created_at, self.tsigkey.created_at) + self.assertEqual(tsigkey.id, self.tsigkey.id) + self.assertEqual(self.tsig.algorithm, self.tsig_algorithm) + self.assertEqual(self.tsig.secret, self.tsig_secret) + self.assertEqual(self.tsig.scope, self.tsig_scope) + self.assertEqual(self.tsig.resource_id, self.zone.id) + self.assertEqual(tsigkey.updated_at, self.tsigkey.updated_at) + + def test_tsigkey_delete(self): + client = self.clients.as_user('admin') + client.tsigkey_delete(self.tsigkey.id) + self.assertRaises(CommandFailed, client.tsigkey_show, self.tsigkey.id) + + def test_tsigkey_set(self): + client = self.clients.as_user('admin') + updated_name = random_tsigkey_name('updated') + tsigkey = client.tsigkey_set(self.tsigkey.id, name=updated_name, + secret='An updated tsigsecret') + self.assertEqual(tsigkey.secret, 'An updated tsigsecret') + self.assertEqual(tsigkey.name, updated_name) + + +class TestTSIGKeyNegative(BaseDesignateTest): + def test_tsigkey_invalid_commmand(self): + client = self.clients.as_user('admin') + self.assertRaises(CommandFailed, client.openstack, + 'tsigkey notacommand') + + def test_tsigkey_create_invalid_flag(self): + client = self.clients.as_user('admin') + self.assertRaises(CommandFailed, client.openstack, + 'tsigkey create --notanoption "junk"') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/tests/test_exceptions.py new/python-designateclient-2.8.0/designateclient/tests/test_exceptions.py --- old/python-designateclient-2.7.0/designateclient/tests/test_exceptions.py 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/designateclient/tests/test_exceptions.py 2018-01-09 16:43:34.000000000 +0100 @@ -54,3 +54,10 @@ self.response_dict['type'] = expected_msg remote_err = exceptions.RemoteError(**self.response_dict) self.assertEqual(expected_msg, remote_err.message) + + def test_get_error_message_with_unknown_response(self): + expected_msg = 'invalid_object' + self.response_dict['message'] = expected_msg + self.response_dict['unknown'] = 'fake' + remote_err = exceptions.RemoteError(**self.response_dict) + self.assertEqual(expected_msg, remote_err.message) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/tests/v2/test_tsigkeys.py new/python-designateclient-2.8.0/designateclient/tests/v2/test_tsigkeys.py --- old/python-designateclient-2.7.0/designateclient/tests/v2/test_tsigkeys.py 1970-01-01 01:00:00.000000000 +0100 +++ new/python-designateclient-2.8.0/designateclient/tests/v2/test_tsigkeys.py 2018-01-09 16:43:34.000000000 +0100 @@ -0,0 +1,96 @@ +# Copyright 2017 SAP SE +# +# Author: Rudolf Vriend <rudolf.vri...@sap.com> +# +# 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 uuid + +from designateclient.tests import v2 + + +class TestTSIGKeys(v2.APIV2TestCase, v2.CrudMixin): + RESOURCE = 'tsigkeys' + + def new_ref(self, **kwargs): + ref = super(TestTSIGKeys, self).new_ref(**kwargs) + ref.setdefault("name", uuid.uuid4().hex) + ref.setdefault("algorithm", "hmac-sha256") + ref.setdefault("secret", uuid.uuid4().hex) + ref.setdefault("scope", "POOL") + ref.setdefault("resource_id", uuid.uuid4().hex) + return ref + + def test_create(self): + ref = self.new_ref() + + self.stub_url("POST", parts=[self.RESOURCE], json=ref) + + values = ref.copy() + del values["id"] + + self.client.tsigkeys.create(**values) + self.assertRequestBodyIs(json=values) + + def test_get(self): + ref = self.new_ref() + + self.stub_entity("GET", entity=ref, id=ref["id"]) + + response = self.client.tsigkeys.get(ref["id"]) + self.assertEqual(ref, response) + + def test_get_by_name(self): + ref = self.new_ref(name="www") + + self.stub_entity("GET", entity=ref, id=ref["id"]) + self.stub_url("GET", parts=[self.RESOURCE], json={"tsigkeys": [ref]}) + + response = self.client.tsigkeys.get(ref['name']) + + self.assertEqual("GET", self.requests.request_history[0].method) + self.assertEqual( + "http://127.0.0.1:9001/v2/tsigkeys?name=www", + self.requests.request_history[0].url) + + self.assertEqual(ref, response) + + def test_list(self): + items = [ + self.new_ref(), + self.new_ref() + ] + + self.stub_url("GET", parts=[self.RESOURCE], json={"tsigkeys": items}) + + listed = self.client.tsigkeys.list() + self.assertList(items, listed) + self.assertQueryStringIs("") + + def test_update(self): + ref = self.new_ref() + + self.stub_entity("PATCH", entity=ref, id=ref["id"]) + + values = ref.copy() + del values["id"] + + self.client.tsigkeys.update(ref["id"], values) + self.assertRequestBodyIs(json=values) + + def test_delete(self): + ref = self.new_ref() + + self.stub_entity("DELETE", id=ref["id"]) + + self.client.tsigkeys.delete(ref["id"]) + self.assertRequestBodyIs(None) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/v2/cli/recordsets.py new/python-designateclient-2.8.0/designateclient/v2/cli/recordsets.py --- old/python-designateclient-2.7.0/designateclient/v2/cli/recordsets.py 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/designateclient/v2/cli/recordsets.py 2018-01-09 16:43:34.000000000 +0100 @@ -14,6 +14,7 @@ # License for the specific language governing permissions and limitations # under the License. +import argparse import logging from osc_lib.command import command @@ -140,13 +141,22 @@ class CreateRecordSetCommand(command.ShowOne): """Create new recordset""" + log = logging.getLogger('deprecated') + def get_parser(self, prog_name): parser = super(CreateRecordSetCommand, self).get_parser(prog_name) parser.add_argument('zone_id', help="Zone ID") parser.add_argument('name', help="RecordSet Name") - parser.add_argument('--records', help="RecordSet Records", - nargs='+', required=True) + req_group = parser.add_mutually_exclusive_group(required=True) + req_group.add_argument( + '--records', + help=argparse.SUPPRESS, + nargs='+') + req_group.add_argument( + '--record', + help="RecordSet Record, repeat if necessary", + action='append') parser.add_argument('--type', help="RecordSet Type", required=True) parser.add_argument('--ttl', type=int, help="Time To Live (Seconds)") parser.add_argument('--description', help="Description") @@ -159,11 +169,15 @@ client = self.app.client_manager.dns common.set_all_common_headers(client, parsed_args) + all_records = parsed_args.record or parsed_args.records + if parsed_args.records: + self.log.warning( + "Option --records is deprecated, use --record instead.") data = client.recordsets.create( parsed_args.zone_id, parsed_args.name, parsed_args.type, - parsed_args.records, + all_records, description=parsed_args.description, ttl=parsed_args.ttl) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/v2/cli/tsigkeys.py new/python-designateclient-2.8.0/designateclient/v2/cli/tsigkeys.py --- old/python-designateclient-2.7.0/designateclient/v2/cli/tsigkeys.py 1970-01-01 01:00:00.000000000 +0100 +++ new/python-designateclient-2.8.0/designateclient/v2/cli/tsigkeys.py 2018-01-09 16:43:34.000000000 +0100 @@ -0,0 +1,170 @@ +# Copyright 2017 SAP SE +# +# Author: Rudolf Vriend <rudolf.vri...@sap.com> +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import logging + +from osc_lib.command import command +import six + +from designateclient import utils +from designateclient.v2.cli import common +from designateclient.v2.utils import get_all + +LOG = logging.getLogger(__name__) + + +def _format_tsigkey(tsigkey): + # Remove unneeded fields for display output formatting + tsigkey.pop('links', None) + + +class ListTSIGKeysCommand(command.Lister): + """List tsigkeys""" + + columns = ['id', 'name', 'algorithm', 'secret', 'scope', 'resource_id'] + + def get_parser(self, prog_name): + parser = super(ListTSIGKeysCommand, self).get_parser(prog_name) + + parser.add_argument('--name', help="TSIGKey NAME", required=False) + parser.add_argument('--algorithm', help="TSIGKey algorithm", + required=False) + parser.add_argument('--scope', help="TSIGKey scope", required=False) + + common.add_all_common_options(parser) + + return parser + + def take_action(self, parsed_args): + client = self.app.client_manager.dns + common.set_all_common_headers(client, parsed_args) + + criterion = {} + if parsed_args.name is not None: + criterion["name"] = parsed_args.name + if parsed_args.algorithm is not None: + criterion["algorithm"] = parsed_args.algorithm + if parsed_args.scope is not None: + criterion["scope"] = parsed_args.scope + + data = get_all(client.tsigkeys.list, criterion) + + cols = self.columns + return cols, (utils.get_item_properties(s, cols) for s in data) + + +class ShowTSIGKeyCommand(command.ShowOne): + """Show tsigkey details""" + + def get_parser(self, prog_name): + parser = super(ShowTSIGKeyCommand, self).get_parser(prog_name) + + parser.add_argument('id', help="TSIGKey ID") + + common.add_all_common_options(parser) + + return parser + + def take_action(self, parsed_args): + client = self.app.client_manager.dns + common.set_all_common_headers(client, parsed_args) + data = client.tsigkeys.get(parsed_args.id) + _format_tsigkey(data) + return six.moves.zip(*sorted(six.iteritems(data))) + + +class CreateTSIGKeyCommand(command.ShowOne): + """Create new tsigkey""" + + def get_parser(self, prog_name): + parser = super(CreateTSIGKeyCommand, self).get_parser(prog_name) + + parser.add_argument('--name', help="TSIGKey Name", required=True) + parser.add_argument('--algorithm', help="TSIGKey algorithm", + required=True) + parser.add_argument('--secret', help="TSIGKey secret", required=True) + parser.add_argument('--scope', help="TSIGKey scope", required=True) + parser.add_argument('--resource-id', help="TSIGKey resource_id", + required=True) + + common.add_all_common_options(parser) + + return parser + + def take_action(self, parsed_args): + client = self.app.client_manager.dns + common.set_all_common_headers(client, parsed_args) + data = client.tsigkeys.create(parsed_args.name, parsed_args.algorithm, + parsed_args.secret, parsed_args.scope, + parsed_args.resource_id) + _format_tsigkey(data) + return six.moves.zip(*sorted(six.iteritems(data))) + + +class SetTSIGKeyCommand(command.ShowOne): + """Set tsigkey properties""" + + def get_parser(self, prog_name): + parser = super(SetTSIGKeyCommand, self).get_parser(prog_name) + + parser.add_argument('id', help="TSIGKey ID") + parser.add_argument('--name', help="TSIGKey Name") + parser.add_argument('--algorithm', help="TSIGKey algorithm") + parser.add_argument('--secret', help="TSIGKey secret") + parser.add_argument('--scope', help="TSIGKey scope") + + common.add_all_common_options(parser) + + return parser + + def take_action(self, parsed_args): + data = {} + + if parsed_args.name: + data['name'] = parsed_args.name + if parsed_args.algorithm: + data['algorithm'] = parsed_args.algorithm + if parsed_args.secret: + data['secret'] = parsed_args.secret + if parsed_args.scope: + data['scope'] = parsed_args.scope + + client = self.app.client_manager.dns + common.set_all_common_headers(client, parsed_args) + + data = client.tsigkeys.update(parsed_args.id, data) + _format_tsigkey(data) + return six.moves.zip(*sorted(six.iteritems(data))) + + +class DeleteTSIGKeyCommand(command.Command): + """Delete tsigkey""" + + def get_parser(self, prog_name): + parser = super(DeleteTSIGKeyCommand, self).get_parser(prog_name) + + parser.add_argument('id', help="TSIGKey ID") + + common.add_all_common_options(parser) + + return parser + + def take_action(self, parsed_args): + client = self.app.client_manager.dns + common.set_all_common_headers(client, parsed_args) + client.tsigkeys.delete(parsed_args.id) + + LOG.info('TSIGKey %s was deleted', parsed_args.id) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/v2/client.py new/python-designateclient-2.8.0/designateclient/v2/client.py --- old/python-designateclient-2.7.0/designateclient/v2/client.py 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/designateclient/v2/client.py 2018-01-09 16:43:34.000000000 +0100 @@ -25,6 +25,7 @@ from designateclient.v2.reverse import FloatingIPController from designateclient.v2.service_statuses import ServiceStatusesController from designateclient.v2.tlds import TLDController +from designateclient.v2.tsigkeys import TSIGKeysController from designateclient.v2.zones import ZoneController from designateclient.v2.zones import ZoneExportsController from designateclient.v2.zones import ZoneImportsController @@ -138,3 +139,4 @@ self.zone_imports = ZoneImportsController(self) self.pools = PoolController(self) self.quotas = QuotasController(self) + self.tsigkeys = TSIGKeysController(self) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/designateclient/v2/tsigkeys.py new/python-designateclient-2.8.0/designateclient/v2/tsigkeys.py --- old/python-designateclient-2.7.0/designateclient/v2/tsigkeys.py 1970-01-01 01:00:00.000000000 +0100 +++ new/python-designateclient-2.8.0/designateclient/v2/tsigkeys.py 2018-01-09 16:43:34.000000000 +0100 @@ -0,0 +1,50 @@ +# Copyright 2017 SAP SE +# +# Author: Rudolf Vriend <rudolf.vri...@sap.com> +# +# 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. +from designateclient.v2.base import V2Controller +from designateclient.v2 import utils as v2_utils + + +class TSIGKeysController(V2Controller): + def create(self, name, algorithm, secret, scope, resource_id): + data = { + 'name': name, + 'algorithm': algorithm, + 'secret': secret, + 'scope': scope, + 'resource_id': resource_id + } + + return self._post('/tsigkeys', data=data) + + def list(self, criterion=None, marker=None, limit=None): + url = self.build_url('/tsigkeys', criterion, marker, limit) + + return self._get(url, response_key='tsigkeys') + + def get(self, tsigkey): + tsigkey = v2_utils.resolve_by_name(self.list, tsigkey) + + return self._get('/tsigkeys/%s' % tsigkey) + + def update(self, tsigkey, values): + tsigkey = v2_utils.resolve_by_name(self.list, tsigkey) + + return self._patch('/tsigkeys/%s' % tsigkey, data=values) + + def delete(self, tsigkey): + tsigkey = v2_utils.resolve_by_name(self.list, tsigkey) + + return self._delete('/tsigkeys/%s' % tsigkey) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/doc/requirements.txt new/python-designateclient-2.8.0/doc/requirements.txt --- old/python-designateclient-2.7.0/doc/requirements.txt 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/doc/requirements.txt 2018-01-09 16:43:34.000000000 +0100 @@ -1,2 +1,5 @@ --r ../requirements.txt --r ../test-requirements.txt +# The order of packages is significant, because pip processes them in the order +# of appearance. Changing the order has an impact on the overall integration +# process, which may cause wedges in the gate later. +sphinx>=1.6.2 # BSD +openstackdocstheme>=1.17.0 # Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/doc/source/contributor/contributing.rst new/python-designateclient-2.8.0/doc/source/contributor/contributing.rst --- old/python-designateclient-2.7.0/doc/source/contributor/contributing.rst 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/doc/source/contributor/contributing.rst 2018-01-09 16:43:34.000000000 +0100 @@ -7,7 +7,7 @@ .. _on GitHub: https://github.com/openstack/python-designateclient .. _Launchpad: https://launchpad.net/python-designateclient -.. _Gerrit: http://docs.openstack.org/infra/manual/developers.html#development-workflow +.. _Gerrit: https://docs.openstack.org/infra/manual/developers.html#development-workflow Here's a quick summary: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/doc/source/install/index.rst new/python-designateclient-2.8.0/doc/source/install/index.rst --- old/python-designateclient-2.7.0/doc/source/install/index.rst 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/doc/source/install/index.rst 2018-01-09 16:43:34.000000000 +0100 @@ -41,5 +41,5 @@ pip install -r requirements.txt -r test-requirements.txt python setup.py develop -.. _Development Mode: http://pythonhosted.org/setuptools/setuptools.html#development-mode +.. _Development Mode: https://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode .. _PyPI: https://pypi.python.org/pypi/python-designateclient/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/doc/source/user/bindings.rst new/python-designateclient-2.8.0/doc/source/user/bindings.rst --- old/python-designateclient-2.7.0/doc/source/user/bindings.rst 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/doc/source/user/bindings.rst 2018-01-09 16:43:34.000000000 +0100 @@ -88,7 +88,7 @@ Below is a sample of standard authentication with keystone using keystoneauth Sessions. For more information on keystoneauth API, see `Using Sessions`_. -.. _Using Sessions: http://docs.openstack.org/developer/keystoneauth/using-sessions.html +.. _Using Sessions: https://docs.openstack.org/keystoneauth/latest/using-sessions.html .. code-block:: python diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/doc/source/user/shell-v2.rst new/python-designateclient-2.8.0/doc/source/user/shell-v2.rst --- old/python-designateclient-2.7.0/doc/source/user/shell-v2.rst 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/doc/source/user/shell-v2.rst 2018-01-09 16:43:34.000000000 +0100 @@ -572,4 +572,4 @@ $ openstack tld delete a7bba387-712b-4b42-9368-4508642c6113 -.. _OpenStack Client configuration documentation: http://docs.openstack.org/developer/python-openstackclient/configuration.html +.. _OpenStack Client configuration documentation: https://docs.openstack.org/python-openstackclient/latest/configuration/index.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/python_designateclient.egg-info/PKG-INFO new/python-designateclient-2.8.0/python_designateclient.egg-info/PKG-INFO --- old/python-designateclient-2.7.0/python_designateclient.egg-info/PKG-INFO 2017-07-27 17:00:23.000000000 +0200 +++ new/python-designateclient-2.8.0/python_designateclient.egg-info/PKG-INFO 2018-01-09 16:47:27.000000000 +0100 @@ -1,17 +1,18 @@ Metadata-Version: 1.1 Name: python-designateclient -Version: 2.7.0 +Version: 2.8.0 Summary: OpenStack DNS-as-a-Service - Client -Home-page: http://docs.openstack.org/developer/python-designateclient +Home-page: https://docs.openstack.org/python-designateclient/latest Author: OpenStack Author-email: openstack-...@lists.openstack.org License: Apache License, Version 2.0 +Description-Content-Type: UNKNOWN Description: ======================== Team and repository tags ======================== - .. image:: http://governance.openstack.org/badges/python-designateclient.svg - :target: http://governance.openstack.org/reference/tags/index.html + .. image:: https://governance.openstack.org/tc/badges/python-designateclient.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html .. Change things from this point on @@ -31,10 +32,10 @@ (``designate``). Development takes place via the usual OpenStack processes as outlined in the - `developer guide <http://docs.openstack.org/infra/manual/developers.html>`_. The master - repository is in `Git <http://git.openstack.org/cgit/openstack/python-designateclient>`_. + `developer guide <https://docs.openstack.org/infra/manual/developers.html>`_. The master + repository is in `Git <https://git.openstack.org/cgit/openstack/python-designateclient>`_. - See release notes and more at `<http://docs.openstack.org/developer/python-designateclient/>`_. + See release notes and more at `<https://docs.openstack.org/python-designateclient/latest/>`_. * License: Apache License, Version 2.0 * `PyPi`_ - package installation @@ -44,10 +45,10 @@ * `How to Contribute`_ .. _PyPi: https://pypi.python.org/pypi/python-designateclient - .. _Online Documentation: http://docs.openstack.org/developer/python-designateclient + .. _Online Documentation: https://docs.openstack.org/python-designateclient/latest/ .. _Bugs: https://bugs.launchpad.net/python-designateclient .. _Source: https://git.openstack.org/cgit/openstack/python-designateclient - .. _How to Contribute: http://docs.openstack.org/infra/manual/developers.html + .. _How to Contribute: https://docs.openstack.org/infra/manual/developers.html Platform: UNKNOWN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/python_designateclient.egg-info/SOURCES.txt new/python-designateclient-2.8.0/python_designateclient.egg-info/SOURCES.txt --- old/python-designateclient-2.7.0/python_designateclient.egg-info/SOURCES.txt 2017-07-27 17:00:24.000000000 +0200 +++ new/python-designateclient-2.8.0/python_designateclient.egg-info/SOURCES.txt 2018-01-09 16:47:28.000000000 +0100 @@ -1,4 +1,5 @@ .testr.conf +.zuul.yaml AUTHORS CONTRIBUTING.rst ChangeLog @@ -39,6 +40,7 @@ designateclient/functionaltests/v2/test_blacklist.py designateclient/functionaltests/v2/test_recordsets.py designateclient/functionaltests/v2/test_tlds.py +designateclient/functionaltests/v2/test_tsigkeys.py designateclient/functionaltests/v2/test_zone.py designateclient/functionaltests/v2/test_zone_export.py designateclient/functionaltests/v2/test_zone_import.py @@ -73,6 +75,7 @@ designateclient/tests/v2/test_service_statuses.py designateclient/tests/v2/test_timeout.py designateclient/tests/v2/test_tlds.py +designateclient/tests/v2/test_tsigkeys.py designateclient/tests/v2/test_zones.py designateclient/v1/__init__.py designateclient/v1/diagnostics.py @@ -95,6 +98,7 @@ designateclient/v2/reverse.py designateclient/v2/service_statuses.py designateclient/v2/tlds.py +designateclient/v2/tsigkeys.py designateclient/v2/utils.py designateclient/v2/zones.py designateclient/v2/cli/__init__.py @@ -105,6 +109,7 @@ designateclient/v2/cli/reverse.py designateclient/v2/cli/service_statuses.py designateclient/v2/cli/tlds.py +designateclient/v2/cli/tsigkeys.py designateclient/v2/cli/zones.py doc/requirements.txt doc/examples/recordset_create.py @@ -140,8 +145,8 @@ releasenotes/source/index.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/pretty_tox.sh -tools/tox_install.sh \ No newline at end of file +tools/pretty_tox.sh \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/python_designateclient.egg-info/entry_points.txt new/python-designateclient-2.8.0/python_designateclient.egg-info/entry_points.txt --- old/python-designateclient-2.7.0/python_designateclient.egg-info/entry_points.txt 2017-07-27 17:00:23.000000000 +0200 +++ new/python-designateclient-2.8.0/python_designateclient.egg-info/entry_points.txt 2018-01-09 16:47:27.000000000 +0100 @@ -67,6 +67,11 @@ tld_list = designateclient.v2.cli.tlds:ListTLDsCommand tld_set = designateclient.v2.cli.tlds:SetTLDCommand tld_show = designateclient.v2.cli.tlds:ShowTLDCommand +tsigkey_create = designateclient.v2.cli.tsigkeys:CreateTSIGKeyCommand +tsigkey_delete = designateclient.v2.cli.tsigkeys:DeleteTSIGKeyCommand +tsigkey_list = designateclient.v2.cli.tsigkeys:ListTSIGKeysCommand +tsigkey_set = designateclient.v2.cli.tsigkeys:SetTSIGKeyCommand +tsigkey_show = designateclient.v2.cli.tsigkeys:ShowTSIGKeyCommand zone_abandon = designateclient.v2.cli.zones:AbandonZoneCommand zone_axfr = designateclient.v2.cli.zones:AXFRZoneCommand zone_blacklist_create = designateclient.v2.cli.blacklists:CreateBlacklistCommand diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/python_designateclient.egg-info/pbr.json new/python-designateclient-2.8.0/python_designateclient.egg-info/pbr.json --- old/python-designateclient-2.7.0/python_designateclient.egg-info/pbr.json 2017-07-27 17:00:23.000000000 +0200 +++ new/python-designateclient-2.8.0/python_designateclient.egg-info/pbr.json 2018-01-09 16:47:27.000000000 +0100 @@ -1 +1 @@ -{"git_version": "ea41cef", "is_release": true} \ No newline at end of file +{"git_version": "1a3632c", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/python_designateclient.egg-info/requires.txt new/python-designateclient-2.8.0/python_designateclient.egg-info/requires.txt --- old/python-designateclient-2.7.0/python_designateclient.egg-info/requires.txt 2017-07-27 17:00:23.000000000 +0200 +++ new/python-designateclient-2.8.0/python_designateclient.egg-info/requires.txt 2018-01-09 16:47:27.000000000 +0100 @@ -1,10 +1,10 @@ -cliff>=2.6.0 -jsonschema!=2.5.0,<3.0.0,>=2.0.0 -osc-lib>=1.5.1 -oslo.utils>=3.20.0 +cliff!=2.9.0,>=2.8.0 +jsonschema<3.0.0,>=2.6.0 +osc-lib>=1.7.0 +oslo.utils>=3.33.0 pbr!=2.1.0,>=2.0.0 -keystoneauth1>=2.21.0 +keystoneauth1>=3.3.0 requests>=2.14.2 -six>=1.9.0 +six>=1.10.0 stevedore>=1.20.0 debtcollector>=1.2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/releasenotes/source/conf.py new/python-designateclient-2.8.0/releasenotes/source/conf.py --- old/python-designateclient-2.7.0/releasenotes/source/conf.py 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/releasenotes/source/conf.py 2018-01-09 16:43:34.000000000 +0100 @@ -64,16 +64,11 @@ project = u'Designate Client Release Notes' copyright = u'2015, Designate Developers' -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -from designateclient.version import version_info as designateclient_version +# Release notes are version independent. # The full version, including alpha/beta/rc tags. -release = designateclient_version.version_string_with_vcs() +release = '' # The short X.Y version. -version = designateclient_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-designateclient-2.7.0/releasenotes/source/index.rst new/python-designateclient-2.8.0/releasenotes/source/index.rst --- old/python-designateclient-2.7.0/releasenotes/source/index.rst 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/releasenotes/source/index.rst 2018-01-09 16:43:34.000000000 +0100 @@ -6,5 +6,6 @@ :maxdepth: 1 unreleased + pike ocata newton diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/releasenotes/source/pike.rst new/python-designateclient-2.8.0/releasenotes/source/pike.rst --- old/python-designateclient-2.7.0/releasenotes/source/pike.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/python-designateclient-2.8.0/releasenotes/source/pike.rst 2018-01-09 16:43:34.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-designateclient-2.7.0/requirements.txt new/python-designateclient-2.8.0/requirements.txt --- old/python-designateclient-2.7.0/requirements.txt 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/requirements.txt 2018-01-09 16:43:34.000000000 +0100 @@ -1,13 +1,13 @@ # 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. -cliff>=2.6.0 # Apache-2.0 -jsonschema!=2.5.0,<3.0.0,>=2.0.0 # MIT -osc-lib>=1.5.1 # Apache-2.0 -oslo.utils>=3.20.0 # Apache-2.0 +cliff!=2.9.0,>=2.8.0 # Apache-2.0 +jsonschema<3.0.0,>=2.6.0 # MIT +osc-lib>=1.7.0 # Apache-2.0 +oslo.utils>=3.33.0 # Apache-2.0 pbr!=2.1.0,>=2.0.0 # Apache-2.0 -keystoneauth1>=2.21.0 # Apache-2.0 +keystoneauth1>=3.3.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 debtcollector>=1.2.0 # Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/setup.cfg new/python-designateclient-2.8.0/setup.cfg --- old/python-designateclient-2.7.0/setup.cfg 2017-07-27 17:00:24.000000000 +0200 +++ new/python-designateclient-2.8.0/setup.cfg 2018-01-09 16:47:28.000000000 +0100 @@ -6,7 +6,7 @@ license = Apache License, Version 2.0 author = OpenStack author-email = openstack-...@lists.openstack.org -home-page = http://docs.openstack.org/developer/python-designateclient +home-page = https://docs.openstack.org/python-designateclient/latest classifier = Environment :: OpenStack Intended Audience :: Information Technology @@ -125,6 +125,11 @@ dns_quota_list = designateclient.v2.cli.quotas:ListQuotasCommand dns_quota_set = designateclient.v2.cli.quotas:SetQuotasCommand dns_quota_reset = designateclient.v2.cli.quotas:ResetQuotasCommand + tsigkey_create = designateclient.v2.cli.tsigkeys:CreateTSIGKeyCommand + tsigkey_list = designateclient.v2.cli.tsigkeys:ListTSIGKeysCommand + tsigkey_show = designateclient.v2.cli.tsigkeys:ShowTSIGKeyCommand + tsigkey_set = designateclient.v2.cli.tsigkeys:SetTSIGKeyCommand + tsigkey_delete = designateclient.v2.cli.tsigkeys:DeleteTSIGKeyCommand [build_sphinx] builders = html,man diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/test-requirements.txt new/python-designateclient-2.8.0/test-requirements.txt --- old/python-designateclient-2.7.0/test-requirements.txt 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/test-requirements.txt 2018-01-09 16:43:34.000000000 +0100 @@ -4,13 +4,11 @@ # Hacking already pins down pep8, pyflakes and flake8 hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0 -mock>=2.0 # BSD -oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0 +mock>=2.0.0 # BSD +oslo.config>=5.1.0 # Apache-2.0 oslotest>=1.10.0 # Apache-2.0 -python-subunit>=0.0.18 # Apache-2.0/BSD -requests-mock>=1.1 # Apache-2.0 -sphinx>=1.6.2 # BSD +python-subunit>=1.0.0 # Apache-2.0/BSD +requests-mock>=1.1.0 # Apache-2.0 testrepository>=0.0.18 # Apache-2.0/BSD -openstackdocstheme>=1.11.0 # Apache-2.0 -reno!=2.3.1,>=1.8.0 # Apache-2.0 -tempest>=16.1.0 # Apache-2.0 +reno>=2.5.0 # Apache-2.0 +tempest>=17.1.0 # Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-designateclient-2.7.0/tools/tox_install.sh new/python-designateclient-2.8.0/tools/tox_install.sh --- old/python-designateclient-2.7.0/tools/tox_install.sh 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.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-designateclient-2.7.0/tox.ini new/python-designateclient-2.8.0/tox.ini --- old/python-designateclient-2.7.0/tox.ini 2017-07-27 16:58:43.000000000 +0200 +++ new/python-designateclient-2.8.0/tox.ini 2018-01-09 16:43:34.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-designateclient LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=C -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 whitelist_externals = find @@ -25,8 +25,11 @@ passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY [testenv:docs] -commands = rm -rf doc/build - python setup.py build_sphinx +deps = + -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -r{toxinidir}/requirements.txt + -r{toxinidir}/doc/requirements.txt +commands = sphinx-build -b html doc/source doc/build/html [testenv:flake8] commands = flake8