summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/server.py92
1 files changed, 66 insertions, 26 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 875b9a13..c35f1dd2 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -747,6 +747,14 @@ class ListServer(lister.Lister):
default=False,
help=_('List additional fields in output'),
)
+ parser.add_argument(
+ '--marker',
+ metavar='<marker>',
+ default=None,
+ help=('The last server (name or ID) of the previous page. Display'
+ ' list of servers after marker. Display all servers if not'
+ ' specified.')
+ )
return parser
@utils.log_method(log)
@@ -830,7 +838,14 @@ class ListServer(lister.Lister):
'Networks',
)
mixed_case_fields = []
- data = compute_client.servers.list(search_opts=search_opts)
+
+ marker_id = None
+ if parsed_args.marker:
+ marker_id = utils.find_resource(compute_client.servers,
+ parsed_args.marker).id
+
+ data = compute_client.servers.list(search_opts=search_opts,
+ marker=marker_id)
return (column_headers,
(utils.get_item_properties(
s, columns,
@@ -1352,6 +1367,31 @@ class SetServer(command.Command):
raise exceptions.CommandError(msg)
+class ShelveServer(command.Command):
+ """Shelve server(s)"""
+
+ log = logging.getLogger(__name__ + '.ShelveServer')
+
+ def get_parser(self, prog_name):
+ parser = super(ShelveServer, self).get_parser(prog_name)
+ parser.add_argument(
+ 'server',
+ metavar='<server>',
+ nargs='+',
+ help=_('Server(s) to shelve (name or ID)'),
+ )
+ return parser
+
+ @utils.log_method(log)
+ def take_action(self, parsed_args):
+ compute_client = self.app.client_manager.compute
+ for server in parsed_args.server:
+ utils.find_resource(
+ compute_client.servers,
+ server,
+ ).shelve()
+
+
class ShowServer(show.ShowOne):
"""Show server details"""
@@ -1389,31 +1429,6 @@ class ShowServer(show.ShowOne):
return zip(*sorted(six.iteritems(data)))
-class ShelveServer(command.Command):
- """Shelve server(s)"""
-
- log = logging.getLogger(__name__ + '.ShelveServer')
-
- def get_parser(self, prog_name):
- parser = super(ShelveServer, self).get_parser(prog_name)
- parser.add_argument(
- 'server',
- metavar='<server>',
- nargs='+',
- help=_('Server(s) to shelve (name or ID)'),
- )
- return parser
-
- @utils.log_method(log)
- def take_action(self, parsed_args):
- compute_client = self.app.client_manager.compute
- for server in parsed_args.server:
- utils.find_resource(
- compute_client.servers,
- server,
- ).shelve()
-
-
class SshServer(command.Command):
"""Ssh to server"""
@@ -1748,3 +1763,28 @@ class UnsetServer(command.Command):
server,
parsed_args.property,
)
+
+
+class UnshelveServer(command.Command):
+ """Unshelve server(s)"""
+
+ log = logging.getLogger(__name__ + '.UnshelveServer')
+
+ def get_parser(self, prog_name):
+ parser = super(UnshelveServer, self).get_parser(prog_name)
+ parser.add_argument(
+ 'server',
+ metavar='<server>',
+ nargs='+',
+ help=_('Server(s) to unshelve (name or ID)'),
+ )
+ return parser
+
+ @utils.log_method(log)
+ def take_action(self, parsed_args):
+ compute_client = self.app.client_manager.compute
+ for server in parsed_args.server:
+ utils.find_resource(
+ compute_client.servers,
+ server,
+ ).unshelve()