From 3470fad8c190ab0d7e5fc719448d16dfa0716b58 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Sun, 9 May 2021 19:46:53 +0200 Subject: [PATCH] pveum: work around unavailable API2:Pools module commit 42ade84744ab60ff8e452d3e562a36dd3da2b810 added the pool subcommands, reusing the PVE::API2::Pool module. But that module has to live in pve-manager and is not available here, most of the time not a real issue (but always ugly), on bootstrapping this becomes a blocker though... So, for now add a hack and do not hard depend on the modules availability... Signed-off-by: Thomas Lamprecht --- src/PVE/CLI/pveum.pm | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/PVE/CLI/pveum.pm b/src/PVE/CLI/pveum.pm index cbbdb7d..5929707 100755 --- a/src/PVE/CLI/pveum.pm +++ b/src/PVE/CLI/pveum.pm @@ -10,7 +10,6 @@ use PVE::API2::Group; use PVE::API2::Role; use PVE::API2::ACL; use PVE::API2::AccessControl; -use PVE::API2::Pool; use PVE::API2::Domains; use PVE::CLIFormatter; use PVE::CLIHandler; @@ -146,12 +145,6 @@ our $cmddef = { delete => [ 'PVE::API2::ACL', 'update_acl', ['path'], { delete => 1 }], list => [ 'PVE::API2::ACL', 'read_acl', [], {}, $print_api_result, $PVE::RESTHandler::standard_output_options], }, - pool => { - add => [ 'PVE::API2::Pool', 'create_pool', ['poolid'] ], - modify => [ 'PVE::API2::Pool', 'update_pool', ['poolid'] ], - delete => [ 'PVE::API2::Pool', 'delete_pool', ['poolid'] ], - list => [ 'PVE::API2::Pool', 'index', [], {}, $print_api_result, $PVE::RESTHandler::standard_output_options], - }, realm => { add => [ 'PVE::API2::Domains', 'create', ['realm'] ], modify => [ 'PVE::API2::Domains', 'update', ['realm'] ], @@ -184,4 +177,22 @@ our $cmddef = { acldel => { alias => 'acl delete' }, }; +# FIXME: HACK! The pool API is in pve-manager as it needs access to storage guest and RRD stats, +# so we only add the pool commands if the API module is available (required for boots-trapping) +my $have_pool_api; +eval { + require PVE::API2::Pool; + PVE::API2::Pool->import(); + $have_pool_api = 1; +}; + +if ($have_pool_api) { + $cmddef->{pool} = { + add => [ 'PVE::API2::Pool', 'create_pool', ['poolid'] ], + modify => [ 'PVE::API2::Pool', 'update_pool', ['poolid'] ], + delete => [ 'PVE::API2::Pool', 'delete_pool', ['poolid'] ], + list => [ 'PVE::API2::Pool', 'index', [], {}, $print_api_result, $PVE::RESTHandler::standard_output_options], + }; +} + 1; -- 2.39.2