Skip to content

Commit fcc7f82

Browse files
author
gitlab
committed
Merge branch 'ZSV-11263' into 'zsv_4.10.28'
<chore>[testlib]: support diskUsePrimaryStorage in disk block See merge request zstackio/zstack!9078
2 parents 3f6294a + 71c0f8b commit fcc7f82

3 files changed

Lines changed: 38 additions & 9 deletions

File tree

test/src/test/groovy/org/zstack/test/integration/image/DeleteIsoCase.groovy

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,10 @@ class DeleteIsoCase extends SubCase {
114114
useL3Networks("l3")
115115
useImage("iso_1")
116116
disk {
117+
name = "disk1"
117118
boot = true
118119
sizeGB(20)
120+
diskUsePrimaryStorage("local")
119121
}
120122
}
121123
}
@@ -125,10 +127,21 @@ class DeleteIsoCase extends SubCase {
125127
@Override
126128
void test() {
127129
env.create {
130+
prepare()
128131
testDeleteIso()
129132
}
130133
}
131134

135+
void prepare() {
136+
def vm = queryVmInstance {conditions = ["name=vm"]}[0] as VmInstanceInventory
137+
def localPs = env.inventoryByName("local") as PrimaryStorageInventory
138+
def volumes = vm.allVolumes.findAll {
139+
volume -> volume.name == "disk1"
140+
}
141+
assert volumes.size() == 1
142+
assert volumes[0].primaryStorageUuid == localPs.uuid
143+
}
144+
132145
void testDeleteIso() {
133146
VmGlobalConfig.VM_DEFAULT_CD_ROM_NUM.updateValue(3)
134147

testlib/src/main/java/org/zstack/testlib/VmDiskSpec.groovy

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import org.zstack.header.vm.DiskAO
44
import org.zstack.utils.data.SizeUnit
55

66
class VmDiskSpec extends Spec {
7+
private Closure primaryStorage = {}
8+
79
@SpecParam(required = false)
810
boolean boot
911
@SpecParam(required = false)
@@ -13,8 +15,6 @@ class VmDiskSpec extends Spec {
1315
@SpecParam(required = false)
1416
String architecture
1517
@SpecParam(required = false)
16-
String primaryStorageUuid
17-
@SpecParam(required = false)
1818
long size
1919
/**
2020
* allow: ImageVO.uuid
@@ -59,7 +59,7 @@ class VmDiskSpec extends Spec {
5959
ao.platform = platform
6060
ao.guestOsType = guestOsType
6161
ao.architecture = architecture
62-
ao.primaryStorageUuid = primaryStorageUuid
62+
ao.primaryStorageUuid = primaryStorage();
6363
ao.size = size
6464
ao.templateUuid = templateUuid
6565
ao.diskOfferingUuid = diskOfferingUuid
@@ -73,4 +73,16 @@ class VmDiskSpec extends Spec {
7373
void sizeGB(long sizeGB) {
7474
this.size = SizeUnit.GIGABYTE.toByte(sizeGB)
7575
}
76-
}
76+
77+
@SpecMethod
78+
void diskUsePrimaryStorage(String name) {
79+
preCreate {
80+
addDependency(name, PrimaryStorageSpec.class)
81+
}
82+
primaryStorage = {
83+
PrimaryStorageSpec spec = findSpec(name, PrimaryStorageSpec.class)
84+
assert spec != null: "cannot find primaryStorage[$name], check the vm block of environment"
85+
return spec.inventory.uuid
86+
}
87+
}
88+
}

testlib/src/main/java/org/zstack/testlib/VmSpec.groovy

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class VmSpec extends Spec implements HasSession {
3333
@SpecParam
3434
List<String> dataVolumeSystemTags = []
3535
private List<String> volumeToAttach = []
36-
private List<DiskAO> disks = []
36+
private List<VmDiskSpec> disks = []
3737

3838
VmInstanceInventory inventory
3939

@@ -172,7 +172,7 @@ class VmSpec extends Spec implements HasSession {
172172
c.resolveStrategy = Closure.DELEGATE_FIRST
173173
c()
174174
addChild(diskSpec)
175-
disks << diskSpec.toDiskAO()
175+
disks << diskSpec
176176
return diskSpec
177177
}
178178

@@ -199,10 +199,14 @@ class VmSpec extends Spec implements HasSession {
199199
delegate.virtio = virtio
200200

201201
if (!disks.isEmpty()) {
202-
if (disks.every { (!it.boot) }) {
203-
disks.first().boot = true
202+
List<DiskAO> diskAOs = []
203+
for (VmDiskSpec disk : disks) {
204+
diskAOs << disk.toDiskAO()
204205
}
205-
delegate.diskAOs = disks
206+
if (diskAOs.every { (!it.boot) }) {
207+
diskAOs.first().boot = true
208+
}
209+
delegate.diskAOs = diskAOs
206210
}
207211
}
208212

0 commit comments

Comments
 (0)