838c1ba6c7
* [cloud] Bugfix for aws_s3 empty directory creation * Update integration tests
254 lines
7.5 KiB
YAML
254 lines
7.5 KiB
YAML
---
|
|
# tasks file for test_s3
|
|
# ============================================================
|
|
- name: test create bucket
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: create
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
security_token: "{{security_token}}"
|
|
register: result
|
|
- name: assert changed is True
|
|
assert:
|
|
that:
|
|
- result.changed == True
|
|
# ============================================================
|
|
- name: trying to create a bucket name that already exists
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: create
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
security_token: "{{security_token}}"
|
|
register: result
|
|
- name: assert changed is False since the bucket already exists
|
|
assert:
|
|
that:
|
|
- result.changed == False
|
|
# ============================================================
|
|
- name: create temporary file object to put in a bucket
|
|
tempfile:
|
|
register: tmp1
|
|
- name: make random contents
|
|
set_fact:
|
|
content: "{{ lookup('password', '/dev/null chars=ascii_letters,digits,hexdigits,punctuation') }}"
|
|
|
|
- name: give temporary file data
|
|
copy:
|
|
content: "{{ content }}"
|
|
dest: "{{ tmp1.path }}"
|
|
- name: get the stat of the file
|
|
stat:
|
|
path: "{{ tmp1.path }}"
|
|
get_checksum: yes
|
|
register: file1stat
|
|
# ============================================================
|
|
- name: test putting an object in the bucket
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: put
|
|
src: "{{ tmp1.path }}"
|
|
object: delete.txt
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
security_token: "{{security_token}}"
|
|
retries: 3
|
|
delay: 3
|
|
register: result
|
|
- name: assert object exists
|
|
assert:
|
|
that:
|
|
- result.changed == True
|
|
- result.msg == "PUT operation complete"
|
|
# ============================================================
|
|
- name: create a second temp file to download the object from the bucket
|
|
tempfile:
|
|
register: tmp2
|
|
- name: test get object
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: get
|
|
dest: "{{ tmp2.path }}"
|
|
object: delete.txt
|
|
security_token: "{{security_token}}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
retries: 3
|
|
delay: 3
|
|
register: result
|
|
until: "result.msg == 'GET operation complete'"
|
|
- name: get the stat of the file so we can compare the checksums
|
|
stat:
|
|
path: "{{ tmp2.path }}"
|
|
get_checksum: yes
|
|
register: file2stat
|
|
- name: assert checksums are the same
|
|
assert:
|
|
that:
|
|
- file1stat.stat.checksum == file2stat.stat.checksum
|
|
# ============================================================
|
|
- name: test geturl of the object
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: geturl
|
|
object: delete.txt
|
|
security_token: "{{security_token}}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
retries: 3
|
|
delay: 3
|
|
register: result
|
|
until: result.changed
|
|
- name: assert we have the object's url
|
|
assert:
|
|
that:
|
|
- "'Download url:' in result.msg"
|
|
- result.changed == True
|
|
# ============================================================
|
|
- name: test getstr of the object
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: getstr
|
|
object: delete.txt
|
|
security_token: "{{security_token}}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
retries: 3
|
|
delay: 3
|
|
register: result
|
|
- name: assert that we have the object's contents
|
|
assert:
|
|
that:
|
|
- result.msg == "GET operation complete"
|
|
- result.contents == content
|
|
# ============================================================
|
|
- name: test list to get all objects in the bucket
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: list
|
|
security_token: "{{security_token}}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
retries: 3
|
|
delay: 3
|
|
register: result
|
|
- name: assert that the keys are correct
|
|
assert:
|
|
that:
|
|
- "'delete.txt' in result.s3_keys"
|
|
- result.msg == "LIST operation complete"
|
|
# ============================================================
|
|
- name: test delobj to just delete an object in the bucket
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: delobj
|
|
object: delete.txt
|
|
security_token: "{{security_token}}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
retries: 3
|
|
delay: 3
|
|
register: result
|
|
- name: assert that delete.txt is no longer an object in the bucket deleteme
|
|
assert:
|
|
that:
|
|
- "'Object deleted from bucket' in result.msg"
|
|
- result.changed == True
|
|
- name: assert that delete.txt is no longer an object in the bucket deleteme
|
|
assert:
|
|
that:
|
|
- "'Object deleted from bucket' in result.msg"
|
|
- result.changed == True
|
|
# ============================================================
|
|
- name: test creation of empty path
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: create
|
|
object: foo/bar/baz/
|
|
security_token: "{{ security_token }}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
retries: 3
|
|
delay: 3
|
|
register: result
|
|
- name: assert that empty path is created
|
|
assert:
|
|
that:
|
|
- "'Virtual directory foo/bar/baz/ created' in result.msg"
|
|
- result.changed == True
|
|
- name: test deletion of empty path
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: delobj
|
|
object: foo/bar/baz/
|
|
security_token: "{{ security_token }}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
retries: 3
|
|
delay: 3
|
|
# ============================================================
|
|
- name: test delete bucket
|
|
aws_s3:
|
|
bucket: "{{ bucket_name }}"
|
|
mode: delete
|
|
security_token: "{{security_token}}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
register: result
|
|
retries: 3
|
|
delay: 3
|
|
until: result.changed
|
|
- name: assert that changed is True
|
|
assert:
|
|
that:
|
|
- result.changed == True
|
|
# ============================================================
|
|
- name: delete temporary file 1
|
|
file:
|
|
state: absent
|
|
path: "{{ tmp1.path }}"
|
|
- name: delete temporary file 2
|
|
file:
|
|
state: absent
|
|
path: "{{ tmp2.path }}"
|
|
# ============================================================
|
|
- name: test create a bucket with a dot in the name
|
|
aws_s3:
|
|
bucket: "{{ bucket_name + '.bucket' }}"
|
|
mode: create
|
|
security_token: "{{security_token}}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
register: result
|
|
- name: assert that changed is True
|
|
assert:
|
|
that:
|
|
- result.changed == True
|
|
# ============================================================
|
|
- name: test delete a bucket with a dot in the name
|
|
aws_s3:
|
|
bucket: "{{ bucket_name + '.bucket' }}"
|
|
mode: delete
|
|
security_token: "{{security_token}}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
register: result
|
|
- name: assert that changed is True
|
|
assert:
|
|
that:
|
|
- result.changed == True
|
|
# ============================================================
|
|
- name: test delete a nonexistent bucket
|
|
aws_s3:
|
|
bucket: "{{ bucket_name + '.bucket' }}"
|
|
mode: delete
|
|
security_token: "{{security_token}}"
|
|
aws_access_key: "{{ ec2_access_key }}"
|
|
aws_secret_key: "{{ ec2_secret_key }}"
|
|
register: result
|
|
- name: assert that changed is False
|
|
assert:
|
|
that:
|
|
- result.changed == False
|
|
# ============================================================
|