Revision 9939547b

b/doc/examples/batcher-instances.json
1
{
2
  "instance1.example.com": {
3
    "template": "drbd",
4
    "os": "debootstrap",
5
    "disk_size": ["25G"],
6
    "ram_size": 512
7
  },
8
  "instance2.example.com": {
9
    "template": "plain",
10
    "os": "debootstrap",
11
    "disk_size": ["100G"],
12
    "ram_size": 512
13
  }
14
}
b/lib/cmdlib.py
4193 4193
          raise errors.OpPrereqError("Invalid MAC address specified: %s" %
4194 4194
                                     mac)
4195 4195
      # bridge verification
4196
      bridge = nic.get("bridge", self.cfg.GetDefBridge())
4196
      bridge = nic.get("bridge", None)
4197
      if bridge is None:
4198
        bridge = self.cfg.GetDefBridge()
4197 4199
      self.nics.append(objects.NIC(mac=mac, ip=nic_ip, bridge=bridge))
4198 4200

  
4199 4201
    # disk checks/pre-build
b/lib/utils.py
751 751
  is always an int in MiB.
752 752

  
753 753
  """
754
  m = re.match('^([.\d]+)\s*([a-zA-Z]+)?$', input_string)
754
  m = re.match('^([.\d]+)\s*([a-zA-Z]+)?$', str(input_string))
755 755
  if not m:
756 756
    raise errors.UnitParseError("Invalid format")
757 757

  
b/scripts/gnt-instance
375 375
  in the form::
376 376

  
377 377
    {"instance-name":{
378
      "disk_size": 25,
379
      "swap_size": 1024,
378
      "disk_size": [20480],
380 379
      "template": "drbd",
381 380
      "backend": {
382 381
        "memory": 512,
383 382
        "vcpus": 1 },
384
      "os": "etch-image",
383
      "os": "debootstrap",
385 384
      "primary_node": "firstnode",
386 385
      "secondary_node": "secondnode",
387 386
      "iallocator": "dumb"}
......
397 396
  @return: the desired exit code
398 397

  
399 398
  """
400
  _DEFAULT_SPECS = {"disk_size": 20 * 1024,
401
                    "swap_size": 4 * 1024,
399
  _DEFAULT_SPECS = {"disk_size": [20 * 1024],
402 400
                    "backend": {},
403 401
                    "iallocator": None,
404 402
                    "primary_node": None,
......
458 456
    if specs['hypervisor']:
459 457
      hypervisor, hvparams = specs['hypervisor'].iteritems()
460 458

  
459
    disks = []
460
    for elem in specs['disk_size']:
461
      try:
462
        size = utils.ParseUnit(elem)
463
      except ValueError, err:
464
        raise errors.OpPrereqError("Invalid disk size '%s' for"
465
                                   " instance %s: %s" %
466
                                   (elem, name, err))
467
      disks.append({"size": size})
468

  
469
    nic0 = {'ip': specs['ip'], 'bridge': specs['bridge'], 'mac': specs['mac']}
470

  
461 471
    op = opcodes.OpCreateInstance(instance_name=name,
462
                                  disk_size=specs['disk_size'],
463
                                  swap_size=specs['swap_size'],
472
                                  disks=disks,
464 473
                                  disk_template=specs['template'],
465 474
                                  mode=constants.INSTANCE_CREATE,
466 475
                                  os_type=specs['os'],
467 476
                                  pnode=specs['primary_node'],
468 477
                                  snode=specs['secondary_node'],
469
                                  ip=specs['ip'], bridge=specs['bridge'],
478
                                  nics=[nic0],
470 479
                                  start=specs['start'],
471 480
                                  ip_check=specs['ip_check'],
472 481
                                  wait_for_sync=True,
473
                                  mac=specs['mac'],
474 482
                                  iallocator=specs['iallocator'],
475 483
                                  hypervisor=hypervisor,
476 484
                                  hvparams=hvparams,

Also available in: Unified diff