Example #1
0
def compile_project_dsl_class(project_class):

    project_payload = None
    UserProjectPayload, _ = create_project_payload(project_class)
    project_payload = UserProjectPayload.get_dict()

    return project_payload
Example #2
0
def compile_project_dsl_class(project_class):

    envs = []
    if hasattr(project_class, "envs"):
        envs = getattr(project_class, "envs", [])
        project_class.envs = []
        project_class.default_environment = {}

    # Adding environment infra to project
    for env in envs:
        providers = getattr(env, "providers", [])
        for env_pdr in providers:
            env_pdr_account = env_pdr.account_reference.get_dict()
            _a_found = False
            for proj_pdr in getattr(project_class, "providers", []):
                proj_pdr_account = proj_pdr.account_reference.get_dict()
                if env_pdr_account["name"] == proj_pdr_account["name"]:
                    _a_found = True

                    # If env account subnets not present in project, then add them by default
                    if proj_pdr.type == "nutanix_pc":
                        env_pdr_subnets = env_pdr.subnet_reference_list
                        env_pdr_ext_subnets = env_pdr.external_network_list

                        proj_pdr_subnets = proj_pdr.subnet_reference_list
                        proj_pdr_ext_subnets = proj_pdr.external_network_list

                        for _s in env_pdr_subnets:
                            _s_uuid = _s.get_dict()["uuid"]
                            _s_found = False

                            for _ps in proj_pdr_subnets:
                                if _ps.get_dict()["uuid"] == _s_uuid:
                                    _s_found = True
                                    break

                            if not _s_found:
                                proj_pdr.subnet_reference_list.append(_s)

                        for _s in env_pdr_ext_subnets:
                            _s_uuid = _s.get_dict()["uuid"]
                            _s_found = False

                            for _ps in proj_pdr_ext_subnets:
                                if _ps.get_dict()["uuid"] == _s_uuid:
                                    _s_found = True
                                    break

                            if not _s_found:
                                proj_pdr.external_network_list.append(_s)

            # If environment account not available in project add it to project
            if not _a_found:
                project_class.providers.append(env_pdr)

    project_payload = None
    UserProjectPayload, _ = create_project_payload(project_class)
    project_payload = UserProjectPayload.get_dict()

    return project_payload
Example #3
0
def compile_project(project_file):

    user_project_module = get_project_module_from_file(project_file)
    UserProject = get_project_class_from_module(user_project_module)
    if UserProject is None:
        return None

    project_payload = None
    UserProjectPayload, _ = create_project_payload(UserProject)
    project_payload = UserProjectPayload.get_dict()

    return project_payload