added add/remove fixed_ip actions to servers
This commit is contained in:
parent
f81fc89cc8
commit
2bba8e2e2b
@ -149,10 +149,11 @@ class OpenStackShell(object):
|
||||
if args.debug:
|
||||
httplib2.debuglevel = 1
|
||||
|
||||
user, apikey, projectid, url = args.username, args.apikey, args.projectid, args.url
|
||||
user, apikey, projectid, url = args.username, args.apikey, \
|
||||
args.projectid, args.url
|
||||
|
||||
#FIXME(usrleon): Here should be restrict for project id same as for username or apikey
|
||||
# but for compatibility it is not.
|
||||
#FIXME(usrleon): Here should be restrict for project id same as
|
||||
# for username or apikey but for compatibility it is not.
|
||||
|
||||
if not user:
|
||||
raise CommandError("You must provide a username, either via "
|
||||
@ -782,6 +783,22 @@ class OpenStackShell(object):
|
||||
print_list(self.cs.zones.list(), ['ID', 'Name', 'Is Active', \
|
||||
'API URL', 'Weight Offset', 'Weight Scale'])
|
||||
|
||||
@arg('server', metavar='<server>', help='Name or ID of server.')
|
||||
@arg('network_id', metavar='<network_id>', help='Network ID.')
|
||||
def do_add_fixed_ip(self, args):
|
||||
"""Add new IP address to network."""
|
||||
server = self._find_server(args.server)
|
||||
server.add_fixed_ip(args.network_id)
|
||||
print_dict(server._info)
|
||||
|
||||
@arg('server', metavar='<server>', help='Name or ID of server.')
|
||||
@arg('address', metavar='<address>', help='IP Address.')
|
||||
def do_remove_fixed_ip(self, args):
|
||||
"""Remove an IP address from a server."""
|
||||
server = self._find_server(args.server)
|
||||
server.remove_fixed_ip(args.address)
|
||||
print_dict(server._info)
|
||||
|
||||
def _find_server(self, server):
|
||||
"""Get a server by name or ID."""
|
||||
return self._find_resource(self.cs.servers, server)
|
||||
|
@ -275,6 +275,10 @@ class FakeClient(OpenStackClient):
|
||||
assert_equal(body[action], None)
|
||||
elif action == 'migrate':
|
||||
assert_equal(body[action], None)
|
||||
elif action == 'addFixedIp':
|
||||
assert_equal(body[action].keys(), ['networkId'])
|
||||
elif action == 'removeFixedIp':
|
||||
assert_equal(body[action].keys(), ['address'])
|
||||
else:
|
||||
fail("Unexpected server action: %s" % action)
|
||||
return (202, None)
|
||||
|
@ -149,9 +149,26 @@ def test_revert_resized_server():
|
||||
cs.servers.revert_resize(s)
|
||||
cs.assert_called('POST', '/servers/1234/action')
|
||||
|
||||
|
||||
def test_migrate_server():
|
||||
s = cs.servers.get(1234)
|
||||
s.migrate()
|
||||
cs.assert_called('POST', '/servers/1234/action')
|
||||
cs.servers.migrate(s)
|
||||
cs.assert_called('POST', '/servers/1234/action')
|
||||
|
||||
|
||||
def test_add_fixed_ip():
|
||||
s = cs.servers.get(1234)
|
||||
s.add_fixed_ip(1)
|
||||
cs.assert_called('POST', '/servers/1234/action')
|
||||
cs.servers.add_fixed_ip(s, 1)
|
||||
cs.assert_called('POST', '/servers/1234/action')
|
||||
|
||||
|
||||
def test_remove_fixed_ip():
|
||||
s = cs.servers.get(1234)
|
||||
s.remove_fixed_ip('10.0.0.1')
|
||||
cs.assert_called('POST', '/servers/1234/action')
|
||||
cs.servers.remove_fixed_ip(s, '10.0.0.1')
|
||||
cs.assert_called('POST', '/servers/1234/action')
|
||||
|
Loading…
x
Reference in New Issue
Block a user