Revision fae6e5f0 snf-cyclades-app/synnefo/api/servers.py
b/snf-cyclades-app/synnefo/api/servers.py | ||
---|---|---|
928 | 928 |
if address is None: |
929 | 929 |
raise faults.BadRequest("Missing 'address' attribute") |
930 | 930 |
|
931 |
servers.add_floating_ip(vm, address) |
|
931 |
userid = vm.userid |
|
932 |
floating_ip = util.get_floating_ip_by_address(userid, address, |
|
933 |
for_update=True) |
|
934 |
servers.create_port(userid, floating_ip.network, machine=vm, |
|
935 |
user_ipaddress=floating_ip) |
|
932 | 936 |
return HttpResponse(status=202) |
933 | 937 |
|
934 | 938 |
|
... | ... | |
937 | 941 |
address = args.get("address") |
938 | 942 |
if address is None: |
939 | 943 |
raise faults.BadRequest("Missing 'address' attribute") |
940 |
|
|
941 |
servers.remove_floating_ip(vm, address) |
|
944 |
floating_ip = util.get_floating_ip_by_address(vm.userid, address, |
|
945 |
for_update=True) |
|
946 |
if floating_ip.nic is None: |
|
947 |
raise faults.BadRequest("Floating IP %s not attached to instance" |
|
948 |
% address) |
|
949 |
servers.delete_port(floating_ip.nic) |
|
942 | 950 |
return HttpResponse(status=202) |
Also available in: Unified diff