def module_handler(request): """ Handle module request from UI. Response from this request builds UI Explorer tree """ logging.debug("module_handler: enter") lst = [] if request.user.is_authenticated(): path = request.GET.get('node', '') deep = request.GET.get('deep', '') username = request.user.username if path == 'root': # Request for root models modules = ModuleAdmin.get_modulelist(username) modules.sort() for m in modules: lst.append(node_t.format(m.split('@')[0])) else: modules = [path.split('/')[0]] for module in modules: filename = ModuleAdmin.cxml_path(username, module) if filename is not None: logging.debug("module_handler: loading " + filename) module = cxml.get_cxml(filename) nodes = module.get_lazy_subtree(path, deep) lst.extend([ET.tostring(node) for node in nodes]) else: logging.error("module_handler: %s not found !!" + module) logging.debug("module_handler: exit") return render_to_response('loader.xml', {'nodes': lst}, RequestContext(request))
def module_handler(request): """ Handle module request from UI. Response from this request builds UI Explorer tree """ logger.debug("module_handler: enter") lst = [] if request.user.is_authenticated(): path = request.GET.get('node', '') deep = request.GET.get('deep', '') username = request.user.username if path == 'root': # Request for root models modules = ModuleAdmin.get_modulelist(username) modules.sort() for m in modules: lst.append(node_t.format(m.split('@')[0])) else: modules = [path.split('/')[0]] for module in modules: filename = ModuleAdmin.cxml_path(username, module) if filename is not None: logger.debug("module_handler: loading " + filename) module = cxml.get_cxml(filename) nodes = module.get_lazy_subtree(path, deep) lst.extend([ET.tostring(node) for node in annotate(nodes)]) else: logger.error("module_handler: %s not found !!" + module) logger.debug("module_handler: exit") return render_to_response('loader.xml', {'nodes': lst}, RequestContext(request))
def gen_netconf(username, request, mode): msg = '' rpc = '' _format = request.get('format', 'xpath') if mode == '': mode = request.get('operation', '') logging.debug('Generating netconf RPC, operation : "%s" format: %s' % (mode, _format)) if _format == 'raw': rpc = request.find('rpc').text rpc = rpc.replace('>', '>') rpc = rpc.replace('<', '<') return convert_rpc(rpc, mode) # Parse test-payload key-values pairs for each modules and # create a dictionary of modules. modules = parseRequest(request) # Process each module key-value separatly for name in modules: module = modules[name] kvDict = module.get_keyvalues() logging.debug('Opening file %s.xml' % name) filename = ModuleAdmin.cxml_path(username, name) if filename is None: logging.debug('file %s.xml not found !!' % name) continue cx = cxml.get_cxml(filename) tree = cx.getroot() logging.info("Root node %s" % tree.get('name')) ns = get_namespace(tree) # get derived namespaces prefixes = module.get_namespace_pfx() for pfx in prefixes: ns += get_namespace(tree, pfx) # start processing CXML for child in tree: if child.tag != 'namespace': msg += process_xml(tree, kvDict, child, name, ns, mode) # Finally build RPC header rpc += build_rpc(request, msg, mode) logging.debug('Generated netconf RPC') logging.debug(rpc) return rpc
def gen_netconf(username, request, mode): msg = '' rpc = '' _format = request.get('format', 'xpath') if mode == '': mode = request.get('operation', '') logging.debug('Generating netconf RPC, operation : "%s" format: %s' % (mode, _format)) if _format == 'raw': rpc = request.find('rpc').text rpc = rpc.replace('>','>') rpc = rpc.replace('<','<') return convert_rpc(rpc, mode) # Parse test-payload key-values pairs for each modules and # create a dictionary of modules. modules = parseRequest(request) # Process each module key-value separatly for name in modules: module = modules[name] kvDict = module.get_keyvalues() logging.debug('Opening file %s.xml' % name) filename = ModuleAdmin.cxml_path(username, name) if filename is None: logging.debug('file %s.xml not found !!' % name) continue cx = cxml.get_cxml(filename) tree = cx.getroot() logging.info("Root node %s" % tree.get('name')) ns = get_namespace(tree) # get derived namespaces prefixes = module.get_namespace_pfx() for pfx in prefixes: ns += get_namespace(tree, pfx) # start processing CXML for child in tree: if child.tag != 'namespace': msg += process_xml(tree, kvDict, child, name, ns, mode) # Finally build RPC header rpc += build_rpc(request, msg, mode) logging.debug('Generated netconf RPC') logging.debug(rpc) return rpc