| """ |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| """ |
| import sys |
| |
| def getCellName(): |
| """Return the name of the cell connected to""" |
| return AdminControl.getCell() |
| |
| def getNodeName(): |
| """Return the name of the node connected to""" |
| return AdminControl.getNode() |
| |
| def startApplicationOnServer(appName,serverName): |
| """Start the named application on one server""" |
| print "startApplicationOnServer: Entry. appname=%s servername=%s" % ( appName,serverName ) |
| cellName = getCellName() |
| nodeName = getNodeName() |
| # Get the application manager |
| appManager = AdminControl.queryNames('cell=%s,node=%s,type=ApplicationManager,process=%s,*' %(cellName,nodeName,serverName)) |
| print "startApplicationOnServer: appManager=%s" % ( repr(appManager) ) |
| # start it |
| rc = AdminControl.invoke(appManager, 'startApplication', appName) |
| print "startApplicationOnServer: Exit. rc=%s" % ( repr(rc) ) |
| |
| def stopApplicationOnServer(appName,serverName): |
| """Stop the named application on one server""" |
| print "stopApplicationOnServer: Entry. appname=%s servername=%s" % ( appName,serverName ) |
| cellName = getCellName() |
| nodeName = getNodeName() |
| # Get the application manager |
| appManager = AdminControl.queryNames('cell=%s,node=%s,type=ApplicationManager,process=%s,*' %(cellName,nodeName,serverName)) |
| print "stopApplicationOnServer: appManager=%s" % ( repr(appManager) ) |
| # start it |
| rc = AdminControl.invoke(appManager, 'stopApplication', appName) |
| print "stopApplicationOnServer: Exit. rc=%s" % ( repr(rc) ) |
| |
| def installApplicationOnServer( fileName, appName, contextRoot, serverName ): |
| """Install given application on the named server using given context root""" |
| print "installApplicationOnServer: fileName=%s appName=%s contextRoot=%s ServerName=%s" % ( fileName, appName,contextRoot,serverName ) |
| AdminApp.install(fileName,'[-appname ' + appName + ' -contextroot ' + contextRoot + ' -server ' + serverName + ' -usedefaultbindings ]') |
| AdminConfig.save() |
| """modify classloader model for application""" |
| deploymentID = AdminConfig.getid('/Deployment:' + appName + '/') |
| deploymentObject = AdminConfig.showAttribute(deploymentID, 'deployedObject') |
| classldr = AdminConfig.showAttribute(deploymentObject, 'classloader') |
| print AdminConfig.showall(classldr) |
| AdminConfig.modify(classldr, [['mode', 'PARENT_LAST']]) |
| """Modify WAR class loader model""" |
| AdminConfig.show(deploymentObject, 'warClassLoaderPolicy') |
| AdminConfig.modify(deploymentObject, [['warClassLoaderPolicy', 'SINGLE']]) |
| AdminConfig.save() |
| |
| def uninstallApplicationOnServer( appName ): |
| """Delete the named application from the cell""" |
| AdminApp.uninstall( appName ) |
| AdminConfig.save() |
| |
| |
| |
| """----------------------------------------------------------- |
| Phyton script to interface with WAS Admin/Management Tools |
| -----------------------------------------------------------""" |
| |
| if len(sys.argv) < 1: |
| print "wasAdmin.py : need parameters : functionName [args]" |
| sys.exit(0) |
| if(sys.argv[0] == 'installApplicationOnServer'): |
| installApplicationOnServer(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) |
| elif(sys.argv[0] == 'startApplicationOnServer'): |
| startApplicationOnServer(sys.argv[1], sys.argv[2]) |
| elif(sys.argv[0] == 'uninstallApplicationOnServer'): |
| uninstallApplicationOnServer(sys.argv[1]) |
| else: |
| print "Exiting without doing anything" |
| |