From 314934e3aca7a1d6b60df544e015a3b5f4fce440 Mon Sep 17 00:00:00 2001 From: renyanda <781905270@qq.com> Date: Wed, 22 Nov 2023 18:14:54 +0800 Subject: [PATCH] fix(controller): fix multiple same env on console (#3014) --- .../mlops/domain/ft/FineTuneAppService.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/server/controller/src/main/java/ai/starwhale/mlops/domain/ft/FineTuneAppService.java b/server/controller/src/main/java/ai/starwhale/mlops/domain/ft/FineTuneAppService.java index bcb9ccd4d8..c0a09032bb 100644 --- a/server/controller/src/main/java/ai/starwhale/mlops/domain/ft/FineTuneAppService.java +++ b/server/controller/src/main/java/ai/starwhale/mlops/domain/ft/FineTuneAppService.java @@ -237,8 +237,22 @@ private String rewriteSpecEnvForRequest( if (null == env) { env = new ArrayList<>(); } - env.addAll(envSupplier.get()); - s.setEnv(env); + Map envMap = env.stream().collect(Collectors.toMap(Env::getName, Env::getValue)); + //if ENV vars in user's step spec conflicts with controller's, use controller's ENV + List controllerEnvs = envSupplier.get(); + if (null != controllerEnvs) { + envMap.putAll( + controllerEnvs.stream() + .filter(e -> null != e.getValue()) + .collect(Collectors.toMap(Env::getName, Env::getValue)) + ); + } + s.setEnv( + envMap.entrySet() + .stream() + .map(entry -> new Env(entry.getKey(), entry.getValue())) + .collect(Collectors.toList()) + ); s.verifyStepSpecArgs(); } stepSpecOverWrites = Constants.yamlMapper.writeValueAsString(steps);