blob: 2be2b1eff710c8ebe2fd77cf3aac993bde90f8d1 [file] [log] [blame]
"""
* 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"