From d1f9ea3f750bb4c1f440ebfa93d06a40673ec0aa Mon Sep 17 00:00:00 2001 From: Tang Chen Date: Thu, 7 Apr 2016 14:10:37 +0800 Subject: Transfer "ip floating add/remove" to "server add/remove floating ip" This patch does the following things to transfer "ip floating add/remove" to "server add/remove floating ip": * Add new command "server add/remove floating ip", and unit tests and doc. * Deprecate "ip floating add/remove" command. compute/v2/floatingip.py is not removed because the arguments' positions are different between the new and old commands. * ip floating add server add floating ip * ip floating remove server remove floating ip Change-Id: Ic0dd22ca6fb7b7bc3e820fd5a14d7c551e7ab963 Implements: blueprint rework-ip-commands Partial-bug: 1555990 Co-Authored-By: Dean Troyer --- openstackclient/compute/v2/server.py | 55 ++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'openstackclient/compute/v2/server.py') diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index 7e4b0dc1..d7c3a656 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -174,6 +174,33 @@ def _show_progress(progress): sys.stdout.flush() +class AddFloatingIP(command.Command): + """Add floating IP address to server""" + + def get_parser(self, prog_name): + parser = super(AddFloatingIP, self).get_parser(prog_name) + parser.add_argument( + "server", + metavar="", + help=_("Server (name or ID) to receive the floating IP address"), + ) + parser.add_argument( + "ip_address", + metavar="", + help=_("Floating IP address (IP address only) to assign " + "to server"), + ) + 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) + + server.add_floating_ip(parsed_args.ip_address) + + class AddServerSecurityGroup(command.Command): """Add security group to server""" @@ -1081,6 +1108,34 @@ class RebuildServer(command.ShowOne): return zip(*sorted(six.iteritems(details))) +class RemoveFloatingIP(command.Command): + """Remove floating IP address from server""" + + def get_parser(self, prog_name): + parser = super(RemoveFloatingIP, self).get_parser(prog_name) + parser.add_argument( + "server", + metavar="", + help=_("Server (name or ID) to remove the " + "floating IP address from"), + ) + parser.add_argument( + "ip_address", + metavar="", + help=_("Floating IP address (IP address only) " + "to remove from server"), + ) + 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) + + server.remove_floating_ip(parsed_args.ip_address) + + class RemoveServerSecurityGroup(command.Command): """Remove security group from server""" -- cgit v1.2.1