ConfigWriter.ReserveLV() and Configwriter.ReserveMAC() called
TemporaryReservationManager.Reserve() with the ec_id and resource arguments
swapped. As a result, two reservation attempts for the same resource type
within the same LU would fail, even if the resources requested were different,
e.g.:
$ gnt-instance add -t sharedfile -o debootstrap+default \
--net 0:mac=00:01:02:03:04:00 \
--net 1:mac=00:01:02:03:04:ff \
--disk 0:size=2g test_instance
Failure: prerequisites not met for this operation:
error type: resource_not_unique, error details:
MAC address 00:01:02:03:04:ff already in use in cluster
This patch fixes the argument order in the call to Reserve().
Signed-off-by: Apollon Oikonomopoulos <[email protected]>
---
lib/config.py | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/config.py b/lib/config.py
index 0253a23..7d81b37 100644
--- a/lib/config.py
+++ b/lib/config.py
@@ -219,7 +219,7 @@ class ConfigWriter:
if mac in all_macs:
raise errors.ReservationError("mac already in use")
else:
- self._temporary_macs.Reserve(mac, ec_id)
+ self._temporary_macs.Reserve(ec_id, mac)
@locking.ssynchronized(_config_lock, shared=1)
def ReserveLV(self, lv_name, ec_id):
@@ -233,7 +233,7 @@ class ConfigWriter:
if lv_name in all_lvs:
raise errors.ReservationError("LV already in use")
else:
- self._temporary_lvs.Reserve(lv_name, ec_id)
+ self._temporary_lvs.Reserve(ec_id, lv_name)
@locking.ssynchronized(_config_lock, shared=1)
def GenerateDRBDSecret(self, ec_id):
--
1.7.2.5