Commit e57c8dbf authored by douomo's avatar douomo
Browse files

added swith for svc_inventory in CB, PB and PEB

parent fee47bfd
Loading
Loading
Loading
Loading
+18 −13
Original line number Diff line number Diff line
@@ -25,7 +25,8 @@ Test Net
    Test Net    ${vendor_1}     filters/NETFilter/lldp_filter.xml

Test Service
    Test Service    ${vendor_1}    filters/ServiceFilter/bridge_filter.xml
    Test Service    ${vendor_1}    filters/ServiceFilter/bridge_filter.xml    filters/ServiceFilter/interface_filter.xml    CB
    # the 3rd argument can be CB, PB or PEB
    #Test Service PEB Mode    ${vendor_1}    filters/ServiceFilter/bridge_filter.xml    filters/ServiceFilter/interface_filter.xml

    
@@ -80,23 +81,27 @@ Test Net
    Should Be Equal    ${passed}    SUCCESS


Test Service
    [Arguments]    ${info}    @{args}
    ${svc_inventory}=    Inventory Request    ${info}    @{args}
    ${passed}=    Check SVC Inventory    ${svc_inventory}
    Log    ${passed}    console=yes
    Should Be Equal    ${passed}    SUCCESS
#Test Service
#    [Arguments]    ${info}    @{args}
#    ${svc_inventory}=    Inventory Request    ${info}    ${args[0]}
#    ${passed}=    Check SVC Inventory    ${svc_inventory}    ${args[1]}  
#    Log    ${passed}    console=yes
#    Should Be Equal    ${passed}    SUCCESS

Test Service PEB Mode
Test Service
    [Arguments]    ${info}    @{args}
    ${svc_inventory}=    Inventory Request    ${info}    @{args[0]}
    ${passed}=    Check SVC Inventory    ${svc_inventory}
    ${passed}=    Check SVC Inventory    ${svc_inventory}    ${args[2]}
    Log    ${passed}    console=yes
    Should Be Equal    ${passed}    SUCCESS
    IF    ${args[2]}=="PEB"
        ${iface_inventory}=    Inventory Request    ${info}    @{args[1]}
        ${passed}=    Check SVC PEB Inventory    ${iface_inventory}
        Log    ${passed}    console=yes
        Should Be Equal    ${passed}    SUCCESS    
    END
    
    


Inventory Request
+2 −2
Original line number Diff line number Diff line
@@ -36,10 +36,10 @@ Decrease TX Power
    #${m}=    Connect With Credentials    ${par["host"]}    ${par["port"]}    ${par["username"]}    ${par["password"]}
    ${t}=    Connect With Key    ${transmitter["host"]}    ${transmitter["port"]}    ${transmitter["username"]}    ${transmitter["key_filename"]}
    #${t}=    Connect With Credentials    ${transmitter["host"]}    ${transmitter["port"]}    ${transmitter["username"]}    ${transmitter["password"]}
    Set TX Power    ${t}    ${transmitter["testInterface"]}    ${transmitter["maxTxPower"]}    #On transmitter node: need to connect to the TX and change ${m} with the reference to the transmitter
    Set TX Power    ${t}    ${transmitter["testInterface"]}    ${transmitter["maxTxPower"]}
    BuiltIn.Sleep    5s
    ${init_RSL} =    Get Iface Metrics    ${m}    ${par["testInterface"]}    "actual-received-level"
    Set TX Power    ${t}    ${transmitter["testInterface"]}    ${transmitter["minTxPower"]}    #On transmitter node: need to connect to the TX and change ${m} with the reference to the transmitter
    Set TX Power    ${t}    ${transmitter["testInterface"]}    ${transmitter["minTxPower"]}
    BuiltIn.Sleep    5s
    ${final_RSL} =    Get Iface Metrics    ${m}    ${par["testInterface"]}    "actual-received-level"
    Log    Initial RSL value: ${init_RSL}    console=yes
+7 −1
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ import xml.etree.ElementTree as ET
from jinja2 import Environment, FileSystemLoader
import time
from robot.libraries.BuiltIn import BuiltIn
from ncclient.operations import RPCError


def get_filtered_config(mgr, filter):   
@@ -79,7 +80,12 @@ def set_TX_power(m, int_name, txPower):
    BuiltIn().log_to_console("New config for tx-power:")
    BuiltIn().log_to_console(xml)
    m.edit_config(target="candidate", config=xml)
    try:
        m.commit()
    except RPCError as e:
        BuiltIn().log_to_console("RCP ERROR. Message :", e.message, " info: ", e.info)
    BuiltIn().log_to_console("new pwer committed")
        
    
def set_SNR_threshold(m,int_name, t):
    env = Environment( loader=FileSystemLoader("."), autoescape=False)
+24 −9
Original line number Diff line number Diff line
@@ -38,8 +38,8 @@ def check_hardware_inventory(xml_reply):
        if "chassis" in cls[0].text or "module" in cls[0].text:
            expected_params = expected_params + 1
            actual_params = actual_params + min([1,len(serial_num)])
            if len(serial_num)==0:
                print("not found serial num for component ",cls[0].text," with name ",name[0].text)
            #if len(serial_num)==0:
                #print("not found serial num for component ",cls[0].text," with name ",name[0].text)
        if "port" in cls[0].text:
            if len(parent) == 0 or len(contains_child)>0:
                return "tree not consistent"
@@ -252,12 +252,12 @@ def check_LLDP_inventory(xml_reply):
        actual_params = actual_params -2 + len(chassis_id) + len(chassis_id_subtype)
    ports = tree.findall(".//ns1:port", namespaces={"ns1": "urn:ieee:std:802.1AB:yang:ieee802-dot1ab-lldp"})
    for port in ports:
        expected_params = expected_params + 2
        actual_params = actual_params + 2 
        portID = port.findall(".//ns1:port-id", namespaces={"ns1": "urn:ieee:std:802.1AB:yang:ieee802-dot1ab-lldp"})
        portIDSubtype = port.findall(".//ns1:port-id-subtype", namespaces={"ns1": "urn:ieee:std:802.1AB:yang:ieee802-dot1ab-lldp"})
        adminstatus = port.findall(".//ns1:admin-status", namespaces={"ns1": "urn:ieee:std:802.1AB:yang:ieee802-dot1ab-lldp"}) #HW
        if adminstatus[0].text != "disabled": #HW
            expected_params = expected_params + 2
            actual_params = actual_params + 2 
            if len(portID)==0 or len(portIDSubtype)==0:
                actual_params = actual_params -2+ len(portID) + len(portIDSubtype)
            #return "port data incomplete"
@@ -276,7 +276,18 @@ def check_LLDP_inventory(xml_reply):
        return "expected params = ",expected_params," got ", actual_params
    return "SUCCESS"

def check_svc_inventory(xml_reply):
def check_svc_inventory(xml_reply, flag):
    bridge_type_filter = None
    component_type_filter  = None
    if flag == "CB":
        bridge_type_filter = "dot1q:customer-vlan-bridge"
        component_type_filter = "dot1q:c-vlan-component"
    elif flag == "PB":
        bridge_type_filter = "dot1q:provider-bridge"
        component_type_filter = "dot1q:s-vlan-component"
    else:
        bridge_type_filter = "dot1q:provider-edge-bridge"
        component_type_filter = "dot1q:s-vlan-component"
    tree = ET.fromstring(xml_reply)
    bridges = tree.findall(".//ns0:bridge", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
    expected_params = 0
@@ -288,8 +299,10 @@ def check_svc_inventory(xml_reply):
        address = bridge.findall(".//ns0:address", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
        bridge_type = bridge.findall(".//ns0:bridge-type", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
        components = bridge.findall(".//ns0:component", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
        if bridge_type[0].text != bridge_type_filter:
            continue
        if len(name)==0 or len(address)==0 or len(bridge_type)==0 or len(components)==0:
            #return "mssing bridge's info"
            #print("mssing bridge's info")
            actual_params = actual_params - 4 + len(name) + len(address) + len(bridge_type) + len(components)
        for component in components:
            expected_params = expected_params + 6
@@ -300,8 +313,10 @@ def check_svc_inventory(xml_reply):
            bridge_port = component.findall(".//ns0:bridge-port", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
            filtering_database = component.findall(".//ns0:filtering-database", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
            bridge_vlan = component.findall(".//ns0:bridge-vlan", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
            if type[0].text != component_type_filter:
                continue
            if len(name)==0 or len(id)==0 or len(type)==0 or len(bridge_port)==0 or len(filtering_database)==0 or len(bridge_vlan)==0:
                #return "missing components's info"
                #print("missing components's info")
                actual_params = actual_params - 6 + len(name) + len(id) + len(type) + len(bridge_port) + len(filtering_database) + len(bridge_vlan)
            for db in filtering_database:
                expected_params = expected_params + 1 #if there's the filtering db I expect to see also vlan_reg_entry
@@ -330,7 +345,7 @@ def check_svc_inventory(xml_reply):
                        vlan_transmitted = p.findall(".//ns0:vlan-transmitted", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
                        registrar_admin_control = p.findall(".//ns0:registrar-admin-control", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
                        if len(port_ref)==0 or len(static_vlan_reg_entry)==0 or len(vlan_transmitted)==0 or len(registrar_admin_control)==0:
                            #return "Missing data in port map"
                            #print("Missing data in port map")
                            actual_params = actual_params - 4 + len(port_ref) + len(static_vlan_reg_entry) + len(vlan_transmitted) + len(registrar_admin_control)
            for br in bridge_vlan:
                expected_params = expected_params + 1 #if there's a bridge_vlan I also expect to see vlans
@@ -345,7 +360,7 @@ def check_svc_inventory(xml_reply):
                    name = vlan.findall(".//ns0:name", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
                    egress_ports = vlan.findall(".//ns0:egress-ports", namespaces={"ns0": "urn:ieee:std:802.1Q:yang:ieee802-dot1q-bridge"})
                    if len(vid)==0 or len(name)==0 or len(egress_ports)==0:
                        #return "Missing data in bridge vlan"
                        #print("Missing data in bridge vlan")
                        actual_params = actual_params - 3 + len(vid) + len(name) + len(egress_ports)
    if actual_params<expected_params:
        return "expected params = ",expected_params," got ", actual_params