Skip to content

Commit 6af440d

Browse files
author
Zhang Wenhao
committed
<feature>[kvm]: introduce VmHostBackupFileVO
Resolves: ZSV-11439 Related: ZSV-11310 Change-Id: I63706e6a7a75616366716574646a677a6e646276
1 parent 3031fbd commit 6af440d

5 files changed

Lines changed: 110 additions & 5 deletions

File tree

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

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ CREATE TABLE IF NOT EXISTS `zstack`.`VmHostFileVO` (
1313
`uuid` char(32) NOT NULL UNIQUE,
1414
`vmInstanceUuid` char(32) NOT NULL,
1515
`hostUuid` char(32) NOT NULL,
16-
`type` varchar(64) NOT NULL COMMENT 'NvRam, TpmState, NvRamBackup, TpmStateBackup',
16+
`type` varchar(64) NOT NULL COMMENT 'NvRam, TpmState',
1717
`path` varchar(1024) NOT NULL COMMENT 'Absolute path of the file on the host',
1818
`lastOpDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
1919
`createDate` timestamp NOT NULL DEFAULT '1999-12-31 23:59:59',
@@ -25,14 +25,26 @@ CREATE TABLE IF NOT EXISTS `zstack`.`VmHostFileVO` (
2525
UNIQUE KEY `ukVmHostFileVO` (`vmInstanceUuid`, `hostUuid`, `type`)
2626
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2727

28-
CREATE TABLE IF NOT EXISTS `zstack`.`VmHostFileContentVO` (
28+
CREATE TABLE IF NOT EXISTS `zstack`.`VmHostBackupFileVO` (
2929
`uuid` char(32) NOT NULL UNIQUE,
30+
`vmInstanceUuid` char(32) NOT NULL,
31+
`type` varchar(64) NOT NULL COMMENT 'NvRam, TpmState',
32+
`lastOpDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
33+
`createDate` timestamp NOT NULL DEFAULT '1999-12-31 23:59:59',
34+
PRIMARY KEY (`uuid`),
35+
INDEX `idxVmHostBackupFileVOVmInstanceUuid` (`vmInstanceUuid`),
36+
CONSTRAINT `fkVmHostBackupFileVOVmInstanceVO` FOREIGN KEY (`vmInstanceUuid`) REFERENCES `VmInstanceEO` (`uuid`) ON DELETE CASCADE,
37+
UNIQUE KEY `ukVmHostFileVO` (`vmInstanceUuid`, `type`)
38+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
39+
40+
CREATE TABLE IF NOT EXISTS `zstack`.`VmHostFileContentVO` (
41+
`uuid` char(32) NOT NULL UNIQUE COMMENT 'VmHostFileVO.uuid or VmHostFileBackupVO.uuid',
3042
`content` MEDIUMBLOB DEFAULT NULL,
3143
`format` varchar(64) NOT NULL COMMENT 'Raw, TarballGzip',
3244
`lastOpDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
3345
`createDate` timestamp NOT NULL DEFAULT '1999-12-31 23:59:59',
3446
PRIMARY KEY (`uuid`),
35-
CONSTRAINT `fkVmHostFileContentVOVmHostFileVO` FOREIGN KEY (`uuid`) REFERENCES `VmHostFileVO` (`uuid`) ON DELETE CASCADE
47+
CONSTRAINT `fkVmHostFileContentVOResourceVO` FOREIGN KEY (`uuid`) REFERENCES `ResourceVO` (`uuid`) ON DELETE CASCADE
3648
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3749

3850
-- Feature: KMS | ZSPHER-46, ZSPHER-60, ZSPHER-61, ZSPHER-62

conf/persistence.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<class>org.zstack.header.managementnode.ManagementNodeContextVO</class>
2121
<class>org.zstack.header.tpm.entity.TpmVO</class>
2222
<class>org.zstack.header.vm.additions.VmHostFileVO</class>
23+
<class>org.zstack.header.vm.additions.VmHostBackupFileVO</class>
2324
<class>org.zstack.header.vm.additions.VmHostFileContentVO</class>
2425
<class>org.zstack.header.zone.ZoneVO</class>
2526
<class>org.zstack.header.zone.ZoneEO</class>
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package org.zstack.header.vm.additions;
2+
3+
import org.zstack.header.vm.VmInstanceEO;
4+
import org.zstack.header.vo.EntityGraph;
5+
import org.zstack.header.vo.ForeignKey;
6+
7+
import javax.persistence.Column;
8+
import javax.persistence.Entity;
9+
import javax.persistence.EnumType;
10+
import javax.persistence.Enumerated;
11+
import javax.persistence.Table;
12+
import java.sql.Timestamp;
13+
14+
/**
15+
* Virtual Machine Host-side File Value Object (Backup files)
16+
*
17+
* Include: NvRam / TpmState files
18+
*/
19+
@Entity
20+
@Table
21+
@EntityGraph(
22+
friends = {
23+
@EntityGraph.Neighbour(type = VmInstanceEO.class, myField = "vmInstanceUuid", targetField = "uuid"),
24+
}
25+
)
26+
public class VmHostBackupFileVO {
27+
@Column
28+
@ForeignKey(parentEntityClass = VmInstanceEO.class, onDeleteAction = ForeignKey.ReferenceOption.CASCADE)
29+
private String vmInstanceUuid;
30+
@Column
31+
@Enumerated(EnumType.STRING)
32+
private VmHostFileType type;
33+
@Column
34+
private Timestamp createDate;
35+
@Column
36+
private Timestamp lastOpDate;
37+
38+
public String getVmInstanceUuid() {
39+
return vmInstanceUuid;
40+
}
41+
42+
public void setVmInstanceUuid(String vmInstanceUuid) {
43+
this.vmInstanceUuid = vmInstanceUuid;
44+
}
45+
46+
public VmHostFileType getType() {
47+
return type;
48+
}
49+
50+
public void setType(VmHostFileType type) {
51+
this.type = type;
52+
}
53+
54+
public Timestamp getCreateDate() {
55+
return createDate;
56+
}
57+
58+
public void setCreateDate(Timestamp createDate) {
59+
this.createDate = createDate;
60+
}
61+
62+
public Timestamp getLastOpDate() {
63+
return lastOpDate;
64+
}
65+
66+
public void setLastOpDate(Timestamp lastOpDate) {
67+
this.lastOpDate = lastOpDate;
68+
}
69+
70+
@Override
71+
public String toString() {
72+
return "VmHostBackupFileVO{" +
73+
"vmInstanceUuid='" + vmInstanceUuid + '\'' +
74+
", type=" + type +
75+
", createDate=" + createDate +
76+
", lastOpDate=" + lastOpDate +
77+
'}';
78+
}
79+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.zstack.header.vm.additions;
2+
3+
import org.zstack.header.vo.ResourceVO_;
4+
5+
import javax.persistence.metamodel.SingularAttribute;
6+
import javax.persistence.metamodel.StaticMetamodel;
7+
import java.sql.Timestamp;
8+
9+
@StaticMetamodel(VmHostBackupFileVO.class)
10+
public class VmHostBackupFileVO_ extends ResourceVO_ {
11+
public static volatile SingularAttribute<VmHostBackupFileVO, String> vmInstanceUuid;
12+
public static volatile SingularAttribute<VmHostBackupFileVO, VmHostFileType> type;
13+
public static volatile SingularAttribute<VmHostBackupFileVO, Timestamp> createDate;
14+
public static volatile SingularAttribute<VmHostBackupFileVO, Timestamp> lastOpDate;
15+
}

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,4 @@
33
public enum VmHostFileType {
44
NvRam,
55
TpmState,
6-
NvRamBackup,
7-
TpmStateBackup,
86
}

0 commit comments

Comments
 (0)