Revision a8282327 lib/client/gnt_group.py

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],

Also available in: Unified diff