
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