def main(): snmp_action = jcs.get_snmp_action() snmp_oid = jcs.get_snmp_oid() jcs.syslog("8", "snmp_action = ", snmp_action, " snmp_oid = ", snmp_oid) if snmp_action != 'get': return if not snmp_oid.startswith(BASE_OID): return index = int(snmp_oid[len(BASE_OID) + 1:]) if index not in SCRIPT_XPATH: return with Device() as dev: conf = dev.rpc.get_config() count_scripts = len(conf.xpath(SCRIPT_XPATH[index])) jcs.emit_snmp_attributes(snmp_oid, "Integer32", str(count_scripts))
def main(): snmp_action = jcs.get_snmp_action() snmp_oid = jcs.get_snmp_oid() jcs.syslog("8", "snmp_action = ", snmp_action, " snmp_oid = ", snmp_oid) if snmp_action == 'get': if snmp_oid == '.1.3.6.1.4.1.2636.13.61.1.9.1.1': jcs.emit_snmp_attributes(snmp_oid, "Integer32", "10") elif snmp_oid == '.1.3.6.1.4.1.2636.13.61.1.9.1.1.1': jcs.emit_snmp_attributes(snmp_oid, "Integer32", "211") elif snmp_action == 'get-next': if snmp_oid == '.1.3.6.1.4.1.2636.13.61.1.9.1.1': jcs.emit_snmp_attributes(".1.3.6.1.4.1.2636.13.61.1.9.1.1.1", "Integer32", "211") elif snmp_oid == '.1.3.6.1.4.1.2636.13.61.1.9.1.1.1': jcs.emit_snmp_attributes(".1.3.6.1.4.1.2636.13.61.1.9.1.1.2", "Integer32", "429")
def main(): snmp_action = jcs.get_snmp_action() snmp_oid = jcs.get_snmp_oid() #jcs.enable_debugger() # invoke lwaftr stats populate_stats() # log operation, oid message = "snmp_action: " message += snmp_action message += ", oid: " message += snmp_oid #jcs.syslog("external.info", message) """ if (lwaftr_statistics_dict.size() == 0): #fill null #return jcs.emit_snmp_attributes(snmp_oid, None, None) return """ if (snmp_action == "get"): operation = SNMP_GET elif (snmp_action == "get-next"): operation = SNMP_GETNEXT oid_list = snmp_oid.split(".") oid_list_len = len(oid_list) leaf = None instance_id = None protocol = None table_type = LW4OVER6_STAT_TABLE if (oid_list_len > 11): table_type = oid_list[11] table_type = int(table_type) if (table_type > LW4OVER6_INSTANCE_TABLE): return None if (table_type < LW4OVER6_STAT_TABLE): table_type = LW4OVER6_STAT_TABLE #.1.3.6.1.4.1.2636.1.7.151.1.1.<leaf> if (oid_list_len > 13): leaf = oid_list[13] leaf = int(leaf) message = "Table type " + str(table_type) #jcs.syslog("external.info", message) message = "Leaf value " + str(leaf) #jcs.syslog("external.info", message) if (oid_list_len > 14): instance_id = oid_list[14] instance_id = int(instance_id) if (table_type == LW4OVER6_STAT_TABLE): if (oid_list_len > 15): protocol = oid_list[15] protocol = int(protocol) if (table_type == LW4OVER6_STAT_TABLE and operation == SNMP_GETNEXT): (recv_leaf, recv_instance, recv_protocol, value) = snmp_getnext_value(leaf, instance_id, protocol) if (value is None): table_type = LW4OVER6_INSTANCE_TABLE instance_id = None leaf = None if (table_type == LW4OVER6_STAT_TABLE): message = "Parameters " if (leaf): message += "leaf: " + str(leaf) if (instance_id): message += " instance_id: " + str(instance_id) if (protocol): message += " protocol: " + str(protocol) #jcs.syslog("external.info", message) if (operation == SNMP_GET): #jcs.syslog("external.info", "get request") value = snmp_get_value(leaf, instance_id, protocol) if (value is None): jcs.syslog("external.info", "No entry available") return value = str(value) message = "value: " + value if (leaf == LWAFTR_INSTANCENAME): #message = message + " " + snmp_oid #jcs.syslog("external.info", message) return jcs.emit_snmp_attributes(snmp_oid, "string", value) else: return jcs.emit_snmp_attributes(snmp_oid, "Counter64", value) elif (operation == SNMP_GETNEXT): (recv_leaf, recv_instance, recv_protocol, value) = snmp_getnext_value(leaf, instance_id, protocol) if (value is None): jcs.syslog("external.info", "No entry available") return None; else: #jcs.syslog("external.info", value) pass #message = "Returning OID name: " oid_name = lw4overmib_table_oid + "." + str(recv_leaf) + "." + str(recv_instance) + "." + str(recv_protocol) #message += oid_name #jcs.syslog("external.info", message) if (recv_leaf == LWAFTR_INSTANCENAME): return jcs.emit_snmp_attributes(oid_name, "string", value) else: return jcs.emit_snmp_attributes(oid_name, "Counter64", value) else: jcs.syslog("external.info", "Unexpected SNMP operation") return else: message = "Parameters " if (leaf): message += "leaf: " + str(leaf) if (instance_id): message += " instance_id: " + str(instance_id) #jcs.syslog("external.info", message) if (operation == SNMP_GET): #jcs.syslog("external.info", "get request") value = snmp_get_instance_value(leaf, instance_id) if (value is None): jcs.syslog("external.info", "No entry available") return value = str(value) message = "value: " + value if (leaf == LWAFTR_INSTANCE_TABLE_NAME): #message = message + " " + snmp_oid #jcs.syslog("external.info", message) return jcs.emit_snmp_attributes(snmp_oid, "string", value) else: return jcs.emit_snmp_attributes(snmp_oid, "Counter64", value) elif (operation == SNMP_GETNEXT): (recv_leaf, recv_instance, value) = snmp_getnext_instance_value(leaf, instance_id) if (value is None): jcs.syslog("external.info", "No entry available") return None; else: #jcs.syslog("external.info", value) pass #message = "Returning OID name: " oid_name = lw4overmib_instance_table_oid + "." + str(recv_leaf) + "." + str(recv_instance) #message += oid_name #jcs.syslog("external.info", message) if (recv_leaf == LWAFTR_INSTANCE_TABLE_NAME): return jcs.emit_snmp_attributes(oid_name, "string", value) else: return jcs.emit_snmp_attributes(oid_name, "Counter64", value) else: jcs.syslog("external.info", "Unexpected SNMP operation") return