diff --git a/test/integration/targets/influxdb_user/aliases b/test/integration/targets/influxdb_user/aliases new file mode 100644 index 00000000000..c9a649c10c2 --- /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 00000000000..941117026fe --- /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 00000000000..2a978c73991 --- /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 00000000000..e2086d2c2bc --- /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 00000000000..55fdd272981 --- /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 00000000000..0069be15620 --- /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