def _add_one_node_to_clb(self): """ Return an effect from adding nodes to CLB. Uses 1 default node. """ lb_id = "12345" lb_nodes = pset([('1.2.3.4', CLBDescription(lb_id=lb_id, port=80))]) step = AddNodesToCLB(lb_id=lb_id, address_configs=lb_nodes) return step.as_effect()
def test_add_nodes_to_clb(self): """ :obj:`AddNodesToCLB` produces a request for adding any number of nodes to a cloud load balancer. """ lb_id = "12345" lb_nodes = pset([ ('1.2.3.4', CLBDescription(lb_id=lb_id, port=80)), ('1.2.3.4', CLBDescription(lb_id=lb_id, port=8080)), ('2.3.4.5', CLBDescription(lb_id=lb_id, port=80)) ]) step = AddNodesToCLB(lb_id=lb_id, address_configs=lb_nodes) eff = step.as_effect() self.assertEqual( eff.intent, service_request( ServiceType.CLOUD_LOAD_BALANCERS, 'POST', "loadbalancers/12345/nodes", json_response=True, success_pred=ANY, data={"nodes": ANY}).intent) node_data = sorted(eff.intent.data['nodes'], key=lambda n: (n['address'], n['port'])) self.assertEqual(node_data, [ {'address': '1.2.3.4', 'port': 80, 'condition': 'ENABLED', 'type': 'PRIMARY', 'weight': 1}, {'address': '1.2.3.4', 'port': 8080, 'condition': 'ENABLED', 'type': 'PRIMARY', 'weight': 1}, {'address': '2.3.4.5', 'port': 80, 'condition': 'ENABLED', 'type': 'PRIMARY', 'weight': 1} ])