Commit a9b5cc65 authored by douomo's avatar douomo
Browse files

fixing on getIfaceMetrics

parent f7e60b96
Loading
Loading
Loading
Loading
+36 B (7.53 KiB)

File changed.

No diff preview for this file type.

+10 −4
Original line number Original line Diff line number Diff line
@@ -28,15 +28,21 @@ def get_iface_metrics(m, int_name, metric):
    xml = env.get_template("filters/qualityofsignal.xml.pyformat").render(context)
    xml = env.get_template("filters/qualityofsignal.xml.pyformat").render(context)
    cfg = m.get(filter=("subtree", xml)).data_xml
    cfg = m.get(filter=("subtree", xml)).data_xml
    BuiltIn().log_to_console(cfg)
    BuiltIn().log_to_console(cfg)
    ns = {
    'nc': 'urn:ietf:params:xml:ns:netconf:base:1.0',
    'if': 'urn:ietf:params:xml:ns:yang:ietf-interfaces',
    'mwrl': 'urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link',
    'ianaift': 'urn:ietf:params:xml:ns:yang:iana-if-type'
    }
    tree = ET.fromstring(cfg)
    tree = ET.fromstring(cfg)
    iface = tree.findall(".//ns0:"+"interface", namespaces={'ns0': 'urn:ietf:params:xml:ns:yang:ietf-interfaces','ns1': 'urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link'})
    iface = tree.findall(".//if:"+"interface", namespaces=ns)
    if len(iface)>0:
    if len(iface)>0:
        BuiltIn().log_to_console("Found iface")
        BuiltIn().log_to_console("Found iface")
        value = iface[0].findall(".//ns1:"+metric, namespaces={'ns0': 'urn:ietf:params:xml:ns:yang:ietf-interfaces','ns1': 'urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link'})
        value = iface[0].find(".//mwrl:"+metric, namespaces=ns)
        if len(value)==0:
        if value==None:
            BuiltIn().log_to_console(metric+" not found")
            BuiltIn().log_to_console(metric+" not found")
            return metric+" not found"        
            return metric+" not found"        
        return value[0].text
        return value.text
    else:
    else:
        return "No iface found"
        return "No iface found"
    
    
+13 −8
Original line number Original line Diff line number Diff line
@@ -8,12 +8,17 @@ from ncclient import manager
def get_iface_metrics(m, metric):
def get_iface_metrics(m, metric):
    cfg = m
    cfg = m
    print(cfg)
    print(cfg)
    ns = {
    'nc': 'urn:ietf:params:xml:ns:netconf:base:1.0',
    'if': 'urn:ietf:params:xml:ns:yang:ietf-interfaces',
    'mwrl': 'urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link',
    'ianaift': 'urn:ietf:params:xml:ns:yang:iana-if-type'
    }
    tree = ET.fromstring(cfg)
    tree = ET.fromstring(cfg)
    iface = tree.findall(".//ns0:"+"interface", namespaces={'ns0': 'urn:ietf:params:xml:ns:yang:ietf-interfaces','ns1': 'urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link'})
    iface = tree.findall(".//if:"+"interface", namespaces=ns)
    if len(iface)>0:
    if len(iface)>0:
        print("Found iface: ")
        print("Found iface")
        print(iface[0])
        value = iface[0].findall(".//mwrl:"+metric, namespaces=ns)
        value = iface[0].findall(".//ns1:"+metric, namespaces={'ns0': 'urn:ietf:params:xml:ns:yang:ietf-interfaces','ns1': 'urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link'})
        if len(value)==0:
        if len(value)==0:
            print(metric+" not found")
            print(metric+" not found")
            return metric+" not found"        
            return metric+" not found"        
@@ -32,10 +37,10 @@ def set_TX_power(int_name, txPower):
    print(xml)
    print(xml)


if __name__=="__main__":
if __name__=="__main__":
    xml_reply = """<?xml version="1.0" encoding="UTF-8"?><data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"><interface><name>CT 1/2/1</name><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:microwaveCarrierTermination</type><actual-transmitted-level xmlns="urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link">11.3</actual-transmitted-level><actual-received-level xmlns="urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link">-31.0</actual-received-level><actual-snir xmlns="urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link">47.7</actual-snir></interface></interfaces></data>
    xml_reply = """<?xml version="1.0" encoding="UTF-8"?><data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"><interface><name>CT 1/2/1</name><type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:microwaveCarrierTermination</type><actual-transmitted-level xmlns="urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link">11.4</actual-transmitted-level><actual-received-level xmlns="urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link">-29.4</actual-received-level><actual-snir xmlns="urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link">47.3</actual-snir></interface></interfaces></data>
"""
"""
    #ret = get_iface_metrics(xml_reply, "actual-transmitted-level")
    ret = get_iface_metrics(xml_reply, "actual-transmitted-level")
    #print(ret)
    print(ret)
    set_TX_power("interfaceNAme", 5.0)
    #set_TX_power("interfaceNAme", 5.0)
    #ret = find_in_xml(xml_reply,"actual-transmitted-level", "urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link")
    #ret = find_in_xml(xml_reply,"actual-transmitted-level", "urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link")
    #print(ret)
    #print(ret)
 No newline at end of file