From 9773ba3e951e7d75284f027dc2a009cd04bc3197 Mon Sep 17 00:00:00 2001 From: Rene Glover Date: Thu, 7 Dec 2023 23:51:25 -0600 Subject: [PATCH] Allow autoscale group and name override (#8324) Updates AutoScaleManager/AutoScaleManagerImpl so that getNextVmHostName and checkAutoScaleVmGroupName can be overridden in derivative implementations to allow for custom naming conditions and restrictions. If possible, would like to include this in 4.19 since it is a trivial change. This can be used to create an extension of AutoScaleManagerImpl.java, overriding these 2 methods --- .../main/java/com/cloud/network/as/AutoScaleManager.java | 4 ++++ .../java/com/cloud/network/as/AutoScaleManagerImpl.java | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/cloud/network/as/AutoScaleManager.java b/server/src/main/java/com/cloud/network/as/AutoScaleManager.java index 1d829b1fcc5..cf6aab6a7bb 100644 --- a/server/src/main/java/com/cloud/network/as/AutoScaleManager.java +++ b/server/src/main/java/com/cloud/network/as/AutoScaleManager.java @@ -55,4 +55,8 @@ public interface AutoScaleManager extends AutoScaleService { void checkIfVmActionAllowed(Long vmId); void removeVmFromVmGroup(Long vmId); + + String getNextVmHostName(AutoScaleVmGroupVO asGroup); + + void checkAutoScaleVmGroupName(String groupName); } diff --git a/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java b/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java index 2f69ac6e9ba..c10ff89fa3d 100644 --- a/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java +++ b/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java @@ -1938,7 +1938,8 @@ public class AutoScaleManagerImpl extends ManagerBase implements AutoScaleManage } } - private String getNextVmHostName(AutoScaleVmGroupVO asGroup) { + @Override + public String getNextVmHostName(AutoScaleVmGroupVO asGroup) { String vmHostNameSuffix = "-" + asGroup.getNextVmSeq() + "-" + RandomStringUtils.random(VM_HOSTNAME_RANDOM_SUFFIX_LENGTH, 0, 0, true, false, (char[])null, new SecureRandom()).toLowerCase(); // Truncate vm group name because max length of vm name is 63 @@ -1946,7 +1947,8 @@ public class AutoScaleManagerImpl extends ManagerBase implements AutoScaleManage return VM_HOSTNAME_PREFIX + asGroup.getName().substring(0, subStringLength) + vmHostNameSuffix; } - private void checkAutoScaleVmGroupName(String groupName) { + @Override + public void checkAutoScaleVmGroupName(String groupName) { String errorMessage = ""; if (groupName == null || groupName.length() > 255 || groupName.length() < 1) { errorMessage = "AutoScale Vm Group name must be between 1 and 255 characters long";