Skip to content

Commit 0381542

Browse files
author
Tristan Stevens
committed
Add cm_api.j2
Signed-off-by: Tristan Stevens <[email protected]>
1 parent 321f55a commit 0381542

File tree

1 file changed

+90
-0
lines changed
  • roles/deployment/cluster/templates/cluster_template/ecs

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
{% macro ApiConfig(k, v, force_uppercase_keys=False) -%}
2+
{%- set config = {} -%}
3+
{%- if force_uppercase_keys -%}
4+
{{ config.update({"name": k | upper}) }}
5+
{%- else -%}
6+
{{ config.update({"name": k}) }}
7+
{%- endif -%}
8+
{# the extra to_json filter renders a dict into properly escaped JSON string for the CM API call #}
9+
{%- if v is mapping -%}
10+
{{ config.update({"value": v | to_json}) }}
11+
{%- else -%}
12+
{{ config.update({"value": v}) }}
13+
{%- endif -%}
14+
{{ config | to_json }}
15+
{%- endmacro %}
16+
17+
{% macro ApiConfigList(configs, force_uppercase_keys=False) -%}
18+
{%- set config_list = { "items": [] } -%}
19+
{%- if configs is mapping -%}
20+
{%- for (k, v) in configs.items() -%}
21+
{%- set config = ApiConfig(k, v, force_uppercase_keys) -%}
22+
{{ config_list["items"].append(config | from_json) }}
23+
{%- endfor -%}
24+
{%- endif -%}
25+
{{ config_list | to_json }}
26+
{%- endmacro %}
27+
28+
{% macro ApiClusterTemplateConfig(key, service_type, role_type, value, value_type="value") -%}
29+
{%- set config = {} -%}
30+
{{ config.update({"name": key}) }}
31+
{%- if value_type == "ref" or value_type == "value" -%}
32+
{{ config.update({ value_type: value }) }}
33+
{%- else -%}
34+
{%- set var_name = [service_type, role_type, key] | join("_") | replace('.','_') -%}
35+
{{ config.update({ "variable": var_name | upper }) }}
36+
{%- endif -%}
37+
{{ config | to_json }}
38+
{%- endmacro %}
39+
40+
{% macro ApiClusterTemplateConfigList(service_merged_configs, service_type, role_type) -%}
41+
{%- set config_list = [] -%}
42+
{%- if service_type in service_merged_configs -%}
43+
{%- if service_merged_configs[service_type][role_type] is mapping -%}
44+
{%- for (k, v) in service_merged_configs[service_type][role_type].items() -%}
45+
{%- if k.endswith("_service") and not "suppression" in k -%}
46+
{%- set config = ApiClusterTemplateConfig(k, service_type, role_type, v, "ref") -%}
47+
{%- else -%}
48+
{%- set config = ApiClusterTemplateConfig(k, service_type, role_type, v, "variable") -%}
49+
{%- endif -%}
50+
{{ config_list.append(config | from_json) }}
51+
{%- endfor -%}
52+
{%- endif -%}
53+
{%- endif -%}
54+
{{ config_list | to_json }}
55+
{%- endmacro %}
56+
57+
{% macro ApiService(service) -%}
58+
{}
59+
{%- endmacro %}
60+
61+
{% macro ApiServiceList(services) -%}
62+
{%- set api_service_list = { "items": [] } -%}
63+
{%- if services -%}
64+
{%- for service in services -%}
65+
{%- set api_service = ApiService(service) -%}
66+
{{ api_service_list["items"].append(api_service | from_json) }}
67+
{%- endfor -%}
68+
{%- endif -%}
69+
{{ api_service_list | to_json }}
70+
{%- endmacro %}
71+
72+
{% macro ApiExternalUserMapping(auth_type, user_mapping) %}
73+
{%- set external_user_mapping = {'name': user_mapping.group, 'type': auth_type, 'authRoles': []} -%}
74+
{%- for role in user_mapping.roles -%}
75+
{{ external_user_mapping['authRoles'].append(ApiAuthRoleRef(role) | from_json) }}
76+
{%- endfor -%}
77+
{{ external_user_mapping | to_json }}
78+
{%- endmacro %}
79+
80+
{% macro ApiExternalUserMappingList(auth_type, auth_user_mappings) %}
81+
{%- set external_user_mapping_list = { "items": [] } -%}
82+
{%- for user_mapping in auth_user_mappings -%}
83+
{{ external_user_mapping_list["items"].append(ApiExternalUserMapping(auth_type, user_mapping) | from_json) }}
84+
{%- endfor -%}
85+
{{ external_user_mapping_list | to_json }}
86+
{%- endmacro %}
87+
88+
{% macro ApiAuthRoleRef(name) -%}
89+
{ "uuid": {{ auth_role_uuids[name] | to_json }} }
90+
{%- endmacro %}

0 commit comments

Comments
 (0)