3c7c4a749b
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835700 13f79535-47bb-0310-9956-ffa450edef68
91 lines
4.1 KiB
Python
91 lines
4.1 KiB
Python
"""
|
|
* 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"
|
|
|