]> git.proxmox.com Git - pve-ha-manager.git/blobdiff - src/PVE/HA/Resources.pm
cleanup backup & mounted locks after recovery (fixes #1100)
[pve-ha-manager.git] / src / PVE / HA / Resources.pm
index c415c3c441e5117f75de49217b5f462afcdead93..96d2f8fe95faa9c66b50be3748ebb6237261c1b3 100644 (file)
@@ -89,19 +89,19 @@ sub parse_section_header {
 }
 
 sub start {
-    my ($class, $haenv, $params) = @_;
+    my ($class, $haenv, $id) = @_;
 
     die "implement in subclass";
 }
 
 sub shutdown {
-    my ($class, $haenv, $param) = @_;
+    my ($class, $haenv, $id) = @_;
 
     die "implement in subclass";
 }
 
 sub migrate {
-    my ($class, $haenv, $params) = @_;
+    my ($class, $haenv, $id, $target, $online) = @_;
 
     die "implement in subclass";
 }
@@ -112,141 +112,22 @@ sub config_file {
     die "implement in subclass"
 }
 
-sub check_running {
-    my ($class, $id) = @_;
-
-    die "implement in subclass";
-}
-
-
-# virtual machine resource class
-package PVE::HA::Resources::PVEVM;
-
-use strict;
-use warnings;
-
-use PVE::QemuServer;
-use PVE::API2::Qemu;
-
-use base qw(PVE::HA::Resources);
-
-sub type {
-    return 'vm';
-}
-
-sub verify_name {
-    my ($class, $name) = @_;
-
-    die "invalid VMID\n" if $name !~ m/^[1-9][0-9]+$/;
-}
+sub exists {
+    my ($class, $id, $noerr) = @_;
 
-sub options {
-    return {
-       state => { optional => 1 },
-       group => { optional => 1 },
-       comment => { optional => 1 },
-       max_restart => { optional => 1 },
-       max_relocate => { optional => 1 },
-    };
-}
-
-sub config_file {
-    my ($class, $vmid, $nodename) = @_;
-
-    return PVE::QemuServer::config_file($vmid, $nodename);
-}
-
-sub start {
-    my ($class, $haenv, $params) = @_;
-
-    my $upid = PVE::API2::Qemu->vm_start($params);
-    $haenv->upid_wait($upid);
-}
-
-sub shutdown {
-    my ($class, $haenv, $param) = @_;
-
-    my $upid = PVE::API2::Qemu->vm_shutdown($param);
-    $haenv->upid_wait($upid);
-}
-
-
-sub migrate {
-    my ($class, $haenv, $params) = @_;
-
-    my $upid = PVE::API2::Qemu->migrate_vm($params);
-    $haenv->upid_wait($upid);
+    die "implement in subclass"
 }
 
 sub check_running {
-    my ($class, $vmid) = @_;
+    my ($class, $haenv, $id) = @_;
 
-    return PVE::QemuServer::check_running($vmid, 1);
-}
-
-
-# container resource class
-package PVE::HA::Resources::PVECT;
-
-use strict;
-use warnings;
-
-use PVE::LXC;
-use PVE::API2::LXC::Status;
-
-use base qw(PVE::HA::Resources);
-
-sub type {
-    return 'ct';
-}
-
-sub verify_name {
-    my ($class, $name) = @_;
-
-    die "invalid VMID\n" if $name !~ m/^[1-9][0-9]+$/;
-}
-
-sub options {
-    return {
-       state => { optional => 1 },
-       group => { optional => 1 },
-       comment => { optional => 1 },
-       max_restart => { optional => 1 },
-       max_relocate => { optional => 1 },
-    };
-}
-
-sub config_file {
-    my ($class, $vmid, $nodename) = @_;
-
-    return PVE::LXC::config_file($vmid, $nodename);
-}
-
-sub start {
-    my ($class, $haenv, $params) = @_;
-
-    my $upid = PVE::API2::LXC::Status->vm_start($params);
-    $haenv->upid_wait($upid);
-}
-
-sub shutdown {
-    my ($class, $haenv, $params) = @_;
-
-    my $upid = PVE::API2::LXC::Status->vm_shutdown($params);
-    $haenv->upid_wait($upid);
-}
-
-sub migrate {
-    my ($class, $haenv, $params) = @_;
-
-    my $upid = PVE::API2::LXC->migrate_vm($params);
-    $haenv->upid_wait($upid);
+    die "implement in subclass";
 }
 
-sub check_running {
-    my ($class, $vmid) = @_;
+sub remove_locks {
+    my ($self, $haenv, $id, $locks, $service_node) = @_;
 
-    return PVE::LXC::check_running($vmid);
+    die "implement in subclass";
 }