Skip to content

Commit 96e5b32

Browse files
committed
CLOUDSTACK-9462: Refactor systemd scripts
Refactors and unifies usage of systemd script and default files across CentOS and Ubuntu/Debian packaging system. Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
1 parent 142772d commit 96e5b32

15 files changed

+40
-140
lines changed

debian/cloudstack-agent.postinst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ case "$1" in
4141
mkdir /etc/libvirt/hooks
4242
fi
4343
cp -a /usr/share/cloudstack-agent/lib/libvirtqemuhook /etc/libvirt/hooks/qemu
44+
45+
# Update JAVA_HOME in /etc/default/cloudstack-agent to default JRE
46+
JAVA_HOME=$(readlink -f /usr/bin/java | sed 's/\/jre.*java//g')
47+
if [ -d "$JAVA_HOME" ]; then
48+
sed -i "s:^JAVA_HOME=.*:JAVA_HOME=${JAVA_HOME}:" /etc/default/cloudstack-agent
49+
fi
4450
;;
4551
esac
4652

debian/cloudstack-usage.postinst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ case "$1" in
4343
rm -rf /etc/cloudstack/usage/key
4444
ln -s /etc/cloudstack/management/key /etc/cloudstack/usage/key
4545
fi
46+
47+
# Update JAVA_HOME in /etc/default/cloudstack-usage to default JRE
48+
JAVA_HOME=$(readlink -f /usr/bin/java | sed 's/\/jre.*java//g')
49+
if [ -d "$JAVA_HOME" ]; then
50+
sed -i "s:^JAVA_HOME=.*:JAVA_HOME=${JAVA_HOME}:" /etc/default/cloudstack-usage
51+
fi
4652
;;
4753
esac
4854

debian/control

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Source: cloudstack
22
Section: libs
33
Priority: extra
44
Maintainer: Wido den Hollander <wido@widodh.nl>
5-
Build-Depends: debhelper (>= 9), openjdk-8-jdk | openjdk-7-jdk, genisoimage,
5+
Build-Depends: debhelper (>= 9), openjdk-8-jdk | java8-sdk | java8-jdk | openjdk-7-jdk, genisoimage,
66
python-mysql.connector, maven (>= 3) | maven3, python (>= 2.7), lsb-release, dh-systemd
77
Standards-Version: 3.8.1
88
Homepage: http://www.cloudstack.org/
@@ -22,7 +22,8 @@ Description: CloudStack server library
2222

2323
Package: cloudstack-agent
2424
Architecture: all
25-
Depends: ${misc:Depends}, ${python:Depends}, ${jre:Depends}, cloudstack-common (= ${source:Version}), lsb-base (>= 4.0), libcommons-daemon-java, openssh-client, qemu-kvm (>= 1.0), libvirt-bin (>= 0.9.8), uuid-runtime, iproute, ebtables, vlan, ${init:Depends}, ipset, python-libvirt, ethtool, iptables, lsb-release
25+
Depends: ${python:Depends}, openjdk-8-jre-headless | java8-runtime-headless | java8-runtime | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), lsb-base (>= 4.0), libcommons-daemon-java, openssh-client, qemu-kvm (>= 1.0), libvirt-bin (>= 0.9.8), uuid-runtime, iproute, ebtables, vlan, jsvc, ipset, python-libvirt, ethtool, iptables, lsb-release
26+
Recommends: init-system-helpers
2627
Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps, cloud-agent-scripts
2728
Description: CloudStack agent
2829
The CloudStack agent is in charge of managing shared computing resources in
@@ -31,7 +32,8 @@ Description: CloudStack agent
3132

3233
Package: cloudstack-usage
3334
Architecture: all
34-
Depends: ${misc:Depends}, ${jre:Depends}, cloudstack-common (= ${source:Version}), jsvc, libmysql-java
35+
Depends: openjdk-8-jre-headless | java8-runtime-headless | java8-runtime | openjdk-7-jre-headless, cloudstack-common (= ${source:Version}), jsvc, libmysql-java
36+
Recommends: init-system-helpers
3537
Description: CloudStack usage monitor
3638
The CloudStack usage monitor provides usage accounting across the entire cloud for
3739
cloud operators to charge based on usage parameters.

debian/rules

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,9 @@ PACKAGE = $(shell dh_listpackages|head -n 1|cut -d '-' -f 1)
55
SYSCONFDIR = "/etc"
66
DESTDIR = "debian/tmp"
77

8-
ifeq ($(shell lsb_release -sr), 14.04)
9-
SUBSTVARS = -Vjre:Depends="openjdk-7-jre-headless" -Vjdk:Depends="openjdk-7-jdk" -Vinit:"Depends:jsvc"
10-
else
11-
SUBSTVARS = -Vjre:Depends="openjdk-8-jre-headless" -Vjdk:Depends="openjdk-8-jdk" -Vinit:"Depends:systemd"
12-
endif
13-
148
%:
159
dh $@ --with python2,systemd
1610

17-
override_dh_gencontrol:
18-
dh_gencontrol -- $(SUBSTVARS)
19-
2011
override_dh_auto_configure:
2112
cp packaging/debian/replace.properties replace.properties.tmp
2213
echo VERSION=${VERSION} >> replace.properties.tmp
@@ -54,8 +45,11 @@ override_dh_auto_install:
5445

5546
install -m0755 packaging/debian/$(PACKAGE)-agent.init $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-agent
5647
install -d -m0755 debian/$(PACKAGE)-agent/lib/systemd/system
57-
install -m0644 packaging/debian/$(PACKAGE)-agent.service debian/$(PACKAGE)-agent/lib/systemd/system/$(PACKAGE)-agent.service
58-
install -m0644 packaging/debian/$(PACKAGE)-agent.default $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-agent
48+
# Fix libvirt service name for Debian/Ubuntu
49+
sed -i 's/Requires=libvirtd.service/Requires=libvirt-bin.service/g' packaging/systemd/$(PACKAGE)-agent.service
50+
sed -i 's/After=libvirtd.service/After=libvirt-bin.service/g' packaging/systemd/$(PACKAGE)-agent.service
51+
install -m0644 packaging/systemd/$(PACKAGE)-agent.service debian/$(PACKAGE)-agent/lib/systemd/system/$(PACKAGE)-agent.service
52+
install -m0644 packaging/systemd/$(PACKAGE)-agent.default $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-agent
5953

6054
install -D agent/target/transformed/cloud-setup-agent $(DESTDIR)/usr/bin/cloudstack-setup-agent
6155
install -D agent/target/transformed/cloud-ssh $(DESTDIR)/usr/bin/cloudstack-ssh
@@ -140,8 +134,8 @@ override_dh_auto_install:
140134

141135
install -D -m0755 packaging/debian/$(PACKAGE)-usage.init $(DESTDIR)/$(SYSCONFDIR)/init.d/$(PACKAGE)-usage
142136
install -d -m0755 debian/$(PACKAGE)-usage/lib/systemd/system
143-
install -m0644 packaging/debian/$(PACKAGE)-usage.service debian/$(PACKAGE)-usage/lib/systemd/system/$(PACKAGE)-usage.service
144-
install -m0644 packaging/debian/$(PACKAGE)-usage.default $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-usage
137+
install -m0644 packaging/systemd/$(PACKAGE)-usage.service debian/$(PACKAGE)-usage/lib/systemd/system/$(PACKAGE)-usage.service
138+
install -m0644 packaging/systemd/$(PACKAGE)-usage.default $(DESTDIR)/$(SYSCONFDIR)/default/$(PACKAGE)-usage
145139

146140
# cloudstack-marvin
147141
mkdir -p $(DESTDIR)/usr/share/$(PACKAGE)-marvin

packaging/centos7/cloud.spec

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{name}/management/temp
210210
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/mnt
211211
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/%{name}/management
212212
mkdir -p ${RPM_BUILD_ROOT}%{_initrddir}
213-
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
213+
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/default
214214
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/profile.d
215215
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d
216216

@@ -285,10 +285,10 @@ install python/bindir/cloud-external-ipallocator.py ${RPM_BUILD_ROOT}%{_bindir}/
285285
install -D client/target/pythonlibs/jasypt-1.9.2.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-common/lib/jasypt-1.9.2.jar
286286

287287
install -D packaging/centos7/cloud-ipallocator.rc ${RPM_BUILD_ROOT}%{_initrddir}/%{name}-ipallocator
288-
install -D packaging/centos7/cloud-management.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name}-management
289-
install -D server/target/conf/cloudstack-sudoers ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
290-
install -D packaging/centos7/cloud-management.service ${RPM_BUILD_ROOT}%{_unitdir}/%{name}-management.service
291288
install -D packaging/centos7/cloud.limits ${RPM_BUILD_ROOT}%{_sysconfdir}/security/limits.d/cloud
289+
install -D packaging/systemd/cloudstack-management.service ${RPM_BUILD_ROOT}%{_unitdir}/%{name}-management.service
290+
install -D packaging/systemd/cloudstack-management.default ${RPM_BUILD_ROOT}%{_sysconfdir}/default/%{name}-management
291+
install -D server/target/conf/cloudstack-sudoers ${RPM_BUILD_ROOT}%{_sysconfdir}/sudoers.d/%{name}-management
292292
touch ${RPM_BUILD_ROOT}%{_localstatedir}/run/%{name}-management.pid
293293
install -D server/target/conf/cloudstack-catalina.logrotate ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}-catalina
294294

@@ -309,7 +309,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/agent
309309
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/lib
310310
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-agent/plugins
311311
install -D packaging/systemd/cloudstack-agent.service ${RPM_BUILD_ROOT}%{_unitdir}/%{name}-agent.service
312-
install -D packaging/systemd/cloudstack-agent.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name}-agent
312+
install -D packaging/systemd/cloudstack-agent.default ${RPM_BUILD_ROOT}%{_sysconfdir}/default/%{name}-agent
313313
install -D agent/target/transformed/agent.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/agent.properties
314314
install -D agent/target/transformed/environment.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/environment.properties
315315
install -D agent/target/transformed/log4j-cloud.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/agent/log4j-cloud.xml
@@ -330,7 +330,7 @@ install -D usage/target/transformed/db.properties ${RPM_BUILD_ROOT}%{_sysconfdir
330330
install -D usage/target/transformed/log4j-cloud_usage.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage/log4j-cloud.xml
331331
cp usage/target/dependencies/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/lib/
332332
install -D packaging/systemd/cloudstack-usage.service ${RPM_BUILD_ROOT}%{_unitdir}/%{name}-usage.service
333-
install -D packaging/systemd/cloudstack-usage.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name}-usage
333+
install -D packaging/systemd/cloudstack-usage.default ${RPM_BUILD_ROOT}%{_sysconfdir}/default/%{name}-usage
334334
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/usage/
335335

336336
# CLI
@@ -405,6 +405,10 @@ if [ ! -f %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/vhd-util
405405
echo %{_datadir}/cloudstack-common/scripts/vm/hypervisor/xenserver/
406406
fi
407407

408+
if [ -f %{_sysconfdir}/sysconfig/%{name}-management ] ; then
409+
mv %{_sysconfdir}/sysconfig/%{name}-management %{_sysconfdir}/default/%{name}-management
410+
fi
411+
408412
%preun agent
409413
/sbin/service cloudstack-agent stop || true
410414
if [ "$1" == "0" ] ; then
@@ -484,7 +488,7 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
484488
%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/work
485489
%dir %attr(0770,root,cloud) %{_localstatedir}/cache/%{name}/management/temp
486490
%dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/management
487-
%config(noreplace) %{_sysconfdir}/sysconfig/%{name}-management
491+
%config(noreplace) %{_sysconfdir}/default/%{name}-management
488492
%config(noreplace) %{_sysconfdir}/sudoers.d/%{name}-management
489493
%config(noreplace) %{_sysconfdir}/security/limits.d/cloud
490494
%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/db.properties
@@ -535,7 +539,7 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
535539
%attr(0755,root,root) %{_bindir}/%{name}-agent-upgrade
536540
%attr(0755,root,root) %{_bindir}/%{name}-ssh
537541
%attr(0644,root,root) %{_unitdir}/%{name}-agent.service
538-
%attr(0644,root,root) %{_sysconfdir}/sysconfig/%{name}-agent
542+
%attr(0644,root,root) %{_sysconfdir}/default/%{name}-agent
539543
%attr(0644,root,root) %{_sysconfdir}/profile.d/%{name}-agent-profile.sh
540544
%attr(0644,root,root) %{_sysconfdir}/logrotate.d/%{name}-agent
541545
%attr(0755,root,root) %{_datadir}/%{name}-common/scripts/network/cisco
@@ -562,7 +566,7 @@ pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
562566

563567
%files usage
564568
%attr(0644,root,root) %{_unitdir}/%{name}-usage.service
565-
%attr(0644,root,root) %{_sysconfdir}/sysconfig/%{name}-usage
569+
%attr(0644,root,root) %{_sysconfdir}/default/%{name}-usage
566570
%attr(0644,root,root) %{_datadir}/%{name}-usage/*.jar
567571
%attr(0644,root,root) %{_datadir}/%{name}-usage/lib/*.jar
568572
%dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/usage

packaging/debian/cloudstack-agent.default

Lines changed: 0 additions & 21 deletions
This file was deleted.

packaging/debian/cloudstack-agent.service

Lines changed: 0 additions & 35 deletions
This file was deleted.

packaging/debian/cloudstack-usage.default

Lines changed: 0 additions & 21 deletions
This file was deleted.

packaging/debian/cloudstack-usage.service

Lines changed: 0 additions & 35 deletions
This file was deleted.
File renamed without changes.

0 commit comments

Comments
 (0)