public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH pve-container/qemu-server/pve-guest-common/pve-docs 0/1] Add pre/post-migrate hooks
@ 2022-09-22 14:13 Stefan Hanreich
  2022-09-22 14:13 ` [pve-devel] [PATCH pve-guest-common 1/1] Add abstract methods for " Stefan Hanreich
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Stefan Hanreich @ 2022-09-22 14:13 UTC (permalink / raw)
  To: pve-devel

This patch adds pre/post-migrate hooks when the when the user migrates a CT/VM
from the Web UI / CLI. I have tested this with both VMs/CTs via Web UI and CLI.
Are there any other places where the hook should get triggered that I missed?

I have decided to create distinct event types for source/target nodes, since
otherwise the same script would run essentially twice on the source/target node.
With distinct event types, the hooks should be more flexible in their usage.

In my first try I simply ssh'ed into the target nodes and ran a perl script
hardcoded as string via perl -e. This seemed very dirty though, which is why I
have opted to move those parts into the respective binaries qm/pct. There are
other subcommands already that fulfill a similar purpose (qm mtunnel) which is
why I figured this might be the better way to implement this. Then I simply
need to call the respective subcommand in the hook methods. Would it be better
to name the subcommands pre/post-migrate-target?

I have added abstract methods to the abstract class, which I implement in the
respective backends. Those methods are virtually the same, only the binary that
gets executed on the target node is different in the backends (pct vs qm). It
might make sense to move both methods to the abstract class and parametrize the
string containing the names of the binaries. I have decided against this for
now, since usually such methods end up diverging anyway. Still, it might make
sense to move the implementation up to the parent class and only have very
simple methods in the specific backends that return the necessary name of the
binary. What do you think?

pve-guest-common:

Stefan Hanreich (1):
  Add abstract methods for pre/post-migrate hooks

 src/PVE/AbstractMigrate.pm | 14 ++++++++++++++
 1 file changed, 14 insertions(+)


pve-container:

Stefan Hanreich (1):
  Add CT hooks for pre/post-migrate on target/source

 src/PVE/CLI/pct.pm     | 51 ++++++++++++++++++++++++++++++++++++++++++
 src/PVE/LXC/Migrate.pm | 23 +++++++++++++++++++
 2 files changed, 74 insertions(+)


qemu-server:

Stefan Hanreich (1):
  Add VM hooks for pre/post-migrate on target/source

 PVE/CLI/qm.pm                         | 50 +++++++++++++++++++++++++++
 PVE/QemuMigrate.pm                    | 23 ++++++++++++
 test/MigrationTest/QemuMigrateMock.pm |  4 +++
 3 files changed, 77 insertions(+)


pve-docs:

Stefan Hanreich (1):
  Add pre/post-migrate events for target and source to example
    hookscript

 examples/guest-example-hookscript.pl | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
-- 
2.30.2




^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2022-09-27  8:05 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-22 14:13 [pve-devel] [PATCH pve-container/qemu-server/pve-guest-common/pve-docs 0/1] Add pre/post-migrate hooks Stefan Hanreich
2022-09-22 14:13 ` [pve-devel] [PATCH pve-guest-common 1/1] Add abstract methods for " Stefan Hanreich
2022-09-26 15:27   ` Thomas Lamprecht
2022-09-27  7:40     ` Stefan Hanreich
2022-09-27  8:05       ` Thomas Lamprecht
2022-09-22 14:13 ` [pve-devel] [PATCH pve-container 1/1] Add CT hooks for pre/post-migrate on target/source Stefan Hanreich
2022-09-22 14:13 ` [pve-devel] [PATCH pve-docs 1/1] Add pre/post-migrate events for target and source to example hookscript Stefan Hanreich
2022-09-22 14:13 ` [pve-devel] [PATCH qemu-server 1/1] Add VM hooks for pre/post-migrate on target/source Stefan Hanreich
2022-09-26 15:38   ` Thomas Lamprecht
2022-09-27  7:40     ` Stefan Hanreich
2022-09-26 15:51 ` [pve-devel] [PATCH pve-container/qemu-server/pve-guest-common/pve-docs 0/1] Add pre/post-migrate hooks Thomas Lamprecht
2022-09-27  7:40   ` Stefan Hanreich
2022-09-27  7:47     ` Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal