blob: 2838b4470cbea3ac855e84fc9d0bafdb5ec48053 [file] [log] [blame]
#!/usr/bin/env 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
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# -----------------------------------------------------------------------
# Retrieve a DUCC Service status from Webserver
import sys
import urllib2
from optparse import OptionParser
from HTMLParser import HTMLParser
from ducc_base import DuccBase
row = 0
column = 0
service_host = None
service_pid = None
service_state = None
class DuccServiceDeploymentsTabHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
global row, column, service_host, service_pid, service_state
#print("Encountered a start tag:", tag)
if(tag == 'td'):
column = column + 1
def handle_endtag(self, tag):
global row, column, service_host, service_pid, service_state
if(tag == 'tr'):
column = 0
row = row + 1
#print("Encountered an end tag :", tag)
def handle_data(self, data):
global row, column, service_host, service_pid, service_state
if(column == 2):
service_state = data
elif(column == 6):
service_host = data
elif(column == 7):
service_pid = data
print 'host:'+service_host, 'pid:'+service_pid,'state:'+ service_state
#print("Encountered some data :", str(row), str(column), data)
class DuccServiceStatus(DuccBase):
# parse command line
def parse_cmdline(self):
global options
parser = OptionParser()
parser.add_option('--scheme', action='store', dest='scheme', default='http', help='default = http')
parser.add_option('--host', action='store', dest='host', default=self.webserver_node, help='default = '+self.webserver_node)
parser.add_option('--port', action='store', dest='port', default='42133', help='default = 42133')
parser.add_option('--name', action='store', dest='name', default=None, help='required (no default)')
(options, args) = parser.parse_args()
if( == None):
parser.error("missing --host")
if( == None):
parser.error("missing --name")
def main(self, argv):
servlet = '/ducc-servlet/service-deployments-data'
url_string = options.scheme+'://'':'+options.port+servlet+'?name='
#print url_string
response = urllib2.urlopen(url_string)
html =
parser = DuccServiceDeploymentsTabHTMLParser()
if __name__ == '__main__':
instance = DuccServiceStatus()