Revision a2112db5 lib/objects.py

b/lib/objects.py
439 439
      node.UpgradeConfig()
440 440
    for instance in self.instances.values():
441 441
      instance.UpgradeConfig()
442
    self._UpgradeEnabledDiskTemplates()
442 443
    if self.nodegroups is None:
443 444
      self.nodegroups = {}
444 445
    for nodegroup in self.nodegroups.values():
445 446
      nodegroup.UpgradeConfig()
447
      InstancePolicy.UpgradeDiskTemplates(
448
        nodegroup.ipolicy, self.cluster.enabled_disk_templates)
446 449
    if self.cluster.drbd_usermode_helper is None:
447 450
      # To decide if we set an helper let's check if at least one instance has
448 451
      # a DRBD disk. This does not cover all the possible scenarios but it
......
453 456
      self.networks = {}
454 457
    for network in self.networks.values():
455 458
      network.UpgradeConfig()
456
    self._UpgradeEnabledDiskTemplates()
457 459

  
458 460
  def _UpgradeEnabledDiskTemplates(self):
459 461
    """Upgrade the cluster's enabled disk templates by inspecting the currently
......
478 480
          self.cluster.enabled_disk_templates.append(preferred_template)
479 481
          template_set.remove(preferred_template)
480 482
      self.cluster.enabled_disk_templates.extend(list(template_set))
483
    InstancePolicy.UpgradeDiskTemplates(
484
      self.cluster.ipolicy, self.cluster.enabled_disk_templates)
481 485

  
482 486

  
483 487
class NIC(ConfigObject):
......
914 918

  
915 919
  """
916 920
  @classmethod
921
  def UpgradeDiskTemplates(cls, ipolicy, enabled_disk_templates):
922
    """Upgrades the ipolicy configuration."""
923
    if constants.IPOLICY_DTS in ipolicy:
924
      if not set(ipolicy[constants.IPOLICY_DTS]).issubset(
925
        set(enabled_disk_templates)):
926
        ipolicy[constants.IPOLICY_DTS] = list(
927
          set(ipolicy[constants.IPOLICY_DTS]) & set(enabled_disk_templates))
928

  
929
  @classmethod
917 930
  def CheckParameterSyntax(cls, ipolicy, check_std):
918 931
    """ Check the instance policy for validity.
919 932

  

Also available in: Unified diff