Piotr Kliczewski has uploaded a new change for review.
Change subject: schema: customizable hook name
......................................................................
schema: customizable hook name
getCaps response contains hook names which by design can be any string.
We need to support following naming scheme in validation.
Change-Id: Icb20039ef1d3bba32518dd23e6b30506cb77e0ec
Signed-off-by: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>
---
M lib/api/vdsm-api.yml
M lib/api/vdsmapi.py
M tests/vdsmapi_test.py
3 files changed, 224 insertions(+), 9 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/51/59251/1
diff --git a/lib/api/vdsm-api.yml b/lib/api/vdsm-api.yml
index b537e8e..87efa86 100644
--- a/lib/api/vdsm-api.yml
+++ b/lib/api/vdsm-api.yml
@@ -6,9 +6,9 @@
name: AutoNumaBalancingStatus
type: enum
values:
- DISABLE: Auto numa balancing is not active
- ENABLE: Auto numa balancing is active
- UNKNOWN: Can't get the status(maybe not support in this kernel
+ 0: Auto numa balancing is not active
+ 1: Auto numa balancing is active
+ 2: Can't get the status(maybe not support in this kernel
version)
BalloonInfo: &BalloonInfo
@@ -1390,7 +1390,7 @@
name: HookScriptAdditional
properties:
- description: A key for hook script information
- name: 50_vmfex
+ name: custom_name
type: *HookScriptInfo
type: object
@@ -4190,7 +4190,8 @@
- description: The Maximum Transmission Unit size for
the bridge device
name: mtu
- type: uint
+ type: string
+ datatype: uint
- description: The default IPv6 gateway for the bridge
device
@@ -4226,15 +4227,16 @@
- description: Whether Spanning Tree Protocol status
for the bridge device should be turned on
name: stp
- type: boolean
+ type: string
- - description: A map containing information about the
+ - defaultvalue: no-default
+ description: A map containing information about the
bridge specific options.
name: opts
type: *StringMap
added: '3.4'
- - defaultvalue: needs updating
+ - defaultvalue: no-default
description: host traffic QoS params.
name: hostQos
type: *HostQoSParams
@@ -4247,7 +4249,8 @@
- string
added: '3.4'
- - description: Always True to distinguish this type
+ - defaultvalue: no-default
+ description: Always True to distinguish this type
from NetInfoBridgelessNetwork
name: bridged
type: boolean
@@ -4256,6 +4259,21 @@
the bridge device
name: addr
type: string
+
+ - defaultvalue: no-default
+ description: The network device associated with the network
+ name: iface
+ type: string
+
+ - defaultvalue: no-default
+ description: Specify Switch. Legacy is used if not passed
+ name: switch
+ type: string
+
+ - defaultvalue: no-default
+ description: Whether use stateless autoconfiguration
+ name: ipv6autoconf
+ type: boolean
type: object
NetInfoBridgeMap: &NetInfoBridgeMap
@@ -5393,7 +5411,12 @@
name: SoftwarePackage
type: enum
values:
+ glusterfs: Glusterfs binary and glusterfs translator modules common
glusterfs-cli: GlusterFS a distributed file-system cli
+ glusterfs-geo-replication: Glusterfs geo-replication support
+ glusterfs-fuse: FUSE based clients and glusterfsd
+ glusterfs-rdma: Supports to ib-verbs library neede by Glusterfs
+ glusterfs-server: Glusterfs server daemon
kernel: The Linux kernel
librbd1: RADOS block device client library
libvirt: Low level virtualization API
diff --git a/lib/api/vdsmapi.py b/lib/api/vdsmapi.py
index 36d28e2..8cd4d69 100644
--- a/lib/api/vdsmapi.py
+++ b/lib/api/vdsmapi.py
@@ -297,6 +297,8 @@
unknown_props = [key for key in arg
if key not in prop_names]
if unknown_props:
+ if 'custom_name' in prop_names:
+ return
self._report_inconsistency('Following parameters %s were not'
' recognized' % (unknown_props))
# iterate over properties
diff --git a/tests/vdsmapi_test.py b/tests/vdsmapi_test.py
index f80a27c..8599990 100644
--- a/tests/vdsmapi_test.py
+++ b/tests/vdsmapi_test.py
@@ -479,3 +479,193 @@
sub_id = '|virt|VM_status|426aef82-ea1d-4442-91d3-fd876540e0f0'
_events_schema.events_schema().verify_event_params(sub_id, params)
+
+ def test_get_caps(self):
+ ret = {'HBAInventory': {'iSCSI': [{'InitiatorName':
'iqn.1994-05.co'}],
+ 'FC': []},
+ 'packages2': {'kernel': {'release':
'201.fc23.x86_64',
+ 'buildtime': 1463837389.0,
+ 'version': '4.5.5'},
+ 'glusterfs-rdma': {'release':
'1.fc23',
+ 'buildtime': 1460984315,
+ 'version': '3.7.11'},
+ 'glusterfs-fuse': {'release':
'1.fc23',
+ 'buildtime': 1460984315,
+ 'version': '3.7.11'},
+ 'spice-server': {'release':
'1.fc23',
+ 'buildtime': 1444215420,
+ 'version': '0.12.6'},
+ 'librbd1': {'release': '2.fc23',
+ 'buildtime': 1463433911,
+ 'version': '0.94.7'},
+ 'vdsm': {'release':
'73.git2105bb3.fc23',
+ 'buildtime': 1465561223,
+ 'version': '4.18.999'},
+ 'qemu-kvm': {'release': '10.fc23',
+ 'buildtime': 1464278628,
+ 'version': '2.4.1'},
+ 'glusterfs': {'release': '1.fc23',
+ 'buildtime': 1460984315,
+ 'version': '3.7.11'},
+ 'libvirt': {'release': '1.fc23',
+ 'buildtime': 1462407395,
+ 'version': '1.2.18.3'},
+ 'qemu-img': {'release': '10.fc23',
+ 'buildtime': 1464278628,
+ 'version': '2.4.1'},
+ 'mom': {'release': '1.fc23',
+ 'buildtime': 1464783301,
+ 'version': '0.5.4'},
+ 'glusterfs-geo-replication': {'release':
'1.fc23',
+ 'buildtime': 14605,
+ 'version':
'3.7.1'},
+ 'glusterfs-server': {'release':
'1.fc23',
+ 'buildtime': 1460984315,
+ 'version': '3.7.11'},
+ 'glusterfs-cli': {'release':
'1.fc23',
+ 'buildtime': 1460984315,
+ 'version': '3.7.11'}},
+ 'numaNodeDistance': {'0': [10]},
+ 'cpuModel': 'Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz',
+ 'liveMerge': 'true',
+ 'hooks': {'before_nic_hotplug':
+ {'50_vmfex': {'md5':
'e05994261acaea7dcf4b88ea'}},
+ 'before_device_migrate_destination':
+ {'50_vmfex': {'md5':
'e05994261acaea7dcf4b88ea'}},
+ 'before_device_create':
+ {'50_vmfex': {'md5':
'e05994261acaea7dcf4b88ea'}},
+ 'my_custom_hook':
+ {'my_name.py': {'md5':
'e05994261acaea7dcf4b88ea'}}},
+ 'supportsIPv6': True,
+ 'vmTypes': ['kvm'],
+ 'selinux': {'mode': '1'},
+ 'liveSnapshot': 'true',
+ 'kdumpStatus': 0,
+ 'networks': {'ovirtmgmt': {'iface':
'ovirtmgmt',
+ 'ipv4addrs':
['192.168.1.106/24'],
+ 'addr': '192.168.1.106',
+ 'ipv6addrs': [],
+ 'netmask': '255.255.255.0',
+ 'mtu': '1500',
+ 'dhcpv4': True,
+ 'switch': 'legacy',
+ 'dhcpv6': False,
+ 'stp': 'off',
+ 'bridged': True,
+ 'ipv6gateway': '::',
+ 'gateway': '192.168.1.1',
+ 'ports': ['eno1']}},
+ 'kernelArgs': 'BOOT_IMAGE=/vmlinuz-4.5.5-201.fc23.x86_64
ro',
+ 'bridges': {'ovirtmgmt':
+ {'ipv6autoconf': True,
+ 'addr': '192.168.1.106',
+ 'ipv6addrs': [],
+ 'mtu': '1500',
+ 'dhcpv4': True,
+ 'netmask': '255.255.255.0',
+ 'dhcpv6': False,
+ 'stp': 'off',
+ 'ipv4addrs': ['192.168.1.106/24'],
+ 'ipv6gateway': '::',
+ 'gateway': '192.168.1.1',
+ 'opts':
+ {'multicast_last_member_count': '2',
+ 'vlan_protocol': '0x8100',
+ 'hash_elasticity': '4',
+ 'multicast_query_response_interval':
'1000',
+ 'group_fwd_mask': '0x0',
+ 'multicast_snooping': '1',
+ 'multicast_startup_query_interval':
'3125',
+ 'hello_timer': '0',
+ 'multicast_querier_interval': '25500',
+ 'max_age': '2000',
+ 'hash_max': '512',
+ 'stp_state': '0',
+ 'topology_change_detected': '0',
+ 'priority': '32768',
+ 'multicast_membership_interval':
'26000',
+ 'root_path_cost': '0',
+ 'root_port': '0',
+ 'multicast_querier': '0',
+ 'multicast_startup_query_count': '2',
+ 'nf_call_iptables': '0',
+ 'hello_time': '200',
+ 'topology_change': '0',
+ 'bridge_id': '8000.b8ca3aa977e2',
+ 'topology_change_timer': '0',
+ 'ageing_time': '30000',
+ 'nf_call_ip6tables': '0',
+ 'gc_timer': '2191',
+ 'root_id': '8000.b8ca3aa977e2',
+ 'nf_call_arptables': '0',
+ 'group_addr': '1:80:c2:0:0:0',
+ 'multicast_last_member_interval':
'100',
+ 'default_pvid': '1',
+ 'multicast_query_interval': '12500',
+ 'multicast_query_use_ifaddr': '0',
+ 'tcn_timer': '0',
+ 'multicast_router': '1',
+ 'vlan_filtering': '0',
+ 'forward_delay': '0'},
+ 'ports': ['eno1']}},
+ 'uuid': '4C4C4544-0046-4E10-8032-B2C04F385A31',
+ 'onlineCpus': '0,1,2,3,4,5,6,7',
+ 'dnss': ['192.168.1.1'],
+ 'nics': {'eno1': {'ipv6autoconf': False,
+ 'addr': '',
+ 'speed': 1000,
+ 'ipv6addrs': [],
+ 'mtu': '1500',
+ 'dhcpv4': False,
+ 'netmask': '',
+ 'dhcpv6': False,
+ 'ipv4addrs': [],
+ 'hwaddr': 'b8:ca:3a:a9:77:e2',
+ 'ipv6gateway': '::',
+ 'gateway': ''}},
+ 'software_revision': '73',
+ 'hostdevPassthrough': 'false',
+ 'clusterLevels': ['3.5', '3.6', '4.0'],
+ 'cpuFlags':
'fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep',
+ 'ISCSIInitiatorName':
'iqn.1994-05.com.redhat:7d366003913',
+ 'netConfigDirty': 'False',
+ 'supportedENGINEs': ['3.5', '3.6',
'4.0'],
+ 'autoNumaBalancing': 0,
+ 'additionalFeatures': ['GLUSTER_SNAPSHOT',
'GLUSTER_GEO_RE'],
+ 'reservedMem': '321',
+ 'bondings': {'bond0': {'ipv6autoconf': True,
+ 'addr': '',
+ 'ipv6addrs': [],
+ 'switch': 'legacy',
+ 'active_slave': '',
+ 'mtu': '1500',
+ 'dhcpv4': False,
+ 'netmask': '',
+ 'dhcpv6': False,
+ 'ipv4addrs': [],
+ 'hwaddr': '3a:02:ff:17:ac:74',
+ 'slaves': [],
+ 'ipv6gateway': '::',
+ 'gateway': '',
+ 'opts': {'mode': '0'}}},
+ 'software_version': '4.18',
+ 'memSize': '15934',
+ 'cpuSpeed': '1600.125',
+ 'numaNodes': {'0': {'totalMemory':
'15934',
+ 'cpus': [0, 1, 2, 3, 4, 5, 6, 7]}},
+ 'cpuSockets': '1',
+ 'vlans': {},
+ 'lastClientIface': 'ovirtmgmt',
+ 'cpuCores': '4',
+ 'kvmEnabled': 'true',
+ 'guestOverhead': '65',
+ 'version_name': 'Snow Man',
+ 'cpuThreads': '8',
+ 'emulatedMachines': ['pc-q35-2.0', 'pc-q35-2.1'],
+ 'rngSources': ['hwrng', 'random'],
+ 'operatingSystem': {'release': '1',
+ 'version': '23',
+ 'name': 'Fedora'}}
+
+ _schema.schema().verify_retval(
+ vdsmapi.MethodRep('Host', 'getCapabilities'), ret)
--
To view, visit
https://gerrit.ovirt.org/59251
To unsubscribe, visit
https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icb20039ef1d3bba32518dd23e6b30506cb77e0ec
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczewski(a)gmail.com>