Merge "Add changes-since support when list servers"
This commit is contained in:
commit
a4d2d0ce83
novaclient
@ -13,6 +13,7 @@
|
|||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
from novaclient.tests.functional import base
|
from novaclient.tests.functional import base
|
||||||
|
from oslo_utils import timeutils
|
||||||
|
|
||||||
|
|
||||||
class TestServersBootNovaClient(base.ClientTestBase):
|
class TestServersBootNovaClient(base.ClientTestBase):
|
||||||
@ -84,6 +85,16 @@ class TestServersListNovaClient(base.ClientTestBase):
|
|||||||
servers = output.split("\n")[3:-2]
|
servers = output.split("\n")[3:-2]
|
||||||
self.assertEqual(1, len(servers), output)
|
self.assertEqual(1, len(servers), output)
|
||||||
|
|
||||||
|
def test_list_with_changes_since(self):
|
||||||
|
now = timeutils.isotime()
|
||||||
|
name = str(uuid.uuid4())
|
||||||
|
self._create_servers(name, 1)
|
||||||
|
output = self.nova("list", params="--changes-since %s" % now)
|
||||||
|
self.assertIn(name, output, output)
|
||||||
|
now = timeutils.isotime()
|
||||||
|
output = self.nova("list", params="--changes-since %s" % now)
|
||||||
|
self.assertNotIn(name, output, output)
|
||||||
|
|
||||||
def test_list_all_servers(self):
|
def test_list_all_servers(self):
|
||||||
name = str(uuid.uuid4())
|
name = str(uuid.uuid4())
|
||||||
precreated_servers = self._create_servers(name, 3)
|
precreated_servers = self._create_servers(name, 3)
|
||||||
|
@ -1070,6 +1070,15 @@ class ShellTest(utils.TestCase):
|
|||||||
self.run_command('list --limit 3')
|
self.run_command('list --limit 3')
|
||||||
self.assert_called('GET', '/servers/detail?limit=3')
|
self.assert_called('GET', '/servers/detail?limit=3')
|
||||||
|
|
||||||
|
def test_list_with_changes_since(self):
|
||||||
|
self.run_command('list --changes-since 2016-02-29T06:23:22')
|
||||||
|
self.assert_called(
|
||||||
|
'GET', '/servers/detail?changes-since=2016-02-29T06%3A23%3A22')
|
||||||
|
|
||||||
|
def test_list_with_changes_since_invalid_value(self):
|
||||||
|
self.assertRaises(exceptions.CommandError,
|
||||||
|
self.run_command, 'list --changes-since 0123456789')
|
||||||
|
|
||||||
def test_meta_parsing(self):
|
def test_meta_parsing(self):
|
||||||
meta = ['key1=meta1', 'key2=meta2']
|
meta = ['key1=meta1', 'key2=meta2']
|
||||||
ref = {'key1': 'meta1', 'key2': 'meta2'}
|
ref = {'key1': 'meta1', 'key2': 'meta2'}
|
||||||
|
@ -1464,6 +1464,14 @@ def do_image_delete(cs, args):
|
|||||||
"will be displayed. If limit is bigger than 'osapi_max_limit' "
|
"will be displayed. If limit is bigger than 'osapi_max_limit' "
|
||||||
"option of Nova API, limit 'osapi_max_limit' will be used "
|
"option of Nova API, limit 'osapi_max_limit' will be used "
|
||||||
"instead."))
|
"instead."))
|
||||||
|
@utils.arg(
|
||||||
|
'--changes-since',
|
||||||
|
dest='changes_since',
|
||||||
|
metavar='<changes_since>',
|
||||||
|
default=None,
|
||||||
|
help=_("List only servers changed after a certain point of time."
|
||||||
|
"The provided time should be an ISO 8061 formated time."
|
||||||
|
"ex 2016-03-04T06:27:59Z ."))
|
||||||
def do_list(cs, args):
|
def do_list(cs, args):
|
||||||
"""List active servers."""
|
"""List active servers."""
|
||||||
imageid = None
|
imageid = None
|
||||||
@ -1488,7 +1496,8 @@ def do_list(cs, args):
|
|||||||
'user_id': args.user,
|
'user_id': args.user,
|
||||||
'host': args.host,
|
'host': args.host,
|
||||||
'deleted': args.deleted,
|
'deleted': args.deleted,
|
||||||
'instance_name': args.instance_name}
|
'instance_name': args.instance_name,
|
||||||
|
'changes-since': args.changes_since}
|
||||||
|
|
||||||
filters = {'flavor': lambda f: f['id'],
|
filters = {'flavor': lambda f: f['id'],
|
||||||
'security_groups': utils._format_security_groups}
|
'security_groups': utils._format_security_groups}
|
||||||
@ -1510,6 +1519,13 @@ def do_list(cs, args):
|
|||||||
sort_keys.append(sort_key)
|
sort_keys.append(sort_key)
|
||||||
sort_dirs.append(sort_dir)
|
sort_dirs.append(sort_dir)
|
||||||
|
|
||||||
|
if search_opts['changes-since']:
|
||||||
|
try:
|
||||||
|
timeutils.parse_isotime(search_opts['changes-since'])
|
||||||
|
except ValueError:
|
||||||
|
raise exceptions.CommandError(_('Invalid changes-since value: %s')
|
||||||
|
% search_opts['changes-since'])
|
||||||
|
|
||||||
servers = cs.servers.list(detailed=detailed,
|
servers = cs.servers.list(detailed=detailed,
|
||||||
search_opts=search_opts,
|
search_opts=search_opts,
|
||||||
sort_keys=sort_keys,
|
sort_keys=sort_keys,
|
||||||
@ -1560,6 +1576,8 @@ def do_list(cs, args):
|
|||||||
# Tenant ID as well
|
# Tenant ID as well
|
||||||
if search_opts['all_tenants']:
|
if search_opts['all_tenants']:
|
||||||
columns.insert(2, 'Tenant ID')
|
columns.insert(2, 'Tenant ID')
|
||||||
|
if search_opts['changes-since']:
|
||||||
|
columns.append('Updated')
|
||||||
formatters['Networks'] = utils._format_servers_list_networks
|
formatters['Networks'] = utils._format_servers_list_networks
|
||||||
sortby_index = 1
|
sortby_index = 1
|
||||||
if args.sort:
|
if args.sort:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user