troubleshooting Question

Mapping of modules to servers in jython scripting , Here is the Script which I am running ...it is running fyn but the thing is mapping of modules to servers is not talking place properly ...mapping i

Avatar of gowroju
gowroju asked on
Python
19 Comments1 Solution5271 ViewsLast Modified:
# Purpose --- To deploy EAR file on Server
# Date   ----  2/11/2011
#version   --- 1.0
import sys
from time import sleep

def DeployOnServer(earlocation, appName, nodeName, serverName, virtualHost, webNode1, webSrv1):
   #--------------------------------------------------------------
   # do some sanity checking
   #     -- do we have a node by this name?
   #--------------------------------------------------------------
   cellName = AdminControl.getCell()
   print cellName
   node = AdminConfig.getid("/Node:" + nodeName + "/")
   print " checking for existence of node " + nodeName
   if len(node) == 0:
      print " Error -- node not found for name " + nodeName
      return
   else:
      print " "+nodeName+" does exists so deployment process will start "
   #---------------------------------------------------------------------------------------
   # Here we specify ear file location and server where we wish to deploy the ear file
   #----------------------------------------------------------------------------------------
   defapp = earlocation
   servOpt1 = "WebSphere:cell=" + cellName + ",node=" + nodeName + ",server=" + serverName
   servOpt2 = "+WebSphere:cell=" + cellName + ",node=" + webNode1 + ",server=" + webSrv1
   servOpt = servOpt1+servOpt2
   serv = ["-target", servOpt]
#---------------------------------------------------------
#  print "-------------------------------------------------------------"
#  print "These are the options we are passing to deploy the EAR file."
#  print " -------------------------------------------------------------"

   nameOpt = ["-appname", appName]
   nodeOpt = ["-node", nodeName]
   serverOpt1 = ["-server", serverName]

   mapVhOptValus = [[".*",".*", virtualHost]]
   mapVhOpt = ["-MapWebModToVH", mapVhOptValus]
   appOptions = []
   appOptions.extend(nameOpt)
   appOptions.extend(nodeOpt)
   appOptions.extend(serverOpt1)
   appOptions.extend(mapVhOpt)
   print appOptions
   AdminApp.install(defapp, appOptions)

   #---------------------------------------------------------
   # Save all the changes
   #---------------------------------------------------------
   print "Deploy: saving the configuration"
   AdminConfig.save()
   sleep(20)
#----------------------------------------------------------------------
# check if the application is ready to start. If ready then start it
#------------------------------------------------------------------------
def startAppOnServer():
   appready = AdminApp.isAppReady(appName)
   print appready
   if appready == 'false':
                sleep(40)
                appready = AdminApp.isAppReady(appName)
                print appready
   else:
                print "starting the application "+appName+" on "+serverName+" "
                appManager = AdminControl.queryNames("type=ApplicationManager,process="+ serverName +",*")
                if appManager == "":
                        print "Please make sure whether Application Server is up and running before starting the applicaiton "
                        print " Or There could be something wrong with installated EAR file "
                AdminControl.invoke(appManager, 'startApplication', appName)
                appstate = AdminControl.completeObjectName("type=Application,name="+appName+",*")
                if appstate != "":
                        print ""+ appName +" started "

# ----------------------------------------------------------------------------------------------------------------------------
# This function verifies whether Application is already deployed or not. If already deployed it will be uninstalled first
# -----------------------------------------------------------------------------------------------------------------------------
def appexist():
   print " checking for the "+appName+" applicaiton whether it is already exists or not"
   apps = AdminApp.list().split(lineSeparator)
   for applist in apps:
    if applist == appName:
        print "Application is already installed so It will be uninstalled first "
        AdminApp.uninstall(appName)
        AdminConfig.save()
    else:
        print " ------------------------------------------------"
        print " "+appName+" doesn't exists now so it will be deployed "


#----------------------------------------------------------------------------------------
#Main codes start here....
# ----------------------------------------------------------------------------------------
if (len(sys.argv) !=7):
        print " Please enter correct arguments "
        print " ex: DeployEAROnServer.py /usr/IBM/AppServer/installableApps/sample.ear sample mynode server1 virtualHost webserverNode webserver"
else:
        earlocation = sys.argv[0]
        appName = sys.argv[1]
        nodeName = sys.argv[2]
        serverName = sys.argv[3]
        virtualHost = sys.argv[4]
        webNode1 = sys.argv[5]
        webSrv1 = sys.argv[6]
        print "EARfilelocation :" +earlocation
        print "Application Name : " +appName
        print "Node Name : " +nodeName
        print "Server Name : " +serverName
        print "Virtual Host :" +virtualHost
        print "WebServerNode :" +webNode1
        print "WebServer : " +webSrv1
        appexist()
        DeployOnServer(earlocation, appName, nodeName, serverName, virtualHost, webNode1, webSrv1)
        execfile('/usr/IBM/WebSphere/wasadm/scripts/jython/syncNode.py')
startAppOnServer()
ASKER CERTIFIED SOLUTION
HonorGod
Software Engineer

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 19 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 19 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros