From 274e9cbe19d48c00dc9f2be0d5c4a884c1b5b8f7 Mon Sep 17 00:00:00 2001 From: Theo Chatzimichos Date: Dec 06 2017 00:22:49 +0000 Subject: bin/get_{admins,roles}.py: introduce function to get roles of one server and use it on get_admins.py as well --- diff --git a/bin/get_admins.py b/bin/get_admins.py index 1f27a7b..b30a418 100755 --- a/bin/get_admins.py +++ b/bin/get_admins.py @@ -3,7 +3,7 @@ # For description and usage, see the argparse options at the end of the file from ldap3 import Server, Connection, ALL -from get_roles import get_roles, read_file_skip_jinja +from get_roles import get_roles, get_roles_of_one_server import argparse import os import sys @@ -25,13 +25,8 @@ def get_admins_of_a_role(admins, role): return results for sls in os.listdir('pillar/id'): - content = read_file_skip_jinja('pillar/id/%s' % sls) server = sls.split('_')[0] - try: - roles = yaml.load(content)['grains']['roles'] - except KeyError: - roles = [] - + roles = get_roles_of_one_server(server) if role in roles: for member in members: results[member] = admins[member] @@ -44,11 +39,7 @@ def get_admins_of_a_server(admins, server): results = {} try: - with open('pillar/id/%s_infra_opensuse_org.sls' % server) as f: - try: - roles = yaml.load(f)['grains']['roles'] - except KeyError: - roles = [] + roles = get_roles_of_one_server(server) except FileNotFoundError: print('Server not found') sys.exit(1) diff --git a/bin/get_roles.py b/bin/get_roles.py index bed79ed..d5a4386 100755 --- a/bin/get_roles.py +++ b/bin/get_roles.py @@ -18,18 +18,25 @@ def read_file_skip_jinja(filename): return '\n'.join(non_jinja_lines) +def get_roles_of_one_server(server): + if not server.endswith('_infra_opensuse_org.sls'): + server += '_infra_opensuse_org.sls' + content = read_file_skip_jinja("pillar/id/%s" % server) + try: + roles = yaml.load(content)['grains']['roles'] + except KeyError: + roles = [] + + return roles + + def get_roles(with_base=False): roles = [] if with_base: roles.append('base') for sls in os.listdir('pillar/id'): - content = read_file_skip_jinja("pillar/id/%s" % sls) - - try: - _roles = yaml.load(content)['grains']['roles'] - except KeyError: - continue + _roles = get_roles_of_one_server(sls) for item in _roles: roles.append(item)