diff --git a/tests/integration/targets/ec2_instance/meta/main.yml b/tests/integration/targets/ec2_instance/meta/main.yml index f2ebcc674aa..3304bee5880 100644 --- a/tests/integration/targets/ec2_instance/meta/main.yml +++ b/tests/integration/targets/ec2_instance/meta/main.yml @@ -1,3 +1,5 @@ +# this just makes sure they're in the right place dependencies: -- prepare_tests -- setup_ec2_facts +- role: setup_botocore_pip +- role: prepare_tests +- role: setup_ec2_facts diff --git a/tests/integration/targets/ec2_instance/roles/ec2_instance/meta/main.yml b/tests/integration/targets/ec2_instance/roles/ec2_instance/meta/main.yml index d7bdf75c66b..471fb190f82 100644 --- a/tests/integration/targets/ec2_instance/roles/ec2_instance/meta/main.yml +++ b/tests/integration/targets/ec2_instance/roles/ec2_instance/meta/main.yml @@ -1,5 +1,5 @@ dependencies: -- prepare_tests -- setup_ec2_facts +- role: prepare_tests +- role: setup_ec2_facts collections: - amazon.aws diff --git a/tests/integration/targets/ec2_instance/roles/ec2_instance/tasks/block_devices.yml b/tests/integration/targets/ec2_instance/roles/ec2_instance/tasks/block_devices.yml index a2a46e76d27..96aa2b22567 100644 --- a/tests/integration/targets/ec2_instance/roles/ec2_instance/tasks/block_devices.yml +++ b/tests/integration/targets/ec2_instance/roles/ec2_instance/tasks/block_devices.yml @@ -1,4 +1,8 @@ - block: + - include_role: setup_botocore_pip + vars: + botocore_version: '1.19.27' + - name: "New instance with an extra block device" ec2_instance: state: running @@ -93,6 +97,9 @@ instance_type: "{{ ec2_instance_type }}" wait: true register: block_device_instances_gp3 + # Managing Troughput requires botocore >= 1.19.27 + vars: + ansible_python_interpreter: "{{ botocore_virtualenv_interpreter }}" - assert: that: diff --git a/tests/integration/targets/s3_bucket/meta/main.yml b/tests/integration/targets/s3_bucket/meta/main.yml index 38b31be0728..77c25b3a594 100644 --- a/tests/integration/targets/s3_bucket/meta/main.yml +++ b/tests/integration/targets/s3_bucket/meta/main.yml @@ -1,4 +1,3 @@ dependencies: - - prepare_tests - - setup_ec2 - - setup_remote_tmp_dir + - role: prepare_tests + - role: setup_botocore_pip diff --git a/tests/integration/targets/s3_bucket/roles/s3_bucket/meta/main.yml b/tests/integration/targets/s3_bucket/roles/s3_bucket/meta/main.yml index 38b31be0728..966c4e374dc 100644 --- a/tests/integration/targets/s3_bucket/roles/s3_bucket/meta/main.yml +++ b/tests/integration/targets/s3_bucket/roles/s3_bucket/meta/main.yml @@ -1,4 +1,2 @@ dependencies: - - prepare_tests - - setup_ec2 - - setup_remote_tmp_dir + - role: prepare_tests diff --git a/tests/integration/targets/s3_bucket/roles/s3_bucket/tasks/ownership_controls.yml b/tests/integration/targets/s3_bucket/roles/s3_bucket/tasks/ownership_controls.yml index 4d68138804c..ea24736cea4 100644 --- a/tests/integration/targets/s3_bucket/roles/s3_bucket/tasks/ownership_controls.yml +++ b/tests/integration/targets/s3_bucket/roles/s3_bucket/tasks/ownership_controls.yml @@ -5,122 +5,109 @@ aws_secret_key: "{{ aws_secret_key }}" security_token: "{{ security_token | default(omit) }}" region: "{{ aws_region }}" + # Manipulating ownership controls requires botocore 1.18.11 + vars: + ansible_python_interpreter: "{{ botocore_virtualenv_interpreter }}" + block: - - pip: - name: virtualenv - - set_fact: - virtualenv: "{{ remote_tmp_dir }}/virtualenv" - virtualenv_command: "{{ ansible_python_interpreter }} -m virtualenv" - - set_fact: - virtualenv_interpreter: "{{ virtualenv }}/bin/python" - - pip: - name: - - 'boto3>=1.13.0' - - 'botocore==1.18.11' - - 'coverage<5' - virtualenv: '{{ virtualenv }}' - virtualenv_command: '{{ virtualenv_command }}' - virtualenv_site_packages: no - - # ============================================================ - - name: Wrap test in virtualenv + - include_role: setup_botocore_pip vars: - ansible_python_interpreter: "{{ virtualenv }}/bin/python" - block: - - set_fact: - local_bucket_name: "{{ bucket_name | hash('md5')}}ownership" - - - name: 'Create a simple bucket bad value for ownership controls' - s3_bucket: - name: '{{ local_bucket_name }}' - state: present - object_ownership: default - ignore_errors: true - register: output - - - assert: - that: - - output.failed - - - name: 'Create bucket with object_ownership set to object_writer' - s3_bucket: - name: '{{ local_bucket_name }}' - state: present - ignore_errors: true - register: output - - - assert: - that: - - output.changed - - not output.object_ownership|bool - - - name: delete s3 bucket - s3_bucket: - name: '{{ local_bucket_name }}' - state: absent - - - name: 'create s3 bucket with object ownership controls' - s3_bucket: - name: '{{ local_bucket_name }}' - state: present - object_ownership: ObjectWriter - register: output - - - assert: - that: - - output.changed - - output.object_ownership - - output.object_ownership == 'ObjectWriter' - - - name: 'update s3 bucket ownership controls' - s3_bucket: - name: '{{ local_bucket_name }}' - state: present - object_ownership: BucketOwnerPreferred - register: output - - - assert: - that: - - output.changed - - output.object_ownership - - output.object_ownership == 'BucketOwnerPreferred' - - - name: 'test idempotency update s3 bucket ownership controls' - s3_bucket: - name: '{{ local_bucket_name }}' - state: present - object_ownership: BucketOwnerPreferred - register: output - - - assert: - that: - - output.changed is false - - output.object_ownership - - output.object_ownership == 'BucketOwnerPreferred' - - - name: 'delete s3 bucket ownership controls' - s3_bucket: - name: '{{ local_bucket_name }}' - state: present - delete_object_ownership: true - register: output - - - assert: - that: - - output.changed - - not output.object_ownership|bool - - - name: 'delete s3 bucket ownership controls once again (idempotency)' - s3_bucket: - name: '{{ local_bucket_name }}' - state: present - delete_object_ownership: true - register: idempotency - - - assert: - that: - - not idempotency.changed - - not idempotency.object_ownership|bool + botocore_version: 1.18.11 + + - set_fact: + local_bucket_name: "{{ bucket_name | hash('md5')}}ownership" + + - name: 'Create a simple bucket bad value for ownership controls' + s3_bucket: + name: '{{ local_bucket_name }}' + state: present + object_ownership: default + ignore_errors: true + register: output + + - assert: + that: + - output.failed + + - name: 'Create bucket with object_ownership set to object_writer' + s3_bucket: + name: '{{ local_bucket_name }}' + state: present + ignore_errors: true + register: output + + - assert: + that: + - output.changed + - not output.object_ownership|bool + + - name: delete s3 bucket + s3_bucket: + name: '{{ local_bucket_name }}' + state: absent + + - name: 'create s3 bucket with object ownership controls' + s3_bucket: + name: '{{ local_bucket_name }}' + state: present + object_ownership: ObjectWriter + register: output + + - assert: + that: + - output.changed + - output.object_ownership + - output.object_ownership == 'ObjectWriter' + + - name: 'update s3 bucket ownership controls' + s3_bucket: + name: '{{ local_bucket_name }}' + state: present + object_ownership: BucketOwnerPreferred + register: output + + - assert: + that: + - output.changed + - output.object_ownership + - output.object_ownership == 'BucketOwnerPreferred' + + - name: 'test idempotency update s3 bucket ownership controls' + s3_bucket: + name: '{{ local_bucket_name }}' + state: present + object_ownership: BucketOwnerPreferred + register: output + + - assert: + that: + - output.changed is false + - output.object_ownership + - output.object_ownership == 'BucketOwnerPreferred' + + - name: 'delete s3 bucket ownership controls' + s3_bucket: + name: '{{ local_bucket_name }}' + state: present + delete_object_ownership: true + register: output + + - assert: + that: + - output.changed + - not output.object_ownership|bool + + - name: 'delete s3 bucket ownership controls once again (idempotency)' + s3_bucket: + name: '{{ local_bucket_name }}' + state: present + delete_object_ownership: true + register: idempotency + + - assert: + that: + - not idempotency.changed + - not idempotency.object_ownership|bool # ============================================================ always: @@ -136,7 +123,3 @@ name: '{{ local_bucket_name }}' state: absent ignore_errors: yes - - - file: - path: "{{ virtualenv }}" - state: absent