예제 #1
0
def test_ft_snmp_dot1q_tp_fdb_address():
    """
   Author : Prasad Darnasi<*****@*****.**>
   Verify that the dot1qTpFdbAddress Object functions properly.
   """
    snmp_obj.poll_for_snmp_walk(vars.D1,
                                data.wait_time,
                                1,
                                ipaddress=ipaddress,
                                oid=data.dot1q_Tp_Fdb_Table,
                                community_name=data.ro_community)
    get_snmp_output = snmp_obj.walk_snmp_operation(
        ipaddress=ipaddress,
        oid=data.dot1q_Tp_Fdb_Table,
        community_name=data.ro_community)
    out = snmp_obj.get_oids_from_walk_output(get_snmp_output)
    out = [str(x) for x in out]
    for x in out:
        get_snmp_output = snmp_obj.get_snmp_operation(
            ipaddress=ipaddress, oid=x, community_name=data.ro_community)
        if not get_snmp_output:
            st.report_fail("snmp_output_failed", "dot1qTpFdbAddress")
        get_snmp_output = snmp_obj.get_snmp_operation(
            ipaddress=ipaddress,
            oid=x,
            community_name=data.ro_community,
            get_next=True)
        if not get_snmp_output:
            st.report_fail("snmp_output_failed", "dot1qTpFdbAddress")
    st.report_pass("test_case_passed")
예제 #2
0
def test_ft_snmp_dot1q_fdb_table():
    """
   Author : Prasad Darnasi<*****@*****.**>
   Verify that the dot1qFdbEntry Object functions properly.
   """
    get_snmp_output = snmp_obj.walk_snmp_operation(
        ipaddress=ipaddress,
        oid=data.dot1q_Fdb_Table,
        community_name=data.ro_community)
    out = snmp_obj.get_oids_from_walk_output(get_snmp_output)
    out = [str(x) for x in out]
    for x in out:
        get_snmp_output = snmp_obj.get_snmp_operation(
            ipaddress=ipaddress, oid=x, community_name=data.ro_community)
        if not get_snmp_output:
            st.report_fail("snmp_output_failed", "dot1qFdbTable")
        get_snmp_output = snmp_obj.get_snmp_operation(
            ipaddress=ipaddress,
            oid=x,
            community_name=data.ro_community,
            get_next=True)
        if not get_snmp_output:
            st.report_fail("snmp_output_failed", "dot1qFdbTable")
    st.report_pass("test_case_passed")
예제 #3
0
def test_ft_snmp_sysDescr():
    """
    Author : Karthikeya Kumar CH<*****@*****.**>
    Verify that the sysDescr MIB object functions properly.
    Reference Test Bed : D1 --- Mgmt Network
    """
    descrip_output = basic_obj.show_version(vars.D1)["hwsku"]
    get_snmp_output = snmp_obj.get_snmp_operation(
        ipaddress=ipaddress,
        oid=data.oid_sysDescr,
        community_name=data.ro_community)
    get_snmp_output = get_snmp_output[0]
    get_snmp_output_value = get_snmp_output.split(' - ')[1].split(
        ':')[1].strip()
    if not descrip_output == get_snmp_output_value:
        st.report_fail("sysDescr_verification_fail")
    st.report_pass("test_case_passed")
예제 #4
0
def test_ft_snmp_sysName():
    """
    Author : Karthikeya Kumar CH<*****@*****.**>
    Verify that the sysName MIB object functions properly.
    Reference Test Bed : D1 --- Mgmt Network
    """
    st.log("Ensuring minimum topology")
    hostname = basic_obj.get_hostname(vars.D1)
    get_snmp_output = snmp_obj.get_snmp_operation(
        ipaddress=ipaddress,
        oid=data.oid_sysName,
        community_name=data.ro_community)
    st.log("hostname Device('{}') and SNMP('{}')".format(
        hostname, get_snmp_output[0]))
    if not get_snmp_output[0] == hostname:
        st.report_fail("sysName_verification_fail")
    st.report_pass("test_case_passed")
예제 #5
0
def test_ft_lldp_lldplocsysdesc():
    """
    Author : Karthikeya Kumar CH<*****@*****.**>
    Verify the syntax check of the object lldplocsysdesc.
    Reference Test Bed : D1 <---> D2
    """
    snmp_output = snmp_obj.get_snmp_operation(ipaddress=ipaddress, oid= data.oid_lldplocsysdesc,
                                              community_name=data.ro_community)
    if not snmp_output:
        st.report_fail(" No SNMP Entries are available")
    snmp_output = snmp_output[0]
    st.log(" Getting LLDP port description:{} from the snmp output ".format(snmp_output))
    cli_output = lldp_value_remote['chassis_descr']
    st.log(" lldp value port is : {} ".format(cli_output))
    if not cli_output in snmp_output:
        st.report_fail("lldp_snmp_not_matching")
    st.log(" LLDP value is passed ")
    st.report_pass("test_case_passed")
예제 #6
0
def test_ft_snmp_sysContact():
    """
    Author : Karthikeya Kumar CH<*****@*****.**>
    Verify that the sysContact MIB object functions properly.
    Reference Test Bed : D1 --- Mgmt Network
    """
    contact_output = ""
    get_snmp_output = snmp_obj.get_snmp_operation(
        ipaddress=ipaddress,
        oid=data.oid_sysContact,
        community_name=data.ro_community)
    get_snmp_output = get_snmp_output[0]
    st.log("System Contact from the SNMP output: {} ".format(get_snmp_output))
    st.log("System Contact from the DUT output: {} ".format(contact_output))
    if not contact_output == get_snmp_output:
        st.log(
            " Contact  is not matching between device Contact and snmp Contact "
        )
        st.report_fail("sysContact_verification_fail")
    st.report_pass("test_case_passed")
예제 #7
0
def test_ft_snmp_sysLocation():
    """
    Author : Karthikeya Kumar CH<*****@*****.**>
    Verify that the sysLocation MIB object functions properly.
    Reference Test Bed : D1 --- Mgmt Network
    """
    location_output = snmp_obj.get_snmp_config(vars.D1)[0]["snmp_location"]
    st.log("System Location from the device is : {} ".format(location_output))
    get_snmp_output = snmp_obj.get_snmp_operation(
        ipaddress=ipaddress,
        oid=data.oid_sysLocation,
        community_name=data.ro_community)
    st.log("System Location from the SNMP output: {} ".format(
        get_snmp_output[0]))
    if not get_snmp_output[0] == location_output:
        st.log(
            " Up time is not matching between device sysuptime and snmp uptime "
        )
        st.report_fail("sysLocation_verification_fail")
    st.report_pass("test_case_passed")
예제 #8
0
def test_ft_snmp_docker_restart():
    """
    Author : Karthikeya Kumar CH<*****@*****.**>
    Verify that the sysName MIB object functions properly after docker restart
    Reference Test Bed : D1--- Mgmt Network
    """
    basic_obj.service_operations_by_systemctl(vars.D1, 'snmp', 'restart')
    if not basic_obj.poll_for_system_status(vars.D1, 'snmp', 30, 1):
        st.report_fail("service_not_running".format('snmp'))
    if not basic_obj.verify_service_status(vars.D1, 'snmp'):
        st.report_fail("snmp_service_not_up")
    hostname = basic_obj.get_hostname(vars.D1)
    get_snmp_output = snmp_obj.get_snmp_operation(
        ipaddress=ipaddress,
        oid=data.oid_sysName,
        community_name=data.ro_community)
    st.log("hostname Device('{}') and SNMP('{}')".format(
        hostname, get_snmp_output[0]))
    if not get_snmp_output[0] == hostname:
        st.report_fail("sysName_verification_fail_after_docker_restart")
    st.report_pass("test_case_passed")
예제 #9
0
def test_ft_snmp_test_syUpTime():
    """
    Author : Karthikeya Kumar CH<*****@*****.**>
    Verify that the sysUpTime MIB object functions properly.
    Reference Test Bed : D1 --- Mgmt Network
    """
    st.log("Ensuring minimum topology")
    get_snmp_output = snmp_obj.get_snmp_operation(
        ipaddress=ipaddress,
        oid=data.oid_syUpTime,
        community_name=data.ro_community)
    uptime_cli_sec = box_obj.get_system_uptime_in_seconds(vars.D1)
    days, hours, minutes, seconds = re.findall(r"(\d+):(\d+):(\d+):(\d+).\d+",
                                               get_snmp_output[0])[0]
    get_snmp_output = util_obj.convert_time_to_seconds(days, hours, minutes,
                                                       seconds)
    st.log("Up time value from DUT is :{} & get_snmp_output value is :{} &"
           " get_snmp_output tolerance value is : {}".format(
               uptime_cli_sec, get_snmp_output, get_snmp_output + 3))
    if not (get_snmp_output >= uptime_cli_sec
            or get_snmp_output + 3 >= uptime_cli_sec):
        st.report_fail("sysUptime_verification_fail")
    st.report_pass("test_case_passed")