]> git.proxmox.com Git - pve-guest-common.git/blobdiff - PVE/VZDump/Plugin.pm
add VZDump base Plugin.pm
[pve-guest-common.git] / PVE / VZDump / Plugin.pm
diff --git a/PVE/VZDump/Plugin.pm b/PVE/VZDump/Plugin.pm
new file mode 100644 (file)
index 0000000..9891352
--- /dev/null
@@ -0,0 +1,130 @@
+package PVE::VZDump::Plugin;
+
+use strict;
+use warnings;
+use PVE::VZDump;
+
+sub set_logfd {
+    my ($self, $logfd) = @_;
+
+    $self->{logfd} = $logfd;
+}
+
+sub cmd {
+    my ($self, $cmdstr, %param) = @_;
+
+    return PVE::VZDump::run_command($self->{logfd}, $cmdstr, %param);   
+}
+
+sub cmd_noerr {
+    my ($self, $cmdstr, %param) = @_;
+
+    my $res;
+    eval { $res = $self->cmd($cmdstr, %param); };
+    $self->logerr ($@) if $@;
+    return $res;
+}
+
+sub loginfo {
+    my ($self, $msg) = @_;
+
+    PVE::VZDump::debugmsg('info', $msg, $self->{logfd}, 0);
+}
+
+sub logerr {
+    my ($self, $msg) = @_;
+
+    PVE::VZDump::debugmsg('err', $msg, $self->{logfd}, 0);
+}
+
+sub type {
+    return 'unknown';
+};
+
+sub vmlist {
+    my ($self) = @_;
+
+    return [ keys %{$self->{vmlist}} ] if $self->{vmlist};
+
+    return [];
+}
+
+sub vm_status {
+    my ($self, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub prepare {
+    my ($self, $task, $vmid, $mode) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub lock_vm {
+    my ($self, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub unlock_vm {
+    my ($self, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub stop_vm {
+    my ($self, $task, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub start_vm {
+    my ($self, $task, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub suspend_vm {
+    my ($self, $task, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub resume_vm {
+    my ($self, $task, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub snapshot {
+    my ($self, $task, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub copy_data_phase2 {
+    my ($self, $task, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub assemble {
+    my ($self, $task, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub archive {
+    my ($self, $task, $vmid, $filename, $comp) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+sub cleanup {
+    my ($self, $task, $vmid) = @_;
+
+    die "internal error"; # implement in subclass
+}
+
+1;