Revision a8282327

b/lib/client/gnt_group.py
135 135
  @return: the desired exit code
136 136

  
137 137
  """
138
  if (opts.ndparams is None and opts.alloc_policy is None
139
      and not opts.diskparams):
138
  if (opts.ndparams is None and opts.alloc_policy is None and
139
      not (opts.hv_state or opts.disk_state)):
140 140
    ToStderr("Please give at least one of the parameters.")
141 141
    return 1
142 142

  
143
  if opts.disk_state:
144
    disk_state = utils.FlatToDict(opts.disk_state)
145
  else:
146
    disk_state = {}
147

  
148
  hv_state = dict(opts.hv_state)
149

  
143 150
  diskparams = dict(opts.diskparams)
144 151
  op = opcodes.OpGroupSetParams(group_name=args[0],
145 152
                                ndparams=opts.ndparams,
146 153
                                alloc_policy=opts.alloc_policy,
154
                                hv_state=hv_state,
155
                                disk_state=disk_state,
147 156
                                diskparams=diskparams)
148 157
  result = SubmitOrSend(op, opts)
149 158

  
......
237 246
    "Lists all available fields for node groups"),
238 247
  "modify": (
239 248
    SetGroupParams, ARGS_ONE_GROUP,
240
    [DRY_RUN_OPT, SUBMIT_OPT, ALLOC_POLICY_OPT, NODE_PARAMS_OPT,
241
     DISK_PARAMS_OPT],
249
    [DRY_RUN_OPT, SUBMIT_OPT, ALLOC_POLICY_OPT, NODE_PARAMS_OPT, HV_STATE_OPT,
250
     DISK_STATE_OPT, DISK_PARAMS_OPT],
242 251
    "<group_name>", "Alters the parameters of a node group"),
243 252
  "remove": (
244 253
    RemoveGroup, ARGS_ONE_GROUP, [DRY_RUN_OPT],
b/lib/cmdlib.py
12955 12955
      self.op.ndparams,
12956 12956
      self.op.diskparams,
12957 12957
      self.op.alloc_policy,
12958
      self.op.hv_state,
12959
      self.op.disk_state
12958 12960
      ]
12959 12961

  
12960 12962
    if all_changes.count(None) == len(all_changes):
......
12994 12996
        utils.ForceDictType(new_templ_params, constants.DISK_DT_TYPES)
12995 12997
        self.new_diskparams[templ] = new_templ_params
12996 12998

  
12999
    if self.op.hv_state:
13000
      self.new_hv_state = _MergeAndVerifyHvState(self.op.hv_state,
13001
                                                 self.group.hv_state_static)
13002

  
13003
    if self.op.disk_state:
13004
      self.new_disk_state = \
13005
        _MergeAndVerifyDiskState(self.op.disk_state,
13006
                                 self.group.disk_state_static)
13007

  
12997 13008
  def BuildHooksEnv(self):
12998 13009
    """Build hooks env.
12999 13010

  
......
13027 13038
    if self.op.alloc_policy:
13028 13039
      self.group.alloc_policy = self.op.alloc_policy
13029 13040

  
13041
    if self.op.hv_state:
13042
      self.group.hv_state_static = self.new_hv_state
13043

  
13044
    if self.op.disk_state:
13045
      self.group.disk_state_static = self.new_disk_state
13046

  
13030 13047
    self.cfg.Update(self.group, feedback_fn)
13031 13048
    return result
13032 13049

  
b/lib/objects.py
1145 1145
    "ndparams",
1146 1146
    "diskparams",
1147 1147
    "serial_no",
1148
    "hv_state_static",
1149
    "disk_state_static",
1148 1150
    "alloc_policy",
1149 1151
    ] + _TIMESTAMPS + _UUID
1150 1152

  
b/lib/opcodes.py
1440 1440
    _PNodeGroupAllocPolicy,
1441 1441
    _PGroupNodeParams,
1442 1442
    _PDiskParams,
1443
    _PHvState,
1444
    _PDiskState,
1443 1445
    ]
1444 1446
  OP_RESULT = _TSetParamsResult
1445 1447

  
b/man/gnt-group.rst
74 74
| **modify**
75 75
| [--node-parameters=*NDPARAMS*]
76 76
| [--alloc-policy=*POLICY*]
77
| [--hypervisor-state *hvstate*]
78
| [--disk-state *diskstate*]
77 79
| {*group*}
78 80

  
79 81
Modifies some parameters from the node group.
80 82

  
81
The ``--node-parameters`` and ``--alloc-policy`` optiosn are documented
82
in the **add** command above.
83
The ``--node-parameters`` and ``--alloc-policy`` options are documented
84
in the **add** command above. ``--hypervisor-state`` as well as
85
``--disk-state`` are documented in detail in **ganeti**(7).
83 86

  
84 87
REMOVE
85 88
~~~~~~

Also available in: Unified diff