use JSON::XS;
use Data::Dump qw(dump);
-has 'crmxml' => ( isa => 'Str', is => 'ro', default => 'http://192.168.5.22/nms/ws.php' );
+with 'APKPM::Config';
require RPC::XML;
require RPC::XML::Client;
sub username : Job : MinProcesses(1) : MaxProcesses(5) : Encode {
my ( $self, $job, $workload ) = @_;
warn "# username ",dump($workload);
- my $cli = RPC::XML::Client->new($self->crmxml);
+ my $cli = RPC::XML::Client->new($self->config('crmxml'));
my $resp = $cli->send_request('search',RPC::XML::array->new(
USERNAME => '%' . $workload . '%'
));
--- /dev/null
+package APKPM::Config;
+
+use Moose::Role;
+
+use File::Slurp;
+use Data::Dump qw(dump);
+
+our $config;
+
+sub config {
+ my ( $self, $name ) = @_;
+ if ( ! $config ) {
+ my $code = read_file '/opt/managment_tools/etc/config.pl';
+ $code =~ s/\$(\w+)/\$config->{$1}/gs;
+ $code =~ s/\@(\w+)/\@{\$config->{$1}}/gs;
+ eval $code;
+ die $@ if $@;
+ }
+ die "no $name in ",dump $config unless exists $config->{$name};
+ return $config->{$name};
+}
+
+1;
--- /dev/null
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+use Test::More tests => 2;
+use Data::Dump qw(dump);
+
+use lib 'lib';
+
+use_ok 'APKPM::Config';
+
+ok my $config = APKPM::Config->config('crmxml'), 'config';
+diag dump $config;
+