Skip to content

Commit 831fdf4

Browse files
AlanJagerclaude
andcommitted
<fix>[test]: fix TagPatternResourceTypeCase CI failure
- Set accountUuid on all dbf.persist() calls (OwnedByAccount requires it) - Replace Q.New() metamodel queries with SQL.New() HQL (metamodel NPE) ZSTAC-74908 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 7e34564 commit 831fdf4

1 file changed

Lines changed: 21 additions & 17 deletions

File tree

test/src/test/groovy/org/zstack/test/integration/configuration/systemTag/TagPatternResourceTypeCase.groovy

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ package org.zstack.test.integration.configuration.systemTag
22

33
import org.zstack.core.Platform
44
import org.zstack.core.db.DatabaseFacade
5-
import org.zstack.core.db.Q
65
import org.zstack.core.db.SQL
6+
import org.zstack.header.identity.AccountConstant
77
import org.zstack.header.tag.TagPatternType
88
import org.zstack.header.tag.TagPatternVO
9-
import org.zstack.header.tag.TagPatternVO_
109
import org.zstack.testlib.EnvSpec
1110
import org.zstack.testlib.SubCase
1211

@@ -57,6 +56,7 @@ class TagPatternResourceTypeCase extends SubCase {
5756
universal.setColor("red")
5857
universal.setType(TagPatternType.simple)
5958
universal.setResourceType(null) // null = universal
59+
universal.setAccountUuid(AccountConstant.INITIAL_SYSTEM_ADMIN_UUID)
6060
dbf.persist(universal)
6161

6262
// Verify it can be found without any resourceType filter
@@ -66,11 +66,11 @@ class TagPatternResourceTypeCase extends SubCase {
6666

6767
// Verify it appears in queries for any resource type
6868
// Simulating the filter: resourceType IS NULL OR resourceType = 'ZoneVO'
69-
long count = Q.New(TagPatternVO.class)
70-
.eq(TagPatternVO_.uuid, universal.getUuid())
71-
.isNull(TagPatternVO_.resourceType)
72-
.count()
73-
assert count == 1
69+
List<TagPatternVO> results = SQL.New(
70+
"select tp from TagPatternVO tp where tp.uuid = :uuid and tp.resourceType is null",
71+
TagPatternVO.class
72+
).param("uuid", universal.getUuid()).list()
73+
assert results.size() == 1
7474

7575
// Clean up
7676
dbf.removeByPrimaryKey(universal.getUuid(), TagPatternVO.class)
@@ -89,25 +89,26 @@ class TagPatternResourceTypeCase extends SubCase {
8989
aiTag.setColor("blue")
9090
aiTag.setType(TagPatternType.simple)
9191
aiTag.setResourceType("ModelVO")
92+
aiTag.setAccountUuid(AccountConstant.INITIAL_SYSTEM_ADMIN_UUID)
9293
dbf.persist(aiTag)
9394

9495
TagPatternVO found = dbf.findByUuid(aiTag.getUuid(), TagPatternVO.class)
9596
assert found != null
9697
assert found.getResourceType() == "ModelVO"
9798

9899
// Should be found when filtering for ModelVO
99-
long modelCount = Q.New(TagPatternVO.class)
100-
.eq(TagPatternVO_.uuid, aiTag.getUuid())
101-
.eq(TagPatternVO_.resourceType, "ModelVO")
102-
.count()
103-
assert modelCount == 1
100+
List<TagPatternVO> modelResults = SQL.New(
101+
"select tp from TagPatternVO tp where tp.uuid = :uuid and tp.resourceType = :resType",
102+
TagPatternVO.class
103+
).param("uuid", aiTag.getUuid()).param("resType", "ModelVO").list()
104+
assert modelResults.size() == 1
104105

105106
// Should NOT be found when filtering for VmInstanceVO
106-
long vmCount = Q.New(TagPatternVO.class)
107-
.eq(TagPatternVO_.uuid, aiTag.getUuid())
108-
.eq(TagPatternVO_.resourceType, "VmInstanceVO")
109-
.count()
110-
assert vmCount == 0
107+
List<TagPatternVO> vmResults = SQL.New(
108+
"select tp from TagPatternVO tp where tp.uuid = :uuid and tp.resourceType = :resType",
109+
TagPatternVO.class
110+
).param("uuid", aiTag.getUuid()).param("resType", "VmInstanceVO").list()
111+
assert vmResults.size() == 0
111112

112113
// Clean up
113114
dbf.removeByPrimaryKey(aiTag.getUuid(), TagPatternVO.class)
@@ -131,6 +132,7 @@ class TagPatternResourceTypeCase extends SubCase {
131132
universal.setColor("green")
132133
universal.setType(TagPatternType.simple)
133134
universal.setResourceType(null)
135+
universal.setAccountUuid(AccountConstant.INITIAL_SYSTEM_ADMIN_UUID)
134136
dbf.persist(universal)
135137

136138
// Create an AI-scoped tag
@@ -141,6 +143,7 @@ class TagPatternResourceTypeCase extends SubCase {
141143
aiTag.setColor("purple")
142144
aiTag.setType(TagPatternType.simple)
143145
aiTag.setResourceType("ModelVO")
146+
aiTag.setAccountUuid(AccountConstant.INITIAL_SYSTEM_ADMIN_UUID)
144147
dbf.persist(aiTag)
145148

146149
// Create a VM-scoped tag
@@ -151,6 +154,7 @@ class TagPatternResourceTypeCase extends SubCase {
151154
vmTag.setColor("orange")
152155
vmTag.setType(TagPatternType.simple)
153156
vmTag.setResourceType("VmInstanceVO")
157+
vmTag.setAccountUuid(AccountConstant.INITIAL_SYSTEM_ADMIN_UUID)
154158
dbf.persist(vmTag)
155159

156160
// Query for VmInstanceVO page: should see universal + VM tag, NOT AI tag

0 commit comments

Comments
 (0)