summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-04-05 02:55:11 +0000
committerGerrit Code Review <review@openstack.org>2017-04-05 02:55:11 +0000
commit65b61d3a9c08a43cc0746ac17fec00682a720913 (patch)
tree7695fd5ca15d787caaf815c9e369b602390fc043 /openstackclient
parent25a77f7c7c00fc8255c330f395ace24a4e75db8b (diff)
parent7f9814860ad739e25b82898176d26c7b788e8e33 (diff)
downloadpython-openstackclient-65b61d3a9c08a43cc0746ac17fec00682a720913.tar.gz
Merge "Enable to specify which fixed-ip to add to a vm."
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/compute/v2/server.py8
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py20
2 files changed, 21 insertions, 7 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index edb06603..ae839677 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -206,6 +206,11 @@ class AddFixedIP(command.Command):
"Network to allocate the fixed IP address from (name or ID)"
),
)
+ parser.add_argument(
+ "--fixed-ip-address",
+ metavar="<ip-address>",
+ help=_("Requested fixed IP address"),
+ )
return parser
def take_action(self, parsed_args):
@@ -217,7 +222,8 @@ class AddFixedIP(command.Command):
network = utils.find_resource(
compute_client.networks, parsed_args.network)
- server.add_fixed_ip(network.id)
+ server.interface_attach(port_id=None, net_id=network.id,
+ fixed_ip=parsed_args.fixed_ip_address)
class AddFloatingIP(command.Command):
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index 0e3bb28f..fed847f1 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -104,10 +104,10 @@ class TestServerAddFixedIP(TestServer):
# Set add_fixed_ip method to be tested.
self.methods = {
- 'add_fixed_ip': None,
+ 'interface_attach': None,
}
- def test_server_add_fixed_ip(self):
+ def _test_server_add_fixed_ip(self, extralist, fixed_ip_address):
servers = self.setup_servers_mock(count=1)
network = compute_fakes.FakeNetwork.create_one_network()
self.networks_mock.get.return_value = network
@@ -115,20 +115,28 @@ class TestServerAddFixedIP(TestServer):
arglist = [
servers[0].id,
network.id,
- ]
+ ] + extralist
verifylist = [
('server', servers[0].id),
- ('network', network.id)
+ ('network', network.id),
+ ('fixed_ip_address', fixed_ip_address)
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
- servers[0].add_fixed_ip.assert_called_once_with(
- network.id,
+ servers[0].interface_attach.assert_called_once_with(
+ port_id=None, net_id=network.id, fixed_ip=fixed_ip_address
)
self.assertIsNone(result)
+ def test_server_add_fixed_ip(self):
+ self._test_server_add_fixed_ip([], None)
+
+ def test_server_add_specific_fixed_ip(self):
+ extralist = ['--fixed-ip-address', '5.6.7.8']
+ self._test_server_add_fixed_ip(extralist, '5.6.7.8')
+
class TestServerAddFloatingIP(TestServer):