add ESXi plugin for import and wire-it up to a new get_guest_import plugin fn
The get_guest_import fn is currently a private/internal API and should not yet be exposed as a public part of the storage API. Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
committed by
Thomas Lamprecht
parent
a02056f8df
commit
a171036789
3
debian/control
vendored
3
debian/control
vendored
@ -49,6 +49,7 @@ Depends: ceph-common (>= 12.2~),
|
|||||||
udev,
|
udev,
|
||||||
${misc:Depends},
|
${misc:Depends},
|
||||||
${perl:Depends},
|
${perl:Depends},
|
||||||
Recommends: zfs-zed,
|
Recommends: pve-esxi-import-tools,
|
||||||
|
zfs-zed,
|
||||||
Description: Proxmox VE storage management library
|
Description: Proxmox VE storage management library
|
||||||
This package contains the storage management library used by Proxmox VE.
|
This package contains the storage management library used by Proxmox VE.
|
||||||
|
|||||||
@ -39,6 +39,7 @@ use PVE::Storage::ZFSPoolPlugin;
|
|||||||
use PVE::Storage::ZFSPlugin;
|
use PVE::Storage::ZFSPlugin;
|
||||||
use PVE::Storage::PBSPlugin;
|
use PVE::Storage::PBSPlugin;
|
||||||
use PVE::Storage::BTRFSPlugin;
|
use PVE::Storage::BTRFSPlugin;
|
||||||
|
use PVE::Storage::ESXiPlugin;
|
||||||
|
|
||||||
# Storage API version. Increment it on changes in storage API interface.
|
# Storage API version. Increment it on changes in storage API interface.
|
||||||
use constant APIVER => 10;
|
use constant APIVER => 10;
|
||||||
@ -64,6 +65,7 @@ PVE::Storage::ZFSPoolPlugin->register();
|
|||||||
PVE::Storage::ZFSPlugin->register();
|
PVE::Storage::ZFSPlugin->register();
|
||||||
PVE::Storage::PBSPlugin->register();
|
PVE::Storage::PBSPlugin->register();
|
||||||
PVE::Storage::BTRFSPlugin->register();
|
PVE::Storage::BTRFSPlugin->register();
|
||||||
|
PVE::Storage::ESXiPlugin->register();
|
||||||
|
|
||||||
# load third-party plugins
|
# load third-party plugins
|
||||||
if ( -d '/usr/share/perl5/PVE/Storage/Custom' ) {
|
if ( -d '/usr/share/perl5/PVE/Storage/Custom' ) {
|
||||||
@ -2165,4 +2167,20 @@ sub normalize_content_filename {
|
|||||||
return $filename;
|
return $filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# If a storage provides an 'import' content type, it should be able to provide
|
||||||
|
# an object implementing the import information interface.
|
||||||
|
sub get_import_metadata {
|
||||||
|
my ($cfg, $volid) = @_;
|
||||||
|
|
||||||
|
my ($storeid, $volname) = parse_volume_id($volid);
|
||||||
|
|
||||||
|
my $scfg = storage_config($cfg, $storeid);
|
||||||
|
my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
|
||||||
|
if (!$plugin->can('get_import_metadata')) {
|
||||||
|
die "storage does not support the importer API\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
return $plugin->get_import_metadata($scfg, $volname, $storeid);
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|||||||
1015
src/PVE/Storage/ESXiPlugin.pm
Normal file
1015
src/PVE/Storage/ESXiPlugin.pm
Normal file
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,8 @@ SOURCES= \
|
|||||||
ZFSPlugin.pm \
|
ZFSPlugin.pm \
|
||||||
PBSPlugin.pm \
|
PBSPlugin.pm \
|
||||||
BTRFSPlugin.pm \
|
BTRFSPlugin.pm \
|
||||||
LvmThinPlugin.pm
|
LvmThinPlugin.pm \
|
||||||
|
ESXiPlugin.pm
|
||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install:
|
install:
|
||||||
|
|||||||
Reference in New Issue
Block a user