def _get_data(request, env, roles, virt, group_by_host=False): """Returns processed repository data, filtering nodes based on given args """ roles = [role for role in roles.split(',') if role] data = { 'filter_env': env, 'filter_roles': roles, 'filter_virt': virt, 'show_list': SHOW_LIST_VIEW, 'show_virt': SHOW_VIRT_VIEW, 'show_graph': SHOW_GRAPH_VIEW, 'show_links': SHOW_LINKS, 'query_string': request.META['QUERY_STRING'] } data['roles'] = get_roles() roles_groups = get_role_groups(data['roles']) data['roles_groups'] = roles_groups data['virt_roles'] = ['host', 'guest'] # Get environments before we filter nodes data['nodes'] = get_nodes() data['nodes_extended'] = get_nodes_extended(data['nodes']) data['environments'] = get_environments(data['nodes_extended']) if group_by_host: data['nodes_extended'] = group_nodes_by_host(data['nodes_extended'], roles=data['filter_roles'], env=data['filter_env']) elif data['filter_env'] or data['filter_roles'] or data['filter_virt']: data['nodes_extended'] = filter_nodes(data['nodes_extended'], data['filter_env'], data['filter_roles'], data['filter_virt']) inject_plugin_data(data['nodes_extended']) if not data['nodes_extended']: add_message(request, WARNING, "There are no nodes that fit the supplied criteria.") return data
def _get_data(request, env, roles, virt, group_by_host=False): """Returns processed repository data, filtering nodes based on given args """ data = {'filter_env': env, 'filter_roles': roles, 'filter_virt': virt} data['roles'] = get_roles() roles_groups = get_role_groups(data['roles']) data['roles_groups'] = roles_groups data['virt_roles'] = ['host', 'guest'] # Get environments before we filter nodes data['nodes'] = get_nodes() data['nodes_extended'] = get_nodes_extended(data['nodes']) data['environments'] = get_environments(data['nodes_extended']) roles_to_filter = '' if group_by_host else data['filter_roles'] if data['filter_env'] or roles_to_filter or data['filter_virt']: data['nodes_extended'] = filter_nodes(data['nodes_extended'], data['filter_env'], roles_to_filter, data['filter_virt']) if group_by_host: data['nodes_extended'] = group_nodes_by_host( data['nodes_extended'], roles=data['filter_roles']) inject_plugin_data(data['nodes_extended']) if not data['nodes_extended']: add_message(request, WARNING, "There are no nodes that fit the supplied criteria.") return data
def test_get_environments(self): """Should return a list of all chef_environment values found""" data = chef.get_environments(chef.get_nodes_extended()) self.assertEqual(len(data), 3) expected = [{'counts': 1, 'name': 'none'}, {'counts': 8, 'name': 'production'}, {'counts': 1, 'name': 'staging'}] self.assertEqual(data, expected)