On Mon, Mar 7, 2016 at 9:42 PM, Nir Soffer <nsoffer(a)redhat.com> wrote:
On Mon, Mar 7, 2016 at 10:26 PM, Piotr Kliczewski
<piotr.kliczewski(a)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