DCD-224: Handle version override and reading any existing cached version

This commit is contained in:
Steve Smith
2019-04-15 11:35:41 +10:00
parent 624edfa5c9
commit 6e596bef55
9 changed files with 43 additions and 11 deletions

View File

@@ -6,13 +6,19 @@ driver:
lint: lint:
name: yamllint name: yamllint
platforms: platforms:
- name: instance - name: amazon_linux2
image: centos:7 image: amazonlinux:2
- name: ubuntu_lts
image: ubuntu:bionic
provisioner: provisioner:
name: ansible name: ansible
lint: lint:
name: ansible-lint name: ansible-lint
inventory:
links:
group_vars: ../../../../group_vars/
verifier: verifier:
name: testinfra name: testinfra
lint: lint:
name: flake8 name: flake8
enabled: false

View File

@@ -1,5 +1,10 @@
--- ---
- name: Converge - name: Converge
hosts: all hosts: all
vars:
atl_product_family: "jira"
atl_product_edition: "jira-software"
atl_product_user: "jira"
roles: roles:
- role: product_common
- role: jira_download - role: jira_download

View File

@@ -1,4 +1,5 @@
import os import os
import urllib.request
import testinfra.utils.ansible_runner import testinfra.utils.ansible_runner
@@ -6,9 +7,16 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all') os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
def test_hosts_file(host): def test_version_downloaded(host):
f = host.file('/etc/hosts') verfile = host.file('/media/atl/jira/shared/jira-software.version')
assert verfile.exists
assert f.exists
assert f.user == 'root' def test_version_is_latest(host):
assert f.group == 'root' verfile = host.file('/media/atl/jira/shared/jira-software.version')
assert verfile.exists
upstream_fd = urllib.request.urlopen("https://s3.amazonaws.com/atlassian-software/releases/jira-software/latest")
upstream = upstream_fd.read()
assert verfile.content.decode("UTF-8").strip() == upstream.decode("UTF-8").strip()

View File

@@ -21,3 +21,4 @@ verifier:
name: testinfra name: testinfra
lint: lint:
name: flake8 name: flake8
enabled: false

View File

@@ -5,6 +5,7 @@
atl_product_family: "jira" atl_product_family: "jira"
atl_product_edition: "jira-software" atl_product_edition: "jira-software"
atl_product_user: "jira" atl_product_user: "jira"
atl_product_version: "7.13.2"
roles: roles:
- role: product_common - role: product_common
- role: jira_download - role: jira_download

View File

@@ -11,11 +11,10 @@ def test_version_downloaded(host):
verfile = host.file('/media/atl/jira/shared/jira-software.version') verfile = host.file('/media/atl/jira/shared/jira-software.version')
assert verfile.exists assert verfile.exists
def test_version_is_latest(host): def test_version_is_latest(host):
verfile = host.file('/media/atl/jira/shared/jira-software.version') verfile = host.file('/media/atl/jira/shared/jira-software.version')
assert verfile.exists assert verfile.exists
upstream_fd = urllib.request.urlopen("https://s3.amazonaws.com/atlassian-software/releases/jira-software/latest") assert verfile.content.decode("UTF-8").strip() == "7.13.2"
upstream = upstream_fd.read()
assert verfile.content.decode("UTF-8").strip() == upstream.decode("UTF-8").strip()

View File

@@ -1,9 +1,20 @@
--- ---
- name: Fetch the latest version if necessary - name: Fetch and cache latest version when no override
get_url: get_url:
url: "{{ atl_product_latest_version_url }}" url: "{{ atl_product_latest_version_url }}"
dest: "{{ atl_product_version_cache }}" dest: "{{ atl_product_version_cache }}"
force: false force: false
when: atl_product_version is undefined or atl_product_version == "latest" when: atl_product_version is undefined or atl_product_version == "latest"
- name: Write override cached version when specified
template:
src: version.j2
dest: "{{ atl_product_version_cache }}"
force: false
when: atl_product_version is defined and atl_product_version != "latest"
- name: Use version for product version
slurp:
src: "{{ atl_product_version_cache }}"
register: atl_product_version

View File

@@ -0,0 +1 @@
{{ atl_product_version }}