public String generateNewVmName()

in teamcity-kubernetes-plugin-server/src/main/java/jetbrains/buildServer/clouds/kubernetes/KubePodNameGeneratorImpl.java [106:130]


  public String generateNewVmName(@NotNull KubeCloudImage image) {
    try {
      myLock.readLock().lock();
      if (!myIsAvailable.get()){
        throw new CloudException("Unable to generate a name for image " + image.getId() + " - server is shutting down");
      }
      String newVmName;
      do {
        String prefix = image.getAgentNamePrefix();
        if (StringUtil.isEmptyOrSpaces(prefix)) {
          prefix = image.getDockerImage();
        }
        if (StringUtil.isEmptyOrSpaces(prefix)) {
          return UUID.randomUUID().toString();
        }
        prefix = StringUtil.replaceNonAlphaNumericChars(prefix.trim().toLowerCase(), '-');
        newVmName = String.format("%s-%d", prefix, getNextCounter(prefix));
        setTouched(prefix);

      } while (image.findInstanceById(newVmName) != null);
      return newVmName;
    } finally {
      myLock.readLock().unlock();
    }
  }