Skip to content

Commit

Permalink
rework s3_bucket and ec2_instance tests to make sure they have the ri…
Browse files Browse the repository at this point in the history
…ght botocore available for tests needing recent botocore
  • Loading branch information
tremble committed Sep 10, 2021
1 parent bbc09f3 commit 123b221
Show file tree
Hide file tree
Showing 6 changed files with 117 additions and 128 deletions.
6 changes: 4 additions & 2 deletions tests/integration/targets/ec2_instance/meta/main.yml
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
dependencies:
- prepare_tests
- setup_ec2_facts
- role: prepare_tests
- role: setup_ec2_facts
collections:
- amazon.aws
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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:
Expand Down
5 changes: 2 additions & 3 deletions tests/integration/targets/s3_bucket/meta/main.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
dependencies:
- prepare_tests
- setup_ec2
- setup_remote_tmp_dir
- role: prepare_tests
- role: setup_botocore_pip
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
dependencies:
- prepare_tests
- setup_ec2
- setup_remote_tmp_dir
- role: prepare_tests
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -136,7 +123,3 @@
name: '{{ local_bucket_name }}'
state: absent
ignore_errors: yes

- file:
path: "{{ virtualenv }}"
state: absent

0 comments on commit 123b221

Please sign in to comment.