summaryrefslogtreecommitdiffstats
path: root/qtip/cli/utils.py
blob: 832e5ba9a780e8d9a595910911837c5a24403b76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
##############################################################################
# Copyright (c) 2017 taseer94@gmail.com and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

from jinja2 import Environment
from jinja2 import FileSystemLoader
import os
from os import path
from prettytable import PrettyTable


QTIP_PACKAGE = path.join(path.dirname(__file__), os.pardir, os.pardir)
ROLES_PATH = 'resources/ansible_roles'


def join_vars(**kwargs):
    return " ".join(["{}={}".format(variable, value) for variable, value in kwargs.items()])


def table(name, components):
    """ Return a PrettyTable for component listing """
    table = PrettyTable([name])
    table.align[name] = 'l'
    [table.add_row([component['name'][0:-5]]) for component in components]
    return table


def render(name, var_dict):
    """ Get the templates to render for specific component """
    tmpl_path = path.join(path.dirname(__file__), 'templates')
    tmpl_loader = FileSystemLoader(tmpl_path)
    env = Environment(loader=tmpl_loader)
    template = env.get_template('{}.j2'.format(name))
    result = template.render(var_dict)
    return result