Skip to content

Commit ee639cf

Browse files
committed
Merge pull request apache#1052 from davidamorimfaria/centos7-packaging
CLOUDSTACK-9049: fix Centos7 with Tomcat7 packaging and python libsCLOUDSTACK-9049: Fix Centos7 with Tomcat7 packaging and python libs * pr/1052: CLOUDSTACK-9049: fix Centos7 with Tomcat7 packaging and python libs * adjust library to support tomcat7 config files * adjust centos7 spec to use tomcat7 config files from deployment * add option to use tomcat7 files in management server setup reorder content to match original Signed-off-by: Remi Bergsma <github@remi.nl>
2 parents 5c48ce9 + 3c4a24c commit ee639cf

5 files changed

Lines changed: 118 additions & 94 deletions

File tree

client/bindir/cloud-setup-management.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,12 @@ if __name__ == '__main__':
2929

3030
parser = OptionParser()
3131
parser.add_option("--https", action="store_true", dest="https", help="Enable HTTPs connection of management server")
32+
parser.add_option("--tomcat7", action="store_true", dest="tomcat7", help="Use Tomcat7 configuration files in Management Server")
3233
(options, args) = parser.parse_args()
3334
if options.https:
3435
glbEnv.svrMode = "HttpsServer"
36+
if options.tomcat7:
37+
glbEnv.svrConf = "Tomcat7"
3538

3639
glbEnv.mode = "Server"
3740

packaging/centos7/cloud.spec

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -249,16 +249,16 @@ cp -r client/target/cloud-client-ui-%{_maventag}/* ${RPM_BUILD_ROOT}%{_datadir}/
249249
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/scripts
250250
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/vms
251251

252-
for name in catalina.properties db.properties log4j-cloud.xml web.xml \
253-
server.xml commons-logging.properties environment.properties java.security.ciphers tomcat-users.xml
252+
for name in db.properties log4j-cloud.xml server7-nonssl.xml server7-ssl.xml \
253+
commons-logging.properties catalina.policy catalina.properties classpath.conf \
254+
tomcat-users.xml web.xml environment.properties java.security.ciphers
254255
do
255-
cp packaging/centos7/tomcat7/$name \
256+
mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/$name \
256257
${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/$name
257-
rm -f ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/$name
258258
done
259259

260-
#ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml \
261-
# ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/log4j-cloud.xml
260+
ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml \
261+
${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/log4j-cloud.xml
262262

263263
mv ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/webapps/client/WEB-INF/classes/context.xml \
264264
${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/management/Catalina/localhost/client
@@ -438,10 +438,13 @@ fi
438438
%config(noreplace) %attr(0640,root,cloud) %{_sysconfdir}/%{name}/management/db.properties
439439
%config(noreplace) %{_sysconfdir}/%{name}/management/log4j-cloud.xml
440440
%config(noreplace) %{_sysconfdir}/%{name}/management/Catalina/localhost/client/context.xml
441+
%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.policy
441442
%config(noreplace) %{_sysconfdir}/%{name}/management/catalina.properties
443+
%config(noreplace) %{_sysconfdir}/%{name}/management/classpath.conf
444+
%config(noreplace) %{_sysconfdir}/%{name}/management/server7-nonssl.xml
445+
%config(noreplace) %{_sysconfdir}/%{name}/management/server7-ssl.xml
442446
%config(noreplace) %{_sysconfdir}/%{name}/management/tomcat-users.xml
443447
%config(noreplace) %{_sysconfdir}/%{name}/management/web.xml
444-
%config(noreplace) %{_sysconfdir}/%{name}/management/server.xml
445448
%config(noreplace) %{_sysconfdir}/%{name}/management/environment.properties
446449
%config(noreplace) %{_sysconfdir}/%{name}/management/java.security.ciphers
447450
%config(noreplace) %{_sysconfdir}/%{name}/management/commons-logging.properties
Lines changed: 68 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,101 @@
11
# Licensed to the Apache Software Foundation (ASF) under one
22
# or more contributor license agreements. See the NOTICE file
3-
db.usage.maxActive=100
43
# distributed with this work for additional information
5-
6-
4+
# regarding copyright ownership. The ASF licenses this file
75
# to you under the Apache License, Version 2.0 (the
8-
# with the License. You may obtain a copy of the License at
96
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
109
# http://www.apache.org/licenses/LICENSE-2.0
11-
# software distributed under the License is distributed on an
12-
# regarding copyright ownership. The ASF licenses this file
10+
#
1311
# Unless required by applicable law or agreed to in writing,
14-
db.cloud.name=cloud
15-
db.cloud.password=ENC(vlzQjmqOV4s5q7n+S1OMbA==)
16-
# specific language governing permissions and limitations
17-
# KIND, either express or implied. See the License for the
18-
19-
#
20-
21-
22-
23-
# in which the management server(Tomcat) is running
12+
# software distributed under the License is distributed on an
2413
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
2516
# under the License.
26-
# management server clustering parameters, change cluster.node.IP to the machine IP address
2717

28-
# usage database tuning parameters
29-
30-
db.usage.maxWait=10000
31-
db.cloud.port=3306
32-
# High Availability And Cluster Properties
33-
db.usage.maxIdle=30
34-
# CloudStack database settings
18+
# management server clustering parameters, change cluster.node.IP to the machine IP address
19+
# in which the management server(Tomcat) is running
3520
cluster.node.IP=127.0.0.1
36-
db.cloud.testOnBorrow=true
37-
db.cloud.maxIdle=30
38-
db.cloud.autoReconnectForPools=true
39-
db.cloud.trustStore=
40-
region.id=1
4121
cluster.servlet.port=9090
22+
region.id=1
23+
24+
# CloudStack database settings
25+
db.cloud.username=cloud
26+
db.cloud.password=ENC(vlzQjmqOV4s5q7n+S1OMbA==)
4227
db.cloud.host=localhost
43-
db.cloud.url.params=prepStmtCacheSize=517&cachePrepStmts=true
28+
db.cloud.port=3306
29+
db.cloud.name=cloud
30+
4431
# CloudStack database tuning parameters
45-
db.usage.name=cloud_usage
46-
db.cloud.poolPreparedStatements=false
47-
db.ha.enabled=false
48-
db.cloud.keyStorePassphrase=vmops.com
49-
db.simulator.maxActive=250
50-
db.cloud.username=cloud
51-
db.usage.port=3306
32+
db.cloud.maxActive=250
33+
db.cloud.maxIdle=30
5234
db.cloud.maxWait=10000
53-
db.cloud.timeBetweenEvictionRunsMillis=40000
54-
db.cloud.keyStorePassword=
55-
# usage database settings
56-
db.cloud.queriesBeforeRetryMaster=5000
5735
db.cloud.validationQuery=SELECT 1
58-
db.usage.failOverReadOnly=false
59-
db.cloud.maxActive=250
60-
61-
db.cloud.useSSL=false
62-
db.usage.host=localhost
63-
db.cloud.initialTimeout=3600
64-
# Encryption Settings
65-
db.cloud.minEvictableIdleTimeMillis=240000
36+
db.cloud.testOnBorrow=true
6637
db.cloud.testWhileIdle=true
38+
db.cloud.timeBetweenEvictionRunsMillis=40000
39+
db.cloud.minEvictableIdleTimeMillis=240000
40+
db.cloud.poolPreparedStatements=false
41+
db.cloud.url.params=prepStmtCacheSize=517&cachePrepStmts=true
42+
6743
# CloudStack database SSL settings
68-
db.cloud.slaves=localhost,localhost
69-
db.simulator.maxIdle=30
44+
db.cloud.useSSL=false
7045
db.cloud.keyStore=
71-
db.cloud.encrypt.secret=ENC(zaGuSF5a4KyWayn2t0yyjDa0HjdToVtZ)
46+
db.cloud.keyStorePassword=
47+
db.cloud.trustStore=
48+
db.cloud.trustStorePassword=
49+
db.cloud.keyStorePassphrase=vmops.com
50+
51+
# Encryption Settings
7252
db.cloud.encryption.type=file
73-
db.cloud.failOverReadOnly=false
53+
db.cloud.encrypt.secret=ENC(zaGuSF5a4KyWayn2t0yyjDa0HjdToVtZ)
7454

75-
db.simulator.port=3306
55+
# usage database settings
7656
db.usage.password=ENC(cQEcN5aVucSYK+WUkPjDcw==)
7757
db.usage.username=cloud
78-
db.cloud.trustStorePassword=
79-
db.simulator.username=cloud
58+
db.usage.host=localhost
59+
db.usage.port=3306
60+
db.usage.name=cloud_usage
61+
62+
# usage database tuning parameters
63+
db.usage.maxActive=100
64+
db.usage.maxIdle=30
65+
db.usage.maxWait=10000
8066
db.usage.url.params=
81-
db.usage.initialTimeout=3600
8267

8368
# Simulator database settings
84-
db.cloud.reconnectAtTxEnd=true
85-
db.usage.autoReconnect=true
86-
#usage Database
87-
db.simulator.maxWait=10000
88-
# cloud stack Database
69+
db.simulator.username=cloud
8970
db.simulator.password=cloud
90-
db.usage.reconnectAtTxEnd=true
71+
db.simulator.host=localhost
72+
db.simulator.port=3306
73+
db.simulator.name=simulator
74+
db.simulator.maxActive=250
75+
db.simulator.maxIdle=30
76+
db.simulator.maxWait=10000
9177
db.simulator.autoReconnect=true
9278

79+
80+
# High Availability And Cluster Properties
81+
db.ha.enabled=false
9382
db.ha.loadBalanceStrategy=com.cloud.utils.db.StaticStrategy
83+
# cloud stack Database
84+
db.cloud.slaves=localhost,localhost
9485
db.cloud.autoReconnect=true
95-
db.simulator.host=localhost
96-
db.simulator.name=simulator
97-
db.usage.queriesBeforeRetryMaster=5000
86+
db.cloud.failOverReadOnly=false
87+
db.cloud.reconnectAtTxEnd=true
88+
db.cloud.autoReconnectForPools=true
89+
db.cloud.secondsBeforeRetryMaster=3600
90+
db.cloud.queriesBeforeRetryMaster=5000
91+
db.cloud.initialTimeout=3600
92+
93+
#usage Database
9894
db.usage.slaves=localhost,localhost
99-
db.usage.secondsBeforeRetryMaster=3600
95+
db.usage.autoReconnect=true
96+
db.usage.failOverReadOnly=false
97+
db.usage.reconnectAtTxEnd=true
10098
db.usage.autoReconnectForPools=true
101-
db.cloud.secondsBeforeRetryMaster=3600
99+
db.usage.secondsBeforeRetryMaster=3600
100+
db.usage.queriesBeforeRetryMaster=5000
101+
db.usage.initialTimeout=3600

python/lib/cloudutils/globalEnv.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ def __init__(self):
2222
self.svrMode = None
2323
#myCloud/Agent/Console
2424
self.agentMode = None
25+
#Tomcat6/Tomcat7
26+
self.svrConf = None
2527
#debug
2628
self.debug = False
2729
#management server IP

python/lib/cloudutils/serviceConfigServer.py

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -79,30 +79,43 @@ def checkHostName():
7979

8080
if not cmd.isSuccess():
8181
raise CloudInternalException(cmd.getErrMsg())
82-
82+
if not self.syscfg.env.svrConf == "Tomcat7":
8383
cfo = configFileOps("/etc/cloudstack/management/tomcat6.conf", self)
8484
cfo.add_lines("JAVA_OPTS+=\" -Djavax.net.ssl.trustStore=%s \""%keyPath)
8585
elif self.syscfg.env.svrMode == "HttpsServer":
86-
if not os.path.exists("/etc/cloudstack/management/server-ssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-ssl.conf"):
87-
raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-ssl.xml or /etc/cloudstack/management/tomcat6-ssl.conf, https enables failed")
88-
if os.path.exists("/etc/cloudstack/management/server.xml"):
89-
bash("rm -f /etc/cloudstack/management/server.xml")
90-
if os.path.exists("/etc/cloudstack/management/tomcat6.conf"):
91-
bash("rm -f /etc/cloudstack/management/tomcat6.conf")
92-
bash("ln -s /etc/cloudstack/management/server-ssl.xml /etc/cloudstack/management/server.xml")
93-
bash("ln -s /etc/cloudstack/management/tomcat6-ssl.conf /etc/cloudstack/management/tomcat6.conf")
86+
if self.syscfg.env.svrConf == "Tomcat7":
87+
if not os.path.exists("/etc/cloudstack/management/server7-ssl.xml"):
88+
raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server7-ssl.xml, https enable failed")
89+
if os.path.exists("/etc/cloudstack/management/server.xml"):
90+
bash("rm -f /etc/cloudstack/management/server.xml")
91+
bash("ln -s /etc/cloudstack/management/server7-ssl.xml /etc/cloudstack/management/server.xml")
92+
else:
93+
if not os.path.exists("/etc/cloudstack/management/server-ssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-ssl.conf"):
94+
raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-ssl.xml or /etc/cloudstack/management/tomcat6-ssl.conf, https enable failed")
95+
if os.path.exists("/etc/cloudstack/management/server.xml"):
96+
bash("rm -f /etc/cloudstack/management/server.xml")
97+
if os.path.exists("/etc/cloudstack/management/tomcat6.conf"):
98+
bash("rm -f /etc/cloudstack/management/tomcat6.conf")
99+
bash("ln -s /etc/cloudstack/management/server-ssl.xml /etc/cloudstack/management/server.xml")
100+
bash("ln -s /etc/cloudstack/management/tomcat6-ssl.conf /etc/cloudstack/management/tomcat6.conf")
94101
if not bash("iptables-save |grep PREROUTING | grep 6443").isSuccess():
95102
bash("iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 6443")
96103
else:
97-
if not os.path.exists("/etc/cloudstack/management/server-nonssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-nonssl.conf"):
98-
raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-nonssl.xml or /etc/cloudstack/management/tomcat6-nonssl.conf, https enables failed")
99-
if os.path.exists("/etc/cloudstack/management/server.xml"):
100-
bash("rm -f /etc/cloudstack/management/server.xml")
101-
if os.path.exists("/etc/cloudstack/management/tomcat6.conf"):
102-
bash("rm -f /etc/cloudstack/management/tomcat6.conf")
103-
bash("ln -s /etc/cloudstack/management/server-nonssl.xml /etc/cloudstack/management/server.xml")
104-
bash("ln -s /etc/cloudstack/management/tomcat6-nonssl.conf /etc/cloudstack/management/tomcat6.conf")
105-
104+
if self.syscfg.env.svrConf == "Tomcat7":
105+
if not os.path.exists("/etc/cloudstack/management/server7-nonssl.xml"):
106+
raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server7-nonssl.xml, https enable failed")
107+
if os.path.exists("/etc/cloudstack/management/server.xml"):
108+
bash("rm -f /etc/cloudstack/management/server.xml")
109+
bash("ln -s /etc/cloudstack/management/server7-nonssl.xml /etc/cloudstack/management/server.xml")
110+
else:
111+
if not os.path.exists("/etc/cloudstack/management/server-nonssl.xml") or not os.path.exists("/etc/cloudstack/management/tomcat6-nonssl.conf"):
112+
raise CloudRuntimeException("Cannot find /etc/cloudstack/management/server-nonssl.xml or /etc/cloudstack/management/tomcat6-nonssl.conf, https enable failed")
113+
if os.path.exists("/etc/cloudstack/management/server.xml"):
114+
bash("rm -f /etc/cloudstack/management/server.xml")
115+
if os.path.exists("/etc/cloudstack/management/tomcat6.conf"):
116+
bash("rm -f /etc/cloudstack/management/tomcat6.conf")
117+
bash("ln -s /etc/cloudstack/management/server-nonssl.xml /etc/cloudstack/management/server.xml")
118+
bash("ln -s /etc/cloudstack/management/tomcat6-nonssl.conf /etc/cloudstack/management/tomcat6.conf")
106119
bash("touch /var/run/cloudstack-management.pid")
107120
bash("chown cloud.cloud /var/run/cloudstack-management.pid")
108121
#distro like sl 6.1 needs this folder, or tomcat6 failed to start
@@ -116,7 +129,10 @@ def checkHostName():
116129
cfo.save()
117130

118131
try:
119-
self.syscfg.svo.disableService("tomcat6")
132+
if self.syscfg.env.svrConf == "Tomcat7":
133+
self.syscfg.svo.disableService("tomcat")
134+
else:
135+
self.syscfg.svo.disableService("tomcat6")
120136
except:
121137
pass
122138

0 commit comments

Comments
 (0)