Revision 0ec2ce46 lib/client/gnt_node.py

b/lib/client/gnt_node.py
827 827
  all_changes = [opts.master_candidate, opts.drained, opts.offline,
828 828
                 opts.master_capable, opts.vm_capable, opts.secondary_ip,
829 829
                 opts.ndparams]
830
  if all_changes.count(None) == len(all_changes):
830
  if (all_changes.count(None) == len(all_changes) and
831
      not (opts.hv_state or opts.disk_state)):
831 832
    ToStderr("Please give at least one of the parameters.")
832 833
    return 1
833 834

  
835
  if opts.disk_state:
836
    disk_state = utils.FlatToDict(opts.disk_state)
837
  else:
838
    disk_state = {}
839

  
840
  hv_state = dict(opts.hv_state)
841

  
834 842
  op = opcodes.OpNodeSetParams(node_name=args[0],
835 843
                               master_candidate=opts.master_candidate,
836 844
                               offline=opts.offline,
......
841 849
                               force=opts.force,
842 850
                               ndparams=opts.ndparams,
843 851
                               auto_promote=opts.auto_promote,
844
                               powered=opts.node_powered)
852
                               powered=opts.node_powered,
853
                               hv_state=hv_state,
854
                               disk_state=disk_state)
845 855

  
846 856
  # even if here we process the result, we allow submit only
847 857
  result = SubmitOrSend(op, opts)
......
905 915
    [FORCE_OPT, SUBMIT_OPT, MC_OPT, DRAINED_OPT, OFFLINE_OPT,
906 916
     CAPAB_MASTER_OPT, CAPAB_VM_OPT, SECONDARY_IP_OPT,
907 917
     AUTO_PROMOTE_OPT, DRY_RUN_OPT, PRIORITY_OPT, NODE_PARAMS_OPT,
908
     NODE_POWERED_OPT],
918
     NODE_POWERED_OPT, HV_STATE_OPT, DISK_STATE_OPT],
909 919
    "<node_name>", "Alters the parameters of a node"),
910 920
  "powercycle": (
911 921
    PowercycleNode, ARGS_ONE_NODE,

Also available in: Unified diff