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

Role updates Java even when state=present (it shouldn't) #22

Closed
lprimak opened this issue Mar 27, 2016 · 9 comments
Closed

Role updates Java even when state=present (it shouldn't) #22

lprimak opened this issue Mar 27, 2016 · 9 comments
Assignees
Labels

Comments

@lprimak
Copy link

lprimak commented Mar 27, 2016

With state=present, the role shouldn't update Java with the latest version, yet it does.
It should update to latest when state=latest, but not state=present.

This is on Debian family, as on Red Hat, you need to specify specific Java version.

Thank you!

@steenzout steenzout added the bug label Mar 28, 2016
@steenzout
Copy link
Member

I believe this is related to #14 .

@steenzout
Copy link
Member

@lprimak you need to set the oracle_java_state variable to present.
the default is latest.

let me know if this helps.

@steenzout steenzout removed the bug label Mar 29, 2016
@lprimak
Copy link
Author

lprimak commented Mar 29, 2016

Yes, that's correct. oracle_java_state variable is set to present

Here is the complete meta/main.yml for my role,
all the other variables work correctly.

---
dependencies:
  - { role: ansiblebit.oracle-java, oracle_java_state: present,
      oracle_java_version: "{{java_version}}",
      oracle_java_version_update: "{{java_version_update}}",
      oracle_java_version_build: "{{java_version_build}}",
      oracle_java_set_as_default: yes }

@steenzout
Copy link
Member

this is the piece of code running:

- name: ensure Java is installed
  apt:
    name="oracle-java{{ oracle_java_version }}-installer"
    state={{ oracle_java_state }}
    cache_valid_time={{ oracle_java_cache_valid_time }}
    update_cache=yes
  register: oracle_java_task_apt_install
  sudo: yes

if you don't have a version of Java installed (or the exact same package name) it will just install the latest available version.
did you have the oracle-java-{{ oracle_java_version }}-installer installed already?
if so did it have the same name?

@lprimak
Copy link
Author

lprimak commented Mar 29, 2016

yes, it's already installed:

admin@build-ci-prod-058389b6:~$ sudo dpkg --get-selections | grep -v deinstall|grep java|grep installer
oracle-java8-installer              install

@steenzout
Copy link
Member

@lprimak I'll try and test this on a vagrant box later tonight by installing an older version of JDK and running the role on check mode to see what it will do.

@steenzout steenzout self-assigned this Mar 22, 2017
@lprimak
Copy link
Author

lprimak commented Jun 27, 2017

Any progress on this issue?
Thanks

@steenzout
Copy link
Member

steenzout commented Jun 28, 2017

I can't replicate the problem:

PYTHONUNBUFFERED=1 ANSIBLE_FORCE_COLOR=true ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --connection=ssh --timeout=30 --limit="trusty64.vagrant.dev" --inventory-file=/Users/steenzout/Projects/github/ansiblebit/oracle-java/tests/.vagrant/provisioners/ansible/inventory --extra-vars="{\"env\":\"vagrant\",\"vagrant_box\":\"trusty64.vagrant.dev\"}" -v --skip-tags=test test.yml
Using /Users/steenzout/Projects/github/ansiblebit/oracle-java/tests/ansible.cfg as config file

PLAY [setup python2] ***********************************************************

TASK [raw] *********************************************************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

PLAY [tests play] **************************************************************

TASK [Gathering Facts] *********************************************************
ok: [trusty64.vagrant.dev]

TASK [oracle-java : determine if Java is already installed] ********************
ok: [trusty64.vagrant.dev] => {"changed": false, "cmd": "which java", "delta": "0:00:00.001716", "end": "2017-06-28 00:05:32.081595", "failed": false, "failed_when_result": false, "rc": 0, "start": "2017-06-28 00:05:32.079879", "stderr": "", "stderr_lines": [], "stdout": "/usr/bin/java", "stdout_lines": ["/usr/bin/java"]}

TASK [oracle-java : set fact oracle_java_installed] ****************************
ok: [trusty64.vagrant.dev] => {"ansible_facts": {"oracle_java_installed": true}, "changed": false}

TASK [oracle-java : determine which Java version is installed] *****************
ok: [trusty64.vagrant.dev] => {"changed": false, "cmd": "java -version", "delta": "0:00:00.054540", "end": "2017-06-28 00:05:32.373393", "rc": 0, "start": "2017-06-28 00:05:32.318853", "stderr": "java version \"1.8.0_131\"\nJava(TM) SE Runtime Environment (build 1.8.0_131-b11)\nJava HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)", "stderr_lines": ["java version \"1.8.0_131\"", "Java(TM) SE Runtime Environment (build 1.8.0_131-b11)", "Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)"], "stdout": "", "stdout_lines": []}

TASK [oracle-java : set fact oracle_java_installed_version] ********************
ok: [trusty64.vagrant.dev] => {"ansible_facts": {"oracle_java_version_installed": "1.8.0_131"}, "changed": false}

TASK [oracle-java : debug] *****************************************************
ok: [trusty64.vagrant.dev] => (item=oracle_java_installed) => {
    "item": "oracle_java_installed", 
    "oracle_java_installed": true
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_task_installed) => {
    "item": "oracle_java_task_installed", 
    "oracle_java_task_installed": {
        "changed": false, 
        "cmd": "which java", 
        "delta": "0:00:00.001716", 
        "end": "2017-06-28 00:05:32.081595", 
        "failed": false, 
        "failed_when_result": false, 
        "rc": 0, 
        "start": "2017-06-28 00:05:32.079879", 
        "stderr": "", 
        "stderr_lines": [], 
        "stdout": "/usr/bin/java", 
        "stdout_lines": [
            "/usr/bin/java"
        ]
    }
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_task_version) => {
    "item": "oracle_java_task_version", 
    "oracle_java_task_version": {
        "changed": false, 
        "cmd": "java -version", 
        "delta": "0:00:00.054540", 
        "end": "2017-06-28 00:05:32.373393", 
        "rc": 0, 
        "start": "2017-06-28 00:05:32.318853", 
        "stderr": "java version \"1.8.0_131\"\nJava(TM) SE Runtime Environment (build 1.8.0_131-b11)\nJava HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)", 
        "stderr_lines": [
            "java version \"1.8.0_131\"", 
            "Java(TM) SE Runtime Environment (build 1.8.0_131-b11)", 
            "Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)"
        ], 
        "stdout": "", 
        "stdout_lines": []
    }
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_version_installed) => {
    "item": "oracle_java_version_installed", 
    "oracle_java_version_installed": "1.8.0_131"
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_version_string) => {
    "item": "oracle_java_version_string", 
    "oracle_java_version_string": "1.8.0_112"
}

TASK [oracle-java : include OS family/distribution specific variables] *********
ok: [trusty64.vagrant.dev] => (item=/Users/steenzout/Projects/github/ansiblebit/oracle-java/defaults/debian.yml) => {"ansible_facts": {"oracle_java_cache_valid_time": 3600, "oracle_java_home": "/usr/lib/jvm/java-{{ oracle_java_version }}-oracle", "oracle_java_os_supported": true, "oracle_java_state": "latest"}, "item": "/Users/steenzout/Projects/github/ansiblebit/oracle-java/defaults/debian.yml"}

TASK [oracle-java : debug] *****************************************************
ok: [trusty64.vagrant.dev] => (item=oracle_java_cache_valid_time) => {
    "item": "oracle_java_cache_valid_time", 
    "oracle_java_cache_valid_time": 3600
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_home) => {
    "item": "oracle_java_home", 
    "oracle_java_home": "/usr/lib/jvm/java-8-oracle"
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_installed) => {
    "item": "oracle_java_installed", 
    "oracle_java_installed": true
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_os_supported) => {
    "item": "oracle_java_os_supported", 
    "oracle_java_os_supported": true
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_set_as_default) => {
    "item": "oracle_java_set_as_default", 
    "oracle_java_set_as_default": true
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_state) => {
    "item": "oracle_java_state", 
    "oracle_java_state": "present"
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_version_build) => {
    "item": "oracle_java_version_build", 
    "oracle_java_version_build": "15"
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_version_installed) => {
    "item": "oracle_java_version_installed", 
    "oracle_java_version_installed": "1.8.0_131"
}
ok: [trusty64.vagrant.dev] => (item=oracle_java_version_string) => {
    "item": "oracle_java_version_string", 
    "oracle_java_version_string": "1.8.0_112"
}

TASK [oracle-java : check if operating system is suported] *********************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : download DMG file] *****************************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : mount DMG image] *******************************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : install JDK] ***********************************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : unmount DMG image] *****************************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : set Java version as default] *******************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : determine if Java is already installed] ********************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : set fact oracle_java_installed] ****************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : determine which Java version is installed] *****************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : set fact oracle_java_installed_version] ********************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : debug] *****************************************************
skipping: [trusty64.vagrant.dev] => (item=oracle_java_installed)  => {"changed": false, "item": "oracle_java_installed", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_task_installed)  => {"changed": false, "item": "oracle_java_task_installed", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_task_version)  => {"changed": false, "item": "oracle_java_task_version", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_version_installed)  => {"changed": false, "item": "oracle_java_version_installed", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_version_string)  => {"changed": false, "item": "oracle_java_version_string", "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : debian | ubuntu | add java ppa repo] ***********************
ok: [trusty64.vagrant.dev] => {"changed": false, "repo": "ppa:webupd8team/java", "state": "present"}

TASK [oracle-java : debian | ensure the webupd8 launchpad apt repository key is present] ***
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : debian | ensure the webupd8 launchpad apt repository is present] ***
skipping: [trusty64.vagrant.dev] => (item=deb)  => {"changed": false, "item": "deb", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=deb-src)  => {"changed": false, "item": "deb-src", "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : debian | set license as accepted] **************************
ok: [trusty64.vagrant.dev] => {"changed": false, "current": {"oracle-java8-installer/local": "", "oracle-java8-installer/not_exist": "", "shared/accepted-oracle-license-v1-1": "true", "shared/error-oracle-license-v1-1": "", "shared/present-oracle-license-v1-1": ""}, "msg": ""}

TASK [oracle-java : debian | ensure Java is installed] *************************
ok: [trusty64.vagrant.dev] => {"cache_update_time": 1498607781, "cache_updated": false, "changed": false}

TASK [oracle-java : debian | set Java version as default] **********************
ok: [trusty64.vagrant.dev] => {"cache_update_time": 1498607781, "cache_updated": false, "changed": false}

TASK [oracle-java : determine if Java is already installed] ********************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : set fact oracle_java_installed] ****************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : determine which Java version is installed] *****************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : set fact oracle_java_installed_version] ********************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : debug] *****************************************************
skipping: [trusty64.vagrant.dev] => (item=oracle_java_installed)  => {"changed": false, "item": "oracle_java_installed", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_task_installed)  => {"changed": false, "item": "oracle_java_task_installed", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_task_version)  => {"changed": false, "item": "oracle_java_task_version", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_version_installed)  => {"changed": false, "item": "oracle_java_version_installed", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_version_string)  => {"changed": false, "item": "oracle_java_version_string", "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : get latest JDK download page] ******************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : determine latest java download page and version] ***********
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : define download page URL based on latest version] **********
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : get lastest JDK rpm url] ***********************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : define download page URL for "8"] **************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : show download page URL] ************************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : get lastest JDK rpm url] ***********************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : set oracle_java_rpm_url] ***********************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : set some variables] ****************************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : debug] *****************************************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : download Java RPM] *****************************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : install RPM] ***********************************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : set Java version as default] *******************************
skipping: [trusty64.vagrant.dev] => (item={u'path': u'/usr/lib/jvm/java-8-oracle/jre/bin', u'exe': u'java'})  => {"changed": false, "item": {"exe": "java", "path": "/usr/lib/jvm/java-8-oracle/jre/bin"}, "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item={u'path': u'/usr/lib/jvm/java-8-oracle/jre/bin', u'exe': u'keytool'})  => {"changed": false, "item": {"exe": "keytool", "path": "/usr/lib/jvm/java-8-oracle/jre/bin"}, "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item={u'path': u'/usr/lib/jvm/java-8-oracle/bin', u'exe': u'javac'})  => {"changed": false, "item": {"exe": "javac", "path": "/usr/lib/jvm/java-8-oracle/bin"}, "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item={u'path': u'/usr/lib/jvm/java-8-oracle/bin', u'exe': u'javadoc'})  => {"changed": false, "item": {"exe": "javadoc", "path": "/usr/lib/jvm/java-8-oracle/bin"}, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : determine if Java is already installed] ********************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : set fact oracle_java_installed] ****************************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : determine which Java version is installed] *****************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : set fact oracle_java_installed_version] ********************
skipping: [trusty64.vagrant.dev] => {"changed": false, "skip_reason": "Conditional result was False", "skipped": true}

TASK [oracle-java : debug] *****************************************************
skipping: [trusty64.vagrant.dev] => (item=oracle_java_installed)  => {"changed": false, "item": "oracle_java_installed", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_task_installed)  => {"changed": false, "item": "oracle_java_task_installed", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_task_version)  => {"changed": false, "item": "oracle_java_task_version", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_version_installed)  => {"changed": false, "item": "oracle_java_version_installed", "skip_reason": "Conditional result was False", "skipped": true}
skipping: [trusty64.vagrant.dev] => (item=oracle_java_version_string)  => {"changed": false, "item": "oracle_java_version_string", "skip_reason": "Conditional result was False", "skipped": true}

PLAY RECAP *********************************************************************
trusty64.vagrant.dev       : ok=12   changed=0    unreachable=0    failed=0   
---
# file: oracle-java/tests/test.yml

- name: setup python2
  hosts: "{{ vagrant_box }}"
  gather_facts: no

  tasks:
    - raw: sudo apt-get update -qq && sudo apt-get install -qq python2.7
      when: playbook_python2 is defined and
            playbook_python2


- name: tests play
  hosts: all
  gather_facts: yes
  vars:
    debug: yes
    test_java_version: 8
    test_java_version_update: 112
    test_java_version_build: 15
    test_latest_java_version_update: 131 
    test_latest_java_version_build: 13

  roles:
    - role: oracle-java
      oracle_java_state: present
      oracle_java_version: "{{ test_java_version }}"
      oracle_java_version_update: "{{ test_java_version_update }}"
      oracle_java_version_build: "{{ test_java_version_build }}"
      oracle_java_set_as_default: yes
      oracle_java_rpm_validate_certs: no

    - role: tests
      expected_java_version: "1.{{ test_java_version }}.0_{{ test_java_version_update }}"
      tags: test
      when: ansible_os_family | lower == 'redhat'

    - role: tests
      expected_java_version: "1.{{ test_java_version }}.0_{{ test_latest_java_version_update }}"
      tags: test
      when: ansible_os_family | lower == 'debian'
$ cd tests
$ vagrant up trusty64.vagrant.dev
$ vagrant provision trusy64.vagrant.dev

@lprimak
Copy link
Author

lprimak commented Jun 28, 2017

Ok, sounds good to me, thanks!

@lprimak lprimak closed this as completed Jun 28, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants