Revision 1cce2c47
b/lib/cmdlib.py | ||
---|---|---|
1551 | 1551 |
@param nic: nic to convert to hooks tuple |
1552 | 1552 |
|
1553 | 1553 |
""" |
1554 |
ip = nic.ip |
|
1555 |
mac = nic.mac |
|
1556 | 1554 |
cluster = lu.cfg.GetClusterInfo() |
1557 | 1555 |
filled_params = cluster.SimpleFillNIC(nic.nicparams) |
1558 | 1556 |
mode = filled_params[constants.NIC_MODE] |
1559 | 1557 |
link = filled_params[constants.NIC_LINK] |
1560 |
net = nic.network |
|
1561 | 1558 |
netinfo = None |
1562 |
if net: |
|
1563 |
net_uuid = lu.cfg.LookupNetwork(net) |
|
1564 |
if net_uuid: |
|
1565 |
nobj = lu.cfg.GetNetwork(net_uuid) |
|
1566 |
netinfo = objects.Network.ToDict(nobj) |
|
1567 |
return (ip, mac, mode, link, net, netinfo) |
|
1559 |
if nic.network: |
|
1560 |
net_uuid = lu.cfg.LookupNetwork(nic.network) |
|
1561 |
netinfo = objects.Network.ToDict(lu.cfg.GetNetwork(net_uuid)) |
|
1562 |
|
|
1563 |
return (nic.ip, nic.mac, mode, link, nic.network, netinfo) |
|
1568 | 1564 |
|
1569 | 1565 |
|
1570 | 1566 |
def _NICListToTuple(lu, nics): |
... | ... | |
13460 | 13456 |
elif new_net != old_net: |
13461 | 13457 |
|
13462 | 13458 |
def get_net_prefix(net): |
13459 |
mac_prefix = None |
|
13463 | 13460 |
if net: |
13464 | 13461 |
uuid = self.cfg.LookupNetwork(net) |
13465 |
if uuid: |
|
13466 |
nobj = self.cfg.GetNetwork(uuid) |
|
13467 |
return nobj.mac_prefix |
|
13468 |
return None |
|
13462 |
mac_prefix = self.cfg.GetNetwork(uuid).mac_prefix |
|
13463 |
|
|
13464 |
return mac_prefix |
|
13469 | 13465 |
|
13470 | 13466 |
new_prefix = get_net_prefix(new_net) |
13471 | 13467 |
old_prefix = get_net_prefix(old_net) |
... | ... | |
16215 | 16211 |
raise errors.OpPrereqError("Network must be given", |
16216 | 16212 |
errors.ECODE_INVAL) |
16217 | 16213 |
|
16218 |
uuid = self.cfg.LookupNetwork(self.op.network_name) |
|
16219 |
|
|
16220 |
if uuid: |
|
16221 |
raise errors.OpPrereqError(("Network with name '%s' already exists" % |
|
16222 |
self.op.network_name), errors.ECODE_EXISTS) |
|
16214 |
try: |
|
16215 |
existing_uuid = self.cfg.LookupNetwork(self.op.network_name) |
|
16216 |
except errors.OpPrereqError: |
|
16217 |
pass |
|
16218 |
else: |
|
16219 |
raise errors.OpPrereqError("Desired network name '%s' already exists as a" |
|
16220 |
" network (UUID: %s)" % |
|
16221 |
(self.op.network_name, existing_uuid), |
|
16222 |
errors.ECODE_EXISTS) |
|
16223 | 16223 |
|
16224 | 16224 |
# Check tag validity |
16225 | 16225 |
for tag in self.op.tags: |
... | ... | |
16307 | 16307 |
def ExpandNames(self): |
16308 | 16308 |
self.network_uuid = self.cfg.LookupNetwork(self.op.network_name) |
16309 | 16309 |
|
16310 |
if not self.network_uuid: |
|
16311 |
raise errors.OpPrereqError(("Network '%s' not found" % |
|
16312 |
self.op.network_name), errors.ECODE_NOENT) |
|
16313 |
|
|
16314 | 16310 |
self.share_locks[locking.LEVEL_NODEGROUP] = 1 |
16315 | 16311 |
self.needed_locks = { |
16316 | 16312 |
locking.LEVEL_NETWORK: [self.network_uuid], |
... | ... | |
16379 | 16375 |
|
16380 | 16376 |
def ExpandNames(self): |
16381 | 16377 |
self.network_uuid = self.cfg.LookupNetwork(self.op.network_name) |
16382 |
if self.network_uuid is None: |
|
16383 |
raise errors.OpPrereqError(("Network '%s' not found" % |
|
16384 |
self.op.network_name), errors.ECODE_NOENT) |
|
16385 | 16378 |
|
16386 | 16379 |
self.needed_locks = { |
16387 | 16380 |
locking.LEVEL_NETWORK: [self.network_uuid], |
... | ... | |
16654 | 16647 |
self.network_link = self.op.network_link |
16655 | 16648 |
|
16656 | 16649 |
self.network_uuid = self.cfg.LookupNetwork(self.network_name) |
16657 |
if self.network_uuid is None: |
|
16658 |
raise errors.OpPrereqError("Network '%s' does not exist" % |
|
16659 |
self.network_name, errors.ECODE_NOENT) |
|
16660 |
|
|
16661 | 16650 |
self.group_uuid = self.cfg.LookupNodeGroup(self.group_name) |
16662 |
if self.group_uuid is None: |
|
16663 |
raise errors.OpPrereqError("Group '%s' does not exist" % |
|
16664 |
self.group_name, errors.ECODE_NOENT) |
|
16665 | 16651 |
|
16666 | 16652 |
self.needed_locks = { |
16667 | 16653 |
locking.LEVEL_INSTANCE: [], |
... | ... | |
16790 | 16776 |
self.group_name = self.op.group_name |
16791 | 16777 |
|
16792 | 16778 |
self.network_uuid = self.cfg.LookupNetwork(self.network_name) |
16793 |
if self.network_uuid is None: |
|
16794 |
raise errors.OpPrereqError("Network '%s' does not exist" % |
|
16795 |
self.network_name, errors.ECODE_NOENT) |
|
16796 |
|
|
16797 | 16779 |
self.group_uuid = self.cfg.LookupNodeGroup(self.group_name) |
16798 |
if self.group_uuid is None: |
|
16799 |
raise errors.OpPrereqError("Group '%s' does not exist" % |
|
16800 |
self.group_name, errors.ECODE_NOENT) |
|
16801 | 16780 |
|
16802 | 16781 |
self.needed_locks = { |
16803 | 16782 |
locking.LEVEL_INSTANCE: [], |
b/lib/config.py | ||
---|---|---|
276 | 276 |
prefix = None |
277 | 277 |
if net: |
278 | 278 |
net_uuid = self._UnlockedLookupNetwork(net) |
279 |
if net_uuid: |
|
280 |
nobj = self._UnlockedGetNetwork(net_uuid) |
|
281 |
if nobj.mac_prefix: |
|
282 |
prefix = nobj.mac_prefix |
|
279 |
nobj = self._UnlockedGetNetwork(net_uuid) |
|
280 |
if nobj.mac_prefix: |
|
281 |
prefix = nobj.mac_prefix |
|
283 | 282 |
|
284 | 283 |
return prefix |
285 | 284 |
|
... | ... | |
365 | 364 |
|
366 | 365 |
""" |
367 | 366 |
net_uuid = self._UnlockedLookupNetwork(net) |
368 |
if net_uuid: |
|
369 |
self._UnlockedReleaseIp(net_uuid, address, ec_id) |
|
367 |
self._UnlockedReleaseIp(net_uuid, address, ec_id) |
|
370 | 368 |
|
371 | 369 |
@locking.ssynchronized(_config_lock, shared=1) |
372 | 370 |
def GenerateIp(self, net, ec_id): |
... | ... | |
410 | 408 |
|
411 | 409 |
""" |
412 | 410 |
net_uuid = self._UnlockedLookupNetwork(net) |
413 |
if net_uuid: |
|
414 |
return self._UnlockedReserveIp(net_uuid, address, ec_id) |
|
411 |
return self._UnlockedReserveIp(net_uuid, address, ec_id) |
|
415 | 412 |
|
416 | 413 |
@locking.ssynchronized(_config_lock, shared=1) |
417 | 414 |
def ReserveLV(self, lv_name, ec_id): |
... | ... | |
1452 | 1449 |
for nic in instance.nics: |
1453 | 1450 |
if nic.network is not None and nic.ip is not None: |
1454 | 1451 |
net_uuid = self._UnlockedLookupNetwork(nic.network) |
1455 |
if net_uuid: |
|
1456 |
# Return all IP addresses to the respective address pools |
|
1457 |
self._UnlockedCommitIp(constants.RELEASE_ACTION, net_uuid, nic.ip) |
|
1452 |
# Return all IP addresses to the respective address pools |
|
1453 |
self._UnlockedCommitIp(constants.RELEASE_ACTION, net_uuid, nic.ip) |
|
1458 | 1454 |
|
1459 | 1455 |
del self._config_data.instances[instance_name] |
1460 | 1456 |
self._config_data.cluster.serial_no += 1 |
... | ... | |
2469 | 2465 |
if check_uuid: |
2470 | 2466 |
self._EnsureUUID(net, ec_id) |
2471 | 2467 |
|
2472 |
existing_uuid = self._UnlockedLookupNetwork(net.name) |
|
2473 |
if existing_uuid: |
|
2474 |
raise errors.OpPrereqError("Desired network name '%s' already" |
|
2475 |
" exists as a network (UUID: %s)" % |
|
2476 |
(net.name, existing_uuid), |
|
2477 |
errors.ECODE_EXISTS) |
|
2478 | 2468 |
net.serial_no = 1 |
2479 | 2469 |
self._config_data.networks[net.uuid] = net |
2480 | 2470 |
self._config_data.cluster.serial_no += 1 |
... | ... | |
2494 | 2484 |
for net in self._config_data.networks.values(): |
2495 | 2485 |
if net.name == target: |
2496 | 2486 |
return net.uuid |
2497 |
return None |
|
2487 |
raise errors.OpPrereqError("Network '%s' not found" % target, |
|
2488 |
errors.ECODE_NOENT) |
|
2498 | 2489 |
|
2499 | 2490 |
@locking.ssynchronized(_config_lock, shared=1) |
2500 | 2491 |
def LookupNetwork(self, target): |
... | ... | |
2541 | 2532 |
|
2542 | 2533 |
""" |
2543 | 2534 |
net_uuid = self._UnlockedLookupNetwork(net) |
2544 |
if net_uuid is None: |
|
2545 |
return None |
|
2546 |
|
|
2547 | 2535 |
node_info = self._UnlockedGetNodeInfo(node) |
2548 | 2536 |
nodegroup_info = self._UnlockedGetNodeGroup(node_info.group) |
2549 | 2537 |
netparams = nodegroup_info.networks.get(net_uuid, None) |
Also available in: Unified diff