Closed sadimer closed 2 years ago
Clouni CLI command which was executed clouni --template-file issue.yaml --provider openstack --extra ignore_errors=true --cluster-name example --configuration-tool ansible --output-file issue_res.yaml --debug
Input TOSCA template
tosca_definitions_version: tosca_simple_yaml_1_0 topology_template: node_templates: my_network: type: tosca.nodes.network.Network properties: network_name: test_network cidr: 192.168.56.0/24 start_ip: 192.168.56.50 end_ip: 192.168.56.200 gateway_ip: 192.168.56.1 network_type: geneve
Current result
- name: Create OpenStack component openstack cluster hosts: localhost tasks: - file: path: '{{ playbook_dir }}/id_vars_example.yaml' state: absent - file: path: '{{ playbook_dir }}/id_vars_example.yaml' state: touch - name: Create OpenStack component network os_network: provider_network_type: geneve name: test_network register: my_network_network ignore_errors: 'true' - set_fact: my_network_network_list: '{{ my_network_network_list | default([]) }} + [ "{{ item.id }}" ]' loop: '{{ my_network_network.results | flatten(levels=1) }}' when: item.id is defined - set_fact: my_network_network_list: my_network_network_ids: '{{ my_network_network_list }}' when: my_network_network_list is defined - lineinfile: path: '{{ playbook_dir }}/id_vars_example.yaml' line: 'my_network_network_delete: {{ my_network_network.id }}' when: my_network_network.id is defined - lineinfile: path: '{{ playbook_dir }}/id_vars_example.yaml' line: '{{ my_network_network_list | to_nice_yaml }}' when: my_network_network_list is defined - fail: msg: Variable my_network_network is undefined! So it will not be deleted when: my_network_network_list is undefined and my_network_network.id is undefined ignore_errors: true - name: Create OpenStack component subnet os_subnet: allocation_pool_end: 192.168.56.200 allocation_pool_start: 192.168.56.50 cidr: 192.168.56.0/24 gateway_ip: 192.168.56.1 name: test_network network_name: test_network register: my_network_subnet ignore_errors: 'true' - set_fact: my_network_subnet_list: '{{ my_network_subnet_list | default([]) }} + [ "{{ item.id }}" ]' loop: '{{ my_network_subnet.results | flatten(levels=1) }}' when: item.id is defined - set_fact: my_network_subnet_list: my_network_subnet_ids: '{{ my_network_subnet_list }}' when: my_network_subnet_list is defined - lineinfile: path: '{{ playbook_dir }}/id_vars_example.yaml' line: 'my_network_subnet_delete: {{ my_network_subnet.id }}' when: my_network_subnet.id is defined - lineinfile: path: '{{ playbook_dir }}/id_vars_example.yaml' line: '{{ my_network_subnet_list | to_nice_yaml }}' when: my_network_subnet_list is defined - fail: msg: Variable my_network_subnet is undefined! So it will not be deleted when: my_network_subnet_list is undefined and my_network_subnet.id is undefined ignore_errors: true
Expected result Создание сети с заданными параметрами
Describe the bug В /clouni/toscatranslator/providers/openstack/TOSCA_openstack_definition_1_0.yaml есть параметры, помеченные как default, например:
openstack.nodes.Network: # os_network, os_networks_facts derived_from: openstack.nodes.Root properties: admin_state_up: type: boolean default: true ... shared: type: boolean default: false openstack.nodes.Subnet: # os_subnet, os_subnets_facts derived_from: openstack.nodes.Root properties: ... enable_dhcp: type: boolean default: true ... ip_version: type: integer default: 4
Но при трансляции их в ансибл эти параметры игнорируются, как будто их не существует (если их явно не указать), а должны транслироваться с дефолтными значениями (как и было раньше):
- name: Create OpenStack component network os_network: name: test_network shared: false provider_network_type: geneve register: my_network_network - name: Create OpenStack component subnet os_subnet: allocation_pool_end: 192.168.56.200 allocation_pool_start: 192.168.56.50 cidr: 192.168.56.0/24 enable_dhcp: true gateway_ip: 192.168.56.1 ip_version: 4 name: test_network network_name: test_network register: my_network_subnet
Additional context
Clouni CLI command which was executed clouni --template-file issue.yaml --provider openstack --extra ignore_errors=true --cluster-name example --configuration-tool ansible --output-file issue_res.yaml --debug
Input TOSCA template
Current result
Expected result Создание сети с заданными параметрами
Describe the bug В /clouni/toscatranslator/providers/openstack/TOSCA_openstack_definition_1_0.yaml есть параметры, помеченные как default, например:
Но при трансляции их в ансибл эти параметры игнорируются, как будто их не существует (если их явно не указать), а должны транслироваться с дефолтными значениями (как и было раньше):
Additional context