From 693e8605fb697583f2ac0679a61a2945eab44d00 Mon Sep 17 00:00:00 2001 From: Randall Burt Date: Wed, 4 Nov 2015 12:25:36 -0600 Subject: [PATCH] Always process node addresses Never return a node without an address, otherwise the call to CLB will fail. Change-Id: I443b568f509246f8d38a8ddcf0ce4b1d1fd0c689 --- .../rackspace/resources/cloud_loadbalancer.py | 13 +++++-------- .../rackspace/tests/test_cloud_loadbalancer.py | 3 ++- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/contrib/rackspace/rackspace/resources/cloud_loadbalancer.py b/contrib/rackspace/rackspace/resources/cloud_loadbalancer.py index fcd834fc8d..079fbfa4cb 100644 --- a/contrib/rackspace/rackspace/resources/cloud_loadbalancer.py +++ b/contrib/rackspace/rackspace/resources/cloud_loadbalancer.py @@ -503,14 +503,11 @@ class CloudLoadBalancer(resource.Resource): return False def _process_node(self, node): - if not node.get(self.NODE_ADDRESSES): - yield node - else: - for addr in node.get(self.NODE_ADDRESSES): - norm_node = copy.deepcopy(node) - norm_node['address'] = addr - del norm_node[self.NODE_ADDRESSES] - yield norm_node + for addr in node.get(self.NODE_ADDRESSES, []): + norm_node = copy.deepcopy(node) + norm_node['address'] = addr + del norm_node[self.NODE_ADDRESSES] + yield norm_node def _process_nodes(self, node_list): node_itr = six.moves.map(self._process_node, node_list) diff --git a/contrib/rackspace/rackspace/tests/test_cloud_loadbalancer.py b/contrib/rackspace/rackspace/tests/test_cloud_loadbalancer.py index d358909531..37a1f83c49 100644 --- a/contrib/rackspace/rackspace/tests/test_cloud_loadbalancer.py +++ b/contrib/rackspace/rackspace/tests/test_cloud_loadbalancer.py @@ -424,7 +424,8 @@ class LoadBalancerTest(common.HeatTestCase): def test_process_node(self): nodes = [{'addresses': ['1234'], 'port': 80, 'enabled': True}, {'addresses': ['4567', '8901', '8903'], 'port': 80, - 'enabled': True}] + 'enabled': True}, + {'addresses': [], 'port': 80, 'enabled': True}] rsrc, fake_lb = self._mock_loadbalancer(self.lb_template, self.lb_name, self.expected_body)