Я пытаюсь получить список доступных маршрутов по умолчанию и затем удалить их.
У меня есть следующий код
config.yaml
imports:
- path: action-1.jinja
- path: action-2.jinja
resources:
- name: action-1
type: action-1.jinja
- name: action-2
type: action-2.jinja
properties:
routes: $(ref.action-1.defaultlist)
action-1.jinja
resources:
- name: default-routes
action: 'gcp-types/compute-v1:compute.routes.list'
properties:
project: 'PROJECT_ID'
filter: name=default*
outputs:
- name: defaultlist
value: $(ref.default-routes.items)
action-2.jinja
{% set routes = properties['routes'] %}
resources:
{% for route in routes %}
- name: delete-{{ route.name }}
action: gcp-types/compute-v1:compute.routes.delete
properties:
route: {{ route.name }}
project: 'PROJECT_ID'
metadata:
runtimePolicy:
- CREATE
{% endfor %}
Я получаю следующую ошибку. .. Не уверен, почему route.name пустое и если маршруты пустые, то почему для l oop выполняется.
Manifest expansion encountered the following errors: Resource name 'delete-' is not unique in action-2.jinja. Resource: {'name': 'delete-', 'action': 'gcp-types/compute-v1:compute.routes.delete', 'metadata': {'runtimePolicy': ['CREATE']}, 'properties': {'project': 'PROJECT_ID', 'route': None}} Resource: config
Edit # 1 Мне кажется, я знаю проблему, и когда я передаю список в качестве вывода на основной YAML, он там в виде строки, поэтому для l oop во 2-ом jinja не работает, но я не уверен, как преобразовать эту строку в JSON / List / Dict ...