From aa570b3853bef5f16827df72c429c59c8ac91151 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Tue, 29 May 2018 09:33:05 +0200 Subject: [PATCH] move config related code to PVE/APIClient/Config.pm --- PVE/APIClient/Commands/lxc.pm | 32 ++------------------------------ PVE/APIClient/Config.pm | 32 +++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 31 deletions(-) diff --git a/PVE/APIClient/Commands/lxc.pm b/PVE/APIClient/Commands/lxc.pm index 41ff4db..5e2a820 100644 --- a/PVE/APIClient/Commands/lxc.pm +++ b/PVE/APIClient/Commands/lxc.pm @@ -2,6 +2,7 @@ package PVE::APIClient::Commands::lxc; use strict; use warnings; +use JSON; use PVE::Tools; use PVE::JSONSchema qw(get_standard_option); @@ -10,35 +11,6 @@ use PVE::CLIHandler; use base qw(PVE::CLIHandler); use PVE::APIClient::Config; -my $load_remote_config = sub { - my ($remote) = @_; - - my $conf = PVE::APIClient::Config::load_config(); - - my $remote_conf = $conf->{"remote_$remote"} || - die "no such remote '$remote'\n"; - - foreach my $opt (qw(hostname username password fingerprint)) { - die "missing option '$opt' (remote '$remote')" if !defined($remote_conf->{$opt}); - } - - return $remote_conf; -}; - -my $get_remote_connection = sub { - my ($remote) = @_; - - my $conf = $load_remote_config->($remote); - - return PVE::APIClient::LWP->new( - username => $conf->{username}, - password => $conf->{password}, - host => $conf->{hostname}, - cached_fingerprints => { - $conf->{fingerprint} => 1 - }); -}; - __PACKAGE__->register_method ({ name => 'enter', path => 'enter', @@ -58,7 +30,7 @@ __PACKAGE__->register_method ({ code => sub { my ($param) = @_; - my $conn = $get_remote_connection->($param->{remote}); + my $conn = PVE::APIClient::Config::get_remote_connection($param->{remote}); my $node = 'localhost'; # ?? my $api_path = "api2/json/nodes/$node/lxc/$param->{vmid}"; diff --git a/PVE/APIClient/Config.pm b/PVE/APIClient/Config.pm index 86007d2..e29a4fd 100644 --- a/PVE/APIClient/Config.pm +++ b/PVE/APIClient/Config.pm @@ -6,6 +6,7 @@ use JSON; use File::HomeDir; use PVE::Tools; +use PVE::APIClient::LWP; sub load_config { @@ -18,6 +19,35 @@ sub load_config { } return decode_json($conf_str); -}; +} + +sub load_remote_config { + my ($remote) = @_; + + my $conf = load_config(); + + my $remote_conf = $conf->{"remote_$remote"} || + die "no such remote '$remote'\n"; + + foreach my $opt (qw(hostname username password fingerprint)) { + die "missing option '$opt' (remote '$remote')" if !defined($remote_conf->{$opt}); + } + + return $remote_conf; +} + +sub get_remote_connection { + my ($remote) = @_; + + my $conf = load_remote_config($remote); + + return PVE::APIClient::LWP->new( + username => $conf->{username}, + password => $conf->{password}, + host => $conf->{hostname}, + cached_fingerprints => { + $conf->{fingerprint} => 1 + }); +} 1; -- 2.39.2