Bug 1028928 - No IP address set on private interface causes: value is a required option for Puppet::Parser::Resource::Param
No IP address set on private interface causes: value is a required option for...
Status: CLOSED ERRATA
Product: Red Hat OpenStack
Classification: Red Hat
Component: puppet (Show other bugs)
4.0
Unspecified Unspecified
unspecified Severity medium
: beta
: 4.0
Assigned To: RHOS Maint
Jaroslav Henner
:
: 1028615 (view as bug list)
Depends On: 1028930
Blocks:
  Show dependency treegraph
 
Reported: 2013-11-11 04:18 EST by Dominic Cleal
Modified: 2013-12-19 19:34 EST (History)
7 users (show)

See Also:
Fixed In Version: puppet-3.2.4-3.el6_5
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1028930 (view as bug list)
Environment:
Last Closed: 2013-12-19 19:34:59 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Dominic Cleal 2013-11-11 04:18:58 EST
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 14:37:53 EST
*** Bug 1028615 has been marked as a duplicate of this bug. ***
Comment 4 Scott Lewis 2013-11-19 11:54:58 EST
Auto adding >= MODIFIED bugs to beta
Comment 5 Omri Hochman 2013-11-19 13:11:06 EST
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-19 19:34:59 EST
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.