Example #1
0
func methodStreamBulkWalk(s *gosnmp.GoSNMP, oid string) {
	if resChn, err := s.StreamBulkWalk(uint8(cmdBulkSize), oid); err != nil {
		fmt.Printf("Error Bulk Walk: %v\n", err)
	} else {
		idx := 0
		for resp := range resChn {
			if resp.Err != nil {
				fmt.Printf("Error: %v\n", resp.Err)
			} else {
				idx += 1
				if oid, err := parseOID(resp.PDU.Name); err == nil {
					if prefix, suffix, err := TranslateOIDFromCache(oid); err == nil {
						// fmt.Printf("(%d) prefix: %s, suffix: %s -> value: %v (oid:%v)\n", idx, prefix, suffix, r.Value, r.Name)
						fmt.Printf("StreamBulkWalk: (%d) prefix: %s, suffix: %s -> value: %v\n", idx, prefix, suffix, resp.PDU.Value)
					} else if prefix != "" {
						fmt.Printf("StreamBulkWalk: (%d) prefix: %s, suffix: ---, err: %v -> value: %v\n", idx, prefix, err, resp.PDU.Value)
					} else {
						fmt.Printf("StreamBulkWalk: (%d) oid: %v -> value: %s  err: %v\n", idx, resp.PDU.Name, resp.PDU.Value, err)
					}
				} else {
					fmt.Printf("StreamBulkWalk: ERROR: %v\n", err)
				}
			}
		}
	}
}