Merge branch '2016-plugin-monitorizacion-con-docker-swarm' into 'develop'
Functionalities added - docker swarm See merge request artica/pandorafms!1547
This commit is contained in:
commit
2071568b16
|
@ -24,6 +24,7 @@ use Scalar::Util qw(looks_like_number);
|
||||||
use Time::HiRes qw(time);
|
use Time::HiRes qw(time);
|
||||||
use POSIX qw(strftime setsid floor);
|
use POSIX qw(strftime setsid floor);
|
||||||
use MIME::Base64;
|
use MIME::Base64;
|
||||||
|
use JSON qw(decode_json encode_json);
|
||||||
|
|
||||||
use base 'Exporter';
|
use base 'Exporter';
|
||||||
|
|
||||||
|
@ -62,6 +63,7 @@ our @EXPORT = qw(
|
||||||
in_array
|
in_array
|
||||||
init
|
init
|
||||||
is_enabled
|
is_enabled
|
||||||
|
join_by_field
|
||||||
load_perl_modules
|
load_perl_modules
|
||||||
logger
|
logger
|
||||||
merge_hashes
|
merge_hashes
|
||||||
|
@ -1003,6 +1005,22 @@ sub init_system {
|
||||||
return $conf;
|
return $conf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Return a string with the concatenation of a hash array based on a field
|
||||||
|
################################################################################
|
||||||
|
sub join_by_field {
|
||||||
|
my ($separator, $field, $array_hashref) = @_;
|
||||||
|
|
||||||
|
$separator = ',' if empty($separator);
|
||||||
|
my $str = '';
|
||||||
|
foreach my $item (@{$array_hashref}) {
|
||||||
|
$str .= (defined($item->{$field})?$item->{$field}:'') . $separator;
|
||||||
|
}
|
||||||
|
chop($str);
|
||||||
|
|
||||||
|
return $str;
|
||||||
|
}
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Return system environment
|
# Return system environment
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -1500,14 +1518,14 @@ sub api_available {
|
||||||
# apidata->{other} = [field1,field2,...,fieldi,...,fieldn]
|
# apidata->{other} = [field1,field2,...,fieldi,...,fieldn]
|
||||||
#########################################################################################
|
#########################################################################################
|
||||||
sub api_call {
|
sub api_call {
|
||||||
my ($conf, $apidata) = @_;
|
my ($conf, $apidata, $decode_json) = @_;
|
||||||
my ($api_url, $api_pass, $api_user, $api_user_pass,
|
my ($api_url, $api_pass, $api_user, $api_user_pass,
|
||||||
$op, $op2, $other_mode, $other, $return_type);
|
$op, $op2, $id, $id2, $other_mode, $other, $return_type);
|
||||||
my $separator;
|
my $separator;
|
||||||
|
|
||||||
if (ref $apidata eq "ARRAY") {
|
if (ref $apidata eq "ARRAY") {
|
||||||
($api_url, $api_pass, $api_user, $api_user_pass,
|
($api_url, $api_pass, $api_user, $api_user_pass,
|
||||||
$op, $op2, $return_type, $other_mode, $other) = @{$apidata};
|
$op, $op2, $id, $id2, $return_type, $other_mode, $other) = @{$apidata};
|
||||||
}
|
}
|
||||||
if (ref $apidata eq "HASH") {
|
if (ref $apidata eq "HASH") {
|
||||||
$api_url = $apidata->{'api_url'};
|
$api_url = $apidata->{'api_url'};
|
||||||
|
@ -1516,6 +1534,8 @@ sub api_call {
|
||||||
$api_user_pass = $apidata->{'api_user_pass'};
|
$api_user_pass = $apidata->{'api_user_pass'};
|
||||||
$op = $apidata->{'op'};
|
$op = $apidata->{'op'};
|
||||||
$op2 = $apidata->{'op2'};
|
$op2 = $apidata->{'op2'};
|
||||||
|
$id = $apidata->{'id'};
|
||||||
|
$id2 = $apidata->{'id2'};
|
||||||
$return_type = $apidata->{'return_type'};
|
$return_type = $apidata->{'return_type'};
|
||||||
$other_mode = "url_encode_separator_" . $apidata->{'url_encode_separator'} unless empty($apidata->{'url_encode_separator'});
|
$other_mode = "url_encode_separator_" . $apidata->{'url_encode_separator'} unless empty($apidata->{'url_encode_separator'});
|
||||||
$other_mode = "url_encode_separator_|" if empty($other_mode);
|
$other_mode = "url_encode_separator_|" if empty($other_mode);
|
||||||
|
@ -1528,6 +1548,8 @@ sub api_call {
|
||||||
$api_user_pass = $conf->{'api_user_pass'} if empty($api_user_pass);
|
$api_user_pass = $conf->{'api_user_pass'} if empty($api_user_pass);
|
||||||
$op = $conf->{'op'} if empty($op);
|
$op = $conf->{'op'} if empty($op);
|
||||||
$op2 = $conf->{'op2'} if empty($op2);
|
$op2 = $conf->{'op2'} if empty($op2);
|
||||||
|
$id = $conf->{'id'} if empty($id);
|
||||||
|
$id2 = $conf->{'id2'} if empty($id2);
|
||||||
$return_type = $conf->{'return_type'} if empty($return_type);
|
$return_type = $conf->{'return_type'} if empty($return_type);
|
||||||
$return_type = 'json' if empty($return_type);
|
$return_type = 'json' if empty($return_type);
|
||||||
if (ref ($apidata->{'other'}) eq "ARRAY") {
|
if (ref ($apidata->{'other'}) eq "ARRAY") {
|
||||||
|
@ -1545,18 +1567,30 @@ sub api_call {
|
||||||
$other = $apidata->{'other'};
|
$other = $apidata->{'other'};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$other = '' if empty($other);
|
||||||
|
$id = '' if empty($id);
|
||||||
|
$id2 = '' if empty($id2);
|
||||||
|
|
||||||
my $call;
|
my $call;
|
||||||
|
|
||||||
$call = $api_url . '?';
|
$call = $api_url . '?';
|
||||||
$call .= 'op=' . $op . '&op2=' . $op2;
|
$call .= 'op=' . $op . '&op2=' . $op2 . '&id=' . $id;
|
||||||
$call .= '&other_mode=url_encode_separator_' . $separator;
|
$call .= '&other_mode=url_encode_separator_' . $separator;
|
||||||
$call .= '&other=' . $other;
|
$call .= '&other=' . $other;
|
||||||
$call .= '&apipass=' . $api_pass . '&user=' . $api_user . '&pass=' . $api_user_pass;
|
$call .= '&apipass=' . $api_pass . '&user=' . $api_user . '&pass=' . $api_user_pass;
|
||||||
$call .= '&return_type=' . $return_type;
|
$call .= '&return_type=' . $return_type;
|
||||||
|
|
||||||
my $rs = call_url($conf, "$call");
|
my $rs = call_url($conf, "$call");
|
||||||
|
|
||||||
if (ref($rs) ne "HASH") {
|
if (ref($rs) ne "HASH") {
|
||||||
|
if (is_enabled($decode_json)) {
|
||||||
|
eval {
|
||||||
|
my $tmp = decode_json($rs);
|
||||||
|
$rs = $tmp;
|
||||||
|
};
|
||||||
|
if ($@) {
|
||||||
|
print_stderror($conf, "Error: " . $@);
|
||||||
|
}
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
rs => (empty($rs)?1:0),
|
rs => (empty($rs)?1:0),
|
||||||
error => (empty($rs)?"Empty response.":undef),
|
error => (empty($rs)?"Empty response.":undef),
|
||||||
|
|
Loading…
Reference in New Issue