Bug 1503447 - [downstream clone - 3.6.13 ELS] Running engine-host-update.py does not work with RHVH / RHEVH hosts
Summary: [downstream clone - 3.6.13 ELS] Running engine-host-update.py does not work w...
Keywords:
Status: CLOSED EOL
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-engine
Version: 3.6.10
Hardware: All
OS: All
medium
medium
Target Milestone: ---
: ---
Assignee: Nobody
QA Contact: meital avital
URL:
Whiteboard:
Depends On: 1472812
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-10-18 07:07 UTC by Sandro Bonazzola
Modified: 2022-04-16 09:37 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1472812
Environment:
Last Closed: 2017-10-18 08:53:56 UTC
oVirt Team: Integration
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHV-45757 0 None None None 2022-04-16 09:37:18 UTC
oVirt gerrit 81687 0 master MERGED packaging: Update engine-host-update to support oVirt Node 2017-11-23 16:03:33 UTC

Description Sandro Bonazzola 2017-10-18 07:07:15 UTC
+++ This bug was initially created as a clone of Bug #1472812 +++

Description of problem:
Running engine-host-update.py for RHVH hosts

Version-Release number of selected component (if applicable):
ovirt-engine-4.1.4.2-0.1.el7.noarch

How reproducible:
100%

Steps to Reproduce:
1. run `./engine-host-update.py --insecure --engine=localhost --username=admin@internal --password=mypass` --host=rhevh

Actual results:
RHVH host is reinstalled. Updates still available.

Expected results:
When host is upgraded properly.

--- Additional comment from Yaniv Lavi (Dary) on 2017-07-31 05:11:17 EDT ---

Which version is the RHVH host are you trying to update?

--- Additional comment from Lukas Svaty on 2017-07-31 05:47:11 EDT ---

It was upgrade 4.1.3 -> 4.1.4 candidate.
However problem is not in host, rather in the utility, current flow:

1. Deactivate host
2. Reinstall host
3. Activate host

Reinstall host uses this code:

host.install(
            ovirtsdk.xml.params.Action(
                ssh=ovirtsdk.xml.params.SSH(
                    authentication_method='publickey'
                ),
                host=ovirtsdk.xml.params.Host(override_iptables=True),
            )
        )

My wild guess:
This method reinstalls the current image
a) for rhel hosts installs the packages and redeploy vdsm/libvirt..., which is correct
b)for rhevh it I believe it just reinstalls the current image, even that new image is available. For new image to be installed, upgrade should be used, not install/reinstall.

--- Additional comment from Yaniv Lavi (Dary) on 2017-08-07 05:06:07 EDT ---

Do we want to fix this?
When is the Ansible to do this planned to be released?

--- Additional comment from Dan Kenigsberg on 2017-08-21 08:32:58 EDT ---

(In reply to Yaniv Lavi (Dary) from comment #3)
> Do we want to fix this?

I do. Most of our install base is using RHVH.

> When is the Ansible to do this planned to be released?

4.1.6, according to Bug 1473535

--- Additional comment from Yaniv Lavi (Dary) on 2017-08-30 05:11:08 EDT ---

Making this work with the vintage node is more critical, than RHVH.

--- Additional comment from Jiri Belka on 2017-08-31 05:39:42 EDT ---

(In reply to Yaniv Lavi (Dary) from comment #5)
> Making this work with the vintage node is more critical, than RHVH.

I talked to mperina@ and he clarified how 'install' works.

1. first 'host.install' action does check what is host type:
   - if EL host, it _only_ installs packages which should are defined in
     host-deploy code
   - if node (and legacy?) it supposes it has all packages available

2. even "installing" packages on EL host does _NOT_ update all packages. These
   are defined in the DB (PackageNamesForCheckUpdate), thus simple 'host.install'
   won't update all packages in (PackageNamesForCheckUpdate).

3. for node/ngn I suppose 'host.install' does not touch any packaging and
   upgrade-manager updates 'ovirt-node-ng-image-update'
   ('OvirtNodePackageNamesForCheckUpdate' in DB) to update node/ngn.

Thus to update node/ngn (and to correct vds_type if it has been wrong) it would need to to reinstall ('host.install') and tell upgrade-manager to upgrade it as well.

--- Additional comment from Lev Veyde on 2017-09-26 10:34:06 EDT ---

Hi Lukas,

Can you please test my latest patch to see if that solves the issue for you?

--- Additional comment from Lukas Svaty on 2017-09-27 03:58:57 EDT ---

Moving needinfo to Jirka

--- Additional comment from Jiri Belka on 2017-10-03 11:25:09 EDT ---

- do not reinstall rhevh (legacy) it causes confusing message in engine events. rhevh (legacy) is distributed as an iso, please move 'if vdsType in ('rhev-h', 'RHEV_H'):' a little bit up

Host dell-r210ii-13 installation in progress . Failed to install fluentd packages.Please check the log for details.

Host dell-r210ii-13 installation in progress . Vintage node, skipping kernel arguments..

Host dell-r210ii-13 installation in progress . Cannot validate host name settings, reason: resolved host does not match any of the local addresses.

--- Additional comment from Jiri Belka on 2017-10-03 11:32:29 EDT ---

...
Performing RHEVH (Legacy) upgrade...
	Installing........................
	Rebooting............................................................*.*.*.*.*Error: RuntimeError('Unable to complete the reinstall operational, host is in mode: non_responsive',)

imo it should make another attempt to get host status, it is quite often that host is a little bit in non-responsive state after upgrade

--- Additional comment from Jiri Belka on 2017-10-04 04:05:44 EDT ---

this works incorrectly for RHVH (ngn or aka ovirt-node).

it does host.install, that's useless and does not update anything.

508            if vdsType in ('rhev-h', 'RHEV_H'):
509                print('Performing RHEVH (Legacy) upgrade...')
510                upgradeRHevhhost(api, name)
511            verifyHost(api, name)

but...

Processing Host: dell-r210ii-04
Type: ovirt_node
        Moving host to the maintenance.
        Host moved to maintenance.
        Installing........
        ^^^ why?

        Installed.
        ^^^ not upgraded anyting!

        Activating host..
        Host activated.
Requering the host type, type: ovirt_node
        Verifying that host stays up..................
        Verified.
Closed connection.

#6 was ignored here. summary:

- for rhel7 hosts, host.install is ok
- for rhevh legacy, host.upgrade should be used, no host.install at all!
- for rhvh/ovirt-node (ngn), host.upgrade probably with this time without iso

current implementation is bogus.

--- Additional comment from Lev Veyde on 2017-10-16 13:18:12 EDT ---

Fixed the issues for RHEVH legacy, working to fix the issues for the oVirt NGN as well.

Comment 1 Yaniv Lavi 2017-10-18 08:53:56 UTC
Will not be included in the code base for 3.6.z.
Will be in the KBase for this process.


Note You need to log in before you can comment on or make changes to this bug.