Skip to content

Commit 4c4b4c4

Browse files
author
gitlab
committed
Merge branch 'zsv-ldap-2@@2' into 'feature-zsv-5.0.0-vm-support-vtpm-and-secuceboot'
<feature>[kvm]: support take snapshot on VM offline See merge request zstackio/zstack!9421
2 parents 4ab7d1b + 0435fd7 commit 4c4b4c4

14 files changed

Lines changed: 328 additions & 143 deletions

File tree

compute/src/main/java/org/zstack/compute/vm/VmInstanceManagerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,7 @@ private void handle(APICreateVmNicMsg msg) {
895895
FlowChain flowChain = FlowChainBuilder.newSimpleFlowChain();
896896
flowChain.setName(String.format("create-nic-on-l3-network-%s", msg.getL3NetworkUuid()));
897897
flowChain.then(new NoRollbackFlow() {
898-
String __name__ = "create-nic-and-presist-to-db";
898+
String __name__ = "create-nic-and-persist-to-db";
899899

900900
@Override
901901
public void run(FlowTrigger trigger, Map data) {

conf/db/zsv/V5.0.0__schema.sql

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,12 @@ CREATE TABLE IF NOT EXISTS `zstack`.`VmHostFileVO` (
2525

2626
CREATE TABLE IF NOT EXISTS `zstack`.`VmHostBackupFileVO` (
2727
`uuid` char(32) NOT NULL UNIQUE,
28-
`vmInstanceUuid` char(32) NOT NULL,
28+
`resourceUuid` char(32) NOT NULL,
2929
`type` varchar(64) NOT NULL COMMENT 'NvRam, TpmState',
3030
`lastOpDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
3131
`createDate` timestamp NOT NULL DEFAULT '1999-12-31 23:59:59',
3232
PRIMARY KEY (`uuid`),
33-
INDEX `idxVmHostBackupFileVOVmInstanceUuid` (`vmInstanceUuid`),
34-
UNIQUE KEY `ukVmHostBackupFileVO` (`vmInstanceUuid`, `type`)
33+
UNIQUE KEY `ukVmHostBackupFileVO` (`resourceUuid`, `type`)
3534
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3635

3736
CREATE TABLE IF NOT EXISTS `zstack`.`VmHostFileContentVO` (

header/src/main/java/org/zstack/header/storage/snapshot/CreateVolumesSnapshotMsg.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ public class CreateVolumesSnapshotMsg extends NeedReplyMessage implements NeedQu
1616

1717
private List<CreateVolumesSnapshotsJobStruct> volumeSnapshotJobs;
1818

19+
private boolean backupHostFileIfNeeded;
20+
1921
public String getAccountUuid() {
2022
return accountUuid;
2123
}
@@ -44,4 +46,12 @@ public ConsistentType getConsistentType() {
4446
public void setConsistentType(ConsistentType consistentType) {
4547
this.consistentType = consistentType;
4648
}
49+
50+
public boolean isBackupHostFileIfNeeded() {
51+
return backupHostFileIfNeeded;
52+
}
53+
54+
public void setBackupHostFileIfNeeded(boolean backupHostFileIfNeeded) {
55+
this.backupHostFileIfNeeded = backupHostFileIfNeeded;
56+
}
4757
}

header/src/main/java/org/zstack/header/storage/snapshot/CreateVolumesSnapshotOverlayInnerMsg.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public class CreateVolumesSnapshotOverlayInnerMsg extends NeedReplyMessage imple
1919

2020
private List<String> lockedVolumeUuids;
2121

22+
private boolean backupHostFileIfNeeded;
23+
2224
public List<String> getLockedVmInstanceUuids() {
2325
return lockedVmInstanceUuids;
2426
}
@@ -63,4 +65,12 @@ public ConsistentType getConsistentType() {
6365
public void setConsistentType(ConsistentType consistentType) {
6466
this.consistentType = consistentType;
6567
}
68+
69+
public boolean isBackupHostFileIfNeeded() {
70+
return backupHostFileIfNeeded;
71+
}
72+
73+
public void setBackupHostFileIfNeeded(boolean backupHostFileIfNeeded) {
74+
this.backupHostFileIfNeeded = backupHostFileIfNeeded;
75+
}
6676
}

header/src/main/java/org/zstack/header/storage/snapshot/CreateVolumesSnapshotOverlayInnerReply.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
public class CreateVolumesSnapshotOverlayInnerReply extends MessageReply {
1111
private List<VolumeSnapshotInventory> inventories;
12+
private List<String> hostBackupFileUuidList;
1213

1314
public List<VolumeSnapshotInventory> getInventories() {
1415
return inventories;
@@ -17,4 +18,12 @@ public List<VolumeSnapshotInventory> getInventories() {
1718
public void setInventories(List<VolumeSnapshotInventory> inventories) {
1819
this.inventories = inventories;
1920
}
21+
22+
public List<String> getHostBackupFileUuidList() {
23+
return hostBackupFileUuidList;
24+
}
25+
26+
public void setHostBackupFileUuidList(List<String> hostBackupFileUuidList) {
27+
this.hostBackupFileUuidList = hostBackupFileUuidList;
28+
}
2029
}

header/src/main/java/org/zstack/header/storage/snapshot/CreateVolumesSnapshotReply.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
public class CreateVolumesSnapshotReply extends MessageReply {
1111
private List<VolumeSnapshotInventory> inventories;
12+
private List<String> hostBackupFileUuidList;
1213

1314
public List<VolumeSnapshotInventory> getInventories() {
1415
return inventories;
@@ -17,4 +18,12 @@ public List<VolumeSnapshotInventory> getInventories() {
1718
public void setInventories(List<VolumeSnapshotInventory> inventories) {
1819
this.inventories = inventories;
1920
}
21+
22+
public List<String> getHostBackupFileUuidList() {
23+
return hostBackupFileUuidList;
24+
}
25+
26+
public void setHostBackupFileUuidList(List<String> hostBackupFileUuidList) {
27+
this.hostBackupFileUuidList = hostBackupFileUuidList;
28+
}
2029
}

header/src/main/java/org/zstack/header/vm/additions/VmHostBackupFileVO.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.zstack.header.vm.additions;
22

3-
import org.zstack.header.vm.VmInstanceEO;
43
import org.zstack.header.vo.EntityGraph;
54
import org.zstack.header.vo.ForeignKey;
65
import org.zstack.header.vo.ResourceVO;
@@ -21,13 +20,12 @@
2120
@Table
2221
@EntityGraph(
2322
friends = {
24-
@EntityGraph.Neighbour(type = VmInstanceEO.class, myField = "vmInstanceUuid", targetField = "uuid"),
23+
@EntityGraph.Neighbour(type = ResourceVO.class, myField = "resourceUuid", targetField = "uuid"),
2524
}
2625
)
2726
public class VmHostBackupFileVO extends ResourceVO {
2827
@Column
29-
@ForeignKey(parentEntityClass = VmInstanceEO.class, onDeleteAction = ForeignKey.ReferenceOption.CASCADE)
30-
private String vmInstanceUuid;
28+
private String resourceUuid;
3129
@Column
3230
@Enumerated(EnumType.STRING)
3331
private VmHostFileType type;
@@ -36,12 +34,12 @@ public class VmHostBackupFileVO extends ResourceVO {
3634
@Column
3735
private Timestamp lastOpDate;
3836

39-
public String getVmInstanceUuid() {
40-
return vmInstanceUuid;
37+
public String getResourceUuid() {
38+
return resourceUuid;
4139
}
4240

43-
public void setVmInstanceUuid(String vmInstanceUuid) {
44-
this.vmInstanceUuid = vmInstanceUuid;
41+
public void setResourceUuid(String resourceUuid) {
42+
this.resourceUuid = resourceUuid;
4543
}
4644

4745
public VmHostFileType getType() {
@@ -71,7 +69,7 @@ public void setLastOpDate(Timestamp lastOpDate) {
7169
@Override
7270
public String toString() {
7371
return "VmHostBackupFileVO{" +
74-
"vmInstanceUuid='" + vmInstanceUuid + '\'' +
72+
"resourceUuid='" + resourceUuid + '\'' +
7573
", type=" + type +
7674
", createDate=" + createDate +
7775
", lastOpDate=" + lastOpDate +

header/src/main/java/org/zstack/header/vm/additions/VmHostBackupFileVO_.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
@StaticMetamodel(VmHostBackupFileVO.class)
1010
public class VmHostBackupFileVO_ extends ResourceVO_ {
11-
public static volatile SingularAttribute<VmHostBackupFileVO, String> vmInstanceUuid;
11+
public static volatile SingularAttribute<VmHostBackupFileVO, String> resourceUuid;
1212
public static volatile SingularAttribute<VmHostBackupFileVO, VmHostFileType> type;
1313
public static volatile SingularAttribute<VmHostBackupFileVO, Timestamp> createDate;
1414
public static volatile SingularAttribute<VmHostBackupFileVO, Timestamp> lastOpDate;
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.zstack.kvm.efi;
2+
3+
import org.zstack.header.message.NeedReplyMessage;
4+
5+
import java.util.List;
6+
7+
public class BackupVmHostFileMsg extends NeedReplyMessage {
8+
private String vmUuid;
9+
private String hostUuid;
10+
private List<String> toResourceUuidList;
11+
12+
public String getVmUuid() {
13+
return vmUuid;
14+
}
15+
16+
public void setVmUuid(String vmUuid) {
17+
this.vmUuid = vmUuid;
18+
}
19+
20+
public String getHostUuid() {
21+
return hostUuid;
22+
}
23+
24+
public void setHostUuid(String hostUuid) {
25+
this.hostUuid = hostUuid;
26+
}
27+
28+
public List<String> getToResourceUuidList() {
29+
return toResourceUuidList;
30+
}
31+
32+
public void setToResourceUuidList(List<String> toResourceUuidList) {
33+
this.toResourceUuidList = toResourceUuidList;
34+
}
35+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.zstack.kvm.efi;
2+
3+
import org.zstack.header.message.MessageReply;
4+
5+
import java.util.List;
6+
7+
public class BackupVmHostFileReply extends MessageReply {
8+
private List<String> backupFileUuidList;
9+
10+
public List<String> getBackupFileUuidList() {
11+
return backupFileUuidList;
12+
}
13+
14+
public void setBackupFileUuidList(List<String> backupFileUuidList) {
15+
this.backupFileUuidList = backupFileUuidList;
16+
}
17+
}

0 commit comments

Comments
 (0)