VP C Список маршрутов как вход для дзиндзя - PullRequest
1 голос
/ 22 марта 2020

Я пытаюсь получить список доступных маршрутов по умолчанию и затем удалить их.

У меня есть следующий код

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

...