use strict;
use warnings;
+use JSON;
use PVE::Tools;
use PVE::JSONSchema qw(get_standard_option);
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',
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}";
use File::HomeDir;
use PVE::Tools;
+use PVE::APIClient::LWP;
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;