Molecule tests for resource-data role
Initial molecule tests. Tests now ssh transfer but
test files fully supports also testing nfs transfer.
Creating nfs transfer as separate scenario later when
find out better ways to share common code.
Issue-ID: OOM-1754
Change-Id: Ia728ecfed4378c01f7e305d5a4446b0172fe42d9
Signed-off-by: Samuli Silvius <s.silvius@partner.samsung.com>
diff --git a/ansible/test/roles/prepare-resource-data/defaults/main.yml b/ansible/test/roles/prepare-resource-data/defaults/main.yml
new file mode 100644
index 0000000..6cc5701
--- /dev/null
+++ b/ansible/test/roles/prepare-resource-data/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+resources_on_nfs: false
\ No newline at end of file
diff --git a/ansible/test/roles/prepare-resource-data/tasks/main.yml b/ansible/test/roles/prepare-resource-data/tasks/main.yml
new file mode 100644
index 0000000..5a02088
--- /dev/null
+++ b/ansible/test/roles/prepare-resource-data/tasks/main.yml
@@ -0,0 +1,8 @@
+---
+- include_tasks: prepare-resource-server.yml
+ vars:
+ subdir: somedir
+ when: inventory_hostname in groups.resources
+
+- include_tasks: prepare-infra-server.yml
+ when: inventory_hostname in groups.infrastructure
diff --git a/ansible/test/roles/prepare-resource-data/tasks/prepare-infra-server.yml b/ansible/test/roles/prepare-resource-data/tasks/prepare-infra-server.yml
new file mode 100644
index 0000000..b55842a
--- /dev/null
+++ b/ansible/test/roles/prepare-resource-data/tasks/prepare-infra-server.yml
@@ -0,0 +1,16 @@
+---
+- name: Make sure the target dirs (where data is put i.e. what the whole resource-data role is testing) are empty at first
+ file:
+ path: "{{ item }}"
+ state: absent
+ loop:
+ - aux_data_path
+ - app_data_path
+
+- name: Install nfs-utils
+ package:
+ name: nfs-utils
+ state: present
+ when:
+ - resources_on_nfs is defined
+ - resources_on_nfs
diff --git a/ansible/test/roles/prepare-resource-data/tasks/prepare-resource-server.yml b/ansible/test/roles/prepare-resource-data/tasks/prepare-resource-server.yml
new file mode 100644
index 0000000..4057ba1
--- /dev/null
+++ b/ansible/test/roles/prepare-resource-data/tasks/prepare-resource-server.yml
@@ -0,0 +1,72 @@
+---
+- name: Install file exacutable if not there for archive compression checking
+ package:
+ name: file
+ state: present
+
+- name: "Create resource dir {{ resources_dir }}"
+ file:
+ path: "{{ resources_dir }}/{{ subdir }}"
+ state: directory
+
+- name: Create test files for the dummy packages
+ file:
+ path: "{{ item }}"
+ state: touch
+ loop:
+ - "{{ resources_dir }}/resource1.txt"
+ - "{{ resources_dir }}/resource2.txt"
+ - "{{ resources_dir }}/resource3.txt"
+ - "{{ resources_dir }}/{{ subdir }}/resource4.txt"
+ - "{{ resources_dir }}/auxdata"
+
+- name: Create resources tar archive for testing
+ archive:
+ path:
+ - "{{ resources_dir }}/resource*"
+ - "{{ resources_dir }}/{{ subdir }}/resource*"
+ dest: "{{ resources_dir }}/{{ resources_filename }}"
+ when:
+ - resources_filename is defined
+ - resources_filename is not none
+
+- name: Create aux tar archive for testing
+ archive:
+ path: "{{ resources_dir }}/aux*"
+ dest: "{{ resources_dir }}/{{ aux_resources_filename }}"
+ when:
+ - aux_resources_filename is defined
+ - aux_resources_filename is not none
+
+- block:
+ - name: Install nfs-utils
+ package:
+ name: nfs-utils
+ state: present
+
+ - name: Start services
+ systemd:
+ name: "{{ item }}"
+ state: started
+ loop:
+ - rpcbind
+ - nfs
+
+ - name: Create data dir to host machine for nfs mount. Must match with volume mount in molecule.yml
+ file:
+ path: ~{{ resources_dir }}
+ state: directory
+ delegate_to: localhost
+
+ - name: Add hosts to exports
+ template:
+ src: exports.j2
+ dest: /etc/exports
+ vars:
+ nfs_mount_path: "{{ resources_dir }}"
+
+ - name: Export nfs
+ command: exportfs -ar
+ when:
+ - resources_on_nfs is defined
+ - resources_on_nfs
diff --git a/ansible/test/roles/prepare-resource-data/templates/exports.j2 b/ansible/test/roles/prepare-resource-data/templates/exports.j2
new file mode 100644
index 0000000..958dc00
--- /dev/null
+++ b/ansible/test/roles/prepare-resource-data/templates/exports.j2
@@ -0,0 +1,3 @@
+{% for host in groups.infrastructure -%}
+ {{ nfs_mount_path }} {{ hostvars[host].inventory_hostname }}(ro,sync,no_root_squash,no_subtree_check)
+{% endfor %}