37 lines
1.3 KiB
Bash
Executable File
37 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
reapply_patch() {
|
|
if ! [[ -e $1 ]]; then
|
|
echo "$1 does not exist, OpenNebula is not installed"
|
|
elif ! patch -f --dry-run -F 0 -R $1 < $2 >/dev/null; then
|
|
already_applied=0
|
|
if ! patch --no-backup-if-mismatch -r - -F 0 -f $1 < $2; then
|
|
applied_ok=0
|
|
echo "ERROR: Failed to patch file $1, please apply the patch $2 manually"
|
|
fi
|
|
fi
|
|
}
|
|
echo "Reapplying Vitastor patches to OpenNebula's oned.conf, vmm_execrc and downloader.sh"
|
|
already_applied=1
|
|
applied_ok=1
|
|
reapply_patch /var/lib/one/remotes/datastore/downloader.sh /var/lib/one/remotes/datastore/vitastor/downloader-vitastor.sh.diff
|
|
reapply_patch /etc/one/vmm_exec/vmm_execrc /var/lib/one/remotes/datastore/vitastor/vmm_execrc.diff
|
|
if [[ -e /etc/one/oned.conf ]]; then
|
|
if ! /var/lib/one/remotes/datastore/vitastor/patch-oned-conf.py /etc/one/oned.conf; then
|
|
applied_ok=0
|
|
already_applied=0
|
|
fi
|
|
fi
|
|
if [[ "$already_applied" = 1 ]]; then
|
|
echo "OK: Vitastor OpenNebula patches are already applied"
|
|
elif [[ "$applied_ok" = 1 ]]; then
|
|
echo "OK: Vitastor OpenNebula patches successfully applied"
|
|
fi
|
|
if [[ -f /etc/apparmor.d/local/abstractions/libvirt-qemu ]]; then
|
|
if ! grep -q /etc/vitastor/vitastor.conf /etc/apparmor.d/local/abstractions/libvirt-qemu; then
|
|
echo ' "/etc/vitastor/vitastor.conf" r,' >> /etc/apparmor.d/local/abstractions/libvirt-qemu
|
|
fi
|
|
fi
|