def test_success(self): """ The data is returned as a tuple of ([NovaServer], [CLBNode/RCv3Node]). """ clb_nodes = [CLBNode(node_id='node1', address='ip1', description=CLBDescription(lb_id='lb1', port=80))] rcv3_nodes = [RCv3Node(node_id='node2', cloud_server_id='a', description=RCv3Description(lb_id='lb2'))] eff = get_all_launch_server_data( 'tid', 'gid', self.now, get_scaling_group_servers=_constant_as_eff( ('tid', 'gid', self.now), self.servers), get_clb_contents=_constant_as_eff((), clb_nodes), get_rcv3_contents=_constant_as_eff((), rcv3_nodes)) expected_servers = [ server('a', ServerState.ACTIVE, servicenet_address='10.0.0.1', links=freeze([{'href': 'link1', 'rel': 'self'}]), json=freeze(self.servers[0])), server('b', ServerState.ACTIVE, created=1, servicenet_address='10.0.0.2', links=freeze([{'href': 'link2', 'rel': 'self'}]), json=freeze(self.servers[1])) ] self.assertEqual(resolve_stubs(eff), {'servers': expected_servers, 'lb_nodes': clb_nodes + rcv3_nodes})
def test_no_group_servers(self): """ If there are no servers in a group, get_all_launch_server_data includes an empty list. """ eff = get_all_launch_server_data( 'tid', 'gid', self.now, get_scaling_group_servers=_constant_as_eff( ('tid', 'gid', self.now), []), get_clb_contents=_constant_as_eff((), []), get_rcv3_contents=_constant_as_eff((), [])) self.assertEqual(resolve_stubs(eff), {'servers': [], 'lb_nodes': []})
def set_desired_to_actual_group(dispatcher, cass_client, group): """ Set group's desired to current number of servers in the group """ try: res_eff = get_all_launch_server_data( group["tenantId"], group["groupId"], datetime.utcnow()) eff = Effect(TenantScope(res_eff, group["tenantId"])) resources = yield perform(dispatcher, eff) actual = active_servers_count(resources["servers"]) print("group", group, "setting desired to ", actual) yield cass_client.execute( ('UPDATE scaling_group SET desired=:desired WHERE ' '"tenantId"=:tenantId AND "groupId"=:groupId'), assoc(group, "desired", actual), DEFAULT_CONSISTENCY) except Exception as e: print("Couldn't set group {} to {} due to {}".format(group, actual, e))