From 1d3d09e718f8a982588b06ff931bab4fff96858b Mon Sep 17 00:00:00 2001 From: fuyi Date: Tue, 7 Nov 2023 09:51:39 +0800 Subject: [PATCH 1/2] add preVmMigrate, waiting zstack to add destuuid in preVmMigrate --- conf/springConfigXml/sugonSdnController.xml | 1 + .../network/TfMigrateVmBackend.java | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/conf/springConfigXml/sugonSdnController.xml b/conf/springConfigXml/sugonSdnController.xml index 02f8d5d414..f0ff6ad003 100644 --- a/conf/springConfigXml/sugonSdnController.xml +++ b/conf/springConfigXml/sugonSdnController.xml @@ -47,6 +47,7 @@ + diff --git a/plugin/sugonSdnController/src/main/java/org/zstack/sugonSdnController/network/TfMigrateVmBackend.java b/plugin/sugonSdnController/src/main/java/org/zstack/sugonSdnController/network/TfMigrateVmBackend.java index f54b1d608f..672e630f43 100644 --- a/plugin/sugonSdnController/src/main/java/org/zstack/sugonSdnController/network/TfMigrateVmBackend.java +++ b/plugin/sugonSdnController/src/main/java/org/zstack/sugonSdnController/network/TfMigrateVmBackend.java @@ -9,6 +9,7 @@ import org.zstack.core.cloudbus.CloudBus; import org.zstack.core.cloudbus.CloudBusCallBack; import org.zstack.core.db.DatabaseFacade; import org.zstack.core.db.Q; +import org.zstack.header.core.Completion; import org.zstack.header.errorcode.ErrorCode; import org.zstack.header.errorcode.OperationFailureException; import org.zstack.header.host.HostConstant; @@ -39,7 +40,7 @@ import java.util.stream.Collectors; import static org.zstack.core.Platform.operr; -public class TfMigrateVmBackend implements VmInstanceMigrateExtensionPoint { +public class TfMigrateVmBackend implements VmInstanceMigrateExtensionPoint, VmPreMigrationExtensionPoint { private static final CLogger logger = Utils.getLogger(TfMigrateVmBackend.class); public static final String NOTIFY_TF_NIC = "/vm/nodifytfnic"; @Autowired @@ -48,6 +49,7 @@ public class TfMigrateVmBackend implements VmInstanceMigrateExtensionPoint { private AccountManager accountMgr; @Autowired protected DatabaseFacade dbf; + public static class SugonNicNotifyCmd extends KVMAgentCommands.AgentCommand { private String sugonSdnAction; private List nics; @@ -91,6 +93,17 @@ public class TfMigrateVmBackend implements VmInstanceMigrateExtensionPoint { } + + @Override + public void preVmMigration(VmInstanceInventory vm, VmMigrationType type, Completion completion) { +// try { +// notifySugonSdn(vm, vm.getHostUuid(), "add"); +// completion.success(); +// } catch (OperationFailureException e) { +// completion.fail(e.getErrorCode()); +// } + } + @Override public void preMigrateVm(VmInstanceInventory inv, String destHostUuid) { // pre支持物理机+本地存储迁移,以及物理机+共享存储迁移,before不支持物理机+共享存储的迁移 -- Gitee From ffb9429345cdb778fb6ffacee218f7a0ac01e49a Mon Sep 17 00:00:00 2001 From: fuyi Date: Tue, 7 Nov 2023 10:08:58 +0800 Subject: [PATCH 2/2] add parameter for preVmMigration --- .../java/org/zstack/compute/vm/VmInstanceBase.java | 2 +- .../header/vm/VmPreMigrationExtensionPoint.java | 2 +- .../storage/primary/local/LocalStorageFactory.java | 2 +- .../network/TfMigrateVmBackend.java | 14 +++++++------- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/compute/src/main/java/org/zstack/compute/vm/VmInstanceBase.java b/compute/src/main/java/org/zstack/compute/vm/VmInstanceBase.java index 06d3a5ece1..28dafcede3 100755 --- a/compute/src/main/java/org/zstack/compute/vm/VmInstanceBase.java +++ b/compute/src/main/java/org/zstack/compute/vm/VmInstanceBase.java @@ -6561,7 +6561,7 @@ public class VmInstanceBase extends AbstractVmInstance { @Override public void run(FlowTrigger trigger, Map data) { new While<>(pluginRgty.getExtensionList(VmPreMigrationExtensionPoint.class)) - .each((extension, whileCompletion) -> extension.preVmMigration(inv, VmMigrationType.HostMigration, new Completion(whileCompletion) { + .each((extension, whileCompletion) -> extension.preVmMigration(inv, VmMigrationType.HostMigration, msg, new Completion(whileCompletion) { @Override public void success() { whileCompletion.done(); diff --git a/header/src/main/java/org/zstack/header/vm/VmPreMigrationExtensionPoint.java b/header/src/main/java/org/zstack/header/vm/VmPreMigrationExtensionPoint.java index 69e4e7f72a..dd6dbce9f6 100755 --- a/header/src/main/java/org/zstack/header/vm/VmPreMigrationExtensionPoint.java +++ b/header/src/main/java/org/zstack/header/vm/VmPreMigrationExtensionPoint.java @@ -6,5 +6,5 @@ import org.zstack.header.core.Completion; * Created by frank on 1/2/2016. */ public interface VmPreMigrationExtensionPoint { - void preVmMigration(VmInstanceInventory vm, VmMigrationType type, Completion completion); + void preVmMigration(VmInstanceInventory vm, VmMigrationType type, MigrateVmMessage msg, Completion completion); } diff --git a/plugin/localstorage/src/main/java/org/zstack/storage/primary/local/LocalStorageFactory.java b/plugin/localstorage/src/main/java/org/zstack/storage/primary/local/LocalStorageFactory.java index d9a97e5a69..a453dbab3a 100755 --- a/plugin/localstorage/src/main/java/org/zstack/storage/primary/local/LocalStorageFactory.java +++ b/plugin/localstorage/src/main/java/org/zstack/storage/primary/local/LocalStorageFactory.java @@ -987,7 +987,7 @@ public class LocalStorageFactory implements PrimaryStorageFactory, Component, } @Override - public void preVmMigration(VmInstanceInventory vm, VmMigrationType vmMigrationType, Completion completion) { + public void preVmMigration(VmInstanceInventory vm, VmMigrationType vmMigrationType, MigrateVmMessage msg, Completion completion) { if (!VmMigrationType.HostMigration.equals(vmMigrationType)) { completion.success(); return; diff --git a/plugin/sugonSdnController/src/main/java/org/zstack/sugonSdnController/network/TfMigrateVmBackend.java b/plugin/sugonSdnController/src/main/java/org/zstack/sugonSdnController/network/TfMigrateVmBackend.java index 672e630f43..3353b368c0 100644 --- a/plugin/sugonSdnController/src/main/java/org/zstack/sugonSdnController/network/TfMigrateVmBackend.java +++ b/plugin/sugonSdnController/src/main/java/org/zstack/sugonSdnController/network/TfMigrateVmBackend.java @@ -95,13 +95,13 @@ public class TfMigrateVmBackend implements VmInstanceMigrateExtensionPoint, VmPr @Override - public void preVmMigration(VmInstanceInventory vm, VmMigrationType type, Completion completion) { -// try { -// notifySugonSdn(vm, vm.getHostUuid(), "add"); -// completion.success(); -// } catch (OperationFailureException e) { -// completion.fail(e.getErrorCode()); -// } + public void preVmMigration(VmInstanceInventory vm, VmMigrationType type, MigrateVmMessage msg, Completion completion) { + try { + notifySugonSdn(vm, msg.getHostUuid(), "add"); + completion.success(); + } catch (OperationFailureException e) { + completion.fail(e.getErrorCode()); + } } @Override -- Gitee