-
New Feature Request
-
Resolution: Fixed
-
Major
-
2.0.2
-
Ubuntu 12.04
It would be very convenient to be add value mappings via the API. I currently have a script that does this via db insertions, but it is fragile with respect to the database schema changing.
The script is below:
#!/usr/bin/perl
use warnings;
use strict;
my $usage = "$0 valueMapName number newvalue [number2 newvalue2 [...]]
E.g.:
makevaluemap.pl 'Alarm Status' 1 ok 2 unknown 3 stale 4 problem
makevaluemap.pl 'Aliveness' 0 dead 1 alive
";
my $valueMapName = shift() || die "No new valuemap name";
my @mapList = @ARGV;
die "No mappings given. Usage: $usage\n" if scalar(@mapList) == 0;
my $user = qx/whoami/;
chomp($user);
die "Must be run as the zabbix user" if $user ne 'zabbix';
my $isEvenNumber = scalar(@mapList) % 2 == 0;
die "Must give mapping->value pairs. Usage: $usage\n" if not $isEvenNumber;
my %mappings = @mapList;
my $newValueMapId = 1 + int(qx/psql -t -c 'select max(valuemapid) from valuemaps'/);
my $newMappingId = 1 + int(qx/psql -t -c 'select max(mappingid) from mappings'/);
eval {
my $valueMapCmd = qq/psql -t -c "insert into valuemaps (valuemapid, name) values ('$newValueMapId', '$valueMapName');"/;
print "$valueMapCmd\n";
system $valueMapCmd;
eval {
for my $from (keys %mappings) {
my $to = $mappings{$from};
my $mappingCmd= qq/psql -t -c "insert into mappings (mappingid, valuemapid, value, newvalue) values ('$newMappingId', '$newValueMapId', '$from', '$to');"/;
print "$mappingCmd\n";
system $mappingCmd;
$newMappingId++;
}
};
if ($@) {
die "something went wrong inserting into mappings $@";
}
};
if ($@) {
die "something went wrong inserting into valuemaps $@";
}
- is duplicated by
-
ZBXNEXT-2787 API Value Mapping
-
- Closed
-
-
ZBXNEXT-2789 API Value Mapping 2.4
-
- Closed
-