[dvs] undefined method `split' for nil:NilClass at /etc/fuel/plugins/fuel-plugin-vmware-dvs-3.1/puppet/manifests/agents.pp:22

Bug #1664116 reported by Anton on 2017-02-13
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel VMware DVS plugin
Undecided
Igor Gajsin

Bug Description

Detailed bug description:
I’ve tried to deploy the fuel-9.0.iso + update 9.2 with the fuel-plugin-vmware-dvs-3.1-3.1.0-1 package:
1 controllers + compute
Steps to reproduce:
 - configure controller
 - configure compute
 - configure networking
    Networks - Other - Enter the Cluster to dvSwitch mapping = VMVareCluster1:dvs3
 - configure vmware

Expected results:
Error
Deployment has failed. All nodes are finished. Failed tasks: Task[vmware-dvs-neutron-agent-install/1] Stopping the deployment process!

puppet.log
2017-02-10 09:44:54 +0000 Scope(Class[main]) (notice): MODULAR: fuel-plugin-vmware-dvs/vmware-dvs-network-plugins-l2
2017-02-10 09:44:55 +0000 Puppet (notice): Compiled catalog for node-1.domain.tld in environment production in 1.14 seconds
2017-02-10 09:44:56 +0000 /Stage[main]/Vmware_dvs::L2/Service[neutron-server]/ensure (notice): ensure changed 'stopped' to 'running'
2017-02-10 09:45:06 +0000 /Stage[main]/Vmware_dvs::L2/Exec[waiting-for-neutron-api] (notice): Triggered 'refresh' from 1 events
2017-02-10 09:45:06 +0000 /Stage[main]/Cluster::Neutron/File[/var/cache/neutron]/ensure (notice): created
2017-02-10 09:45:06 +0000 /Stage[main]/Cluster::Neutron::Ovs/Cluster::Corosync::Cs_service[ovs]/Pcmk_resource[p_neutron-ovs-agent-service]/ensure (notice): created
2017-02-10 09:45:06 +0000 /Stage[main]/Cluster::Neutron::Ovs/Cluster::Corosync::Cs_service[ovs]/Tweaks::Ubuntu_service_override[neutron-openvswitch-agent]/File[create-policy-rc.d]/ensure (notice): created
2017-02-10 09:45:08 +0000 /Stage[main]/Neutron::Agents::Ml2::Ovs/Package[neutron-ovs-agent]/ensure (notice): ensure changed 'purged' to 'present'
2017-02-10 09:45:08 +0000 /Stage[main]/Cluster::Neutron::Ovs/Cluster::Corosync::Cs_service[ovs]/Tweaks::Ubuntu_service_override[neutron-openvswitch-agent]/Exec[remove-policy-rc.d]/returns (notice): executed successfully
2017-02-10 09:45:08 +0000 /Stage[main]/Neutron::Agents::Ml2::Ovs/Neutron_agent_ovs[agent/enable_distributed_routing]/ensure (notice): created
2017-02-10 09:45:08 +0000 /Stage[main]/Vmware_dvs::L2/Neutron_agent_ovs[securitygroup/enable_security_group]/ensure (notice): created
2017-02-10 09:45:08 +0000 /Stage[main]/Neutron::Agents::Ml2::Ovs/Neutron_agent_ovs[ovs/enable_tunneling]/ensure (notice): created
2017-02-10 09:45:08 +0000 /Stage[main]/Neutron::Agents::Ml2::Ovs/Neutron_agent_ovs[ovs/integration_bridge]/ensure (notice): created
2017-02-10 09:45:08 +0000 /Stage[main]/Neutron::Agents::Ml2::Ovs/Neutron_agent_ovs[securitygroup/firewall_driver]/ensure (notice): created
2017-02-10 09:45:08 +0000 /Stage[main]/Neutron::Agents::Ml2::Ovs/Neutron_agent_ovs[ovs/bridge_mappings]/ensure (notice): created
2017-02-10 09:45:08 +0000 /Stage[main]/Neutron::Agents::Ml2::Ovs/Neutron_agent_ovs[agent/arp_responder]/ensure (notice): created
2017-02-10 09:45:08 +0000 /Stage[main]/Neutron::Agents::Ml2::Ovs/Neutron_agent_ovs[agent/drop_flows_on_start]/ensure (notice): created
2017-02-10 09:45:08 +0000 /Stage[main]/Neutron::Agents::Ml2::Ovs/Neutron_agent_ovs[agent/l2_population]/ensure (notice): created
2017-02-10 09:45:08 +0000 /Stage[main]/Neutron::Agents::Ml2::Ovs/Service[neutron-ovs-agent-service]/ensure (notice): ensure changed 'stopped' to 'running'
2017-02-10 09:45:09 +0000 Puppet (notice): Finished catalog run in 13.14 seconds
2017-02-10 09:45:10 +0000 Scope(Class[main]) (notice): MODULAR: fuel-plugin-vmware-dvs/agents
2017-02-10 09:45:10 +0000 Puppet (err): undefined method `split' for nil:NilClass at /etc/fuel/plugins/fuel-plugin-vmware-dvs-3.1/puppet/manifests/agents.pp:22 on node node-1.domain.tld
/etc/fuel/plugins/fuel-plugin-vmware-dvs-3.1/puppet/modules/vmware_dvs/lib/puppet/parser/functions/get_agents_data.rb:28:in `block (2 levels) in <module:Functions>'
/etc/fuel/plugins/fuel-plugin-vmware-dvs-3.1/puppet/modules/vmware_dvs/lib/puppet/parser/functions/get_agents_data.rb:17:in `each'
/etc/fuel/plugins/fuel-plugin-vmware-dvs-3.1/puppet/modules/vmware_dvs/lib/puppet/parser/functions/get_agents_data.rb:17:in `block in <module:Functions>'
/usr/lib/ruby/vendor_ruby/puppet/parser/functions.rb:164:in `block (2 levels) in newfunction'
/usr/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'
/usr/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'
/usr/lib/ruby/vendor_ruby/puppet/parser/functions.rb:157:in `block in newfunction'
/usr/lib/ruby/vendor_ruby/puppet/parser/ast/function.rb:42:in `evaluate'
/usr/lib/ruby/vendor_ruby/puppet/parser/ast.rb:61:in `safeevaluate'
/usr/lib/ruby/vendor_ruby/puppet/parser/ast/vardef.rb:14:in `evaluate'
/usr/lib/ruby/vendor_ruby/puppet/parser/ast.rb:61:in `safeevaluate'
/usr/lib/ruby/vendor_ruby/puppet/parser/ast/block_expression.rb:11:in `block in evaluate'
/usr/lib/ruby/vendor_ruby/puppet/parser/ast/block_expression.rb:10:in `each'
/usr/lib/ruby/vendor_ruby/puppet/parser/ast/block_expression.rb:10:in `evaluate'
/usr/lib/ruby/vendor_ruby/puppet/parser/ast.rb:61:in `safeevaluate'
/usr/lib/ruby/vendor_ruby/puppet/resource/type.rb:129:in `evaluate_code'
/usr/lib/ruby/vendor_ruby/puppet/parser/resource.rb:81:in `block in evaluate'
/usr/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'
/usr/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'
/usr/lib/ruby/vendor_ruby/puppet/parser/resource.rb:77:in `evaluate'
/usr/lib/ruby/vendor_ruby/puppet/parser/compiler.rb:426:in `evaluate_main'
/usr/lib/ruby/vendor_ruby/puppet/parser/compiler.rb:135:in `block (2 levels) in compile'
/usr/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'
/usr/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'
/usr/lib/ruby/vendor_ruby/puppet/parser/compiler.rb:135:in `block in compile'
/usr/lib/ruby/vendor_ruby/puppet/context.rb:64:in `override'
/usr/lib/ruby/vendor_ruby/puppet.rb:246:in `override'
/usr/lib/ruby/vendor_ruby/puppet/parser/compiler.rb:121:in `compile'
/usr/lib/ruby/vendor_ruby/puppet/parser/compiler.rb:34:in `compile'
/usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:95:in `block (2 levels) in compile'
/usr/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'
/usr/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'
/usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:93:in `block in compile'
/usr/lib/ruby/vendor_ruby/puppet/util.rb:161:in `block in benchmark'
/usr/lib/ruby/1.9.1/benchmark.rb:295:in `realtime'
/usr/lib/ruby/vendor_ruby/puppet/util.rb:160:in `benchmark'
/usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:92:in `compile'
/usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:52:in `find'
/usr/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:201:in `find'
/usr/lib/ruby/vendor_ruby/puppet/application/apply.rb:222:in `block in main'
/usr/lib/ruby/vendor_ruby/puppet/context.rb:64:in `override'
/usr/lib/ruby/vendor_ruby/puppet.rb:246:in `override'
/usr/lib/ruby/vendor_ruby/puppet/application/apply.rb:198:in `main'
/usr/lib/ruby/vendor_ruby/puppet/application/apply.rb:159:in `run_command'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:381:in `block (2 levels) in run'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:507:in `plugin_hook'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:381:in `block in run'
/usr/lib/ruby/vendor_ruby/puppet/util.rb:496:in `exit_on_fail'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:381:in `run'
/usr/lib/ruby/vendor_ruby/puppet/util/command_line.rb:146:in `run'
/usr/lib/ruby/vendor_ruby/puppet/util/command_line.rb:92:in `execute'
/usr/bin/puppet:8:in `<main>'

Revision history for this message
Igor Gajsin (igajsin) wrote :

There is something wrong in the configuration. Could you please provide the diagnostic snapshot.

Changed in fuel-plugin-vmware-dvs:
assignee: nobody → Igor Gajsin (igajsin)
milestone: none → 3.1.1
status: New → Incomplete
Revision history for this message
Anton (antonprk) wrote :

Snapshot

Changed in fuel-plugin-vmware-dvs:
milestone: 3.1.1 → 3.1.x-updates
Revision history for this message
Ilya Bumarskov (ibumarskov) wrote :

Anton, from the description above it follows that you took DVS plugin for 9.1 release. Fuel plugin catalog contains the DVS plugin 3.1.1 for 9.2 release. Please use it.

Fuel Plugins catalog: https://www.mirantis.com/software/fuel-plugins/

Revision history for this message
Anton (antonprk) wrote :

Im use
[root@fuel ~]# fuel2 fuel-version
api: '1'
auth_required: true
feature_groups: []
openstack_version: mitaka-9.0
release: '9.2'
[root@fuel ~]# fuel plugins list
id | name | version | package_version | releases
---+------------------------+---------+-----------------+--------------------
1 | fuel-plugin-vmware-dvs | 3.1.1 | 4.0.0 | ubuntu (mitaka-9.0)

Revision history for this message
Igor Gajsin (igajsin) wrote :

Anton, could you please provide a diagnostic shapshot, that made according to this instruction https://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/maintain-environment/create-snapshot.html

Looks like the plugin makes an error when tries to parse string "Cluster1:dvs3", but the screenshot is'nt enough to realize what happening.

Revision history for this message
Anton (antonprk) wrote :

It's obvious, that the problem is that if you specify only one cluster and one dVSw, the script can not parse the string.
But as soon as you add a semicolon at the end of the cluster description line and dVSw, like so:
Cluster1:ds3; <- here is a semicolon
everything works.
Just don't forget, that after deploying you need to remove the semicolon
at the and of the line
    network_maps = physnet2:ds3;
in the file
 vmware_dvs-vcenter-sn1.ini

Revision history for this message
Igor Gajsin (igajsin) wrote :

I think we had check that. As a guess, do you enumerated all your vmware clusters in the 'cluster to dvswitch' mapping?

Revision history for this message
Anton (antonprk) wrote :

The problem is that I only have one cluster and only one switch. Deploy stumbles on what could not from the string to make an array of clusters, since the cluster is only one. There in the code, perhaps you have a string list of clusters is not true in the array.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers