this iterates all mountpoints and checks if they are on a shared
storage, or marked as 'shared'

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
 src/PVE/LXC/Config.pm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/PVE/LXC/Config.pm b/src/PVE/LXC/Config.pm
index d4d973b..ba5c9ac 100644
--- a/src/PVE/LXC/Config.pm
+++ b/src/PVE/LXC/Config.pm
@@ -75,6 +75,31 @@ sub has_feature {
     return $err ? 0 : 1;
 }
 
+sub is_shared_only {
+    my ($class, $conf, $scfg) = @_;
+
+    my $issharedonly = 1;
+    $class->foreach_mountpoint($conf, sub {
+       my ($ms, $mountpoint) = @_;
+
+       # exit early
+       return if !$issharedonly;
+
+       if ($mountpoint->{type} ne 'volume') {
+           $issharedonly = 0 if !$mountpoint->{shared};
+           return;
+       }
+
+       my $sid = PVE::Storage::parse_volume_id($mountpoint->{volume});
+       my $storage = PVE::Storage::storage_config($scfg, $sid);
+       if (!$storage->{shared}) {
+           $issharedonly = 0;
+       }
+    });
+
+    return $issharedonly;
+}
+
 sub __snapshot_save_vmstate {
     my ($class, $vmid, $conf, $snapname, $storecfg) = @_;
     die "implement me - snapshot_save_vmstate\n";
-- 
2.1.4


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to