From 8c598a4365bca991fbf7fd83dd2e94a42d5f7136 Mon Sep 17 00:00:00 2001 From: mozhenghua Date: Fri, 19 Apr 2024 10:02:38 +0800 Subject: [PATCH] fix memory specification unit for token 'Mi' --- .../tis/coredefine/module/action/Specification.java | 6 +++--- .../coredefine/module/action/TestSpecification.java | 12 ++++++++++++ tis-console.yaml | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/tis-builder-api/src/main/java/com/qlangtech/tis/coredefine/module/action/Specification.java b/tis-builder-api/src/main/java/com/qlangtech/tis/coredefine/module/action/Specification.java index d4d260135..f79e3f9fb 100644 --- a/tis-builder-api/src/main/java/com/qlangtech/tis/coredefine/module/action/Specification.java +++ b/tis-builder-api/src/main/java/com/qlangtech/tis/coredefine/module/action/Specification.java @@ -32,7 +32,7 @@ */ public class Specification { - private static final Pattern p = Pattern.compile("(\\d+(\\.\\d)?)([mGM]?)"); + private static final Pattern p = Pattern.compile("(\\d+(\\.\\d)?)(([mGM]|Mi)?)"); public static Specification parse(String val) { Matcher m = p.matcher(val); @@ -72,7 +72,7 @@ public int normalizeMemory() { */ public int normalizeMemory(Optional proportion) { float result = 0; - if ("M".equals(this.getUnit())) { + if ("Mi".equals(this.getUnit()) || "M".equals(this.getUnit())) { result = this.getVal(); } else if ("G".equals(this.getUnit())) { result = this.getVal() * 1024; @@ -103,7 +103,7 @@ public int normalizeCPU() { } else { throw new IllegalStateException("invalid cpu unit:" + this.getUnit()); } - return (int)result; + return (int) result; } public boolean memoryBigThan(Specification spec) { diff --git a/tis-builder-api/src/test/java/com/qlangtech/tis/coredefine/module/action/TestSpecification.java b/tis-builder-api/src/test/java/com/qlangtech/tis/coredefine/module/action/TestSpecification.java index 1f0055173..6f9b8fd77 100644 --- a/tis-builder-api/src/test/java/com/qlangtech/tis/coredefine/module/action/TestSpecification.java +++ b/tis-builder-api/src/test/java/com/qlangtech/tis/coredefine/module/action/TestSpecification.java @@ -19,6 +19,7 @@ package com.qlangtech.tis.coredefine.module.action; import junit.framework.TestCase; +import org.apache.commons.lang.StringUtils; import java.util.Optional; @@ -39,5 +40,16 @@ public void testNormalizeMemory() { assertEquals("G", mem.getUnit()); assertEquals(1024, mem.normalizeMemory()); assertEquals(512, mem.normalizeMemory(Optional.of(50))); + + mem = Specification.parse("1500Mi"); + assertEquals("Mi", mem.getUnit()); + assertEquals(1500, mem.normalizeMemory()); + assertEquals(750, mem.normalizeMemory(Optional.of(50))); + + Specification cpu = Specification.parse("1500"); + + assertTrue(StringUtils.isEmpty( cpu.getUnit() )); + assertEquals(1500*1024, cpu.normalizeCPU()); + } } diff --git a/tis-console.yaml b/tis-console.yaml index e2c1b0c94..457c3965d 100644 --- a/tis-console.yaml +++ b/tis-console.yaml @@ -153,7 +153,7 @@ spec: mountPath: /opt/app/tis-uber/tis-assemble/conf/tis-web-config/ - name: tis-console-pvc mountPath: "/opt/data" - image: registry.cn-hangzhou.aliyuncs.com/tis/tis-console:4.0.0.32 + image: registry.cn-hangzhou.aliyuncs.com/tis/tis-console:4.0.0.35 # command: [ "/bin/sh", "-c", "sleep 1000000" ] ports: - name: tis-8080