Hello community,
here is the log from the commit of package python-novaclient for openSUSE:13.1 checked in at 2013-10-23 11:27:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1/python-novaclient (Old)
and /work/SRC/openSUSE:13.1/.python-novaclient.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-novaclient"
Changes:
--------
--- /work/SRC/openSUSE:13.1/python-novaclient/python-novaclient.changes 2013-09-27 18:02:22.000000000 +0200
+++ /work/SRC/openSUSE:13.1/.python-novaclient.new/python-novaclient.changes 2013-10-23 11:27:02.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Oct 7 10:16:48 UTC 2013 - opensuse-cloud@opensuse.org
+
+- Downgrade to version 2.15.0:
+ * better ship a released tarball
+
+-------------------------------------------------------------------
Old:
----
python-novaclient-master.tar.gz
New:
----
python-novaclient-2.15.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-novaclient.spec ++++++
--- /var/tmp/diff_new_pack.Td9ONA/_old 2013-10-23 11:27:03.000000000 +0200
+++ /var/tmp/diff_new_pack.Td9ONA/_new 2013-10-23 11:27:03.000000000 +0200
@@ -19,13 +19,13 @@
%define component novaclient
Name: python-%{component}
-Version: 2.15.0.22
+Version: 2.15.0
Release: 0
Summary: Openstack Compute (Nova) API Client
License: Apache-2.0
Group: Development/Languages/Python
Url: http://launchpad.net/python-novaclient
-Source: python-novaclient-master.tar.gz
+Source: python-novaclient-2.15.0.tar.gz
Source2: openstack-nova.sh
BuildRequires: openstack-suse-macros
BuildRequires: python-base
@@ -94,7 +94,7 @@
This package contains testsuite files for %{name}.
%prep
-%setup -q -n python-novaclient-2.15.0.22.g2ab3344
+%setup -q -n python-novaclient-2.15.0
%openstack_cleanup_prep
%build
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Td9ONA/_old 2013-10-23 11:27:03.000000000 +0200
+++ /var/tmp/diff_new_pack.Td9ONA/_new 2013-10-23 11:27:03.000000000 +0200
@@ -1,8 +1,7 @@
<services>
<service name="git_tarballs" mode="disabled">
- <param name="url">http://tarballs.openstack.org/python-novaclient/python-novaclient-master.tar...</param>
+ <param name="url">http://tarballs.openstack.org/python-novaclient/python-novaclient-2.15.0.tar...</param>
<param name="email">opensuse-cloud@opensuse.org</param>
- <param name="version-regexp">.*-([^-]+)\.g[a-zA-Z0-9]{7}</param>
<param name="plain-version">True</param>
</service>
</services>
++++++ python-novaclient-master.tar.gz -> python-novaclient-2.15.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/AUTHORS new/python-novaclient-2.15.0/AUTHORS
--- old/python-novaclient-2.15.0.22.g2ab3344/AUTHORS 2013-09-24 23:14:55.000000000 +0200
+++ new/python-novaclient-2.15.0/AUTHORS 2013-09-18 14:39:10.000000000 +0200
@@ -103,7 +103,6 @@
Kieran Spear
Kirill Shileev
Kravchenko Pavel
-Kui Shi
Kurt Taylor
Leo Toyoda
Lorin Hochstein
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/ChangeLog new/python-novaclient-2.15.0/ChangeLog
--- old/python-novaclient-2.15.0.22.g2ab3344/ChangeLog 2013-09-24 23:14:55.000000000 +0200
+++ new/python-novaclient-2.15.0/ChangeLog 2013-09-18 14:39:10.000000000 +0200
@@ -1,218 +1,3 @@
-commit 2ab334435f96e8f9b4c37e26329d3b2a03a8dea4
-Merge: 991ab62 9e8dd06
-Author: Jenkins
-Date: Tue Sep 24 21:12:11 2013 +0000
-
- Merge "Fix AttributeError in Keypair._add_details()"
-
-commit 9e8dd063c6c4215ebda25d0199cec3fb64a81837
-Author: Roman Podolyaka
-Date: Tue Sep 17 10:21:03 2013 +0300
-
- Fix AttributeError in Keypair._add_details()
-
- _add_details() method copies keypair attributes retrieved
- from Nova to an instance of Keypair class. Trying to set
- attribute 'id' fails with AttributeError, because Keypair
- class has a read-only property 'id'.
-
- We can safely omit setting of attribute 'id', because it's
- just an implementation detail (the id of a table row in a
- database), and keypairs for a given tenant are uniquely
- identified using attribute 'name'.
-
- Fixes bug 1223934
-
- Change-Id: I1045730e47e9e6ad31fcdfbaefdad77e2f3b2c3e
-
-commit 991ab62ef163ce8009ffbbed89ff87226ca58a68
-Author: Alex Gaynor
-Date: Mon Sep 23 17:55:24 2013 -0700
-
- Fixed several test failures on Python3
-
- - Corrected places where `dict.keys()` was being treated as a list
- - Corrected usage of `urllib.urlencode()`
-
- Change-Id: I0a24b2f64fab6c905e20073ff7ebaa3c5ffe7c90
-
-commit 7a041f903ae0094502b48f9ce53ab735985d44f4
-Merge: 4641853 aee366c
-Author: Jenkins
-Date: Tue Sep 24 00:27:34 2013 +0000
-
- Merge "Make nova CLI use term "server" where possible"
-
-commit 46418534ffd730c209e280855ab610010b4c66f0
-Merge: 4a68e2f ce89f7b
-Author: Jenkins
-Date: Tue Sep 24 00:27:06 2013 +0000
-
- Merge "Update pbr usage"
-
-commit 4a68e2f42c9c9deadc1614f02f001b95b24cb1c0
-Merge: e1dcf8f 35e03a9
-Author: Jenkins
-Date: Tue Sep 24 00:24:21 2013 +0000
-
- Merge "Corrected several usage of keys() for Python 3"
-
-commit e1dcf8f9822e5f682ffbbceab73d5d7fbc142488
-Merge: 935e1fe ac79703
-Author: Jenkins
-Date: Tue Sep 24 00:24:20 2013 +0000
-
- Merge "py33: dict.keys() is not a list in python3"
-
-commit 935e1fe1674c7680dfdcfed53996d66530fd9ed3
-Merge: 4dfe753 f1c3b79
-Author: Jenkins
-Date: Tue Sep 24 00:23:01 2013 +0000
-
- Merge "py33: 'dict_keys' object does not support indexing"
-
-commit 4dfe753a6a548bedcd6d44b7e332adda31a4984b
-Merge: 122df7b 0ab364a
-Author: Jenkins
-Date: Tue Sep 24 00:22:59 2013 +0000
-
- Merge "Corrected usage of len(filter(...))"
-
-commit 122df7b798d5fa39beedfc7f2c50b7b2591cd1ed
-Merge: 8deaf37 c7e62d4
-Author: Jenkins
-Date: Mon Sep 23 23:52:30 2013 +0000
-
- Merge "Clean up a little cruft"
-
-commit aee366cc500d8301aadaf4ecd0d234806b7b30cd
-Author: Jakub Ruzicka
-Date: Mon Sep 23 17:38:51 2013 +0200
-
- Make nova CLI use term "server" where possible
-
- nova client was using terms "server" and "instance" interchangeably
- which was very confusing.
-
- This patch uses "server" where possible without touching the API.
-
- Note that there are actions (instance-action, instance-action-list) and
- arguments (--instance-name, --num-instances, ...) with "instance" in their
- name which can't be changed easily.
-
- Closes bug 1156648
-
- Change-Id: I0570aa1c4dc9ad1852af307a2a4896f16073a6ab
-
-commit ac7970321377c287d27d2379f061deaf3f82e8d1
-Author: Kui Shi
-Date: Sun Sep 22 20:21:00 2013 +0800
-
- py33: dict.keys() is not a list in python3
-
- Cast the dict.keys() to list when comparing its value with list.
-
- Closes-Bug: #1228993
-
- Change-Id: I59d13258935de3e9286845f857eaa602a5b690fb
-
-commit 35e03a92e2543b8713ab0c2004ca4a0dcc8fd270
-Author: Alex Gaynor
-Date: Sun Sep 22 09:04:20 2013 -0700
-
- Corrected several usage of keys() for Python 3
-
- Under Python2 dict.keys() returns a list, under Python 3 it returns an
- iterator. Some places assumed that if they called keys() then it was
- safe to modify the dict in a loop. Corrected this by calling list().
-
- Change-Id: I7638263f288dd20590bd751d09194a919b921545
-
-commit f1c3b79c2bb1805098cf55d0aaa23faf664b48ea
-Author: Kui Shi
-Date: Sun Sep 22 22:06:41 2013 +0800
-
- py33: 'dict_keys' object does not support indexing
-
- In python 3, dict.keys() is a class of 'dict_keys', it does not
- support indexing.
-
- Cast the dict to list to get the "first" value of dict, which is
- compatible with python 2&3.
-
- Closes-Bug: #1229005
-
- Change-Id: I561b7ada9e5ad936659a657b3161a9b93a15a788
-
-commit 0ab364a98ce82d3f552d9584692954daef16964a
-Author: Alex Gaynor
-Date: Sat Sep 21 10:02:49 2013 -0500
-
- Corrected usage of len(filter(...))
-
- filter() returns an iterable, not a list on Python 3.
-
- Change-Id: I8afb2962bcd193ab67017c98376359c0f28afc66
-
-commit ce89f7b12a6f3e80dda2573bfa96a07b8b7d7740
-Author: Monty Taylor
-Date: Fri Sep 20 15:55:42 2013 -0700
-
- Update pbr usage
-
- We've discovered that having versions in setup_requires leads to evil
- and death. Also, the setup-hooks in setup.cfg are completely unnecessary
- anymore.
-
- Change-Id: I8878e635e0828bbddb81d9c6321a9f10ad3b89fe
-
-commit c7e62d4c5706a021c5ab566baed5048a4ee5f885
-Author: Monty Taylor
-Date: Wed Sep 18 08:00:08 2013 -0500
-
- Clean up a little cruft
-
- OpenStack runs a git service now, so instead of linking to github URLs,
- link to git.openstack.org.
- Versions for pbr in setup.py actually wind up being an error (and a very
- odd one) Remove them.
- The setup hook in setup.cfg is no longer needed.
-
- Change-Id: I8f48ac194e6c01e9bb06fa5df6f2b2bf28c01636
-
-commit 8deaf3769d6076851003668f4c53d478bb3ff2c5
-Author: Phil Day
-Date: Fri Sep 20 13:20:36 2013 +0000
-
- Novaclient shell list command should support a minimal server list
-
- The Nova API supports both a basic (id and name) and detailed server
- list, and this is supported in the client by the "detailed=True"
- argument to servers.list(). However the shell do_list() method always
- leaves this to its default value. For administrators on a large
- system, or where the tenants has a lot of instances a detailed list
- can be painfully slow.
-
- This change adds support for a --minimal option to list.
-
- Fixes bug: 1228137
-
- Change-Id: I3126ee6b372606a98f0d7a4e344556f8c05ae224
-
-commit cafd5bf810c424b2b9e75dde02c723dae3f87e2c
-Merge: 0fd1ccc 57a22ec
-Author: Jenkins
-Date: Wed Sep 18 14:37:46 2013 +0000
-
- Merge "Add v3 HostManager"
-
-commit 0fd1ccc47853552594d80d1b07be72ffa025a890
-Merge: 45fcd6f 615ad3d
-Author: Jenkins
-Date: Wed Sep 18 14:36:18 2013 +0000
-
- Merge "Create v3 tests directory"
-
commit 45fcd6f7bae0aa7b72d9d0da919ff253df98319e
Merge: 4e8caf8 889f568
Author: Jenkins
@@ -220,34 +5,6 @@
Merge "assertEquals is deprecated, use assertEqual"
-commit 57a22ec99ca68dfa78878e3e6aa3e2bf9f24c06b
-Author: Ben Nemec
-Date: Thu Aug 15 17:13:19 2013 -0500
-
- Add v3 HostManager
-
- Some of the host code required changes to work with the v3 API.
- This change adds a v3-compatible HostManager that inherits from
- the 1_1 HostManager to make use of the functions that didn't
- need to change.
-
- bp v3-api
-
- Change-Id: I3ef7ab4619d49c20ab1bdeb1185ad28b411d37a1
-
-commit 615ad3de54507038d276eae50e7d46fb359c57c3
-Author: Ben Nemec
-Date: Thu Aug 15 17:31:37 2013 -0500
-
- Create v3 tests directory
-
- Create a basic framework that inherits from v1_1 and can be
- overridden as necessary in extension commits
-
- bp v3-api
-
- Change-Id: I611451e50a9e553a18777fa48f32e368b919605e
-
commit 4e8caf8ed6f51c0202092c75ac13ef8c86c0ff56
Merge: ecb9b8b bec4e51
Author: Jenkins
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/HACKING.rst new/python-novaclient-2.15.0/HACKING.rst
--- old/python-novaclient-2.15.0.22.g2ab3344/HACKING.rst 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/HACKING.rst 2013-09-18 14:38:39.000000000 +0200
@@ -2,7 +2,7 @@
==============================
- Step 1: Read the OpenStack Style Commandments
- http://docs.openstack.org/developer/hacking
+ https://github.com/openstack-dev/hacking/blob/master/HACKING.rst
- Step 2: Read on
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/PKG-INFO new/python-novaclient-2.15.0/PKG-INFO
--- old/python-novaclient-2.15.0.22.g2ab3344/PKG-INFO 2013-09-24 23:14:56.000000000 +0200
+++ new/python-novaclient-2.15.0/PKG-INFO 2013-09-18 14:39:10.000000000 +0200
@@ -1,8 +1,8 @@
Metadata-Version: 1.1
Name: python-novaclient
-Version: 2.15.0.22.g2ab3344
+Version: 2.15.0
Summary: Client library for OpenStack Compute API
-Home-page: https://git.openstack.org/cgit/openstack/python-novaclient
+Home-page: https://github.com/openstack/python-novaclient
Author: OpenStack
Author-email: openstack-dev@lists.openstack.org
License: Apache License, Version 2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/doc/source/index.rst new/python-novaclient-2.15.0/doc/source/index.rst
--- old/python-novaclient-2.15.0.22.g2ab3344/doc/source/index.rst 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/doc/source/index.rst 2013-09-18 14:38:39.000000000 +0200
@@ -30,11 +30,11 @@
Contributing
============
-Code is hosted at `git.openstack.org`_. Submit bugs to the Nova project on
+Code is hosted `on GitHub`_. Submit bugs to the Nova project on
`Launchpad`_. Submit code to the openstack/python-novaclient project using
`Gerrit`_.
-.. _git.openstack.org: https://git.openstack.org/cgit/openstack/python-novaclient
+.. _on GitHub: https://github.com/openstack/python-novaclient
.. _Launchpad: https://launchpad.net/nova
.. _Gerrit: http://wiki.openstack.org/GerritWorkflow
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/exceptions.py new/python-novaclient-2.15.0/novaclient/exceptions.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/exceptions.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/exceptions.py 2013-09-18 14:38:39.000000000 +0200
@@ -206,7 +206,7 @@
details = "n/a"
if hasattr(body, 'keys'):
- error = body[list(body)[0]]
+ error = body[body.keys()[0]]
message = error.get('message', None)
details = error.get('details', None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/tests/v1_1/contrib/fakes.py new/python-novaclient-2.15.0/novaclient/tests/v1_1/contrib/fakes.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/tests/v1_1/contrib/fakes.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/tests/v1_1/contrib/fakes.py 2013-09-18 14:38:39.000000000 +0200
@@ -113,7 +113,7 @@
def post_os_baremetal_nodes_1_action(self, **kw):
body = kw['body']
- action = list(body)[0]
+ action = body.keys()[0]
if action == "add_interface":
return (
200, {}, {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/tests/v1_1/fakes.py new/python-novaclient-2.15.0/novaclient/tests/v1_1/fakes.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/tests/v1_1/fakes.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/tests/v1_1/fakes.py 2013-09-18 14:38:39.000000000 +0200
@@ -391,7 +391,7 @@
return (200, {}, r)
def put_servers_1234(self, body, **kw):
- assert list(body) == ['server']
+ assert body.keys() == ['server']
fakes.assert_has_keys(body['server'], optional=['name', 'adminPass'])
return (204, {}, body)
@@ -488,12 +488,12 @@
_body = None
resp = 202
assert len(body.keys()) == 1
- action = list(body)[0]
+ action = body.keys()[0]
if action == 'reboot':
- assert list(body[action]) == ['type']
+ assert body[action].keys() == ['type']
assert body[action]['type'] in ['HARD', 'SOFT']
elif action == 'rebuild':
- keys = list(body[action])
+ keys = body[action].keys()
if 'adminPass' in keys:
keys.remove('adminPass')
assert 'imageRef' in keys
@@ -539,45 +539,45 @@
elif action == 'unlock':
assert body[action] is None
elif action == 'addFixedIp':
- assert list(body[action]) == ['networkId']
+ assert body[action].keys() == ['networkId']
elif action == 'removeFixedIp':
- assert list(body[action]) == ['address']
+ assert body[action].keys() == ['address']
elif action == 'addFloatingIp':
- assert (list(body[action]) == ['address'] or
- list(body[action]) == ['fixed_address',
+ assert (body[action].keys() == ['address'] or
+ body[action].keys() == ['fixed_address',
'address'])
elif action == 'removeFloatingIp':
- assert list(body[action]) == ['address']
+ assert body[action].keys() == ['address']
elif action == 'createImage':
assert set(body[action].keys()) == set(['name', 'metadata'])
_headers = dict(location="http://blah/images/456")
elif action == 'changePassword':
- assert list(body[action]) == ['adminPass']
+ assert body[action].keys() == ['adminPass']
elif action == 'os-getConsoleOutput':
- assert list(body[action]) == ['length']
+ assert body[action].keys() == ['length']
return (202, {}, {'output': 'foo'})
elif action == 'os-getVNCConsole':
- assert list(body[action]) == ['type']
+ assert body[action].keys() == ['type']
elif action == 'os-getSPICEConsole':
- assert list(body[action]) == ['type']
+ assert body[action].keys() == ['type']
elif action == 'os-migrateLive':
assert set(body[action].keys()) == set(['host',
'block_migration',
'disk_over_commit'])
elif action == 'os-resetState':
- assert list(body[action]) == ['state']
+ assert body[action].keys() == ['state']
elif action == 'resetNetwork':
assert body[action] is None
elif action == 'addSecurityGroup':
- assert list(body[action]) == ['name']
+ assert body[action].keys() == ['name']
elif action == 'removeSecurityGroup':
- assert list(body[action]) == ['name']
+ assert body[action].keys() == ['name']
elif action == 'createBackup':
- assert set(body[action]) == set(['name',
- 'backup_type',
- 'rotation'])
+ assert set(body[action].keys()) == set(['name',
+ 'backup_type',
+ 'rotation'])
elif action == 'evacuate':
- keys = list(body[action])
+ keys = body[action].keys()
if 'adminPass' in keys:
keys.remove('adminPass')
assert set(keys) == set(['host', 'onSharedStorage'])
@@ -613,7 +613,7 @@
def get_flavors(self, **kw):
status, header, flavors = self.get_flavors_detail(**kw)
for flavor in flavors['flavors']:
- for k in list(flavor):
+ for k in flavor.keys():
if k not in ['id', 'name']:
del flavor[k]
@@ -728,7 +728,7 @@
{'extra_specs': {"k3": "v3"}})
def post_flavors_1_os_extra_specs(self, body, **kw):
- assert list(body) == ['extra_specs']
+ assert body.keys() == ['extra_specs']
fakes.assert_has_keys(body['extra_specs'],
required=['k1'])
return (200,
@@ -911,12 +911,12 @@
return (200, {}, {'image': self.get_images_detail()[2]['images'][1]})
def post_images(self, body, **kw):
- assert list(body) == ['image']
+ assert body.keys() == ['image']
fakes.assert_has_keys(body['image'], required=['serverId', 'name'])
return (202, {}, self.get_images_1()[2])
def post_images_1_metadata(self, body, **kw):
- assert list(body) == ['metadata']
+ assert body.keys() == ['metadata']
fakes.assert_has_keys(body['metadata'],
required=['test_key'])
return (200,
@@ -947,7 +947,7 @@
return (202, {}, None)
def post_os_keypairs(self, body, **kw):
- assert list(body) == ['keypair']
+ assert body.keys() == ['keypair']
fakes.assert_has_keys(body['keypair'],
required=['name'])
r = {'keypair': self.get_os_keypairs()[2]['keypairs'][0]}
@@ -1085,7 +1085,7 @@
'security_group_rules': 1}})
def put_os_quota_sets_97f4c221bff44578b0300df4ef119353(self, body, **kw):
- assert list(body) == ['quota_set']
+ assert body.keys() == ['quota_set']
fakes.assert_has_keys(body['quota_set'],
required=['tenant_id'])
return (200, {}, {'quota_set': {
@@ -1132,7 +1132,7 @@
'security_group_rules': 1}})
def put_os_quota_class_sets_test(self, body, **kw):
- assert list(body) == ['quota_class_set']
+ assert body.keys() == ['quota_class_set']
fakes.assert_has_keys(body['quota_class_set'],
required=['class_name'])
return (200, {}, {'quota_class_set': {
@@ -1153,7 +1153,7 @@
def put_os_quota_class_sets_97f4c221bff44578b0300df4ef119353(self,
body, **kw):
- assert list(body) == ['quota_class_set']
+ assert body.keys() == ['quota_class_set']
fakes.assert_has_keys(body['quota_class_set'],
required=['class_name'])
return (200, {}, {'quota_class_set': {
@@ -1219,7 +1219,7 @@
return (202, {}, None)
def post_os_security_groups(self, body, **kw):
- assert list(body) == ['security_group']
+ assert body.keys() == ['security_group']
fakes.assert_has_keys(body['security_group'],
required=['name', 'description'])
r = {'security_group':
@@ -1227,7 +1227,7 @@
return (202, {}, r)
def put_os_security_groups_1(self, body, **kw):
- assert list(body) == ['security_group']
+ assert body.keys() == ['security_group']
fakes.assert_has_keys(body['security_group'],
required=['name', 'description'])
return (205, {}, body)
@@ -1252,7 +1252,7 @@
return (202, {}, None)
def post_os_security_group_rules(self, body, **kw):
- assert list(body) == ['security_group_rule']
+ assert body.keys() == ['security_group_rule']
fakes.assert_has_keys(body['security_group_rule'],
required=['parent_group_id'],
optional=['group_id', 'ip_protocol', 'from_port',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/tests/v1_1/test_shell.py new/python-novaclient-2.15.0/novaclient/tests/v1_1/test_shell.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/tests/v1_1/test_shell.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/tests/v1_1/test_shell.py 2013-09-18 14:38:39.000000000 +0200
@@ -679,10 +679,6 @@
self.run_command('list')
self.assert_called('GET', '/servers/detail')
- def test_list_minimal(self):
- self.run_command('list --minimal')
- self.assert_called('GET', '/servers')
-
def test_list_with_images(self):
self.run_command('list --image 1')
self.assert_called('GET', '/servers/detail?image=1')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/tests/v3/fakes.py new/python-novaclient-2.15.0/novaclient/tests/v3/fakes.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/tests/v3/fakes.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/tests/v3/fakes.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,58 +0,0 @@
-# Copyright (c) 2011 X.commerce, a business unit of eBay Inc.
-# Copyright 2011 OpenStack Foundation
-# Copyright 2013 IBM Corp.
-#
-# 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 novaclient.v3 import client
-from novaclient.tests import fakes
-from novaclient.tests.v1_1 import fakes as fakes_v1_1
-
-
-class FakeClient(fakes.FakeClient, client.Client):
-
- def __init__(self, *args, **kwargs):
- client.Client.__init__(self, 'username', 'password',
- 'project_id', 'auth_url',
- extensions=kwargs.get('extensions'))
- self.client = FakeHTTPClient(**kwargs)
-
-
-class FakeHTTPClient(fakes_v1_1.FakeHTTPClient):
- #
- # Hosts
- #
- def put_os_hosts_sample_host_1(self, body, **kw):
- return (200, {}, {'host': {'host': 'sample-host_1',
- 'status': 'enabled'}})
-
- def put_os_hosts_sample_host_2(self, body, **kw):
- return (200, {}, {'host': {'host': 'sample-host_2',
- 'maintenance_mode': 'on_maintenance'}})
-
- def put_os_hosts_sample_host_3(self, body, **kw):
- return (200, {}, {'host': {'host': 'sample-host_3',
- 'status': 'enabled',
- 'maintenance_mode': 'on_maintenance'}})
-
- def get_os_hosts_sample_host_reboot(self, **kw):
- return (200, {}, {'host': {'host': 'sample_host',
- 'power_action': 'reboot'}})
-
- def get_os_hosts_sample_host_startup(self, **kw):
- return (200, {}, {'host': {'host': 'sample_host',
- 'power_action': 'startup'}})
-
- def get_os_hosts_sample_host_shutdown(self, **kw):
- return (200, {}, {'host': {'host': 'sample_host',
- 'power_action': 'shutdown'}})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/tests/v3/test_hosts.py new/python-novaclient-2.15.0/novaclient/tests/v3/test_hosts.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/tests/v3/test_hosts.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/tests/v3/test_hosts.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,83 +0,0 @@
-# Copyright 2013 OpenStack Foundation
-#
-# 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 novaclient.v3 import hosts
-from novaclient.tests.v3 import fakes
-from novaclient.tests import utils
-
-
-cs = fakes.FakeClient()
-
-
-class HostsTest(utils.TestCase):
-
- def test_describe_resource(self):
- hs = cs.hosts.get('host')
- cs.assert_called('GET', '/os-hosts/host')
- for h in hs:
- self.assertTrue(isinstance(h, hosts.Host))
-
- def test_list_host(self):
- hs = cs.hosts.list()
- cs.assert_called('GET', '/os-hosts')
- for h in hs:
- self.assertTrue(isinstance(h, hosts.Host))
- self.assertEqual(h.zone, 'nova1')
-
- def test_list_host_with_zone(self):
- hs = cs.hosts.list('nova')
- cs.assert_called('GET', '/os-hosts?zone=nova')
- for h in hs:
- self.assertTrue(isinstance(h, hosts.Host))
- self.assertEqual(h.zone, 'nova')
-
- def test_update_enable(self):
- host = cs.hosts.get('sample_host')[0]
- values = {"status": "enabled"}
- result = host.update(values)
- cs.assert_called('PUT', '/os-hosts/sample_host', {"host": values})
- self.assertTrue(isinstance(result, hosts.Host))
-
- def test_update_maintenance(self):
- host = cs.hosts.get('sample_host')[0]
- values = {"maintenance_mode": "enable"}
- result = host.update(values)
- cs.assert_called('PUT', '/os-hosts/sample_host', {"host": values})
- self.assertTrue(isinstance(result, hosts.Host))
-
- def test_update_both(self):
- host = cs.hosts.get('sample_host')[0]
- values = {"status": "enabled",
- "maintenance_mode": "enable"}
- result = host.update(values)
- cs.assert_called('PUT', '/os-hosts/sample_host', {"host": values})
- self.assertTrue(isinstance(result, hosts.Host))
-
- def test_host_startup(self):
- host = cs.hosts.get('sample_host')[0]
- result = host.startup()
- cs.assert_called(
- 'GET', '/os-hosts/sample_host/startup')
-
- def test_host_reboot(self):
- host = cs.hosts.get('sample_host')[0]
- result = host.reboot()
- cs.assert_called(
- 'GET', '/os-hosts/sample_host/reboot')
-
- def test_host_shutdown(self):
- host = cs.hosts.get('sample_host')[0]
- result = host.shutdown()
- cs.assert_called(
- 'GET', '/os-hosts/sample_host/shutdown')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v1_1/contrib/migrations.py new/python-novaclient-2.15.0/novaclient/v1_1/contrib/migrations.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v1_1/contrib/migrations.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/v1_1/contrib/migrations.py 2013-09-18 14:38:39.000000000 +0200
@@ -16,8 +16,9 @@
migration interface
"""
+import urllib
+
from novaclient import base
-from novaclient.openstack.common.py3kcompat import urlutils
from novaclient import utils
@@ -44,7 +45,7 @@
if cell_name:
opts['cell_name'] = cell_name
- query_string = "?%s" % urlutils.urlencode(opts) if opts else ""
+ query_string = "?%s" % urllib.urlencode(opts) if opts else ""
return self._list("/os-migrations%s" % query_string, "migrations")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v1_1/keypairs.py new/python-novaclient-2.15.0/novaclient/v1_1/keypairs.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v1_1/keypairs.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/v1_1/keypairs.py 2013-09-18 14:38:39.000000000 +0200
@@ -32,15 +32,7 @@
dico = 'keypair' in info and \
info['keypair'] or info
for (k, v) in dico.items():
- # NOTE(rpodolyaka): keypair name allows us to uniquely identify
- # a specific keypair, while its id attribute
- # is nothing more than an implementation
- # detail. We can safely omit the id attribute
- # here to ensure setattr() won't raise
- # AttributeError trying to set read-only
- # property id
- if k != 'id':
- setattr(self, k, v)
+ setattr(self, k, v)
@property
def id(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v1_1/quota_classes.py new/python-novaclient-2.15.0/novaclient/v1_1/quota_classes.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v1_1/quota_classes.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/v1_1/quota_classes.py 2013-09-18 14:38:39.000000000 +0200
@@ -58,7 +58,7 @@
'security_groups': security_groups,
'security_group_rules': security_group_rules}}
- for key in list(body['quota_class_set']):
+ for key in body['quota_class_set'].keys():
if body['quota_class_set'][key] is None:
body['quota_class_set'].pop(key)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v1_1/quotas.py new/python-novaclient-2.15.0/novaclient/v1_1/quotas.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v1_1/quotas.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/v1_1/quotas.py 2013-09-18 14:38:39.000000000 +0200
@@ -66,7 +66,7 @@
'security_group_rules': security_group_rules,
'force': force}}
- for key in list(body['quota_set']):
+ for key in body['quota_set'].keys():
if body['quota_set'][key] is None:
body['quota_set'].pop(key)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v1_1/shell.py new/python-novaclient-2.15.0/novaclient/v1_1/shell.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v1_1/shell.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/v1_1/shell.py 2013-09-18 14:38:39.000000000 +0200
@@ -206,8 +206,7 @@
block_device_mapping_v2 = _parse_block_device_mapping_v2(args, image)
- n_boot_args = len(list(filter(
- bool, (image, args.boot_volume, args.snapshot))))
+ n_boot_args = len(filter(None, (image, args.boot_volume, args.snapshot)))
have_bdm = block_device_mapping_v2 or block_device_mapping
# Fail if more than one boot devices are present
@@ -314,7 +313,7 @@
default=None,
type=int,
metavar='<number>',
- help="boot multiple servers at a time (limited by quota).")
+ help="boot multi instances at a time (limited by quota).")
@utils.arg('--meta',
metavar="",
action='append',
@@ -344,7 +343,7 @@
@utils.arg('--availability-zone',
default=None,
metavar='<availability-zone>',
- help="The availability zone for server placement.")
+ help="The availability zone for instance placement.")
@utils.arg('--availability_zone',
help=argparse.SUPPRESS)
@utils.arg('--security-groups',
@@ -414,7 +413,7 @@
dest='poll',
action="store_true",
default=False,
- help='Blocks while server builds so progress can be reported.')
+ help='Blocks while instance builds so progress can be reported.')
def do_boot(cs, args):
"""Boot a new server."""
boot_args, boot_kwargs = _boot(cs, args)
@@ -477,10 +476,10 @@
"""
def print_progress(progress):
if show_progress:
- msg = ('\rServer %(action)s... %(progress)s%% complete'
+ msg = ('\rInstance %(action)s... %(progress)s%% complete'
% dict(action=action, progress=progress))
else:
- msg = '\rServer %(action)s...' % dict(action=action)
+ msg = '\rInstance %(action)s...' % dict(action=action)
sys.stdout.write(msg)
sys.stdout.flush()
@@ -504,7 +503,7 @@
break
elif status == "error":
if not silent:
- print("\nError %s server" % action)
+ print("\nError %s instance" % action)
break
if not silent:
@@ -1022,7 +1021,7 @@
dest='reservation_id',
metavar='<reservation-id>',
default=None,
- help='Only return servers that match reservation-id.')
+ help='Only return instances that match reservation-id.')
@utils.arg('--reservation_id',
help=argparse.SUPPRESS)
@utils.arg('--ip',
@@ -1044,7 +1043,7 @@
dest='instance_name',
metavar='<name-regexp>',
default=None,
- help='Search with regular expression match by server name (Admin only).')
+ help='Search with regular expression match by instance name (Admin only).')
@utils.arg('--instance_name',
help=argparse.SUPPRESS)
@utils.arg('--status',
@@ -1066,7 +1065,7 @@
dest='host',
metavar='<hostname>',
default=None,
- help='Search servers by hostname to which they are assigned '
+ help='Search instances by hostname to which they are assigned '
'(Admin only).')
@utils.arg('--all-tenants',
dest='all_tenants',
@@ -1092,11 +1091,6 @@
metavar='<fields>',
help='Comma-separated list of fields to display. '
'Use the show command to see which fields are available.')
-@utils.arg('--minimal',
- dest='minimal',
- action="store_true",
- default=False,
- help='Get only uuid and name.')
def do_list(cs, args):
"""List active servers."""
imageid = None
@@ -1132,10 +1126,7 @@
id_col = 'ID'
- detailed = not args.minimal
-
- servers = cs.servers.list(detailed=detailed,
- search_opts=search_opts)
+ servers = cs.servers.list(search_opts=search_opts)
convert = [('OS-EXT-SRV-ATTR:host', 'host'),
('OS-EXT-STS:task_state', 'task_state'),
('OS-EXT-SRV-ATTR:instance_name', 'instance_name'),
@@ -1143,11 +1134,7 @@
('hostId', 'host_id')]
_translate_keys(servers, convert)
_translate_extended_states(servers)
- if args.minimal:
- columns = [
- id_col,
- 'Name']
- elif field_titles:
+ if field_titles:
columns = [id_col] + field_titles
else:
columns = [
@@ -1174,7 +1161,7 @@
dest='poll',
action="store_true",
default=False,
- help='Blocks while server is rebooting.')
+ help='Blocks while instance is rebooting.')
def do_reboot(cs, args):
"""Reboot a server."""
server = _find_server(cs, args.server)
@@ -1191,19 +1178,19 @@
dest='rebuild_password',
metavar='<rebuild-password>',
default=False,
- help="Set the provided password on the rebuild server.")
+ help="Set the provided password on the rebuild instance.")
@utils.arg('--rebuild_password',
help=argparse.SUPPRESS)
@utils.arg('--poll',
dest='poll',
action="store_true",
default=False,
- help='Blocks while server rebuilds so progress can be reported.')
+ help='Blocks while instance rebuilds so progress can be reported.')
@utils.arg('--minimal',
dest='minimal',
action="store_true",
default=False,
- help='Skips flavor/image lookups when showing servers')
+ help='Skips flavor/image lookups when showing instances')
def do_rebuild(cs, args):
"""Shutdown, re-image, and re-boot a server."""
server = _find_server(cs, args.server)
@@ -1236,7 +1223,7 @@
dest='poll',
action="store_true",
default=False,
- help='Blocks while servers resizes so progress can be reported.')
+ help='Blocks while instance resizes so progress can be reported.')
def do_resize(cs, args):
"""Resize a server."""
server = _find_server(cs, args.server)
@@ -1265,7 +1252,7 @@
dest='poll',
action="store_true",
default=False,
- help='Blocks while server migrates so progress can be reported.')
+ help='Blocks while instance migrates so progress can be reported.')
def do_migrate(cs, args):
"""Migrate a server. The new host will be selected by the scheduler."""
server = _find_server(cs, args.server)
@@ -1362,7 +1349,7 @@
dest='poll',
action="store_true",
default=False,
- help='Blocks while server snapshots so progress can be reported.')
+ help='Blocks while instance snapshots so progress can be reported.')
def do_image_create(cs, args):
"""Create a new image by taking a snapshot of a running server."""
server = _find_server(cs, args.server)
@@ -1395,7 +1382,7 @@
@utils.arg('rotation', metavar='<rotation>',
help='Int parameter representing how many backups to keep around.')
def do_backup(cs, args):
- """Backup a server by creating a 'backup' type snapshot."""
+ """Backup a instance by create a 'backup' type snapshot."""
_find_server(cs, args.server).backup(args.name,
args.backup_type,
args.rotation)
@@ -1470,7 +1457,7 @@
dest='minimal',
action="store_true",
default=False,
- help='Skips flavor/image lookups when showing servers')
+ help='Skips flavor/image lookups when showing instances')
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
def do_show(cs, args):
"""Show details about the given server."""
@@ -1742,7 +1729,7 @@
@utils.arg('--force',
metavar='',
help='Optional flag to indicate whether to snapshot a volume even if its '
- 'attached to a server. (Default=False)',
+ 'attached to an instance. (Default=False)',
default=False)
@utils.arg('--display-name',
metavar='<display-name>',
@@ -1859,7 +1846,7 @@
def _print_floating_ip_list(floating_ips):
- utils.print_list(floating_ips, ['Ip', 'Server Id', 'Fixed Ip', 'Pool'])
+ utils.print_list(floating_ips, ['Ip', 'Instance Id', 'Fixed Ip', 'Pool'])
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
@@ -2033,7 +2020,7 @@
@utils.arg('--availability-zone',
metavar='<availability-zone>',
default=None,
- help='Limit access to this domain to servers '
+ help='Limit access to this domain to instances '
'in the specified availability zone.')
@utils.arg('--availability_zone',
help=argparse.SUPPRESS)
@@ -2305,7 +2292,7 @@
@utils.arg('--pub_key',
help=argparse.SUPPRESS)
def do_keypair_add(cs, args):
- """Create a new key pair for use with servers."""
+ """Create a new key pair for use with instances."""
name = args.name
pub_key = args.pub_key
@@ -2388,7 +2375,7 @@
def do_usage_list(cs, args):
"""List usage data for all tenants."""
dateformat = "%Y-%m-%d"
- rows = ["Tenant ID", "Servers", "RAM MB-Hours", "CPU Hours",
+ rows = ["Tenant ID", "Instances", "RAM MB-Hours", "CPU Hours",
"Disk GB-Hours"]
now = timeutils.utcnow()
@@ -2435,7 +2422,7 @@
def do_usage(cs, args):
"""Show usage data for a single tenant."""
dateformat = "%Y-%m-%d"
- rows = ["Servers", "RAM MB-Hours", "CPU Hours", "Disk GB-Hours"]
+ rows = ["Instances", "RAM MB-Hours", "CPU Hours", "Disk GB-Hours"]
now = timeutils.utcnow()
@@ -2691,7 +2678,7 @@
action='store_true',
help=argparse.SUPPRESS)
def do_live_migration(cs, args):
- """Migrate running server to a new machine."""
+ """Migrate running instance to a new machine."""
_find_server(cs, args.server).live_migrate(args.host,
args.block_migrate,
args.disk_over_commit)
@@ -2700,16 +2687,16 @@
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
@utils.arg('--active', action='store_const', dest='state',
default='error', const='active',
- help='Request the server be reset to "active" state instead '
+ help='Request the instance be reset to "active" state instead '
'of "error" state (the default).')
def do_reset_state(cs, args):
- """Reset the state of a server."""
+ """Reset the state of an instance."""
_find_server(cs, args.server).reset_state(args.state)
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
def do_reset_network(cs, args):
- """Reset network of a server."""
+ """Reset network of an instance."""
_find_server(cs, args.server).reset_network()
@@ -2885,7 +2872,7 @@
@utils.arg('hostname', metavar='<hostname>',
help='The hypervisor hostname (or pattern) to search for.')
def do_hypervisor_servers(cs, args):
- """List servers belonging to specific hypervisors."""
+ """List instances belonging to specific hypervisors."""
hypers = cs.hypervisors.search(args.hostname, servers=True)
class InstanceOnHyper(object):
@@ -2983,13 +2970,13 @@
action='store_true',
default=False,
help='Optional flag to indicate whether to use private address '
- 'attached to a server. (Default=False)')
+ 'attached to an instance. (Default=False)')
@utils.arg('--ipv6',
dest='ipv6',
action='store_true',
default=False,
help='Optional flag to indicate whether to use an IPv6 address '
- 'attached to a server. (Defaults to IPv4 address)')
+ 'attached to an instance. (Defaults to IPv4 address)')
@utils.arg('--login', metavar='<login>', help='Login to use.', default="root")
@utils.arg('-i', '--identity',
dest='identity',
@@ -3308,13 +3295,13 @@
dest='password',
metavar='<password>',
default=None,
- help="Set the provided password on the evacuated server. Not applicable "
+ help="Set the provided password on the evacuated instance. Not applicable "
"with on-shared-storage flag")
@utils.arg('--on-shared-storage',
dest='on_shared_storage',
action="store_true",
default=False,
- help='Specifies whether server files are located on shared storage')
+ help='Specifies whether instance files located on shared storage')
def do_evacuate(cs, args):
"""Evacuate server from failed host to specified one."""
server = _find_server(cs, args.server)
@@ -3341,7 +3328,7 @@
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
def do_interface_list(cs, args):
- """List interfaces attached to a server."""
+ """List interfaces attached to an instance."""
server = _find_server(cs, args.server)
res = server.interface_list()
@@ -3356,7 +3343,7 @@
@utils.arg('--fixed-ip', metavar='', help='Requested fixed IP.',
default=None, dest="fixed_ip")
def do_interface_attach(cs, args):
- """Attach a network interface to a server."""
+ """Attach a network interface to an instance."""
server = _find_server(cs, args.server)
res = server.interface_attach(args.port_id, args.net_id, args.fixed_ip)
@@ -3367,7 +3354,7 @@
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
@utils.arg('port_id', metavar='', help='Port ID.')
def do_interface_detach(cs, args):
- """Detach a network interface from a server."""
+ """Detach a network interface from an instance."""
server = _find_server(cs, args.server)
res = server.interface_detach(args.port_id)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v3/client.py new/python-novaclient-2.15.0/novaclient/v3/client.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v3/client.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/v3/client.py 2013-09-18 14:38:39.000000000 +0200
@@ -15,7 +15,6 @@
# under the License.
from novaclient import client
-from novaclient.v3 import hosts
class Client(object):
@@ -46,11 +45,7 @@
http_log_debug=False, auth_system='keystone',
auth_plugin=None,
cacert=None, tenant_id=None):
- self.projectid = project_id
- self.tenant_id = tenant_id
- self.os_cache = os_cache or not no_cache
#TODO(bnemec): Add back in v3 extensions
- self.hosts = hosts.HostManager(self)
# Add in any extensions...
if extensions:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v3/hosts.py new/python-novaclient-2.15.0/novaclient/v3/hosts.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v3/hosts.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/v3/hosts.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,35 +0,0 @@
-# Copyright 2013 OpenStack Foundation
-#
-# 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.
-
-""" V3 API versions of the Hosts interface.
-
-Inherits from the 1.1 code because a lot of the functionality is shared.
-"""
-
-from novaclient.v1_1 import hosts
-
-
-Host = hosts.Host
-
-
-class HostManager(hosts.HostManager):
- def update(self, host, values):
- """Update status or maintenance mode for the host."""
- body = dict(host=values)
- return self._update("/os-hosts/%s" % host, body, response_key='host')
-
- def host_action(self, host, action):
- """Perform an action on a host."""
- url = '/os-hosts/{0}/{1}'.format(host, action)
- return self._get(url, response_key='host')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v3/shell.py new/python-novaclient-2.15.0/novaclient/v3/shell.py
--- old/python-novaclient-2.15.0.22.g2ab3344/novaclient/v3/shell.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/novaclient/v3/shell.py 2013-09-18 14:38:39.000000000 +0200
@@ -222,7 +222,7 @@
default=None,
type=int,
metavar='<number>',
- help="boot multiple servers at a time (limited by quota).")
+ help="boot multi instances at a time (limited by quota).")
@utils.arg('--meta',
metavar="",
action='append',
@@ -252,7 +252,7 @@
@utils.arg('--availability-zone',
default=None,
metavar='<availability-zone>',
- help="The availability zone for server placement.")
+ help="The availability zone for instance placement.")
@utils.arg('--availability_zone',
help=argparse.SUPPRESS)
@utils.arg('--security-groups',
@@ -297,7 +297,7 @@
dest='poll',
action="store_true",
default=False,
- help='Blocks while server builds so progress can be reported.')
+ help='Blocks while instance builds so progress can be reported.')
def do_boot(cs, args):
"""Boot a new server."""
boot_args, boot_kwargs = _boot(cs, args)
@@ -360,10 +360,10 @@
"""
def print_progress(progress):
if show_progress:
- msg = ('\rServer %(action)s... %(progress)s%% complete'
+ msg = ('\rInstance %(action)s... %(progress)s%% complete'
% dict(action=action, progress=progress))
else:
- msg = '\rServer %(action)s...' % dict(action=action)
+ msg = '\rInstance %(action)s...' % dict(action=action)
sys.stdout.write(msg)
sys.stdout.flush()
@@ -387,7 +387,7 @@
break
elif status == "error":
if not silent:
- print("\nError %s server" % action)
+ print("\nError %s instance" % action)
break
if not silent:
@@ -905,7 +905,7 @@
dest='reservation_id',
metavar='<reservation-id>',
default=None,
- help='Only return servers that match reservation-id.')
+ help='Only return instances that match reservation-id.')
@utils.arg('--reservation_id',
help=argparse.SUPPRESS)
@utils.arg('--ip',
@@ -927,7 +927,7 @@
dest='instance_name',
metavar='<name-regexp>',
default=None,
- help='Search with regular expression match by server name (Admin only).')
+ help='Search with regular expression match by instance name (Admin only).')
@utils.arg('--instance_name',
help=argparse.SUPPRESS)
@utils.arg('--status',
@@ -949,7 +949,7 @@
dest='host',
metavar='<hostname>',
default=None,
- help='Search servers by hostname to which they are assigned '
+ help='Search instances by hostname to which they are assigned '
'(Admin only).')
@utils.arg('--all-tenants',
dest='all_tenants',
@@ -975,11 +975,6 @@
metavar='<fields>',
help='Comma-separated list of fields to display. '
'Use the show command to see which fields are available.')
-@utils.arg('--minimal',
- dest='minimal',
- action="store_true",
- default=False,
- help='Get only uuid and name.')
def do_list(cs, args):
"""List active servers."""
imageid = None
@@ -1015,10 +1010,7 @@
id_col = 'ID'
- detailed = not args.minimal
-
- servers = cs.servers.list(detailed=detailed,
- search_opts=search_opts)
+ servers = cs.servers.list(search_opts=search_opts)
convert = [('OS-EXT-SRV-ATTR:host', 'host'),
('OS-EXT-STS:task_state', 'task_state'),
('OS-EXT-SRV-ATTR:instance_name', 'instance_name'),
@@ -1026,11 +1018,7 @@
('hostId', 'host_id')]
_translate_keys(servers, convert)
_translate_extended_states(servers)
- if args.minimal:
- columns = [
- id_col,
- 'Name']
- elif field_titles:
+ if field_titles:
columns = [id_col] + field_titles
else:
columns = [
@@ -1057,7 +1045,7 @@
dest='poll',
action="store_true",
default=False,
- help='Blocks while server is rebooting.')
+ help='Blocks while instance is rebooting.')
def do_reboot(cs, args):
"""Reboot a server."""
server = _find_server(cs, args.server)
@@ -1074,19 +1062,19 @@
dest='rebuild_password',
metavar='<rebuild-password>',
default=False,
- help="Set the provided password on the rebuild server.")
+ help="Set the provided password on the rebuild instance.")
@utils.arg('--rebuild_password',
help=argparse.SUPPRESS)
@utils.arg('--poll',
dest='poll',
action="store_true",
default=False,
- help='Blocks while server rebuilds so progress can be reported.')
+ help='Blocks while instance rebuilds so progress can be reported.')
@utils.arg('--minimal',
dest='minimal',
action="store_true",
default=False,
- help='Skips flavor/image lookups when showing servers')
+ help='Skips flavor/image lookups when showing instances')
def do_rebuild(cs, args):
"""Shutdown, re-image, and re-boot a server."""
server = _find_server(cs, args.server)
@@ -1119,7 +1107,7 @@
dest='poll',
action="store_true",
default=False,
- help='Blocks while server resizes so progress can be reported.')
+ help='Blocks while instance resizes so progress can be reported.')
def do_resize(cs, args):
"""Resize a server."""
server = _find_server(cs, args.server)
@@ -1148,7 +1136,7 @@
dest='poll',
action="store_true",
default=False,
- help='Blocks while server migrates so progress can be reported.')
+ help='Blocks while instance migrates so progress can be reported.')
def do_migrate(cs, args):
"""Migrate a server. The new host will be selected by the scheduler."""
server = _find_server(cs, args.server)
@@ -1245,7 +1233,7 @@
dest='poll',
action="store_true",
default=False,
- help='Blocks while server snapshots so progress can be reported.')
+ help='Blocks while instance snapshots so progress can be reported.')
def do_image_create(cs, args):
"""Create a new image by taking a snapshot of a running server."""
server = _find_server(cs, args.server)
@@ -1278,7 +1266,7 @@
@utils.arg('rotation', metavar='<rotation>',
help='Int parameter representing how many backups to keep around.')
def do_backup(cs, args):
- """Backup a server by creating a 'backup' type snapshot."""
+ """Backup a instance by create a 'backup' type snapshot."""
_find_server(cs, args.server).backup(args.name,
args.backup_type,
args.rotation)
@@ -1353,7 +1341,7 @@
dest='minimal',
action="store_true",
default=False,
- help='Skips flavor/image lookups when showing servers')
+ help='Skips flavor/image lookups when showing instances')
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
def do_show(cs, args):
"""Show details about the given server."""
@@ -1600,7 +1588,7 @@
@utils.arg('--force',
metavar='',
help='Optional flag to indicate whether to snapshot a volume even if its '
- 'attached to a server. (Default=False)',
+ 'attached to an instance. (Default=False)',
default=False)
@utils.arg('--display-name',
metavar='<display-name>',
@@ -1717,7 +1705,7 @@
def _print_floating_ip_list(floating_ips):
- utils.print_list(floating_ips, ['Ip', 'Server Id', 'Fixed Ip', 'Pool'])
+ utils.print_list(floating_ips, ['Ip', 'Instance Id', 'Fixed Ip', 'Pool'])
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
@@ -1883,7 +1871,7 @@
@utils.arg('--availability-zone',
metavar='<availability-zone>',
default=None,
- help='Limit access to this domain to servers '
+ help='Limit access to this domain to instances '
'in the specified availability zone.')
@utils.arg('--availability_zone',
help=argparse.SUPPRESS)
@@ -2155,7 +2143,7 @@
@utils.arg('--pub_key',
help=argparse.SUPPRESS)
def do_keypair_add(cs, args):
- """Create a new key pair for use with servers."""
+ """Create a new key pair for use with instances."""
name = args.name
pub_key = args.pub_key
@@ -2238,7 +2226,7 @@
def do_usage_list(cs, args):
"""List usage data for all tenants."""
dateformat = "%Y-%m-%d"
- rows = ["Tenant ID", "Servers", "RAM MB-Hours", "CPU Hours",
+ rows = ["Tenant ID", "Instances", "RAM MB-Hours", "CPU Hours",
"Disk GB-Hours"]
now = timeutils.utcnow()
@@ -2285,7 +2273,7 @@
def do_usage(cs, args):
"""Show usage data for a single tenant."""
dateformat = "%Y-%m-%d"
- rows = ["Servers", "RAM MB-Hours", "CPU Hours", "Disk GB-Hours"]
+ rows = ["Instances", "RAM MB-Hours", "CPU Hours", "Disk GB-Hours"]
now = timeutils.utcnow()
@@ -2541,7 +2529,7 @@
action='store_true',
help=argparse.SUPPRESS)
def do_live_migration(cs, args):
- """Migrate running server to a new machine."""
+ """Migrate running instance to a new machine."""
_find_server(cs, args.server).live_migrate(args.host,
args.block_migrate,
args.disk_over_commit)
@@ -2550,16 +2538,16 @@
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
@utils.arg('--active', action='store_const', dest='state',
default='error', const='active',
- help='Request the server be reset to "active" state instead '
+ help='Request the instance be reset to "active" state instead '
'of "error" state (the default).')
def do_reset_state(cs, args):
- """Reset the state of a server."""
+ """Reset the state of an instance."""
_find_server(cs, args.server).reset_state(args.state)
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
def do_reset_network(cs, args):
- """Reset network of a server."""
+ """Reset network of an instance."""
_find_server(cs, args.server).reset_network()
@@ -2735,7 +2723,7 @@
@utils.arg('hostname', metavar='<hostname>',
help='The hypervisor hostname (or pattern) to search for.')
def do_hypervisor_servers(cs, args):
- """List servers belonging to specific hypervisors."""
+ """List instances belonging to specific hypervisors."""
hypers = cs.hypervisors.search(args.hostname, servers=True)
class InstanceOnHyper(object):
@@ -2833,13 +2821,13 @@
action='store_true',
default=False,
help='Optional flag to indicate whether to use private address '
- 'attached to a server. (Default=False)')
+ 'attached to an instance. (Default=False)')
@utils.arg('--ipv6',
dest='ipv6',
action='store_true',
default=False,
help='Optional flag to indicate whether to use an IPv6 address '
- 'attached to a server. (Defaults to IPv4 address)')
+ 'attached to an instance. (Defaults to IPv4 address)')
@utils.arg('--login', metavar='<login>', help='Login to use.', default="root")
@utils.arg('-i', '--identity',
dest='identity',
@@ -3136,13 +3124,13 @@
dest='password',
metavar='<password>',
default=None,
- help="Set the provided password on the evacuated server. Not applicable "
+ help="Set the provided password on the evacuated instance. Not applicable "
"with on-shared-storage flag")
@utils.arg('--on-shared-storage',
dest='on_shared_storage',
action="store_true",
default=False,
- help='Specifies whether server files are located on shared storage')
+ help='Specifies whether instance files located on shared storage')
def do_evacuate(cs, args):
"""Evacuate server from failed host to specified one."""
server = _find_server(cs, args.server)
@@ -3169,7 +3157,7 @@
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
def do_interface_list(cs, args):
- """List interfaces attached to a server."""
+ """List interfaces attached to an instance."""
server = _find_server(cs, args.server)
res = server.interface_list()
@@ -3184,7 +3172,7 @@
@utils.arg('--fixed-ip', metavar='', help='Requested fixed IP.',
default=None, dest="fixed_ip")
def do_interface_attach(cs, args):
- """Attach a network interface to a server."""
+ """Attach a network interface to an instance."""
server = _find_server(cs, args.server)
res = server.interface_attach(args.port_id, args.net_id, args.fixed_ip)
@@ -3195,7 +3183,7 @@
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
@utils.arg('port_id', metavar='', help='Port ID.')
def do_interface_detach(cs, args):
- """Detach a network interface from a server."""
+ """Detach a network interface from an instance."""
server = _find_server(cs, args.server)
res = server.interface_detach(args.port_id)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/python_novaclient.egg-info/PKG-INFO new/python-novaclient-2.15.0/python_novaclient.egg-info/PKG-INFO
--- old/python-novaclient-2.15.0.22.g2ab3344/python_novaclient.egg-info/PKG-INFO 2013-09-24 23:14:55.000000000 +0200
+++ new/python-novaclient-2.15.0/python_novaclient.egg-info/PKG-INFO 2013-09-18 14:39:10.000000000 +0200
@@ -1,8 +1,8 @@
Metadata-Version: 1.1
Name: python-novaclient
-Version: 2.15.0.22.g2ab3344
+Version: 2.15.0
Summary: Client library for OpenStack Compute API
-Home-page: https://git.openstack.org/cgit/openstack/python-novaclient
+Home-page: https://github.com/openstack/python-novaclient
Author: OpenStack
Author-email: openstack-dev@lists.openstack.org
License: Apache License, Version 2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/python_novaclient.egg-info/SOURCES.txt new/python-novaclient-2.15.0/python_novaclient.egg-info/SOURCES.txt
--- old/python-novaclient-2.15.0.22.g2ab3344/python_novaclient.egg-info/SOURCES.txt 2013-09-24 23:14:56.000000000 +0200
+++ new/python-novaclient-2.15.0/python_novaclient.egg-info/SOURCES.txt 2013-09-18 14:39:10.000000000 +0200
@@ -102,9 +102,6 @@
novaclient/tests/v1_1/contrib/test_list_extensions.py
novaclient/tests/v1_1/contrib/test_migrations.py
novaclient/tests/v1_1/contrib/test_tenant_networks.py
-novaclient/tests/v3/__init__.py
-novaclient/tests/v3/fakes.py
-novaclient/tests/v3/test_hosts.py
novaclient/v1_1/__init__.py
novaclient/v1_1/agents.py
novaclient/v1_1/aggregates.py
@@ -153,7 +150,6 @@
novaclient/v1_1/contrib/tenant_networks.py
novaclient/v3/__init__.py
novaclient/v3/client.py
-novaclient/v3/hosts.py
novaclient/v3/shell.py
python_novaclient.egg-info/PKG-INFO
python_novaclient.egg-info/SOURCES.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/setup.cfg new/python-novaclient-2.15.0/setup.cfg
--- old/python-novaclient-2.15.0.22.g2ab3344/setup.cfg 2013-09-24 23:14:56.000000000 +0200
+++ new/python-novaclient-2.15.0/setup.cfg 2013-09-18 14:39:10.000000000 +0200
@@ -6,7 +6,7 @@
license = Apache License, Version 2.0
author = OpenStack
author-email = openstack-dev@lists.openstack.org
-home-page = https://git.openstack.org/cgit/openstack/python-novaclient
+home-page = https://github.com/openstack/python-novaclient
classifier =
Development Status :: 5 - Production/Stable
Environment :: Console
@@ -21,6 +21,10 @@
packages =
novaclient
+[global]
+setup-hooks =
+ pbr.hooks.setup_hook
+
[entry_points]
console_scripts =
nova = novaclient.shell:main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-novaclient-2.15.0.22.g2ab3344/setup.py new/python-novaclient-2.15.0/setup.py
--- old/python-novaclient-2.15.0.22.g2ab3344/setup.py 2013-09-24 23:14:24.000000000 +0200
+++ new/python-novaclient-2.15.0/setup.py 2013-09-18 14:38:39.000000000 +0200
@@ -18,5 +18,5 @@
import setuptools
setuptools.setup(
- setup_requires=['pbr'],
+ setup_requires=['pbr>=0.5.21,<1.0'],
pbr=True)
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org