You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ad...@apache.org on 2018/11/26 20:52:32 UTC
[ambari] branch trunk updated: AMBARI-22643. Trying to create some
duplicate resources leads to HTTP 500 (#2650)
This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push:
new 93bfa66 AMBARI-22643. Trying to create some duplicate resources leads to HTTP 500 (#2650)
93bfa66 is described below
commit 93bfa6646545226c80eb149c10e20ece7b95fab9
Author: Doroszlai, Attila <64...@users.noreply.github.com>
AuthorDate: Mon Nov 26 21:52:26 2018 +0100
AMBARI-22643. Trying to create some duplicate resources leads to HTTP 500 (#2650)
---
.../server/controller/internal/CredentialResourceProvider.java | 3 ++-
.../controller/internal/RepositoryVersionResourceProvider.java | 7 ++++---
.../ambari/server/controller/internal/UserResourceProvider.java | 7 ++++---
.../controller/internal/VersionDefinitionResourceProvider.java | 4 ++--
4 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CredentialResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CredentialResourceProvider.java
index 9e6fe3d..309a71d 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CredentialResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CredentialResourceProvider.java
@@ -26,6 +26,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.ambari.server.AmbariException;
+import org.apache.ambari.server.DuplicateResourceException;
import org.apache.ambari.server.StaticallyInject;
import org.apache.ambari.server.controller.AmbariManagementController;
import org.apache.ambari.server.controller.spi.NoSuchParentResourceException;
@@ -368,7 +369,7 @@ public class CredentialResourceProvider extends AbstractControllerResourceProvid
String alias = getAlias(properties);
if (credentialStoreService.containsCredential(clusterName, alias)) {
- throw new AmbariException("A credential with the alias of " + alias + " already exists");
+ throw new DuplicateResourceException("A credential with the alias of " + alias + " already exists");
}
credentialStoreService.setCredential(clusterName, alias, createCredential(properties), credentialStoreType);
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java
index 81bf1fa..4645da4 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java
@@ -29,6 +29,7 @@ import java.util.Map.Entry;
import java.util.Set;
import org.apache.ambari.server.AmbariException;
+import org.apache.ambari.server.DuplicateResourceException;
import org.apache.ambari.server.ObjectNotFoundException;
import org.apache.ambari.server.api.resources.OperatingSystemResourceDefinition;
import org.apache.ambari.server.api.resources.RepositoryResourceDefinition;
@@ -201,10 +202,10 @@ public class RepositoryVersionResourceProvider extends AbstractAuthorizedResourc
RepositoryVersionEntity entity = toRepositoryVersionEntity(properties);
if (repositoryVersionDAO.findByDisplayName(entity.getDisplayName()) != null) {
- throw new AmbariException("Repository version with name " + entity.getDisplayName() + " already exists");
+ throw new DuplicateResourceException("Repository version with name " + entity.getDisplayName() + " already exists");
}
if (repositoryVersionDAO.findByStackAndVersion(entity.getStack(), entity.getVersion()) != null) {
- throw new AmbariException("Repository version for stack " + entity.getStack() + " and version " + entity.getVersion() + " already exists");
+ throw new DuplicateResourceException("Repository version for stack " + entity.getStack() + " and version " + entity.getVersion() + " already exists");
}
validateRepositoryVersion(repositoryVersionDAO, ambariMetaInfo, entity);
@@ -479,7 +480,7 @@ public class RepositoryVersionResourceProvider extends AbstractAuthorizedResourc
for (RepoDefinitionEntity repositoryEntity : os.getRepoDefinitionEntities()) {
String baseUrl = repositoryEntity.getBaseUrl();
if (!skipUrlCheck && os.isAmbariManaged() && existingRepoUrls.contains(baseUrl)) {
- throw new AmbariException("Base url " + baseUrl + " is already defined for another repository version. " +
+ throw new DuplicateResourceException("Base url " + baseUrl + " is already defined for another repository version. " +
"Setting up base urls that contain the same versions of components will cause stack upgrade to fail.");
}
}
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UserResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UserResourceProvider.java
index 73b7601..8c5a8ff 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UserResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UserResourceProvider.java
@@ -27,6 +27,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.ambari.server.AmbariException;
+import org.apache.ambari.server.DuplicateResourceException;
import org.apache.ambari.server.ObjectNotFoundException;
import org.apache.ambari.server.controller.AmbariManagementController;
import org.apache.ambari.server.controller.UserRequest;
@@ -170,7 +171,7 @@ public class UserResourceProvider extends AbstractControllerResourceProvider imp
public Void invoke() throws AmbariException {
try {
createUsers(requests);
- } catch (ResourceAlreadyExistsException | AuthorizationException e) {
+ } catch (AuthorizationException e) {
throw new AmbariException(e.getMessage(), e);
}
return null;
@@ -354,7 +355,7 @@ public class UserResourceProvider extends AbstractControllerResourceProvider imp
* @param requests the request objects which define the user.
* @throws AmbariException when the user cannot be created.
*/
- private void createUsers(Set<UserRequest> requests) throws AmbariException, ResourceAlreadyExistsException, AuthorizationException {
+ private void createUsers(Set<UserRequest> requests) throws AmbariException, AuthorizationException {
// First check for obvious issues... then try to create the accounts. This will help to avoid
// some accounts being created and some not due to an issue with one or more of the users.
for (UserRequest request : requests) {
@@ -371,7 +372,7 @@ public class UserResourceProvider extends AbstractControllerResourceProvider imp
} else {
message = "One or more of the requested usernames already exists.";
}
- throw new ResourceAlreadyExistsException(message);
+ throw new DuplicateResourceException(message);
}
}
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/VersionDefinitionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/VersionDefinitionResourceProvider.java
index 9f1d7ad..ecd848b 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/VersionDefinitionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/VersionDefinitionResourceProvider.java
@@ -296,7 +296,7 @@ public class VersionDefinitionResourceProvider extends AbstractAuthorizedResourc
if (dryRun) {
validations.add(err);
} else {
- throw new IllegalArgumentException(err);
+ throw new ResourceAlreadyExistsException(err);
}
}
@@ -307,7 +307,7 @@ public class VersionDefinitionResourceProvider extends AbstractAuthorizedResourc
if (dryRun) {
validations.add(err);
} else {
- throw new IllegalArgumentException(err);
+ throw new ResourceAlreadyExistsException(err);
}
}