From db7e3de3206187d66b4c6d36d02fbd1b1107e71c Mon Sep 17 00:00:00 2001 From: "lin.ma" Date: Thu, 18 Sep 2025 13:10:27 +0800 Subject: [PATCH] [compute]: first create of zone set default Resolves: ZSTAC-75952 Change-Id: I6c7a6f627a6c76796e656c6b7962796a7570736b --- .../java/org/zstack/compute/zone/ZoneManagerImpl.java | 10 ++++++---- .../zstack/test/integration/compute/ZoneCase.groovy | 11 +++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/compute/src/main/java/org/zstack/compute/zone/ZoneManagerImpl.java b/compute/src/main/java/org/zstack/compute/zone/ZoneManagerImpl.java index 794c34a92fa..860a0d53d8d 100755 --- a/compute/src/main/java/org/zstack/compute/zone/ZoneManagerImpl.java +++ b/compute/src/main/java/org/zstack/compute/zone/ZoneManagerImpl.java @@ -5,10 +5,7 @@ import org.zstack.core.cloudbus.CloudBus; import org.zstack.core.cloudbus.MessageSafe; import org.zstack.core.componentloader.PluginRegistry; -import org.zstack.core.db.DatabaseFacade; -import org.zstack.core.db.DbEntityLister; -import org.zstack.core.db.SQL; -import org.zstack.core.db.SQLBatch; +import org.zstack.core.db.*; import org.zstack.core.errorcode.ErrorFacade; import org.zstack.core.thread.ChainTask; import org.zstack.core.thread.SyncTaskChain; @@ -160,6 +157,11 @@ protected void scripts() { } private void createZone(APICreateZoneMsg msg, ReturnValueCompletion completion) { + Long existCount = Q.New(ZoneVO.class).count(); + if (existCount == 0) { + msg.setDefault(true); + } + if (msg.getDefault() == null || !msg.getDefault()) { completion.success(createZoneFromApiMessage(msg)); return; diff --git a/test/src/test/groovy/org/zstack/test/integration/compute/ZoneCase.groovy b/test/src/test/groovy/org/zstack/test/integration/compute/ZoneCase.groovy index 67e86160548..7c4bae4134c 100644 --- a/test/src/test/groovy/org/zstack/test/integration/compute/ZoneCase.groovy +++ b/test/src/test/groovy/org/zstack/test/integration/compute/ZoneCase.groovy @@ -33,6 +33,7 @@ class ZoneCase extends SubCase { @Override void test() { env.create { + testFirstZoneSetDefaultZone() testCreateZoneAsDefaultZone() testBatchCreateZoneAsDefaultZone() testUpdateZoneToDefaultZone() @@ -48,6 +49,16 @@ class ZoneCase extends SubCase { env.delete() } + void testFirstZoneSetDefaultZone() { + ZoneInventory zone = createZone { + name = "FirstZone" + description = "first zone" + } as ZoneInventory + + assert zone != null + assert zone.isDefault + } + void testCreateZoneAsDefaultZone() { ZoneInventory zone = createZone { name = "zone1"