- name: start py1 service (without auth) supervisorctl: name: 'pys:py1' state: started config: '{{ remote_dir }}/supervisord.conf' register: result when: credentials.username == '' - name: start py1 service (with auth) supervisorctl: name: 'pys:py1' state: started server_url: http://127.0.0.1:9001 username: '{{ credentials.username }}' password: '{{ credentials.password }}' register: result_with_auth when: credentials.username != '' - command: "supervisorctl -c {{ remote_dir }}/supervisord.conf {% if credentials.username %}-u {{ credentials.username }} -p {{ credentials.password }}{% endif %} status" - name: check that service is started assert: that: - (result is success and result_with_auth is skip) or (result is skip and result_with_auth is changed) - (result is changed and result_with_auth is skip) or (result is skip and result_with_auth is changed) - name: check that service is running (part1) # py1.log content is checked below script: "files/sendProcessStdin.py 'pys:py1' 2 \ '{{ credentials.username }}' '{{ credentials.password }}'" - name: try again to start py1 service (without auth) supervisorctl: name: pys:py1 state: started config: '{{ remote_dir }}/supervisord.conf' register: result when: credentials.username == '' - name: try again to start py1 service (with auth) supervisorctl: name: pys:py1 state: started server_url: http://127.0.0.1:9001 username: '{{ credentials.username }}' password: '{{ credentials.password }}' register: result_with_auth when: credentials.username != '' - name: check that service is already running assert: that: - (result is success and result_with_auth is skip) or (result is skip and result_with_auth is success) - (result is not changed and result_with_auth is skip) or (result is skip and result_with_auth is not changed) - import_tasks: stop_supervisord.yml # supervisord has been stopped, check logfile - name: check that service has done what it was expected (part 2) shell: 'test "$(tail -2 {{ remote_dir }}/py1.log | head -1)" = ">>> 2"' # restart supervisord and py1 service for next tasks - import_tasks: start_supervisord.yml - name: start py1 service (without auth) supervisorctl: name: 'pys:py1' state: started config: '{{ remote_dir }}/supervisord.conf' register: result when: credentials.username == '' - name: start py1 service (with auth) supervisorctl: name: 'pys:py1' state: started server_url: http://127.0.0.1:9001 username: '{{ credentials.username }}' password: '{{ credentials.password }}' register: result_with_auth when: credentials.username != '' - name: check that service is started assert: that: - (result is success and result_with_auth is skip) or (result is skip and result_with_auth is changed) - (result is changed and result_with_auth is skip) or (result is skip and result_with_auth is changed) ############################################################# - name: Check an error occurs when wrong credentials are used supervisorctl: name: pys:py1 state: started server_url: http://127.0.0.1:9001 username: '{{ credentials.username }}wrong_creds' password: '{{ credentials.password }}same_here' register: result failed_when: result is not skip and (result is success or result is not failed) when: credentials.username != '' - name: Check an error occurs when wrong URL is used supervisorctl: name: pys:py1 state: started server_url: http://127.0.0.1:9002 register: result failed_when: result is success or result is not failed - name: Check an error occurs when wrong config path is used supervisorctl: name: 'pys:py1' state: started config: '{{ remote_dir }}/supervisord_not_here.conf' register: result failed_when: result is success or result is not failed - name: Check an error occurs wrong name is used (without auth) supervisorctl: name: 'invalid' state: started config: '{{ remote_dir }}/supervisord.conf' register: result failed_when: result is skip or (result is success or result is not failed) when: credentials.username == '' - name: Check an error occurs wrong name is used (with auth) supervisorctl: name: 'invalid' state: started config: '{{ remote_dir }}/supervisord.conf' username: '{{ credentials.username }}wrong_creds' password: '{{ credentials.password }}same_here' register: result failed_when: result is skip or (result is success or result is not failed) when: credentials.username != ''