Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integration tests for influxdb_user module #35315

Merged
merged 2 commits into from
Jan 27, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 5 additions & 0 deletions test/integration/targets/influxdb_user/aliases
@@ -0,0 +1,5 @@
destructive
posix/ci/group1
skip/osx
skip/freebsd
skip/rhel
2 changes: 2 additions & 0 deletions test/integration/targets/influxdb_user/meta/main.yml
@@ -0,0 +1,2 @@
dependencies:
- setup_influxdb
4 changes: 4 additions & 0 deletions test/integration/targets/influxdb_user/tasks/main.yml
@@ -0,0 +1,4 @@
---

- include: tests.yml
when: ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'trusty'
83 changes: 83 additions & 0 deletions 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
4 changes: 4 additions & 0 deletions test/integration/targets/setup_influxdb/tasks/main.yml
@@ -0,0 +1,4 @@
---

- include: setup.yml
when: ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'trusty'
26 changes: 26 additions & 0 deletions 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