Version: 7.0 nightly build nr/id: 131
Steps to reproduce:
1. Use vbox scripts to create fuel master and 5 nodes
2. Create an environment with following settings:
a. Enable DVR and Neutron with VXLAN
b. Ceph as storage for Cinder, Glance and nova eph
c. change the host names of the nodes via UI
3. Add 1 node as controller and 2 nodes as compute + Ceph osd
4. Deploy the environment
Current result:
Deployment fails with Error: public see screenshot
Making the bug worse:
1. Directly redeploying fails with "Not enough deployed controllers - deployed cluster requires at least 1 deployed controller."
2. Adding 2 more controllers to the failed environment and then redeploying fails with: "Not enough deployed controllers - deployed cluster requires at least 1 deployed controller."
So there are 2 problems in this bug:
1. Fuel 7.0 fails deploying
2. When an environment fails you can only delete it as redeployment is bugged.
Expected result:
Deployment succeeds or error is shown with context on how to resolve the issue.
Attached is the diagnostic snapshot.
Debugging info of variables when the bug happens:
netgroups: {'management': {'netmask': '255.255.255.0', 'brd': '192.168.0.255', 'name': u'management', 'ip': '192.168.0.3/24', 'cidr': u'192.168.0.0/24', 'vlan': 101, 'gateway': None, 'dev': u'eth1'}, 'storage': {'netmask': '255.255.255.0', 'brd': '192.168.1.255', 'name': u'storage', 'ip': '192.168.1.1/24', 'cidr': u'192.168.1.0/24', 'vlan': 102, 'gateway': None, 'dev': u'eth2'}, 'private': {'netmask': '255.255.255.0', 'brd': '192.168.2.255', 'name': u'private', 'ip': '192.168.2.1/24', 'cidr': u'192.168.2.0/24', 'vlan': 103, 'gateway': None, 'dev': u'eth0'}, 'fuelweb_admin': {'netmask': '255.255.255.0', 'brd': '10.20.0.255', 'name': u'fuelweb_admin', 'ip': '10.20.0.9/24', 'cidr': u'10.20.0.0/24', 'vlan': None, 'gateway': u'10.20.0.2', 'dev': u'eth0'}}
locals(): {'node': <nailgun.db.sqlalchemy.models.node.Node object at 0x3685e50>, 'nm': <class 'nailgun.network.neutron.NeutronManager70'>, 'netgroups': {'management': {'netmask': '255.255.255.0', 'brd': '192.168.0.255', 'name': u'management', 'ip': '192.168.0.3/24', 'cidr': u'192.168.0.0/24', 'vlan': 101, 'gateway': None, 'dev': u'eth1'}, 'storage': {'netmask': '255.255.255.0', 'brd': '192.168.1.255', 'name': u'storage', 'ip': '192.168.1.1/24', 'cidr': u'192.168.1.0/24', 'vlan': 102, 'gateway': None, 'dev': u'eth2'}, 'private': {'netmask': '255.255.255.0', 'brd': '192.168.2.255', 'name': u'private', 'ip': '192.168.2.1/24', 'cidr': u'192.168.2.0/24', 'vlan': 103, 'gateway': None, 'dev': u'eth0'}, 'fuelweb_admin': {'netmask': '255.255.255.0', 'brd': '10.20.0.255', 'name': u'fuelweb_admin', 'ip': '10.20.0.9/24', 'cidr': u'10.20.0.0/24', 'vlan': None, 'gateway': u'10.20.0.2', 'dev': u'eth0'}}, 'netgroup_mapping': [('management', 'br-mgmt'), ('storage', 'br-storage'), ('private', 'br-mesh'), ('fuelweb_admin', 'br-fw-admin')], 'ngname': 'fuelweb_admin', 'netgroup': {'netmask': '255.255.255.0', 'brd': '10.20.0.255', 'name': u'fuelweb_admin', 'ip': '10.20.0.9/24', 'cidr': u'10.20.0.0/24', 'vlan': None, 'gateway': u'10.20.0.2', 'dev': u'eth0'}, 'nets_by_ifaces': defaultdict(<type 'list'>, {u'eth2': [{'br_name': 'br-storage', 'vlan_id': 102}], u'eth1': [{'br_name': 'br-mgmt', 'vlan_id': 101}], u'eth0': [{'br_name': 'br-mesh', 'vlan_id': 103}, {'br_name': 'br-fw-admin', 'vlan_id': None}]}), 'attrs': {'endpoints': {'br-fw-admin': {'IP': ['10.20.0.9/24']}, 'br-mesh': {'IP': ['192.168.2.1/24']}, 'br-floating': {'IP': 'none'}, 'br-storage': {'IP': ['192.168.1.1/24']}, 'br-mgmt': {'IP': ['192.168.0.3/24']}, 'br-ex': {'IP': 'none'}}, 'interfaces': {}, 'version': '1.1', 'roles': {u'keystone/api': 'br-mgmt', u'neutron/api': 'br-mgmt', u'mgmt/database': 'br-mgmt', u'sahara/api': 'br-mgmt', u'ceilometer/api': 'br-mgmt', u'mgmt/vip': 'br-mgmt', 'ex': 'br-ex', u'ceph/public': 'br-mgmt', u'mgmt/messaging': 'br-mgmt', u'management': 'br-mgmt', u'swift/api': 'br-mgmt', u'storage': 'br-storage', u'mgmt/corosync': 'br-mgmt', u'cinder/api': 'br-mgmt', u'swift/replication': 'br-storage', u'neutron/mesh': 'br-mesh', u'admin/pxe': 'br-fw-admin', u'mongo/db': 'br-mgmt', u'neutron/private': 'br-mesh', 'neutron/floating': 'br-floating', u'fw-admin': 'br-fw-admin', u'glance/api': 'br-mgmt', u'heat/api': 'br-mgmt', u'murano/api': 'br-mgmt', u'nova/api': 'br-mgmt', u'horizon': 'br-mgmt', u'nova/migration': 'br-mgmt', u'mgmt/memcache': 'br-mgmt', u'cinder/iscsi': 'br-storage', u'ceph/replication': 'br-storage'}, 'provider': 'lnx'}, 'is_public': True, 'brname': 'br-fw-admin', 'networks': [{'netmask': '255.255.255.0', 'brd': '192.168.2.255', 'name': u'private', 'ip': '192.168.2.1/24', 'cidr': u'192.168.2.0/24', 'vlan': 103, 'gateway': None, 'dev': u'eth0'}, {'cidr': u'172.16.0.0/24', 'vlan': None, 'name': u'public', 'dev': u'eth1'}, {'netmask': '255.255.255.0', 'brd': '192.168.0.255', 'name': u'management', 'ip': '192.168.0.3/24', 'cidr': u'192.168.0.0/24', 'vlan': 101, 'gateway': None, 'dev': u'eth1'}, {'netmask': '255.255.255.0', 'brd': '192.168.1.255', 'name': u'storage', 'ip': '192.168.1.1/24', 'cidr': u'192.168.1.0/24', 'vlan': 102, 'gateway': None, 'dev': u'eth2'}, {'netmask': '255.255.255.0', 'brd': '10.20.0.255', 'name': u'fuelweb_admin', 'ip': '10.20.0.9/24', 'cidr': u'10.20.0.0/24', 'vlan': None, 'gateway': u'10.20.0.2', 'dev': u'eth0'}], 'cls': <class 'nailgun.orchestrator.neutron_serializers.NeutronNetworkDeploymentSerializer70'>}
Log file:
[7f3382526740] (manager) Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/nailgun/task/manager.py", line 58, in _call_silently
to_return = method(task, *args, **kwargs)
File "/usr/lib/python2.6/site-packages/nailgun/task/task.py", line 164, in message
orchestrator_graph, task.cluster, nodes)
File "/usr/lib/python2.6/site-packages/nailgun/orchestrator/deployment_serializers.py", line 575, in serialize
cluster, nodes, ignore_customized=ignore_customized)
File "/usr/lib/python2.6/site-packages/nailgun/orchestrator/deployment_serializers.py", line 82, in serialize
cluster, node_group))
File "/usr/lib/python2.6/site-packages/nailgun/orchestrator/deployment_serializers.py", line 91, in serialize_generated
nodes = self.serialize_nodes(nodes)
File "/usr/lib/python2.6/site-packages/nailgun/orchestrator/deployment_serializers.py", line 238, in serialize_nodes
serialized_nodes.append(self.serialize_node(node, role))
File "/usr/lib/python2.6/site-packages/nailgun/orchestrator/deployment_serializers.py", line 450, in serialize_node
DeploymentHASerializer61, self).serialize_node(node, role)
File "/usr/lib/python2.6/site-packages/nailgun/orchestrator/deployment_serializers.py", line 258, in serialize_node
node_attrs.update(net_serializer.get_node_attrs(node))
File "/usr/lib/python2.6/site-packages/nailgun/orchestrator/base_serializers.py", line 199, in get_node_attrs
return cls.network_provider_node_attrs(node.cluster, node)
File "/usr/lib/python2.6/site-packages/nailgun/orchestrator/neutron_serializers.py", line 64, in network_provider_node_attrs
'network_scheme': cls.generate_network_scheme(node, networks),
File "/usr/lib/python2.6/site-packages/nailgun/orchestrator/neutron_serializers.py", line 1003, in generate_network_scheme
if is_public and netgroups['public'].get('gateway'):
KeyError: 'public'
Fixed by https:/ /review. openstack. org/#/c/ 219316/