This Script has ultimate goal to automate to one-step process for deploying the code onto WebLogic Development environment.
Now let me give you what I did in my experiment with deployment script, I let you assume that 'a_ejb.jar','a_adapter.jar','b_adapter.jar','c.war' are the deployable components. You may have different components may be target to different WebLogic server instances or clusters it is your choice.
Well this might be very lengthy you might feel too much!! but this is my first time trial which I made ...
On our WebLogic many logics works hahaaaaaaaaaaaaaaaa
http://ghattus.com/2007/01/01/wlst-startserver-re-visited/
Following comments archived from "WLSTBYPANI" post:
prasanth vasireddy said...
what are the argument to pass through this script..what are the deploy.properties file?.
#paniDeployment.sh [Optional] echo '***** WELCOME TO DEPLOYMENT SCRIPT *****' user=`echo $LOGNAME` echo 'APPLICATION DEPLOYMENT IS STARTING IN INSTANCE:' $user DHOME=/Home/domains/wd$LOGNAME/config WLHOST=`hostname` cd $DHOME WLPORT=`cat config.xml |grep listen-port|tr -s [:blank:] |tr " " "\n" |grep listen-port |cut -c14-17` URL='t3://'$WLHOST':'$WLPORT DENV=$HOME/domains/wd$LOGNAME/bin/setDomainEnv.sh . $DENV $* echo $CLASSPATH #calling the paniDeployment.py file java weblogic.WLST -loadProperties /Home/$user/.Admin/deploy.properties /Home/$user/.Admin/paniDeployment.py $user $URL$CLASSPATH
Now let me give you what I did in my experiment with deployment script, I let you assume that 'a_ejb.jar','a_adapter.jar','b_adapter.jar','c.war' are the deployable components. You may have different components may be target to different WebLogic server instances or clusters it is your choice.
Well this might be very lengthy you might feel too much!! but this is my first time trial which I made ...
On our WebLogic many logics works hahaaaaaaaaaaaaaaaa
#paniDeployment.py
import os
import time
import sys
from java.util import Date
from java.text import SimpleDateFormat
t = Date()
today=SimpleDateFormat("dd_MMM_HH:mm").format(Date())
user=sys.argv[1]
URL=sys.argv[2]
src="/home/"+user+"/CODE/"
bksrc="/home/"+user+"/CODE_"
dpath="/home/domains/wd"+user
ECODE='\033[0m \n'
G='\033[1;40;32m'
R='\033[1;40;31m'
deploylist=['a_ejb.jar','a_adapter.jar','b_adapter.jar','c.war']
def backup():
try:
#Creating the Backup with Date And Time
command = "cp -R "+src+" "+bksrc+today
os.system(command)
except:
print R+' Code Backup FAILED!! '+ECODE
print dumpStack()
def getCode():
try:
# GETTING THE Fresg Code from build location
os.system('scp user@hostname:/home/user/Code_Ioc/*.*ar '+src)
print G+' THE CODE COPIED SUCCESSFULLY '+ECODE
except:
print R+' THE CODE COPYING FAILED?!?!?'+ECODE
print dumpStack()
exit()
def conn():
try:
# CONNECTING TO THE SERVER ....
connect(userConfigFile=UCF, userKeyFile=UKF, url=URL)
except:
print R+' CONNECTION FAILED....',+ECODE
print dumpStack()
exit()
def editing():
edit()
startEdit()
def activating():
save()
activate()
def stoppingApp():
deploylist.reverse()
for s in deploylist:
try:
editing()
progress=stopApplication(s,timeout=360000)
progress.printStatus()
activating()
except:
print R+' FAILED TO STOP THE APPLICATION '+ECODE
print dumpStack()
print G+' APPLICATION STOPPED '+ECODE
def pUndeploy():
deploylist.reverse()
for s in deploylist:
try:
editing()
progress=undeploy(s, timeout=360000)
progress.printStatus()
activating()
except:
print R+' FAILED TO UNDEPLOY THE APPLICATION '+ECODE
print dumpStack()
print G+' APPLICATION UNDEPLOYED '+ECODE
# This module is optional
def clearCache():
try:
print G+' CLEARING THE CACHE '+ECODE
command = "rm -rf "+dpath+"/servers/"+user+"/tmp/*.*"
os.system(command)
print G+' CLEARED THE CACHE '+ECODE
except:
print R+' FAILED TO CLEAR CACHE '+ECODE
def pDeploy():
for s in deploylist:
try:
editing()
progress=deploy(s,src+s,target=user,timeout=360000)
progress.printStatus()
activating()
except:
print R+'FAILED TO DEPLOY THE APPLICATION'+ECODE
print dumpStack()
print G+' APPLICATION DEPLOYED '+ECODE
def startingApp():
for s in deploylist:
try:
editing()
startApplication(s,timeout=360000)
activating()
except:
print R+'FAILED TO START THE APPLICATION '+ECODE
print G+'APPLICATION STARTED SUCCESSFULLY '+ECODE
if __name__== "main":
backup()
getCode()
conn()
stoppingApp()
pUndeploy()
clearCache()
pDeploy()
startingApp()
print G+' ....DEPLOYMENET DONE...'+ECODE
###### End of pani Deployment.py file ###########
Satya (the original author of WLST) already wrote os.system usage in the following link: http://ghattus.com/2007/01/01/wlst-startserver-re-visited/
Following comments archived from "WLSTBYPANI" post:
prasanth vasireddy said...
what are the argument to pass through this script..what are the deploy.properties file?.