nova packages: wrong structure

Bug #1468230 reported by Ivan Berezovskiy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mirantis OpenStack
Fix Released
Critical
Denis Egorenko

Bug Description

Package: nova-consoleproxy
Architecture: all
Pre-Depends: dpkg (>= 1.15.6~)
Provides: nova-ajax-console-proxy,
           nova-novncproxy,
           nova-spicehtml5proxy,
           nova-spiceproxy,
          nova-xvpvncproxy,

We need split following packages nova-ajax-console-proxy, nova-novncproxy, nova-spicehtml5proxy, nova-spiceproxy, nova-xvpvncproxy like it's done in Ubuntu for Kilo: https://launchpad.net/ubuntu/+source/nova
because current structure with "provides" breaks puppet modules (puppet couldn't find packages which are provided)

Tags: nova
description: updated
Revision history for this message
Ivan Berezovskiy (iberezovskiy) wrote :

nova-objectstore is missed. Noone package provides it

Revision history for this message
Ivan Berezovskiy (iberezovskiy) wrote :

Set status to critical because it blocks puppet modules upgrade

Changed in mos:
importance: High → Critical
Revision history for this message
Ivan Berezovskiy (iberezovskiy) wrote :

We don't have package 'nova-objectstore' and puppet tries to install this package from trusty mirrors which version is 1:2014.1.4-0ubuntu2.1. It's not appropriate for Kilo.

http://paste.openstack.org/show/320868/

Revision history for this message
Ivan Berezovskiy (iberezovskiy) wrote :

Puppet can't install packages that are provided. That's why puppet fails when it tries to install nova-novncproxy package which is provided by nova-consoleproxy.

I suggest to split all package provided by nova-consoleproxy to their own packages. It will help to better maintain and deploy them from puppet and this is how it's done in upstream puppet modules. So, we shouldn't increase code divergence in puppets.

Revision history for this message
Ivan Udovichenko (iudovichenko) wrote :

Ivan, please provide detailed Puppet logs where nova-novncproxy package (provided by nova-consoleproxy) can't be installed .

Revision history for this message
Ivan Berezovskiy (iberezovskiy) wrote :
Revision history for this message
Ivan Udovichenko (iudovichenko) wrote :

Because we are using different repositories, it sets priority to Ubuntu repos, because it contains the exact names for packages (nova-ajax-console-proxy, nova-novncproxy, nova-spicehtml5proxy, nova-spiceproxy, nova-xvpvncproxy), not via "Provides:" section.
Thomas Goirand solution is to blacklist that packages via APT pinning and specify even the origin, if you need it.

Another way is to modify puppet manifests and add Ubuntu section in params.pp file [1] with required names.
Please check the Debian section [2] and you will get the idea.
Please let me know if you need help with it.

[1] https://github.com/openstack/puppet-nova/blob/master/manifests/params.pp
[2] https://github.com/openstack/puppet-nova/blob/master/manifests/params.pp#L99

Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote : Related fix merged to openstack-build/nova-build (openstack-ci/fuel-7.0/2015.1.0)

Reviewed: https://review.fuel-infra.org/8470
Submitter: Ivan Udovichenko <email address hidden>
Branch: openstack-ci/fuel-7.0/2015.1.0

Commit: 744fcdb894e9e2a2e85fb00721ed9d3789ead73d
Author: Ivan Udovichenko <email address hidden>
Date: Thu Jun 25 16:30:41 2015

Update Nova source package [Ubuntu]

  * Change default type of console proxy daemon from "spicehtml5" to "novnc"
  * Add nova-objectstore package as it is required by upstream Nova
    Puppet manifests at this moment.
    This package is not presented in Debian source package [1] and will be
    removed in future releases of Ubuntu due to its insecurity and
    not horizontal scalability.
  [1] http://anonscm.debian.org/cgit/openstack/nova.git/tree/debian/control?h=debian/kilo

Related-Bug: #1468230
Change-Id: Ic6b35edc62480d4da6f2e58e385a5b588e7eb4a6

Changed in mos:
status: Confirmed → Fix Committed
Revision history for this message
Ivan Berezovskiy (iberezovskiy) wrote :

vncproxy package name should fixed in puppets, so it's not committed yet

Changed in mos:
status: Fix Committed → In Progress
Revision history for this message
Ivan Berezovskiy (iberezovskiy) wrote :
Revision history for this message
Thomas Goirand (thomas-goirand) wrote :

Hi,

After discussing extensively this issue, I now believe that what should be done is adding a new variable in the upstream puppet manifests called "package-origin" where we would have either "canonical" or "debian", and do actions depending on this. It should IMO not be fixed at the packaging level. The PTL of puppet knows about the issue, as I've been working with him for a long time using the packages I produced for Debian installed on top of Ubuntu, so we would have his support doing this.

Your thoughts?

Thomas Goirand (zigo)

Changed in mos:
status: In Progress → Fix Committed
status: Fix Committed → In Progress
Revision history for this message
Thomas Goirand (thomas-goirand) wrote :

Hi,

After talking with Emilien M, I know a bit more now.

There's nothing which should be changed in the packages. What should be done is using the thing over here for tags:

https://github.com/openstack/puppet-nova/blob/master/manifests/generic_service.pp#L60

Changed in mos:
assignee: MOS Packaging Team (mos-packaging) → MOS Puppet Team (mos-puppet)
Revision history for this message
Ivan Berezovskiy (iberezovskiy) wrote :
Changed in mos:
assignee: MOS Puppet Team (mos-puppet) → Denis Egorenko (degorenko)
status: In Progress → Fix Committed
tags: added: on-verifiction
tags: added: on-verification
removed: on-verifiction
Revision history for this message
Vasiliy Pleshakov (vpleshakov) wrote :

Verified with fuel-7.0-224-2015-08-24_17-18-09.iso

Changed in mos:
status: Fix Committed → Fix Released
tags: removed: on-verification
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.