From a30ac7de4854004764dfb316d19b1c16c2cb46b4 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Tue, 18 Dec 2018 17:09:54 +0000 Subject: [PATCH] Fix ansible-lint nits Ansible lint has become more fussy about its nit picking, blocking CI. This change makes it happy again. Change-Id: Ifb86c5e071697acda014bb543cab7ebf2b648dc9 --- ansible/hypervisor_setup.yml | 8 +- ansible/physical_network.yml | 2 +- ansible/resource_wait.yml | 2 +- ansible/roles/ironic-enrolment/tasks/main.yml | 5 +- ansible/roles/ironic-enrolment/tasks/port.yml | 2 +- ansible/roles/nova-flavors/tasks/main.yml | 109 +++++++++--------- .../roles/virtualbmc-daemon/tasks/main.yml | 11 +- .../roles/virtualbmc-domain/tasks/main.yml | 2 +- .../roles/wait-for-resources/tasks/main.yml | 3 + 9 files changed, 82 insertions(+), 62 deletions(-) diff --git a/ansible/hypervisor_setup.yml b/ansible/hypervisor_setup.yml index fa67697..db8217a 100644 --- a/ansible/hypervisor_setup.yml +++ b/ansible/hypervisor_setup.yml @@ -3,7 +3,7 @@ include_vars: "{{ item }}" with_first_found: - files: - - "{{ ansible_distribution }}-{{ ansible_distribution_major_version}}.yml" + - "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml" - "{{ ansible_distribution }}.yml" - "{{ ansible_os_family }}.yml" skip: true @@ -12,6 +12,9 @@ - name: Ensure general system requirements are installed package: name: "{{ system_requirements }}" + register: result + until: result is success + retries: 3 become: true # Don't uninstall requirements during teardown since they may already have # been present. @@ -35,6 +38,9 @@ - name: Ensure Open vSwitch package is installed package: name: "{{ tenks_openvswitch_pkg_name }}" + register: result + until: result is success + retries: 3 become: true - name: Ensure Open vSwitch is started and enabled diff --git a/ansible/physical_network.yml b/ansible/physical_network.yml index 4b51038..dbc97cf 100644 --- a/ansible/physical_network.yml +++ b/ansible/physical_network.yml @@ -4,7 +4,7 @@ include_vars: "{{ item }}" with_first_found: - files: - - "{{ ansible_distribution }}-{{ ansible_distribution_major_version}}.yml" + - "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml" - "{{ ansible_distribution }}.yml" - "{{ ansible_os_family }}.yml" skip: true diff --git a/ansible/resource_wait.yml b/ansible/resource_wait.yml index f3a23d3..af2527b 100644 --- a/ansible/resource_wait.yml +++ b/ansible/resource_wait.yml @@ -11,7 +11,7 @@ resource: amount: "{{ spec.count | int }}" # this gets converted back to a string resource_class: "{{ 'CUSTOM_' ~ spec.ironic_config.resource_class | upper | replace('-', '_') }}" - traits: "{{ spec.ironic_config.traits | default([])}}" + traits: "{{ spec.ironic_config.traits | default([]) }}" set_fact: tenks_expected_resources: >- {{ tenks_expected_resources + [resource] }} diff --git a/ansible/roles/ironic-enrolment/tasks/main.yml b/ansible/roles/ironic-enrolment/tasks/main.yml index c8d3103..c9fb3dd 100644 --- a/ansible/roles/ironic-enrolment/tasks/main.yml +++ b/ansible/roles/ironic-enrolment/tasks/main.yml @@ -22,6 +22,9 @@ extra_args: >- -c {{ ironic_python_upper_constraints_url }} virtualenv: "{{ ironic_virtualenv_path }}" + register: result + until: result is success + retries: 3 # This command will return the UUIDs, regardless of whether # ironic_deploy_kernel and ironic_deploy_ramdisk are image UUIDs or names. @@ -36,7 +39,7 @@ # for enrolment to continue. when: - item is not none - - item != "" + - item | length > 0 register: deploy_image_ids changed_when: false diff --git a/ansible/roles/ironic-enrolment/tasks/port.yml b/ansible/roles/ironic-enrolment/tasks/port.yml index b166984..a4f4133 100644 --- a/ansible/roles/ironic-enrolment/tasks/port.yml +++ b/ansible/roles/ironic-enrolment/tasks/port.yml @@ -11,7 +11,7 @@ - name: Fail if port is not found fail: msg: Ironic port with MAC address {{ mac }} not found - when: uuid.stdout == "" + when: not uuid.stdout - name: Get physical network name set_fact: diff --git a/ansible/roles/nova-flavors/tasks/main.yml b/ansible/roles/nova-flavors/tasks/main.yml index 992ac7f..6ad3107 100644 --- a/ansible/roles/nova-flavors/tasks/main.yml +++ b/ansible/roles/nova-flavors/tasks/main.yml @@ -1,55 +1,58 @@ --- - - name: Ensure Python requirements are installed - pip: - requirements: "{{ '/'.join([role_path, 'files', 'requirements.txt']) }}" - extra_args: >- - -c {{ flavors_python_upper_constraints_url }} - virtualenv: "{{ flavors_virtualenv_path }}" +- name: Ensure Python requirements are installed + pip: + requirements: "{{ '/'.join([role_path, 'files', 'requirements.txt']) }}" + extra_args: >- + -c {{ flavors_python_upper_constraints_url }} + virtualenv: "{{ flavors_virtualenv_path }}" + register: result + until: result is success + retries: 3 - - name: Configure Nova flavors - os_nova_flavor: - auth_type: password - name: "{{ item.name | default(item.resource_class) }}" - # FIXME(w-miller): don't necessarily assume the first disk? - disk: "{{ node_types[item.node_type].volumes.0.capacity | default('0') - | size_string_to_gb }}" - ram: "{{ node_types[item.node_type].memory_mb }}" - vcpus: "{{ node_types[item.node_type].vcpus }}" - # NOTE(w-miller): I'm not quite sure whether this is janky or beautiful. - # - # * Set hardware specs to zero here for scheduling purposes. - # * Add the resource class name. - # * Add required and forbidden traits. - # * Add any custom specs from the user. - extra_specs: >- - {{ hw_specs - | combine(resource_class) - | combine(required_traits) - | combine(forbidden_traits) - | combine(item.custom_specs | default({})) - }} - state: "{{ flavors_state }}" - vars: - hw_specs: - "resources:DISK_GB": 0 - "resources:MEMORY_MB": 0 - "resources:VCPU": 0 - resource_class: >- - {{ { - "resources:CUSTOM_" ~ ( - item.resource_class | upper - | regex_replace('[^A-Z0-9]', '_')): 1 - } }} - required_traits: >- - {{ dict(item.required_traits - | default([]) - | map('regex_replace', '(.*)', 'trait:\1') - | zip_longest([], fillvalue='required')) }} - forbidden_traits: >- - {{ dict(item.forbidden_traits - | default([]) - | map('regex_replace', '(.*)', 'trait:\1') - | zip_longest([], fillvalue='forbidden')) }} - ansible_python_interpreter: >- - {{ '/'.join([flavors_virtualenv_path, 'bin', 'python']) }} - loop: "{{ flavors }}" +- name: Configure Nova flavors + os_nova_flavor: + auth_type: password + name: "{{ item.name | default(item.resource_class) }}" + # FIXME(w-miller): don't necessarily assume the first disk? + disk: "{{ node_types[item.node_type].volumes.0.capacity | default('0') + | size_string_to_gb }}" + ram: "{{ node_types[item.node_type].memory_mb }}" + vcpus: "{{ node_types[item.node_type].vcpus }}" + # NOTE(w-miller): I'm not quite sure whether this is janky or beautiful. + # + # * Set hardware specs to zero here for scheduling purposes. + # * Add the resource class name. + # * Add required and forbidden traits. + # * Add any custom specs from the user. + extra_specs: >- + {{ hw_specs + | combine(resource_class) + | combine(required_traits) + | combine(forbidden_traits) + | combine(item.custom_specs | default({})) + }} + state: "{{ flavors_state }}" + vars: + hw_specs: + "resources:DISK_GB": 0 + "resources:MEMORY_MB": 0 + "resources:VCPU": 0 + resource_class: >- + {{ { + "resources:CUSTOM_" ~ ( + item.resource_class | upper + | regex_replace('[^A-Z0-9]', '_')): 1 + } }} + required_traits: >- + {{ dict(item.required_traits + | default([]) + | map('regex_replace', '(.*)', 'trait:\1') + | zip_longest([], fillvalue='required')) }} + forbidden_traits: >- + {{ dict(item.forbidden_traits + | default([]) + | map('regex_replace', '(.*)', 'trait:\1') + | zip_longest([], fillvalue='forbidden')) }} + ansible_python_interpreter: >- + {{ '/'.join([flavors_virtualenv_path, 'bin', 'python']) }} + loop: "{{ flavors }}" diff --git a/ansible/roles/virtualbmc-daemon/tasks/main.yml b/ansible/roles/virtualbmc-daemon/tasks/main.yml index fcb4504..465f587 100644 --- a/ansible/roles/virtualbmc-daemon/tasks/main.yml +++ b/ansible/roles/virtualbmc-daemon/tasks/main.yml @@ -3,7 +3,7 @@ include_vars: "{{ item }}" with_first_found: - files: - - "{{ ansible_distribution }}-{{ ansible_distribution_major_version}}.yml" + - "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml" - "{{ ansible_distribution }}.yml" - "{{ ansible_os_family }}.yml" skip: true @@ -11,9 +11,11 @@ - name: Ensure package dependencies are installed package: - name: "{{ item }}" + name: "{{ vbmcd_packages }}" state: installed - loop: "{{ vbmcd_packages }}" + register: result + until: result is success + retries: 3 become: true # This is useful to get a uniquely generated temporary path. @@ -32,6 +34,9 @@ extra_args: >- -c {{ vbmcd_python_upper_constraints_url }} virtualenv: "{{ vbmcd_virtualenv_path }}" + register: result + until: result is success + retries: 3 - name: Ensure Virtual BMC systemd service is configured template: diff --git a/ansible/roles/virtualbmc-domain/tasks/main.yml b/ansible/roles/virtualbmc-domain/tasks/main.yml index a664471..08f986a 100644 --- a/ansible/roles/virtualbmc-domain/tasks/main.yml +++ b/ansible/roles/virtualbmc-domain/tasks/main.yml @@ -45,7 +45,7 @@ --username '{{ vbmc_ipmi_username }}' --password '{{ vbmc_ipmi_password }}' --address {{ vbmc_ipmi_address }} - {% if vbmc_libvirt_uri %} --libvirt-uri '{{vbmc_libvirt_uri}}'{% endif %} + {% if vbmc_libvirt_uri %} --libvirt-uri '{{ vbmc_libvirt_uri }}'{% endif %} when: vbmc_state == 'present' become: true tags: diff --git a/ansible/roles/wait-for-resources/tasks/main.yml b/ansible/roles/wait-for-resources/tasks/main.yml index 401dbd0..2f4ef39 100644 --- a/ansible/roles/wait-for-resources/tasks/main.yml +++ b/ansible/roles/wait-for-resources/tasks/main.yml @@ -29,6 +29,9 @@ -c {{ wait_for_resources_python_upper_constraints_url }} {%- endif -%} virtualenv: "{{ wait_for_resources_venv }}" + register: result + until: result is success + retries: 3 - name: Call wait_for_resources module wait_for_resources: