diff options
-rw-r--r-- | docs/conf.py | 2 | ||||
-rw-r--r-- | novaclient/shell.py | 19 | ||||
-rw-r--r-- | setup.py | 2 | ||||
-rw-r--r-- | tests/test_shell.py | 13 |
4 files changed, 21 insertions, 15 deletions
diff --git a/docs/conf.py b/docs/conf.py index 58428455..d8bbb5f0 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -47,7 +47,7 @@ copyright = u'Rackspace, based on work by Jacob Kaplan-Moss' # The short X.Y version. version = '2.5' # The full version, including alpha/beta/rc tags. -release = '2.5.4' +release = '2.5.5' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/novaclient/shell.py b/novaclient/shell.py index 0bd5ee97..4445680f 100644 --- a/novaclient/shell.py +++ b/novaclient/shell.py @@ -227,11 +227,8 @@ class OpenStackShell(object): server = self._find_server(args.server) server.backup_schedule.delete() - def _boot(self, args, reservation_id=None): + def _boot(self, args, reservation_id=None, min_count=1, max_count=1): """Boot a new server.""" - min_count = args.min_instances - max_count = args.max_instances or min_count - if max_count > min_count: raise CommandError("min_instances should be <= max_instances") if not min_count or not max_count: @@ -319,8 +316,8 @@ class OpenStackShell(object): @arg('name', metavar='<name>', help='Name for the new server') def do_boot(self, args): """Boot a new server.""" - name, image, flavor, ipgroup, metadata, files, reservation_id = \ - self._boot(args) + name, image, flavor, ipgroup, metadata, files, reservation_id, \ + min_count, max_count = self._boot(args) server = self.cs.servers.create(args.name, image, flavor, ipgroup=ipgroup, @@ -369,8 +366,8 @@ class OpenStackShell(object): @arg('name', metavar='<name>', help='Name for the new server') def do_boot_for_account(self, args): """Boot a new server in an account.""" - name, image, flavor, ipgroup, metadata, files, reservation_id = \ - self._boot(args) + name, image, flavor, ipgroup, metadata, files, reservation_id, \ + min_count, max_count = self._boot(args) server = self.cs.accounts.create_instance_for(args.account, args.name, image, flavor, @@ -432,10 +429,14 @@ class OpenStackShell(object): def do_zone_boot(self, args): """Boot a new server, potentially across Zones.""" reservation_id = args.reservation_id + min_count = args.min_instances + max_count = args.max_instances name, image, flavor, ipgroup, metadata, \ files, reservation_id, min_count, max_count = \ self._boot(args, - reservation_id=reservation_id) + reservation_id=reservation_id, + min_count=min_count, + max_count=max_count) reservation_id = self.cs.zones.boot(args.name, image, flavor, ipgroup=ipgroup, @@ -11,7 +11,7 @@ if sys.version_info < (2,6): setup( name = "python-novaclient", - version = "2.5.4", + version = "2.5.5", description = "Client library for OpenStack Nova API", long_description = read('README.rst'), url = 'https://github.com/rackspace/python-novaclient', diff --git a/tests/test_shell.py b/tests/test_shell.py index 2862eedb..e7009d8b 100644 --- a/tests/test_shell.py +++ b/tests/test_shell.py @@ -69,14 +69,16 @@ def test_boot(): shell('boot --image 1 some-server') assert_called( 'POST', '/servers', - {'server': {'flavorId': 1, 'name': 'some-server', 'imageId': '1'}} + {'server': {'flavorId': 1, 'name': 'some-server', 'imageId': '1', + 'min_count': 1, 'max_count': 1}} ) shell('boot --image 1 --meta foo=bar --meta spam=eggs some-server ') assert_called( 'POST', '/servers', {'server': {'flavorId': 1, 'name': 'some-server', 'imageId': '1', - 'metadata': {'foo': 'bar', 'spam': 'eggs'}}} + 'min_count': 1, 'max_count': 1, + 'metadata': {'foo': 'bar', 'spam': 'eggs'}}} ) @@ -90,6 +92,7 @@ def test_boot_files(): assert_called( 'POST', '/servers', {'server': {'flavorId': 1, 'name': 'some-server', 'imageId': '1', + 'min_count': 1, 'max_count': 1, 'personality': [ {'path': '/tmp/bar', 'contents': expected_file_data}, {'path': '/tmp/foo', 'contents': expected_file_data} @@ -117,6 +120,7 @@ def test_boot_key_auto(): assert_called( 'POST', '/servers', {'server': {'flavorId': 1, 'name': 'some-server', 'imageId': '1', + 'min_count': 1, 'max_count': 1, 'personality': [{ 'path': '/root/.ssh/authorized_keys2', 'contents': ('SSHKEY').encode('base64')}, @@ -144,6 +148,7 @@ def test_boot_key_file(): assert_called( 'POST', '/servers', {'server': {'flavorId': 1, 'name': 'some-server', 'imageId': '1', + 'min_count': 1, 'max_count': 1, 'personality': [ {'path': '/root/.ssh/authorized_keys2', 'contents': expected_file_data}, @@ -163,7 +168,7 @@ def test_boot_ipgroup(): assert_called( 'POST', '/servers', {'server': {'flavorId': 1, 'name': 'some-server', 'imageId': '1', - 'sharedIpGroupId': 1}} + 'sharedIpGroupId': 1, 'min_count': 1, 'max_count': 1}} ) @@ -172,7 +177,7 @@ def test_boot_ipgroup_name(): assert_called( 'POST', '/servers', {'server': {'flavorId': 1, 'name': 'some-server', 'imageId': '1', - 'sharedIpGroupId': 1}} + 'sharedIpGroupId': 1, 'min_count': 1, 'max_count': 1}} ) |