os-autoinst-distri-fedora/tests/_iot_zezere_server.pm

48 lines
1.9 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
sub run {
my $self = shift;
# deploy a zezere (Fedora IoT provisioning server) instance
assert_script_run "dnf --enablerepo=updates-testing -y install zezere", 180;
# write config file
assert_script_run "printf '[global]\nsecret_key = SECRET_KEY\ndebug = yes\nallowed_hosts = localhost, localhost.localdomain, 172.16.2.118\nsecure_cookie = no\nauth_method = local\n\n[oidc.rp]\nsign_algo = RS256\n\n[database]\nengine = django.db.backends.sqlite3\nname = /var/local/zezere.sqlite3' > /etc/zezere.conf";
# write systemd unit file
assert_script_run "printf '[Unit]\nDescription=Zezere provisioning server\n\n[Service]\nExecStart=/usr/bin/zezere-manage runserver 172.16.2.118:80\n\n[Install]\nWantedBy=multi-user.target' > /etc/systemd/system/zezere.service";
assert_script_run "systemctl daemon-reload";
# open firewall port
assert_script_run "firewall-cmd --add-service=http";
# update DB schema
assert_script_run "zezere-manage makemigrations";
assert_script_run "zezere-manage migrate";
# load DB fixtures
assert_script_run "zezere-manage loaddata fedora_iot_runreqs";
assert_script_run "zezere-manage loaddata fedora_installed";
# create admin user
assert_script_run 'zezere-manage createsuperuser --username admin --email zezere@test.openqa.fedoraproject.org --no-input';
# set admin password (can't find a non-interactive way sadly)
type_string "zezere-manage changepassword admin\n";
wait_still_screen 5;
type_string "weakpassword\n";
wait_still_screen 5;
type_string "weakpassword\n";
wait_still_screen 5;
# check DB exists
assert_script_run "ls -l /var/local/zezere.sqlite3";
# start server
assert_script_run "systemctl start zezere.service";
# check it seems to be running
assert_script_run "curl http://172.16.2.118";
}
sub test_flags {
return {fatal => 1};
}
1;
# vim: set sw=4 et: