diff options
Diffstat (limited to 'qpid/java/management/cli/src/python/stac.py')
| -rw-r--r-- | qpid/java/management/cli/src/python/stac.py | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/qpid/java/management/cli/src/python/stac.py b/qpid/java/management/cli/src/python/stac.py deleted file mode 100644 index 6a7230d724..0000000000 --- a/qpid/java/management/cli/src/python/stac.py +++ /dev/null @@ -1,193 +0,0 @@ -# -# 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. -# - -""" -Bridges between Python and Java, to provide a simpler and more Pythonesque environment. -Certified to be free of dead parrots. -""" -# Imports -from java.lang import * -import org.amqp.blaze.management.jmx.AMQConsole as AMQConsole -import org.amqp.blaze.stac.jmx.MBeanServerConnectionContext as MBeanServerConnectionContext - -# Globals -commandPrompt = "" -proxied = 0 -connected = 0 -amqConsole = None -connectionContext = None - -# Functions -def connect(url="", username="", password=""): - """ - Connects to an AMQP broker. The URL must be in the form amq://host:port/context - """ - try: - global connected - global connectionContext - if connected==1: - print "Already Connected!" - return - - try: - parsedURL = parseURL(url) - except URLFormatError, ufe: - print "Invalid URL: " + ufe.msg - return - - amqConsole = AMQConsole(parsedURL['host'], parsedURL['port'], username, password, parsedURL['context']) - - amqConsole.initialise() - amqConsole.registerAllMBeans() - connectionContext = MBeanServerConnectionContext() - connectionContext.connect() - connected = 1 - except Exception, e: - updateGlobals() - print e - e.printStackTrace() - cause = e.getCause() - if cause != None: - cause.printStackTrace() - else: - updateGlobals(); - -def disconnect(): - """ - Disconnects from the broker - """ - global connected - global connectionContext - - if connected==0: - print "Not connected!" - return - try: - connectionContext.disconnect() - connected = 0 - except Exception, e: - updateGlobals() - print e - else: - updateGlobals() - -def quit(): - global connected - if connected != 0: - disconnect() - -def ls(): - """ - Lists the current mbean - """ - global connected - if connected == 0: - print "Not connected!" - return - - connectionContext.ls() - -def cd(beanName): - """ - Changes the current mbean - """ - global connected - global connectionContext - if connected == 0: - print "Not connected!" - return - - try: - connectionContext.cd(beanName) - except Exception, e: - updateGlobals() - msg = "Error: " + e.getMessage() - print msg - else: - updateGlobals() - -def invoke(methodName): - """ - Invokes an operation of the current mbean - """ - global connected - global connectionContext - - if connected == 0: - print "Not connected!" - return - - try: - connectionContext.invoke(methodName, None) - except Exception, e: - updateGlobals() - msg = "Error: " + e.getMessage() - print msg - else: - updateGlobals() - -class URLFormatError(Exception): - """Exception raised for errors in format of the URL - - Attributes: - expression -- input expression in which the error occurred - message -- explanation of the error - """ - - def __init__(self, url, message): - self.url = url - self.msg = message - -def parseURL(url): - """ - Parses an AMQ URL into host, port and context components returning them in a dictionary - """ - idx = url.find("amq://") - errorMsg = "Invalid URL - must be format amq://hostname:port/vhost" - if idx != 0: - raise URLFormatError(url, errorMsg) - - hostEndIdx = url.find(":", 6) - if hostEndIdx == -1: - raise URLFormatError(url, errorMsg) - - hostname = url[6:hostEndIdx] - - portIdx = url.find("/", hostEndIdx + 1) - port = url[hostEndIdx + 1:portIdx] - vhost = url[portIdx + 1:] - if portIdx == -1: - raise URLFormatError(url, errorMsg) - - return {'host':hostname,'port':int(port),'context':vhost} - -def updateGlobals(): - global commandPrompt - global connectionContext - if connected == 1: - commandPrompt = "AMQ:connected#" + connectionContext.getCurrentMBean().getAttributeValue("name", "java.lang.String") + "> " - else: - commandPrompt = "AMQ:disconnected> " -# Classes - - -# Global execution - -# Update all the global variables - this is called to sync everything at the start -updateGlobals() |
