wlp_cluster.py
import sys import javax.management.ObjectName from restConnector import JMXRESTConnector # The JMX ObjectName of the cluster manager MBean MBEAN_OBJECT_NAME = "WebSphere:feature=collectiveController,type=ClusterManager,name=ClusterManager" # Class representing the cluster manager. class manager(object): mbeanConnection = None # Initialization routine # # mbeanConnection is an instance of an MBeanServer connection, obtained by # calling the getMBeanServerConnection() function of the # JMXRESTConnector class. def __init__(self, mbeanConnection): self.mbeanConnection = mbeanConnection # Start the cluster def start(self, clusterName, options): objectName = javax.management.ObjectName(MBEAN_OBJECT_NAME) startClusterResults = self.mbeanConnection.invoke( objectName, "startCluster", [clusterName, options], ["java.lang.String", "java.lang.String"]) return startClusterResults # Stop the cluster def stop(self, clusterName, options): objectName = javax.management.ObjectName(MBEAN_OBJECT_NAME) stopClusterResults = self.mbeanConnection.invoke( objectName, "stopCluster", [clusterName, options], ["java.lang.String", "java.lang.String"]) return stopClusterResults # Get a member listing def listMembers(self, clusterName): objectName = javax.management.ObjectName(MBEAN_OBJECT_NAME) members = self.mbeanConnection.invoke( objectName, "listMembers", [clusterName], ["java.lang.String"]) return members # List the cluster names def listClusterNames(self): objectName = javax.management.ObjectName(MBEAN_OBJECT_NAME) clusters = self.mbeanConnection.invoke( objectName, "listClusterNames", [], []) return clusters # Get the status of a cluster def getStatus(self, clusterName): objectName = javax.management.ObjectName(MBEAN_OBJECT_NAME) status = self.mbeanConnection.invoke( objectName, "getStatus", [clusterName], ["java.lang.String"]) return status # Gets the cluster name for a server. def getClusterName(self, host, userdir, serverName): objectName = javax.management.ObjectName(MBEAN_OBJECT_NAME) clusterName = self.mbeanConnection.invoke( objectName, "getClusterName", [host, userdir, serverName], ["java.lang.String", "java.lang.String", "java.lang.String"]) return clusterName # Generate Cluster plugin-cfg.xml def genPlugin(self, clusterName): objectName = javax.management.ObjectName(MBEAN_OBJECT_NAME) pluginFile = self.mbeanConnection.invoke( objectName, "generateClusterPluginConfig", [clusterName], ["java.lang.String"]) return pluginFile