public G findInstanceByAgent()

in plugin-azure-server-base/src/main/java/jetbrains/buildServer/clouds/azure/AzureCloudClientBase.java [47:76]


  public G findInstanceByAgent(@NotNull final AgentDescription agent) {
    String instanceName = agent.getAvailableParameters().get(AzureProperties.INSTANCE_NAME);
    if (instanceName == null) {
      try {
        final String compressedConfigurationParameters = agent.getAvailableParameters().get("env." + AzureProperties.INSTANCE_ENV_VAR);
        if (StringUtil.isEmpty(compressedConfigurationParameters)) {
          return null;
        }
        final Map<String, String> configurationParameters = AzureCompress.INSTANCE.decode(compressedConfigurationParameters);
        if (CollectionUtils.isEmpty(configurationParameters)) {
          return null;
        }
        instanceName = configurationParameters.get(AzureProperties.INSTANCE_NAME);
      } catch (Exception e) {
        LOG.warnAndDebugDetails("Got exception while trying to parse agent configuration parameters from [env.TEAMCITY_AZURE]", e);
      }
      if (instanceName == null) {
        return null;
      }
    }

    for (T image : myImageMap.values()) {
      final G instanceById = image.findInstanceById(instanceName);
      if (instanceById != null) {
        return instanceById;
      }
    }

    return null;
  }