Revision 57dc299a lib/bootstrap.py

b/lib/bootstrap.py
1 1
#
2 2
#
3 3

  
4
# Copyright (C) 2006, 2007, 2008, 2010, 2011 Google Inc.
4
# Copyright (C) 2006, 2007, 2008, 2010, 2011, 2012 Google Inc.
5 5
#
6 6
# This program is free software; you can redistribute it and/or modify
7 7
# it under the terms of the GNU General Public License as published by
......
414 414
  objects.UpgradeBeParams(beparams)
415 415
  utils.ForceDictType(beparams, constants.BES_PARAMETER_TYPES)
416 416
  utils.ForceDictType(nicparams, constants.NICS_PARAMETER_TYPES)
417
  for key, val in ipolicy.items():
418
    if key not in constants.IPOLICY_PARAMETERS:
419
      raise errors.OpPrereqError("'%s' is not a valid key for instance policy"
420
                                 " description", key)
421
    utils.ForceDictType(val, constants.ISPECS_PARAMETER_TYPES)
422 417

  
423 418
  objects.NIC.CheckParameterSyntax(nicparams)
419

  
424 420
  full_ipolicy = objects.FillIPolicy(constants.IPOLICY_DEFAULTS, ipolicy)
425
  objects.InstancePolicy.CheckParameterSyntax(full_ipolicy)
426 421

  
427 422
  if ndparams is not None:
428 423
    utils.ForceDictType(ndparams, constants.NDS_PARAMETER_TYPES)
......
430 425
    ndparams = dict(constants.NDC_DEFAULTS)
431 426

  
432 427
  # This is ugly, as we modify the dict itself
433
  # FIXME: Make utils.ForceDictType pure functional or write a wrapper around it
428
  # FIXME: Make utils.ForceDictType pure functional or write a wrapper
429
  # around it
434 430
  if hv_state:
435 431
    for hvname, hvs_data in hv_state.items():
436 432
      utils.ForceDictType(hvs_data, constants.HVSTS_PARAMETER_TYPES)
......
526 522
    primary_ip_family=ipcls.family,
527 523
    prealloc_wipe_disks=prealloc_wipe_disks,
528 524
    use_external_mip_script=use_external_mip_script,
529
    ipolicy=ipolicy,
525
    ipolicy=full_ipolicy,
530 526
    hv_state_static=hv_state,
531 527
    disk_state_static=disk_state,
532 528
    )

Also available in: Unified diff