__author__ = "frank" import re import splunk.admin as admin import cp_aws_bin.utils.app_util as util from cgi import escape logger = util.get_logger() ARG_VIEWBOX = "viewbox" ARG_OVERVIEW_WIDTH = "overview_width" ARG_OVERVIEW_HEIGHT = "overview_height" ARG_SVGCONTAINER_HTML = "svgcontainer_html" VPC_ICON = ''' ''' I_RUNNING_ICON = ''' ''' I_STOPPED_ICON = ''' ''' SUBNET_ICON = ''' ''' VOL_ICON = ''' ''' SG_ICON = ''' ''' ENI_ICON = ''' ''' ACL_ICON = ''' ''' RTB_ICON = ''' ''' IGW_ICON = ''' ''' CLOUD_ICON = ''' ''' USER_ICON = ''' ''' GROUP_ICON = ''' ''' POLICY_ICON = ''' ''' ELB_ICON = ''' ''' class TopologyExportHandler(admin.MConfigHandler): def __init__(self, scriptMode, ctxInfo): admin.MConfigHandler.__init__(self, scriptMode, ctxInfo) self.shouldAutoList = False def setup(self): for arg in [ARG_VIEWBOX, ARG_OVERVIEW_WIDTH, ARG_OVERVIEW_HEIGHT, ARG_SVGCONTAINER_HTML]: self.supportedArgs.addOptArg(arg) def handleCreate(self, confInfo): svg_container_html = self.callerArgs[ARG_SVGCONTAINER_HTML][0] overview_width = self.callerArgs[ARG_OVERVIEW_WIDTH][0] overview_height = self.callerArgs[ARG_OVERVIEW_HEIGHT][0] viewbox = self.callerArgs[ARG_VIEWBOX][0] index = svg_container_html.find("") if index == -1: index_1 = svg_container_html.find("" + defs + "" + svg_container_html[index:len(svg_container_html) - 14] + "" start_index = svg.find("", start_index) image_svg = svg[start_index:end_index + 8] type_res = image_type_pattern.search(image_svg) x_res = image_x_pattern.search(image_svg) y_res = image_y_pattern.search(image_svg) if type_res and x_res and y_res: target_svg += '' start_index = end_index + 8 else: target_svg += svg[start_index] start_index += 1 confInfo["export_topology"].append("svg", target_svg) return admin.init(TopologyExportHandler, admin.CONTEXT_APP_ONLY)