Revision debac808 scripts/gnt-instance

b/scripts/gnt-instance
79 79
    client = GetClient()
80 80
  if mode == _SHUTDOWN_CLUSTER:
81 81
    if names:
82
      raise errors.OpPrereqError("Cluster filter mode takes no arguments")
82
      raise errors.OpPrereqError("Cluster filter mode takes no arguments",
83
                                 errors.ECODE_INVAL)
83 84
    idata = client.QueryInstances([], ["name"], False)
84 85
    inames = [row[0] for row in idata]
85 86

  
......
87 88
                _SHUTDOWN_NODES_PRI,
88 89
                _SHUTDOWN_NODES_SEC):
89 90
    if not names:
90
      raise errors.OpPrereqError("No node names passed")
91
      raise errors.OpPrereqError("No node names passed", errors.ECODE_INVAL)
91 92
    ndata = client.QueryNodes(names, ["name", "pinst_list", "sinst_list"],
92 93
                              False)
93 94
    ipri = [row[1] for row in ndata]
......
105 106

  
106 107
  elif mode == _SHUTDOWN_INSTANCES:
107 108
    if not names:
108
      raise errors.OpPrereqError("No instance names passed")
109
      raise errors.OpPrereqError("No instance names passed",
110
                                 errors.ECODE_INVAL)
109 111
    idata = client.QueryInstances(names, ["name"], False)
110 112
    inames = [row[0] for row in idata]
111 113

  
112 114
  else:
113
    raise errors.OpPrereqError("Unknown mode '%s'" % mode)
115
    raise errors.OpPrereqError("Unknown mode '%s'" % mode, errors.ECODE_INVAL)
114 116

  
115 117
  return inames
116 118

  
......
171 173
  result = client.QueryInstances(names, ["name"], False)
172 174
  for orig_name, row in zip(names, result):
173 175
    if row[0] is None:
174
      raise errors.OpPrereqError("Instance '%s' does not exist" % orig_name)
176
      raise errors.OpPrereqError("Instance '%s' does not exist" % orig_name,
177
                                 errors.ECODE_NOENT)
175 178

  
176 179

  
177 180
def GenericManyOps(operation, fn):
......
190 193
    inames = _ExpandMultiNames(opts.multi_mode, args, client=cl)
191 194
    if not inames:
192 195
      raise errors.OpPrereqError("Selection filter does not match"
193
                                 " any instances")
196
                                 " any instances", errors.ECODE_INVAL)
194 197
    multi_on = opts.multi_mode != _SHUTDOWN_INSTANCES or len(inames) > 1
195 198
    if not (opts.force_multi or not multi_on
196 199
            or _ConfirmOperation(inames, operation)):
......
371 374
    for required_field in ('os', 'template'):
372 375
      if required_field not in spec:
373 376
        raise errors.OpPrereqError('Required field "%s" is missing.' %
374
                                   required_field)
377
                                   required_field, errors.ECODE_INVAL)
375 378
    # Validate special fields
376 379
    if spec['primary_node'] is not None:
377 380
      if (spec['template'] in constants.DTS_NET_MIRROR and
378 381
          spec['secondary_node'] is None):
379 382
        raise errors.OpPrereqError('Template requires secondary node, but'
380
                                   ' there was no secondary provided.')
383
                                   ' there was no secondary provided.',
384
                                   errors.ECODE_INVAL)
381 385
    elif spec['iallocator'] is None:
382 386
      raise errors.OpPrereqError('You have to provide at least a primary_node'
383
                                 ' or an iallocator.')
387
                                 ' or an iallocator.',
388
                                 errors.ECODE_INVAL)
384 389

  
385 390
    if (spec['hvparams'] and
386 391
        not isinstance(spec['hvparams'], dict)):
387
      raise errors.OpPrereqError('Hypervisor parameters must be a dict.')
392
      raise errors.OpPrereqError('Hypervisor parameters must be a dict.',
393
                                 errors.ECODE_INVAL)
388 394

  
389 395
  json_filename = args[0]
390 396
  try:
......
414 420
      except ValueError, err:
415 421
        raise errors.OpPrereqError("Invalid disk size '%s' for"
416 422
                                   " instance %s: %s" %
417
                                   (elem, name, err))
423
                                   (elem, name, err), errors.ECODE_INVAL)
418 424
      disks.append({"size": size})
419 425

  
420 426
    utils.ForceDictType(specs['backend'], constants.BES_PARAMETER_TYPES)
......
429 435

  
430 436
    if specs['nics'] is not None and tmp_nics:
431 437
      raise errors.OpPrereqError("'nics' list incompatible with using"
432
                                 " individual nic fields as well")
438
                                 " individual nic fields as well",
439
                                 errors.ECODE_INVAL)
433 440
    elif specs['nics'] is not None:
434 441
      tmp_nics = specs['nics']
435 442
    elif not tmp_nics:
......
478 485

  
479 486
  inames = _ExpandMultiNames(opts.multi_mode, args)
480 487
  if not inames:
481
    raise errors.OpPrereqError("Selection filter does not match any instances")
488
    raise errors.OpPrereqError("Selection filter does not match any instances",
489
                               errors.ECODE_INVAL)
482 490

  
483 491
  # second, if requested, ask for an OS
484 492
  if opts.select_os is True:
......
672 680
  try:
673 681
    disk = int(disk)
674 682
  except ValueError, err:
675
    raise errors.OpPrereqError("Invalid disk index: %s" % str(err))
683
    raise errors.OpPrereqError("Invalid disk index: %s" % str(err),
684
                               errors.ECODE_INVAL)
676 685
  amount = utils.ParseUnit(args[2])
677 686
  op = opcodes.OpGrowDisk(instance_name=instance, disk=disk, amount=amount,
678 687
                          wait_for_sync=opts.wait_for_sync)
......
752 761
    try:
753 762
      disks = [int(i) for i in opts.disks.split(",")]
754 763
    except ValueError, err:
755
      raise errors.OpPrereqError("Invalid disk index passed: %s" % str(err))
764
      raise errors.OpPrereqError("Invalid disk index passed: %s" % str(err),
765
                                 errors.ECODE_INVAL)
756 766
  cnt = [opts.on_primary, opts.on_secondary, opts.auto,
757 767
         new_2ndary is not None, iallocator is not None].count(True)
758 768
  if cnt != 1:
759 769
    raise errors.OpPrereqError("One and only one of the -p, -s, -a, -n and -i"
760
                               " options must be passed")
770
                               " options must be passed", errors.ECODE_INVAL)
761 771
  elif opts.on_primary:
762 772
    mode = constants.REPLACE_DISK_PRI
763 773
  elif opts.on_secondary:
......
766 776
    mode = constants.REPLACE_DISK_AUTO
767 777
    if disks:
768 778
      raise errors.OpPrereqError("Cannot specify disks when using automatic"
769
                                 " mode")
779
                                 " mode", errors.ECODE_INVAL)
770 780
  elif new_2ndary is not None or iallocator is not None:
771 781
    # replace secondary
772 782
    mode = constants.REPLACE_DISK_CHG
......
1208 1218
      pass
1209 1219
    if disk_op == constants.DDM_ADD:
1210 1220
      if 'size' not in disk_dict:
1211
        raise errors.OpPrereqError("Missing required parameter 'size'")
1221
        raise errors.OpPrereqError("Missing required parameter 'size'",
1222
                                   errors.ECODE_INVAL)
1212 1223
      disk_dict['size'] = utils.ParseUnit(disk_dict['size'])
1213 1224

  
1214 1225
  op = opcodes.OpSetInstanceParams(instance_name=args[0],

Also available in: Unified diff