<font size=2 face="sans-serif">Hi all,</font>
<br><font size=2 face="sans-serif">I have installed devstack (nova 2012.2-dev
) on a single host (virtual host) to test instance_type_extra_specs.</font>
<br>
<br><font size=2 face="sans-serif">The capabilities and cpu_info of my
host are the following :</font>
<br>
<br><font size=2 face="sans-serif">cpu_info of compute_nodes table of nova
db :</font>
<br><font size=2 face="sans-serif">------------------------------------------------------------------</font>
<br><font size=2 face="sans-serif">cpu_info : {</font>
<br><font size=2 face="sans-serif"> "vendor":
"Intel", </font>
<br><font size=2 face="sans-serif"> "features":
["lahf_lm", "lm", "syscall", "hypervisor",
"cx16", "ssse3", "pni", "ss", "sse2",
"acpi", "ds", "clflush", "apic"],
</font>
<br><font size=2 face="sans-serif"> "permitted_instance_types":
["i686", "x86_64"], </font>
<br><font size=2 face="sans-serif"> "model":
"pentium3", </font>
<br><font size=2 face="sans-serif"> "arch":
"x86_64", </font>
<br><font size=2 face="sans-serif"> "topology":
{"cores": 1, "threads": 1, "sockets": 2}</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br>
<br><font size=2 face="sans-serif">capabilities published by nova-compute
service and used in compute_capabilities_filter.py file :</font>
<br><font size=2 face="sans-serif">---------------------------------------------------------------------------------------------------------------------------------------------</font>
<br><font size=2 face="sans-serif">Capabilities : {</font>
<br><font size=2 face="sans-serif"> u'disk_available':
5, </font>
<br><font size=2 face="sans-serif"> u'vcpus_used':
1, </font>
<br><font size=2 face="sans-serif"> u'supported_instances':
[[u'i686', u'qemu', u'hvm'], [u'x86_64', u'qemu', u'hvm']], </font>
<br><font size=2 face="sans-serif"> u'hypervisor_type':
u'QEMU', </font>
<br><font size=2 face="sans-serif"> u'host_ip':
u'172.31.70.169', </font>
<br><font size=2 face="sans-serif"> u'hypervisor_hostname':
u'folsom-mg', </font>
<br><font size=2 face="sans-serif"> u'host_memory_free':
455, </font>
<br><font size=2 face="sans-serif"> u'disk_total':
15, </font>
<br><font size=2 face="sans-serif"> u'cpu_info':
{</font>
<br><font size=2 face="sans-serif">
u'vendor': u'Intel', </font>
<br><font size=2 face="sans-serif">
u'features': [u'lahf_lm', u'lm', u'syscall',
u'hypervisor', u'cx16', u'ssse3', u'pni', u'ss', u'sse2', u'acpi', u'ds',
u'clflush', u'apic'], </font>
<br><font size=2 face="sans-serif">
u'permitted_instance_types': [u'i686', u'x86_64'],
</font>
<br><font size=2 face="sans-serif">
u'model': u'pentium3', </font>
<br><font size=2 face="sans-serif">
u'arch': u'x86_64', </font>
<br><font size=2 face="sans-serif">
u'topology': {u'cores': 1, u'threads': 1,
u'sockets': 2}</font>
<br><font size=2 face="sans-serif"> },
</font>
<br><font size=2 face="sans-serif"> u'host_memory_total':
2003, </font>
<br><font size=2 face="sans-serif"> 'timestamp':
datetime.datetime(2012, 8, 22, 12, 42, 56, 948437), </font>
<br><font size=2 face="sans-serif"> u'hypervisor_version':
1000000, </font>
<br><font size=2 face="sans-serif"> u'disk_used':
10, </font>
<br><font size=2 face="sans-serif"> u'vcpus':
2</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif">For my tests, I create an instance_type
named michel with differents instance_type_extra_specs using nova-manage
instance_type set_key/unset_key command.</font>
<br><font size=2 face="sans-serif">The results are listed below (nova-manage
instance_type list) :</font>
<br><font size=2 face="sans-serif">1- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'titi': u'bonjour'}</font>
<br><font size=2 face="sans-serif">2- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'vcpus': u'== 2'}</font>
<br><font size=2 face="sans-serif">3- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'vcpus': u'>= 1'}</font>
<br><font size=2 face="sans-serif">4- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'vcpus': u'>= 3'}</font>
<br><font size=2 face="sans-serif">5- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'hypervisor_type': u'QEMU'}</font>
<br><font size=2 face="sans-serif">6- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'hypervisor_type': u's== QEMU'}</font>
<br><font size=2 face="sans-serif">7- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'hypervisor_type': u'<in> QEMU'}</font>
<br><font size=2 face="sans-serif">8- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'hypervisor_type': u'<in> QE'}</font>
<br><font size=2 face="sans-serif">9- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'hypervisor_type': u'<in> EU'}</font>
<br>
<br><font size=2 face="sans-serif">10- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'cpu_info': u"<in> 'model': 'pentium3'"}</font>
<br><font size=2 face="sans-serif">11- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'cpu_info': u'<in> model: pentium3'}</font>
<br><font size=2 face="sans-serif">12- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'cpu_info': u"<in> 'pentium3'"}</font>
<br><font size=2 face="sans-serif">13- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'cpu_info': u'<in> pentium3'}</font>
<br><font size=2 face="sans-serif">14- michel: Memory: 1024MB, VCPUS: 2,
Root: 40GB, Ephemeral: 0Gb, FlavorID: 15, Swap: 0MB, RXTX Factor: 1.0,
ExtraSpecs {u'cpu_info': u"<in> u'pentium3'"}</font>
<br>
<br><font size=2 face="sans-serif">On nova boot command, the filter scheduler
is used with ComputeCapabilitiesFilter class.</font>
<br><font size=2 face="sans-serif">No problem in my tests with extra_specs
values titi (not existing in capabilities), vcpus and hypervisor_type.</font>
<br><font size=2 face="sans-serif">Cases 1, 4, 9 fail instance_type extra_specs
requirements in ComputeCapabilitiesFilter :: host_passes procedure (OK)</font>
<br><font size=2 face="sans-serif">Cases 2, 3, 5, 6, 7, 8 pass instance_type
extra_specs requirements in ComputeCapabilitiesFilter :: host_passes procedure
(OK)</font>
<br>
<br><font size=2 face="sans-serif">But when I want to specify a key/value
pair in instance_type_extra_specs concerning cpu_info capabilities, the
test is always failed.</font>
<br><font size=2 face="sans-serif">Is it a syntax problem nova-manage instance_type
set_key command?</font>
<br><font size=2 face="sans-serif">Or is it due to the fact that cpu_info
is a sub-dict of capabilities dict?</font>
<br>
<br><font size=2 face="sans-serif">Thank you in advance for your help.</font>
<br>
<br><font size=2 face="sans-serif">Michel</font>
<br>
<br>
<br>
<br>
<br>
<br>