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