Support systemd in fuel-umm

upstart dependency is removed
and support for ubuntu 16 systemd is added

Closes-bug: #1583619

Change-Id: Iddf30fa3ebac20e05aee40ca75f0e75d0a1eab3d
This commit is contained in:
dmburmistrov 2016-05-19 17:15:47 +03:00 committed by Peter Zhurba
parent b5ebabe1b7
commit 665d7ab22d
5 changed files with 74 additions and 4 deletions

View File

@ -1,6 +1,6 @@
#!/bin/bash
if [[ "$1" == "add" ]] ; then
if [ x"$1" = x"add" ] ; then
systemctl enable umm-br.service
systemctl enable umm-run.service

View File

@ -17,7 +17,7 @@ network.service
cancel_job(){
if ! echo "$allowed_list" | grep -q "$2" ; then
if [[ "$1" != "No" ]] ; then
if [ ! x"$1" = x"No" ] ; then
systemctl cancel $1 || true
fi
fi
@ -25,7 +25,7 @@ cancel_job(){
umm-run(){
# systemctl list-jobs >/var/log/umm.log
[ -x /bin/plymouth quit] && /bin/plymouth quit || true
[ -x /bin/plymouth ] && /bin/plymouth quit || true
sleep 10
systemctl list-jobs | while read JI ; do
cancel_job $JI

View File

@ -5,7 +5,7 @@ Requires=local-fs.target umm.service
[Service]
ExecStart=/usr/lib/umm/umm_svc timer
Type=oneshot
Type=simple
TimeoutSec=0
RemainAfterExit=yes

23
files/fuel-umm/ub16/umm-install Executable file
View File

@ -0,0 +1,23 @@
#!/bin/bash
if [ x"$1" = x"add" ] ; then
systemctl enable umm-br.service
systemctl enable umm-run.service
systemctl enable umm.service
systemctl enable umm-tr.service
cat >/etc/grub.d/55_umm << "EOF"
if [ -f /etc/grub.d/10_linux ] ; then
/etc/grub.d/10_linux | sed -n -e '/menuentry.*{/,/}/p' | sed -e "s/menuentry\s*'[^']*' /menuentry 'Unified maintenance mode (UMM)' /" -e 's/\(^\s*linux\s.*\)/\1 umm/' -e '/}/,$d'; echo '}'
fi
EOF
chmod +x /etc/grub.d/55_umm
else
systemctl disable umm-br.service
systemctl disable umm-run.service
systemctl disable umm.service
systemctl disable umm-tr.service
rm -f /etc/grub.d/55_umm
fi
grub-mkconfig >/boot/grub/grub.cfg

View File

@ -0,0 +1,47 @@
# if necessary switching to umm. umm.service will remove all items
# form systemd-job queue except units are listed in allowed_list.
# allowed_list should have last empty string.
allowed_list="basic.target
umm.service
umm-tr.service
umm-run.service
network.target
network.service
NetworkManager.service
ssh.service
"
cancel_job(){
if ! echo "$allowed_list" | grep -q "^${2}$" ; then
if [ ! x"$1" = x"No" ] ; then
systemctl cancel $1 || true
fi
fi
}
umm-run(){
# systemctl list-jobs --no-legend >>/var/log/umm.log
[ -x /bin/plymouth ] && /bin/plymouth quit || true
sleep 10
systemctl list-jobs --no-legend | while read JI ; do
cancel_job $JI
# Calling of cancel_job looks like
#
# cancel_job 1 graphical.target start waiting
#
# because we don't use " so we have 4 params not one
done
systemctl start --no-block getty@tty2.service
}
umm-off(){
systemctl isolate default.target
}
umm-skip(){
exit 0
}