summaryrefslogtreecommitdiff
path: root/openstackclient/compute/v2/server.py
diff options
context:
space:
mode:
authorTang Chen <chen.tang@easystack.cn>2016-04-07 14:10:37 +0800
committerTang Chen <chen.tang@easystack.cn>2016-07-04 10:40:59 +0800
commitd1f9ea3f750bb4c1f440ebfa93d06a40673ec0aa (patch)
tree559dfdb90602c15ad0d47baf2fb08fa501bbe9ca /openstackclient/compute/v2/server.py
parent50bd56db258a16199463afcdeb2f0579384cc711 (diff)
downloadpython-openstackclient-d1f9ea3f750bb4c1f440ebfa93d06a40673ec0aa.tar.gz
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 <ip-address> <server> server add floating ip <server> <ip-address> * ip floating remove <ip-address> <server> server remove floating ip <server> <ip-address> Change-Id: Ic0dd22ca6fb7b7bc3e820fd5a14d7c551e7ab963 Implements: blueprint rework-ip-commands Partial-bug: 1555990 Co-Authored-By: Dean Troyer <dtroyer@gmail.com>
Diffstat (limited to 'openstackclient/compute/v2/server.py')
-rw-r--r--openstackclient/compute/v2/server.py55
1 files changed, 55 insertions, 0 deletions
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="<server>",
+ help=_("Server (name or ID) to receive the floating IP address"),
+ )
+ parser.add_argument(
+ "ip_address",
+ metavar="<ip-address>",
+ 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="<server>",
+ help=_("Server (name or ID) to remove the "
+ "floating IP address from"),
+ )
+ parser.add_argument(
+ "ip_address",
+ metavar="<ip-address>",
+ 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"""