Tang Chen 860dbc132d [Floating IP] Neutron support for "ip floating create" command
This patch adds --subnet, --port, --floating-ip-address
and --fixed-ip-address options only. Project related options
will be added in another patch because it relates to identity
v2 and v3, which will make the unit tests too complicated in
one single patch.

Change-Id: I3cce4404a114ff128b74e4596f0e847be2846b17
Partial-Bug: 1519502
Related-to: blueprint neutron-client
2016-03-24 09:07:25 +08:00

72 lines
2.3 KiB
Python

# Copyright 2013 OpenStack Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
"""Floating IP action implementations"""
from openstackclient.common import command
from openstackclient.common import utils
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(
"ip_address",
metavar="<ip-address>",
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)",
)
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 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(
"ip_address",
metavar="<ip-address>",
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)",
)
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)