AMBARI-21289. Service creation requires a repository id, not a string version (ncole)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/43a86720 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/43a86720 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/43a86720 Branch: refs/heads/trunk Commit: 43a867206432319fea28417b3687069cc4f9305d Parents: e2b8764 Author: Nate Cole <[email protected]> Authored: Tue Jun 20 17:05:05 2017 -0400 Committer: Nate Cole <[email protected]> Committed: Wed Jun 21 11:35:40 2017 -0400 ---------------------------------------------------------------------- .../AmbariManagementControllerImpl.java | 12 - .../server/controller/ClusterRequest.java | 16 -- .../server/controller/ServiceRequest.java | 24 +- .../server/controller/ServiceResponse.java | 18 +- .../internal/ClusterResourceProvider.java | 6 - .../internal/ServiceResourceProvider.java | 64 ++---- .../apache/ambari/server/state/ServiceImpl.java | 2 + .../ambari/server/state/UpgradeContext.java | 4 + .../ambari/server/topology/AmbariContext.java | 26 ++- .../ambari/server/topology/TopologyManager.java | 6 +- .../AmbariCustomCommandExecutionHelperTest.java | 4 +- .../AmbariManagementControllerImplTest.java | 62 +----- .../AmbariManagementControllerTest.java | 221 +++++++++---------- .../BackgroundCustomCommandExecutionTest.java | 2 +- ...hYarnCapacitySchedulerReleaseConfigTest.java | 2 +- .../internal/ClusterResourceProviderTest.java | 2 - .../internal/JMXHostProviderTest.java | 3 +- .../internal/ServiceResourceProviderTest.java | 6 +- .../server/topology/AmbariContextTest.java | 18 +- 19 files changed, 211 insertions(+), 287 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java index 8d262e2..1bdd8a9 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java @@ -452,18 +452,6 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle throw new StackAccessException("stackName=" + stackId.getStackName() + ", stackVersion=" + stackId.getStackVersion()); } - RepositoryVersionEntity versionEntity = null; - - if (null != request.getRepositoryVersion()) { - versionEntity = repositoryVersionDAO.findByStackAndVersion(stackId, - request.getRepositoryVersion()); - - if (null == versionEntity) { - throw new AmbariException(String.format("Tried to create a cluster on version %s, but that version doesn't exist", - request.getRepositoryVersion())); - } - } - // FIXME add support for desired configs at cluster level boolean foundInvalidHosts = false; http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterRequest.java index ca6efa5..12d50b0 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterRequest.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterRequest.java @@ -41,7 +41,6 @@ public class ClusterRequest { private List<ConfigurationRequest> configs; private ServiceConfigVersionRequest serviceConfigVersionRequest; private final Map<String, Object> sessionAttributes; - private String repositoryVersion; // ----- Constructors ------------------------------------------------------ @@ -179,19 +178,4 @@ public class ClusterRequest { this.serviceConfigVersionRequest = serviceConfigVersionRequest; } - /** - * @param version the repo version to use - */ - public void setRepositoryVersion(String version) { - repositoryVersion = version; - } - - /** - * @return the repo version to use - */ - @ApiModelProperty(name = ClusterResourceProvider.REPO_VERSION) - public String getRepositoryVersion() { - return repositoryVersion; - } - } http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java index 10f8e81..3b3c940 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java @@ -30,26 +30,24 @@ public class ServiceRequest { private String credentialStoreEnabled; // CREATE/UPDATE/GET private String credentialStoreSupported; //GET - private String desiredStack; - private String desiredRepositoryVersion; + private Long desiredRepositoryVersionId; /** * Short-lived object that gets set while validating a request */ private RepositoryVersionEntity resolvedRepository; - public ServiceRequest(String clusterName, String serviceName, String desiredStack, - String desiredRepositoryVersion, String desiredState) { - this(clusterName, serviceName, desiredStack, desiredRepositoryVersion, desiredState, null); + public ServiceRequest(String clusterName, String serviceName, + Long desiredRepositoryVersionId, String desiredState) { + this(clusterName, serviceName, desiredRepositoryVersionId, desiredState, null); } - public ServiceRequest(String clusterName, String serviceName, String desiredStack, - String desiredRepositoryVersion, String desiredState, String credentialStoreEnabled) { + public ServiceRequest(String clusterName, String serviceName, + Long desiredRepositoryVersionId, String desiredState, String credentialStoreEnabled) { this.clusterName = clusterName; this.serviceName = serviceName; this.desiredState = desiredState; - this.desiredStack = desiredStack; - this.desiredRepositoryVersion = desiredRepositoryVersion; + this.desiredRepositoryVersionId = desiredRepositoryVersionId; this.credentialStoreEnabled = credentialStoreEnabled; // Credential store supported cannot be changed after @@ -87,12 +85,8 @@ public class ServiceRequest { this.desiredState = desiredState; } - public String getDesiredStack() { - return desiredStack; - } - - public String getDesiredRepositoryVersion() { - return desiredRepositoryVersion; + public Long getDesiredRepositoryVersionId() { + return desiredRepositoryVersionId; } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java index ffde416..ed1832a 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java @@ -30,6 +30,7 @@ public class ServiceResponse { private String serviceName; private StackId desiredStackId; private String desiredRepositoryVersion; + private Long desiredRepositoryVersionId; private RepositoryVersionState repositoryVersionState; private String desiredState; private String maintenanceState; @@ -119,7 +120,7 @@ public class ServiceResponse { @ApiModelProperty(hidden = true) public String getDesiredStackId() { return desiredStackId.getStackId(); - + } /** @@ -234,4 +235,19 @@ public class ServiceResponse { @ApiModelProperty(name = "ServiceInfo") ServiceResponse getServiceResponse(); } + + /** + * @param id + */ + public void setDesiredRepositoryVersionId(Long id) { + desiredRepositoryVersionId = id; + } + + /** + * @param id + */ + public Long getDesiredRepositoryVersionId() { + return desiredRepositoryVersionId; + } + } http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java index 265b89b..11d157c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterResourceProvider.java @@ -92,7 +92,6 @@ public class ClusterResourceProvider extends AbstractControllerResourceProvider public static final String CLUSTER_TOTAL_HOSTS_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + TOTAL_HOSTS; public static final String CLUSTER_HEALTH_REPORT_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + HEALTH_REPORT; public static final String CLUSTER_CREDENTIAL_STORE_PROPERTIES_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + CREDENTIAL_STORE_PROPERTIES; - public static final String CLUSTER_REPO_VERSION = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + REPO_VERSION; static final String BLUEPRINT = "blueprint"; private static final String SECURITY = "security"; @@ -165,7 +164,6 @@ public class ClusterResourceProvider extends AbstractControllerResourceProvider propertyIds.add(SESSION_ATTRIBUTES); propertyIds.add(SECURITY); propertyIds.add(CREDENTIALS); - propertyIds.add(CLUSTER_REPO_VERSION); propertyIds.add(QUICKLINKS_PROFILE); } @@ -425,10 +423,6 @@ public class ClusterResourceProvider extends AbstractControllerResourceProvider null, getSessionAttributes(properties)); - if (properties.containsKey(CLUSTER_REPO_VERSION)) { - cr.setRepositoryVersion(properties.get(CLUSTER_REPO_VERSION).toString()); - } - List<ConfigurationRequest> configRequests = getConfigurationRequests(RESPONSE_KEY, properties); if (!configRequests.isEmpty()) { cr.setDesiredConfig(configRequests); http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java index c97caee..daab1aa 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java @@ -29,8 +29,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.apache.ambari.annotations.Experimental; -import org.apache.ambari.annotations.ExperimentalFeature; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.ClusterNotFoundException; import org.apache.ambari.server.DuplicateResourceException; @@ -76,7 +74,6 @@ import org.apache.ambari.server.state.ServiceComponentHost; import org.apache.ambari.server.state.ServiceInfo; import org.apache.ambari.server.state.StackId; import org.apache.ambari.server.state.State; -import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; @@ -112,8 +109,8 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider public static final String SERVICE_DESIRED_STACK_PROPERTY_ID = PropertyHelper.getPropertyId( "ServiceInfo", "desired_stack"); - public static final String SERVICE_DESIRED_REPO_VERSION_PROPERTY_ID = PropertyHelper.getPropertyId( - "ServiceInfo", "desired_repository_version"); + public static final String SERVICE_DESIRED_REPO_VERSION_ID_PROPERTY_ID = PropertyHelper.getPropertyId( + "ServiceInfo", "desired_repository_version_id"); protected static final String SERVICE_REPOSITORY_STATE = "ServiceInfo/repository_state"; @@ -147,7 +144,7 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider PROPERTY_IDS.add(SERVICE_CREDENTIAL_STORE_ENABLED_PROPERTY_ID); PROPERTY_IDS.add(SERVICE_ATTRIBUTES_PROPERTY_ID); PROPERTY_IDS.add(SERVICE_DESIRED_STACK_PROPERTY_ID); - PROPERTY_IDS.add(SERVICE_DESIRED_REPO_VERSION_PROPERTY_ID); + PROPERTY_IDS.add(SERVICE_DESIRED_REPO_VERSION_ID_PROPERTY_ID); PROPERTY_IDS.add(SERVICE_REPOSITORY_STATE); PROPERTY_IDS.add(QUERY_PARAMETERS_RUN_SMOKE_TEST_ID); @@ -254,11 +251,15 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider setResourceProperty(resource, SERVICE_CREDENTIAL_STORE_ENABLED_PROPERTY_ID, String.valueOf(response.isCredentialStoreEnabled()), requestedIds); - setResourceProperty(resource, SERVICE_DESIRED_STACK_PROPERTY_ID, - response.getDesiredStackId(), requestedIds); + RepositoryVersionEntity repoVersion = repositoryVersionDAO.findByPK(response.getDesiredRepositoryVersionId()); - setResourceProperty(resource, SERVICE_DESIRED_REPO_VERSION_PROPERTY_ID, - response.getDesiredRepositoryVersion(), requestedIds); + // !!! TODO is the UI using this? + if (null != repoVersion) { + setResourceProperty(resource, SERVICE_DESIRED_STACK_PROPERTY_ID, repoVersion.getStackId(), requestedIds); + } + + setResourceProperty(resource, SERVICE_DESIRED_REPO_VERSION_ID_PROPERTY_ID, + response.getDesiredRepositoryVersionId(), requestedIds); setResourceProperty(resource, SERVICE_REPOSITORY_STATE, response.getRepositoryVersionState(), requestedIds); @@ -384,13 +385,13 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider * @return the service request object */ private ServiceRequest getRequest(Map<String, Object> properties) { - String desiredStack = (String)properties.get(SERVICE_DESIRED_STACK_PROPERTY_ID); - String desiredRepositoryVersion = (String)properties.get(SERVICE_DESIRED_REPO_VERSION_PROPERTY_ID); + + String desiredRepoId = (String) properties.get(SERVICE_DESIRED_REPO_VERSION_ID_PROPERTY_ID); ServiceRequest svcRequest = new ServiceRequest( (String) properties.get(SERVICE_CLUSTER_NAME_PROPERTY_ID), (String) properties.get(SERVICE_SERVICE_NAME_PROPERTY_ID), - desiredStack, desiredRepositoryVersion, + null == desiredRepoId ? null : Long.valueOf(desiredRepoId), (String) properties.get(SERVICE_SERVICE_STATE_PROPERTY_ID), (String) properties.get(SERVICE_CREDENTIAL_STORE_ENABLED_PROPERTY_ID)); @@ -422,14 +423,10 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider for (ServiceRequest request : requests) { Cluster cluster = clusters.getCluster(request.getClusterName()); - String desiredStack = request.getDesiredStack(); - RepositoryVersionEntity repositoryVersion = request.getResolvedRepository(); if (null == repositoryVersion) { - throw new AmbariException(String.format("Could not find any repositories defined by %s", desiredStack)); - } else { - desiredStack = repositoryVersion.getStackId().toString(); + throw new AmbariException("Could not find any repository on the request."); } Service s = cluster.addService(request.getServiceName(), repositoryVersion); @@ -1068,36 +1065,19 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider // Expected } - @Experimental(feature = ExperimentalFeature.MULTI_SERVICE, - comment = "the desired stack should not come from the cluster. this is a placeholder until the UI sends correct information") - String desiredStack = request.getDesiredStack(); - StackId stackId = new StackId(desiredStack); - - String desiredRepositoryVersion = request.getDesiredRepositoryVersion(); - RepositoryVersionEntity repositoryVersion = null; - if (StringUtils.isNotBlank(desiredRepositoryVersion)){ - repositoryVersion = repositoryVersionDAO.findByVersion(desiredRepositoryVersion); + Long desiredRepositoryVersion = request.getDesiredRepositoryVersionId(); + if (null == desiredRepositoryVersion) { + throw new IllegalArgumentException(String.format("%s is required when adding a service.", SERVICE_DESIRED_REPO_VERSION_ID_PROPERTY_ID)); } - if (null == repositoryVersion) { - // !!! FIXME hack until the UI always sends the repository - if (null == desiredStack) { - desiredStack = cluster.getDesiredStackVersion().toString(); - } - - List<RepositoryVersionEntity> allVersions = repositoryVersionDAO.findByStack(new StackId(desiredStack)); - - if (CollectionUtils.isNotEmpty(allVersions)) { - repositoryVersion = allVersions.get(0); - } - } + RepositoryVersionEntity repositoryVersion = repositoryVersionDAO.findByPK(desiredRepositoryVersion); if (null == repositoryVersion) { - throw new AmbariException(String.format("Could not find any repositories defined by %s", desiredStack)); - } else { - stackId = repositoryVersion.getStackId(); + throw new IllegalArgumentException(String.format("Could not find any repositories defined by %d", desiredRepositoryVersion)); } + StackId stackId = repositoryVersion.getStackId(); + request.setResolvedRepository(repositoryVersion); if (!ambariMetaInfo.isValidService(stackId.getStackName(), http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java index 5084703..e2956ca 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java @@ -362,6 +362,8 @@ public class ServiceImpl implements Service { getName(), desiredStackId, desiredRespositoryVersion.getVersion(), getRepositoryState(), getDesiredState().toString(), isCredentialStoreSupported(), isCredentialStoreEnabled()); + r.setDesiredRepositoryVersionId(desiredRespositoryVersion.getId()); + r.setMaintenanceState(getMaintenanceState().name()); return r; } http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java index bca85ca..d2c0ea2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/UpgradeContext.java @@ -286,6 +286,10 @@ public class UpgradeContext { Long revertUpgradeId = Long.valueOf(upgradeRequestMap.get(UPGRADE_REVERT_UPGRADE_ID).toString()); UpgradeEntity revertUpgrade = m_upgradeDAO.findUpgrade(revertUpgradeId); + if (null == revertUpgrade) { + throw new AmbariException(String.format("Could not find Upgrade with id %s to revert.", revertUpgradeId)); + } + if (revertUpgrade.getOrchestration() != RepositoryType.PATCH) { throw new AmbariException("Can only revert upgrades that have been done as a patch."); } http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java index 0467b9b..578bd38 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java @@ -64,6 +64,8 @@ import org.apache.ambari.server.controller.spi.ClusterController; import org.apache.ambari.server.controller.spi.Predicate; import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.controller.utilities.ClusterControllerHelper; +import org.apache.ambari.server.orm.dao.RepositoryVersionDAO; +import org.apache.ambari.server.orm.entities.RepositoryVersionEntity; import org.apache.ambari.server.security.authorization.AuthorizationException; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Clusters; @@ -100,6 +102,9 @@ public class AmbariContext { @Inject ConfigFactory configFactory; + @Inject + RepositoryVersionDAO repositoryVersionDAO; + private static AmbariManagementController controller; private static ClusterController clusterController; //todo: task id's. Use existing mechanism for getting next task id sequence @@ -166,18 +171,24 @@ public class AmbariContext { return getController().getActionManager().getTasks(ids); } - public void createAmbariResources(ClusterTopology topology, String clusterName, SecurityType securityType, String repoVersion) { + public void createAmbariResources(ClusterTopology topology, String clusterName, SecurityType securityType, String repoVersionString) { Stack stack = topology.getBlueprint().getStack(); StackId stackId = new StackId(stack.getName(), stack.getVersion()); - createAmbariClusterResource(clusterName, stack.getName(), stack.getVersion(), securityType, repoVersion); - createAmbariServiceAndComponentResources(topology, clusterName, stackId, repoVersion); + RepositoryVersionEntity repoVersion = repositoryVersionDAO.findByStackAndVersion(stackId, repoVersionString); + + if (null == repoVersion) { + throw new IllegalArgumentException(String.format("Could not identify repository version with stack %s and version %s for installing services", + stackId, repoVersionString)); + } + + createAmbariClusterResource(clusterName, stack.getName(), stack.getVersion(), securityType); + createAmbariServiceAndComponentResources(topology, clusterName, stackId, repoVersion.getId()); } - public void createAmbariClusterResource(String clusterName, String stackName, String stackVersion, SecurityType securityType, String repoVersion) { + public void createAmbariClusterResource(String clusterName, String stackName, String stackVersion, SecurityType securityType) { String stackInfo = String.format("%s-%s", stackName, stackVersion); final ClusterRequest clusterRequest = new ClusterRequest(null, clusterName, null, securityType, stackInfo, null); - clusterRequest.setRepositoryVersion(repoVersion); try { RetryHelper.executeWithRetry(new Callable<Object>() { @@ -199,7 +210,7 @@ public class AmbariContext { } public void createAmbariServiceAndComponentResources(ClusterTopology topology, String clusterName, - StackId stackId, String repositoryVersion) { + StackId stackId, Long repositoryVersionId) { Collection<String> services = topology.getBlueprint().getServices(); try { @@ -212,8 +223,7 @@ public class AmbariContext { Set<ServiceComponentRequest> componentRequests = new HashSet<>(); for (String service : services) { String credentialStoreEnabled = topology.getBlueprint().getCredentialStoreEnabled(service); - serviceRequests.add(new ServiceRequest(clusterName, service, stackId.getStackId(), - repositoryVersion, null, credentialStoreEnabled)); + serviceRequests.add(new ServiceRequest(clusterName, service, repositoryVersionId, null, credentialStoreEnabled)); for (String component : topology.getBlueprint().getComponents(service)) { String recoveryEnabled = topology.getBlueprint().getRecoveryEnabled(service, component); http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java index c153381..2fb6ee2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/TopologyManager.java @@ -277,6 +277,10 @@ public class TopologyManager { SecurityType securityType = null; Credential credential = null; + if (null == repoVersion) { + throw new AmbariException("Repository should be created and the version passed in the request."); + } + SecurityConfiguration securityConfiguration = processSecurityConfiguration(request); if (securityConfiguration != null && securityConfiguration.getType() == SecurityType.KERBEROS) { @@ -613,7 +617,7 @@ public class TopologyManager { PersistedTopologyRequest persistedRequest = persistedState.persistTopologyRequest(request); LogicalRequest logicalRequest = createLogicalRequest(persistedRequest, topology, logicalRequestId); - + return logicalRequest; } http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java index 240517f..66a6e98 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java @@ -552,7 +552,7 @@ public class AmbariCustomCommandExecutionHelperTest { EasyMock.replay(hostRoleCommand, actionManager, configHelper); ambariManagementController.createAction(actionRequest, requestProperties); - StackId stackId = clusters.getCluster("c1").getDesiredStackVersion(); + Request request = requestCapture.getValue(); Stage stage = request.getStages().iterator().next(); List<ExecutionCommandWrapper> commands = stage.getExecutionCommands("c1-c6401"); @@ -695,7 +695,7 @@ public class AmbariCustomCommandExecutionHelperTest { RepositoryVersionEntity repositoryVersion) throws AmbariException, AuthorizationException { ServiceRequest r1 = new ServiceRequest(clusterName, serviceName, - repositoryVersion.getStackId().getStackId(), repositoryVersion.getVersion(), null, "false"); + repositoryVersion.getId(), null, "false"); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r1); http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java index c0e3ef1..1227479 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java @@ -54,7 +54,6 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Properties; import java.util.Set; import javax.persistence.RollbackException; @@ -73,7 +72,6 @@ import org.apache.ambari.server.configuration.Configuration; import org.apache.ambari.server.controller.internal.RequestStageContainer; import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.orm.InMemoryDefaultTestModule; -import org.apache.ambari.server.orm.dao.RepositoryVersionDAO; import org.apache.ambari.server.orm.entities.LdapSyncSpecEntity; import org.apache.ambari.server.orm.entities.RepositoryVersionEntity; import org.apache.ambari.server.security.authorization.Users; @@ -99,7 +97,6 @@ import org.apache.ambari.server.state.ServiceComponentHost; import org.apache.ambari.server.state.ServiceInfo; import org.apache.ambari.server.state.ServiceOsSpecific; import org.apache.ambari.server.state.StackId; -import org.apache.ambari.server.state.StackInfo; import org.apache.ambari.server.state.State; import org.apache.ambari.server.state.stack.OsFamily; import org.easymock.Capture; @@ -2024,7 +2021,7 @@ public class AmbariManagementControllerImplTest { expect(injector.getInstance(Gson.class)).andReturn(null); expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(maintHelper).anyTimes(); expect(injector.getInstance(KerberosHelper.class)).andReturn(createNiceMock(KerberosHelper.class)); - + OsFamily osFamilyMock = createNiceMock(OsFamily.class); EasyMock.expect(osFamilyMock.isVersionedOsFamilyExtendedByVersionedFamily("testOSFamily", "testOSFamily")).andReturn(true).times(3); @@ -2329,61 +2326,4 @@ public class AmbariManagementControllerImplTest { verify(injector, cluster, clusters, ambariMetaInfo, service, serviceComponent, serviceComponentHost, stackId); } - @Test - public void testCreateClusterWithRepository() throws Exception { - Injector injector = createNiceMock(Injector.class); - - RepositoryVersionEntity repoVersion = createNiceMock(RepositoryVersionEntity.class); - RepositoryVersionDAO repoVersionDAO = createNiceMock(RepositoryVersionDAO.class); - expect(repoVersionDAO.findByStackAndVersion(anyObject(StackId.class), - anyObject(String.class))).andReturn(repoVersion).anyTimes(); - - expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(null).atLeastOnce(); - expect(injector.getInstance(Gson.class)).andReturn(null); - expect(injector.getInstance(KerberosHelper.class)).andReturn(createNiceMock(KerberosHelper.class)); - - StackId stackId = new StackId("HDP-2.1"); - - Cluster cluster = createNiceMock(Cluster.class); - Service service = createNiceMock(Service.class); - expect(service.getDesiredStackId()).andReturn(stackId).atLeastOnce(); - expect(cluster.getServices()).andReturn(ImmutableMap.<String, Service>builder() - .put("HDFS", service) - .build()); - - expect(clusters.getCluster("c1")).andReturn(cluster).atLeastOnce(); - - - StackInfo stackInfo = createNiceMock(StackInfo.class); - expect(stackInfo.getWidgetsDescriptorFileLocation()).andReturn(null).once(); - - expect(ambariMetaInfo.getStack("HDP", "2.1")).andReturn(stackInfo).atLeastOnce(); - expect(ambariMetaInfo.getStack(stackId)).andReturn(stackInfo).atLeastOnce(); - - replay(injector, clusters, ambariMetaInfo, stackInfo, cluster, service, repoVersionDAO, repoVersion); - - AmbariManagementController controller = new AmbariManagementControllerImpl(null, clusters, injector); - setAmbariMetaInfo(ambariMetaInfo, controller); - Class<?> c = controller.getClass(); - - Field f = c.getDeclaredField("repositoryVersionDAO"); - f.setAccessible(true); - f.set(controller, repoVersionDAO); - - Properties p = new Properties(); - p.setProperty("", ""); - Configuration configuration = new Configuration(p); - f = c.getDeclaredField("configs"); - f.setAccessible(true); - f.set(controller, configuration); - - ClusterRequest cr = new ClusterRequest(null, "c1", "HDP-2.1", null); - cr.setRepositoryVersion("2.1.1.0-1234"); - controller.createCluster(cr); - - // verification - verify(injector, clusters, ambariMetaInfo, stackInfo, cluster, repoVersionDAO, repoVersion); - } - - } http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java index 3215e72..8f842ab 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java @@ -209,8 +209,6 @@ public class AmbariManagementControllerTest { private static final String REQUEST_CONTEXT_PROPERTY = "context"; - private static final String CLUSTER_HOST_INFO = "clusterHostInfo"; - private static AmbariManagementController controller; private static Clusters clusters; private ActionDBAccessor actionDB; @@ -381,7 +379,7 @@ public class AmbariManagementControllerTest { } ServiceRequest r1 = new ServiceRequest(clusterName, serviceName, - repositoryVersion.getStackId().getStackId(), repositoryVersion.getVersion(), dStateStr, + repositoryVersion.getId(), dStateStr, null); Set<ServiceRequest> requests = new HashSet<>(); @@ -465,7 +463,7 @@ public class AmbariManagementControllerTest { private long stopService(String clusterName, String serviceName, boolean runSmokeTests, boolean reconfigureClients) throws AmbariException, AuthorizationException { - ServiceRequest r = new ServiceRequest(clusterName, serviceName, null, null, State.INSTALLED.toString(), null); + ServiceRequest r = new ServiceRequest(clusterName, serviceName, null, State.INSTALLED.toString(), null); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r); Map<String, String> mapRequestProps = new HashMap<>(); @@ -530,7 +528,7 @@ public class AmbariManagementControllerTest { boolean runSmokeTests, boolean reconfigureClients, MaintenanceStateHelper maintenanceStateHelper) throws AmbariException, AuthorizationException { - ServiceRequest r = new ServiceRequest(clusterName, serviceName, "HDP-0.2", "0.2-1234", + ServiceRequest r = new ServiceRequest(clusterName, serviceName, repositoryVersion02.getId(), State.STARTED.toString(), null); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r); @@ -585,7 +583,7 @@ public class AmbariManagementControllerTest { Map<String, String> mapRequestPropsInput) throws AmbariException, AuthorizationException { - ServiceRequest r = new ServiceRequest(clusterName, serviceName, "HDP-0.2", "0.2-1234", + ServiceRequest r = new ServiceRequest(clusterName, serviceName, repositoryVersion02.getId(), State.INSTALLED.toString(), null); Set<ServiceRequest> requests = new HashSet<>(); @@ -714,7 +712,7 @@ public class AmbariManagementControllerTest { Assert.assertEquals(serviceName, s.getName()); Assert.assertEquals(cluster1, s.getCluster().getClusterName()); - ServiceRequest req = new ServiceRequest(cluster1, "HDFS", "HDP-0.2", "0.2-1234", null, null); + ServiceRequest req = new ServiceRequest(cluster1, "HDFS", repositoryVersion02.getId(), null, null); Set<ServiceResponse> r = ServiceResourceProviderTest.getServices(controller, Collections.singleton(req)); @@ -736,7 +734,7 @@ public class AmbariManagementControllerTest { try { set1.clear(); - ServiceRequest rInvalid = new ServiceRequest(null, null, null, null, null, null); + ServiceRequest rInvalid = new ServiceRequest(null, null, null, null, null); set1.add(rInvalid); ServiceResourceProviderTest.createServices(controller, repositoryVersionDAO, set1); fail("Expected failure for invalid requests"); @@ -746,7 +744,7 @@ public class AmbariManagementControllerTest { try { set1.clear(); - ServiceRequest rInvalid = new ServiceRequest("foo", null, null, null, null, null); + ServiceRequest rInvalid = new ServiceRequest("foo", null, null, null, null); set1.add(rInvalid); ServiceResourceProviderTest.createServices(controller, repositoryVersionDAO, set1); fail("Expected failure for invalid requests"); @@ -756,7 +754,7 @@ public class AmbariManagementControllerTest { try { set1.clear(); - ServiceRequest rInvalid = new ServiceRequest("foo", "bar", null, null, null, null); + ServiceRequest rInvalid = new ServiceRequest("foo", "bar", null, null, null); set1.add(rInvalid); ServiceResourceProviderTest.createServices(controller, repositoryVersionDAO, set1); fail("Expected failure for invalid cluster"); @@ -774,8 +772,8 @@ public class AmbariManagementControllerTest { try { set1.clear(); - ServiceRequest valid1 = new ServiceRequest(cluster1, "HDFS", null, null, null, null); - ServiceRequest valid2 = new ServiceRequest(cluster1, "HDFS", null, null, null, null); + ServiceRequest valid1 = new ServiceRequest(cluster1, "HDFS", null, null, null); + ServiceRequest valid2 = new ServiceRequest(cluster1, "HDFS", null, null, null); set1.add(valid1); set1.add(valid2); ServiceResourceProviderTest.createServices(controller, repositoryVersionDAO, set1); @@ -786,7 +784,7 @@ public class AmbariManagementControllerTest { try { set1.clear(); - ServiceRequest valid1 = new ServiceRequest(cluster1, "bar", "HDP-0.2", "0.2-1234", State.STARTED.toString(), null); + ServiceRequest valid1 = new ServiceRequest(cluster1, "bar", repositoryVersion02.getId(), State.STARTED.toString(), null); set1.add(valid1); ServiceResourceProviderTest.createServices(controller, repositoryVersionDAO, set1); fail("Expected failure for invalid service"); @@ -797,8 +795,8 @@ public class AmbariManagementControllerTest { try { set1.clear(); - ServiceRequest valid1 = new ServiceRequest(cluster1, "HDFS", "HDP-0.2", "0.2-1234", State.STARTED.toString(), null); - ServiceRequest valid2 = new ServiceRequest(cluster2, "HDFS", "HDP-0.2", "0.2-1234", State.STARTED.toString(), null); + ServiceRequest valid1 = new ServiceRequest(cluster1, "HDFS", repositoryVersion02.getId(), State.STARTED.toString(), null); + ServiceRequest valid2 = new ServiceRequest(cluster2, "HDFS", repositoryVersion02.getId(), State.STARTED.toString(), null); set1.add(valid1); set1.add(valid2); ServiceResourceProviderTest.createServices(controller, repositoryVersionDAO, set1); @@ -811,14 +809,14 @@ public class AmbariManagementControllerTest { Assert.assertEquals(0, clusters.getCluster(cluster1).getServices().size()); set1.clear(); - ServiceRequest valid = new ServiceRequest(cluster1, "HDFS", "HDP-0.2", "0.2-1234", null, null); + ServiceRequest valid = new ServiceRequest(cluster1, "HDFS", repositoryVersion02.getId(), null, null); set1.add(valid); ServiceResourceProviderTest.createServices(controller, repositoryVersionDAO, set1); try { set1.clear(); - ServiceRequest valid1 = new ServiceRequest(cluster1, "HDFS", "HDP-0.2", "0.2-1234", State.STARTED.toString(), null); - ServiceRequest valid2 = new ServiceRequest(cluster1, "HDFS", "HDP-0.2", "0.2-1234", State.STARTED.toString(), null); + ServiceRequest valid1 = new ServiceRequest(cluster1, "HDFS", repositoryVersion02.getId(), State.STARTED.toString(), null); + ServiceRequest valid2 = new ServiceRequest(cluster1, "HDFS", repositoryVersion02.getId(), State.STARTED.toString(), null); set1.add(valid1); set1.add(valid2); ServiceResourceProviderTest.createServices(controller, repositoryVersionDAO, set1); @@ -860,7 +858,7 @@ public class AmbariManagementControllerTest { String serviceName2 = "MAPREDUCE"; createService(cluster1, serviceName2, State.INIT); - ServiceRequest r = new ServiceRequest(cluster1, null, null, null, null, null); + ServiceRequest r = new ServiceRequest(cluster1, null, null, null, null); Set<ServiceResponse> response = ServiceResourceProviderTest.getServices(controller, Collections.singleton(r)); Assert.assertEquals(2, response.size()); @@ -880,15 +878,15 @@ public class AmbariManagementControllerTest { clusters.addCluster(cluster1, new StackId("HDP-0.1")); - ServiceRequest valid1 = new ServiceRequest(cluster1, "HDFS", "HDP-0.1", "0.1-1234", null, null); - ServiceRequest valid2 = new ServiceRequest(cluster1, "MAPREDUCE", "HDP-0.1", "0.1-1234", null, null); + ServiceRequest valid1 = new ServiceRequest(cluster1, "HDFS", repositoryVersion01.getId(), null, null); + ServiceRequest valid2 = new ServiceRequest(cluster1, "MAPREDUCE", repositoryVersion01.getId(), null, null); set1.add(valid1); set1.add(valid2); ServiceResourceProviderTest.createServices(controller, repositoryVersionDAO, set1); try { - valid1 = new ServiceRequest(cluster1, "PIG", "HDP-0.1", "0.1-1234", null, null); - valid2 = new ServiceRequest(cluster1, "MAPREDUCE", "HDP-0.1", "0.2-1234", null, null); + valid1 = new ServiceRequest(cluster1, "PIG", repositoryVersion01.getId(), null, null); + valid2 = new ServiceRequest(cluster1, "MAPREDUCE", 4L, null, null); set1.add(valid1); set1.add(valid2); ServiceResourceProviderTest.createServices(controller, repositoryVersionDAO, set1); @@ -1809,8 +1807,6 @@ public class AmbariManagementControllerTest { String host2 = getUniqueName(); - Map<String, String> hostAttributes = null; - HostRequest r1 = new HostRequest(host1, null); r1.toString(); @@ -1970,7 +1966,7 @@ public class AmbariManagementControllerTest { Config c1 = configFactory.createNew(cluster, "hdfs-site", "v1", properties, propertiesAttributes); configs.put(c1.getType(), c1); - ServiceRequest r = new ServiceRequest(cluster1, serviceName, "HDP-0.2", "0.2-1234", + ServiceRequest r = new ServiceRequest(cluster1, serviceName, repositoryVersion02.getId(), State.INSTALLED.toString(), null); Set<ServiceRequest> requests = new HashSet<>(); @@ -2001,7 +1997,6 @@ public class AmbariManagementControllerTest { String serviceName = "HDFS"; Cluster cluster = clusters.getCluster(cluster1); - Service s1 = cluster.getService(serviceName); Map<String, Config> configs = new HashMap<>(); Map<String, String> properties = new HashMap<>(); @@ -2015,7 +2010,7 @@ public class AmbariManagementControllerTest { properties.put("d", "d1"); Config c2 = configFactory.createNew(cluster, "core-site", "v1", properties, propertiesAttributes); - Config c3 = configFactory.createNew(cluster, "foo-site", "v1", properties, propertiesAttributes); + configFactory.createNew(cluster, "foo-site", "v1", properties, propertiesAttributes); Map<String, String> mapRequestProps = new HashMap<>(); mapRequestProps.put("context", "Called from a test"); @@ -2023,7 +2018,7 @@ public class AmbariManagementControllerTest { configs.put(c1.getType(), c1); configs.put(c2.getType(), c2); - ServiceRequest r = new ServiceRequest(cluster1, serviceName, "HDP-0.2", "0.2-1234", + ServiceRequest r = new ServiceRequest(cluster1, serviceName, repositoryVersion02.getId(), State.INSTALLED.toString(), null); Set<ServiceRequest> requests = new HashSet<>(); @@ -2132,7 +2127,7 @@ public class AmbariManagementControllerTest { } } - r = new ServiceRequest(cluster1, serviceName, "HDP-0.2", "0.2-1234", State.STARTED.toString(), + r = new ServiceRequest(cluster1, serviceName, repositoryVersion02.getId(), State.STARTED.toString(), null); requests.clear(); requests.add(r); @@ -2179,7 +2174,7 @@ public class AmbariManagementControllerTest { } } - r = new ServiceRequest(cluster1, serviceName, "HDP-0.2", "0.2-1234", State.INSTALLED.toString(), + r = new ServiceRequest(cluster1, serviceName, repositoryVersion02.getId(), State.INSTALLED.toString(), null); requests.clear(); requests.add(r); @@ -2282,7 +2277,7 @@ public class AmbariManagementControllerTest { c1.addService(s1); s1.setDesiredState(State.INSTALLED); - ServiceRequest r = new ServiceRequest(cluster1, null, null, null, null, null); + ServiceRequest r = new ServiceRequest(cluster1, null, null, null, null); Set<ServiceResponse> resp = ServiceResourceProviderTest.getServices(controller, Collections.singleton(r)); ServiceResponse resp1 = resp.iterator().next(); @@ -2328,7 +2323,7 @@ public class AmbariManagementControllerTest { s2.setDesiredState(State.INSTALLED); s4.setDesiredState(State.INSTALLED); - ServiceRequest r = new ServiceRequest(null, null, null, null, null, null); + ServiceRequest r = new ServiceRequest(null, null, null, null, null); Set<ServiceResponse> resp; try { @@ -2338,35 +2333,35 @@ public class AmbariManagementControllerTest { // Expected } - r = new ServiceRequest(c1.getClusterName(), null, null, null, null, null); + r = new ServiceRequest(c1.getClusterName(), null, null, null, null); resp = ServiceResourceProviderTest.getServices(controller, Collections.singleton(r)); Assert.assertEquals(3, resp.size()); - r = new ServiceRequest(c1.getClusterName(), s2.getName(), null, null, null, null); + r = new ServiceRequest(c1.getClusterName(), s2.getName(), null, null, null); resp = ServiceResourceProviderTest.getServices(controller, Collections.singleton(r)); Assert.assertEquals(1, resp.size()); Assert.assertEquals(s2.getName(), resp.iterator().next().getServiceName()); try { - r = new ServiceRequest(c2.getClusterName(), s1.getName(), null, null, null, null); + r = new ServiceRequest(c2.getClusterName(), s1.getName(), null, null, null); ServiceResourceProviderTest.getServices(controller, Collections.singleton(r)); fail("Expected failure for invalid service"); } catch (Exception e) { // Expected } - r = new ServiceRequest(c1.getClusterName(), null, null, null, "INSTALLED", null); + r = new ServiceRequest(c1.getClusterName(), null, null, "INSTALLED", null); resp = ServiceResourceProviderTest.getServices(controller, Collections.singleton(r)); Assert.assertEquals(2, resp.size()); - r = new ServiceRequest(c2.getClusterName(), null, null, null, "INIT", null); + r = new ServiceRequest(c2.getClusterName(), null, null, "INIT", null); resp = ServiceResourceProviderTest.getServices(controller, Collections.singleton(r)); Assert.assertEquals(1, resp.size()); ServiceRequest r1, r2, r3; - r1 = new ServiceRequest(c1.getClusterName(), null, null, null, "INSTALLED", null); - r2 = new ServiceRequest(c2.getClusterName(), null, null, null, "INIT", null); - r3 = new ServiceRequest(c2.getClusterName(), null, null, null, "INIT", null); + r1 = new ServiceRequest(c1.getClusterName(), null, null, "INSTALLED", null); + r2 = new ServiceRequest(c2.getClusterName(), null, null, "INIT", null); + r3 = new ServiceRequest(c2.getClusterName(), null, null, "INIT", null); Set<ServiceRequest> reqs = new HashSet<>(); reqs.addAll(Arrays.asList(r1, r2, r3)); @@ -3168,7 +3163,7 @@ public class AmbariManagementControllerTest { ServiceRequest r; try { - r = new ServiceRequest(cluster1, serviceName, "HDP-0.2", "0.2-1234", + r = new ServiceRequest(cluster1, serviceName, repositoryVersion02.getId(), State.INSTALLING.toString(), null); reqs.clear(); reqs.add(r); @@ -3178,7 +3173,7 @@ public class AmbariManagementControllerTest { // Expected } - r = new ServiceRequest(cluster1, serviceName, "HDP-0.2", "0.2-1234", State.INSTALLED.toString(), + r = new ServiceRequest(cluster1, serviceName, repositoryVersion02.getId(), State.INSTALLED.toString(), null); reqs.clear(); reqs.add(r); @@ -3224,9 +3219,9 @@ public class AmbariManagementControllerTest { ServiceRequest req1, req2; try { reqs.clear(); - req1 = new ServiceRequest(cluster1, serviceName1, "HDP-0.2", "0.2-1234", + req1 = new ServiceRequest(cluster1, serviceName1, repositoryVersion02.getId(), State.INSTALLED.toString(), null); - req2 = new ServiceRequest(cluster2, serviceName2, "HDP-0.2", "0.2-1234", + req2 = new ServiceRequest(cluster2, serviceName2, repositoryVersion02.getId(), State.INSTALLED.toString(), null); reqs.add(req1); reqs.add(req2); @@ -3238,9 +3233,9 @@ public class AmbariManagementControllerTest { try { reqs.clear(); - req1 = new ServiceRequest(cluster1, serviceName1, "HDP-0.2", "0.2-1234", + req1 = new ServiceRequest(cluster1, serviceName1, repositoryVersion02.getId(), State.INSTALLED.toString(), null); - req2 = new ServiceRequest(cluster1, serviceName1, "HDP-0.2", "0.2-1234", + req2 = new ServiceRequest(cluster1, serviceName1, repositoryVersion02.getId(), State.INSTALLED.toString(), null); reqs.add(req1); reqs.add(req2); @@ -3255,9 +3250,9 @@ public class AmbariManagementControllerTest { try { reqs.clear(); - req1 = new ServiceRequest(cluster1, serviceName1, "HDP-0.2", "0.2-1234", + req1 = new ServiceRequest(cluster1, serviceName1, repositoryVersion02.getId(), State.INSTALLED.toString(), null); - req2 = new ServiceRequest(cluster1, serviceName2, "HDP-0.2", "0.2-1234", + req2 = new ServiceRequest(cluster1, serviceName2, repositoryVersion02.getId(), State.STARTED.toString(), null); reqs.add(req1); reqs.add(req2); @@ -3369,7 +3364,7 @@ public class AmbariManagementControllerTest { ServiceRequest req1, req2; try { reqs.clear(); - req1 = new ServiceRequest(cluster1, serviceName1, "HDP-0.2", "0.2-1234", + req1 = new ServiceRequest(cluster1, serviceName1, repositoryVersion02.getId(), State.STARTED.toString(), null); reqs.add(req1); ServiceResourceProviderTest.updateServices(controller, reqs, mapRequestProps, true, false); @@ -3396,7 +3391,7 @@ public class AmbariManagementControllerTest { try { reqs.clear(); - req1 = new ServiceRequest(cluster1, serviceName1, "HDP-0.2", "0.2-1234", + req1 = new ServiceRequest(cluster1, serviceName1, repositoryVersion02.getId(), State.STARTED.toString(), null); reqs.add(req1); ServiceResourceProviderTest.updateServices(controller, reqs, mapRequestProps, true, false); @@ -3424,9 +3419,9 @@ public class AmbariManagementControllerTest { sch5.setState(State.INSTALLED); reqs.clear(); - req1 = new ServiceRequest(cluster1, serviceName1, "HDP-0.2", "0.2-1234", + req1 = new ServiceRequest(cluster1, serviceName1, repositoryVersion02.getId(), State.STARTED.toString(), null); - req2 = new ServiceRequest(cluster1, serviceName2, "HDP-0.2", "0.2-1234", + req2 = new ServiceRequest(cluster1, serviceName2, repositoryVersion02.getId(), State.STARTED.toString(), null); reqs.add(req1); reqs.add(req2); @@ -3512,9 +3507,9 @@ public class AmbariManagementControllerTest { // test no-op reqs.clear(); - req1 = new ServiceRequest(cluster1, serviceName1, "HDP-0.2", "0.2-1234", + req1 = new ServiceRequest(cluster1, serviceName1, repositoryVersion02.getId(), State.STARTED.toString(), null); - req2 = new ServiceRequest(cluster1, serviceName2, "HDP-0.2", "0.2-1234", + req2 = new ServiceRequest(cluster1, serviceName2, repositoryVersion02.getId(), State.STARTED.toString(), null); reqs.add(req1); reqs.add(req2); @@ -4685,7 +4680,7 @@ public class AmbariManagementControllerTest { .getServiceComponentHost(host2)); // Install - ServiceRequest r = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", + ServiceRequest r = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), State.INSTALLED.toString(), null); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r); @@ -4705,7 +4700,7 @@ public class AmbariManagementControllerTest { } // Start - r = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", + r = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), State.STARTED.toString(), null); requests.clear(); requests.add(r); @@ -4797,7 +4792,7 @@ public class AmbariManagementControllerTest { configVersions.put("typeC", "v2"); configVersions.put("typeE", "v1"); sReqs.clear(); - sReqs.add(new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", null, null)); + sReqs.add(new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), null, null)); Assert.assertNull(ServiceResourceProviderTest.updateServices(controller, sReqs, mapRequestProps, true, false)); @@ -4946,7 +4941,7 @@ public class AmbariManagementControllerTest { configVersions.put("typeC", "v2"); configVersions.put("typeE", "v1"); sReqs.clear(); - sReqs.add(new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", null, null)); + sReqs.add(new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), null, null)); Assert.assertNull(ServiceResourceProviderTest.updateServices(controller, sReqs, mapRequestProps, true, false)); // update configs at SCH level @@ -5012,7 +5007,7 @@ public class AmbariManagementControllerTest { host2, null); // Install - ServiceRequest r = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", + ServiceRequest r = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), State.INSTALLED.toString()); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r); @@ -5112,7 +5107,7 @@ public class AmbariManagementControllerTest { configVersions.put("core-site", "version1"); configVersions.put("hdfs-site", "version1"); sReqs.clear(); - sReqs.add(new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", null)); + sReqs.add(new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), null)); Assert.assertNull(ServiceResourceProviderTest.updateServices(controller, sReqs, mapRequestProps, true, false)); // Reconfigure S Level @@ -5120,7 +5115,7 @@ public class AmbariManagementControllerTest { configVersions.put("core-site", "version122"); sReqs.clear(); - sReqs.add(new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", null)); + sReqs.add(new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), null)); Assert.assertNull(ServiceResourceProviderTest.updateServices(controller, sReqs, mapRequestProps, true, false)); entityManager.clear(); @@ -5433,7 +5428,7 @@ public class AmbariManagementControllerTest { createServiceComponentHost(cluster1, null, componentName1, host2, null); - ServiceRequest r = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", + ServiceRequest r = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), State.INSTALLED.toString()); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r); @@ -5470,7 +5465,7 @@ public class AmbariManagementControllerTest { } } - r = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", State.STARTED.toString()); + r = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), State.STARTED.toString()); requests.clear(); requests.add(r); @@ -5894,7 +5889,7 @@ public class AmbariManagementControllerTest { // Start Service ServiceRequest sr = new ServiceRequest( - cluster1, serviceName, "HDP-2.0.6", "2.0.6-1234", State.STARTED.name()); + cluster1, serviceName, repositoryVersion206.getId(), State.STARTED.name()); Set<ServiceRequest> setReqs = new HashSet<>(); setReqs.add(sr); RequestStatusResponse resp = ServiceResourceProviderTest.updateServices(controller, @@ -6124,12 +6119,12 @@ public class AmbariManagementControllerTest { RepositoryVersionEntity repositoryVersion = repositoryVersion206; ConfigFactory cf = injector.getInstance(ConfigFactory.class); - Config config1 = cf.createNew(cluster, "global", "version1", + cf.createNew(cluster, "global", "version1", new HashMap<String, String>() {{ put("key1", "value1"); }}, new HashMap<String, Map<String,String>>()); - Config config2 = cf.createNew(cluster, "core-site", "version1", + cf.createNew(cluster, "core-site", "version1", new HashMap<String, String>() {{ put("key1", "value1"); }}, new HashMap<String, Map<String,String>>()); @@ -6497,7 +6492,7 @@ public class AmbariManagementControllerTest { put("core-site", "version1"); put("hdfs-site", "version1"); }}; - ServiceRequest sr = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", null); + ServiceRequest sr = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), null); ServiceResourceProviderTest.updateServices(controller, Collections.singleton(sr), new HashMap<String,String>(), false, false); // Install @@ -6548,7 +6543,7 @@ public class AmbariManagementControllerTest { - ServiceRequest r = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", + ServiceRequest r = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), State.INSTALLED.toString()); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r); @@ -7540,7 +7535,7 @@ public class AmbariManagementControllerTest { .getServiceComponentHost(host2)); // Install - ServiceRequest r = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", State.INSTALLED.toString()); + ServiceRequest r = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), State.INSTALLED.toString()); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r); @@ -7559,7 +7554,7 @@ public class AmbariManagementControllerTest { } // Start - r = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", State.STARTED.toString()); + r = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), State.STARTED.toString()); requests.clear(); requests.add(r); ServiceResourceProviderTest.updateServices(controller, requests, mapRequestProps, true, false); @@ -7604,7 +7599,7 @@ public class AmbariManagementControllerTest { } // Stop all services - r = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", State.INSTALLED.toString()); + r = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), State.INSTALLED.toString()); requests.clear(); requests.add(r); ServiceResourceProviderTest.updateServices(controller, requests, mapRequestProps, true, false); @@ -7804,7 +7799,7 @@ public class AmbariManagementControllerTest { // Install - ServiceRequest r = new ServiceRequest(cluster1, serviceName, "HDP-0.1", "0.1-1234", State.INSTALLED.toString()); + ServiceRequest r = new ServiceRequest(cluster1, serviceName, repositoryVersion01.getId(), State.INSTALLED.toString()); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r); @@ -7902,7 +7897,7 @@ public class AmbariManagementControllerTest { sch3.setState(State.INSTALLED); // an UNKOWN failure will throw an exception - ServiceRequest req = new ServiceRequest(cluster1, serviceName1, "HDP-0.2", "0.2-1234", + ServiceRequest req = new ServiceRequest(cluster1, serviceName1, repositoryVersion02.getId(), State.INSTALLED.toString()); ServiceResourceProviderTest.updateServices(controller, Collections.singleton(req), Collections.<String, String>emptyMap(), true, false); } @@ -8630,7 +8625,7 @@ public class AmbariManagementControllerTest { amc.createCluster(clusterRequest); Set<ServiceRequest> serviceRequests = new HashSet<>(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", null)); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), null)); ServiceResourceProviderTest.createServices(amc, repositoryVersionDAO, serviceRequests); @@ -8691,9 +8686,9 @@ public class AmbariManagementControllerTest { HostResourceProviderTest.createHosts(amc, hrs); Set<ServiceRequest> serviceRequests = new HashSet<>(); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "HDFS", STACK_ID, "2.0.1-1234", null)); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "MAPREDUCE2", STACK_ID, "2.0.1-1234", null)); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "YARN", STACK_ID, "2.0.1-1234", null)); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "HDFS", repositoryVersion201.getId(), null)); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "MAPREDUCE2", repositoryVersion201.getId(), null)); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "YARN", repositoryVersion201.getId(), null)); ServiceResourceProviderTest.createServices(amc, repositoryVersionDAO, serviceRequests); @@ -8767,8 +8762,8 @@ public class AmbariManagementControllerTest { amc.createCluster(clusterRequest); Set<ServiceRequest> serviceRequests = new HashSet<>(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", null)); - serviceRequests.add(new ServiceRequest(cluster1, "HIVE", "HDP-1.2.0", "1.2.0-1234", null)); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), null)); + serviceRequests.add(new ServiceRequest(cluster1, "HIVE", repositoryVersion120.getId(), null)); ServiceResourceProviderTest.createServices(amc, repositoryVersionDAO, serviceRequests); @@ -8789,7 +8784,7 @@ public class AmbariManagementControllerTest { Assert.assertTrue(clusters.getCluster(cluster1).getDesiredConfigs().containsKey("hive-site")); serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", null)); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), null)); ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, true, false); @@ -8819,7 +8814,7 @@ public class AmbariManagementControllerTest { amc.createHostComponents(componentHostRequests); serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", "INSTALLED")); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), "INSTALLED")); ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, true, false); Cluster cluster = clusters.getCluster(cluster1); @@ -8886,7 +8881,7 @@ public class AmbariManagementControllerTest { componentHost.handleEvent(new ServiceComponentHostOpSucceededEvent(componentHost.getServiceComponentName(), componentHost.getHostName(), System.currentTimeMillis())); serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", "STARTED")); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), "STARTED")); RequestStatusResponse response = ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, true, false); @@ -8948,14 +8943,14 @@ public class AmbariManagementControllerTest { // ServiceComponentHost remains in disabled after service stop assertEquals(sch.getServiceComponentName(),"DATANODE"); serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", "INSTALLED")); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), "INSTALLED")); ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, true, false); assertEquals(State.DISABLED, sch.getState()); // ServiceComponentHost remains in disabled after service start serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", "STARTED")); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), "STARTED")); ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, true, false); assertEquals(State.DISABLED, sch.getState()); @@ -8977,14 +8972,14 @@ public class AmbariManagementControllerTest { *Test remove service */ serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", "INSTALLED")); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), "INSTALLED")); ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, true, false); serviceRequests.clear(); serviceRequests.add(new ServiceRequest(cluster1, null, null, null, null)); org.junit.Assert.assertEquals(2, ServiceResourceProviderTest.getServices(amc, serviceRequests).size()); serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", null)); - serviceRequests.add(new ServiceRequest(cluster1, "HIVE", "HDP-1.2.0", "1.2.0-1234", null)); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), null)); + serviceRequests.add(new ServiceRequest(cluster1, "HIVE", repositoryVersion120.getId(), null)); ServiceResourceProviderTest.deleteServices(amc, serviceRequests); serviceRequests.clear(); serviceRequests.add(new ServiceRequest(cluster1, null, null, null, null)); @@ -8994,7 +8989,7 @@ public class AmbariManagementControllerTest { *Test add service again */ serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", null)); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), null)); ServiceResourceProviderTest.createServices(amc, repositoryVersionDAO, serviceRequests); @@ -9011,7 +9006,7 @@ public class AmbariManagementControllerTest { amc.createConfiguration(configurationRequest); //Add configs to service serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-1.2.0", "1.2.0-1234", null)); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion120.getId(), null)); ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, true, false); //Crate service components serviceComponentRequests = new HashSet<>(); @@ -9066,9 +9061,9 @@ public class AmbariManagementControllerTest { amc.createCluster(clusterRequest); Set<ServiceRequest> serviceRequests = new HashSet<>(); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "HDFS", "HDP-2.0.1", "2.0.1-1234", null)); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "MAPREDUCE2", "HDP-2.0.1", "2.0.1-1234", null)); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "YARN", "HDP-2.0.1", "2.0.1-1234", null)); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "HDFS", repositoryVersion201.getId(), null)); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "MAPREDUCE2", repositoryVersion201.getId(), null)); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "YARN", repositoryVersion201.getId(), null)); ServiceResourceProviderTest.createServices(amc, repositoryVersionDAO, serviceRequests); @@ -9099,9 +9094,9 @@ public class AmbariManagementControllerTest { //Install services serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "HDFS", "HDP-2.0.1", "2.0.1-1234", State.INSTALLED.name())); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "MAPREDUCE2", "HDP-2.0.1", "2.0.1-1234", State.INSTALLED.name())); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "YARN", "HDP-2.0.1", "2.0.1-1234", State.INSTALLED.name())); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "HDFS", repositoryVersion201.getId(), State.INSTALLED.name())); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "MAPREDUCE2", repositoryVersion201.getId(), State.INSTALLED.name())); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "YARN", repositoryVersion201.getId(), State.INSTALLED.name())); ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, true, false); @@ -9123,9 +9118,9 @@ public class AmbariManagementControllerTest { //Start services serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "HDFS", "HDP-2.0.1", "2.0.1-1234", State.STARTED.name())); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "MAPREDUCE2", "HDP-2.0.1", "2.0.1-1234", State.STARTED.name())); - serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "YARN", "HDP-2.0.1", "2.0.1-1234", State.STARTED.name())); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "HDFS", repositoryVersion201.getId(), State.STARTED.name())); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "MAPREDUCE2", repositoryVersion201.getId(), State.STARTED.name())); + serviceRequests.add(new ServiceRequest(CLUSTER_NAME, "YARN", repositoryVersion201.getId(), State.STARTED.name())); RequestStatusResponse response = ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, true, false); @@ -9307,7 +9302,7 @@ public class AmbariManagementControllerTest { //Stopping HDFS service serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-0.2", "0.2-1234", "INSTALLED")); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion02.getId(), "INSTALLED")); ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, false, false); @@ -9315,7 +9310,7 @@ public class AmbariManagementControllerTest { // test(HDFS_SERVICE_CHECK) won't run boolean runSmokeTest = false; serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-0.2", "0.2-1234", "STARTED")); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion02.getId(), "STARTED")); response = ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, runSmokeTest, false); @@ -9330,7 +9325,7 @@ public class AmbariManagementControllerTest { //Stopping HDFS service serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-0.2", "0.2-1234", "INSTALLED")); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion02.getId(), "INSTALLED")); ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, false, false); @@ -9338,7 +9333,7 @@ public class AmbariManagementControllerTest { //run_smoke_test flag is set, smoke test will be run runSmokeTest = true; serviceRequests.clear(); - serviceRequests.add(new ServiceRequest(cluster1, "HDFS", "HDP-0.2", "0.2-1234", "STARTED")); + serviceRequests.add(new ServiceRequest(cluster1, "HDFS", repositoryVersion02.getId(), "STARTED")); response = ServiceResourceProviderTest.updateServices(amc, serviceRequests, mapRequestProps, runSmokeTest, false); @@ -9578,7 +9573,7 @@ public class AmbariManagementControllerTest { MaintenanceStateHelper maintenanceStateHelper = MaintenanceStateHelperTest.getMaintenanceStateHelperInstance(clusters); // test updating a service - ServiceRequest sr = new ServiceRequest(cluster1, serviceName, "HDP-1.2.0", "1.2.0-1234", null); + ServiceRequest sr = new ServiceRequest(cluster1, serviceName, repositoryVersion120.getId(), null); sr.setMaintenanceState(MaintenanceState.ON.name()); ServiceResourceProviderTest.updateServices(controller, Collections.singleton(sr), requestProperties, false, false, @@ -9795,7 +9790,7 @@ public class AmbariManagementControllerTest { MaintenanceStateHelperTest.getMaintenanceStateHelperInstance(clusters); // test updating a service - ServiceRequest sr = new ServiceRequest(cluster1, service1Name, "HDP-2.2.0", "2.2.0-1234", null); + ServiceRequest sr = new ServiceRequest(cluster1, service1Name, repositoryVersion220.getId(), null); sr.setCredentialStoreEnabled("true"); ServiceResourceProviderTest.updateServices(controller, @@ -9805,7 +9800,7 @@ public class AmbariManagementControllerTest { Assert.assertTrue(service1.isCredentialStoreSupported()); Assert.assertFalse(service1.isCredentialStoreRequired()); - ServiceRequest sr2 = new ServiceRequest(cluster1, service2Name, "HDP-2.2.0", "2.2.0-1234", null); + ServiceRequest sr2 = new ServiceRequest(cluster1, service2Name, repositoryVersion220.getId(), null); sr2.setCredentialStoreEnabled("true"); try { ServiceResourceProviderTest.updateServices(controller, @@ -9817,7 +9812,7 @@ public class AmbariManagementControllerTest { "Invalid arguments, cannot enable credential store as it is not supported by the service. Service=STORM")); } - ServiceRequest sr3 = new ServiceRequest(cluster1, service3Name, "HDP-2.2.0", "2.2.0-1234", null); + ServiceRequest sr3 = new ServiceRequest(cluster1, service3Name, repositoryVersion220.getId(), null); sr3.setCredentialStoreEnabled("false"); try { ServiceResourceProviderTest.updateServices(controller, @@ -9829,7 +9824,7 @@ public class AmbariManagementControllerTest { "Invalid arguments, cannot disable credential store as it is required by the service. Service=ZOOKEEPER")); } - ServiceRequest sr4 = new ServiceRequest(cluster1, service3Name, "HDP-2.2.0", "2.2.0-1234", null); + ServiceRequest sr4 = new ServiceRequest(cluster1, service3Name, repositoryVersion220.getId(), null); sr4.setCredentialStoreSupported("true"); try { ServiceResourceProviderTest.updateServices(controller, @@ -9906,8 +9901,8 @@ public class AmbariManagementControllerTest { service2.setMaintenanceState(MaintenanceState.ON); Set<ServiceRequest> srs = new HashSet<>(); - srs.add(new ServiceRequest(cluster1, serviceName1, "HDP-0.1", "0.1-1234", State.INSTALLED.name())); - srs.add(new ServiceRequest(cluster1, serviceName2, "HDP-0.1", "0.1-1234", State.INSTALLED.name())); + srs.add(new ServiceRequest(cluster1, serviceName1, repositoryVersion01.getId(), State.INSTALLED.name())); + srs.add(new ServiceRequest(cluster1, serviceName2, repositoryVersion01.getId(), State.INSTALLED.name())); RequestStatusResponse rsr = ServiceResourceProviderTest.updateServices(controller, srs, requestProperties, false, false, maintenanceStateHelper); @@ -9940,8 +9935,8 @@ public class AmbariManagementControllerTest { h1.setMaintenanceState(cluster.getClusterId(), MaintenanceState.ON); srs = new HashSet<>(); - srs.add(new ServiceRequest(cluster1, serviceName1, "HDP-0.1", "0.1-1234", State.INSTALLED.name())); - srs.add(new ServiceRequest(cluster1, serviceName2, "HDP-0.1", "0.1-1234", State.INSTALLED.name())); + srs.add(new ServiceRequest(cluster1, serviceName1, repositoryVersion01.getId(), State.INSTALLED.name())); + srs.add(new ServiceRequest(cluster1, serviceName2, repositoryVersion01.getId(), State.INSTALLED.name())); rsr = ServiceResourceProviderTest.updateServices(controller, srs, requestProperties, false, false, maintenanceStateHelper); @@ -9955,7 +9950,7 @@ public class AmbariManagementControllerTest { service2.setMaintenanceState(MaintenanceState.ON); - ServiceRequest sr = new ServiceRequest(cluster1, serviceName2, "HDP-0.1", "0.1-1234", State.INSTALLED.name()); + ServiceRequest sr = new ServiceRequest(cluster1, serviceName2, repositoryVersion01.getId(), State.INSTALLED.name()); rsr = ServiceResourceProviderTest.updateServices(controller, Collections.singleton(sr), requestProperties, false, false, maintenanceStateHelper); http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java index e4f6279..8223acb 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java @@ -218,7 +218,7 @@ public class BackgroundCustomCommandExecutionTest { dStateStr = desiredState.toString(); } ServiceRequest r1 = new ServiceRequest(clusterName, serviceName, - m_repositoryVersion.getStackId().getStackId(), m_repositoryVersion.getVersion(), dStateStr); + m_repositoryVersion.getId(), dStateStr); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r1); http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/test/java/org/apache/ambari/server/controller/RefreshYarnCapacitySchedulerReleaseConfigTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/RefreshYarnCapacitySchedulerReleaseConfigTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/RefreshYarnCapacitySchedulerReleaseConfigTest.java index b2589f6..c7599bb 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/RefreshYarnCapacitySchedulerReleaseConfigTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/RefreshYarnCapacitySchedulerReleaseConfigTest.java @@ -214,7 +214,7 @@ public class RefreshYarnCapacitySchedulerReleaseConfigTest { new StackId("HDP-2.0.7"), "2.0.7-1234"); ServiceRequest r1 = new ServiceRequest(clusterName, serviceName, - repositoryVersion.getStackId().getStackId(), repositoryVersion.getVersion(), dStateStr); + repositoryVersion.getId(), dStateStr); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r1); http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterResourceProviderTest.java index f436dce..1f10a85 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterResourceProviderTest.java @@ -812,7 +812,6 @@ public class ClusterResourceProviderTest { Map<String, Object> properties = new LinkedHashMap<>(); properties.put(ClusterResourceProvider.CLUSTER_NAME_PROPERTY_ID, "Cluster100"); properties.put(ClusterResourceProvider.CLUSTER_VERSION_PROPERTY_ID, "HDP-0.1"); - properties.put(ClusterResourceProvider.CLUSTER_REPO_VERSION, "2.1.1"); propertySet.add(properties); @@ -826,7 +825,6 @@ public class ClusterResourceProviderTest { assertTrue(cap.hasCaptured()); assertNotNull(cap.getValue()); - assertEquals("2.1.1", cap.getValue().getRepositoryVersion()); } @Test http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java index 4bb6524..f118bd4 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java @@ -124,8 +124,7 @@ public class JMXHostProviderTest { dStateStr = desiredState.toString(); } - ServiceRequest r1 = new ServiceRequest(clusterName, serviceName, STACK_ID.getStackId(), - REPO_VERSION, dStateStr); + ServiceRequest r1 = new ServiceRequest(clusterName, serviceName, m_repositoryVersion.getId(), dStateStr); Set<ServiceRequest> requests = new HashSet<>(); requests.add(r1); http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java index 2e98de9..a0c58ea 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java @@ -153,6 +153,7 @@ public class ServiceResourceProviderTest { properties.put(ServiceResourceProvider.SERVICE_SERVICE_NAME_PROPERTY_ID, "Service100"); properties.put(ServiceResourceProvider.SERVICE_SERVICE_STATE_PROPERTY_ID, "INIT"); properties.put(ServiceResourceProvider.SERVICE_DESIRED_STACK_PROPERTY_ID, "HDP-1.1"); + properties.put(ServiceResourceProvider.SERVICE_DESIRED_REPO_VERSION_ID_PROPERTY_ID, "1"); propertySet.add(properties); @@ -1156,8 +1157,9 @@ public class ServiceResourceProviderTest { if (mockFindByStack) { RepositoryVersionEntity repositoryVersion = createNiceMock(RepositoryVersionEntity.class); - expect(repositoryVersionDAO.findByStack(EasyMock.anyObject(StackId.class))).andReturn( - Collections.singletonList(repositoryVersion)).atLeastOnce(); + + expect(repositoryVersionDAO.findByPK(EasyMock.anyLong())).andReturn(repositoryVersion).atLeastOnce(); + expect(repositoryVersion.getStackId()).andReturn(new StackId("HDP-2.2")).anyTimes(); replay(repositoryVersion); } http://git-wip-us.apache.org/repos/asf/ambari/blob/43a86720/ambari-server/src/test/java/org/apache/ambari/server/topology/AmbariContextTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/topology/AmbariContextTest.java b/ambari-server/src/test/java/org/apache/ambari/server/topology/AmbariContextTest.java index 01a7532..9ec3621 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/topology/AmbariContextTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/topology/AmbariContextTest.java @@ -59,6 +59,8 @@ import org.apache.ambari.server.controller.spi.ClusterController; import org.apache.ambari.server.controller.spi.Predicate; import org.apache.ambari.server.controller.spi.Request; import org.apache.ambari.server.controller.spi.Resource; +import org.apache.ambari.server.orm.dao.RepositoryVersionDAO; +import org.apache.ambari.server.orm.entities.RepositoryVersionEntity; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.Config; @@ -118,6 +120,7 @@ public class AmbariContextTest { private static final ConfigFactory configFactory = createNiceMock(ConfigFactory.class); private static final Service mockService1 = createStrictMock(Service.class); + private static final Collection<String> blueprintServices = new HashSet<>(); private static final Map<String, Service> clusterServices = new HashMap<>(); private static final Map<Long, ConfigGroup> configGroups = new HashMap<>(); @@ -130,7 +133,7 @@ public class AmbariContextTest { @Before public void setUp() throws Exception { // "inject" context state - Class clazz = AmbariContext.class; + Class<AmbariContext> clazz = AmbariContext.class; Field f = clazz.getDeclaredField("controller"); f.setAccessible(true); f.set(null, controller); @@ -202,7 +205,15 @@ public class AmbariContextTest { type1Service1).anyTimes(); replay(type1Service1); + RepositoryVersionDAO repositoryVersionDAO = createStrictMock(RepositoryVersionDAO.class); + RepositoryVersionEntity repositoryVersion = createStrictMock(RepositoryVersionEntity.class); + expect(repositoryVersion.getId()).andReturn(1L).anyTimes(); + expect(repositoryVersionDAO.findByStackAndVersion(EasyMock.anyObject(StackId.class), + EasyMock.anyString())).andReturn(repositoryVersion).anyTimes(); + replay(repositoryVersionDAO, repositoryVersion); + context.configFactory = configFactory; + context.repositoryVersionDAO = repositoryVersionDAO; blueprintServices.add("service1"); blueprintServices.add("service2"); @@ -248,6 +259,7 @@ public class AmbariContextTest { expect(configGroup1.getName()).andReturn(String.format("%s:%s", BP_NAME, HOST_GROUP_1)).anyTimes(); expect(configGroup2.getName()).andReturn(String.format("%s:%s", BP_NAME, HOST_GROUP_2)).anyTimes(); + } @After @@ -293,10 +305,12 @@ public class AmbariContextTest { expect(serviceResourceProvider.updateResources(capture(serviceStartRequestCapture), capture(startPredicateCapture))).andReturn(null).once(); + + replayAll(); // test - context.createAmbariResources(topology, CLUSTER_NAME, null, null); + context.createAmbariResources(topology, CLUSTER_NAME, null, "1.2.3"); // assertions ClusterRequest clusterRequest = clusterRequestCapture.getValue();
