Revision d948c101

b/lib/cli.py
3685 3685
  return parsed
3686 3686

  
3687 3687

  
3688
def CreateIPolicyFromOpts(ispecs_mem_size=None,
3689
                          ispecs_cpu_count=None,
3690
                          ispecs_disk_count=None,
3691
                          ispecs_disk_size=None,
3692
                          ispecs_nic_count=None,
3693
                          ipolicy_disk_templates=None,
3694
                          ipolicy_vcpu_ratio=None,
3695
                          ipolicy_spindle_ratio=None,
3696
                          group_ipolicy=False,
3697
                          allowed_values=None,
3698
                          fill_all=False):
3699
  """Creation of instance policy based on command line options.
3700

  
3701
  @param fill_all: whether for cluster policies we should ensure that
3702
    all values are filled
3703

  
3704

  
3705
  """
3688
def _InitIspecsFromOpts(ipolicy, ispecs_mem_size, ispecs_cpu_count,
3689
                        ispecs_disk_count, ispecs_disk_size, ispecs_nic_count,
3690
                        group_ipolicy, allowed_values):
3706 3691
  try:
3707 3692
    if ispecs_mem_size:
3708 3693
      ispecs_mem_size = _MaybeParseUnit(ispecs_mem_size)
......
3715 3700
                               errors.ECODE_INVAL)
3716 3701

  
3717 3702
  # prepare ipolicy dict
3718
  ipolicy_transposed = {
3703
  ispecs_transposed = {
3719 3704
    constants.ISPEC_MEM_SIZE: ispecs_mem_size,
3720 3705
    constants.ISPEC_CPU_COUNT: ispecs_cpu_count,
3721 3706
    constants.ISPEC_DISK_COUNT: ispecs_disk_count,
......
3728 3713
    forced_type = TISPECS_GROUP_TYPES
3729 3714
  else:
3730 3715
    forced_type = TISPECS_CLUSTER_TYPES
3731

  
3732
  for specs in ipolicy_transposed.values():
3716
  for specs in ispecs_transposed.values():
3733 3717
    utils.ForceDictType(specs, forced_type, allowed_values=allowed_values)
3734 3718

  
3735 3719
  # then transpose
3736
  ipolicy_out = objects.MakeEmptyIPolicy()
3737
  for name, specs in ipolicy_transposed.iteritems():
3720
  for (name, specs) in ispecs_transposed.iteritems():
3738 3721
    assert name in constants.ISPECS_PARAMETERS
3739 3722
    for key, val in specs.items(): # {min: .. ,max: .., std: ..}
3740
      ipolicy_out[key][name] = val
3723
      ipolicy[key][name] = val
3724

  
3725

  
3726
def CreateIPolicyFromOpts(ispecs_mem_size=None,
3727
                          ispecs_cpu_count=None,
3728
                          ispecs_disk_count=None,
3729
                          ispecs_disk_size=None,
3730
                          ispecs_nic_count=None,
3731
                          ipolicy_disk_templates=None,
3732
                          ipolicy_vcpu_ratio=None,
3733
                          ipolicy_spindle_ratio=None,
3734
                          group_ipolicy=False,
3735
                          allowed_values=None,
3736
                          fill_all=False):
3737
  """Creation of instance policy based on command line options.
3738

  
3739
  @param fill_all: whether for cluster policies we should ensure that
3740
    all values are filled
3741

  
3742

  
3743
  """
3744

  
3745
  ipolicy_out = objects.MakeEmptyIPolicy()
3746
  _InitIspecsFromOpts(ipolicy_out, ispecs_mem_size, ispecs_cpu_count,
3747
                      ispecs_disk_count, ispecs_disk_size, ispecs_nic_count,
3748
                      group_ipolicy, allowed_values)
3741 3749

  
3742 3750
  if ipolicy_disk_templates is not None:
3743 3751
    ipolicy_out[constants.IPOLICY_DTS] = list(ipolicy_disk_templates)

Also available in: Unified diff