示例#1
0
def initialize(manifest_fie):
    init = list()
    utils.log_info("Initialization....")
    key = utils.do_deploy_dir(manifest_fie)
    for stack in utils.initdir(key):
        for project in key["stack"][stack]:
            template = key["data"][stack][project]["template"]
            try:
                parameters = key["data"][stack][project]["parameters"]
            except:
                parameters = None
            url = False

            try:
                url = utils.repodata()[stack][template]["url"]
                branch = utils.repodata()[stack][template]["branch"]
            except:
                utils.log_err("template {} is not exist!".format(template))
                exit()

            dest = "{}/{}/{}".format(key["deploy_dir"], stack, project)
            utils.log_info("Build {} {} template".format(project, stack))

            if not utils.template_url(url, dest, branch):
                utils.log_err("Check your internet connection!")
                exit()

            utils.log_info("Done...")
            """ Stack init dict """
            stack_init = {}
            stack_init["dir"] = dest
            stack_init["project"] = project
            stack_init["stack"] = stack
            stack_init["env_file"] = False

            if parameters:
                utils.log_info("Create {} {} environment file".format(
                    project, stack))
                utils.yaml_create("{}/env.yml".format(dest),
                                  {"parameters": parameters})
                utils.log_info("Done...")
                stack_init["env_file"] = "{}/env.yml".format(dest)

            init.append(stack_init)
    """ Reformat squences deploy """
    if utils.check_key(key["data"], "deploy"):
        if len(key["data"]["deploy"]) > 0:
            set_sequence = list()
            for deploy in key["data"]["deploy"]:
                set_deploy = deploy.split(".")
                set_stack = set_deploy[0]
                set_project = set_deploy[1]
                set_sequence.append([
                    new_init for new_init in init
                    if (new_init["stack"] == set_stack) and (
                        new_init["project"] == set_project)
                ][0])
            init = set_sequence
    utils.yaml_create("{}/deploy.yml".format(key["deploy_dir"]), init)
    return init
示例#2
0
def initialize(manifest_fie):
    init = list()
    utils.log_info("Initialization....")
    key = utils.do_deploy_dir(manifest_fie)
    for stack in utils.initdir(key):
        for project in key["stack"][stack]:
            template = key["data"][stack][project]["template"]
            try:
                parameters = key["data"][stack][project]["parameters"]
            except:
                parameters = None
            url = False

            try:
                url = utils.repodata()[stack][template]["url"]
            except:
                utils.log_err("template {} is not exist!".format(template))
                exit()

            dest = "{}/{}/{}".format(key["deploy_dir"], stack, project)
            utils.log_info("Build {} {} template".format(project, stack))

            if not utils.template_url(url, dest):
                utils.log_err("Check your internet connection!")
                exit()

            utils.log_info("Done...")
            """ Stack init dict """
            stack_init = {}
            stack_init["dir"] = dest
            stack_init["project"] = project
            stack_init["stack"] = stack
            stack_init["env_file"] = False

            if parameters:
                utils.log_info("Create {} {} environment file".format(
                    project, stack))
                utils.yaml_create("{}/env.yml".format(dest), {
                    "parameters": parameters
                })
                utils.log_info("Done...")
                stack_init["env_file"] = "{}/env.yml".format(dest)

            init.append(stack_init)
    """ Reformat squences deploy """
    if utils.check_key(key["data"], "deploy"):
        if len(key["data"]["deploy"]) > 0:
            set_sequence = list()
            for deploy in key["data"]["deploy"]:
                set_deploy = deploy.split(".")
                set_stack = set_deploy[0]
                set_project = set_deploy[1]
                set_sequence.append([
                    new_init for new_init in init
                    if (new_init["stack"] == set_stack) and (
                        new_init["project"] == set_project)
                ][0])
            init = set_sequence
    utils.yaml_create("{}/deploy.yml".format(key["deploy_dir"]), init)
    return init
示例#3
0
文件: ncurses.py 项目: sdmoko/neo-cli
def setup_form(stack, project, parent=None):
    init = {
        "form": [{
            "type": "TitleText",
            "name": "Name",
            "key": "name"
        }],
        "depend": [],
        "number": [],
        "stack": stack,
        "project": project,
        "parent": parent
    }

    if parent:
        init["parent"] = parent

    repo = utils.repodata()[stack][project]
    if utils.check_key(repo, "parameters"):
        param = repo["parameters"]
        param_index = utils.get_index(param)
        for index in param_index:
            prop = param[index]
            if not utils.check_key(prop, "default"):
                if not utils.check_key(prop, "dependences"):
                    init["form"].append({
                        "type": "TitleText",
                        "name": prop["label"],
                        "key": index
                    })
                    if prop["type"] == "number":
                        init["number"].append(index)
                else:
                    depend = prop["dependences"]
                    if depend.split(":")[0] == "func":
                        func_name = depend.split(":")[1]
                        init["form"].append({
                            "type": "TitleSelectOne",
                            "name": prop["label"],
                            "key": index,
                            "scroll_exit": True,
                            "values": globals()[func_name](),
                            "max_height": 7,
                            "value": [
                                0,
                            ]
                        })
                    if depend.split(":")[0] == "repo":
                        repo_name = depend.split(":")[1]
                        init["depend"].append({
                            "name": prop["label"],
                            "key": index,
                            "repo": repo_name
                        })
    return init
示例#4
0
def setup_form(stack, project, parent=None):
    init = {
        "form": [{
            "type": "TitleText",
            "name": "Name",
            "key": "name"
        }],
        "depend": [],
        "number": [],
        "stack": stack,
        "project": project,
        "parent": parent
    }

    if parent:
        init["parent"] = parent

    repo = utils.repodata()[stack][project]
    if utils.check_key(repo, "parameters"):
        param = repo["parameters"]
        param_index = utils.get_index(param)
        for index in param_index:
            prop = param[index]
            if not utils.check_key(prop, "default"):
                if not utils.check_key(prop, "dependences"):
                    init["form"].append({
                        "type": "TitleText",
                        "name": prop["label"],
                        "key": index
                    })
                    if prop["type"] == "number":
                        init["number"].append(index)
                else:
                    depend = prop["dependences"]
                    if depend.split(":")[0] == "func":
                        func_name = depend.split(":")[1]
                        init["form"].append({
                            "type": "TitleSelectOne",
                            "name": prop["label"],
                            "key": index,
                            "scroll_exit": True,
                            "values": globals()[func_name](),
                            "max_height": 7,
                            "value": [
                                0,
                            ]
                        })
                    if depend.split(":")[0] == "repo":
                        repo_name = depend.split(":")[1]
                        init["depend"].append({
                            "name": prop["label"],
                            "key": index,
                            "repo": repo_name
                        })
    return init
示例#5
0
def get_stack():
    try:
        d_stack = utils.get_index(utils.repodata())
        f_stack = [{
            "type": "TitleSelectOne",
            "name": "Select Stack ",
            "key": "stack",
            "values": d_stack,
        }]
        stack = utils.prompt_generator("", f_stack)
        return stack[f_stack[0]["key"]]
    except:
        return None
示例#6
0
def get_project(templates):
    try:
        d_template = utils.get_index(utils.repodata()[templates])
        f_template = [{
            "type": "TitleSelectOne",
            "name": "-------------------",
            "key": "template",
            "values": d_template,
        }]
        template = utils.prompt_generator("Select Templates ", f_template)
        return template[f_template[0]["key"]]
    except:
        return None
示例#7
0
def get_stack():
    d_stack = utils.get_index(utils.repodata())
    f_stack = [{
        "type": "TitleSelectOne",
        "name": "Select Stack :",
        "key": "stack",
        "values": d_stack,
    }]
    stack = utils.form_generator("Stack list", f_stack)
    try:
        return d_stack[stack["stack"].value[0]]
    except:
        return None
示例#8
0
def get_project(templates):
    d_template = utils.get_index(utils.repodata()[templates])
    f_template = [{
        "type": "TitleSelectOne",
        "name": "Select template :",
        "key": "template",
        "values": d_template,
    }]
    template = utils.form_generator("Templates", f_template)
    try:
        return d_template[template["template"].value[0]]
    except:
        return None
示例#9
0
文件: ncurses.py 项目: sdmoko/neo-cli
def get_project(templates):
    d_template = utils.get_index(utils.repodata()[templates])
    f_template = [
        {
            "type": "TitleSelectOne",
            "name": "Select template :",
            "key": "template",
            "values": d_template
        },
    ]
    template = utils.form_generator("Templates", f_template)
    try:
        return (d_template[template["template"].value[0]])
    except:
        return None
示例#10
0
文件: ncurses.py 项目: sdmoko/neo-cli
def get_stack():
    d_stack = utils.get_index(utils.repodata())
    f_stack = [
        {
            "type": "TitleSelectOne",
            "name": "Select Stack :",
            "key": "stack",
            "values": d_stack
        },
    ]
    stack = utils.form_generator("Stack list", f_stack)
    try:
        return d_stack[stack["stack"].value[0]]
    except:
        return None
示例#11
0
 def test_repodata_and_get_index(self):
     repodata = utils.repodata()
     indexes = utils.get_index(repodata)
     assert set(["clusters", "networks"]).issubset(indexes)
示例#12
0
def setup_form(stack, project, parent=None):
    init = {
        "form": [],
        "depend": [],
        "number": [],
        "stack": stack,
        "project": project,
        "parent": parent,
    }

    if parent:
        init["parent"] = parent

    repo = utils.repodata()[stack][project]
    default_form_name = {"type": "TitleText", "name": "Name", "key": "name"}
    if utils.check_key(repo, "lists"):
        repo_lists = repo["lists"]
        """
            if type of 'repo_list' is list
        """
        if isinstance(repo_lists, list):
            init["form"].append({
                "type": "TitleSelect",
                "name": "Name",
                "key": "name",
                "values": repo_lists,
            })
        else:
            """
                if type of 'repo_list' is string
            """
            repo_lists = globals()[repo["lists"]]()
            if len(repo_lists) > 0:
                init["form"].append({
                    "type": "TitleSelect",
                    "name": "Name",
                    "key": "name",
                    "values": repo_lists,
                })
            else:
                init["form"].append(default_form_name)
    else:
        init["form"].append(default_form_name)

    if utils.check_key(repo, "parameters"):
        param = repo["parameters"]
        param_index = utils.get_index(param)
        for index in param_index:
            prop = param[index]
            if not utils.check_key(prop, "default"):
                if not utils.check_key(prop, "dependences"):
                    init["form"].append({
                        "type": "TitleText",
                        "name": prop["label"],
                        "key": index
                    })
                    if prop["type"] == "number":
                        init["number"].append(index)
                else:
                    depend = prop["dependences"]
                    if depend.split(":")[0] == "func":
                        func_name = depend.split(":")[1]
                        init["form"].append({
                            "type": "TitleSelectOne",
                            "name": prop["label"],
                            "key": index,
                            "scroll_exit": True,
                            "values": globals()[func_name](),
                            "max_height": 7,
                            "value": [0],
                        })
                    if depend.split(":")[0] == "repo":
                        repo_name = depend.split(":")[1]
                        init["depend"].append({
                            "name": prop["label"],
                            "key": index,
                            "repo": repo_name
                        })
    return init