def nginx_site_filename(site): if 'filename' in site: return site['filename'] else: return nginx_site_name(site) def nginx_site_name(site): if isinstance(site['name'], list): return site['name'][0] else: return site['name'] def nginx_ssl_dir(pair, ssl_dir): return ssl_dir + '/' + nginx_site_filename(pair) def nginx_key_path(pair, ssl_dir): if 'dest_key' in pair: return pair['dest_key'] else: return nginx_ssl_dir(pair, ssl_dir) + '/' + nginx_site_filename(pair) + '.key' def nginx_cert_path(pair, ssl_dir): if 'dest_cert' in pair: return pair['dest_cert'] else: return nginx_ssl_dir(pair, ssl_dir) + '/' + nginx_site_filename(pair) + '.crt' def nginx_all_site_names(site): all_sites = [] if isinstance(site['name'], list): all_sites = all_sites + site['name'] else: all_sites.append(site['name']) if 'redirect_from' in site: if isinstance(site['redirect_from'], list): all_sites = all_sites + site['redirect_from'] else: all_sites.append(site['redirect_from']) return all_sites def nginx_search_by_ssl_name(sites, ssl_name): if isinstance(ssl_name, list): comp_ssl_name = ssl_name[0] else: comp_ssl_name = ssl_name res = None for site in sites: if 'ssl_name' in site and site['ssl_name'] == comp_ssl_name: res = site break return res class FilterModule(object): ''' Nginx module ''' def filters(self): return { 'nginx_site_filename': nginx_site_filename, 'nginx_site_name': nginx_site_name, 'nginx_ssl_dir': nginx_ssl_dir, 'nginx_key_path': nginx_key_path, 'nginx_cert_path': nginx_cert_path, 'nginx_all_site_names': nginx_all_site_names, 'nginx_search_by_ssl_name': nginx_search_by_ssl_name }