<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#CCCCCC" text="#000000">
<font size="+1">Hello Everyone,<br>
So, before I start making code changes to nova-network, I have
to ask, why does the nova-network first disassociate the
floating-ip before associating it ? Surely, if the floating-ip is
associated with another instance it shouldn't jst be disassociated
blindly ?<br>
<br>
I refer to line 477 of nova/network/manager.py (the
associate_floating_ip method) and specifically this;<br>
<br>
# make sure project owns this floating ip (allocated)<br>
self._floating_ip_owned_by_project(context, floating_ip)<br>
<br>
# disassociate any already associated<br>
orig_instance_uuid = None<br>
if floating_ip['fixed_ip_id']:<br>
# find previously associated instance<br>
fixed_ip = self.db.fixed_ip_get(context,<br>
floating_ip['fixed_ip_id'])<br>
orig_instance_uuid = fixed_ip['instance_uuid']<br>
<br>
self.disassociate_floating_ip(context,
floating_address)<br>
<br>
Now, I can see two solutions, in the case that this is
'correct'. One is to create a method called 're-associate'. The
other idea is to only allow disassocation to happen if there is a
'force' flag (or some such). <br>
<br>
In the case of more than one operator, it's REALLY easy to
step on each others toes. This is even before I get onto the whole
notion of malicious intent.<br>
<br>
Am I reading this wrong ? I am open to being an idiot :)<br>
<br>
Regards<br>
S.<br>
<br>
</font>
</body>
</html>