protected void doPost()

in aws-core-server/src/main/java/jetbrains/buildServer/serverSide/oauth/aws/controllers/AwsTestConnectionController.java [58:102]


  protected void doPost(@NotNull final HttpServletRequest request, @NotNull final HttpServletResponse response, @NotNull final Element xmlResponse) {
    Loggers.CLOUD.debug("AWS Connection testing has been requested.");

    String externalProjectId = request.getParameter("projectId");
    String internalProjectId = "";
    SProject project = myProjectManager.findProjectByExternalId(externalProjectId);
    if (project != null) {
      internalProjectId = project.getProjectId();
    }

    myPermissionChecker.checkUserPermission(internalProjectId, externalProjectId, request);

    ActionErrors errors = new ActionErrors();

    BasePropertiesBean basePropertiesBean = new BasePropertiesBean(null);
    PluginPropertiesUtil.bindPropertiesFromRequest(request, basePropertiesBean);
    Map<String, String> connectionProperties = basePropertiesBean.getProperties();

    try {
      List<InvalidProperty> invalidProperties = myAwsConnectionTester.getInvalidProperties(connectionProperties);

      if (invalidProperties.isEmpty()) {
        AwsTestConnectionResult testConnectionResult = myAwsConnectionTester.testConnection(
          new ProjectFeatureDescriptorImpl(
            StringUtil.emptyIfNull(request.getParameter("connectionId")),
            AwsConnectionProvider.TYPE,
            connectionProperties,
            internalProjectId
          )
        );
        GetCallerIdentityResponse getCallerIdentityResult = testConnectionResult.getGetCallerIdentityResult();
        xmlResponse.addContent(createCallerIdentityElement(getCallerIdentityResult));
      } else {
        for (InvalidProperty invalidProp : invalidProperties) {
          errors.addError(invalidProp);
        }
      }
    } catch (Exception e) {
      handleException(e, errors);
    }

    if (errors.hasErrors()) {
      errors.serialize(xmlResponse);
    }
  }