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);
}
}