Skip to content

Commit 83017a2

Browse files
author
gitlab
committed
Merge branch 'chore' into '4.6.31'
<fix>[kvm]: restore the original os tag See merge request zstackio/zstack!3841
2 parents baa3bcc + 5fd00c9 commit 83017a2

File tree

4 files changed

+39
-5
lines changed

4 files changed

+39
-5
lines changed

compute/src/main/java/org/zstack/compute/host/HostSystemTags.java

+15
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,21 @@ public class HostSystemTags {
1717

1818
public static SystemTag LIVE_SNAPSHOT = new SystemTag("capability::liveSnapshot", HostVO.class);
1919

20+
@Deprecated
21+
public static String OS_DISTRIBUTION_TOKEN = "distribution";
22+
@Deprecated
23+
public static PatternedSystemTag OS_DISTRIBUTION = new PatternedSystemTag(String.format("os::distribution::{%s}", OS_DISTRIBUTION_TOKEN), HostVO.class);
24+
25+
@Deprecated
26+
public static String OS_RELEASE_TOKEN = "release";
27+
@Deprecated
28+
public static PatternedSystemTag OS_RELEASE = new PatternedSystemTag(String.format("os::release::{%s}", OS_RELEASE_TOKEN), HostVO.class);
29+
30+
@Deprecated
31+
public static String OS_VERSION_TOKEN = "version";
32+
@Deprecated
33+
public static PatternedSystemTag OS_VERSION = new PatternedSystemTag(String.format("os::version::{%s}", OS_VERSION_TOKEN), HostVO.class);
34+
2035
public static String EXTRA_IPS_TOKEN = "extraips";
2136
public static PatternedSystemTag EXTRA_IPS = new PatternedSystemTag(String.format("extraips::{%s}", EXTRA_IPS_TOKEN), HostVO.class);
2237

conf/db/upgrade/V4.6.31__schema.sql

-4
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,3 @@ DELIMITER ;
5656

5757
call moveOsInfoToKVMHostVO();
5858
DROP PROCEDURE IF EXISTS moveOsInfoToKVMHostVO;
59-
60-
DELETE FROM `zstack`.`SystemTagVO` WHERE tag LIKE 'os::distribution::%';
61-
DELETE FROM `zstack`.`SystemTagVO` WHERE tag LIKE 'os::release::%';
62-
DELETE FROM `zstack`.`SystemTagVO` WHERE tag LIKE 'os::version::%';

plugin/kvm/src/main/java/org/zstack/kvm/KVMHost.java

+5
Original file line numberDiff line numberDiff line change
@@ -3715,6 +3715,11 @@ private void updateHostOsInformation(String distro, String release, String versi
37153715
kvmHostVO.setOsRelease(release);
37163716
kvmHostVO.setOsVersion(version);
37173717
self = dbf.updateAndRefresh(kvmHostVO);
3718+
3719+
// for compatibility
3720+
createTagWithoutNonValue(HostSystemTags.OS_DISTRIBUTION, HostSystemTags.OS_DISTRIBUTION_TOKEN, distro, true);
3721+
createTagWithoutNonValue(HostSystemTags.OS_RELEASE, HostSystemTags.OS_RELEASE_TOKEN, release, true);
3722+
createTagWithoutNonValue(HostSystemTags.OS_VERSION, HostSystemTags.OS_VERSION_TOKEN, version, true);
37183723
}
37193724

37203725
private void createTagWithoutNonValue(SystemTag tag, String token, String value, boolean inherent) {

test/src/test/groovy/org/zstack/test/integration/kvm/host/AddHostCase.groovy

+19-1
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ import org.zstack.header.host.HostStatus
1111
import org.zstack.header.host.HostVO
1212
import org.zstack.kvm.APIAddKVMHostMsg
1313
import org.zstack.kvm.AddKVMHostMsg
14+
import org.zstack.kvm.KVMHostInventory
1415
import org.zstack.sdk.AddKVMHostAction
1516
import org.zstack.sdk.ClusterInventory
1617
import org.zstack.sdk.GetHypervisorTypesResult
1718
import org.zstack.sdk.LongJobInventory
19+
import org.zstack.sdk.SystemTagInventory
1820
import org.zstack.storage.primary.local.LocalStorageKvmBackend
1921
import org.zstack.test.integration.kvm.KvmTest
2022
import org.zstack.testlib.EnvSpec
@@ -222,7 +224,11 @@ class AddHostCase extends SubCase {
222224
}
223225

224226
void testInnerAddHostMsg() {
225-
env.afterSimulator(KVM_HOST_FACT_PATH) { HostFactResponse rsp -> rsp }
227+
String distribution = null
228+
env.afterSimulator(KVM_HOST_FACT_PATH) { HostFactResponse rsp ->
229+
distribution = rsp.osDistribution
230+
return rsp
231+
}
226232

227233
AddKVMHostMsg amsg = new AddKVMHostMsg()
228234
amsg.accountUuid = loginAsAdmin().accountUuid
@@ -236,6 +242,18 @@ class AddHostCase extends SubCase {
236242
bus.makeLocalServiceId(amsg, HostConstant.SERVICE_ID)
237243
AddHostReply reply = (AddHostReply) bus.call(amsg)
238244
assert reply.inventory.status == HostStatus.Connected.toString()
245+
246+
// For compatibility.
247+
// OS system tag is deprecated, check os version with KVMHostVO soon.
248+
def tags = querySystemTag {
249+
delegate.conditions = [
250+
"resourceUuid=${reply.inventory.uuid}",
251+
"tag=os::distribution::${distribution}"
252+
]
253+
} as List<SystemTagInventory>
254+
assert tags.size() == 1
255+
256+
assert (reply.inventory as KVMHostInventory).osDistribution == distribution
239257
}
240258

241259
void testGetHypervisorTypes() {

0 commit comments

Comments
 (0)