On Fri, Nov 1, 2013 at 4:11 PM, Dimitris Aragiorgis <[email protected]> wrote: > * Guido Trotter <[email protected]> [2013-11-01 15:57:07 +0100]: > >> Shouldn't they be actually reserved, but removed on node >> removal/modification or cluster modify? >> > > Makes sense but this is a rather big patch that should probably go to > master. I can give it a try for master, but I think we should merge this > patch to stable-2.10 to fix the aforeamentioned problem and make the > use case manageable. >
But then would this mean that in 2.10 the node ips are externally reserved "as long as you don't change them", but can become unreserved if you do? In that case I believe this to be a bug anyway. Thanks, Guido > Thanks, > dimara > >> Thanks, >> >> Guido >> On 1 Nov 2013 15:24, "Dimitris Aragiorgis" <[email protected]> wrote: >> >> > Currently, upon network creation, nodes' and master's IPs >> > are reserved in the pool. >> > >> > This leads to pool reservations ('X' in map) that cannot be changed >> > afterwards, although they may need to (e.g. in case of node >> > removal/modification). Also, these IPs are not actually handled by >> > Ganeti in the sense that they are not assigned to the cluster's VMs. >> > >> > Thus, we should mark the as externally reserved and not just reserved. >> > >> > Signed-off-by: Dimitris Aragiorgis <[email protected]> >> > --- >> > lib/cmdlib/network.py | 4 ++-- >> > 1 file changed, 2 insertions(+), 2 deletions(-) >> > >> > diff --git a/lib/cmdlib/network.py b/lib/cmdlib/network.py >> > index 4f172a4..01bd948 100644 >> > --- a/lib/cmdlib/network.py >> > +++ b/lib/cmdlib/network.py >> > @@ -169,7 +169,7 @@ class LUNetworkAdd(LogicalUnit): >> > for ip in [node.primary_ip, node.secondary_ip]: >> > try: >> > if pool.Contains(ip): >> > - pool.Reserve(ip) >> > + pool.Reserve(ip, external=True) >> > self.LogInfo("Reserved IP address of node '%s' (%s)", >> > node.name, ip) >> > except errors.AddressPoolError, err: >> > @@ -179,7 +179,7 @@ class LUNetworkAdd(LogicalUnit): >> > master_ip = self.cfg.GetClusterInfo().master_ip >> > try: >> > if pool.Contains(master_ip): >> > - pool.Reserve(master_ip) >> > + pool.Reserve(master_ip, external=True) >> > self.LogInfo("Reserved cluster master IP address (%s)", >> > master_ip) >> > except errors.AddressPoolError, err: >> > self.LogWarning("Cannot reserve cluster master IP address (%s): >> > %s", >> > -- >> > 1.7.10.4 >> > >> > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.10 (GNU/Linux) > > iQEcBAEBAgAGBQJSc8SaAAoJEHFDHex6CBG9w7QH/R7UEaVnaVShi505rpYPllFX > 4btFfeWwtXN31WBB371/aaKD58w7F6Sf7MxTzfUF1D/VlSpasOOboLhVtFUxlUEl > 77wRochfepfkanCcym1dParjJNGCSKSPIXVlG2AcF+32FDl5Jhz0jmAYk7OPDDXO > KFPth2QyxE7dsmub/9laivm2tQ/fK/Uq4qD51ct8jwmCqJRkSo38fYwCE9UKemft > 1D3mc3X5E+HqwZM/Yssmga7KRm3aS+dinPiknDTxRsIFIP4j8Va9u/XEeMmbRQSq > EqU06fdFuHMxfofMCrpv1E44pROMkX+KvSZ3BMlejpOPoPdCu/zYH8qot8W0HWQ= > =5XYj > -----END PGP SIGNATURE----- > -- Guido Trotter Ganeti Engineering Google Germany GmbH Dienerstr. 12, 80331, München Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Christine Elizabeth Flores Steuernummer: 48/725/00206 Umsatzsteueridentifikationsnummer: DE813741370
