Non idempotent libvirt host uuid generation for computes

Bug #1517915 reported by Bogdan Dobrelya
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Won't Fix
Medium
Oleksiy Molchanov
Mitaka
Won't Fix
Medium
Oleksiy Molchanov
Newton
Won't Fix
Medium
Oleksiy Molchanov

Bug Description

There is a custom function generate() [0] which would return new uuid each time it has been called.
Note, this doesn't affect the libvirt.conf file, but only the entities being generated in the catalog. But it makes the CMDB and the real conf files inconsistent, see https://review.openstack.org/#/c/131710/7/manifests/migration/libvirt.pp for details:
1. If I delete the libvirtd.conf and run puppet my UUID will be different. 2. Kept the way it is I can never use PuppetDB queries to identify a UUID to host mapping.

This issue with an inconsistent and idempotent catalog is also affects the Noop tests. But there is a simple w/a for Noop tests (currently implemented as a https://review.openstack.org/251314 ) while the complete fix should be done as a fact, see the aforementioned upstream patch comments.

The complete fix should be submitted upstream as well.

[0] https://github.com/openstack/fuel-library/blob/master/deployment/puppet/openstack/manifests/compute.pp#L232

Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

Probably this uuid must come from the Nailgun backend

Changed in mos:
milestone: none → 8.0
importance: Undecided → Medium
no longer affects: mos
Changed in fuel:
milestone: none → 8.0
importance: Undecided → Medium
tags: added: area-library
Changed in fuel:
assignee: nobody → Dmitry Ilyin (idv1985)
tags: added: life-cycle-management tech-debt
Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

Or we could use the custom "uuid" fact perhaps?

Ilya Kutukov (ikutukov)
Changed in fuel:
status: New → Confirmed
Changed in fuel:
assignee: Dmitry Ilyin (idv1985) → Bogdan Dobrelya (bogdando)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to fuel-library (master)

Fix proposed to branch: master
Review: https://review.openstack.org/247989

Changed in fuel:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on fuel-library (master)

Change abandoned by Bogdan Dobrelya (<email address hidden>) on branch: master
Review: https://review.openstack.org/247989

Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

This cannot be fixed on fuel-library side as:
- dmidecode UUID cannot be trusted https://pthree.org/2012/06/15/libvirt-tyan-motherboards-and-uuid/
- the only way to fix it would be a custom fact, but fuel team don't want more custom facts as it makes deployment of every task longer by 1-2 seconds.

Therefore, the uuid must come from the Nailgun backend, via hiera. Passing bug to the python team

Changed in fuel:
assignee: Bogdan Dobrelya (bogdando) → Fuel Python Team (fuel-python)
status: In Progress → New
tags: added: area-python
removed: area-library
Revision history for this message
Oleksiy Molchanov (omolchanov) wrote :

Bogdan,

I am trying to push this - https://review.openstack.org/#/c/131710/ to upstream. So there will be no sense to make any changes on our side.

Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

@Oleksiy, makes sense, thank you. Unless fixed upstream, we need this w/a with the hiera for noop tests.
Otherwise, there is new uuid in the catalog each time, this makes the data regression checks (WIP) to fail.

Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

Okay, this bug is valid only for the Noop framework idempotency. In fact, the augeas will not change the uuid in the libvirt.conf in a non-idempotent way, even though the new uuid will be generated in the catalog each time.
So, the issue is OK to be fixed only for the Noop tests, and upstream as well (but that is out of the issue scope)

summary: - Non idempotent libvirt host uuid generation for computes
+ Non idempotent libvirt host uuid generation for computes for Noop tests
+ only
description: updated
Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Bogdan Dobrelya (bogdando)
status: New → In Progress
importance: Medium → Low
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to fuel-library (master)

Fix proposed to branch: master
Review: https://review.openstack.org/251314

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-library (master)

Reviewed: https://review.openstack.org/251314
Committed: https://git.openstack.org/cgit/openstack/fuel-library/commit/?id=55cc0d2d2d3ac3b2ac6fdc94bcd78ce910f3ee75
Submitter: Jenkins
Branch: master

commit 55cc0d2d2d3ac3b2ac6fdc94bcd78ce910f3ee75
Author: Bogdan Dobrelya <email address hidden>
Date: Mon Nov 30 10:50:54 2015 +0100

    Get the host_uuid for libvirt from hiera

    * Fetch host_uuid from hiera
    * Preserve the default value as is to
    keep this change backwards compatible.
    * Fix the uuid idempotency issue for Noop tests:
    add host_uuid to the Noop astute.yaml templates for
    compute as if it was put there from the Nailgun
    backend.

    Closes-bug: #1517915

    Change-Id: I7437e56a7666abd32564acb715eb17c220a4896e
    Signed-off-by: Bogdan Dobrelya <email address hidden>

Changed in fuel:
status: In Progress → Fix Committed
summary: - Non idempotent libvirt host uuid generation for computes for Noop tests
- only
+ Non idempotent libvirt host uuid generation for computes
description: updated
Changed in fuel:
assignee: Bogdan Dobrelya (bogdando) → Oleksiy Molchanov (omolchanov)
Revision history for this message
Bogdan Dobrelya (bogdando) wrote :

Raised to medium as CMDB (catalog) inconsistent state is not so low issue, in fact...

Changed in fuel:
importance: Low → Medium
status: Fix Committed → Triaged
Dmitry Pyzhov (dpyzhov)
Changed in fuel:
milestone: 8.0 → 9.0
Revision history for this message
Oleksiy Molchanov (omolchanov) wrote :

Marking as won't fix, we have already removed this logic.

Changed in fuel:
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.