Revision 2c758845 lib/query.py

b/lib/query.py
93 93

  
94 94
(GQ_CONFIG,
95 95
 GQ_NODE,
96
 GQ_INST) = range(200, 203)
96
 GQ_INST,
97
 GQ_DISKPARAMS) = range(200, 204)
97 98

  
98 99
(CQ_CONFIG,
99 100
 CQ_QUEUE_DRAINED,
......
2002 2003
  """Data container for node group data queries.
2003 2004

  
2004 2005
  """
2005
  def __init__(self, cluster, groups, group_to_nodes, group_to_instances):
2006
  def __init__(self, cluster, groups, group_to_nodes, group_to_instances,
2007
               want_diskparams):
2006 2008
    """Initializes this class.
2007 2009

  
2008 2010
    @param cluster: Cluster object
......
2011 2013
    @param group_to_nodes: Per-group list of nodes
2012 2014
    @type group_to_instances: dict; group UUID as key
2013 2015
    @param group_to_instances: Per-group list of (primary) instances
2016
    @type want_diskparams: bool
2017
    @param want_diskparams: Whether diskparamters should be calculated
2014 2018

  
2015 2019
    """
2016 2020
    self.groups = groups
2017 2021
    self.group_to_nodes = group_to_nodes
2018 2022
    self.group_to_instances = group_to_instances
2019 2023
    self.cluster = cluster
2024
    self.want_diskparams = want_diskparams
2020 2025

  
2021 2026
    # Used for individual rows
2022 2027
    self.group_ipolicy = None
2023 2028
    self.ndparams = None
2029
    self.group_dp = None
2024 2030

  
2025 2031
  def __iter__(self):
2026 2032
    """Iterate over all node groups.
......
2032 2038
    for group in self.groups:
2033 2039
      self.group_ipolicy = self.cluster.SimpleFillIPolicy(group.ipolicy)
2034 2040
      self.ndparams = self.cluster.SimpleFillND(group.ndparams)
2041
      if self.want_diskparams:
2042
        self.group_dp = self.cluster.SimpleFillDP(group.diskparams)
2043
      else:
2044
        self.group_dp = None
2035 2045
      yield group
2036 2046

  
2037 2047

  
......
2095 2105
    (_MakeField("ndparams", "NDParams", QFT_OTHER,
2096 2106
                "Node parameters"),
2097 2107
     GQ_CONFIG, 0, lambda ctx, _: ctx.ndparams),
2108
    (_MakeField("diskparams", "DiskParameters", QFT_OTHER,
2109
                "Disk parameters (merged)"),
2110
     GQ_DISKPARAMS, 0, lambda ctx, _: ctx.group_dp),
2111
    (_MakeField("custom_diskparams", "CustomDiskParameters", QFT_OTHER,
2112
                "Custom disk parameters"),
2113
     GQ_CONFIG, 0, _GetItemAttr("diskparams")),
2098 2114
    ])
2099 2115

  
2100 2116
  # ND parameters

Also available in: Unified diff