4
source charms.reactive.sh
6
ARCHITECTURE=`uname -m`
7
ARCHIVE_DIR=$CHARM_DIR/files/archives
8
AUTH_KEY_FILE=/root/.ssh/authorized_keys
9
IM_INSTALL_PATH=/opt/IBM/InstallationManager
10
LIBERTY_INSTALL_PATH=/opt/ibm/wlp
11
MobileFirstServer_PATH=/opt/ibm/MobileFirst_Platform_Server_liberty
14
# Create a workight server.
15
create_worklightserver()
17
if [ -d $LIBERTY_INSTALL_PATH/bin ]; then
18
juju-log "IBM MFS: Creating worklight server"
19
#Create worklight server
20
if [ -d $LIBERTY_INSTALL_PATH/usr/servers/worklight ]; then
21
juju-log "IBM MFS: server is already there"
23
$LIBERTY_INSTALL_PATH/bin/server create worklight
24
juju-log "IBM MFS: created server sucessfully"
25
cd $LIBERTY_INSTALL_PATH/usr/servers
26
juju-log "IBM MFS: Editing http port to $httpport and https port to $httpsport in server.xml"
27
sed -i 's/9080/'$1'/' $LIBERTY_INSTALL_PATH/usr/servers/worklight/server.xml
28
sed -i 's/9443/'$2'/' $LIBERTY_INSTALL_PATH/usr/servers/worklight/server.xml
31
juju-log "IBM MFS: Websphere Liberty is not installed"
36
remove_worklightserver()
38
if [ -d $LIBERTY_INSTALL_PATH/usr/servers/worklight ]; then
39
juju-log "IBM MFS: server is already there"
40
sudo rm -rf $LIBERTY_INSTALL_PATH/usr/servers/worklight
41
juju-log "IBM MFS: Worklight Server deleted"
44
#Clean the old installations if any
45
clean_old_installations()
47
juju-log "Clean old installations if any before installations"
48
#Uninstall if already present
49
if [ -d $MobileFirstServer_PATH/WorklightServer ]; then
50
juju-log "Editing uninstall response file with charmdir"
51
sed -i 's|/root/Installfiles/MobileFirst_Platform_Server/disk1|'$CHARM_DIR'/files/archives/MobileFirst_Platform_Server/disk1|g' $CHARM_DIR/files/archives/uninstall-worklight-responsefile.xml
52
cd $IM_INSTALL_PATH/eclipse/tools
53
sudo ./imcl input $CHARM_DIR/files/archives/uninstall-worklight-responsefile.xml
54
rm -rf $MobileFirstServer_PATH
55
juju-log "IBM MFS: MobileFirst Server software uninstalled"
62
get_db_values_from_interface()
64
db2_port=$(relation_call --state=mobilefirstserverdb.ready get_db2_port) || true
65
db2_instance=$(relation_call --state=mobilefirstserverdb.ready get_db2_instance_name) || true
66
db2_path=$(relation_call --state=mobilefirstserverdb.ready get_db2_path) || true
67
hostname=$(relation_call --state=mobilefirstserverdb.ready get_db2_hostname) || true
68
dbusername=$(relation_call --state=mobilefirstserverdb.ready get_dbusername) || true
69
dbuserpw=$(relation_call --state=mobilefirstserverdb.ready get_dbuserpw) || true
70
dbs_created=$(relation_call --state=mobilefirstserverdb.ready get_db2_dbnames) || true
74
#Edit MobileFirst Server install responsefile with Liberty and db2 values
77
juju-log "IBM MFS: Editing response file"
78
get_db_values_from_interface
80
PAK_DIR="$CHARM_DIR/../resources/ibm_mobilefirstserver_installer"
81
PAK_NAME="$PAK_DIR/ibm_worklight_installer.zip"
82
sed -i 's|/root/IBM/IBMIMShared|/opt/ibm/IBMIMShared|g' $CHARM_DIR/files/archives/install-MFS-responsefile.xml
83
sed -i 's|/root/Installfiles/MobileFirst_Platform_Server/disk1|'$PAK_DIR'/MobileFirst_Platform_Server/disk1|g' $CHARM_DIR/files/archives/install-MFS-responsefile.xml
84
sed -i 's/APPCNTRA/APPCNTR/' $CHARM_DIR/files/archives/install-MFS-responsefile.xml
85
sed -i 's/50000/'$db2_port'/' $CHARM_DIR/files/archives/install-MFS-responsefile.xml
86
sed -i 's/db2inst1/'$dbusername'/' $CHARM_DIR/files/archives/install-MFS-responsefile.xml
87
sed -i 's/localhost/'$hostname'/' $CHARM_DIR/files/archives/install-MFS-responsefile.xml
88
oldpasswd=`cat $CHARM_DIR/files/archives/install-MFS-responsefile.xml | grep "user.database.db2.appcenter.password" | cut -d"=" -f3 | cut -d"/" -f1`
89
oldpasswd=`echo $oldpasswd | tr -d "'"`
90
sed -i s/$oldpasswd/$dbuserpw/g $CHARM_DIR/files/archives/install-MFS-responsefile.xml
92
sed -i 's|/opt/ibm/db2/V10.5/java/db2jcc.jar|'$CHARM_DIR'/files/db2jcc4.jar|g' $CHARM_DIR/files/archives/install-MFS-responsefile.xml
93
sed -i 's/waserver1/worklight/' $CHARM_DIR/files/archives/install-MFS-responsefile.xml
94
sed -i 's|/root/IBM/WebSphere/wlp|'$LIBERTY_INSTALL_PATH'|g' $CHARM_DIR/files/archives/install-MFS-responsefile.xml
95
juju-log "IBM MFS:Response file edited"
98
#Edit configure_liberty_db2_file
99
edit_configure_liberty_db2_file()
101
juju-log "IBM MFS: Editing configure_liberty_db2.xml file"
102
get_db_values_from_interface
104
cp $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2-orig.xml $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
106
sed -i '/"database.db2.wladmin.password"/c\<property name="database.db2.wladmin.password" value="'$dbuserpw'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
107
sed -i '/"database.db2.worklight.password"/c\<property name="database.db2.worklight.password" value="'$dbuserpw'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
108
sed -i '/"database.db2.worklightreports.password"/c\<property name="database.db2.worklightreports.password" value="'$dbuserpw'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
109
sed -i '/"worklight.server.install.dir"/c\<property name="worklight.server.install.dir" value="'$MobileFirstServer_PATH'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
110
sed -i '/"worklight.contextroot"/c\<property name="worklight.contextroot" value="/worklight"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
111
sed -i '/"database.db2.host"/c\<property name="database.db2.host" value="'$hostname'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
112
sed -i '/"database.db2.port"/c\<property name="database.db2.port" value="'$db2_port'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
113
sed -i '/"database.db2.instance"/c\<property name="database.db2.instance" value="'$db2_instance'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
114
sed -i '/"database.db2.driver.dir"/c\<property name="database.db2.driver.dir" value="'$CHARM_DIR'/files"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
115
sed -i '/"database.db2.wladmin.dbname"/c\<property name="database.db2.wladmin.dbname" value="WRKLGHT"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
116
sed -i '/"database.db2.wladmin.schema"/c\<property name="database.db2.wladmin.schema" value="WLADMIN"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
117
sed -i '/"database.db2.wladmin.username"/c\<property name="database.db2.wladmin.username" value="'$dbusername'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
118
sed -i '/"database.db2.worklight.dbname"/c\<property name="database.db2.worklight.dbname" value="WRKLGHT"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
119
sed -i '/"database.db2.worklight.schema"/c\<property name="database.db2.worklight.schema" value="WRKLGHT"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
120
sed -i '/"database.db2.worklight.username"/c\<property name="database.db2.worklight.username" value="'$dbusername'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
121
sed -i '/"database.db2.worklightreports.dbname"/c\<property name="database.db2.worklightreports.dbname" value="WRKLGHT"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
122
sed -i '/"database.db2.worklightreports.schema"/c\<property name="database.db2.worklightreports.schema" value="WLREPORT"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
123
sed -i '/"database.db2.worklightreports.username"/c\<property name="database.db2.worklightreports.username" value="'$dbusername'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
124
sed -i '/"appserver.was.installdir"/c\<property name="appserver.was.installdir" value="'$LIBERTY_INSTALL_PATH'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
125
sed -i '/"appserver.was85liberty.serverInstance"/c\<property name="appserver.was85liberty.serverInstance" value="worklight"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
126
sed -i '/"worklight.project.war.file"/c\<property name="worklight.project.war.file" value="'$CHARM_DIR'/files/archives/test.war"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml
129
update_usename_serverxml_file()
131
password=`config-get worklight_passwd`
132
username=`config-get worklight_user`
133
juju-log "IBM MFS: Username is $username, Password is $password"
135
juju-log "IBM MFS: Editing server.xml file for updated credentials"
136
cp $LIBERTY_INSTALL_PATH/usr/servers/worklight/server_org.xml $LIBERTY_INSTALL_PATH/usr/servers/worklight/server.xml
138
sed -i '/user name="admin"/c\<user name="'$username'" password="'$password'"/>' $LIBERTY_INSTALL_PATH/usr/servers/worklight/server.xml
139
sed -i '/member name="appcenteradmin"/c\<member name="'$username'"/>' $LIBERTY_INSTALL_PATH/usr/servers/worklight/server.xml
143
#Edit create_database_db2_file
144
edit_create_database_db2_file()
146
juju-log "IBM MFS: Editing create-database-db2.xml file"
147
get_db_values_from_interface
150
sed -i '/"database.db2.admin.password"/c\<property name="database.db2.admin.password" value="'$dbuserpw'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
151
sed -i '/"database.db2.wladmin.password"/c\<property name="database.db2.wladmin.password" value="'$dbuserpw'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
152
sed -i '/"database.db2.worklight.password"/c\<property name="database.db2.worklight.password" value="'$dbuserpw'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
153
sed -i '/"database.db2.worklightreports.password"/c\<property name="database.db2.worklightreports.password" value="'$dbuserpw'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
154
sed -i '/"worklight.server.install.dir"/c\<property name="worklight.server.install.dir" value="'$MobileFirstServer_PATH'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
155
sed -i '/"database.db2.host"/c\<property name="database.db2.host" value="'$hostname'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
156
sed -i '/"database.db2.port"/c\<property name="database.db2.port" value="'$db2_port'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
157
sed -i '/"database.db2.instance"/c\<property name="database.db2.instance" value="'$db2_instance'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
158
sed -i '/"database.db2.driver.dir"/c\<property name="database.db2.driver.dir" value="'$CHARM_DIR'/files"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
159
sed -i '/"database.db2.admin.username"/c\<property name="database.db2.admin.username" value="'$dbusername'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
160
sed -i '/"database.db2.wladmin.dbname"/c\<property name="database.db2.wladmin.dbname" value="WRKLGHT"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
161
sed -i '/"database.db2.wladmin.schema"/c\<property name="database.db2.wladmin.schema" value="WLADMIN"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
162
sed -i '/"database.db2.wladmin.username"/c\<property name="database.db2.wladmin.username" value="'$dbusername'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
163
sed -i '/"database.db2.worklight.dbname"/c\<property name="database.db2.worklight.dbname" value="WRKLGHT"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
164
sed -i '/"database.db2.worklight.schema"/c\<property name="database.db2.worklight.schema" value="WRKLGHT"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
165
sed -i '/"database.db2.worklight.username"/c\<property name="database.db2.worklight.username" value="'$dbusername'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
166
sed -i '/"database.db2.worklightreports.dbname"/c\<property name="database.db2.worklightreports.dbname" value="WRKLGHT"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
167
sed -i '/"database.db2.worklightreports.schema"/c\<property name="database.db2.worklightreports.schema" value="WLREPORT"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
168
sed -i '/"database.db2.worklightreports.username"/c\<property name="database.db2.worklightreports.username" value="'$dbusername'"/>' $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml
171
#Backup the configuration files to reuee it later it required.
172
backup_configuration_files()
174
cp $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2.xml $MobileFirstServer_PATH/WorklightServer/configuration-samples/configure-liberty-db2-orig.xml
175
cp $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2.xml $MobileFirstServer_PATH/WorklightServer/configuration-samples/create-database-db2-orig.xml
179
#Post install configurations.
180
postworklightinstall_configuration()
183
juju-log "IBM MFS: Editing configure-liberty-db2.xml file"
184
edit_configure_liberty_db2_file
185
juju-log "IBM MFS: Editing create-database-db2.xml file"
186
edit_create_database_db2_file
188
juju-log "IBM MFS: Running ant commands"
189
cd $MobileFirstServer_PATH/WorklightServer/configuration-samples
190
#Run create admdatabases command
191
ant -f create-database-db2.xml admdatabases
192
if [ $? -eq 0 ]; then
193
juju-log "IBM MFS: ant create admddatabase command ran successfully"
195
juju-log "IBM MFS: ant create admddatabase command failed to run"
199
#Run create-database-db2.xml databases command
200
ant -f create-database-db2.xml databases
201
if [ $? -eq 0 ]; then
202
juju-log "IBM MFS: ant create database command ran successfully"
204
juju-log "IBM MFS: ant create database command failed to run"
208
#Run configure admdatabases command
209
ant -f configure-liberty-db2.xml admdatabases
210
if [ $? -eq 0 ]; then
211
juju-log "IBM MFS: ant configure liberty admddatabase command ran successfully"
213
juju-log "IBM MFS: ant configure liberty admddatabase command failed to run"
216
#Run configure databases command
217
ant -f configure-liberty-db2.xml databases
218
if [ $? -eq 0 ]; then
219
juju-log "IBM MFS: ant configure liberty database command ran successfully"
221
juju-log "IBM MFS: ant configure liberty database command failed to run"
225
#Run adminstall command
226
ant -f configure-liberty-db2.xml adminstall
227
if [ $? -eq 0 ]; then
228
juju-log "IBM MFS: ant adminstall command ran successfully"
230
juju-log "IBM MFS: ant adminstall command failed to run"
234
#Run install command to configure sample runtime environment
235
ant -f configure-liberty-db2.xml install
236
if [ $? -eq 0 ]; then
237
juju-log "IBM MFS: ant configure install command ran successfully"
239
juju-log "IBM MFS: ant configure install command failed to run"
245
#Restart liberty server
246
restart_worklightserver()
248
if [ -d $LIBERTY_INSTALL_PATH/usr/servers/worklight ]; then
249
juju-log "IBM MFS: Restarting server"
251
$LIBERTY_INSTALL_PATH/bin/server stop worklight
253
juju-log "IBM MFS: Websphere Liberty stopped successfully"
255
juju-log "IBM MFS: Server not running"
258
$LIBERTY_INSTALL_PATH/bin/server start worklight
260
juju-log "IBM MFS: Websphere Liberty started successfully"
261
set_state 'ibm-mobilefirst-server.website.started'
263
juju-log "IBM MFS: Server is running"
264
set_state 'ibm-mobilefirst-server.website.started'
268
juju-log "IBM MFS: server restarted successfully"
272
@when 'website.available'
273
@when_not 'ibm-mobilefirst-server.website.configured'
274
function capture_portdetials(){
275
juju-log "IBM MFS: Website is available"
276
#Get the port number from WLP and check whether the port is free and can be used. If not free, use the next one.
277
hostname=`relation-get hostname`
278
juju-log "IBM MFS: Hostname is $hostname"
279
httpport=`relation-get port`
280
httpsport=`relation-get httpsport`
281
juju-log "IBM MFS: Http post = $httpport , Https port = $httpsport"
284
result=`netstat -an | grep $httpport | cut -d"*" -f1`
285
if [ "$result" != "" ]; then
286
httpport=$((httpport+1))
293
result=`netstat -an | grep $httpsport | cut -d"*" -f1`
294
if [ "$result" != "" ]; then
295
httpsport=$((httpsport+1))
300
echo "HttpPort:$httpport" > portdetails.txt
301
echo "HttpsPort:$httpsport" >> portdetails.txt
303
set_state 'ibm-mobilefirst-server.website.configured'
307
@when 'website.available'
308
@when 'ibm-mobilefirst-server.installed'
309
@when_not 'ibm-mobilefirst-server.website.started'
310
function start_worklight_server(){
311
if [ -d $LIBERTY_INSTALL_PATH/usr/servers/worklight ]; then
313
$LIBERTY_INSTALL_PATH/bin/server start worklight
315
juju-log "IBM MFS: Websphere Liberty started successfully"
316
set_state 'ibm-mobilefirst-server.website.started'
323
@when 'website.available'
324
@when 'ibm-mobilefirst-server.website.configured'
325
@when 'ibm-mobilefirst-server.mobilefirstserverdb.configured'
326
@when_not 'ibm-mobilefirst-server.installed'
328
juju-log "IBM MFS: License accepted"
329
remove_state 'ibm-mobilefirst-server.uninstalled'
331
httpport=`cat portdetails.txt | grep "HttpPort" | cut -d":" -f2`
332
httpsport=`cat portdetails.txt | grep "HttpsPort" | cut -d":" -f2`
333
juju-log "httpport = $httpport $httpsport"
334
# Get the installable resource
335
juju-log "IBM MFS: Fetching the ibm_mobilefirst-server_installer resource"
336
status-set maintenance "fetching the ibm_mobilefirst-server_installer resource"
337
cfg_worklight_pkg_name=`resource-get 'ibm_mobilefirstserver_installer' || echo unavailable`
338
# If we don't have a package, report blocked status; we can't proceed.
339
if [ "$cfg_worklight_pkg_name" = "unavailable" ]; then
340
juju-log "IBM MFS: missing required ibm_mobilefirst-server_installer resource"
341
status-set blocked "missing required ibm_mobilefirst-server_installer resource"
344
# Check for empty packages from Charm store
345
ibm_worklight_empty=`file $cfg_worklight_pkg_name | { grep -q empty && echo "True"; } || echo "False"`
346
if [ "$ibm_worklight_empty" = "True" ]; then
347
juju-log "IBM IM: no ibm_worklight to install"
348
status-set active "ready"
352
juju-log "IBM MFS: using $cfg_worklight_pkg_name as the ibm_mobilefirst-server_installer resource"
353
PKG_DIR=`dirname $cfg_worklight_pkg_name`
354
juju-log "Archive dir is $PKG_DIR"
357
status-set maintenance "Extracting IBM MobileFirst Server package"
358
rm -rf MobileFirst_Platform_Server*
361
juju-log "IBM MFS: Unable to extract the MFS package content. Verify whether the package is corrupt."
362
status-set blocked "IBM MobileFirst Server package is corrupt"
363
#Remove corrupt archive file
364
rm -rf $PKG_DIR/*.zip
367
if [ -d $PKG_DIR/MobileFirst_Platform_Server/disk1 ]; then
368
juju-log "IBM MFS: MobileFirst server Packages are available for installation."
369
#Create worklight server
370
create_worklightserver $httpport $httpsport
371
#Edit response file for installation
373
#edit_post_install_file
374
juju-log "IBM MFS: Installing MobileFirst Server package."
375
status-set maintenance "Installing IBM MobileFirst Server software"
376
cd $IM_INSTALL_PATH/eclipse/tools
377
./imcl input $CHARM_DIR/files/archives/install-MFS-responsefile.xml -acceptLicense -showProgress
378
juju-log "IBM MFS: Installation of MobileFirst server complete."
379
status-set active "Installed IBM MobileFirst Server"
380
#Check install successful or not
381
if [ -d $MobileFirstServer_PATH/WorklightServer ]; then
382
juju-log "IBM MFS: Install Sucessful and moving to post install configuration"
383
backup_configuration_files
384
status-set maintenance "Running Post install configuration steps for IBM MobileFirst Server"
385
postworklightinstall_configuration
386
juju-log "IBM MFS: Post install configuration is done"
387
status-set maintenance "Post install configuration is done"
388
#Restart worklight server
389
restart_worklightserver
390
set_state 'ibm-mobilefirst-server.installed'
391
#Taking a backup of WLP server.xml file
392
cp $LIBERTY_INSTALL_PATH/usr/servers/worklight/server.xml $LIBERTY_INSTALL_PATH/usr/servers/worklight/server_org.xml
393
update_usename_serverxml_file
394
status-set active "IBM MFS Installed and is Ready"
399
juju-log "IBM MFS: Install failed"
400
status-set blocked "IBM MobileFirst Server install failed"
404
juju-log "IBM MFS: MobileFirst server Packages are missing. Please check README file."
405
status-set blocked "IBM MobileFirst server Packages are missing"
410
@when 'mobilefirstserverdb.connected'
411
@when_not 'mobilefirstserverdb.ready'
412
function send_sshkeys_mobilefirstserverdbs(){
414
if [ ! -f $SSH_PATH/id_rsa.pub ]; then
415
juju-log "IBM MFS: Setting up SSH keys."
416
ssh-keygen -t rsa -f $SSH_PATH/id_rsa -N ''
418
key="`cat $SSH_PATH/id_rsa.pub`"
419
mobilefirstserverdbnames="APPCNTR,WRKLGHT"
420
juju-log "DB names is $mobilefirstserverdbnames"
421
# To pass the SSH key and DB names to DB2 charm
422
relation_call --state=mobilefirstserverdb.connected set_ssh_keys "$key" || true
423
relation_call --state=mobilefirstserverdb.connected set_dbs $mobilefirstserverdbnames || true
426
@when 'mobilefirstserverdb.ready'
427
@when_not 'ibm-mobilefirst-server.mobilefirstserverdb.configured'
428
function configure_mobilefirstserverdb(){
430
get_db_values_from_interface
432
if [ -z "$db2_port" ]; then
433
juju-log "No data sent yet"
437
get_db_values_from_interface
439
juju-log "IBM MFS: Got the db2 values : $db2_path $hostname $dbusername $dbuserpw $dbs_created"
440
juju-log "IBM MFS: Copying files from remote - Directory: $db2_path Host:$hostname"
441
status-set maintenance "Copying mobilefirstserverdb2 jar files from remote DB2 machine"
442
scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@$hostname:$db2_path/V10.5/java/db2jcc.jar $CHARM_DIR/files || true
443
scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@$hostname:$db2_path/V10.5/java/db2jcc4.jar $CHARM_DIR/files || true
444
scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@$hostname:$db2_path/V10.5/java/db2jcc_license_*.jar $CHARM_DIR/files || true
445
juju-log "IBM MFS: Copied the files to $CHARM_DIR/files"
446
#Updating the passwords for db connection in the required wlp files if its changed and restarting the worklight server. Don't do this if MFS is not installed.
447
if [ -d $MobileFirstServer_PATH/WorklightServer ]; then
448
#Update the password if changed in server.xml file
449
newpassword=`cat $LIBERTY_INSTALL_PATH/usr/servers/worklight/server.xml | grep "WRKLGHT" | grep "WLADMIN" | cut -d"}" -f2 | cut -d" " -f1 | tr -d '"'`
450
oldpassword=`cat $LIBERTY_INSTALL_PATH/usr/servers/worklight/server.xml | grep "APPCNTR" | cut -d"}" -f2 | cut -d" " -f1 | tr -d '"'`
451
sed -i s/$oldpassword/$newpassword/g $LIBERTY_INSTALL_PATH/usr/servers/worklight/server.xml
452
status-set maintenance "Server.xml file updated"
454
set_state 'ibm-mobilefirst-server.mobilefirstserverdb.configured'
458
@when 'mobilefirstserverdb.departed'
459
function stop_mobilefirstserverdb2(){
460
# If relation with db2 is broken as the DBs related to worklight will be deleted and the login credentilas for the consoles will be lost.
461
# Without having the login info from the DB,the user cannot login. The user needs to remove the Mobile First server service and deploy it again.
462
juju-log "IBM MFS: Removing the jar files when relation is broken"
463
rm -rf $CHARM_DIR/files/db2jcc.jar $CHARM_DIR/files/db2jcc4.jar $CHARM_DIR/files/db2jcc_license_*.jar
464
juju-log "IBM MFS: JAR files removed"
465
if [ -d $LIBERTY_INSTALL_PATH/usr/servers/worklight ]; then
466
server_status=`ps -ef | grep worklight | grep $LIBERTY_INSTALL_PATH/bin/tools/ws-server.jar | awk '{print $(NF-1),$NF}'`
467
if [ "$server_status" == "$LIBERTY_INSTALL_PATH/bin/tools/ws-server.jar worklight" ]; then
468
juju-log "IBM MFS: stopping worklight server"
469
$LIBERTY_INSTALL_PATH/bin/server stop worklight
471
juju-log "IBM MFS: worklight server stopped sucessfully"
472
remove_state 'ibm-mobilefirst-server.website.started'
473
juju-log "Copying the org server.xml file back in website broken fn"
475
juju-log "IBM MFS: Failed to stop worklight server"
479
clean_old_installations
480
remove_worklightserver
481
remove_state 'ibm-mobilefirst-server.installed'
482
remove_state 'ibm-mobilefirst-server.mobilefirstserverdb.configured'
484
juju-log "IBM MFS: Worklight server does not exist"
489
@when 'website.departed'
490
function stop_worklight_server(){
491
#If relation between wlp and worklight is broken( or when MobileFirst Server service is removed) , uninstalling worklight.
492
#Otherwise if we set the relation again or deploy MobileFirst server again, the installation goes wrong with traces of old files present
493
juju-log "IBM MFS: In website departed function"
494
if [ -d $LIBERTY_INSTALL_PATH/usr/servers/worklight ]; then
495
server_status=`ps -ef | grep worklight | grep $LIBERTY_INSTALL_PATH/bin/tools/ws-server.jar | awk '{print $(NF-1),$NF}'`
496
if [ "$server_status" == "$LIBERTY_INSTALL_PATH/bin/tools/ws-server.jar worklight" ]; then
497
juju-log "IBM MFS: stopping worklight server"
498
$LIBERTY_INSTALL_PATH/bin/server stop worklight
500
juju-log "IBM MFS: worklight server stopped sucessfully"
501
remove_state 'ibm-mobilefirst-server.website.started'
502
juju-log "Copying the org server.xml file back in website broken fn"
504
juju-log "IBM MFS: Failed to stop worklight server"
508
clean_old_installations
509
remove_worklightserver
510
remove_state 'ibm-mobilefirst-server.installed'
511
remove_state 'ibm-mobilefirst-server.mobilefirstserverdb.configured'
513
juju-log "IBM MFS: Worklight server does not exist"
518
@when_not_all 'config.default.worklight_user' 'config.default.worklight_passwd'
519
@when_any 'config.changed.worklight_user' 'config.changed.worklight_passwd'
520
function create_new_userpassword(){
521
# Change only if worklight is installed
522
if [ -d $LIBERTY_INSTALL_PATH/usr/servers/worklight ]; then
523
juju-log "Creating new User/Password"
524
status-set active "Updating User Credentials"
525
update_usename_serverxml_file
526
status-set active "IBM MFS Updated"
531
reactive_handler_main