Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -895,7 +895,7 @@ private void handle(APICreateVmNicMsg msg) {
FlowChain flowChain = FlowChainBuilder.newSimpleFlowChain();
flowChain.setName(String.format("create-nic-on-l3-network-%s", msg.getL3NetworkUuid()));
flowChain.then(new NoRollbackFlow() {
String __name__ = "create-nic-and-presist-to-db";
String __name__ = "create-nic-and-persist-to-db";

@Override
public void run(FlowTrigger trigger, Map data) {
Expand Down
5 changes: 2 additions & 3 deletions conf/db/zsv/V5.0.0__schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,12 @@ CREATE TABLE IF NOT EXISTS `zstack`.`VmHostFileVO` (

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

CREATE TABLE IF NOT EXISTS `zstack`.`VmHostFileContentVO` (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ public class CreateVolumesSnapshotMsg extends NeedReplyMessage implements NeedQu

private List<CreateVolumesSnapshotsJobStruct> volumeSnapshotJobs;

private boolean backupHostFileIfNeeded;

public String getAccountUuid() {
return accountUuid;
}
Expand Down Expand Up @@ -44,4 +46,12 @@ public ConsistentType getConsistentType() {
public void setConsistentType(ConsistentType consistentType) {
this.consistentType = consistentType;
}

public boolean isBackupHostFileIfNeeded() {
return backupHostFileIfNeeded;
}

public void setBackupHostFileIfNeeded(boolean backupHostFileIfNeeded) {
this.backupHostFileIfNeeded = backupHostFileIfNeeded;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ public class CreateVolumesSnapshotOverlayInnerMsg extends NeedReplyMessage imple

private List<String> lockedVolumeUuids;

private boolean backupHostFileIfNeeded;

public List<String> getLockedVmInstanceUuids() {
return lockedVmInstanceUuids;
}
Expand Down Expand Up @@ -63,4 +65,12 @@ public ConsistentType getConsistentType() {
public void setConsistentType(ConsistentType consistentType) {
this.consistentType = consistentType;
}

public boolean isBackupHostFileIfNeeded() {
return backupHostFileIfNeeded;
}

public void setBackupHostFileIfNeeded(boolean backupHostFileIfNeeded) {
this.backupHostFileIfNeeded = backupHostFileIfNeeded;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
*/
public class CreateVolumesSnapshotOverlayInnerReply extends MessageReply {
private List<VolumeSnapshotInventory> inventories;
private List<String> hostBackupFileUuidList;

public List<VolumeSnapshotInventory> getInventories() {
return inventories;
Expand All @@ -17,4 +18,12 @@ public List<VolumeSnapshotInventory> getInventories() {
public void setInventories(List<VolumeSnapshotInventory> inventories) {
this.inventories = inventories;
}

public List<String> getHostBackupFileUuidList() {
return hostBackupFileUuidList;
}

public void setHostBackupFileUuidList(List<String> hostBackupFileUuidList) {
this.hostBackupFileUuidList = hostBackupFileUuidList;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
*/
public class CreateVolumesSnapshotReply extends MessageReply {
private List<VolumeSnapshotInventory> inventories;
private List<String> hostBackupFileUuidList;

public List<VolumeSnapshotInventory> getInventories() {
return inventories;
Expand All @@ -17,4 +18,12 @@ public List<VolumeSnapshotInventory> getInventories() {
public void setInventories(List<VolumeSnapshotInventory> inventories) {
this.inventories = inventories;
}

public List<String> getHostBackupFileUuidList() {
return hostBackupFileUuidList;
}

public void setHostBackupFileUuidList(List<String> hostBackupFileUuidList) {
this.hostBackupFileUuidList = hostBackupFileUuidList;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.zstack.header.vm.additions;

import org.zstack.header.vm.VmInstanceEO;
import org.zstack.header.vo.EntityGraph;
import org.zstack.header.vo.ForeignKey;
import org.zstack.header.vo.ResourceVO;
Expand All @@ -21,13 +20,12 @@
@Table
@EntityGraph(
friends = {
@EntityGraph.Neighbour(type = VmInstanceEO.class, myField = "vmInstanceUuid", targetField = "uuid"),
@EntityGraph.Neighbour(type = ResourceVO.class, myField = "resourceUuid", targetField = "uuid"),
}
)
public class VmHostBackupFileVO extends ResourceVO {
@Column
@ForeignKey(parentEntityClass = VmInstanceEO.class, onDeleteAction = ForeignKey.ReferenceOption.CASCADE)
private String vmInstanceUuid;
private String resourceUuid;
@Column
@Enumerated(EnumType.STRING)
private VmHostFileType type;
Expand All @@ -36,12 +34,12 @@ public class VmHostBackupFileVO extends ResourceVO {
@Column
private Timestamp lastOpDate;

public String getVmInstanceUuid() {
return vmInstanceUuid;
public String getResourceUuid() {
return resourceUuid;
}

public void setVmInstanceUuid(String vmInstanceUuid) {
this.vmInstanceUuid = vmInstanceUuid;
public void setResourceUuid(String resourceUuid) {
this.resourceUuid = resourceUuid;
}

public VmHostFileType getType() {
Expand Down Expand Up @@ -71,7 +69,7 @@ public void setLastOpDate(Timestamp lastOpDate) {
@Override
public String toString() {
return "VmHostBackupFileVO{" +
"vmInstanceUuid='" + vmInstanceUuid + '\'' +
"resourceUuid='" + resourceUuid + '\'' +
", type=" + type +
", createDate=" + createDate +
", lastOpDate=" + lastOpDate +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

@StaticMetamodel(VmHostBackupFileVO.class)
public class VmHostBackupFileVO_ extends ResourceVO_ {
public static volatile SingularAttribute<VmHostBackupFileVO, String> vmInstanceUuid;
public static volatile SingularAttribute<VmHostBackupFileVO, String> resourceUuid;
public static volatile SingularAttribute<VmHostBackupFileVO, VmHostFileType> type;
public static volatile SingularAttribute<VmHostBackupFileVO, Timestamp> createDate;
public static volatile SingularAttribute<VmHostBackupFileVO, Timestamp> lastOpDate;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package org.zstack.kvm.efi;

import org.zstack.header.message.NeedReplyMessage;

import java.util.List;

public class BackupVmHostFileMsg extends NeedReplyMessage {
private String vmUuid;
private String hostUuid;
private List<String> toResourceUuidList;

public String getVmUuid() {
return vmUuid;
}

public void setVmUuid(String vmUuid) {
this.vmUuid = vmUuid;
}

public String getHostUuid() {
return hostUuid;
}

public void setHostUuid(String hostUuid) {
this.hostUuid = hostUuid;
}

public List<String> getToResourceUuidList() {
return toResourceUuidList;
}

public void setToResourceUuidList(List<String> toResourceUuidList) {
this.toResourceUuidList = toResourceUuidList;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.zstack.kvm.efi;

import org.zstack.header.message.MessageReply;

import java.util.List;

public class BackupVmHostFileReply extends MessageReply {
private List<String> backupFileUuidList;

public List<String> getBackupFileUuidList() {
return backupFileUuidList;
}

public void setBackupFileUuidList(List<String> backupFileUuidList) {
this.backupFileUuidList = backupFileUuidList;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -556,7 +556,7 @@ public boolean skip(Map data) {
public void run(FlowTrigger trigger, Map data) {
context.vmBackupFileVO = Q.New(VmHostBackupFileVO.class)
.eq(VmHostBackupFileVO_.type, context.type)
.eq(VmHostBackupFileVO_.vmInstanceUuid, context.vmUuid)
.eq(VmHostBackupFileVO_.resourceUuid, context.vmUuid)
.orderByDesc(VmHostBackupFileVO_.lastOpDate)
.limit(1)
.find();
Expand Down Expand Up @@ -835,7 +835,7 @@ public void afterDestroyVm(VmInstanceInventory inv) {
.eq(VmHostFileVO_.vmInstanceUuid, vmUuid)
.delete();
SQL.New(VmHostBackupFileVO.class)
.eq(VmHostBackupFileVO_.vmInstanceUuid, vmUuid)
.eq(VmHostBackupFileVO_.resourceUuid, vmUuid)
.delete();
}

Expand Down
Loading