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")
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")
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")
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")
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")
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")
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")
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")
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")