Bug 1028928 - No IP address set on private interface causes: value is a required option for Puppet::Parser::Resource::Param
Summary: No IP address set on private interface causes: value is a required option for...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: puppet
Version: 4.0
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: beta
: 4.0
Assignee: RHOS Maint
QA Contact: Jaroslav Henner
URL:
Whiteboard:
: 1028615 (view as bug list)
Depends On: 1028930
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-11-11 09:18 UTC by Dominic Cleal
Modified: 2013-12-20 00:34 UTC (History)
7 users (show)

Fixed In Version: puppet-3.2.4-3.el6_5
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1028930 (view as bug list)
Environment:
Last Closed: 2013-12-20 00:34:59 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1028621 1 None None None 2021-01-20 06:05:38 UTC
Red Hat Product Errata RHEA-2013:1859 0 normal SHIPPED_LIVE Red Hat Enterprise Linux OpenStack Platform Enhancement Advisory 2013-12-21 00:01:48 UTC

Internal Links: 1028621

Description Dominic Cleal 2013-11-11 09:18:58 UTC
Description of problem:
Configuring a compute node with quickstack::neutron::compute with the "private_interface" set to an interface name without an IP address configured results in the following Puppet error:

Error: Could not retrieve catalog from remote server: Error 400 on
SERVER: value is a required option for Puppet::Parser::Resource::Param
on node example.redhat.com

Version-Release number of selected component (if applicable):
packstack-modules-puppet-2013.2.1-0.7.dev806.el6ost.noarch
openstack-foreman-installer-0.0.21-1.el6ost.noarch
puppet-3.2.4-1.el6_4.noarch

How reproducible:
Always

Steps to Reproduce:
1. Set up openstack-foreman with a private interface present but unconfigured on a compute node
2. Assign the OpenStack Neutron Compute host group to the node
3. Run puppet on the node

Actual results:
Error: Could not retrieve catalog from remote server: Error 400 on
SERVER: value is a required option for Puppet::Parser::Resource::Param
on node example.redhat.com

Expected results:
Error: Could not retrieve catalog from remote server: Local ip for ovs agent must be set when tunneling is enabled at <path to neutron/agents/ovs.pp>:28 on node example.redhat.com

(please ensure the manifest file + line number are present)

Additional info:
Caused by http://projects.puppetlabs.com/issues/23115

For example:
# /etc/puppet/node.rb example.comredhat.com | grep private_interface
    private_interface: p3p1

# egrep "interfaces|ipadd"
/var/lib/puppet/yaml/facts/example.redhat.com.yaml
    ipaddress: "10.16.139.12"
    interfaces: "em1,em2,em3,em4,lo,p3p1,p3p2"
    ipaddress_lo: "127.0.0.1"
    ipaddress_em1: "10.16.139.12"

The ipaddress_p3p1 fact is missing, so the interface must be present but unconfigured.

In /etc/puppet/environments/production/modules/quickstack/manifests/neutron/compute.pp:106:

  class { '::neutron::agents::ovs':
      bridge_uplinks   => $ovs_bridge_uplinks,
      bridge_mappings  => $ovs_bridge_mappings,
      local_ip         => getvar("ipaddress_${private_interface}"),
      enable_tunneling => true,
  }

The getvar() function evaluates to nil, but Puppet should treat this as undef, then it would pass undef through to the neutron::agents::ovs class, which would do this error checking:

  if $enable_tunneling and ! $local_ip {
    fail('Local ip for ovs agent must be set when tunneling is enabled')
  }

Instead we're hitting an internal Puppet bug where the param evaluates to nil.

Comment 2 Dominic Cleal 2013-11-15 19:37:53 UTC
*** Bug 1028615 has been marked as a duplicate of this bug. ***

Comment 4 Scott Lewis 2013-11-19 16:54:58 UTC
Auto adding >= MODIFIED bugs to beta

Comment 5 Omri Hochman 2013-11-19 18:11:06 UTC
Verified with puppet-3.2.4-3.el6_5.noarch

There is a request to have IP Address on the private_interface NIC - When there's no IP address on that NIC the error message that display seems like the expected result.  


Actual Results : 
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Local ip for ovs agent must be set when tunneling is enabled at /usr/share/packstack/modules/neutron/manifests/agents/ovs.pp:28 on node puma02.scl.lab.tlv.redhat.com


Expected results:
Error: Could not retrieve catalog from remote server: Local ip for ovs agent must be set when tunneling is enabled at <path to neutron/agents/ovs.pp>:28 on node example.redhat.com

Comment 8 errata-xmlrpc 2013-12-20 00:34:59 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHEA-2013-1859.html


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