tests: rgw_multisite playbook test refactor

Currently we create an object from the primary sites but we try to read
that object still from the master which doesn't make sense, we should
try to read it from a secondary site.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit e2ea403d5e)
pull/6141/head
Guillaume Abrioux 2020-12-11 14:36:00 +01:00 committed by Dimitri Savineau
parent da7b708636
commit cb56bb9f21
1 changed files with 42 additions and 26 deletions

View File

@ -2,51 +2,67 @@
- hosts: rgws - hosts: rgws
gather_facts: True gather_facts: True
become: True become: True
vars:
s3cmd_cmd: "s3cmd --no-ssl --access_key=P9Eb6S8XNyo4dtZZUUMy --secret_key=qqHCUtfdNnpHq3PZRHW5un9l0bEBM812Uhow0XfB --host={{ rgw_multisite_endpoint_addr }}:8080 --host-bucket={{ rgw_multisite_endpoint_addr }}:8080"
tasks: tasks:
- name: import_role ceph-defaults
import_role:
name: ceph-defaults
- name: import_role ceph-facts
include_role:
name: ceph-facts
tasks_from: "{{ item }}.yml"
with_items:
- set_radosgw_address
- container_binary
- name: install s3cmd - name: install s3cmd
package: package:
name: s3cmd name: s3cmd
state: present state: present
register: result register: result
until: result is succeeded until: result is succeeded
when: not containerized_deployment | default(false) | bool when: not containerized_deployment | bool
- name: generate and upload a random 10Mb file - containerized deployment - name: generate and upload a random 10Mb file - containerized deployment
command: > shell: >
podman run --rm --name=rgw_multisite_test --entrypoint=/bin/bash {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} -c 'dd if=/dev/urandom of=/tmp/testinfra.img bs=1M count=10; {{ s3cmd_cmd }} mb s3://testinfra; {{ s3cmd_cmd }} put /tmp/testinfra.img s3://testinfra' {{ container_binary }} run --rm --name=rgw_multisite_test --entrypoint=bash {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} -c 'dd if=/dev/urandom of=/tmp/testinfra-{{ item.rgw_realm }}.img bs=1M count=10;
s3cmd --no-ssl --access_key={{ item.system_access_key }} --secret_key={{ item.system_secret_key }} --host={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} --host-bucket={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} mb s3://testinfra-{{ item.rgw_realm }};
s3cmd --no-ssl --access_key={{ item.system_access_key }} --secret_key={{ item.system_secret_key }} --host={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} --host-bucket={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} put /tmp/testinfra-{{ item.rgw_realm }}.img s3://testinfra-{{ item.rgw_realm }}'
with_items: "{{ rgw_instances_host }}"
when: when:
- rgw_zonemaster | bool - rgw_zonemaster | bool
- containerized_deployment | default(False) | bool - containerized_deployment | bool
- name: generate and upload a random a 10Mb file - non containerized - name: generate and upload a random a 10Mb file - non containerized
shell: > shell: |
dd if=/dev/urandom of=/tmp/testinfra.img bs=1M count=10; dd if=/dev/urandom of=/tmp/testinfra-{{ item.rgw_realm }}.img bs=1M count=10;
{{ s3cmd_cmd }} mb s3://testinfra; s3cmd --no-ssl --access_key={{ item.system_access_key }} --secret_key={{ item.system_secret_key }} --host={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} --host-bucket={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} mb s3://testinfra-{{ item.rgw_realm }};
{{ s3cmd_cmd }} put /tmp/testinfra.img s3://testinfra s3cmd --no-ssl --access_key={{ item.system_access_key }} --secret_key={{ item.system_secret_key }} --host={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} --host-bucket={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} put /tmp/testinfra-{{ item.rgw_realm }}.img s3://testinfra-{{ item.rgw_realm }};
with_items: "{{ rgw_instances_host }}"
when: when:
- rgw_zonemaster | default(False) | bool - rgw_zonemaster | bool
- not containerized_deployment | default(False) | bool - not containerized_deployment | bool
- name: get info from replicated file - containerized deployment - name: get info from replicated file - containerized deployment
command: > command: >
podman run --rm --name=rgw_multisite_test --entrypoint=/bin/bash {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} -c '{{ s3cmd_cmd }} info s3://testinfra/testinfra.img' {{ container_binary }} run --rm --name=rgw_multisite_test --entrypoint=s3cmd {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} --no-ssl --access_key={{ item.system_access_key }} --secret_key={{ item.system_secret_key }} --host={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} --host-bucket={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} info s3://testinfra-{{ item.rgw_realm }}/testinfra-{{ item.rgw_realm }}.img
register: s3cmd_info_status with_items: "{{ rgw_instances_host }}"
register: result
retries: 60
delay: 1
until: result is succeeded
when: when:
- not rgw_zonemaster | default(False) | bool - not rgw_zonemaster | bool
- containerized_deployment | default(False) | bool - containerized_deployment | bool
retries: 10
delay: 2
until: s3cmd_info_status.get('rc', 1) == 0
- name: get info from replicated file - non containerized - name: get info from replicated file - non containerized
command: > command: >
{{ s3cmd_cmd }} info s3://testinfra/testinfra.img s3cmd --no-ssl --access_key={{ item.system_access_key }} --secret_key={{ item.system_secret_key }} --host={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} --host-bucket={{ item.radosgw_address }}:{{ item.radosgw_frontend_port }} info s3://testinfra-{{ item.rgw_realm }}/testinfra-{{ item.rgw_realm }}.img
register: s3cmd_info_status with_items: "{{ rgw_instances_host }}"
register: result
retries: 60
delay: 1
until: result is succeeded
when: when:
- not rgw_zonemaster | default(False) | bool - not rgw_zonemaster | bool
- not containerized_deployment | default(False) | bool - not containerized_deployment | bool
retries: 10
delay: 2
until: s3cmd_info_status.get('rc', 1) == 0