Re: [vdsm] [Engine-devel] Things to be done to support Ubuntu hosts
by ybronhei@redhat.com
Hey,
Most of the issues you mentioned in slides 11-13 (http://www.ovirt.org/images/5/57/Shanghai-VDSM-on-Ubuntu.pdf) are already solved (if not all of them),
If there are more issues to solve can you please open RFE bz on them to close those gaps (like making the services' names configurable)?
Thanks
Yaniv Bronhaim.
----- Original Message -----
> From: "Zhou Zheng Sheng" <zhshzhou(a)linux.vnet.ibm.com>
> To: "engine-devel" <engine-devel(a)ovirt.org>
> Sent: Thursday, November 14, 2013 8:57:19 AM
> Subject: [Engine-devel] Things to be done to support Ubuntu hosts
>
> Hi,
>
> Recently Ubuntu support is added to VDSM, and .deb binray packages can
> be downloaded from launchpad.net PPA [1]. Most of the key features such
> as storage management and VM lifecycle work on Ubuntu. The cross
> distribution network management patches are upstream as well. One big
> piece left is making ovirt-host-deploy support Ubuntu, so that we can
> manage Ubuntu hosts from Engine, thus close the gap on host side.
>
> In May 2013 I made some hacks to ovirt-host-deploy and otopi. I made it
> skipped parts not supported on Ubuntu and configure the environment
> manually, and successfully added Ubuntu host to Engine [2].
> Unfortunately I have no plans to continue on it, but I'd like to make a
> summary of the things I hacked to help anyone who wants to submit
> patches in future. I was to add a WIKI page but I found there were not
> many items, so a mail would be enough.
>
> 1. Package management operations
> Both otopi and ovirt-host-deploy query for dependency packages and
> install them on demand. The otopi package management just supports yum,
> we need to add apt-get support. Package names are different in Ubuntu,
> so I made a list mapping the names. The list in in VDSM source
> directory, debian/dependencyMap.txt .
>
> 2. Network configuration operations
> ovirt-host-deploy asks VDSM's configNetwork.py to create bridge network.
> Cross distribution support patches for configNetwork.py are under
> review. ovirt-host-deploy supports Ubuntu bridge configuration as long
> as they are merged.
>
> [1] https://launchpad.net/~zhshzhou/+archive/vdsm-ubuntu
> [2] http://www.ovirt.org/images/5/57/Shanghai-VDSM-on-Ubuntu.pdf
>
> Here goes the detailed hack patch. The hack was base on v1.0.1, I
> rebased it to the latest master. The rebased patch are not tested. If
> you find this email useless, it's actually a good news, which means
> there is not a lot of work and problems ahead ;-)
>
> Hack patch for ovirt-host-deploy.
>
> From 120493a242046d19794ef3da83b32486d372aa39 Mon Sep 17 00:00:00 2001
> From: Zhou Zheng Sheng <zhshzhou(a)linux.vnet.ibm.com>
> Date: Wed, 13 Nov 2013 18:02:26 +0800
> Subject: [PATCH] Ubuntu Hacks
>
> Change-Id: Ifb4ebc829101c92d06475619b1b5986e87b83d57
> Signed-off-by: Zhou Zheng Sheng <zhshzhou(a)linux.vnet.ibm.com>
> ---
> src/plugins/ovirt-host-deploy/gluster/packages.py | 17 +++++----
> src/plugins/ovirt-host-deploy/tune/tuned.py | 3 +-
> src/plugins/ovirt-host-deploy/vdsm/bridge.py | 45
> ++++++++++++-----------
> src/plugins/ovirt-host-deploy/vdsm/packages.py | 9 +++--
> src/plugins/ovirt-host-deploy/vdsm/pki.py | 3 +-
> src/plugins/ovirt-host-deploy/vdsm/software.py | 2 +
> src/plugins/ovirt-host-deploy/vdsm/vdsmid.py | 3 +-
> 7 files changed, 45 insertions(+), 37 deletions(-)
>
> diff --git a/src/plugins/ovirt-host-deploy/gluster/packages.py
> b/src/plugins/ovirt-host-deploy/gluster/packages.py
> index 1fecfda..eb37744 100644
> --- a/src/plugins/ovirt-host-deploy/gluster/packages.py
> +++ b/src/plugins/ovirt-host-deploy/gluster/packages.py
> @@ -60,13 +60,13 @@ class Plugin(plugin.PluginBase):
> ),
> )
> def _validation(self):
> - if not self.packager.queryPackages(patterns=('vdsm-gluster',)):
> - raise RuntimeError(
> - _(
> - 'Cannot locate gluster packages, '
> - 'possible cause is incorrect channels'
> - )
> - )
> + # if not self.packager.queryPackages(patterns=('vdsm-gluster',)):
> + # raise RuntimeError(
> + # _(
> + # 'Cannot locate gluster packages, '
> + # 'possible cause is incorrect channels'
> + # )
> + # )
> self._enabled = True
>
> @plugin.event(
> @@ -74,7 +74,8 @@ class Plugin(plugin.PluginBase):
> condition=lambda self: self._enabled,
> )
> def _packages(self):
> - self.packager.installUpdate(('vdsm-gluster',))
> + # self.packager.installUpdate(('vdsm-gluster',))
> + pass
>
> @plugin.event(
> stage=plugin.Stages.STAGE_CLOSEUP,
> diff --git a/src/plugins/ovirt-host-deploy/tune/tuned.py
> b/src/plugins/ovirt-host-deploy/tune/tuned.py
> index d8e00c5..d0dcea5 100644
> --- a/src/plugins/ovirt-host-deploy/tune/tuned.py
> +++ b/src/plugins/ovirt-host-deploy/tune/tuned.py
> @@ -70,7 +70,8 @@ class Plugin(plugin.PluginBase):
> condition=lambda self: self._enabled,
> )
> def _packages(self):
> - self.packager.installUpdate(('tuned',))
> + # self.packager.installUpdate(('tuned',))
> + pass
>
> @plugin.event(
> stage=plugin.Stages.STAGE_MISC,
> diff --git a/src/plugins/ovirt-host-deploy/vdsm/bridge.py
> b/src/plugins/ovirt-host-deploy/vdsm/bridge.py
> index 3789d62..64cce40 100644
> --- a/src/plugins/ovirt-host-deploy/vdsm/bridge.py
> +++ b/src/plugins/ovirt-host-deploy/vdsm/bridge.py
> @@ -595,7 +595,8 @@ class Plugin(plugin.PluginBase):
> stage=plugin.Stages.STAGE_INTERNAL_PACKAGES,
> )
> def _internal_packages(self):
> - self.packager.install(packages=('iproute',))
> + # self.packager.install(packages=('iproute',))
> + pass
>
> @plugin.event(
> stage=plugin.Stages.STAGE_VALIDATION,
> @@ -771,27 +772,27 @@ class Plugin(plugin.PluginBase):
> interface = self._getInterfaceToInstallBasedOnDestination(
> address=self.environment[odeploycons.VdsmEnv.ENGINE_ADDRESS]
> )
> - parameters =
> self._rhel_getInterfaceConfigParameters(name=interface)
> -
> - # The followin can be executed
> - # only at node as we won't reach here
> - # if we are not running on node
> - if (
> - self.environment[odeploycons.VdsmEnv.OVIRT_NODE] and
> - self._interfaceIsBridge(name=interface)
> - ):
> - nic = interface.replace('br', '', 1)
> - self._removeBridge(
> - name=interface,
> - interface=nic,
> - )
> - interface = nic
> -
> - self._createBridge(
> -
> name=self.environment[odeploycons.VdsmEnv.MANAGEMENT_BRIDGE_NAME],
> - interface=interface,
> - parameters=parameters,
> - )
> + # parameters =
> self._rhel_getInterfaceConfigParameters(name=interface)
> +
> + # # The followin can be executed
> + # # only at node as we won't reach here
> + # # if we are not running on node
> + # if (
> + # self.environment[odeploycons.VdsmEnv.OVIRT_NODE] and
> + # self._interfaceIsBridge(name=interface)
> + # ):
> + # nic = interface.replace('br', '', 1)
> + # self._removeBridge(
> + # name=interface,
> + # interface=nic,
> + # )
> + # interface = nic
> +
> + # self._createBridge(
> + #
> name=self.environment[odeploycons.VdsmEnv.MANAGEMENT_BRIDGE_NAME],
> + # interface=interface,
> + # parameters=parameters,
> + # )
>
> self._waitForRoute(
> host=(
> diff --git a/src/plugins/ovirt-host-deploy/vdsm/packages.py
> b/src/plugins/ovirt-host-deploy/vdsm/packages.py
> index d819caa..b526d4b 100644
> --- a/src/plugins/ovirt-host-deploy/vdsm/packages.py
> +++ b/src/plugins/ovirt-host-deploy/vdsm/packages.py
> @@ -68,7 +68,8 @@ class Plugin(plugin.PluginBase):
> stage=plugin.Stages.STAGE_VALIDATION,
> )
> def _validation(self):
> - result = self.packager.queryPackages(patterns=('vdsm',))
> + # result = self.packager.queryPackages(patterns=('vdsm',))
> + result = ({'version': '4.10.3', 'release': '1'},)
> if not result:
> raise RuntimeError(
> _(
> @@ -106,8 +107,8 @@ class Plugin(plugin.PluginBase):
> self.services.state('vdsmd', False)
> if self.services.exists('supervdsmd'):
> self.services.state('supervdsmd', False)
> - self.packager.install(('qemu-kvm-tools',))
> - self.packager.installUpdate(('vdsm', 'vdsm-cli'))
> + # self.packager.install(('qemu-kvm-tools',))
> + # self.packager.installUpdate(('vdsm', 'vdsm-cli'))
>
> @plugin.event(
> stage=plugin.Stages.STAGE_CLOSEUP,
> @@ -119,7 +120,7 @@ class Plugin(plugin.PluginBase):
> self.services.state('libvirt-guests', False)
> self.services.startup('libvirt-guests', False)
>
> - self.services.startup('vdsmd', True)
> + # self.services.startup('vdsmd', True)
> if not self.services.supportsDependency:
> if self.services.exists('libvirtd'):
> self.services.startup('libvirtd', True)
> diff --git a/src/plugins/ovirt-host-deploy/vdsm/pki.py
> b/src/plugins/ovirt-host-deploy/vdsm/pki.py
> index f374a99..c013527 100644
> --- a/src/plugins/ovirt-host-deploy/vdsm/pki.py
> +++ b/src/plugins/ovirt-host-deploy/vdsm/pki.py
> @@ -208,7 +208,8 @@ class Plugin(plugin.PluginBase):
> condition=lambda self: self._enabled,
> )
> def _packages(self):
> - self.packager.install(('m2crypto',))
> + # self.packager.install(('m2crypto',))
> + pass
>
> @plugin.event(
> stage=plugin.Stages.STAGE_MISC,
> diff --git a/src/plugins/ovirt-host-deploy/vdsm/software.py
> b/src/plugins/ovirt-host-deploy/vdsm/software.py
> index 2f0ec80..a226816 100644
> --- a/src/plugins/ovirt-host-deploy/vdsm/software.py
> +++ b/src/plugins/ovirt-host-deploy/vdsm/software.py
> @@ -65,6 +65,8 @@ class Plugin(plugin.PluginBase):
> version=ver,
> )
> )
> + elif dist == 'Ubuntu':
> + pass
> else:
> raise RuntimeError(
> _('Distribution {distribution} is not supported').format(
> diff --git a/src/plugins/ovirt-host-deploy/vdsm/vdsmid.py
> b/src/plugins/ovirt-host-deploy/vdsm/vdsmid.py
> index 328ad17..465212a 100644
> --- a/src/plugins/ovirt-host-deploy/vdsm/vdsmid.py
> +++ b/src/plugins/ovirt-host-deploy/vdsm/vdsmid.py
> @@ -78,7 +78,8 @@ class Plugin(plugin.PluginBase):
> )
> def _packages(self):
> if platform.machine() in ('x86_64', 'i686'):
> - self.packager.install(('dmidecode',))
> + # self.packager.install(('dmidecode',))
> + pass
>
> @plugin.event(
> stage=plugin.Stages.STAGE_CUSTOMIZATION,
> --
> 1.7.11.7
>
>
> Hack patch for otopi.
>
> From 3e7022b740f24d8053d3e32c20fa6d492631db80 Mon Sep 17 00:00:00 2001
> From: Zhou Zheng Sheng <zhshzhou(a)linux.vnet.ibm.com>
> Date: Wed, 13 Nov 2013 17:55:39 +0800
> Subject: [PATCH] Ubuntu Hacks
>
> ---
> src/plugins/otopi/network/hostname.py | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/plugins/otopi/network/hostname.py
> b/src/plugins/otopi/network/hostname.py
> index bb07627..28b4866 100644
> --- a/src/plugins/otopi/network/hostname.py
> +++ b/src/plugins/otopi/network/hostname.py
> @@ -63,7 +63,8 @@ class Plugin(plugin.PluginBase):
> stage=plugin.Stages.STAGE_INTERNAL_PACKAGES,
> )
> def _internal_packages(self):
> - self.packager.install(packages=['iproute'])
> + # self.packager.install(packages=['iproute'])
> + pass
>
> @plugin.event(
> stage=plugin.Stages.STAGE_VALIDATION,
> --
> 1.7.11.7
>
> --
> Thanks and best regards!
>
> Zhou Zheng Sheng / 周征晟
> E-mail: zhshzhou(a)linux.vnet.ibm.com
> Telephone: 86-10-82454397
>
> _______________________________________________
> Engine-devel mailing list
> Engine-devel(a)ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel
>
10 years, 6 months
daily oVirt 3.3.1 blocker status
by Sandro Bonazzola
Hi,
The following blockers are still not fixed:
VDSM:
Bug 1022961 - Running a VM from a gluster domain uses mount instead of gluster URI
Bug 1022975 - [vdsm] storage domain upgrade fails with attributeError
Federico, Eduardo, can you provide an ETA for those?
The following patches are targeted 3.3 and needs to be reviewed:
http://gerrit.ovirt.org/#/q/branch:%255Eovirt*-3.3.*,n,z
vdsm: support VIR_MIGRATE_ABORT_ON_ERROR Peter V. Saveliev vdsm ovirt-3.3 Oct 27
hsm: fix isoprefix KeyError for inactive domains Federico Simoncelli vdsm ovirt-3.3 Oct 20 +1
Read pool metadata once in StoragePool.getInfo() Federico Simoncelli vdsm ovirt-3.3 Oct 15
Make hsm.getVolumesList() pool independent. Federico Simoncelli vdsm ovirt-3.3 Oct 15
Adding [start|stop]MonitoringDomain(). Federico Simoncelli vdsm ovirt-3.3 Oct 15
stats: return domain lockspace status Federico Simoncelli vdsm ovirt-3.3 Oct 15
Make getRepoStats() a hsm method. Federico Simoncelli vdsm ovirt-3.3 Oct 15
Fix getStorageDomainInfo() logic. Federico Simoncelli vdsm ovirt-3.3 Oct 15
vm: add the transient disk support Federico Simoncelli vdsm ovirt-3.3 Oct 15
please review them and merge ASAP the patches meant to be in 3.3.1.
I'm not aware of other blockers.
If you're aware of any other blocker, please add it to the tracker bug (Bug 1019391 - Tracker: oVirt 3.3.1 release)
--
Sandro Bonazzola
Better technology. Faster innovation. Powered by community collaboration.
See how it works at redhat.com
10 years, 6 months
Re: [vdsm] [Users] Low quality of el6 vdsm rpms
by Sandro Bonazzola
Il 12/11/2013 10:34, Patrick Hurrelmann ha scritto:
> Hi all,
>
> sorry for this rant, but...
>
> I now tried several times to test the beta 3.3.1 rpms, but they can't
> even be installed in the most times.
I'm glad to read you're testing 3.3.1. May I ask you to add yourself to
http://www.ovirt.org/Testing/Ovirt_3.3.1_testing ?
> One time it required a future
> selinux-policy, although the needed selinux fix was delivered in a much
> lower version. Now the rpms have broken requirements. It requires
> "hostname" instead of "/bin/hostname". This broken requirement is not
> included in the vdsm 3.3 branch, so I wonder where it comes from?
> Anyway. So I proceeded and tried to build vdsm myself once again.
> Currently the build fails with (but worked fine some days ago):
>
> /usr/bin/pep8 --exclude="config.py,constants.py" --filename '*.py,*.py.in' \
> client lib/cpopen/*.py lib/vdsm/*.py lib/vdsm/*.py.in tests
> vds_bootstrap vdsm-tool vdsm/*.py vdsm/*.py.in vdsm/netconf
> vdsm/sos/vdsm.py.in vdsm/storage vdsm/vdsm vdsm_api vdsm_hooks vdsm_reg
> vdsm/storage/imageRepository/formatConverter.py:280:29: E128
> continuation line under-indented for visual indent
>
>
> - How can the quality of the vdsm builds be increased? It is frustrating
> to spend time on testing and then the hosts cannot even be installed to
> broken vdsm rpms.
> - How are the builds prepared? Is there a Jenkins job that prepares
> "stable" rpms in addition to the nightly job? Or is this totally
> handcrafted?
> - How can it be that the rpm spec differs between the 3.3 branch and
> released rpms? What is the source/branch for el6 vdsm rpms? Maybe I'm
> just tracking on the wrong source tree...
Since this is VDSM related, adding vdsm-devel list to the discussion.
>
> Thx and Regards
> Patrick
>
>
--
Sandro Bonazzola
Better technology. Faster innovation. Powered by community collaboration.
See how it works at redhat.com
10 years, 6 months
/etc/sysctl.d/vdsm
by Sandro Bonazzola
Hi
On Fedora 19 I can see /etc/sysctl.d/vdsm but it seems that it's not read because it should be /etc/sysctl.d/vdsm.conf ( see sysctl --system output )
Is that file really needed?
--
Sandro Bonazzola
Better technology. Faster innovation. Powered by community collaboration.
See how it works at redhat.com
10 years, 6 months
{vdsm] vdsmapi-schema and json-rpc
by Piotr Kliczewski
Recently I compared vdsmapi-schema.json file and the engine code
(IVdsServer interface). I wanted to understand how to build json messages
from parameters which are provided by the engine interface.
I would like to understand which interface definition is more accurate and
update the other to have consistent information.
I am not sure how to map following engine methods to vdsm commands:
getHardwareInfo, getAllVmStats, heartBeat, startSpice,
getStorageConnectionsList, getStorageDomainsList, getVGList, changeDisk
(maybe VM.changeCD?)
I noticed parameter differences between the schema and the engine code:
- for Host.getVMList command there is isFull attribute in the engine code
but it is not in the schema
- for VM.changeCD and VM.changeFloppy commands the schema contains
DriveSpec whereas in the engine code there is imageLocation
- for VM.setTicket command in the engine existingConnAction and params
parameters
are optional whereas in the schema are mendatory
- for Host.delNetwork command parameter options is not there in the engine
whereas in the schema it is optional
- for StorageDomain.format command there is no autoDetach parameter in the
engine code
- for StoragePool.disconnect command there is no remove parametere in the
engine code
- for StoragePool.create command there is no lockPolicy parameter in the
schema
- for StoragePool.reconstructMaster command there are no lockPolicy and
hostSpmId parameters in the schema
- for StoragePool.getIsoList command there is no filenameExtension parameter
in the engine code
- for StoragePool.spmStart command there are no storagePoolFormatType and
domVersion parameters in the schema
- for StoragePool.fence command there are no prevID and prevLVER parameters
in the schema
There are some type mismatches:
- for StorageDomainType type is missing some values in the schema
- for Host.getDeviceList command there are different storage types in the
schema and the engine code
In the schema there is vmID parameter multiple times for following commands:
VM.create, VM.migrate, VM.hotplugDisk, VM.hotunplugDisk, VM.hotplugNic and
VM.hotunplugNic
Where can I find schema like information about all gluster commands?
10 years, 6 months
gerrit 2.7
by iheim@redhat.com
the only change i see interesting in gerrit 2.7 is:
- New copyMaxScore setting for labels.
Labels can be configured to copy approvals forward to the next patch
set.
but it's not clear on its scope, considering the mentioned changes in
2.8 release notes on same topic.
I plan to upgrade gerrit to 2.7 in a couple of weeks, mainly to prepare
for the 2.8 upgrade later on.
gerrit 2.8 (not released yet) has these interesting changes:
- Configurable external robots.txt file.
(courtesy of juan hernandez)
as well as:
- Labels can be configured to copy scores forward to new patch sets if
there is no code change.
- Labels can be configured to copy scores forward to new patch sets for
trivial rebases.
- New button to cherry-pick the change to another branch.
- When issuing a rebase via the Web UI, the committer is now the logged
in user, rather than "Gerrit Code Review".
- Copy reviewed flag to new patch sets for identical files.
If a user has already seen and reviewed a file, the reviewed flag is
forwarded on to the next patch set when the content of the file in
the next patch set is identical to the reviewed file.
other interesting changes in 2.8:
- New change screen with completely redesigned UI and fully using the
REST API.
- Secondary indexing with Lucene and Solr.
- Lots of new REST API endpoints.
- New UI extension and JavaScript API for plugins.
10 years, 6 months
Host local_host running without virtualization hardware acceleration
by Sandro Bonazzola
Hi,
I had to reinstall ovirt yesterday and now it seems that it doesn't work anymore.
I'm running nightly on Fedora 18.
kernel-3.11.4-101.fc18.x86_64
sanlock-2.8-1.fc18.x86_64
libvirt-1.1.4-1.fc18.x86_64
qemu-1.5.1-1.fc18.x86_64
vdsm-4.13.0-93.gitea8c8f0.fc18.x86_64
ovirt-engine-3.4.0-0.2.master.20131104192919.git3b65870.fc18.noarch
engine-setup with all-in-one detects hardware virtualization and allow me to configure the system.
(it fails detecting engine health status due probably to recent changes in its URL, I'm already looking into it)
Once added localhost to the engine, it has been moved to non operational mode saying
I don't have virtualization hardware acceleration anymore.
I've found that:
# modinfo kvm
filename: /lib/modules/3.11.4-101.fc18.x86_64/kernel/arch/x86/kvm/kvm.ko
license: GPL
author: Qumranet
depends:
intree: Y
vermagic: 3.11.4-101.fc18.x86_64 SMP mod_unload
parm: min_timer_period_us:uint
parm: ignore_msrs:bool
parm: tsc_tolerance_ppm:uint
parm: allow_unsafe_assigned_interrupts:Enable device assignment on platforms without interrupt remapping support. (bool)
# /usr/bin/qemu-kvm
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
looking at strace:
open("/dev/kvm", O_RDWR|O_CLOEXEC) = -1 ENOENT (No such file or directory)
Any clue on what may be happened?
--
Sandro Bonazzola
Better technology. Faster innovation. Powered by community collaboration.
See how it works at redhat.com
10 years, 6 months
[PATCH] stats: return HA agent score when applicable
by Martin Sivak
For Hosted Engine, the engine needs to know the HA score assigned to
each host by the HA agent--if it's installed. This patch returns the
score via the statistics interface.
Change-Id: Ibdad8accb0660dbdcc8b6e1b83f491c2f89c2d30
Signed-off-by: Greg Padgett <gpadgett(a)redhat.com>
Signed-off-by: Martin Sivák <msivak(a)redhat.com>
Label: DOWNSTREAM ONLY
---
vdsm/API.py | 13 +++++++++++++
vdsm_api/vdsmapi-schema.json | 5 ++++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git vdsm/API.py vdsm/API.py
index 37bb908..6cd13ee 100644
--- vdsm/API.py
+++ vdsm/API.py
@@ -48,6 +48,12 @@ import ksm
import supervdsm
+haClient = None # Define here to work around pyflakes issue #13
+try:
+ import ovirt_hosted_engine_ha.client.client as haClient
+except ImportError:
+ pass
+
# default message for system shutdown, will be displayed in guest
USER_SHUTDOWN_MESSAGE = 'System going down'
@@ -1209,6 +1215,13 @@ class Global(APIBase):
stats['netConfigDirty'] = str(self._cif._netConfigDirty)
stats['generationID'] = self._cif._generationID
+
+ if haClient:
+ try:
+ stats['haScore'] = haClient.HAClient().get_local_host_score()
+ except Exception:
+ self.log.exception("failed to retrieve Hosted Engine HA score")
+
return {'status': doneCode, 'info': stats}
def setLogLevel(self, level):
diff --git vdsm_api/vdsmapi-schema.json vdsm_api/vdsmapi-schema.json
index 60b4bd5..787c608 100644
--- vdsm_api/vdsmapi-schema.json
+++ vdsm_api/vdsmapi-schema.json
@@ -1613,6 +1613,9 @@
#
# @momStatus: The current status of the MOM policy engine
#
+# @haScore: #optional The host score according to the HA agent,
+# if installed (new in version 4.13.0)
+#
# Since: 4.10.0
##
{'type': 'HostStats',
@@ -1630,7 +1633,7 @@
'vmCount': 'int', 'vmActive': 'int', 'vmMigrating': 'int',
'dateTime': 'str', 'ksmState': 'bool', 'ksmPages': 'int',
'ksmCpu': 'float', 'netConfigDirty': 'bool', 'generationID':
'UUID',
- 'momStatus': 'MOMStatus'}}
+ 'momStatus': 'MOMStatus', '*haScore': 'uint'}}
##
# @Host.getStats:
--
1.8.3.1
10 years, 7 months