diff --git a/test/integration/targets/zypper/tasks/zypper.yml b/test/integration/targets/zypper/tasks/zypper.yml index e7b97611c08..1df430f54fd 100644 --- a/test/integration/targets/zypper/tasks/zypper.yml +++ b/test/integration/targets/zypper/tasks/zypper.yml @@ -1,6 +1,18 @@ +- name: get hello package version + shell: zypper --xml se -svx hello | grep 'name="hello"' | sed 's/.*edition="\([^ ]*\)".*/\1/' + register: hello_version + +- name: set URL of test package + set_fact: + hello_package_url: http://download.opensuse.org/distribution/leap/{{ ansible_distribution_version }}/repo/oss/suse/x86_64/hello-{{hello_version.stdout}}.x86_64.rpm + +- debug: var=hello_package_url + # UNINSTALL - name: uninstall hello - zypper: name=hello state=removed + zypper: + name: hello + state: removed register: zypper_result - name: check hello with rpm @@ -19,7 +31,9 @@ # UNINSTALL AGAIN - name: uninstall hello again - zypper: name=hello state=removed + zypper: + name: hello + state: removed register: zypper_result - name: verify no change on re-uninstall @@ -29,7 +43,9 @@ # INSTALL - name: install hello - zypper: name=hello state=present + zypper: + name: hello + state: present register: zypper_result - name: check hello with rpm @@ -49,7 +65,9 @@ # INSTALL AGAIN - name: install hello again - zypper: name=hello state=present + zypper: + name: hello + state: present register: zypper_result - name: verify no change on second install @@ -117,7 +135,9 @@ # INSTALL nonexistent package - name: install hello from url - zypper: name=doesnotexist state=present + zypper: + name: doesnotexist + state: present register: zypper_result ignore_errors: yes @@ -140,8 +160,8 @@ - name: install broken rpm zypper: - name="{{output_dir | expanduser}}/zypper1/broken.rpm" - state=present + name: "{{output_dir | expanduser}}/zypper1/broken.rpm" + state: present register: zypper_result ignore_errors: yes @@ -230,25 +250,31 @@ register: zypper_res1 - name: install and remove again, leave out plus - zypper: name={{item}} state=present - with_items: - - metamail - - -hello + zypper: + name: + - metamail + - -hello + state: present register: zypper_res1a - name: in and rm swapped - zypper: name={{item}} state=present - with_items: - - -metamail - - hello + zypper: + name: + - -metamail + - hello + state: present register: zypper_res1b - name: install metamail - zypper: name=metamail state=absent + zypper: + name: metamail + state: absent register: zypper_res2 - name: remove hello - zypper: name=hello state=present + zypper: + name: hello + state: present register: zypper_res3 - name: verify simultaneous install/remove worked @@ -263,10 +289,11 @@ - name: install and remove with state=absent - zypper: name={{item}} state=absent - with_items: - - metamail - - +hello + zypper: + name: + - metamail + - +hello + state: absent register: zypper_res ignore_errors: yes @@ -274,10 +301,13 @@ assert: that: - zypper_res is failed - - zypper_res.results[0].msg == "Can not combine '+' prefix with state=remove/absent." + - zypper_res.msg == "Can not combine '+' prefix with state=remove/absent." - name: try rm patch - zypper: name=openSUSE-2016-128 type=patch state=absent + zypper: + name: openSUSE-2016-128 + type: patch + state: absent ignore_errors: yes register: zypper_patch - assert: @@ -286,7 +316,9 @@ - zypper_patch.msg.startswith('Can not remove patches.') - name: try rm URL - zypper: name=http://download.opensuse.org/repositories/openSUSE:/Leap:/{{ ansible_distribution_version }}/standard/x86_64/hello-2.9-6.2.x86_64.rpm state=absent + zypper: + name: "{{ hello_package_url }}" + state: absent ignore_errors: yes register: zypper_rm - assert: @@ -294,6 +326,54 @@ - zypper_rm is failed - zypper_rm.msg.startswith('Can not remove via URL.') +- name: remove pattern update_test + zypper: + name: update_test + type: pattern + state: absent + +- name: install pattern update_test + zypper: + name: update_test + type: pattern + state: present + register: zypper_install_pattern1 + +- name: install pattern update_test again + zypper: + name: update_test + type: pattern + state: present + register: zypper_install_pattern2 + +- assert: + that: + - zypper_install_pattern1 is changed + - zypper_install_pattern2 is not changed + +- name: remove hello + zypper: + name: hello + state: absent + +- name: install via URL + zypper: + state: present + name: "{{ hello_package_url }}" + register: zypperin1 + +- name: test install + zypper: + name: hello + state: present + register: zypperin2 + +- assert: + that: + - zypperin1 is succeeded + - zypperin1 is changed + - zypperin2 is not changed + # check for https://github.com/ansible/ansible/issues/20139 - name: run updatecache zypper: