summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/server.py62
1 files changed, 57 insertions, 5 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 151c6783..03419982 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -300,6 +300,39 @@ class AddPort(command.Command):
server.interface_attach(port_id=port_id, net_id=None, fixed_ip=None)
+class AddNetwork(command.Command):
+ _description = _("Add network to server")
+
+ def get_parser(self, prog_name):
+ parser = super(AddNetwork, self).get_parser(prog_name)
+ parser.add_argument(
+ "server",
+ metavar="<server>",
+ help=_("Server to add the network to (name or ID)"),
+ )
+ parser.add_argument(
+ "network",
+ metavar="<network>",
+ help=_("Network to add to the server (name or ID)"),
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ compute_client = self.app.client_manager.compute
+
+ server = utils.find_resource(
+ compute_client.servers, parsed_args.server)
+
+ if self.app.client_manager.is_network_endpoint_enabled():
+ network_client = self.app.client_manager.network
+ net_id = network_client.find_network(
+ parsed_args.network, ignore_missing=False).id
+ else:
+ net_id = parsed_args.network
+
+ server.interface_attach(port_id=None, net_id=net_id, fixed_ip=None)
+
+
class AddServerSecurityGroup(command.Command):
_description = _("Add security group to server")
@@ -1576,7 +1609,7 @@ class RemoveServerVolume(command.Command):
)
-class RescueServer(command.ShowOne):
+class RescueServer(command.Command):
_description = _("Put server in rescue mode")
def get_parser(self, prog_name):
@@ -1586,16 +1619,35 @@ class RescueServer(command.ShowOne):
metavar='<server>',
help=_('Server (name or ID)'),
)
+ parser.add_argument(
+ '--image',
+ metavar='<image>',
+ help=_('Image (name or ID) to use for the rescue mode.'
+ ' Defaults to the currently used one.'),
+ )
+ parser.add_argument(
+ '--password',
+ metavar='<password>',
+ help=_("Set the password on the rescued instance"),
+ )
return parser
def take_action(self, parsed_args):
-
compute_client = self.app.client_manager.compute
- _, body = utils.find_resource(
+ image_client = self.app.client_manager.image
+
+ image = None
+ if parsed_args.image:
+ image = utils.find_resource(
+ image_client.images,
+ parsed_args.image,
+ )
+
+ utils.find_resource(
compute_client.servers,
parsed_args.server,
- ).rescue()
- return zip(*sorted(six.iteritems(body)))
+ ).rescue(image=image,
+ password=parsed_args.password)
class ResizeServer(command.Command):