Revision 976b78ba

b/lib/cli.py
173 173
  "SPECS_MEM_SIZE_OPT",
174 174
  "SPECS_NIC_COUNT_OPT",
175 175
  "IPOLICY_DISK_TEMPLATES",
176
  "IPOLICY_VCPU_RATIO",
176 177
  "SPICE_CACERT_OPT",
177 178
  "SPICE_CERT_OPT",
178 179
  "SRC_DIR_OPT",
......
811 812
                                 help="Comma-separated list of"
812 813
                                 " enabled disk templates")
813 814

  
815
IPOLICY_VCPU_RATIO = cli_option("--ipolicy-vcpu-ratio",
816
                                 dest="ipolicy_vcpu_ratio",
817
                                 type="float", default=None,
818
                                 help="The maximum allowed vcpu-to-cpu ratio")
819

  
814 820
HYPERVISOR_OPT = cli_option("-H", "--hypervisor-parameters", dest="hypervisor",
815 821
                            help="Hypervisor and hypervisor options, in the"
816 822
                            " format hypervisor:option=value,option=value,...",
......
1402 1408
  SPECS_MEM_SIZE_OPT,
1403 1409
  SPECS_NIC_COUNT_OPT,
1404 1410
  IPOLICY_DISK_TEMPLATES,
1411
  IPOLICY_VCPU_RATIO,
1405 1412
  ]
1406 1413

  
1407 1414

  
b/lib/client/gnt_cluster.py
143 143
    utils.ForceDictType(diskparams[templ], constants.DISK_DT_TYPES)
144 144

  
145 145
  # prepare ipolicy dict
146
  ispecs_dts = opts.ipolicy_disk_templates # hate long var names
147
  ipolicy_raw = \
148
    objects.CreateIPolicyFromOpts(ispecs_mem_size=opts.ispecs_mem_size,
149
                                  ispecs_cpu_count=opts.ispecs_cpu_count,
150
                                  ispecs_disk_count=opts.ispecs_disk_count,
151
                                  ispecs_disk_size=opts.ispecs_disk_size,
152
                                  ispecs_nic_count=opts.ispecs_nic_count,
153
                                  ipolicy_disk_templates=ispecs_dts,
154
                                  fill_all=True)
146
  ipolicy_raw = objects.CreateIPolicyFromOpts(
147
    ispecs_mem_size=opts.ispecs_mem_size,
148
    ispecs_cpu_count=opts.ispecs_cpu_count,
149
    ispecs_disk_count=opts.ispecs_disk_count,
150
    ispecs_disk_size=opts.ispecs_disk_size,
151
    ispecs_nic_count=opts.ispecs_nic_count,
152
    ipolicy_disk_templates=opts.ipolicy_disk_templates,
153
    ipolicy_vcpu_ratio=opts.ipolicy_vcpu_ratio,
154
    fill_all=True)
155 155
  ipolicy = objects.FillIPolicy(constants.IPOLICY_DEFAULTS, ipolicy_raw)
156 156

  
157 157
  if opts.candidate_pool_size is None:
......
997 997
  if ndparams is not None:
998 998
    utils.ForceDictType(ndparams, constants.NDS_PARAMETER_TYPES)
999 999

  
1000
  ispecs_dts = opts.ipolicy_disk_templates
1001
  ipolicy = \
1002
    objects.CreateIPolicyFromOpts(ispecs_mem_size=opts.ispecs_mem_size,
1003
                                  ispecs_cpu_count=opts.ispecs_cpu_count,
1004
                                  ispecs_disk_count=opts.ispecs_disk_count,
1005
                                  ispecs_disk_size=opts.ispecs_disk_size,
1006
                                  ispecs_nic_count=opts.ispecs_nic_count,
1007
                                  ipolicy_disk_templates=ispecs_dts)
1000
  ipolicy = objects.CreateIPolicyFromOpts(
1001
    ispecs_mem_size=opts.ispecs_mem_size,
1002
    ispecs_cpu_count=opts.ispecs_cpu_count,
1003
    ispecs_disk_count=opts.ispecs_disk_count,
1004
    ispecs_disk_size=opts.ispecs_disk_size,
1005
    ispecs_nic_count=opts.ispecs_nic_count,
1006
    ipolicy_disk_templates=opts.ipolicy_disk_templates,
1007
    ipolicy_vcpu_ratio=opts.ipolicy_vcpu_ratio,
1008
    )
1008 1009

  
1009 1010
  mnh = opts.maintain_node_health
1010 1011

  
b/lib/objects.py
186 186
                          ispecs_disk_size=None,
187 187
                          ispecs_nic_count=None,
188 188
                          ipolicy_disk_templates=None,
189
                          ipolicy_vcpu_ratio=None,
189 190
                          group_ipolicy=False,
190 191
                          allowed_values=None,
191 192
                          fill_all=False):
......
221 222
    for key, val in specs.items(): # {min: .. ,max: .., std: ..}
222 223
      ipolicy_out[key][name] = val
223 224

  
224
  # no filldict for lists
225
  if not group_ipolicy and fill_all and ipolicy_disk_templates is None:
226
    ipolicy_disk_templates = constants.DISK_TEMPLATES
225
  # no filldict for non-dicts
226
  if not group_ipolicy and fill_all:
227
    if ipolicy_disk_templates is None:
228
      ipolicy_disk_templates = constants.DISK_TEMPLATES
229
    if ipolicy_vcpu_ratio is None:
230
      ipolicy_vcpu_ratio = \
231
        constants.IPOLICY_DEFAULTS[constants.IPOLICY_VCPU_RATIO]
227 232
  if ipolicy_disk_templates is not None:
228 233
    ipolicy_out[constants.IPOLICY_DTS] = list(ipolicy_disk_templates)
234
  if ipolicy_vcpu_ratio is not None:
235
    ipolicy_out[constants.IPOLICY_VCPU_RATIO] = ipolicy_vcpu_ratio
229 236

  
230 237
  assert not (frozenset(ipolicy_out.keys()) - constants.IPOLICY_ALL_KEYS)
231 238

  

Also available in: Unified diff