~ibmcharmers/charms/trusty/layer-ibm-platform-lsf-server/trunk

« back to all changes in this revision

Viewing changes to reactive/ibm-platform-lsf-server.sh

  • Committer: Kevin W. Monroe
  • Date: 2017-01-26 00:37:17 UTC
  • Revision ID: kevin.monroe@canonical.com-20170126003717-iyksv4q8p2gsg1ne
format, whitespace, and test updates

README:
- make consistent with other lsf charms
- whitespace and other formatting fixes

reactive:
- whitespace fixes
- remove superfluous '|| true' calls

tests:
- fix incorrect relation
- sentry on correct status
- skip deployment test since it requires private resource
- chmod tests.yaml to 644

Show diffs side-by-side

added added

removed removed

Lines of Context:
58
58
         cd /etc
59
59
         if grep -w "$ip_server $hostname_server" hosts
60
60
         then
61
 
             juju-log "IBM Platform LSF : Host file already updated"                                         
 
61
             juju-log "IBM Platform LSF : Host file already updated"
62
62
         else
63
 
             juju-log "IBM Platform LSF : Updating Host file"                                           
 
63
             juju-log "IBM Platform LSF : Updating Host file"
64
64
             echo "$ip_server $hostname_server" >> /etc/hosts
65
65
         fi
66
66
}
87
87
         ip_storage=$1
88
88
         juju-log "IBM Platform LSF : IP storage is : $ip_storage"
89
89
         if  [ -d $lsf_top ] ; then
90
 
            juju-log "IBM Platform LSF : LSF Directory already exists" 
 
90
            juju-log "IBM Platform LSF : LSF Directory already exists"
91
91
         else
92
 
            mkdir $lsf_top    
 
92
            mkdir $lsf_top
93
93
         fi
94
 
           
 
94
 
95
95
         if grep -q "$ip_storage:$lsf_top" /etc/fstab
96
96
         then
97
97
             juju-log "IBM Platform LSF : Entries already exist in /etc/fstab for mounting"
98
98
         else
99
 
             echo "$ip_storage:$lsf_top $lsf_top nfs rw 0 0" >> /etc/fstab 
 
99
             echo "$ip_storage:$lsf_top $lsf_top nfs rw 0 0" >> /etc/fstab
100
100
         fi
101
101
 
102
102
         mount -a || true
113
113
function createuser_conf(){
114
114
         # checking whether lsfadmin already exists or not
115
115
         cd /etc
116
 
         if grep -q "lsfadmin" passwd 
 
116
         if grep -q "lsfadmin" passwd
117
117
         then
118
118
             juju-log "IBM Platform LSF : User lsfadmin already exists"
119
119
         else
125
125
               return 0
126
126
             fi
127
127
         fi
128
 
       
 
128
 
129
129
         find_version_distr
130
130
         cd /etc
131
131
         if [[ "`grep "LSF_STARTUP_USERS" lsf.sudoers`" ]] && [[ "`grep "LSF_STARTUP_PATH" lsf.sudoers`" ]]; then
132
132
           juju-log "IBM Platform LSF : lsf.sudoers file already updated with values"
133
 
         else               
 
133
         else
134
134
           touch lsf.sudoers
135
135
           echo "LSF_STARTUP_PATH=$lsf_top/$lsf_version/$distribution_OS_type/etc" >> lsf.sudoers
136
136
           sed -i '1i LSF_STARTUP_USERS="lsfadmin"' lsf.sudoers
137
137
           chmod 600 lsf.sudoers
138
138
           juju-log "IBM Platform LSF : lsf.sudoers file updated."
139
 
         fi   
 
139
         fi
140
140
}
141
141
 
142
142
 
148
148
 
149
149
 
150
150
# When relation is established between LSF Storage and LSF Server
151
 
@when 'storage.available' 
 
151
@when 'storage.available'
152
152
@when_not 'ibm-platform-lsf-server.nfsclient.ready'
153
153
function configure_lsfserver(){
154
154
        juju-log "IBM Platform LSF : Getting connected to Storage Server and mounting of shared LSF installation files"
155
 
        ip=$(relation_call --state=storage.available private_address) || true 
 
155
        ip=$(relation_call --state=storage.available private_address)
156
156
        juju-log "IBM Platform LSF : IP of LSF Storage Server as $ip"
157
 
        hostname_storage=$(relation_call --state=storage.available get_hostname) || true
 
157
        hostname_storage=$(relation_call --state=storage.available get_hostname)
158
158
        juju-log "IBM Platform LSF : Hostname of LSF Storage Server as $hostname_storage"
159
159
        add_hostname
160
160
        nfs_sharelsf $ip
162
162
        # Set state that now NFS client is ready and files are mounted.
163
163
        juju-log "IBM Platform LSF : NFS Client is ready now and LSF Files have been shared."
164
164
        status-set maintenance "NFS client is ready and LSF Files shared"
165
 
        set_state 'ibm-platform-lsf-server.nfsclient.ready'          
 
165
        set_state 'ibm-platform-lsf-server.nfsclient.ready'
166
166
}
167
167
 
168
168
 
177
177
@when 'master.joined'
178
178
function send_hostname_master(){
179
179
         juju-log "IBM Platform LSF : Sending LSF Server Hostname to LSF Master"
180
 
         relation_call --state=master.joined set_hostname $hostname_server || true 
 
180
         relation_call --state=master.joined set_hostname $hostname_server
181
181
}
182
182
 
183
183
 
186
186
function configure_lsfserver_master(){
187
187
         count=0
188
188
         count1=0
189
 
         juju-log "IBM Platform LSF : Configuring LSF Server when LSF Master is ready" 
190
 
         ip_master=$(relation_call --state=master.MasterReConfigReady private_address) || true 
 
189
         juju-log "IBM Platform LSF : Configuring LSF Server when LSF Master is ready"
 
190
         ip_master=$(relation_call --state=master.MasterReConfigReady private_address)
191
191
         juju-log "IBM Platform LSF : IP of LSF master Server as $ip_master"
192
 
         hostname_master=$(relation_call --state=master.MasterReConfigReady get_hostname) || true
 
192
         hostname_master=$(relation_call --state=master.MasterReConfigReady get_hostname)
193
193
         juju-log "IBM Platform LSF : Hostname of LSF Master Server as $hostname_master"
194
 
         
 
194
 
195
195
         # First add the host details of LSF Master in /etc/hosts file before starting the LSF Deamons.
196
196
         for master_ip in $ip_master
197
197
         do
201
201
               cd /etc
202
202
               if grep -w "$master_ip $master_hostname" hosts
203
203
               then
204
 
                   juju-log "IBM Platform LSF : Host file already updated with host information of the LSF Server"                                         
 
204
                   juju-log "IBM Platform LSF : Host file already updated with host information of the LSF Server"
205
205
               else
206
 
                   juju-log "IBM Platform LSF : Updating Host file"                                           
 
206
                   juju-log "IBM Platform LSF : Updating Host file"
207
207
                   echo "$master_ip $master_hostname" >> /etc/hosts
208
208
               fi
209
209
             fi
211
211
           done
212
212
         count=$((count+1))
213
213
         count1=0
214
 
         done 
 
214
         done
215
215
         # Getting the flag value to indicate LSF Master has reconfigured itself or not.
216
 
         reconfigFlag_master=$(relation_call --state=master.MasterReConfigReady notify_server) || true 
 
216
         reconfigFlag_master=$(relation_call --state=master.MasterReConfigReady notify_server)
217
217
         for master_flag in $reconfigFlag_master
218
218
         do
219
219
          if [ "$master_flag" == "MasterReConfigReady" ]; then
220
220
              # start the lsf services on the server
221
 
              start_lsf   
222
 
              set_state 'ibm-platform-lsf-server.conf.ready'   
 
221
              start_lsf
 
222
              set_state 'ibm-platform-lsf-server.conf.ready'
223
223
              status-set active "LSF Server is ready"
224
224
          elif [ "$master_flag" == "MasterReConfigDone" ]; then
225
225
              # check lsf daemons are running or not, if not start lsf deamons
230
230
                  juju-log "IBM Platform LSF : LSF Daemons are already running"
231
231
              else
232
232
                  lsfstart
233
 
                  set_state 'ibm-platform-lsf-server.conf.ready'   
 
233
                  set_state 'ibm-platform-lsf-server.conf.ready'
234
234
                  status-set active "LSF Server is ready"
235
235
              fi
236
236
          fi
306
306
         # Remove entry from LSF.cluster file
307
307
         sed -i  '/'$hostname_server'/d' $lsf_top/conf/lsf.cluster.cluster1 || true
308
308
         remove_state 'ibm-platform-lsf-server.conf.ready'
309
 
         relation_call --state=master.departed dismiss_departed || true 
 
309
         relation_call --state=master.departed dismiss_departed
310
310
}
311
311
 
312
312
# When relation between LSF Storage Server and LSF Server is departed. If relation with LSF Master exists, first remove that then unmount the LSF Files.
313
 
@when_none 'ibm-platform-lsf-server.conf.ready'
314
313
@when 'storage.departing' 'ibm-platform-lsf-server.nfsclient.ready'
 
314
@when_not 'ibm-platform-lsf-server.conf.ready'
315
315
function nfsstorage_depart(){
316
316
         remove_serverhost
317
317
         mount_flag=`stat -f -L -c %T $lsf_top` || true
325
325
         else
326
326
             cd /home
327
327
             set +e
328
 
             umount -f -l $lsf_top 
 
328
             umount -f -l $lsf_top
329
329
             set -e
330
330
             juju-log " IBM Platform LSF : Unmounted the LSF installation folders, now LSF folders will not be accessible"
331
 
             sed -i  "\|$lsf_top|d" /etc/fstab     
 
331
             sed -i  "\|$lsf_top|d" /etc/fstab
332
332
             remove_state 'ibm-platform-lsf-server.nfsclient.ready'
333
333
         fi
334
334
}