_UnlockedCommitIp is used either for releasing or reserving an
IP inside a network. New constants RELEASE_ACTION/RESERVE_ACTION
are used to decide which is the case.
Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Iustin Pop <iustin@google.com>
"""
nobj = self._UnlockedGetNetwork(net_uuid)
pool = network.AddressPool(nobj)
"""
nobj = self._UnlockedGetNetwork(net_uuid)
pool = network.AddressPool(nobj)
- if action == 'reserve':
+ if action == constants.RESERVE_ACTION:
- elif action == 'release':
+ elif action == constants.RELEASE_ACTION:
pool.Release(address)
def _UnlockedReleaseIp(self, net_uuid, address, ec_id):
pool.Release(address)
def _UnlockedReleaseIp(self, net_uuid, address, ec_id):
- self._temporary_ips.Reserve(ec_id, ('release', address, net_uuid))
+ self._temporary_ips.Reserve(ec_id,
+ (constants.RELEASE_ACTION, address, net_uuid))
@locking.ssynchronized(_config_lock, shared=1)
def ReleaseIp(self, net, address, ec_id):
@locking.ssynchronized(_config_lock, shared=1)
def ReleaseIp(self, net, address, ec_id):
ip = gen_free()
except StopIteration:
raise errors.ReservationError("Cannot generate IP. Network is full")
ip = gen_free()
except StopIteration:
raise errors.ReservationError("Cannot generate IP. Network is full")
- return ("reserve", ip, net_uuid)
+ return (constants.RESERVE_ACTION, ip, net_uuid)
_, address, _ = self._temporary_ips.Generate([], gen_one, ec_id)
return address
_, address, _ = self._temporary_ips.Generate([], gen_one, ec_id)
return address
if isreserved:
raise errors.ReservationError("IP address already in use")
if isreserved:
raise errors.ReservationError("IP address already in use")
- return self._temporary_ips.Reserve(ec_id, ('reserve', address, net_uuid))
+ return self._temporary_ips.Reserve(ec_id,
+ (constants.RESERVE_ACTION,
+ address, net_uuid))
@locking.ssynchronized(_config_lock, shared=1)
def ReserveIp(self, net, address, ec_id):
@locking.ssynchronized(_config_lock, shared=1)
def ReserveIp(self, net, address, ec_id):
net_uuid = self._UnlockedLookupNetwork(nic.network)
if net_uuid:
# Return all IP addresses to the respective address pools
net_uuid = self._UnlockedLookupNetwork(nic.network)
if net_uuid:
# Return all IP addresses to the respective address pools
- self._UnlockedCommitIp('release', net_uuid, nic.ip)
+ self._UnlockedCommitIp(constants.RELEASE_ACTION, net_uuid, nic.ip)
del self._config_data.instances[instance_name]
self._config_data.cluster.serial_no += 1
del self._config_data.instances[instance_name]
self._config_data.cluster.serial_no += 1
NIC_VALID_MODES = frozenset([NIC_MODE_BRIDGED, NIC_MODE_ROUTED])
NIC_VALID_MODES = frozenset([NIC_MODE_BRIDGED, NIC_MODE_ROUTED])
+RESERVE_ACTION = 'reserve'
+RELEASE_ACTION = 'release'
+
# An extra description of the network.
# Can be used by hooks/kvm-vif-bridge to apply different rules
NETWORK_TYPE_PRIVATE = "private"
# An extra description of the network.
# Can be used by hooks/kvm-vif-bridge to apply different rules
NETWORK_TYPE_PRIVATE = "private"