|  | 
|  | 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