Revision 8140e24f lib/cmdlib.py

b/lib/cmdlib.py
1316 1316
  return _ExpandItemName(cfg.ExpandInstanceName, name, "Instance")
1317 1317

  
1318 1318
def _BuildNetworkHookEnv(name, network, gateway, network6, gateway6,
1319
                         network_type, mac_prefix):
1319
                         network_type, mac_prefix, tags):
1320 1320
  env = dict()
1321 1321
  if name:
1322 1322
    env["NETWORK_NAME"] = name
......
1332 1332
    env["NETWORK_MAC_PREFIX"] = mac_prefix
1333 1333
  if network_type:
1334 1334
    env["NETWORK_TYPE"] = network_type
1335
  if tags:
1336
    env["NETWORK_TAGS"] = " ".join(tags)
1335 1337

  
1336 1338
  return env
1337 1339

  
......
1345 1347
    "gateway6": network.gateway6,
1346 1348
    "network_type": network.network_type,
1347 1349
    "mac_prefix": network.mac_prefix,
1350
    "tags" : network.tags,
1348 1351
  }
1349 1352
  return _BuildNetworkHookEnv(**args)
1350 1353

  
......
1431 1434
            env["INSTANCE_NIC%d_NETWORK_MAC_PREFIX" % idx] = nobj.mac_prefix
1432 1435
          if nobj.network_type:
1433 1436
            env["INSTANCE_NIC%d_NETWORK_TYPE" % idx] = nobj.network_type
1437
          if nobj.tags:
1438
            env["INSTANCE_NIC%d_NETWORK_TAGS" % idx] = " ".join(nobj.tags)
1434 1439
      if mode == constants.NIC_MODE_BRIDGED:
1435 1440
        env["INSTANCE_NIC%d_BRIDGE" % idx] = link
1436 1441
  else:
......
15017 15022
      self.group_uuid = self.cfg.LookupNodeGroup(self.op.name)
15018 15023
      lock_level = locking.LEVEL_NODEGROUP
15019 15024
      lock_name = self.group_uuid
15025
    elif self.op.kind == constants.TAG_NETWORK:
15026
      self.network_uuid = self.cfg.LookupNetwork(self.op.name)
15027
      lock_level = locking.LEVEL_NETWORK
15028
      lock_name = self.network_uuid
15020 15029
    else:
15021 15030
      lock_level = None
15022 15031
      lock_name = None
......
15039 15048
      self.target = self.cfg.GetInstanceInfo(self.op.name)
15040 15049
    elif self.op.kind == constants.TAG_NODEGROUP:
15041 15050
      self.target = self.cfg.GetNodeGroup(self.group_uuid)
15051
    elif self.op.kind == constants.TAG_NETWORK:
15052
      self.target = self.cfg.GetNetwork(self.network_uuid)
15042 15053
    else:
15043 15054
      raise errors.OpPrereqError("Wrong tag type requested (%s)" %
15044 15055
                                 str(self.op.kind), errors.ECODE_INVAL)
......
15549 15560
    if self.op.mac_prefix:
15550 15561
      utils.NormalizeAndValidateMac(self.op.mac_prefix+":00:00:00")
15551 15562

  
15563
    # Check tag validity
15564
    for tag in self.op.tags:
15565
      objects.TaggableObject.ValidateTag(tag)
15566

  
15567

  
15552 15568
  def BuildHooksEnv(self):
15553 15569
    """Build hooks env.
15554 15570

  
......
15561 15577
      "gateway6": self.op.gateway6,
15562 15578
      "mac_prefix": self.op.mac_prefix,
15563 15579
      "network_type": self.op.network_type,
15580
      "tags": self.op.tags,
15564 15581
      }
15565 15582
    return _BuildNetworkHookEnv(**args)
15566 15583

  
......
15609 15626
        except errors.AddressPoolError, e:
15610 15627
          raise errors.OpExecError("Cannot reserve IP %s. %s " % (ip, e))
15611 15628

  
15629
    if self.op.tags:
15630
      for tag in self.op.tags:
15631
        nobj.AddTag(tag)
15632

  
15612 15633
    self.cfg.AddNetwork(nobj, self.proc.GetECId(), check_uuid=False)
15613 15634
    del self.remove_locks[locking.LEVEL_NETWORK]
15614 15635

  
......
15714 15735
    self.mac_prefix = self.network.mac_prefix
15715 15736
    self.network6 = self.network.network6
15716 15737
    self.gateway6 = self.network.gateway6
15738
    self.tags = self.network.tags
15717 15739

  
15718 15740
    self.pool = network.AddressPool(self.network)
15719 15741

  
......
15765 15787
      "gateway6": self.gateway6,
15766 15788
      "mac_prefix": self.mac_prefix,
15767 15789
      "network_type": self.network_type,
15790
      "tags": self.tags,
15768 15791
      }
15769 15792
    return _BuildNetworkHookEnv(**args)
15770 15793

  

Also available in: Unified diff