diff options
| author | Tang Chen <chen.tang@easystack.cn> | 2016-04-07 14:10:37 +0800 |
|---|---|---|
| committer | Tang Chen <chen.tang@easystack.cn> | 2016-07-04 10:40:59 +0800 |
| commit | d1f9ea3f750bb4c1f440ebfa93d06a40673ec0aa (patch) | |
| tree | 559dfdb90602c15ad0d47baf2fb08fa501bbe9ca /openstackclient/compute | |
| parent | 50bd56db258a16199463afcdeb2f0579384cc711 (diff) | |
| download | python-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')
| -rw-r--r-- | openstackclient/compute/v2/floatingip.py | 34 | ||||
| -rw-r--r-- | openstackclient/compute/v2/server.py | 55 |
2 files changed, 85 insertions, 4 deletions
diff --git a/openstackclient/compute/v2/floatingip.py b/openstackclient/compute/v2/floatingip.py index 98079fbc..8398ea57 100644 --- a/openstackclient/compute/v2/floatingip.py +++ b/openstackclient/compute/v2/floatingip.py @@ -15,28 +15,43 @@ """Floating IP action implementations""" +import logging + from osc_lib.command import command from osc_lib import utils +from openstackclient.i18n import _ + class AddFloatingIP(command.Command): """Add floating IP address to server""" + # TODO(tangchen): Remove this class and ``ip floating add`` command + # two cycles after Mitaka. + + # This notifies cliff to not display the help for this command + deprecated = True + + log = logging.getLogger('deprecated') + def get_parser(self, prog_name): parser = super(AddFloatingIP, self).get_parser(prog_name) parser.add_argument( "ip_address", metavar="<ip-address>", - help="IP address to add to server (name only)", + help=_("IP address to add to server (name only)"), ) parser.add_argument( "server", metavar="<server>", - help="Server to receive the IP address (name or ID)", + help=_("Server to receive the IP address (name or ID)"), ) return parser def take_action(self, parsed_args): + self.log.warning(_('This command has been deprecated. ' + 'Please use "server add floating ip" instead.')) + compute_client = self.app.client_manager.compute server = utils.find_resource( @@ -48,21 +63,32 @@ class AddFloatingIP(command.Command): class RemoveFloatingIP(command.Command): """Remove floating IP address from server""" + # TODO(tangchen): Remove this class and ``ip floating remove`` command + # two cycles after Mitaka. + + # This notifies cliff to not display the help for this command + deprecated = True + + log = logging.getLogger('deprecated') + def get_parser(self, prog_name): parser = super(RemoveFloatingIP, self).get_parser(prog_name) parser.add_argument( "ip_address", metavar="<ip-address>", - help="IP address to remove from server (name only)", + help=_("IP address to remove from server (name only)"), ) parser.add_argument( "server", metavar="<server>", - help="Server to remove the IP address from (name or ID)", + help=_("Server to remove the IP address from (name or ID)"), ) return parser def take_action(self, parsed_args): + self.log.warning(_('This command has been deprecated. ' + 'Please use "server remove floating ip" instead.')) + compute_client = self.app.client_manager.compute server = utils.find_resource( 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""" |
