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

test: Test roles #2

Merged
merged 10 commits into from
Feb 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 60 additions & 60 deletions .config/molecule/config-podman.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,66 +5,66 @@ prerun: false
driver:
name: podman
platforms:
# - name: almalinux-8
# image: dokken/almalinux-8
# pre_build_image: true
# privileged: true
# cgroup_parent: docker.slice
# command: /lib/systemd/systemd
# - name: almalinux-9
# image: dokken/almalinux-9
# pre_build_image: true
# privileged: true
# cgroup_parent: docker.slice
# command: /lib/systemd/systemd
# - name: centos-7
# image: dokken/centos-7
# pre_build_image: true
# privileged: true
# cgroup_parent: docker.slice
# command: /usr/lib/systemd/systemd
# - name: centos-stream-8
# image: dokken/centos-stream-8
# pre_build_image: true
# privileged: true
# cgroup_parent: docker.slice
# command: /lib/systemd/systemd
# - name: centos-stream-9
# image: dokken/centos-stream-9
# pre_build_image: true
# privileged: true
# cgroup_parent: docker.slice
# command: /lib/systemd/systemd
# - name: debian-10
# image: dokken/debian-10
# pre_build_image: true
# privileged: true
# cgroup_parent: docker.slice
# command: /lib/systemd/systemd
# - name: debian-11
# image: dokken/debian-11
# pre_build_image: true
# privileged: true
# cgroup_parent: docker.slice
# command: /lib/systemd/systemd
# - name: fedora-37
# image: dokken/fedora-37
# pre_build_image: true
# privileged: true
# cgroup_parent: docker.slice
# command: /lib/systemd/systemd
# - name: fedora-38
# image: dokken/fedora-38
# pre_build_image: true
# privileged: true
# cgroup_parent: docker.slice
# command: /lib/systemd/systemd
# - name: ubuntu-20.04
# image: dokken/ubuntu-20.04
# pre_build_image: true
# privileged: true
# cgroup_parent: docker.slice
# command: /lib/systemd/systemd
- name: almalinux-8
image: dokken/almalinux-8
pre_build_image: true
privileged: true
cgroup_parent: docker.slice
command: /lib/systemd/systemd
- name: almalinux-9
image: dokken/almalinux-9
pre_build_image: true
privileged: true
cgroup_parent: docker.slice
command: /lib/systemd/systemd
- name: centos-7
image: dokken/centos-7
pre_build_image: true
privileged: true
cgroup_parent: docker.slice
command: /usr/lib/systemd/systemd
- name: centos-stream-8
image: dokken/centos-stream-8
pre_build_image: true
privileged: true
cgroup_parent: docker.slice
command: /lib/systemd/systemd
- name: centos-stream-9
image: dokken/centos-stream-9
pre_build_image: true
privileged: true
cgroup_parent: docker.slice
command: /lib/systemd/systemd
- name: debian-10
image: dokken/debian-10
pre_build_image: true
privileged: true
cgroup_parent: docker.slice
command: /lib/systemd/systemd
- name: debian-11
image: dokken/debian-11
pre_build_image: true
privileged: true
cgroup_parent: docker.slice
command: /lib/systemd/systemd
- name: fedora-37
image: dokken/fedora-37
pre_build_image: true
privileged: true
cgroup_parent: docker.slice
command: /lib/systemd/systemd
- name: fedora-38
image: dokken/fedora-38
pre_build_image: true
privileged: true
cgroup_parent: docker.slice
command: /lib/systemd/systemd
- name: ubuntu-20.04
image: dokken/ubuntu-20.04
pre_build_image: true
privileged: true
cgroup_parent: docker.slice
command: /lib/systemd/systemd
- name: ubuntu-22.04
image: dokken/ubuntu-22.04
pre_build_image: true
Expand Down
6 changes: 3 additions & 3 deletions .github/version-drafter.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---
major-labels: [semver:major, major, breaking]
minor-labels: [semver:minor, minor, enhancement, deprecated, removed, security]
patch-labels: [semver:patch, bug, trivial, bugfix]
major-labels: ['semver:major', 'major', 'breaking']
minor-labels: ['semver:minor', 'minor', 'enhancement', 'deprecated', 'removed', 'security']
patch-labels: ['semver:patch', 'bug', 'trivial', 'bugfix']
4 changes: 2 additions & 2 deletions roles/ceems_api_server/meta/argument_specs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,12 @@ argument_specs:
description:
- I(Advanced)
- System group for batch job stats server
default: batchjob-stats
default: ceems
ceems_api_server_system_user:
description:
- I(Advanced)
- CEEMS API server user
default: batchjob-stats
default: ceems
ceems_api_server_cli_args:
description:
- I(Advanced)
Expand Down
4 changes: 2 additions & 2 deletions roles/ceems_api_server/tasks/configure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
path: "{{ ceems_api_server_data_backup_path }}"
state: directory
owner: "{{ ceems_api_server_system_user }}"
group: "{{ ceems_api_server_system_user }}"
group: "{{ ceems_api_server_system_group }}"
mode: u+rwX,g+rwX,o-rwX
when: ceems_api_server_data_backup_path
when: ceems_api_server_data_backup_path | length > 0

- name: Copy the ceems_api_server config file
ansible.builtin.template:
Expand Down
2 changes: 1 addition & 1 deletion roles/ceems_api_server/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
tags:
- ceems_api_server_configure

- name: Ensure Node Exporter is enabled on boot
- name: Ensure CEEMS API Server is enabled on boot
become: true
ansible.builtin.systemd:
daemon_reload: true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{{ ansible_managed | comment }}

[Unit]
Description=Batch Job Stats API Server
Description=CEEMS API Server
After=network-online.target

[Service]
Expand Down
4 changes: 2 additions & 2 deletions roles/ceems_exporter/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
ceems_exporter_version: "0.1.0-rc.4"
ceems_exporter_binary_local_dir: ""
ceems_exporter_binary_url: https://github.com/{{ _ceems_exporter_repo }}/releases/download/v{{ ceems_exporter_version }}/\
ceems-{{ ceems_exporter_version }}.linux-{{ go_arch }}.tar.gz
ceems_exporter_binary_url: "https://github.com/{{ _ceems_exporter_repo }}/releases/download/v{{ ceems_exporter_version }}/\
ceems-{{ ceems_exporter_version }}.linux-{{ go_arch }}.tar.gz"
ceems_exporter_checksums_url: https://github.com/{{ _ceems_exporter_repo }}/releases/download/v{{ ceems_exporter_version }}/sha256sums.txt
ceems_exporter_skip_install: false

Expand Down
6 changes: 3 additions & 3 deletions roles/ceems_exporter/meta/argument_specs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,13 @@ argument_specs:
ceems_exporter_system_group:
description:
- I(Advanced)
- System group for batch job exporter
default: ceems-exp
- System group for CEEMS exporter
default: ceemsexp
ceems_exporter_system_user:
description:
- I(Advanced)
- CEEMS exporter user
default: ceems-exp
default: ceemsexp
ceems_exporter_cli_args:
description:
- I(Advanced)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@


def test_directories(host):
dirs = []
dirs = ["/etc/ceems_exporter/"]
for dir in dirs:
d = host.file(dir)
assert not d.exists
assert d.exists


def test_service(host):
Expand All @@ -33,8 +33,11 @@ def test_systemd_properties(host):
s = host.service("ceems_exporter")
p = s.systemd_properties
assert p.get("ProtectHome") == "yes"
assert p.get("AmbientCapabilities") == "cap_setgid cap_setuid"
assert p.get("Environment") == "EMAPS_API=foo"
assert p.get("Environment") == "EMAPS_API_TOKEN=foo"
# Seems like this test will fail on centos 7
if host.system_info.distribution != "centos" and host.system_info.release != "7":
assert p.get("AmbientCapabilities") == "cap_setgid cap_setuid"
assert p.get("CapabilityBoundingSet") == "cap_setgid cap_setuid"


@pytest.mark.parametrize("sockets", [
Expand Down
2 changes: 1 addition & 1 deletion roles/ceems_exporter/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
tags:
- ceems_exporter_configure

- name: Ensure Node Exporter is enabled on boot
- name: Ensure CEEMS Exporter is enabled on boot
become: true
ansible.builtin.systemd:
daemon_reload: true
Expand Down
2 changes: 1 addition & 1 deletion roles/ceems_exporter/templates/ceems_exporter.service.j2
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{{ ansible_managed | comment }}

[Unit]
Description=Prometheus Batch Job Exporter
Description=Prometheus CEEMS Exporter
After=network-online.target

[Service]
Expand Down
2 changes: 1 addition & 1 deletion roles/ceems_lb/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ ceems_lb_db_path: ""
ceems_lb_cli_args: []
ceems_lb_env_vars: {}
ceems_lb_binary_install_dir: /usr/local/bin
ceems_lb_system_group: ceems
ceems_lb_system_group: ceemslb
ceems_lb_system_user: "{{ ceems_lb_system_group }}"
4 changes: 2 additions & 2 deletions roles/ceems_lb/meta/argument_specs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ argument_specs:
description:
- I(Advanced)
- System group for batch job stats server
default: batchjob-stats
default: ceemslb
ceems_lb_system_user:
description:
- I(Advanced)
- CEEMS Load Balancer user
default: batchjob-stats
default: ceemslb
ceems_lb_cli_args:
description:
- I(Advanced)
Expand Down
25 changes: 13 additions & 12 deletions roles/ceems_lb/molecule/alternative/tests/test_alternative.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@

def test_directories(host):
dirs = [
"/var/lib/ceems_api_server",
"/tmp/ceems_api_server"
"/var/lib/ceems_lb",
"/tmp/ceems_lb"
]
for dir in dirs:
d = host.file(dir)
Expand All @@ -21,8 +21,9 @@ def test_directories(host):

def test_files(host):
files = [
"/etc/systemd/system/ceems_api_server.service",
"/usr/local/bin/ceems_api_server"
"/etc/systemd/system/ceems_lb.service",
"/etc/ceems_lb/config.yaml",
"/usr/local/bin/ceems_lb"
]
for file in files:
f = host.file(file)
Expand All @@ -46,27 +47,27 @@ def test_permissions_didnt_change(host):


def test_user(host):
assert host.group("batchjob-stats").exists
assert "batchjob-stats" in host.user("batchjob-stats").groups
assert host.user("batchjob-stats").shell == "/usr/sbin/nologin"
assert host.user("batchjob-stats").home == "/"
assert host.group("ceemslb").exists
assert "ceemslb" in host.user("ceemslb").groups
assert host.user("ceemslb").shell == "/usr/sbin/nologin"
assert host.user("ceemslb").home == "/"


def test_service(host):
s = host.service("ceems_api_server")
s = host.service("ceems_lb")
try:
assert s.is_running
except AssertionError:
# Capture service logs
journal_output = host.run('journalctl -u ceems_api_server --since "1 hour ago"')
print("\n==== journalctl -u ceems_api_server Output ====\n")
journal_output = host.run('journalctl -u ceems_lb --since "1 hour ago"')
print("\n==== journalctl -u ceems_lb Output ====\n")
print(journal_output)
print("\n============================================\n")
raise # Re-raise the original assertion error


def test_systemd_properties(host):
s = host.service("ceems_api_server")
s = host.service("ceems_lb")
p = s.systemd_properties
assert p.get("ProtectHome") == "yes"
assert p.get("Environment") == "foo=bar"
Expand Down
23 changes: 12 additions & 11 deletions roles/ceems_lb/molecule/default/tests/test_default.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

def test_directories(host):
dirs = [
"/var/lib/ceems_api_server"
"/var/lib/ceems_lb"
]
for dir in dirs:
d = host.file(dir)
Expand All @@ -20,8 +20,9 @@ def test_directories(host):

def test_files(host):
files = [
"/etc/systemd/system/ceems_api_server.service",
"/usr/local/bin/ceems_api_server"
"/etc/systemd/system/ceems_lb.service",
"/etc/ceems_lb/config.yaml",
"/usr/local/bin/ceems_lb"
]
for file in files:
f = host.file(file)
Expand All @@ -45,27 +46,27 @@ def test_permissions_didnt_change(host):


def test_user(host):
assert host.group("ceems").exists
assert "ceems" in host.user("ceems").groups
assert host.user("ceems").shell == "/usr/sbin/nologin"
assert host.user("ceems").home == "/"
assert host.group("ceemslb").exists
assert "ceemslb" in host.user("ceemslb").groups
assert host.user("ceemslb").shell == "/usr/sbin/nologin"
assert host.user("ceemslb").home == "/"


def test_service(host):
s = host.service("ceems_api_server")
s = host.service("ceems_lb")
try:
assert s.is_running
except AssertionError:
# Capture service logs
journal_output = host.run('journalctl -u ceems_api_server --since "1 hour ago"')
print("\n==== journalctl -u ceems_api_server Output ====\n")
journal_output = host.run('journalctl -u ceems_lb --since "1 hour ago"')
print("\n==== journalctl -u ceems_lb Output ====\n")
print(journal_output)
print("\n============================================\n")
raise # Re-raise the original assertion error


def test_protecthome_property(host):
s = host.service("ceems_api_server")
s = host.service("ceems_lb")
p = s.systemd_properties
assert p.get("ProtectHome") == "yes"

Expand Down
Loading
Loading