protected void doPost()

in cloud-vmware-server/src/main/java/jetbrains/buildServer/clouds/vmware/web/ConfigurationHelperController.java [46:100]


  protected void doPost(@NotNull final HttpServletRequest request, @NotNull final HttpServletResponse response, @NotNull final Element xmlResponse) {
    final BasePropertiesBean propsBean = new BasePropertiesBean(null);
    PluginPropertiesUtil.bindPropertiesFromRequest(request, propsBean, true);

    final Map<String, String> props = propsBean.getProperties();
    final String serverUrl = props.get(VMWareWebConstants.SERVER_URL);
    final String username = props.get(VMWareWebConstants.USERNAME);
    final String password = props.get(VMWareWebConstants.SECURE_PASSWORD);
    final String fieldId = props.get("helperFieldId");
    final String fieldValue = props.get("helperFieldValue");
    if (StringUtil.isEmpty(fieldId) || StringUtil.isEmpty(fieldValue))
      return;

    try {

      switch (fieldId) {
        case "respool": {
          final VMWareApiConnector myApiConnector = VmwareApiConnectorsPool.getOrCreateConnector(
            new URL(serverUrl), username, password, null, null, null, myStoreProvider);
          final Element canAddPoolElement = new Element("fieldValid");
          final boolean canAddVM2Pool =
            IOGuard.allowNetworkCall(()->myApiConnector.hasPrivilegeOnResource(fieldValue, ResourcePool.class, RESPOOL_PRIVILEGE));
          canAddPoolElement.setText(String.valueOf(canAddVM2Pool));
          xmlResponse.addContent((Content)canAddPoolElement);
          if (!canAddVM2Pool) {
            final Element errorCodeElement = new Element("errorCode");
            errorCodeElement.setText("noAccessPool");
            xmlResponse.addContent((Content)errorCodeElement);
          }
        }
        break;
        case "folder": {
          final VMWareApiConnector myApiConnector = VmwareApiConnectorsPool.getOrCreateConnector(
            new URL(serverUrl), username, password, null, null, null, myStoreProvider);
          final Element canAddPoolElement = new Element("fieldValid");
          final boolean canAddVM =
            IOGuard.allowNetworkCall(()->myApiConnector.hasPrivilegeOnResource(fieldValue, Folder.class, FOLDER_PRIVILEGE));
          canAddPoolElement.setText(String.valueOf(canAddVM));
          xmlResponse.addContent((Content)canAddPoolElement);
          if (!canAddVM) {
            final Element errorCodeElement = new Element("errorCode");
            errorCodeElement.setText("noAccessFolder");
            xmlResponse.addContent((Content)errorCodeElement);
          }
        }
        break;
        default:
          // do nothing
          break;
      }
    } catch (Exception e) {
      LOG.warnAndDebugDetails("Unable to perform check", e);
    }

  }