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 - [email protected]
+
+- 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">[email protected]</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 <[email protected]>
Federico Ceratto <[email protected]>
Flavio Percoco <[email protected]>
+Graham Hayes <[email protected]>
Graham Hayes <[email protected]>
Graham Hayes <[email protected]>
Graham Hayes <[email protected]>
+Hangdong Zhang <[email protected]>
James Li <[email protected]>
Janonymous <[email protected]>
+Jens Harbott <[email protected]>
Jeremy Stanley <[email protected]>
Joe Gordon <[email protected]>
Jordan Cazamias <[email protected]>
@@ -47,6 +50,7 @@
Pradeep Kumar Singh <[email protected]>
Rahman Syed <[email protected]>
Reddy A, Penchal (pr8721) <[email protected]>
+Rudolf Vriend <[email protected]>
Rui Chen <[email protected]>
Sascha Peilicke <[email protected]>
Sascha Peilicke <[email protected]>
@@ -62,11 +66,13 @@
Tony Breeds <[email protected]>
Tony Xu <[email protected]>
Venkata Mahesh Jonnalagadda <[email protected]>
+Zuul <[email protected]>
abhishekkekane <[email protected]>
algerwang <[email protected]>
ashish-kumar-gupta <[email protected]>
ghanshyam <[email protected]>
howardlee <[email protected]>
+lingyongxu <[email protected]>
ricolin <[email protected]>
ricolin <[email protected]>
rjrjr <[email protected]>
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: [email protected]
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='[email protected]',
+ )).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 <[email protected]>
+#
+# 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 <[email protected]>
+#
+# 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 <[email protected]>
+#
+# 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: [email protected]
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 = [email protected]
-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