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