User:Toshio/Testing systemd

= SysV initscript upgraded to systemd unit file =

Setup
[Pass] $ rsync -arv fedorapeople.org:public_html/systemd/. $ # Or: $ wget -r -nd -l 1 http://toshio.fedorapeople.org/systemd/. $ rpm -q supervisor package supervisor is not installed $ sudo rpm -ivh supervisor-3.0-0.3.a8.fc15.noarch.rpm $ ps ax|grep super $ # No supervisord running $ chkconfig --list supervisord [...] supervisord 0:off 1:off 2:off 3:off 4:off 5:off 6:off $ sudo shutdown -r now [...] $ ps ax|grep super $ # No supervisord running $ chkconfig --list supervisord supervisord 0:off 1:off 2:off 3:off 4:off 5:off 6:off

Variant -- no run sysv
[Pass] $ sudo rpm -Uvh supervisor-3.0-0.5.a8.fc14.noarch.rpm $ ls -al /etc/rc.d/*/*super* ls: cannot access /etc/rc.d/*/*super*: No such file or directory $ # passed -- testing that there are no dangling systemV symlinks $ ls -al /etc/systemd/system/*wants*/ |grep super $ # No supervisord set to start $ ps ax|grep super $ # No supervisord running $ sudo shutdown -r now [...] $ ps ax|grep supervisor $ # No supervisord running $ ls -al /etc/systemd/system/*wants*/ |grep super $ # No supervisord set to start

Variant -- running sysv
[FAIL] : https://bugzilla.redhat.com/show_bug.cgi?id=616857
 * supervisor wasn't registered with systemd -- probably caused by chkconfig problem
 * Supervisor wasn't restarted -- unknown cause, possibly need a try-restart in the package scriptlets need to resolve chkconfig failure first
 * Other failures related to the service not being registered with systemd -- need to solve chkconfig bug first

$ chkconfig --levels 345 supervisord on $ ps ax| grep super $ # No supervisor running $ chkconfig --list supervisord [...] supervisord    0:off   1:off   2:off   3:on    4:on    5:on    6:off $ sudo shutdown -r now $ ps ax|grep supervisor 997 ?       Ss     0:00 /usr/bin/python /usr/bin/supervisord $ # Supervisord is running $ sudo rpm -Uvh supervisor-3.0-0.5.a8.fc15.noarch.rpm $ ps ax|grep supervisor 997 ?       Ss     0:00 /usr/bin/python /usr/bin/supervisord $ # Looks like failure.. supervisor didn't restart $ sudo supervisorctl version 3.0a8 $ # Confirm failure, the service is the old version $ ls -al /etc/systemd/system/*wants*|grep super $ # Also failure we should have seen the supervisor service symlinked here $ sudo shutdown -r now $ ps ax|grep supervisor $ # Failure no supervisor running $ sudo supervisorctl version unix:///var/tmp/supervisor.sock no such file $ # Confirm failure, the service isn't running; expected the new version $ ls -al /etc/systemd/system/*wants*|grep super $ # Also failure we should have seen the supervisor service symlinked here $ sudo systemctl status supervisord.service supervisord.service - Start jobs, make sure they're running, and automatically restart them. Loaded: loaded (/lib/systemd/system/supervisord.service) Active: inactive (dead) CGroup: name=systemd:/system/supervisord.service $ # unit file installed in correct place but not linked to the proper targets

= Package w/ systemd unit file upgraded to systemd unit file =

Setup
[Pass] $ rpm -q supervisor package supervisor is not installed $ sudo rpm -Uvh supervisor-3.0-0.4.a8.fc15.noarch.rpm $ ps ax|grep super $ # No supervisord running $ ls -al /etc/systemd/system/*wants/*super* ls: cannot access /etc/systemd/system/*wants/*super*: No such file or directory $ # pass: systemd is not set to start the service $ sudo shutdown -r now [...] $ ps ax|grep super $ # No supervisord running $ ls -al /etc/systemd/system/*wants/*super* ls: cannot access /etc/systemd/system/*wants/*super*: No such file or directory

Variant -- no run systemd
[PASS] $ sudo rpm -Uvh supervisor-3.0-0.5.a8.fc15.noarch.rpm $ ps ax|grep supervisor $ # No supervisor running $ ls -al /etc/systemd/system/*wants/*super* ls: cannot access /etc/systemd/system/*wants/*super*: No such file or directory $ sudo shutdown -r now [...] $ ps ax|grep supervisor $ # No supervisor running $ ls -al /etc/systemd/system/*wants/*super* ls: cannot access /etc/systemd/system/*wants/*super*: No such file or directory

Variant -- running systemd
[PASS] $ systemctl enable supervisord.service $ sudo systemctl enable supervisord.service ln -s '/lib/systemd/system/supervisord.service' '/etc/systemd/system/multi-user.target.wants/supervisord.service' $ ps ax|grep super $ # Pass no supervisor running $ ls -al /etc/systemd/system/*wants/*super* lrwxrwxrwx. 1 root root 39 Feb 23 21:44 /etc/systemd/system/multi-user.target.wants/supervisord.service -> /lib/systemd/system/supervisord.service $ # Pass setup the symlink in etc to the service file $ sudo shutdown -r now $ ps ax|grep superviso 629 ?       Ss     0:00 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisord.conf $ # Pass -- supervisor running $ sudo rpm -Uvh supervisor-3.0-0.5.a8.fc15.noarch.rpm $ ps ax|grep supervisor 1123 ?       Ss     0:00 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisord.conf $ # Looking good, new supervisord pid $ sudo supervisorctl version 3.0b1 $ # Verified -- new version is running $ sudo shutdown -r now [...] $ ps ax|grep supervisor 648 ?       Ss     0:00 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisord.conf $ # Pass supervisor came up at reboot $ systemctl status supervisord.service supervisord.service - Start jobs, make sure they're running, and automatically restart them. Loaded: loaded (/lib/systemd/system/supervisord.service) Active: active (running) since Wed, 23 Feb 2011 21:51:17 -0800; 1min 35s ago Main PID: 648 (supervisord) CGroup: name=systemd:/system/supervisord.service └ 648 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisord.conf

= Test autostart services work SysV => systemd = [DID NOT TEST]: Note: expect these to have some failures until chkconfig bug fixed
 * Perform tests in: SysV initscript upgraded to systemd unit file
 * But with the autostart %post
 * And expecting some different values.
 * If the service is not running, should not be running after
 * If the service is running, should only be running in those runlevels after

= Test autostart services work systemd => systemd = [DID NOT TEST]: Note: Hope that these will all pass -- only depends on how good the %post is
 * Perform tests in: Package w/ systemd unit file upgraded to systemd unit file
 * But with autostart %post
 * And expecting some different values
 * If systemd service is installed from scratch, the service is autostarted according to what's in the unit file
 * If service is not running, should not be running after
 * If service is running, should only be running in those runlevels afterwards

= Test -- systemd reinstall =

No autostart
[PASS] $ sudo rpm -Uvh supervisor-3.0-0.5.a8.fc15.noarch.rpm $ systemctl enable supervisord.service $ sudo shutdown -r now [...] $ ps ax |grep super $ # Verified that supervisord is running $ sudo rpm -e supervisor $ ps ax|grep super $ # Pass: verified that supervisor is not running $ ls -al /etc/systemd/systemd/*wants*/*super* $ # Pass: verified that it's not set to run $ sudo rpm -Uvh supervisor-3.0-0.5.a8.fc15.noarch.rpm $ ps ax|grep super $ # Pass: verified that supervisor is not running $ ls -al /etc/systemd/systemd/*wants*/*super* ls: cannot access /etc/systemd/systemd/*wants*/*super*: No such file or directory $ # Pass: verified that it's not set to run $ sudo shutdown -r now [...] $ ps ax|grep super $ # Pass: verified that supervisor is not running

autostart

 * Something like the above case but check that only the targets configured by the package are autostarted

May have to test variants of the above that have activated services (hw activated? dependency activated? Socket activated? Need lennart to clarify what activation methods exist)

 * something like the above cases where services are activated rather than explicit.