Type verification for vdsm

All, I am working on converting our vdsm schema to yaml. As part of this work [1] I added type verification for request and response data. There was a suggestion to raise an exception when there is type inconsistency but after a bit of testing I can see that there are inconsistencies for many verbs. I introduced strict mode config value which switches between raising exception and logging a warning. At the moment we log inconsistencies but there is a plan to be strict for master and log for stable branches. I would like to ask each vertical representative/maintainer to review the code and fix any inconsistencies in the schema. Thanks, Piotr [1] https://gerrit.ovirt.org/#/c/53919

All, I started to run type verification tests without strict mode and here are some inconsistencies: Please note that some of the entries are many times which corresponds with number of occurrances of particular issue. Host.getCapabilities - return data from vdms: Following parameters ['supportsIPv6', 'hostdevPassthrough', 'lastClientIface'] were not recognized Following parameters ['dhcpv6', 'ipv6gateway', 'gateway'] were not recognized Parameter mtu is not uint type Provided value "0" not defined in AutoNumaBalancingStatus enum for Host.getCapabilities Parameter netConfigDirty is not boolean type Following parameters ['ipv6gateway', 'dhcpv6', 'cfg', 'gateway'] were not recognized No default value specified for permhwaddr parameter in Host.getCapabilities Parameter mtu is not uint type Parameter reservedMem is not uint type Parameter cpuSpeed is not float type Required property directedPassthrough is not provided when calling Host.getCapabilities Parameter totalMemory is not uint type Parameter memSize is not uint type Parameter mode is not int type Provided parameters {'iface': 'ovirtmgmt', 'addr': '192.168.1.106', 'cfg': {'IPV6INIT': 'no', 'DEFROUTE': 'yes', 'HOTPLUG': 'no', 'MTU': '1500', 'DELAY': '0', 'NM_CONTROLLED': 'no', 'BOOTPROTO': 'dhcp', 'STP': 'off', 'DEVICE': 'ovirtmgmt', 'TYPE': 'Bridge', 'ONBOOT': 'yes'}, 'bridged': True, 'ipv6addrs': ['fe80::baca:3aff:fea9:77e2/64'], 'gateway': '192.168.1.1', 'dhcpv4': True, 'netmask': '255.255.255.0', 'dhcpv6': False, 'stp': 'off', 'ipv4addrs': ['192.168.1.106/24'], 'mtu': '1500', 'ipv6gateway': '::', 'ports': ['em1']} do not match any of union NetInfoNetwork values Parameter kvmEnabled is not boolean type Parameter liveMerge is not boolean type Parameter cpuThreads is not uint type Parameter liveSnapshot is not boolean type Following parameters ['dhcpv6'] were not recognized Parameter mtu is not uint type Parameter stp is not boolean type No default value specified for hostQos parameter in Host.getCapabilities Required property bridged is not provided when calling Host.getCapabilities Parameter guestOverhead is not uint type Parameter cpuCores is not uint type Parameter cpuSockets is not uint type Required property ipv6Supported is not provided when calling Host.getCapabilities Parameter buildtime is not string type Parameter buildtime is not string type Provided value "librbd1" not defined in SoftwarePackage enum for Host.getCapabilities Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Provided value "glusterfs-cli" not defined in SoftwarePackage enum for Host.getCapabilities Parameter buildtime is not string type Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Host.getHardwareInfo - return data from vdsm No default value specified for systemProductName parameter in Host.getHardwareInfo No default value specified for systemUUID parameter in Host.getHardwareInfo No default value specified for systemManufacturer parameter in Host.getHardwareInfo No default value specified for systemVersion parameter in Host.getHardwareInfo No default value specified for systemFamily parameter in Host.getHardwareInfo No default value specified for systemSerialNumber parameter in Host.getHardwareInfo Host.setMOMPolicyParameters - return data from vdsm Unsupported type dict in Host.setMOMPolicyParameters please fix Host.hostdevListByCaps - return data from vdsm The return type is not a list of HostDevices but it is a map and HostDevice do not match data sent Host.getStats - return data from vdsm Following parameters ['ksmMergeAcrossNodes', 'haStats'] were not recognized Parameter cpuUserVdsmd is not float type Parameter rxRate is not float type Parameter cpuLoad is not float type Parameter memUsed is not uint type Parameter cpuIdle is not float type Parameter txRate is not float type Parameter txDropped is not uint type Parameter elapsedTime is not uint type Parameter netConfigDirty is not boolean type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter cpuSys is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Parameter cpuUser is not float type Parameter ksmCpu is not float type Parameter memFree is not uint type Parameter free is not uint type Parameter free is not uint type Parameter free is not uint type Parameter free is not uint type Parameter cpuSysVdsmd is not float type Required property haStatus is not provided when calling Host.getStats Parameter bootTime is not uint type Parameter rxDropped is not uint type Parameter anonHugePages is not uint type StoragePool.disconnectStorageServer - request data Provided value "1" not defined in StorageDomainType enum for StoragePool.disconnectStorageServer Provided parameters {u'id': u'9228a1f7-5311-4136-86eb-87a4f916616e', u'connection': u'1.1.1.1:/export/data', u'iqn': u'', u'user': u'', u'tpgt': u'1', u'protocol_version': u'3', u'password': '********', u'port': u''} do not match any of union ConnectionRefParameters values StorageDomain.create - request data Provided value "1" not defined in StorageDomainType enum for StorageDomain.create Parameter typeArgs is defined as StorageDomainCreateArguments but it is a string StoragePool.connectStorageServer - request data Provided value "1" not defined in StorageDomainType enum for StoragePool.connectStorageServer Provided parameters {u'id': u'9228a1f7-5311-4136-86eb-87a4f916616e', u'connection': u'1.1.1.1:/export/data', u'iqn': u'', u'user': u'', u'tpgt': u'1', u'protocol_version': u'3', u'password': '********', u'port': u''} do not match any of union ConnectionRefParameters values Many more verbs to come. It seems that there is more verbs which do not comply with schema than those that do. I am not able to progress more with the validation because StorageDomain.create and Host.hostdevListByCaps currently break validation code due to type inconsistencies. I need to make it more resilient. Thanks, Piotr On Thu, Mar 3, 2016 at 5:37 PM, Piotr Kliczewski <piotr.kliczewski@gmail.com> wrote:
All,
I am working on converting our vdsm schema to yaml. As part of this work [1] I added type verification for request and response data. There was a suggestion to raise an exception when there is type inconsistency but after a bit of testing I can see that there are inconsistencies for many verbs.
I introduced strict mode config value which switches between raising exception and logging a warning. At the moment we log inconsistencies but there is a plan to be strict for master and log for stable branches.
I would like to ask each vertical representative/maintainer to review the code and fix any inconsistencies in the schema.
Thanks, Piotr

On Mon, Mar 7, 2016 at 10:26 PM, Piotr Kliczewski <piotr.kliczewski@gmail.com> wrote:
All,
I started to run type verification tests without strict mode and here are some inconsistencies: Please note that some of the entries are many times which corresponds with number of occurrances of particular issue.
Host.getCapabilities
- return data from vdms: Following parameters ['supportsIPv6', 'hostdevPassthrough', 'lastClientIface'] were not recognized Following parameters ['dhcpv6', 'ipv6gateway', 'gateway'] were not recognized Parameter mtu is not uint type Provided value "0" not defined in AutoNumaBalancingStatus enum for Host.getCapabilities Parameter netConfigDirty is not boolean type Following parameters ['ipv6gateway', 'dhcpv6', 'cfg', 'gateway'] were not recognized No default value specified for permhwaddr parameter in Host.getCapabilities Parameter mtu is not uint type Parameter reservedMem is not uint type Parameter cpuSpeed is not float type Required property directedPassthrough is not provided when calling Host.getCapabilities Parameter totalMemory is not uint type Parameter memSize is not uint type Parameter mode is not int type Provided parameters {'iface': 'ovirtmgmt', 'addr': '192.168.1.106', 'cfg': {'IPV6INIT': 'no', 'DEFROUTE': 'yes', 'HOTPLUG': 'no', 'MTU': '1500', 'DELAY': '0', 'NM_CONTROLLED': 'no', 'BOOTPROTO': 'dhcp', 'STP': 'off', 'DEVICE': 'ovirtmgmt', 'TYPE': 'Bridge', 'ONBOOT': 'yes'}, 'bridged': True, 'ipv6addrs': ['fe80::baca:3aff:fea9:77e2/64'], 'gateway': '192.168.1.1', 'dhcpv4': True, 'netmask': '255.255.255.0', 'dhcpv6': False, 'stp': 'off', 'ipv4addrs': ['192.168.1.106/24'], 'mtu': '1500', 'ipv6gateway': '::', 'ports': ['em1']} do not match any of union NetInfoNetwork values Parameter kvmEnabled is not boolean type Parameter liveMerge is not boolean type Parameter cpuThreads is not uint type Parameter liveSnapshot is not boolean type Following parameters ['dhcpv6'] were not recognized Parameter mtu is not uint type Parameter stp is not boolean type No default value specified for hostQos parameter in Host.getCapabilities Required property bridged is not provided when calling Host.getCapabilities Parameter guestOverhead is not uint type Parameter cpuCores is not uint type Parameter cpuSockets is not uint type Required property ipv6Supported is not provided when calling Host.getCapabilities Parameter buildtime is not string type Parameter buildtime is not string type Provided value "librbd1" not defined in SoftwarePackage enum for Host.getCapabilities Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Provided value "glusterfs-cli" not defined in SoftwarePackage enum for Host.getCapabilities Parameter buildtime is not string type Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities
Host.getHardwareInfo
- return data from vdsm
No default value specified for systemProductName parameter in Host.getHardwareInfo No default value specified for systemUUID parameter in Host.getHardwareInfo No default value specified for systemManufacturer parameter in Host.getHardwareInfo No default value specified for systemVersion parameter in Host.getHardwareInfo No default value specified for systemFamily parameter in Host.getHardwareInfo No default value specified for systemSerialNumber parameter in Host.getHardwareInfo
Host.setMOMPolicyParameters
- return data from vdsm
Unsupported type dict in Host.setMOMPolicyParameters please fix
Host.hostdevListByCaps
- return data from vdsm
The return type is not a list of HostDevices but it is a map and HostDevice do not match data sent
Host.getStats
- return data from vdsm
Following parameters ['ksmMergeAcrossNodes', 'haStats'] were not recognized Parameter cpuUserVdsmd is not float type Parameter rxRate is not float type Parameter cpuLoad is not float type Parameter memUsed is not uint type Parameter cpuIdle is not float type Parameter txRate is not float type Parameter txDropped is not uint type Parameter elapsedTime is not uint type Parameter netConfigDirty is not boolean type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter cpuSys is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Parameter cpuUser is not float type Parameter ksmCpu is not float type Parameter memFree is not uint type Parameter free is not uint type Parameter free is not uint type Parameter free is not uint type Parameter free is not uint type Parameter cpuSysVdsmd is not float type Required property haStatus is not provided when calling Host.getStats Parameter bootTime is not uint type Parameter rxDropped is not uint type Parameter anonHugePages is not uint type
StoragePool.disconnectStorageServer
- request data
Provided value "1" not defined in StorageDomainType enum for StoragePool.disconnectStorageServer Provided parameters {u'id': u'9228a1f7-5311-4136-86eb-87a4f916616e', u'connection': u'1.1.1.1:/export/data', u'iqn': u'', u'user': u'', u'tpgt': u'1', u'protocol_version': u'3', u'password': '********', u'port': u''} do not match any of union ConnectionRefParameters values
Yes, this is a known issue, engine sends the enum value instead of the name, making debugging much harder. Unfortunately, we cannot fix this because we must be compatible with older engines. I think we will provide a new verb requiring the correct type, and deprecate the old verb.
StorageDomain.create
- request data
Provided value "1" not defined in StorageDomainType enum for StorageDomain.create Parameter typeArgs is defined as StorageDomainCreateArguments but it is a string
Same
StoragePool.connectStorageServer
- request data
Provided value "1" not defined in StorageDomainType enum for StoragePool.connectStorageServer Provided parameters {u'id': u'9228a1f7-5311-4136-86eb-87a4f916616e', u'connection': u'1.1.1.1:/export/data', u'iqn': u'', u'user': u'', u'tpgt': u'1', u'protocol_version': u'3', u'password': '********', u'port': u''} do not match any of union ConnectionRefParameters values
Same
Many more verbs to come.
It seems that there is more verbs which do not comply with schema than those that do. I am not able to progress more with the validation because StorageDomain.create and Host.hostdevListByCaps currently break validation code due to type inconsistencies. I need to make it more resilient.
Thanks for this work! Nir

On Mon, Mar 7, 2016 at 9:42 PM, Nir Soffer <nsoffer@redhat.com> wrote:
On Mon, Mar 7, 2016 at 10:26 PM, Piotr Kliczewski <piotr.kliczewski@gmail.com> wrote:
All,
I started to run type verification tests without strict mode and here are some inconsistencies: Please note that some of the entries are many times which corresponds with number of occurrances of particular issue.
Host.getCapabilities
- return data from vdms: Following parameters ['supportsIPv6', 'hostdevPassthrough', 'lastClientIface'] were not recognized Following parameters ['dhcpv6', 'ipv6gateway', 'gateway'] were not recognized Parameter mtu is not uint type Provided value "0" not defined in AutoNumaBalancingStatus enum for Host.getCapabilities Parameter netConfigDirty is not boolean type Following parameters ['ipv6gateway', 'dhcpv6', 'cfg', 'gateway'] were not recognized No default value specified for permhwaddr parameter in Host.getCapabilities Parameter mtu is not uint type Parameter reservedMem is not uint type Parameter cpuSpeed is not float type Required property directedPassthrough is not provided when calling Host.getCapabilities Parameter totalMemory is not uint type Parameter memSize is not uint type Parameter mode is not int type Provided parameters {'iface': 'ovirtmgmt', 'addr': '192.168.1.106', 'cfg': {'IPV6INIT': 'no', 'DEFROUTE': 'yes', 'HOTPLUG': 'no', 'MTU': '1500', 'DELAY': '0', 'NM_CONTROLLED': 'no', 'BOOTPROTO': 'dhcp', 'STP': 'off', 'DEVICE': 'ovirtmgmt', 'TYPE': 'Bridge', 'ONBOOT': 'yes'}, 'bridged': True, 'ipv6addrs': ['fe80::baca:3aff:fea9:77e2/64'], 'gateway': '192.168.1.1', 'dhcpv4': True, 'netmask': '255.255.255.0', 'dhcpv6': False, 'stp': 'off', 'ipv4addrs': ['192.168.1.106/24'], 'mtu': '1500', 'ipv6gateway': '::', 'ports': ['em1']} do not match any of union NetInfoNetwork values Parameter kvmEnabled is not boolean type Parameter liveMerge is not boolean type Parameter cpuThreads is not uint type Parameter liveSnapshot is not boolean type Following parameters ['dhcpv6'] were not recognized Parameter mtu is not uint type Parameter stp is not boolean type No default value specified for hostQos parameter in Host.getCapabilities Required property bridged is not provided when calling Host.getCapabilities Parameter guestOverhead is not uint type Parameter cpuCores is not uint type Parameter cpuSockets is not uint type Required property ipv6Supported is not provided when calling Host.getCapabilities Parameter buildtime is not string type Parameter buildtime is not string type Provided value "librbd1" not defined in SoftwarePackage enum for Host.getCapabilities Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Provided value "glusterfs-cli" not defined in SoftwarePackage enum for Host.getCapabilities Parameter buildtime is not string type Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities
Host.getHardwareInfo
- return data from vdsm
No default value specified for systemProductName parameter in Host.getHardwareInfo No default value specified for systemUUID parameter in Host.getHardwareInfo No default value specified for systemManufacturer parameter in Host.getHardwareInfo No default value specified for systemVersion parameter in Host.getHardwareInfo No default value specified for systemFamily parameter in Host.getHardwareInfo No default value specified for systemSerialNumber parameter in Host.getHardwareInfo
Host.setMOMPolicyParameters
- return data from vdsm
Unsupported type dict in Host.setMOMPolicyParameters please fix
Host.hostdevListByCaps
- return data from vdsm
The return type is not a list of HostDevices but it is a map and HostDevice do not match data sent
Host.getStats
- return data from vdsm
Following parameters ['ksmMergeAcrossNodes', 'haStats'] were not recognized Parameter cpuUserVdsmd is not float type Parameter rxRate is not float type Parameter cpuLoad is not float type Parameter memUsed is not uint type Parameter cpuIdle is not float type Parameter txRate is not float type Parameter txDropped is not uint type Parameter elapsedTime is not uint type Parameter netConfigDirty is not boolean type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter cpuSys is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Parameter cpuUser is not float type Parameter ksmCpu is not float type Parameter memFree is not uint type Parameter free is not uint type Parameter free is not uint type Parameter free is not uint type Parameter free is not uint type Parameter cpuSysVdsmd is not float type Required property haStatus is not provided when calling Host.getStats Parameter bootTime is not uint type Parameter rxDropped is not uint type Parameter anonHugePages is not uint type
StoragePool.disconnectStorageServer
- request data
Provided value "1" not defined in StorageDomainType enum for StoragePool.disconnectStorageServer Provided parameters {u'id': u'9228a1f7-5311-4136-86eb-87a4f916616e', u'connection': u'1.1.1.1:/export/data', u'iqn': u'', u'user': u'', u'tpgt': u'1', u'protocol_version': u'3', u'password': '********', u'port': u''} do not match any of union ConnectionRefParameters values
Yes, this is a known issue, engine sends the enum value instead of the name, making debugging much harder. Unfortunately, we cannot fix this because we must be compatible with older engines.
I think we will provide a new verb requiring the correct type, and deprecate the old verb.
What do you think about changing schema to define proper types. We can't change the data but we can have consistent definition of it.
StorageDomain.create
- request data
Provided value "1" not defined in StorageDomainType enum for StorageDomain.create Parameter typeArgs is defined as StorageDomainCreateArguments but it is a string
Same
StoragePool.connectStorageServer
- request data
Provided value "1" not defined in StorageDomainType enum for StoragePool.connectStorageServer Provided parameters {u'id': u'9228a1f7-5311-4136-86eb-87a4f916616e', u'connection': u'1.1.1.1:/export/data', u'iqn': u'', u'user': u'', u'tpgt': u'1', u'protocol_version': u'3', u'password': '********', u'port': u''} do not match any of union ConnectionRefParameters values
Same
Many more verbs to come.
It seems that there is more verbs which do not comply with schema than those that do. I am not able to progress more with the validation because StorageDomain.create and Host.hostdevListByCaps currently break validation code due to type inconsistencies. I need to make it more resilient.
Thanks for this work!
Nir

On Tue, Mar 8, 2016 at 12:05 AM, Piotr Kliczewski <piotr.kliczewski@gmail.com> wrote:
On Mon, Mar 7, 2016 at 9:42 PM, Nir Soffer <nsoffer@redhat.com> wrote:
On Mon, Mar 7, 2016 at 10:26 PM, Piotr Kliczewski <piotr.kliczewski@gmail.com> wrote:
All,
I started to run type verification tests without strict mode and here are some inconsistencies: Please note that some of the entries are many times which corresponds with number of occurrances of particular issue.
Host.getCapabilities
- return data from vdms: Following parameters ['supportsIPv6', 'hostdevPassthrough', 'lastClientIface'] were not recognized Following parameters ['dhcpv6', 'ipv6gateway', 'gateway'] were not recognized Parameter mtu is not uint type Provided value "0" not defined in AutoNumaBalancingStatus enum for Host.getCapabilities Parameter netConfigDirty is not boolean type Following parameters ['ipv6gateway', 'dhcpv6', 'cfg', 'gateway'] were not recognized No default value specified for permhwaddr parameter in Host.getCapabilities Parameter mtu is not uint type Parameter reservedMem is not uint type Parameter cpuSpeed is not float type Required property directedPassthrough is not provided when calling Host.getCapabilities Parameter totalMemory is not uint type Parameter memSize is not uint type Parameter mode is not int type Provided parameters {'iface': 'ovirtmgmt', 'addr': '192.168.1.106', 'cfg': {'IPV6INIT': 'no', 'DEFROUTE': 'yes', 'HOTPLUG': 'no', 'MTU': '1500', 'DELAY': '0', 'NM_CONTROLLED': 'no', 'BOOTPROTO': 'dhcp', 'STP': 'off', 'DEVICE': 'ovirtmgmt', 'TYPE': 'Bridge', 'ONBOOT': 'yes'}, 'bridged': True, 'ipv6addrs': ['fe80::baca:3aff:fea9:77e2/64'], 'gateway': '192.168.1.1', 'dhcpv4': True, 'netmask': '255.255.255.0', 'dhcpv6': False, 'stp': 'off', 'ipv4addrs': ['192.168.1.106/24'], 'mtu': '1500', 'ipv6gateway': '::', 'ports': ['em1']} do not match any of union NetInfoNetwork values Parameter kvmEnabled is not boolean type Parameter liveMerge is not boolean type Parameter cpuThreads is not uint type Parameter liveSnapshot is not boolean type Following parameters ['dhcpv6'] were not recognized Parameter mtu is not uint type Parameter stp is not boolean type No default value specified for hostQos parameter in Host.getCapabilities Required property bridged is not provided when calling Host.getCapabilities Parameter guestOverhead is not uint type Parameter cpuCores is not uint type Parameter cpuSockets is not uint type Required property ipv6Supported is not provided when calling Host.getCapabilities Parameter buildtime is not string type Parameter buildtime is not string type Provided value "librbd1" not defined in SoftwarePackage enum for Host.getCapabilities Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Provided value "glusterfs-cli" not defined in SoftwarePackage enum for Host.getCapabilities Parameter buildtime is not string type Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities
Host.getHardwareInfo
- return data from vdsm
No default value specified for systemProductName parameter in Host.getHardwareInfo No default value specified for systemUUID parameter in Host.getHardwareInfo No default value specified for systemManufacturer parameter in Host.getHardwareInfo No default value specified for systemVersion parameter in Host.getHardwareInfo No default value specified for systemFamily parameter in Host.getHardwareInfo No default value specified for systemSerialNumber parameter in Host.getHardwareInfo
Host.setMOMPolicyParameters
- return data from vdsm
Unsupported type dict in Host.setMOMPolicyParameters please fix
Host.hostdevListByCaps
- return data from vdsm
The return type is not a list of HostDevices but it is a map and HostDevice do not match data sent
Host.getStats
- return data from vdsm
Following parameters ['ksmMergeAcrossNodes', 'haStats'] were not recognized Parameter cpuUserVdsmd is not float type Parameter rxRate is not float type Parameter cpuLoad is not float type Parameter memUsed is not uint type Parameter cpuIdle is not float type Parameter txRate is not float type Parameter txDropped is not uint type Parameter elapsedTime is not uint type Parameter netConfigDirty is not boolean type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter cpuSys is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Parameter cpuUser is not float type Parameter ksmCpu is not float type Parameter memFree is not uint type Parameter free is not uint type Parameter free is not uint type Parameter free is not uint type Parameter free is not uint type Parameter cpuSysVdsmd is not float type Required property haStatus is not provided when calling Host.getStats Parameter bootTime is not uint type Parameter rxDropped is not uint type Parameter anonHugePages is not uint type
StoragePool.disconnectStorageServer
- request data
Provided value "1" not defined in StorageDomainType enum for StoragePool.disconnectStorageServer Provided parameters {u'id': u'9228a1f7-5311-4136-86eb-87a4f916616e', u'connection': u'1.1.1.1:/export/data', u'iqn': u'', u'user': u'', u'tpgt': u'1', u'protocol_version': u'3', u'password': '********', u'port': u''} do not match any of union ConnectionRefParameters values
Yes, this is a known issue, engine sends the enum value instead of the name, making debugging much harder. Unfortunately, we cannot fix this because we must be compatible with older engines.
I think we will provide a new verb requiring the correct type, and deprecate the old verb.
What do you think about changing schema to define proper types. We can't change the data but we can have consistent definition of it.
I'll check this direction.
StorageDomain.create
- request data
Provided value "1" not defined in StorageDomainType enum for StorageDomain.create Parameter typeArgs is defined as StorageDomainCreateArguments but it is a string
Same
StoragePool.connectStorageServer
- request data
Provided value "1" not defined in StorageDomainType enum for StoragePool.connectStorageServer Provided parameters {u'id': u'9228a1f7-5311-4136-86eb-87a4f916616e', u'connection': u'1.1.1.1:/export/data', u'iqn': u'', u'user': u'', u'tpgt': u'1', u'protocol_version': u'3', u'password': '********', u'port': u''} do not match any of union ConnectionRefParameters values
Same
Many more verbs to come.
It seems that there is more verbs which do not comply with schema than those that do. I am not able to progress more with the validation because StorageDomain.create and Host.hostdevListByCaps currently break validation code due to type inconsistencies. I need to make it more resilient.
Thanks for this work!
Nir

Few more verbs which do not align with schema: StoragePool.getInfo - return data from vdsm Following parameters ['type'] were not recognized Parameter lver is not int type Parameter version is not int type Required property domainType is not provided when calling StoragePool.getInfo Following parameters ['isoprefix'] were not recognized Parameter diskfree is not int type Parameter disktotal is not int type StoragePool.getSpmStatus - return data from vdsm Parameter spmLver is not int type Volume.getInfo - return data from vdsm Following parameters ['type'] were not recognized Provided value "2" not defined in DiskType enum for Volume.getInfo Parameter capacity is not uint type Required property allocType is not provided when calling Volume.getInfo Parameter mtime is not uint type Parameter ctime is not int type Parameter truesize is not uint type Parameter apparentsize is not uint type Volume.create - request data Provided value "5" not defined in VolumeFormat enum for Volume.create Provided value "2" not defined in VolumeAllocation enum for Volume.create Provided value "2" not defined in DiskType enum for Volume.create StoragePool.connect - request data Provided value "active" not defined in StorageDomainStatus enum for StoragePool.connect Task.getStatus - return data from vdsm Provided value "" not defined in TaskResult enum for Task.getStatus StoragePool.spmStart - request data Parameter prevLver is not int type Parameter enableScsiFencing is not boolean type Parameter domVersion is not int type Image.delete - request data Parameter postZero is not boolean type Parameter force is not boolean type VM.shutdown - request data Parameter delay is not int type Host.getAllVmStats - return data from vdsm Provided parameters {'vcpuCount': '1', 'displayInfo': [{'tlsPort': u'5901', 'ipAddress': '0', 'type': u'spice', 'port': u'5900'}], 'hash': '880508647164395013', 'acpiEnable': u'true', 'displayIp': '0', 'guestFQDN': '', 'vmId': u'426aef82-ea1d-4442-91d3-fd876540e0f0', 'pid': '13598', 'cpuUsage': '260000000', 'timeOffset': u'0', 'vNodeRuntimeInfo': {'0': [0]}, 'session': 'Unknown', 'displaySecurePort': u'5901', 'displayPort': u'5900', 'memUsage': '0', 'guestIPs': '', 'vcpuQuota': '-1', 'username': 'Unknown', 'kvmEnable': u'true', 'network': {u'vnet0': {'macAddr': u'00:1a:4a:16:01:51', 'rxDropped': '0', 'tx': '1582', 'rxErrors': '0', 'txRate': '0.0', 'txDropped': '0', 'rx': '9339', 'rxRate': '0.0', 'txErrors': '0', 'state': 'unknown', 'sampleTime': 4304006.38, 'speed': '1000', 'name': u'vnet0'}}, 'displayType': 'qxl', 'cpuUser': '0.62', 'vmJobs': {}, 'disks': {u'vda': {'readLatency': '0', 'writtenBytes': '0', 'writeOps': '0', 'apparentsize': '983040', 'readOps': '0', 'writeLatency': '0', 'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', 'readBytes': '0', 'flushLatency': '0', 'readRate': '0.0', 'truesize': '925696', 'writeRate': '0.0'}, u'hdc': {'readLatency': '0', 'writtenBytes': '0', 'writeOps': '0', 'apparentsize': '0', 'readOps': '0', 'writeLatency': '0', 'readBytes': '0', 'flushLatency': '0', 'readRate': '0.0', 'truesize': '0', 'writeRate': '0.0'}}, 'monitorResponse': '0', 'elapsedTime': '169', 'vmType': u'kvm', 'cpuSys': '0.00', 'status': 'Up', 'guestCPUCount': -1, 'appsList': (), 'clientIp': '192.168.1.31', 'statusTime': '4304006380', 'vmName': u'vm', 'vcpuPeriod': 100000L} do not match any of union VmStats values VM.updateDevice - return data from vdsm Provided parameters {u'existingConnAction': u'disconnect', u'disconnectAction': u'LOCK_SCREEN', u'graphicsType': u'spice', u'params': {u'userName': u'admin', u'userId': u'0000001a-001a-001a-001a-000000000346'}, u'ttl': 120, u'deviceType': u'graphics', u'password': '********'} do not match any of union vmUpdateDeviceParams values Following parameters ['afterMigrationStatus', u'spiceSslCipherSuite', u'guestNumaNodes', u'smartcardEnable', u'numaTune', u'bootMenuEnable', 'guestDiskMapping', u'spiceSecureChannels', 'statusTime'] were not recognized No default value specified for display parameter in VM.updateDevice No default value specified for custom parameter in VM.updateDevice Parameter smp is not uint type No default value specified for devices parameter in VM.updateDevice Provided parameters {'alias': u'sound0', u'specParams': {}, u'deviceId': u'406c5995-ec07-45d3-bb02-98c9c4968262', 'address': {u'slot': u'0x04', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'ich6', u'type': u'sound'} do not match any of union VmDevice values Provided parameters {'device': 'memballoon', 'specParams': {'model': 'none'}, 'type': 'balloon', 'target': 1048576, 'alias': u'balloon0'} do not match any of union VmDevice values Provided parameters {'device': u'unix', 'alias': u'channel0', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'1'}} do not match any of union VmDevice values Provided parameters {'device': u'unix', 'alias': u'channel1', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'2'}} do not match any of union VmDevice values Provided parameters {'device': u'spicevmc', 'alias': u'channel2', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'3'}} do not match any of union VmDevice values Provided parameters {'alias': u'virtio-serial0', u'specParams': {}, u'deviceId': u'1b89a659-afc7-40b7-8f96-d18faae7f407', 'address': {u'slot': u'0x05', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'virtio-serial', u'type': u'controller'} do not match any of union VmDevice values Provided parameters {'device': u'usb', 'alias': u'usb', 'type': 'controller', 'address': {u'slot': u'0x01', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x2'}} do not match any of union VmDevice values Provided parameters {'device': u'ide', 'alias': u'ide', 'type': 'controller', 'address': {u'slot': u'0x01', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x1'}} do not match any of union VmDevice values Provided parameters {'alias': u'video0', u'specParams': {u'vram': u'8192', u'vgamem': u'16384', u'heads': u'1', u'ram': u'65536'}, u'deviceId': u'a24f5618-cdb6-4be9-a008-8cb34c8db25a', 'address': {u'slot': u'0x02', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'qxl', u'type': u'video'} do not match any of union VmDevice values Provided parameters {'tlsPort': u'5901', u'specParams': {u'fileTransferEnable': u'true', u'copyPasteEnable': u'true', 'displayIp': '0'}, u'deviceId': u'dd8d37f8-e3da-4089-81eb-d12414b9a8f4', u'device': u'spice', u'type': u'graphics', 'port': u'5900'} do not match any of union VmDevice values Provided parameters {u'nicModel': u'pv', u'macAddr': u'00:1a:4a:16:01:51', u'linkActive': True, u'network': u'ovirtmgmt', 'alias': u'net0', u'filter': u'vdsm-no-mac-spoofing', u'specParams': {u'inbound': {}, u'outbound': {}}, u'deviceId': u'887d82f3-475a-4174-878e-76ddf86f069a', 'address': {u'slot': u'0x03', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'bridge', u'type': u'interface', 'name': u'vnet0'} do not match any of union VmDevice values Provided parameters {u'index': u'2', u'iface': u'ide', 'name': u'hdc', 'alias': u'ide0-1-0', u'specParams': {u'path': u''}, u'readonly': 'True', u'deviceId': u'9ef7cb1a-8a74-4e9e-891f-2bdfce96ce71', 'address': {u'bus': u'1', u'controller': u'0', u'type': u'drive', u'target': u'0', u'unit': u'0'}, u'device': u'cdrom', u'shared': u'false', u'path': '', u'type': u'disk'} do not match any of union VmDevice values Provided parameters {'address': {u'slot': u'0x06', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, 'volumeInfo': {'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'volType': 'path', 'leaseOffset': 0, 'volumeID': u'f996d843-9647-4d48-9dd5-6acd3d268659', 'leasePath': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659.lease', 'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', 'path': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659'}, 'index': '0', u'iface': u'virtio', 'apparentsize': '983040', 'alias': u'virtio-disk0', u'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', u'readonly': 'False', u'shared': u'false', 'truesize': '925696', u'type': u'disk', u'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'reqsize': '0', u'format': u'cow', u'deviceId': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', u'poolID': u'00000001-0001-0001-0001-00000000037a', u'device': u'disk', 'path': u'/rhev/data-center/00000001-0001-0001-0001-00000000037a/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659', u'propagateErrors': u'off', u'optional': u'false', 'name': u'vda', u'volumeID': u'f996d843-9647-4d48-9dd5-6acd3d268659', u'specParams': {}, 'volumeChain': [{'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'volType': 'path', 'leaseOffset': 0, 'volumeID': u'f996d843-9647-4d48-9dd5-6acd3d268659', 'leasePath': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659.lease', 'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', 'path': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659'}, {'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'volType': 'path', 'leaseOffset': 0, 'volumeID': u'f689d9c5-303f-40ff-a169-b51886460ab8', 'leasePath': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f689d9c5-303f-40ff-a169-b51886460ab8.lease', 'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', 'path': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f689d9c5-303f-40ff-a169-b51886460ab8'}]} do not match any of union VmDevice values Parameter fileTransferEnable is not boolean type Parameter kvmEnable is not boolean type Parameter transparentHugePages is not boolean type No default value specified for numOfIoThreads parameter in VM.updateDevice Parameter timeOffset is not uint type No default value specified for displayPort parameter in VM.updateDevice Parameter displayPort is not int type Parameter nice is not int type Parameter pid is not uint type No default value specified for pauseCode parameter in VM.updateDevice No default value specified for cpuShares parameter in VM.updateDevice Parameter acpiEnable is not boolean type No default value specified for displaySecurePort parameter in VM.updateDevice Parameter displaySecurePort is not int type No default value specified for maxMemSize parameter in VM.updateDevice No default value specified for smpThreadsPerCore parameter in VM.updateDevice Parameter smpThreadsPerCore is not uint type No default value specified for keyboardLayout parameter in VM.updateDevice Parameter smpCoresPerSocket is not uint type Parameter maxVCpus is not uint type No default value specified for displayIp parameter in VM.updateDevice No default value specified for exitMessage parameter in VM.updateDevice No default value specified for serial parameter in VM.updateDevice Parameter copyPasteEnable is not boolean type Host.getVMFullList - return data from vdsm Following parameters ['afterMigrationStatus', u'guestNumaNodes', u'numaTune', u'smpThreadsPerCore', u'maxMemSize', u'bootMenuEnable', u'copyPasteEnable', u'fileTransferEnable', u'maxVCpus', u'maxMemSlots'] were not recognized Parameter smp is not uint type Provided value "rtl8139,pv" not defined in VmInterfaceDeviceModel enum for Host.getVMFullList Parameter timeOffset is not uint type Parameter statusTime is not uint type Parameter kvmEnable is not boolean type Parameter transparentHugePages is not boolean type Parameter nice is not int type Parameter pid is not uint type Required property pauseCode is not provided when calling Host.getVMFullList Parameter acpiEnable is not boolean type Required property pitReinjection is not provided when calling Host.getVMFullList Parameter smpCoresPerSocket is not uint type Provided parameters {'alias': u'sound0', u'specParams': {}, u'deviceId': u'406c5995-ec07-45d3-bb02-98c9c4968262', 'address': {u'slot': u'0x04', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'ich6', u'type': u'sound'} do not match any of union VmDevice values Provided parameters {'device': 'memballoon', 'specParams': {'model': 'none'}, 'type': 'balloon', 'target': 1048576, 'alias': u'balloon0'} do not match any of union VmDevice values Provided parameters {'device': u'unix', 'alias': u'channel0', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'1'}} do not match any of union VmDevice values Provided parameters {'device': u'unix', 'alias': u'channel1', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'2'}} do not match any of union VmDevice values Provided parameters {'device': u'spicevmc', 'alias': u'channel2', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'3'}} do not match any of union VmDevice values Provided parameters {'alias': u'virtio-serial0', u'specParams': {}, u'deviceId': u'1b89a659-afc7-40b7-8f96-d18faae7f407', 'address': {u'slot': u'0x05', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'virtio-serial', u'type': u'controller'} do not match any of union VmDevice values Provided parameters {'device': u'usb', 'alias': u'usb', 'type': 'controller', 'address': {u'slot': u'0x01', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x2'}} do not match any of union VmDevice values Provided parameters {'device': u'ide', 'alias': u'ide', 'type': 'controller', 'address': {u'slot': u'0x01', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x1'}} do not match any of union VmDevice values Provided parameters {'alias': u'video0', u'specParams': {u'vram': u'8192', u'vgamem': u'16384', u'heads': u'1', u'ram': u'65536'}, u'deviceId': u'a24f5618-cdb6-4be9-a008-8cb34c8db25a', 'address': {u'slot': u'0x02', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'qxl', u'type': u'video'} do not match any of union VmDevice values Provided parameters {'tlsPort': u'5901', u'specParams': {u'fileTransferEnable': u'true', u'copyPasteEnable': u'true', 'displayIp': '0'}, u'deviceId': u'dd8d37f8-e3da-4089-81eb-d12414b9a8f4', u'device': u'spice', u'type': u'graphics', 'port': u'5900'} do not match any of union VmDevice values Provided parameters {u'nicModel': u'pv', u'macAddr': u'00:1a:4a:16:01:51', u'linkActive': True, u'network': u'ovirtmgmt', 'alias': u'net0', u'filter': u'vdsm-no-mac-spoofing', u'specParams': {u'inbound': {}, u'outbound': {}}, u'deviceId': u'887d82f3-475a-4174-878e-76ddf86f069a', 'address': {u'slot': u'0x03', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'bridge', u'type': u'interface', 'name': u'vnet0'} do not match any of union VmDevice values Provided parameters {u'index': u'2', u'iface': u'ide', 'name': u'hdc', 'alias': u'ide0-1-0', u'specParams': {u'path': u''}, u'readonly': 'True', u'deviceId': u'9ef7cb1a-8a74-4e9e-891f-2bdfce96ce71', 'address': {u'bus': u'1', u'controller': u'0', u'type': u'drive', u'target': u'0', u'unit': u'0'}, u'device': u'cdrom', u'shared': u'false', u'path': '', u'type': u'disk'} do not match any of union VmDevice values Provided parameters {'address': {u'slot': u'0x06', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, 'volumeInfo': {'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'volType': 'path', 'leaseOffset': 0, 'volumeID': u'f996d843-9647-4d48-9dd5-6acd3d268659', 'leasePath': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659.lease', 'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', 'path': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659'}, 'index': '0', u'iface': u'virtio', 'apparentsize': '983040', 'alias': u'virtio-disk0', u'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', u'readonly': 'False', u'shared': u'false', 'truesize': '925696', u'type': u'disk', u'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'reqsize': '0', u'format': u'cow', u'deviceId': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', u'poolID': u'00000001-0001-0001-0001-00000000037a', u'device': u'disk', 'path': u'/rhev/data-center/00000001-0001-0001-0001-00000000037a/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659', u'propagateErrors': u'off', u'optional': u'false', 'name': u'vda', u'volumeID': u'f996d843-9647-4d48-9dd5-6acd3d268659', u'specParams': {}, 'volumeChain': [{'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'volType': 'path', 'leaseOffset': 0, 'volumeID': u'f996d843-9647-4d48-9dd5-6acd3d268659', 'leasePath': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659.lease', 'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', 'path': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659'}, {'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'volType': 'path', 'leaseOffset': 0, 'volumeID': u'f689d9c5-303f-40ff-a169-b51886460ab8', 'leasePath': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f689d9c5-303f-40ff-a169-b51886460ab8.lease', 'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', 'path': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f689d9c5-303f-40ff-a169-b51886460ab8'}]} do not match any of union VmDevice values Parameter smartcardEnable is not boolean type VM.create - request data Following parameters [u'emulatedMachine', u'memGuaranteedSize', u'cpuType', u'hiberVolHandle', u'spiceSslCipherSuite', u'maxMemSize', u'copyPasteEnable', u'smartcardEnable', u'maxMemSlots', u'fileTransferEnable', u'keyboardLayout', u'maxVCpus', u'spiceSecureChannels'] were not recognized Parameter smpThreadsPerCore is not uint type Parameter smp is not uint type Parameter bootMenuEnable is not boolean type Parameter kvmEnable is not boolean type Parameter transparentHugePages is not boolean type Parameter timeOffset is not uint type Parameter nice is not int type Parameter smpCoresPerSocket is not uint type Parameter acpiEnable is not boolean type - return data from vdsm Following parameters ['guestFQDN', 'afterMigrationStatus', u'spiceSecureChannels', u'spiceSslCipherSuite', u'guestNumaNodes', u'smartcardEnable', u'numaTune', 'username', 'restoreState', u'bootMenuEnable', 'guestDiskMapping', 'guestIPs', 'statusTime'] were not recognized No default value specified for display parameter in VM.create No default value specified for custom parameter in VM.create Parameter smp is not uint type No default value specified for devices parameter in VM.create Provided parameters {u'specParams': {}, 'alias': u'sound0', u'deviceId': u'406c5995-ec07-45d3-bb02-98c9c4968262', 'address': {u'slot': u'0x04', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'ich6', u'type': u'sound'} do not match any of union VmDevice values Provided parameters {'device': 'memballoon', 'specParams': {'model': 'none'}, 'type': 'balloon', 'alias': u'balloon0'} do not match any of union VmDevice values Provided parameters {u'specParams': {}, 'alias': u'virtio-serial0', u'deviceId': u'1b89a659-afc7-40b7-8f96-d18faae7f407', 'address': {u'slot': u'0x05', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'virtio-serial', u'type': u'controller'} do not match any of union VmDevice values Provided parameters {u'specParams': {u'vram': u'8192', u'vgamem': u'16384', u'heads': u'1', u'ram': u'65536'}, 'alias': u'video0', u'deviceId': u'a24f5618-cdb6-4be9-a008-8cb34c8db25a', 'address': {u'slot': u'0x02', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'qxl', u'type': u'video'} do not match any of union VmDevice values Provided parameters {'tlsPort': u'5901', u'specParams': {u'fileTransferEnable': u'true', u'copyPasteEnable': u'true', 'displayIp': '0'}, u'deviceId': u'dd8d37f8-e3da-4089-81eb-d12414b9a8f4', u'device': u'spice', u'type': u'graphics', 'port': u'5900'} do not match any of union VmDevice values jsonrpc.Executor/4::WARNING::2016-03-09 11:57:11,164::schemaapi::118::SchemaCache::(_report_inconsistency) Provided parameters {u'nicModel': u'pv', u'macAddr': u'00:1a:4a:16:01:51', u'linkActive': True, u'network': u'ovirtmgmt', u'specParams': {u'inbound': {}, u'outbound': {}}, u'filter': u'vdsm-no-mac-spoofing', 'alias': u'net0', u'deviceId': u'887d82f3-475a-4174-878e-76ddf86f069a', 'address': {u'slot': u'0x03', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, u'device': u'bridge', u'type': u'interface', 'name': u'vnet0'} do not match any of union VmDevice values Provided parameters {u'index': u'2', u'iface': u'ide', 'name': u'hdc', 'alias': u'ide0-1-0', u'specParams': {u'path': u''}, u'readonly': 'True', u'deviceId': u'9ef7cb1a-8a74-4e9e-891f-2bdfce96ce71', 'address': {u'bus': u'1', u'controller': u'0', u'type': u'drive', u'target': u'0', u'unit': u'0'}, u'device': u'cdrom', u'shared': u'false', u'path': '', u'type': u'disk'} do not match any of union VmDevice values Provided parameters {'address': {u'slot': u'0x06', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, 'reqsize': '0', 'index': '0', u'iface': u'virtio', 'apparentsize': '197120', u'specParams': {}, u'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', u'readonly': 'False', u'shared': u'false', 'truesize': '200704', u'type': u'disk', u'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'volumeInfo': {'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'volType': 'path', 'leaseOffset': 0, 'volumeID': u'f996d843-9647-4d48-9dd5-6acd3d268659', 'leasePath': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659.lease', 'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', 'path': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659'}, u'format': u'cow', u'deviceId': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', u'poolID': u'00000001-0001-0001-0001-00000000037a', u'device': u'disk', 'path': u'/rhev/data-center/00000001-0001-0001-0001-00000000037a/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659', u'propagateErrors': u'off', u'optional': u'false', 'name': u'vda', u'volumeID': u'f996d843-9647-4d48-9dd5-6acd3d268659', 'alias': u'virtio-disk0', 'volumeChain': [{'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'volType': 'path', 'leaseOffset': 0, 'volumeID': u'f996d843-9647-4d48-9dd5-6acd3d268659', 'leasePath': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659.lease', 'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', 'path': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f996d843-9647-4d48-9dd5-6acd3d268659'}, {'domainID': u'8d6891fa-fa8f-479b-9c9d-63f15f00af0a', 'volType': 'path', 'leaseOffset': 0, 'volumeID': u'f689d9c5-303f-40ff-a169-b51886460ab8', 'leasePath': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f689d9c5-303f-40ff-a169-b51886460ab8.lease', 'imageID': u'42ad7049-c891-43d8-8e59-93fb058ee6e7', 'path': u'/rhev/data-center/mnt/192.168.1.106:_home_pkliczewski_export_hosted/8d6891fa-fa8f-479b-9c9d-63f15f00af0a/images/42ad7049-c891-43d8-8e59-93fb058ee6e7/f689d9c5-303f-40ff-a169-b51886460ab8'}]} do not match any of union VmDevice values Provided parameters {'device': u'usb', 'alias': u'usb', 'type': 'controller', 'address': {u'slot': u'0x01', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x2'}} do not match any of union VmDevice values Provided parameters {'device': u'ide', 'alias': u'ide', 'type': 'controller', 'address': {u'slot': u'0x01', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x1'}} do not match any of union VmDevice values Provided parameters {'device': u'unix', 'alias': u'channel0', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'1'}} do not match any of union VmDevice values Provided parameters {'device': u'unix', 'alias': u'channel1', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'2'}} do not match any of union VmDevice values Provided parameters {'device': u'spicevmc', 'alias': u'channel2', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'3'}} do not match any of union VmDevice values Parameter fileTransferEnable is not boolean type Parameter kvmEnable is not boolean type Parameter transparentHugePages is not boolean type No default value specified for numOfIoThreads parameter in VM.create Parameter timeOffset is not uint type No default value specified for displayPort parameter in VM.create Parameter displayPort is not int type Parameter nice is not int type Parameter pid is not uint type No default value specified for pauseCode parameter in VM.create No default value specified for cpuShares parameter in VM.create Parameter acpiEnable is not boolean type No default value specified for displaySecurePort parameter in VM.create Parameter displaySecurePort is not int type No default value specified for maxMemSize parameter in VM.create No default value specified for smpThreadsPerCore parameter in VM.create Parameter smpThreadsPerCore is not uint type No default value specified for keyboardLayout parameter in VM.create Parameter smpCoresPerSocket is not uint type Parameter maxVCpus is not uint type No default value specified for displayIp parameter in VM.create No default value specified for exitMessage parameter in VM.create No default value specified for serial parameter in VM.create Parameter copyPasteEnable is not boolean type Hopefully we will have some time to fix inconsistencies in the future. Thanks, Piotr On Mon, Mar 7, 2016 at 11:15 PM, Nir Soffer <nsoffer@redhat.com> wrote:
On Tue, Mar 8, 2016 at 12:05 AM, Piotr Kliczewski <piotr.kliczewski@gmail.com> wrote:
On Mon, Mar 7, 2016 at 9:42 PM, Nir Soffer <nsoffer@redhat.com> wrote:
On Mon, Mar 7, 2016 at 10:26 PM, Piotr Kliczewski <piotr.kliczewski@gmail.com> wrote:
All,
I started to run type verification tests without strict mode and here are some inconsistencies: Please note that some of the entries are many times which corresponds with number of occurrances of particular issue.
Host.getCapabilities
- return data from vdms: Following parameters ['supportsIPv6', 'hostdevPassthrough', 'lastClientIface'] were not recognized Following parameters ['dhcpv6', 'ipv6gateway', 'gateway'] were not recognized Parameter mtu is not uint type Provided value "0" not defined in AutoNumaBalancingStatus enum for Host.getCapabilities Parameter netConfigDirty is not boolean type Following parameters ['ipv6gateway', 'dhcpv6', 'cfg', 'gateway'] were not recognized No default value specified for permhwaddr parameter in Host.getCapabilities Parameter mtu is not uint type Parameter reservedMem is not uint type Parameter cpuSpeed is not float type Required property directedPassthrough is not provided when calling Host.getCapabilities Parameter totalMemory is not uint type Parameter memSize is not uint type Parameter mode is not int type Provided parameters {'iface': 'ovirtmgmt', 'addr': '192.168.1.106', 'cfg': {'IPV6INIT': 'no', 'DEFROUTE': 'yes', 'HOTPLUG': 'no', 'MTU': '1500', 'DELAY': '0', 'NM_CONTROLLED': 'no', 'BOOTPROTO': 'dhcp', 'STP': 'off', 'DEVICE': 'ovirtmgmt', 'TYPE': 'Bridge', 'ONBOOT': 'yes'}, 'bridged': True, 'ipv6addrs': ['fe80::baca:3aff:fea9:77e2/64'], 'gateway': '192.168.1.1', 'dhcpv4': True, 'netmask': '255.255.255.0', 'dhcpv6': False, 'stp': 'off', 'ipv4addrs': ['192.168.1.106/24'], 'mtu': '1500', 'ipv6gateway': '::', 'ports': ['em1']} do not match any of union NetInfoNetwork values Parameter kvmEnabled is not boolean type Parameter liveMerge is not boolean type Parameter cpuThreads is not uint type Parameter liveSnapshot is not boolean type Following parameters ['dhcpv6'] were not recognized Parameter mtu is not uint type Parameter stp is not boolean type No default value specified for hostQos parameter in Host.getCapabilities Required property bridged is not provided when calling Host.getCapabilities Parameter guestOverhead is not uint type Parameter cpuCores is not uint type Parameter cpuSockets is not uint type Required property ipv6Supported is not provided when calling Host.getCapabilities Parameter buildtime is not string type Parameter buildtime is not string type Provided value "librbd1" not defined in SoftwarePackage enum for Host.getCapabilities Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Parameter buildtime is not string type Provided value "glusterfs-cli" not defined in SoftwarePackage enum for Host.getCapabilities Parameter buildtime is not string type Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities Following parameters ['50_vmfex'] were not recognized Required property md5 is not provided when calling Host.getCapabilities
Host.getHardwareInfo
- return data from vdsm
No default value specified for systemProductName parameter in Host.getHardwareInfo No default value specified for systemUUID parameter in Host.getHardwareInfo No default value specified for systemManufacturer parameter in Host.getHardwareInfo No default value specified for systemVersion parameter in Host.getHardwareInfo No default value specified for systemFamily parameter in Host.getHardwareInfo No default value specified for systemSerialNumber parameter in Host.getHardwareInfo
Host.setMOMPolicyParameters
- return data from vdsm
Unsupported type dict in Host.setMOMPolicyParameters please fix
Host.hostdevListByCaps
- return data from vdsm
The return type is not a list of HostDevices but it is a map and HostDevice do not match data sent
Host.getStats
- return data from vdsm
Following parameters ['ksmMergeAcrossNodes', 'haStats'] were not recognized Parameter cpuUserVdsmd is not float type Parameter rxRate is not float type Parameter cpuLoad is not float type Parameter memUsed is not uint type Parameter cpuIdle is not float type Parameter txRate is not float type Parameter txDropped is not uint type Parameter elapsedTime is not uint type Parameter netConfigDirty is not boolean type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter rxErrors is not uint type Parameter rxRate is not float type Parameter rx is not uint type Parameter txDropped is not uint type Parameter txErrors is not uint type Parameter txRate is not float type Parameter speed is not uint type Parameter tx is not uint type Parameter rxDropped is not uint type Parameter cpuSys is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Following parameters ['nodeIndex'] were not recognized Parameter cpuSys is not float type Parameter cpuUser is not float type Required property numaNodeIndex is not provided when calling Host.getStats Parameter cpuIdle is not float type Parameter cpuUser is not float type Parameter ksmCpu is not float type Parameter memFree is not uint type Parameter free is not uint type Parameter free is not uint type Parameter free is not uint type Parameter free is not uint type Parameter cpuSysVdsmd is not float type Required property haStatus is not provided when calling Host.getStats Parameter bootTime is not uint type Parameter rxDropped is not uint type Parameter anonHugePages is not uint type
StoragePool.disconnectStorageServer
- request data
Provided value "1" not defined in StorageDomainType enum for StoragePool.disconnectStorageServer Provided parameters {u'id': u'9228a1f7-5311-4136-86eb-87a4f916616e', u'connection': u'1.1.1.1:/export/data', u'iqn': u'', u'user': u'', u'tpgt': u'1', u'protocol_version': u'3', u'password': '********', u'port': u''} do not match any of union ConnectionRefParameters values
Yes, this is a known issue, engine sends the enum value instead of the name, making debugging much harder. Unfortunately, we cannot fix this because we must be compatible with older engines.
I think we will provide a new verb requiring the correct type, and deprecate the old verb.
What do you think about changing schema to define proper types. We can't change the data but we can have consistent definition of it.
I'll check this direction.
StorageDomain.create
- request data
Provided value "1" not defined in StorageDomainType enum for StorageDomain.create Parameter typeArgs is defined as StorageDomainCreateArguments but it is a string
Same
StoragePool.connectStorageServer
- request data
Provided value "1" not defined in StorageDomainType enum for StoragePool.connectStorageServer Provided parameters {u'id': u'9228a1f7-5311-4136-86eb-87a4f916616e', u'connection': u'1.1.1.1:/export/data', u'iqn': u'', u'user': u'', u'tpgt': u'1', u'protocol_version': u'3', u'password': '********', u'port': u''} do not match any of union ConnectionRefParameters values
Same
Many more verbs to come.
It seems that there is more verbs which do not comply with schema than those that do. I am not able to progress more with the validation because StorageDomain.create and Host.hostdevListByCaps currently break validation code due to type inconsistencies. I need to make it more resilient.
Thanks for this work!
Nir
participants (2)
-
Nir Soffer
-
Piotr Kliczewski