[Contrail-3.0] Deployment failed on pre-deploy

Bug #1554800 reported by Oleksandr Martsyniuk
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel Plugins
Fix Released
Critical
Przemysław Szypowicz

Bug Description

Pre-deployment plugin tasks will fail if there is no /etc/astute.yaml file,
the issue was found while working on upgrade procedure.

Actual result:
Deployment failed,
from astute log
2016-03-08 22:59:28 ERR [710] Unexpected error Failed to execute hook 'contrail-3.0.0' Puppet run failed. Check puppet logs for details
---
uids:
- '1'
parameters:
  puppet_modules: puppet/modules:/etc/puppet/modules
  puppet_manifest: puppet/manifests/common-repo.pp
  timeout: 720
  cwd: "/etc/fuel/plugins/contrail-3.0/"
priority: 2800
fail_on_error: true
type: puppet
diagnostic_name: contrail-3.0.0

from puppet log
2016-03-08 22:59:27 +0000 Puppet (err): Could not run: Could not retrieve facts for node-1.domain.tld: No such file or directory - /etc/astute.yaml
/etc/fuel/plugins/contrail-3.0/puppet/modules/contrail/lib/facter/sriov_devices.rb:24:in `initialize'
/etc/fuel/plugins/contrail-3.0/puppet/modules/contrail/lib/facter/sriov_devices.rb:24:in `open'
/etc/fuel/plugins/contrail-3.0/puppet/modules/contrail/lib/facter/sriov_devices.rb:24:in `<top (required)>'
/usr/lib/ruby/vendor_ruby/facter/util/loader.rb:95:in `load'
/usr/lib/ruby/vendor_ruby/facter/util/loader.rb:95:in `load_file'
/usr/lib/ruby/vendor_ruby/facter/util/loader.rb:46:in `block (2 levels) in load_all'
/usr/lib/ruby/vendor_ruby/facter/util/loader.rb:41:in `each'
/usr/lib/ruby/vendor_ruby/facter/util/loader.rb:41:in `block in load_all'
/usr/lib/ruby/vendor_ruby/facter/util/loader.rb:38:in `each'
/usr/lib/ruby/vendor_ruby/facter/util/loader.rb:38:in `load_all'
/usr/lib/ruby/vendor_ruby/facter/util/collection.rb:115:in `load_all'
/usr/lib/ruby/vendor_ruby/facter.rb:248:in `loadfacts'
/usr/lib/ruby/vendor_ruby/puppet/indirector/facts/facter.rb:13:in `reload_facter'
/usr/lib/ruby/vendor_ruby/puppet/indirector/facts/facter.rb:78:in `find'
/usr/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:201:in `find'
/usr/lib/ruby/vendor_ruby/puppet/node.rb:94:in `fact_merge'
/usr/lib/ruby/vendor_ruby/puppet/indirector/node/plain.rb:17:in `find'
/usr/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:201:in `find'
/usr/lib/ruby/vendor_ruby/puppet/application/apply.rb:182:in `main'
/usr/lib/ruby/vendor_ruby/puppet/application/apply.rb:146:in `run_command'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:364:in `block (2 levels) in run'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:470:in `plugin_hook'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:364:in `block in run'
/usr/lib/ruby/vendor_ruby/puppet/util.rb:478:in `exit_on_fail'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:364:in `run'
/usr/lib/ruby/vendor_ruby/puppet/util/command_line.rb:137:in `run'
/usr/lib/ruby/vendor_ruby/puppet/util/command_line.rb:91:in `execute'
/usr/bin/puppet:4:in `<main>'

Possible cause of problem is a custom fact sriov_devices, which requires /etc/astute.yaml file, which may be not available on pre-deploy.
Proposed solution - convert the fact into custom parser function, which will be called only from manifests that actually make use of it.

Tags: contrail
description: updated
Illia Polliul (ipolliul)
Changed in fuel-plugins:
status: New → In Progress
importance: Undecided → Critical
assignee: Fuel Plugin Contrail (fuel-plugin-contrail) → Przemysław Szypowicz (pszypowicz)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to fuel-plugin-contrail (stable/3.0)

Fix proposed to branch: stable/3.0
Review: https://review.openstack.org/290386

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-plugin-contrail (stable/3.0)

Reviewed: https://review.openstack.org/290386
Committed: https://git.openstack.org/cgit/openstack/fuel-plugin-contrail/commit/?id=618c5940505ddc3373ec60e047d0d53bb8bbbebb
Submitter: Jenkins
Branch: stable/3.0

commit 618c5940505ddc3373ec60e047d0d53bb8bbbebb
Author: Przemysław <email address hidden>
Date: Wed Mar 9 11:32:58 2016 +0100

    Fix sriov_devices fact

    This fact depend on /etc/astute.yaml file, which wasn't available on pre_deploy stage.
    Fact is moved to parser function.

    Change-Id: I9ffccb64aae1f954c23cf66a81dac0a0ef3fd218
    Closes-Bug: 1554800

Illia Polliul (ipolliul)
Changed in fuel-plugins:
status: In Progress → Fix Committed
Iryna Vovk (ivovk)
Changed in fuel-plugins:
status: Fix Committed → Fix Released
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.