From 1f1402ea68afcfcfebf307bc99119c880ddc7da6 Mon Sep 17 00:00:00 2001 From: Artem Zinenko Date: Sat, 27 Jan 2018 17:54:34 +0500 Subject: [PATCH] Integration tests for influxdb_user module (#35315) * Added integration tests for influxdb_user * Tests for idempotency checking and check mode --- .../integration/targets/influxdb_user/aliases | 5 ++ .../targets/influxdb_user/meta/main.yml | 2 + .../targets/influxdb_user/tasks/main.yml | 4 + .../targets/influxdb_user/tasks/tests.yml | 83 +++++++++++++++++++ .../targets/setup_influxdb/tasks/main.yml | 4 + .../targets/setup_influxdb/tasks/setup.yml | 26 ++++++ 6 files changed, 124 insertions(+) create mode 100644 test/integration/targets/influxdb_user/aliases create mode 100644 test/integration/targets/influxdb_user/meta/main.yml create mode 100644 test/integration/targets/influxdb_user/tasks/main.yml create mode 100644 test/integration/targets/influxdb_user/tasks/tests.yml create mode 100644 test/integration/targets/setup_influxdb/tasks/main.yml create mode 100644 test/integration/targets/setup_influxdb/tasks/setup.yml diff --git a/test/integration/targets/influxdb_user/aliases b/test/integration/targets/influxdb_user/aliases new file mode 100644 index 0000000000..c9a649c10c --- /dev/null +++ b/test/integration/targets/influxdb_user/aliases @@ -0,0 +1,5 @@ +destructive +posix/ci/group1 +skip/osx +skip/freebsd +skip/rhel diff --git a/test/integration/targets/influxdb_user/meta/main.yml b/test/integration/targets/influxdb_user/meta/main.yml new file mode 100644 index 0000000000..941117026f --- /dev/null +++ b/test/integration/targets/influxdb_user/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - setup_influxdb diff --git a/test/integration/targets/influxdb_user/tasks/main.yml b/test/integration/targets/influxdb_user/tasks/main.yml new file mode 100644 index 0000000000..2a978c7399 --- /dev/null +++ b/test/integration/targets/influxdb_user/tasks/main.yml @@ -0,0 +1,4 @@ +--- + +- include: tests.yml + when: ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'trusty' diff --git a/test/integration/targets/influxdb_user/tasks/tests.yml b/test/integration/targets/influxdb_user/tasks/tests.yml new file mode 100644 index 0000000000..e2086d2c2b --- /dev/null +++ b/test/integration/targets/influxdb_user/tasks/tests.yml @@ -0,0 +1,83 @@ +--- + +- name: Install influxdb python module + pip: name=influxdb + +- name: Test add admin user in check mode + block: + - name: Add admin user + influxdb_user: user_name=admin user_password=admin admin=yes + check_mode: true + register: add_admin_user + + - name: Check that admin user adding succeeds with a change + assert: + that: + - add_admin_user.changed == true + +- name: Test add admin user + block: + - name: Add admin user + influxdb_user: user_name=admin user_password=admin admin=yes + register: add_admin_user + + - name: Check that admin user adding succeeds with a change + assert: + that: + - add_admin_user.changed == true + +- name: Test add admin user idempotence + block: + - name: Add admin user + influxdb_user: user_name=admin user_password=admin admin=yes + register: add_admin_user + + - name: Check that admin user adding succeeds without a change + assert: + that: + - add_admin_user.changed == false + +- name: Enable authentication and restart service + block: + - name: Enable authentication + lineinfile: + path: /etc/influxdb/influxdb.conf + regexp: 'auth-enabled =' + line: ' auth-enabled = true' + + - name: Restart InfluxDB service + service: name=influxdb state=restarted + +- name: Test add user in check mode when authentication enabled + block: + - name: Add user + influxdb_user: user_name=user user_password=user login_username=admin login_password=admin + check_mode: true + register: add_user_with_auth_enabled + + - name: Check that adding user with enabled authentication succeeds with a change + assert: + that: + - add_user_with_auth_enabled.changed == true + +- name: Test add user when authentication enabled + block: + - name: Add user + influxdb_user: user_name=user user_password=user login_username=admin login_password=admin + register: add_user_with_auth_enabled + + - name: Check that adding user with enabled authentication succeeds with a change + assert: + that: + - add_user_with_auth_enabled.changed == true + +- name: Test add user when authentication enabled idempotence + block: + - name: Add the same user + influxdb_user: user_name=user user_password=user login_username=admin login_password=admin + register: same_user + + - name: Check that adding same user succeeds without a change + assert: + that: + - same_user.changed == false diff --git a/test/integration/targets/setup_influxdb/tasks/main.yml b/test/integration/targets/setup_influxdb/tasks/main.yml new file mode 100644 index 0000000000..55fdd27298 --- /dev/null +++ b/test/integration/targets/setup_influxdb/tasks/main.yml @@ -0,0 +1,4 @@ +--- + +- include: setup.yml + when: ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'trusty' diff --git a/test/integration/targets/setup_influxdb/tasks/setup.yml b/test/integration/targets/setup_influxdb/tasks/setup.yml new file mode 100644 index 0000000000..0069be1562 --- /dev/null +++ b/test/integration/targets/setup_influxdb/tasks/setup.yml @@ -0,0 +1,26 @@ +--- + +- name: Install https transport for apt and ca-certificates + apt: name={{ item }} state=latest force=yes + with_items: + - apt-transport-https + - ca-certificates + +- name: Install apt_key dependencies + pip: name={{ item }} + with_items: + - pyOpenSSL + - ndg-httpsclient + - pyasn1 + +- name: Add InfluxDB public GPG key + apt_key: url=https://repos.influxdata.com/influxdb.key state=present + +- name: Add InfluxDB repository + apt_repository: repo='deb https://repos.influxdata.com/ubuntu trusty stable' filename='influxdb' state=present update_cache=yes + +- name: Install InfluxDB + apt: name=influxdb state=latest + +- name: Start InfluxDB service + service: name=influxdb state=started