This is an automated email from the ASF dual-hosted git repository. adoroszlai pushed a commit to branch branch-feature-AMBARI-14714 in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/branch-feature-AMBARI-14714 by this push: new a0fdfc1 AMBARI-14714. Fix some unit tests (#1464) a0fdfc1 is described below commit a0fdfc1f43f951c125c3143c1923b41c20ba13e3 Author: Doroszlai, Attila <6454655+adorosz...@users.noreply.github.com> AuthorDate: Wed Jun 6 13:19:38 2018 +0200 AMBARI-14714. Fix some unit tests (#1464) --- .../controller/AmbariManagementControllerImpl.java | 6 +- .../internal/ProvisionClusterRequest.java | 12 +++ .../ambari/server/orm/dao/ServiceConfigDAO.java | 2 +- .../server/orm/entities/ClusterServiceEntity.java | 4 +- .../server/serveraction/kerberos/Component.java | 12 +++ .../ambari/server/state/ServiceGroupImpl.java | 1 + .../api/resources/HostResourceDefinitionTest.java | 21 ++---- .../checks/DatabaseConsistencyCheckHelperTest.java | 16 +--- .../AmbariManagementControllerImplTest.java | 34 ++++++--- .../controller/AmbariManagementControllerTest.java | 86 +++++++++++----------- .../ambari/server/controller/AmbariServerTest.java | 22 +++--- .../BackgroundCustomCommandExecutionTest.java | 72 +++++++++--------- .../controller/internal/RequestImplTest.java | 1 - .../utilities/KerberosIdentityCleanerTest.java | 11 +-- .../orm/entities/ServiceConfigEntityTest.java | 16 ++-- ...apAuthenticationProviderForDNWithSpaceTest.java | 1 + .../AmbariLdapAuthenticationProviderTest.java | 1 + .../kerberos/FinalizeKerberosServerActionTest.java | 1 + .../kerberos/KerberosServerActionTest.java | 1 + .../stack/StackManagerCommonServicesTest.java | 19 ----- .../ambari/server/stack/StackModuleTest.java | 72 ------------------ .../ambari/server/state/ConfigHelperTest.java | 12 --- .../ambari/server/state/cluster/ClustersTest.java | 29 +++----- .../topology/ClusterDeployWithStartOnlyTest.java | 25 ++++++- ...terInstallWithoutStartOnComponentLevelTest.java | 25 ++++++- .../topology/ClusterInstallWithoutStartTest.java | 25 ++++++- .../ambari/server/update/HostUpdateHelperTest.java | 2 +- .../server/upgrade/UpgradeCatalog251Test.java | 14 ++++ .../server/upgrade/UpgradeCatalog252Test.java | 24 +++++- .../server/upgrade/UpgradeCatalog260Test.java | 37 +++++++++- .../server/upgrade/UpgradeCatalog270Test.java | 18 ++++- .../cust_action_definitions1.xml | 6 +- .../cust_action_definitions_invalid.xml | 3 +- 33 files changed, 339 insertions(+), 292 deletions(-) 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 d7597d2..9b09655 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 @@ -1397,7 +1397,9 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle // filter on component name if provided Set<ServiceComponent> components = new HashSet<>(); if (request.getComponentName() != null) { - components.add(s.getServiceComponent(request.getComponentName())); + if (s.getServiceComponents().keySet().contains(request.getComponentName())) { + components.add(s.getServiceComponent(request.getComponentName())); + } } else { components.addAll(s.getServiceComponents().values()); } @@ -3725,6 +3727,8 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle request.setServiceName(s.getName()); request.setComponentName(hostComponentStateEntity.getComponentName()); request.setComponentType(hostComponentStateEntity.getComponentType()); + } else { + s = cluster.getService(request.getServiceGroupName(), request.getServiceName()); } LOG.info("Received a hostComponent DELETE request" diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ProvisionClusterRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ProvisionClusterRequest.java index 3b3700e..4dd0e68 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ProvisionClusterRequest.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ProvisionClusterRequest.java @@ -36,6 +36,7 @@ import org.apache.ambari.server.state.SecurityType; import org.apache.ambari.server.state.StackId; import org.apache.ambari.server.state.quicklinksprofile.QuickLinksProfileBuilder; import org.apache.ambari.server.state.quicklinksprofile.QuickLinksProfileEvaluationException; +import org.apache.ambari.server.topology.Blueprint; import org.apache.ambari.server.topology.BlueprintFactory; import org.apache.ambari.server.topology.ConfigRecommendationStrategy; import org.apache.ambari.server.topology.Configuration; @@ -54,6 +55,7 @@ import org.slf4j.LoggerFactory; import com.google.common.base.Enums; import com.google.common.base.Optional; import com.google.common.base.Strings; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; /** @@ -207,6 +209,16 @@ public class ProvisionClusterRequest extends BaseClusterRequest implements Provi } } + // for tests + public ProvisionClusterRequest(Blueprint blueprint, Configuration configuration) { + configRecommendationStrategy = ConfigRecommendationStrategy.NEVER_APPLY; + quickLinksProfileJson = null; + mpackInstances = ImmutableList.of(); + stackIds = ImmutableSet.of(); + setBlueprint(blueprint); + setConfiguration(configuration); + } + private String processQuickLinksProfile(Map<String, Object> properties) throws QuickLinksProfileEvaluationException { Object globalFilters = properties.get(QUICKLINKS_PROFILE_FILTERS_PROPERTY); Object serviceFilters = properties.get(QUICKLINKS_PROFILE_SERVICES_PROPERTY); diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceConfigDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceConfigDAO.java index 5c4a59e..17fda91 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceConfigDAO.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceConfigDAO.java @@ -197,7 +197,7 @@ public class ServiceConfigDAO { stackId.getStackVersion()); TypedQuery<ServiceConfigEntity> query = entityManagerProvider.get().createNamedQuery( - "ServiceConfigEntity.findAllServiceConfigsByStack", + "ServiceConfigEntity.findServiceConfigsByStack", ServiceConfigEntity.class); query.setParameter("clusterId", clusterId); diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java index 4ed7cbb..e0146e3 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java @@ -64,7 +64,7 @@ import javax.persistence.UniqueConstraint; ) public class ClusterServiceEntity { - @Column(name = "cluster_id", nullable = false, insertable = true, updatable = false, length = 10) + @Column(name = "cluster_id", nullable = false, insertable = false, updatable = false, length = 10) private Long clusterId; @Column(name = "service_group_id", nullable = false, insertable = false, updatable = false, length = 10) @@ -87,7 +87,7 @@ public class ClusterServiceEntity { @ManyToOne - @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false, insertable = false, updatable = false) + @JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false) private ClusterEntity clusterEntity; @ManyToOne diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/Component.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/Component.java index ed7642c..0260a31 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/Component.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/Component.java @@ -21,6 +21,8 @@ import org.apache.ambari.server.state.ServiceComponentHost; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; +import com.google.common.base.MoreObjects; + public class Component { private final String hostName; private final String serviceName; @@ -80,4 +82,14 @@ public class Component { .append(hostId) .toHashCode(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("hostName", hostName) + .add("serviceName", serviceName) + .add("serviceComponentName", serviceComponentName) + .add("hostId", hostId) + .toString(); + } } diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceGroupImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceGroupImpl.java index 6813024..04623de 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceGroupImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceGroupImpl.java @@ -367,6 +367,7 @@ public class ServiceGroupImpl implements ServiceGroup { ServiceGroupEntity serviceGroupEntity = getServiceGroupEntity(); serviceGroupEntity.setStack(stackEntity); serviceGroupEntity = serviceGroupDAO.merge(serviceGroupEntity); + stackId = new StackId(stackEntity.getStackName(), stackEntity.getStackVersion()); } @Override diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/resources/HostResourceDefinitionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/resources/HostResourceDefinitionTest.java index 70375d2..535ed48 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/resources/HostResourceDefinitionTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/resources/HostResourceDefinitionTest.java @@ -18,9 +18,9 @@ package org.apache.ambari.server.api.resources; +import static java.util.stream.Collectors.toSet; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; import java.util.Set; @@ -29,6 +29,8 @@ import org.apache.ambari.server.api.query.render.HostSummaryRenderer; import org.apache.ambari.server.controller.spi.Resource; import org.junit.Test; +import com.google.common.collect.ImmutableSet; + /** * HostResourceDefinition unit tests. */ @@ -49,10 +51,10 @@ public class HostResourceDefinitionTest { final ResourceDefinition resource = new HostResourceDefinition(); Set<SubResourceDefinition> subResources = resource.getSubResourceDefinitions(); - assertEquals(4, subResources.size()); - assertTrue(includesType(subResources, Resource.Type.HostComponent)); - assertTrue(includesType(subResources, Resource.Type.Alert)); - assertTrue(includesType(subResources, Resource.Type.HostKerberosIdentity)); + assertEquals( + ImmutableSet.of(Resource.Type.Alert, Resource.Type.HostComponent, Resource.Type.HostKerberosIdentity), + subResources.stream().map(SubResourceDefinition::getType).collect(toSet()) + ); } @Test @@ -61,13 +63,4 @@ public class HostResourceDefinitionTest { assertSame(HostSummaryRenderer.class, resource.getRenderer("summary").getClass()); assertSame(DefaultRenderer.class, resource.getRenderer(null).getClass()); } - - private boolean includesType(Set<SubResourceDefinition> resources, Resource.Type type) { - for (SubResourceDefinition subResource : resources) { - if (subResource.getType() == type) { - return true; - } - } - return false; - } } diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelperTest.java index 43ae195..5bfac54 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelperTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelperTest.java @@ -494,23 +494,11 @@ public class DatabaseConsistencyCheckHelperTest { final ServiceInfo mockHDFSServiceInfo = easyMockSupport.createNiceMock(ServiceInfo.class); final StackManagerFactory mockStackManagerFactory = easyMockSupport.createNiceMock(StackManagerFactory.class); - final MpackManagerFactory mockMpackManagerFacgtory = easyMockSupport.createNiceMock(MpackManagerFactory.class); + final MpackManagerFactory mockMpackManagerFactory = easyMockSupport.createNiceMock(MpackManagerFactory.class); final EntityManager mockEntityManager = easyMockSupport.createNiceMock(EntityManager.class); final Clusters mockClusters = easyMockSupport.createNiceMock(Clusters.class); final OsFamily mockOSFamily = easyMockSupport.createNiceMock(OsFamily.class); - final Injector mockInjector = Guice.createInjector(new AbstractModule() { - @Override - protected void configure() { - bind(RootLevelSettingsManagerFactory.class).toInstance(rootLevelSettingsManagerFactoryMock); - bind(AmbariMetaInfo.class).toInstance(mockAmbariMetainfo); - bind(StackManagerFactory.class).toInstance(mockStackManagerFactory); - bind(EntityManager.class).toInstance(mockEntityManager); - bind(DBAccessor.class).toInstance(mockDBDbAccessor); - bind(Clusters.class).toInstance(mockClusters); - bind(OsFamily.class).toInstance(mockOSFamily); - bind(MpackManagerFactory.class).toInstance(mockMpackManagerFacgtory); - } - }); + final Injector mockInjector = createInjectorWithAmbariMetaInfo(mockAmbariMetainfo, mockDBDbAccessor, rootLevelSettingsManagerFactoryMock, mockStackManagerFactory, mockEntityManager, mockClusters, mockOSFamily, mockMpackManagerFactory); Map<String, ServiceInfo> services = new HashMap<>(); services.put("HDFS", mockHDFSServiceInfo); 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 741455a..e12d4ec 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 @@ -907,7 +907,8 @@ public class AmbariManagementControllerImplTest { expect(cluster.getService("CORE", "service1")).andReturn(service).anyTimes(); expect(cluster.getServiceByComponentName("component1")).andReturn(service).anyTimes(); expect(service.getName()).andReturn("service1").anyTimes(); - expect(service.getServiceComponent("component1")).andReturn(component); + expect(service.getServiceComponents()).andReturn(ImmutableMap.of("component1", component)).anyTimes(); + expect(service.getServiceComponent("component1")).andReturn(component).anyTimes(); expect(component.getId()).andReturn(1L).times(2); expect(component.getServiceComponentHosts()).andReturn( new HashMap<String, ServiceComponentHost>() {{ @@ -977,7 +978,8 @@ public class AmbariManagementControllerImplTest { expect(cluster.getServicesByServiceGroup("CORE")).andReturn(ImmutableList.of(service)).anyTimes(); expect(cluster.getService("CORE", "service1")).andReturn(service).anyTimes(); expect(cluster.getServiceByComponentName("component1")).andReturn(service).anyTimes(); - expect(service.getServiceComponent("component1")).andReturn(component); + expect(service.getServiceComponents()).andReturn(ImmutableMap.of("component1", component)).anyTimes(); + expect(service.getServiceComponent("component1")).andReturn(component).anyTimes(); expect(component.getId()).andReturn(1L).anyTimes(); expect(component.getServiceComponentHosts()).andReturn(null); @@ -1066,7 +1068,8 @@ public class AmbariManagementControllerImplTest { expect(cluster.getServicesByServiceGroup("CORE")).andReturn(ImmutableList.of(service)).anyTimes(); expect(cluster.getService("CORE", "service1")).andReturn(service).anyTimes(); expect(cluster.getServiceByComponentName("component1")).andReturn(service).anyTimes(); - expect(service.getServiceComponent("component1")).andReturn(component); + expect(service.getServiceComponents()).andReturn(ImmutableMap.of("component1", component)).anyTimes(); + expect(service.getServiceComponent("component1")).andReturn(component).anyTimes(); expect(service.getName()).andReturn("service1").anyTimes(); expect(component.getName()).andReturn("component1").anyTimes(); expect(component.getServiceComponentHosts()).andReturn(new HashMap<String, ServiceComponentHost>() {{ @@ -1142,7 +1145,8 @@ public class AmbariManagementControllerImplTest { expect(cluster.getServicesByServiceGroup("CORE")).andReturn(ImmutableList.of(service)).anyTimes(); expect(cluster.getService("CORE", "service1")).andReturn(service).anyTimes(); expect(cluster.getServiceByComponentName("component1")).andReturn(service).anyTimes(); - expect(service.getServiceComponent("component1")).andReturn(component); + expect(service.getServiceComponents()).andReturn(ImmutableMap.of("component1", component)).anyTimes(); + expect(service.getServiceComponent("component1")).andReturn(component).anyTimes(); expect(service.getName()).andReturn("service1").anyTimes(); expect(component.getName()).andReturn("component1").anyTimes(); expect(component.getServiceComponentHosts()).andReturn(new HashMap<String, ServiceComponentHost>() {{ @@ -1229,7 +1233,8 @@ public class AmbariManagementControllerImplTest { expect(cluster.getService("CORE", "service1")).andReturn(service).anyTimes(); expect(cluster.getServiceByComponentName("component1")).andReturn(service).anyTimes(); - expect(service.getServiceComponent("component1")).andReturn(component1); + expect(service.getServiceComponents()).andReturn(ImmutableMap.of("component1", component1, "component2", component2, "component3", component3)).anyTimes(); + expect(service.getServiceComponent("component1")).andReturn(component1).anyTimes(); expect(service.getName()).andReturn("service1").anyTimes(); expect(component1.getServiceComponentHosts()).andReturn( new HashMap<String, ServiceComponentHost>() {{ @@ -1371,7 +1376,8 @@ public class AmbariManagementControllerImplTest { expect(cluster.getServicesByServiceGroup("CORE")).andReturn(ImmutableList.of(service)).anyTimes(); expect(cluster.getService("CORE", "service1")).andReturn(service).anyTimes(); expect(cluster.getServiceByComponentName("component1")).andReturn(service).anyTimes(); - expect(service.getServiceComponent("component1")).andReturn(component1); + expect(service.getServiceComponents()).andReturn(ImmutableMap.of("component1", component1, "component2", component2, "component3", component3)).anyTimes(); + expect(service.getServiceComponent("component1")).andReturn(component1).anyTimes(); expect(component1.getServiceComponentHosts()).andReturn(ImmutableMap.of("host1", componentHost1)); expect(componentHost1.convertToResponse(null)).andReturn(response1); expect(componentHost1.getHostName()).andReturn("host1"); @@ -1380,7 +1386,7 @@ public class AmbariManagementControllerImplTest { expect(service.getName()).andReturn("service1").anyTimes(); expect(cluster.getServiceByComponentName("component3")).andReturn(service).anyTimes(); - expect(service.getServiceComponent("component3")).andReturn(component3); + expect(service.getServiceComponent("component3")).andReturn(component3).anyTimes(); expect(component3.getServiceComponentHosts()).andReturn(ImmutableMap.of("host1", componentHost2)); expect(componentHost2.convertToResponse(null)).andReturn(response2); expect(componentHost2.getHostName()).andReturn("host1"); @@ -1507,7 +1513,8 @@ public class AmbariManagementControllerImplTest { expect(cluster.getServicesByServiceGroup("CORE")).andReturn(ImmutableList.of(service, service2)).anyTimes(); expect(cluster.getService("CORE", "service1")).andReturn(service).anyTimes(); expect(cluster.getServiceByComponentName("component1")).andReturn(service).anyTimes(); - expect(service.getServiceComponent("component1")).andReturn(component); + expect(service.getServiceComponents()).andReturn(ImmutableMap.of("component1", component, "component3", component3)).anyTimes(); + expect(service.getServiceComponent("component1")).andReturn(component).anyTimes(); expect(component.getServiceComponentHosts()).andReturn(ImmutableMap.<String, ServiceComponentHost>builder() .put("host1", componentHost1) .build()); @@ -1517,8 +1524,9 @@ public class AmbariManagementControllerImplTest { // expect(ambariMetaInfo.getComponentToService("stackName", "stackVersion", "component2")).andReturn("service2"); expect(cluster.getService("CORE", "service2")).andReturn(service2); expect(cluster.getServiceByComponentName("component2")).andReturn(service2).anyTimes(); + expect(service2.getServiceComponents()).andReturn(ImmutableMap.of()).anyTimes(); expect(service2.getServiceComponent("component2")). - andThrow(new ServiceComponentNotFoundException("cluster1", "service2", "service2", "CORE", "component2")); + andThrow(new ServiceComponentNotFoundException("cluster1", "service2", "service2", "CORE", "component2")).anyTimes(); // expect(ambariMetaInfo.getComponentToService("stackName", "stackVersion", "component3")).andReturn("service1"); expect(cluster.getServiceByComponentName("component3")).andReturn(service).anyTimes(); @@ -1649,7 +1657,8 @@ public class AmbariManagementControllerImplTest { expect(cluster.getServicesByServiceGroup("CORE")).andReturn(ImmutableList.of(service)).anyTimes(); expect(cluster.getService("CORE", "service1")).andReturn(service).anyTimes(); expect(cluster.getServiceByComponentName("component1")).andReturn(service).anyTimes(); - expect(service.getServiceComponent("component1")).andReturn(component); + expect(service.getServiceComponents()).andReturn(ImmutableMap.of("component1", component, "component3", component3)).anyTimes(); + expect(service.getServiceComponent("component1")).andReturn(component).anyTimes(); expect(service.getName()).andReturn("service1").anyTimes(); expect(component.getServiceComponentHosts()).andReturn(Collections.singletonMap("foo", componentHost1)); expect(componentHost1.convertToResponse(null)).andReturn(response1); @@ -1658,7 +1667,7 @@ public class AmbariManagementControllerImplTest { expect(clusters.getClustersForHost("host2")).andThrow(new HostNotFoundException("host2")); expect(cluster.getServiceByComponentName("component3")).andReturn(service).anyTimes(); - expect(service.getServiceComponent("component3")).andReturn(component3); + expect(service.getServiceComponent("component3")).andReturn(component3).anyTimes(); expect(component3.getServiceComponentHosts()).andReturn(Collections.singletonMap("foo", componentHost2)); expect(componentHost2.convertToResponse(null)).andReturn(response2); expect(componentHost2.getHostName()).andReturn("host1"); @@ -1887,7 +1896,8 @@ public class AmbariManagementControllerImplTest { expect(service.getName()).andReturn("service1").anyTimes(); expect(component.getName()).andReturn("component1").anyTimes(); expect(cluster.getServiceByComponentName("component1")).andReturn(service).anyTimes(); - expect(service.getServiceComponent("component1")).andReturn(component); + expect(service.getServiceComponents()).andReturn(ImmutableMap.of("component1", component)).anyTimes(); + expect(service.getServiceComponent("component1")).andReturn(component).anyTimes(); expect(component.getServiceComponentHosts()).andReturn(mapHostComponents); expect(componentHost1.convertToResponse(null)).andReturn(response1); expect(componentHost2.convertToResponse(null)).andReturn(response2); 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 34b54ed..446b87a 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 @@ -229,16 +229,17 @@ public class AmbariManagementControllerTest { private HostRoleCommandDAO hostRoleCommandDAO; private StackManagerMock stackManagerMock; - StackId stackId01; - StackId stackId02; - StackId stackId120; - StackId stackId131; - StackId stackId201; - StackId stackId205; - StackId stackId206; - StackId stackId207; - StackId stackId208; - StackId stackId220; + private StackId stackId01; + private StackId stackId02; + private StackId stackId120; + private StackId stackId131; + private StackId stackId201; + private StackId stackId205; + private StackId stackId206; + private StackId stackId207; + private StackId stackId208; + private StackId stackId220; + private StackId other20; @Rule public ExpectedException expectedException = ExpectedException.none(); @@ -295,6 +296,7 @@ public class AmbariManagementControllerTest { stackId207 = helper.createMpack(new StackId("HDP-2.0.7")).getStackId(); stackId208 = helper.createMpack(new StackId("HDP-2.0.8")).getStackId(); stackId220 = helper.createMpack(new StackId("HDP-2.2.0")).getStackId(); + other20 = helper.createMpack(new StackId("OTHER-2.0")).getStackId(); for (Host host : clusters.getHosts()) { clusters.updateHostMappings(host); @@ -3698,33 +3700,29 @@ public class AmbariManagementControllerTest { // // Expected // } - try { - reqs.clear(); - req1 = new ServiceComponentHostRequest(cluster1, serviceGroupName, serviceName1, - componentName1, componentName1, host1, - State.INSTALLED.toString()); - req2 = new ServiceComponentHostRequest(cluster1, serviceGroupName, serviceName1, - componentName1, componentName2, host2, - State.INSTALLED.toString()); - req3 = new ServiceComponentHostRequest(cluster1, serviceGroupName, serviceName1, - componentName2, componentName2, host1, - State.INSTALLED.toString()); - req4 = new ServiceComponentHostRequest(cluster1, serviceGroupName, serviceName1, - componentName2, componentName2, host2, - State.INSTALLED.toString()); - req5 = new ServiceComponentHostRequest(cluster1, serviceGroupName, serviceName1, - componentName3, componentName3, host1, - State.STARTED.toString()); - reqs.add(req1); - reqs.add(req2); - reqs.add(req3); - reqs.add(req4); - reqs.add(req5); - updateHostComponents(reqs, Collections.emptyMap(), true); - // Expected, now client components with STARTED status will be ignored - } catch (Exception e) { - fail("Failure for invalid states"); - } + reqs.clear(); + req1 = new ServiceComponentHostRequest(cluster1, serviceGroupName, serviceName1, + componentName1, componentName1, host1, + State.INSTALLED.toString()); + req2 = new ServiceComponentHostRequest(cluster1, serviceGroupName, serviceName1, + componentName1, componentName2, host2, + State.INSTALLED.toString()); + req3 = new ServiceComponentHostRequest(cluster1, serviceGroupName, serviceName1, + componentName2, componentName2, host1, + State.INSTALLED.toString()); + req4 = new ServiceComponentHostRequest(cluster1, serviceGroupName, serviceName1, + componentName2, componentName2, host2, + State.INSTALLED.toString()); + req5 = new ServiceComponentHostRequest(cluster1, serviceGroupName, serviceName1, + componentName3, componentName3, host1, + State.STARTED.toString()); + reqs.add(req1); + reqs.add(req2); + reqs.add(req3); + reqs.add(req4); + reqs.add(req5); + updateHostComponents(reqs, Collections.emptyMap(), true); + // Expected, now client components with STARTED status will be ignored reqs.clear(); req1 = new ServiceComponentHostRequest(cluster1, serviceGroupName, null, @@ -5194,7 +5192,7 @@ public class AmbariManagementControllerTest { host1, null); createServiceComponentHost(cluster1, serviceGroupName, serviceName, componentName1, host2, null); - createServiceComponentHost(cluster1, serviceGroupName, null, "SOME_CLIENT_FOR_SERVICE_CHECK", + createServiceComponentHost(cluster1, serviceGroupName, serviceName, "SOME_CLIENT_FOR_SERVICE_CHECK", host2, null); ServiceRequest r = new ServiceRequest(cluster1, serviceGroupName, serviceName, null, @@ -8449,7 +8447,7 @@ public class AmbariManagementControllerTest { clusters.addHost(HOST1); Host host = clusters.getHost(HOST1); - setOsFamily(host, "redhat", "5.9"); + setOsFamily(host, "redhat", "6.3"); clusters.getHost(HOST1).setState(HostState.HEALTHY); clusters.updateHostMappings(host); @@ -8490,12 +8488,12 @@ public class AmbariManagementControllerTest { Set<ServiceComponentHostRequest> componentHostRequests = new HashSet<>(); componentHostRequests.add(new ServiceComponentHostRequest(CLUSTER_NAME, serviceGroupName, "HDFS", "DATANODE", "DATANODE", HOST1, null)); componentHostRequests.add(new ServiceComponentHostRequest(CLUSTER_NAME, serviceGroupName, "HDFS", "NAMENODE", "NAMENODE", HOST1, null)); - componentHostRequests.add(new ServiceComponentHostRequest(CLUSTER_NAME, serviceGroupName, null, "HDFS_CLIENT", "HDFS_CLIENT", HOST1, null)); + componentHostRequests.add(new ServiceComponentHostRequest(CLUSTER_NAME, serviceGroupName, "HDFS", "HDFS_CLIENT", "HDFS_CLIENT", HOST1, null)); componentHostRequests.add(new ServiceComponentHostRequest(CLUSTER_NAME, serviceGroupName, "HDFS", "SECONDARY_NAMENODE", "SECONDARY_NAMENODE", HOST1, null)); componentHostRequests.add(new ServiceComponentHostRequest(CLUSTER_NAME, serviceGroupName, "MAPREDUCE2", "HISTORYSERVER", "HISTORYSERVER", HOST1, null)); componentHostRequests.add(new ServiceComponentHostRequest(CLUSTER_NAME, serviceGroupName, "YARN", "RESOURCEMANAGER", "RESOURCEMANAGER", HOST1, null)); componentHostRequests.add(new ServiceComponentHostRequest(CLUSTER_NAME, serviceGroupName, "YARN", "NODEMANAGER", "NODEMANAGER", HOST1, null)); - componentHostRequests.add(new ServiceComponentHostRequest(CLUSTER_NAME, serviceGroupName, null, "YARN_CLIENT", "YARN_CLIENT", HOST1, null)); + componentHostRequests.add(new ServiceComponentHostRequest(CLUSTER_NAME, serviceGroupName, "YARN", "YARN_CLIENT", "YARN_CLIENT", HOST1, null)); amc.createHostComponents(componentHostRequests); @@ -9988,12 +9986,12 @@ public class AmbariManagementControllerTest { public void testServiceWidgetCreationOnServiceCreate() throws Exception { String cluster1 = getUniqueName(); ClusterRequest r = new ClusterRequest(null, cluster1, - State.INSTALLED.name(), SecurityType.NONE, "OTHER-2.0", null); + State.INSTALLED.name(), SecurityType.NONE, other20.getStackId(), null); controller.createCluster(r); String serviceGroupName = "CORE"; - ServiceGroupResourceProviderTest.createServiceGroup(controller, cluster1, serviceGroupName, "OTHER-2.0"); + ServiceGroupResourceProviderTest.createServiceGroup(controller, cluster1, serviceGroupName, other20.getStackId()); String serviceName = "HBASE"; - clusters.getCluster(cluster1).setDesiredStackVersion(new StackId("OTHER-2.0")); + clusters.getCluster(cluster1).setDesiredStackVersion(other20); createService(cluster1, serviceGroupName, serviceName, State.INIT); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariServerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariServerTest.java index ffd86d3..c3edefe 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariServerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariServerTest.java @@ -106,6 +106,7 @@ public class AmbariServerTest { Configuration configuration = createNiceMock(Configuration.class); SessionHandler sessionHandler = createNiceMock(SessionHandler.class); SessionCookieConfig sessionCookieConfig = createNiceMock(SessionCookieConfig.class); + expect(sessionHandler.getSessionCookieConfig()).andReturn(sessionCookieConfig).anyTimes(); sessionHandlerConfigurer.configuration = configuration; @@ -241,8 +242,6 @@ public class AmbariServerTest { final OsFamily mockOSFamily = easyMockSupport.createNiceMock(OsFamily.class); final EntityManager mockEntityManager = easyMockSupport.createNiceMock(EntityManager.class); final Clusters mockClusters = easyMockSupport.createNiceMock(Clusters.class); - final MpackManagerFactory mpackManagerFactory = easyMockSupport.createNiceMock(MpackManagerFactory.class); - final RootLevelSettingsManagerFactory rootLevelSettingsManagerFactory = easyMockSupport.createNiceMock(RootLevelSettingsManagerFactory.class); AmbariServer ambariServer = new AmbariServer(); @@ -258,7 +257,8 @@ public class AmbariServerTest { final Injector mockInjector = createMockInjector(mockAmbariMetainfo, - mockDBDbAccessor, mockOSFamily, mockEntityManager, mockClusters, mockConfiguration, rootLevelSettingsManagerFactory, mpackManagerFactory); + mockDBDbAccessor, mockOSFamily, mockEntityManager, mockClusters, mockConfiguration + ); expect(mockDBDbAccessor.getConnection()).andReturn(mockConnection).atLeastOnce(); @@ -321,7 +321,8 @@ public class AmbariServerTest { replay(mockConfiguration); final Injector mockInjector = createMockInjector(mockAmbariMetainfo, - mockDBDbAccessor, mockOSFamily, mockEntityManager, mockClusters, mockConfiguration, rootLevelSettingsManagerFactory, mpackManagerFactory); + mockDBDbAccessor, mockOSFamily, mockEntityManager, mockClusters, mockConfiguration + ); expect(mockDBDbAccessor.getConnection()).andReturn(null); @@ -346,11 +347,12 @@ public class AmbariServerTest { } private Injector createMockInjector(final AmbariMetaInfo mockAmbariMetainfo, - final DBAccessor mockDBDbAccessor, - final OsFamily mockOSFamily, - final EntityManager mockEntityManager, - final Clusters mockClusters, - final Configuration mockConfiguration, final RootLevelSettingsManagerFactory mockRootLevelSettingsManagerFactory, MpackManagerFactory mockMpackManagerFactory) { + final DBAccessor mockDBDbAccessor, + final OsFamily mockOSFamily, + final EntityManager mockEntityManager, + final Clusters mockClusters, + final Configuration mockConfiguration + ) { return Guice.createInjector(new AbstractModule() { @Override protected void configure() { @@ -363,8 +365,6 @@ public class AmbariServerTest { bind(EntityManager.class).toInstance(mockEntityManager); bind(Clusters.class).toInstance(mockClusters); bind(Configuration.class).toInstance(mockConfiguration); - bind(RootLevelSettingsManagerFactory.class).toInstance(mockRootLevelSettingsManagerFactory); - bind(MpackManagerFactory.class).toInstance(mockMpackManagerFactory); } }); } 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 59e1c0e..390dac6 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 @@ -80,6 +80,7 @@ public class BackgroundCustomCommandExecutionTest { private static final String STACK_VERSION = "2.0.6"; private static final StackId STACK_ID = new StackId("HDP", STACK_VERSION); + private static final String HOSTNAME = "c6401"; @Before public void setup() throws Exception { @@ -125,64 +126,57 @@ public class BackgroundCustomCommandExecutionTest { SecurityContextHolder.getContext().setAuthentication(null); } - @SuppressWarnings("serial") @Test - public void testRebalanceHdfsCustomCommand() { - try { - createClusterFixture(); - - Map<String, String> requestProperties = new HashMap<String, String>() { - { - put(REQUEST_CONTEXT_PROPERTY, "Refresh YARN Capacity Scheduler"); - put("command", "REBALANCEHDFS"); - put("namenode" , "{\"threshold\":13}");//case is important here - } - }; - - ExecuteActionRequest actionRequest = new ExecuteActionRequest("c1", - "REBALANCEHDFS", new HashMap<>(), false); - actionRequest.getResourceFilters().add(new RequestResourceFilter("CORE", "HDFS", "NAMENODE",Collections.singletonList("c6401"))); + public void testRebalanceHdfsCustomCommand() throws Exception { + createClusterFixture(); + + Map<String, String> requestProperties = new HashMap<String, String>() { + { + put(REQUEST_CONTEXT_PROPERTY, "Refresh YARN Capacity Scheduler"); + put("command", "REBALANCEHDFS"); + put("namenode" , "{\"threshold\":13}");//case is important here + } + }; - controller.createAction(actionRequest, requestProperties); + ExecuteActionRequest actionRequest = new ExecuteActionRequest("c1", + "REBALANCEHDFS", new HashMap<>(), false); + actionRequest.getResourceFilters().add(new RequestResourceFilter("CORE", "HDFS", "NAMENODE", Collections.singletonList(HOSTNAME))); - Mockito.verify(am, Mockito.times(1)).sendActions(requestCapture.capture(), any(ExecuteActionRequest.class)); + controller.createAction(actionRequest, requestProperties); - Request request = requestCapture.getValue(); - Assert.assertNotNull(request); - Assert.assertNotNull(request.getStages()); - Assert.assertEquals(1, request.getStages().size()); - Stage stage = request.getStages().iterator().next(); + Mockito.verify(am, Mockito.times(1)).sendActions(requestCapture.capture(), any(ExecuteActionRequest.class)); - System.out.println(stage); + Request request = requestCapture.getValue(); + Assert.assertNotNull(request); + Assert.assertNotNull(request.getStages()); + Assert.assertEquals(1, request.getStages().size()); + Stage stage = request.getStages().iterator().next(); - Assert.assertEquals(1, stage.getHosts().size()); + System.out.println(stage); - List<ExecutionCommandWrapper> commands = stage.getExecutionCommands("c6401"); - Assert.assertEquals(1, commands.size()); + Assert.assertEquals(1, stage.getHosts().size()); - ExecutionCommand command = commands.get(0).getExecutionCommand(); + List<ExecutionCommandWrapper> commands = stage.getExecutionCommands(HOSTNAME); + Assert.assertEquals(1, commands.size()); - Assert.assertEquals(AgentCommandType.BACKGROUND_EXECUTION_COMMAND, command.getCommandType()); - Assert.assertEquals("{\"threshold\":13}", command.getCommandParams().get("namenode")); + ExecutionCommand command = commands.get(0).getExecutionCommand(); - } catch (Exception e) { - Assert.fail(e.getMessage()); - } + Assert.assertEquals(AgentCommandType.BACKGROUND_EXECUTION_COMMAND, command.getCommandType()); + Assert.assertEquals("{\"threshold\":13}", command.getCommandParams().get("namenode")); } private void createClusterFixture() throws AmbariException, AuthorizationException, IllegalAccessException , NoSuchFieldException{ String clusterName = "c1"; createCluster(clusterName); - addHost("c6401", clusterName); - addHost("c6402", clusterName); - clusters.getCluster(clusterName); + + addHost(HOSTNAME, clusterName); + clusters.updateHostMappings(clusters.getHost(HOSTNAME)); + String serviceGroupName = "CORE"; ServiceGroupResourceProviderTest.createServiceGroup(controller, clusterName, serviceGroupName, STACK_ID.getStackId()); createService(clusterName, serviceGroupName, "HDFS", null); - createServiceComponent(clusterName, serviceGroupName, "HDFS","NAMENODE", State.INIT); - - createServiceComponentHost(clusterName, serviceGroupName, "HDFS","NAMENODE","c6401", null); + createServiceComponentHost(clusterName, serviceGroupName, "HDFS","NAMENODE", HOSTNAME, null); } private void addHost(String hostname, String clusterName) throws AmbariException { diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestImplTest.java index 51fa566..cb3a859 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestImplTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestImplTest.java @@ -85,7 +85,6 @@ public class RequestImplTest { Assert.assertTrue(validPropertyIds.contains("HostRoles/actual_configs")); Assert.assertTrue(validPropertyIds.contains("HostRoles/desired_stack_id")); Assert.assertTrue(validPropertyIds.contains("HostRoles/version")); - Assert.assertTrue(validPropertyIds.contains("HostRoles/desired_repository_version")); Assert.assertTrue(validPropertyIds.contains("HostRoles/desired_state")); Assert.assertTrue(validPropertyIds.contains("HostRoles/state")); Assert.assertTrue(validPropertyIds.contains("HostRoles/component_name")); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/utilities/KerberosIdentityCleanerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/utilities/KerberosIdentityCleanerTest.java index 3f7d318..fe01a90 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/utilities/KerberosIdentityCleanerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/utilities/KerberosIdentityCleanerTest.java @@ -52,6 +52,7 @@ import org.junit.Test; public class KerberosIdentityCleanerTest extends EasyMockSupport { @Rule public EasyMockRule mocks = new EasyMockRule(this); + private static final long HOST_ID = -1; private static final String HOST = "c6401"; private static final String HOST2 = "c6402"; private static final String OOZIE = "OOZIE"; @@ -77,7 +78,7 @@ public class KerberosIdentityCleanerTest extends EasyMockSupport { @Test public void removesAllKerberosIdentitesOfComponentAfterComponentWasUninstalled() throws Exception { installComponent(OOZIE, OOZIE_SERVER, HOST); - kerberosHelper.deleteIdentities(cluster, singletonList(new Component(HOST, OOZIE, OOZIE_SERVER, -1l)), newHashSet("/OOZIE/OOZIE_SERVER/oozie_server1", "/OOZIE/OOZIE_SERVER/oozie_server2")); + kerberosHelper.deleteIdentities(cluster, singletonList(new Component(HOST, OOZIE, OOZIE_SERVER, HOST_ID)), newHashSet("/OOZIE/OOZIE_SERVER/oozie_server1", "/OOZIE/OOZIE_SERVER/oozie_server2")); expectLastCall().once(); replayAll(); uninstallComponent(OOZIE, OOZIE_SERVER, HOST); @@ -95,7 +96,7 @@ public class KerberosIdentityCleanerTest extends EasyMockSupport { public void skipsRemovingIdentityThatIsSharedByPrincipalName() throws Exception { installComponent(OOZIE, OOZIE_SERVER, HOST); installComponent(OOZIE_2, OOZIE_SERVER_2, HOST); - kerberosHelper.deleteIdentities(cluster, singletonList(new Component(HOST, OOZIE, OOZIE_SERVER, -1l)), newHashSet("/OOZIE/OOZIE_SERVER/oozie_server1")); + kerberosHelper.deleteIdentities(cluster, singletonList(new Component(HOST, OOZIE, OOZIE_SERVER, HOST_ID)), newHashSet("/OOZIE/OOZIE_SERVER/oozie_server1")); expectLastCall().once(); replayAll(); uninstallComponent(OOZIE, OOZIE_SERVER, HOST); @@ -106,7 +107,7 @@ public class KerberosIdentityCleanerTest extends EasyMockSupport { public void skipsRemovingIdentityThatIsSharedByKeyTabFilePath() throws Exception { installComponent(YARN, RESOURCE_MANAGER, HOST); installComponent(YARN_2, RESOURCE_MANAGER_2, HOST); - kerberosHelper.deleteIdentities(cluster, singletonList(new Component(HOST, YARN, RESOURCE_MANAGER, -1l)), newHashSet("/YARN/RESOURCE_MANAGER/rm_unique")); + kerberosHelper.deleteIdentities(cluster, singletonList(new Component(HOST, YARN, RESOURCE_MANAGER, HOST_ID)), newHashSet("/YARN/RESOURCE_MANAGER/rm_unique")); expectLastCall().once(); replayAll(); uninstallComponent(YARN, RESOURCE_MANAGER, HOST); @@ -141,7 +142,7 @@ public class KerberosIdentityCleanerTest extends EasyMockSupport { } private ArrayList<Component> hdfsComponents() { - return newArrayList(new Component(HOST, HDFS, NAMENODE, 0l), new Component(HOST, HDFS, DATANODE, 0l)); + return newArrayList(new Component(HOST, HDFS, NAMENODE, HOST_ID), new Component(HOST, HDFS, DATANODE, HOST_ID)); } private void installComponent(String serviceName, String componentName, String... hostNames) { @@ -163,7 +164,7 @@ public class KerberosIdentityCleanerTest extends EasyMockSupport { } private void uninstallComponent(String service, String component, String host) throws KerberosMissingAdminCredentialsException { - kerberosIdentityCleaner.componentRemoved(new ServiceComponentUninstalledEvent(CLUSTER_ID, "any", "any", service, "", "", component, host, false, false, 1L)); + kerberosIdentityCleaner.componentRemoved(new ServiceComponentUninstalledEvent(CLUSTER_ID, "any", "any", service, "", "", component, host, false, false, HOST_ID)); } private void uninstallService(String service, List<Component> components) throws KerberosMissingAdminCredentialsException { diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ServiceConfigEntityTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ServiceConfigEntityTest.java index fe0fcaa..48f7589 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ServiceConfigEntityTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/entities/ServiceConfigEntityTest.java @@ -29,19 +29,19 @@ public class ServiceConfigEntityTest { @Test public void testSettersGetters() { ServiceConfigEntity entity = new ServiceConfigEntity(); - //entity.setServiceName("foo"); + entity.setServiceId(1L); entity.setUser("bar"); entity.setNote("note"); - entity.setVersion(1L); - entity.setServiceConfigId(1L); - entity.setClusterId(1L); + entity.setVersion(2L); + entity.setServiceConfigId(3L); + entity.setClusterId(4L); entity.setCreateTimestamp(1111L); - assertEquals("foo", entity.getServiceName()); + assertEquals(Long.valueOf(1L), entity.getServiceId()); assertEquals("bar", entity.getUser()); assertEquals("note", entity.getNote()); - assertEquals(Long.valueOf(1), entity.getVersion()); - assertEquals(Long.valueOf(1), entity.getServiceConfigId()); - assertEquals(Long.valueOf(1), entity.getClusterId()); + assertEquals(Long.valueOf(2), entity.getVersion()); + assertEquals(Long.valueOf(3), entity.getServiceConfigId()); + assertEquals(Long.valueOf(4), entity.getClusterId()); assertEquals(Long.valueOf(1111), entity.getCreateTimestamp()); } diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderForDNWithSpaceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderForDNWithSpaceTest.java index 75dbd2a..1fda935 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderForDNWithSpaceTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderForDNWithSpaceTest.java @@ -179,6 +179,7 @@ public class AmbariLdapAuthenticationProviderForDNWithSpaceTest extends AmbariLd properties.setProperty(Configuration.SERVER_VERSION_FILE.getKey(), "src/test/resources/version"); properties.setProperty(Configuration.OS_VERSION.getKey(), "centos5"); properties.setProperty(Configuration.SHARED_RESOURCES_DIR.getKey(), "src/test/resources/"); + properties.setProperty(Configuration.MPACKS_V2_STAGING_DIR_PATH.getKey(), "src/test/resources/mpacks-v2"); return properties; } } diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java index f062dc0..97be709 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java @@ -118,6 +118,7 @@ public class AmbariLdapAuthenticationProviderTest extends AmbariLdapAuthenticati injector.getInstance(GuiceJpaInitializer.class); injector.injectMembers(this); configuration.setClientSecurityType(ClientSecurityType.LDAP); + configuration.setProperty(Configuration.MPACKS_V2_STAGING_DIR_PATH.getKey(), "src/test/resources/mpacks-v2"); ldapConfiguration = new AmbariLdapConfiguration(); ldapConfiguration.setValueFor(AmbariServerConfigurationKey.ALTERNATE_USER_SEARCH_ENABLED, "false"); ldapConfiguration.setValueFor(AmbariServerConfigurationKey.ALTERNATE_USER_SEARCH_FILTER, "(&(mail={0})(objectClass={userObjectClass}))"); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerActionTest.java index 2241120..235d5f8 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerActionTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerActionTest.java @@ -162,6 +162,7 @@ public class FinalizeKerberosServerActionTest extends EasyMockSupport { expect(executionCommand.getConfigurationTags()).andReturn(Collections.emptyMap()).anyTimes(); expect(executionCommand.getServiceName()).andReturn(RootComponent.AMBARI_SERVER.name()).anyTimes(); expect(executionCommand.getTaskId()).andReturn(3L).anyTimes(); + expect(executionCommand.getMpackId()).andReturn(4L).anyTimes(); return executionCommand; } diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerActionTest.java index 27f30d8..60e873a 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerActionTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosServerActionTest.java @@ -163,6 +163,7 @@ public class KerberosServerActionTest extends EasyMockSupport { expect(mockExecutionCommand.getRole()).andReturn(null).anyTimes(); expect(mockExecutionCommand.getServiceName()).andReturn(null).anyTimes(); expect(mockExecutionCommand.getTaskId()).andReturn(1L).anyTimes(); + expect(mockExecutionCommand.getMpackId()).andReturn(4L).anyTimes(); expect(mockHostRoleCommand.getRequestId()).andReturn(1L).anyTimes(); expect(mockHostRoleCommand.getStageId()).andReturn(1L).anyTimes(); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerCommonServicesTest.java b/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerCommonServicesTest.java index d5626eb..70dd566 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerCommonServicesTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerCommonServicesTest.java @@ -48,7 +48,6 @@ import org.apache.ambari.server.state.CommandScriptDefinition; import org.apache.ambari.server.state.ComponentInfo; import org.apache.ambari.server.state.OsSpecific; import org.apache.ambari.server.state.PropertyInfo; -import org.apache.ambari.server.state.RepositoryInfo; import org.apache.ambari.server.state.ServiceInfo; import org.apache.ambari.server.state.StackInfo; import org.apache.ambari.server.state.stack.OsFamily; @@ -57,9 +56,6 @@ import org.easymock.EasyMock; import org.junit.BeforeClass; import org.junit.Test; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; - /** * StackManager unit tests. @@ -150,21 +146,6 @@ public class StackManagerCommonServicesTest { } @Test - public void testAddOnServiceRepoIsLoaded() { - Collection<StackInfo> stacks = stackManager.getStacks("HDP"); - StackInfo stack = null; - for(StackInfo stackInfo: stackManager.getStacks()) { - if ("0.2".equals(stackInfo.getVersion())) { - stack = stackInfo; - break; - } - } - List<RepositoryInfo> repos = stack.getRepositoriesByOs().get("redhat6"); - ImmutableSet<String> repoIds = ImmutableSet.copyOf(Lists.transform(repos, RepositoryInfo.GET_REPO_ID_FUNCTION)); - assertTrue("Repos are expected to contain MSFT_R-8.1", repoIds.contains("ADDON_REPO-1.0")); - } - - @Test public void testGetStack() { StackInfo stack = stackManager.getStack("HDP", "0.1"); assertNotNull(stack); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/stack/StackModuleTest.java b/ambari-server/src/test/java/org/apache/ambari/server/stack/StackModuleTest.java index ef2918c..a8a03de 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/stack/StackModuleTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/stack/StackModuleTest.java @@ -49,78 +49,6 @@ import com.google.common.collect.Multiset; public class StackModuleTest { @Test - public void stackServiceReposAreRead() throws Exception { - StackModule sm = createStackModule("FooBar", - "2.4", - Optional.of(Lists.newArrayList(repoInfo("foo", "1.0.1", "http://foo.org"))), - Lists.newArrayList(repoInfo("bar", "2.0.1", "http://bar.org"))); - Set<String> repoIds = getIds(sm.getModuleInfo().getRepositories()); - assertEquals(ImmutableSet.of("foo:1.0.1", "bar:2.0.1"), repoIds); - } - - /** - * If more add-on services define the same repo, the duplicate repo definitions should be disregarded. - * @throws Exception - */ - @Test - public void duplicateStackServiceReposAreDiscarded() throws Exception { - StackModule sm = createStackModule("FooBar", - "2.4", - // stack repos - Optional.of(Lists.newArrayList(repoInfo("StackRepoA", "1.1.1", "http://repos.org/stackrepoA"), - repoInfo("StackRepoB", "2.2.2", "http://repos.org/stackrepoB"))), - - // stack service repos - // These two should be preserved. even though duplicates, the contents are the same - Lists.newArrayList(repoInfo("serviceRepoA", "1.0.0", "http://bar.org/1_0_0")), - Lists.newArrayList(repoInfo("serviceRepoA", "1.0.0", "http://bar.org/1_0_0")), - // These should be dropped as the names are the same but contents are different - Lists.newArrayList(repoInfo("serviceRepoB", "1.2.1", "http://bar.org/1_1_1")), - Lists.newArrayList(repoInfo("serviceRepoB", "1.2.3", "http://bar.org/1_1_1")), - // The first one should be dropped (overrides a stack repo), the rest only generates warnings (duplicate urls) - Lists.newArrayList(repoInfo("StackRepoA", "2.0.0", "http://repos.org/stackrepoA_200"), - repoInfo("ShouldBeJustAWarning1", "3.1.1", "http://repos.org/stackrepoA"), - repoInfo("ShouldBeJustAWarning2", "1.0.0", "http://bar.org/1_0_0"))); - List<RepositoryInfo> repos = sm.getModuleInfo().getRepositories(); - - Set<String> repoIds = getIds(repos); - assertEquals("Unexpected number of repos. Each repo should be added only once", repoIds.size(), repos.size()); - assertEquals("Unexpected repositories", - ImmutableSet.of("StackRepoA:1.1.1", - "StackRepoB:2.2.2", - "serviceRepoA:1.0.0", - "ShouldBeJustAWarning1:3.1.1", - "ShouldBeJustAWarning2:1.0.0"), repoIds); - } - - @Test - public void serviceReposAreProcessedEvenIfNoStackRepo() throws Exception { - StackModule sm = createStackModule("FooBar", - "2.4", - Optional.absent(), - Lists.newArrayList(repoInfo("bar", "2.0.1", "http://bar.org"))); - Set<String> repoIds = getIds(sm.getModuleInfo().getRepositories()); - assertEquals(ImmutableSet.of("bar:2.0.1"), repoIds); - } - - /** - * If two add-on services define the same repo, the repo should be disregarded. - * This applies per os, so the same repo can be defined for multiple os'es (e.g redhat5 and redhat6) - * @throws Exception - */ - @Test - public void duplicateStackServiceReposAreCheckedPerOs() throws Exception { - StackModule sm = createStackModule("FooBar", - "2.4", - Optional.absent(), - Lists.newArrayList(repoInfo("bar", "2.0.1", "http://bar.org", "centos6")), - Lists.newArrayList(repoInfo("bar", "2.0.1", "http://bar.org", "centos7"))); - Multiset<String> repoIds = getIdsMultiple(sm.getModuleInfo().getRepositories()); - assertEquals("Repo should be occur exactly twice, once for each os type.", - ImmutableMultiset.of("bar:2.0.1", "bar:2.0.1"), repoIds); - } - - @Test public void removedServicesInitialValue () throws Exception { StackModule sm = createStackModule("FooBar", "2.4", diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java index 3000e0a..f30bbf4 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java @@ -47,14 +47,11 @@ import org.apache.ambari.server.controller.ClusterRequest; import org.apache.ambari.server.controller.ConfigurationRequest; import org.apache.ambari.server.controller.spi.ClusterController; import org.apache.ambari.server.events.publishers.StateUpdateEventPublisher; -import org.apache.ambari.server.mpack.MpackManagerFactory; import org.apache.ambari.server.orm.DBAccessor; import org.apache.ambari.server.orm.GuiceJpaInitializer; import org.apache.ambari.server.orm.InMemoryDefaultTestModule; import org.apache.ambari.server.orm.OrmTestHelper; import org.apache.ambari.server.orm.dao.HostRoleCommandDAO; -import org.apache.ambari.server.registry.RegistryManager; -import org.apache.ambari.server.resources.RootLevelSettingsManagerFactory; import org.apache.ambari.server.security.SecurityHelper; import org.apache.ambari.server.security.TestAuthenticationFactory; import org.apache.ambari.server.stack.StackManagerFactory; @@ -62,8 +59,6 @@ import org.apache.ambari.server.state.configgroup.ConfigGroup; import org.apache.ambari.server.state.configgroup.ConfigGroupFactory; import org.apache.ambari.server.state.stack.OsFamily; import org.apache.ambari.server.testutils.PartialNiceMockBinder; -import org.apache.ambari.server.topology.ComponentResolver; -import org.apache.ambari.server.topology.StackFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -1100,14 +1095,7 @@ public class ConfigHelperTest { bind(ClusterController.class).toInstance(clusterController); bind(StackManagerFactory.class).toInstance(createNiceMock(StackManagerFactory.class)); bind(HostRoleCommandDAO.class).toInstance(createNiceMock(HostRoleCommandDAO.class)); - bind(MpackManagerFactory.class).toInstance(createNiceMock(MpackManagerFactory.class)); - bind(RootLevelSettingsManagerFactory.class).toInstance(createNiceMock(RootLevelSettingsManagerFactory.class)); bind(StateUpdateEventPublisher.class).toInstance(createNiceMock(StateUpdateEventPublisher.class)); - bind(ClusterSettingFactory.class).toInstance(createNiceMock(ClusterSettingFactory.class)); - bind(RegistryManager.class).toInstance(createNiceMock(RegistryManager.class)); - bind(ComponentResolver.class).toInstance(createNiceMock(ComponentResolver.class)); - bind(ServiceGroupFactory.class).toInstance(createNiceMock(ServiceGroupFactory.class)); - bind(StackFactory.class).toInstance(createNiceMock(StackFactory.class)); } }); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java index 24c6283..10b59bf 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java @@ -75,7 +75,6 @@ import org.apache.ambari.server.topology.HostRequest; import org.apache.ambari.server.topology.LogicalRequest; import org.apache.ambari.server.topology.PersistedState; import org.apache.ambari.server.topology.TopologyManager; -import org.apache.ambari.server.topology.TopologyRequest; import org.apache.ambari.server.utils.EventBusSynchronizer; import org.junit.After; import org.junit.Before; @@ -459,18 +458,11 @@ public class ClustersTest { Maps.newHashMap() ); - Map<String, HostGroupInfo> hostGroups = Maps.newHashMap(); + ProvisionClusterRequest topologyRequest = new ProvisionClusterRequest(bp, clusterConfig); + topologyRequest.setClusterId(cluster.getClusterId()); + topologyRequest.setClusterName("Test Cluster"); - ProvisionClusterRequest topologyRequest = createNiceMock(ProvisionClusterRequest.class); - expect(topologyRequest.getType()).andReturn(TopologyRequest.Type.PROVISION).anyTimes(); - expect(topologyRequest.getBlueprint()).andReturn(bp).anyTimes(); - expect(topologyRequest.getClusterId()).andReturn(cluster.getClusterId()).anyTimes(); - expect(topologyRequest.getConfiguration()).andReturn(clusterConfig).anyTimes(); - expect(topologyRequest.getDescription()).andReturn("Test description").anyTimes(); - expect(topologyRequest.getHostGroupInfo()).andReturn(hostGroups).anyTimes(); - - - replay(bp, topologyRequest); + replay(bp); persistedState.persistTopologyRequest(topologyRequest); @@ -563,15 +555,12 @@ public class ClustersTest { hostGroupInfo.addHost(hostName + "3"); hostGroups.put(groupName, hostGroupInfo); - ProvisionClusterRequest topologyRequest = createNiceMock(ProvisionClusterRequest.class); - expect(topologyRequest.getType()).andReturn(TopologyRequest.Type.PROVISION).anyTimes(); - expect(topologyRequest.getBlueprint()).andReturn(bp).anyTimes(); - expect(topologyRequest.getClusterId()).andReturn(cluster.getClusterId()).anyTimes(); - expect(topologyRequest.getConfiguration()).andReturn(clusterConfig).anyTimes(); - expect(topologyRequest.getDescription()).andReturn("Test description").anyTimes(); - expect(topologyRequest.getHostGroupInfo()).andReturn(hostGroups).anyTimes(); + ProvisionClusterRequest topologyRequest = new ProvisionClusterRequest(bp, clusterConfig); + topologyRequest.setClusterId(cluster.getClusterId()); + topologyRequest.setClusterName("Test Cluster"); + topologyRequest.getHostGroupInfo().putAll(hostGroups); - replay(bp, topologyRequest); + replay(bp); persistedState.persistTopologyRequest(topologyRequest); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterDeployWithStartOnlyTest.java b/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterDeployWithStartOnlyTest.java index a49f6d2..ab7e9e5 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterDeployWithStartOnlyTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterDeployWithStartOnlyTest.java @@ -50,11 +50,16 @@ import org.apache.ambari.server.controller.AmbariServer; import org.apache.ambari.server.controller.ClusterRequest; import org.apache.ambari.server.controller.ConfigurationRequest; import org.apache.ambari.server.controller.RequestStatusResponse; +import org.apache.ambari.server.controller.internal.ArtifactResourceProvider; +import org.apache.ambari.server.controller.internal.MpackResourceProvider; import org.apache.ambari.server.controller.internal.ProvisionAction; import org.apache.ambari.server.controller.internal.ProvisionClusterRequest; import org.apache.ambari.server.controller.internal.Stack; import org.apache.ambari.server.controller.spi.ClusterController; +import org.apache.ambari.server.controller.spi.RequestStatus; +import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.controller.spi.ResourceProvider; +import org.apache.ambari.server.events.publishers.AmbariEventPublisher; import org.apache.ambari.server.orm.entities.TopologyLogicalRequestEntity; import org.apache.ambari.server.security.encryption.CredentialStoreService; import org.apache.ambari.server.state.Cluster; @@ -85,7 +90,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @RunWith(PowerMockRunner.class) -@PrepareForTest(AmbariServer.class) +@PrepareForTest({ AmbariContext.class, AmbariServer.class }) public class ClusterDeployWithStartOnlyTest extends EasyMockSupport { private static final String CLUSTER_NAME = "test-cluster"; private static final long CLUSTER_ID = 1; @@ -165,6 +170,10 @@ public class ClusterDeployWithStartOnlyTest extends EasyMockSupport { private ConfigureClusterTaskFactory configureClusterTaskFactory; @Mock(type = MockType.NICE) private ConfigureClusterTask configureClusterTask; + @Mock(type = MockType.NICE) + private ArtifactResourceProvider artifactResourceProvider; + @Mock(type = MockType.NICE) + private MpackResourceProvider mpackResourceProvider; @Mock(type = MockType.STRICT) private Future mockFuture; @@ -311,11 +320,12 @@ public class ClusterDeployWithStartOnlyTest extends EasyMockSupport { expect(request.getDescription()).andReturn("Provision Cluster Test").anyTimes(); expect(request.getConfiguration()).andReturn(topoConfiguration).anyTimes(); expect(request.getHostGroupInfo()).andReturn(groupInfoMap).anyTimes(); - expect(request.getConfigRecommendationStrategy()).andReturn(ConfigRecommendationStrategy.NEVER_APPLY); + expect(request.getConfigRecommendationStrategy()).andReturn(ConfigRecommendationStrategy.NEVER_APPLY).anyTimes(); expect(request.getProvisionAction()).andReturn(ProvisionAction.START_ONLY).anyTimes(); expect(request.getSecurityConfiguration()).andReturn(null).anyTimes(); expect(request.getStackIds()).andReturn(ImmutableSet.of()).anyTimes(); expect(request.getMpacks()).andReturn(ImmutableSet.of()).anyTimes(); + expect(request.getAllMpacks()).andReturn(ImmutableSet.of()).anyTimes(); expect(componentResolver.resolveComponents(anyObject())).andReturn(ImmutableMap.of( "group1", ImmutableSet.of( @@ -354,6 +364,15 @@ public class ClusterDeployWithStartOnlyTest extends EasyMockSupport { PowerMock.mockStatic(AmbariServer.class); expect(AmbariServer.getController()).andReturn(managementController).anyTimes(); PowerMock.replay(AmbariServer.class); + PowerMock.mockStatic(AmbariContext.class); + expect(AmbariContext.getClusterController()).andReturn(clusterController).anyTimes(); + PowerMock.replay(AmbariContext.class); + expect(clusterController.ensureResourceProvider(Resource.Type.Mpack)).andReturn(mpackResourceProvider).anyTimes(); + expect(clusterController.ensureResourceProvider(Resource.Type.Artifact)).andReturn(artifactResourceProvider).anyTimes(); + RequestStatus completedStatus = createNiceMock(RequestStatus.class); + expect(completedStatus.getStatus()).andReturn(RequestStatus.Status.Complete).anyTimes(); + expect(artifactResourceProvider.createResources(anyObject())).andReturn(completedStatus).anyTimes(); + expect(managementController.getAmbariEventPublisher()).andReturn(createNiceMock(AmbariEventPublisher.class)).anyTimes(); expect(managementController.getClusters()).andReturn(clusters).anyTimes(); expect(clusters.getClusterById(anyLong())).andReturn(cluster).anyTimes(); expect(cluster.getClusterName()).andReturn(CLUSTER_NAME).anyTimes(); @@ -382,10 +401,12 @@ public class ClusterDeployWithStartOnlyTest extends EasyMockSupport { anyString(), eq(AmbariContext.TaskType.INSTALL), anyBoolean())).andReturn(hostRoleCommandInstallComponent4).times(2); expect(hostRoleCommandInstallComponent3.getTaskId()).andReturn(1L).atLeastOnce(); + expect(hostRoleCommandInstallComponent3.getRole()).andReturn(Role.valueOf("component3")).atLeastOnce(); expect(hostRoleCommandInstallComponent3.getRoleCommand()).andReturn(RoleCommand.INSTALL).atLeastOnce(); expect(hostRoleCommandInstallComponent3.getStatus()).andReturn(HostRoleStatus.COMPLETED).atLeastOnce(); expect(hostRoleCommandInstallComponent4.getTaskId()).andReturn(2L).atLeastOnce(); + expect(hostRoleCommandInstallComponent4.getRole()).andReturn(Role.valueOf("component4")).atLeastOnce(); expect(hostRoleCommandInstallComponent4.getRoleCommand()).andReturn(RoleCommand.INSTALL).atLeastOnce(); expect(hostRoleCommandInstallComponent4.getStatus()).andReturn(HostRoleStatus.COMPLETED).atLeastOnce(); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterInstallWithoutStartOnComponentLevelTest.java b/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterInstallWithoutStartOnComponentLevelTest.java index 4e12536..7d1ef83 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterInstallWithoutStartOnComponentLevelTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterInstallWithoutStartOnComponentLevelTest.java @@ -42,6 +42,7 @@ import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; +import org.apache.ambari.server.Role; import org.apache.ambari.server.RoleCommand; import org.apache.ambari.server.actionmanager.HostRoleCommand; import org.apache.ambari.server.actionmanager.HostRoleStatus; @@ -50,11 +51,16 @@ import org.apache.ambari.server.controller.AmbariServer; import org.apache.ambari.server.controller.ClusterRequest; import org.apache.ambari.server.controller.ConfigurationRequest; import org.apache.ambari.server.controller.RequestStatusResponse; +import org.apache.ambari.server.controller.internal.ArtifactResourceProvider; +import org.apache.ambari.server.controller.internal.MpackResourceProvider; import org.apache.ambari.server.controller.internal.ProvisionAction; import org.apache.ambari.server.controller.internal.ProvisionClusterRequest; import org.apache.ambari.server.controller.internal.Stack; import org.apache.ambari.server.controller.spi.ClusterController; +import org.apache.ambari.server.controller.spi.RequestStatus; +import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.controller.spi.ResourceProvider; +import org.apache.ambari.server.events.publishers.AmbariEventPublisher; import org.apache.ambari.server.orm.entities.TopologyLogicalRequestEntity; import org.apache.ambari.server.security.encryption.CredentialStoreService; import org.apache.ambari.server.state.Cluster; @@ -85,7 +91,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @RunWith(PowerMockRunner.class) -@PrepareForTest(AmbariServer.class) +@PrepareForTest({ AmbariContext.class, AmbariServer.class }) public class ClusterInstallWithoutStartOnComponentLevelTest extends EasyMockSupport { private static final String CLUSTER_NAME = "test-cluster"; private static final long CLUSTER_ID = 1; @@ -155,6 +161,10 @@ public class ClusterInstallWithoutStartOnComponentLevelTest extends EasyMockSupp private ConfigureClusterTaskFactory configureClusterTaskFactory; @Mock(type = MockType.NICE) private ConfigureClusterTask configureClusterTask; + @Mock(type = MockType.NICE) + private ArtifactResourceProvider artifactResourceProvider; + @Mock(type = MockType.NICE) + private MpackResourceProvider mpackResourceProvider; @Mock(type = MockType.NICE) @@ -308,11 +318,12 @@ public class ClusterInstallWithoutStartOnComponentLevelTest extends EasyMockSupp expect(request.getDescription()).andReturn("Provision Cluster Test").anyTimes(); expect(request.getConfiguration()).andReturn(topoConfiguration).anyTimes(); expect(request.getHostGroupInfo()).andReturn(groupInfoMap).anyTimes(); - expect(request.getConfigRecommendationStrategy()).andReturn(ConfigRecommendationStrategy.NEVER_APPLY); + expect(request.getConfigRecommendationStrategy()).andReturn(ConfigRecommendationStrategy.NEVER_APPLY).anyTimes(); expect(request.getProvisionAction()).andReturn(INSTALL_AND_START).anyTimes(); expect(request.getSecurityConfiguration()).andReturn(null).anyTimes(); expect(request.getStackIds()).andReturn(ImmutableSet.of()).anyTimes(); expect(request.getMpacks()).andReturn(ImmutableSet.of()).anyTimes(); + expect(request.getAllMpacks()).andReturn(ImmutableSet.of()).anyTimes(); expect(componentResolver.resolveComponents(anyObject())).andReturn(ImmutableMap.of( "group1", ImmutableSet.of( @@ -357,6 +368,15 @@ public class ClusterInstallWithoutStartOnComponentLevelTest extends EasyMockSupp PowerMock.mockStatic(AmbariServer.class); expect(AmbariServer.getController()).andReturn(managementController).anyTimes(); PowerMock.replay(AmbariServer.class); + PowerMock.mockStatic(AmbariContext.class); + expect(AmbariContext.getClusterController()).andReturn(clusterController).anyTimes(); + PowerMock.replay(AmbariContext.class); + expect(clusterController.ensureResourceProvider(Resource.Type.Mpack)).andReturn(mpackResourceProvider).anyTimes(); + expect(clusterController.ensureResourceProvider(Resource.Type.Artifact)).andReturn(artifactResourceProvider).anyTimes(); + RequestStatus completedStatus = createNiceMock(RequestStatus.class); + expect(completedStatus.getStatus()).andReturn(RequestStatus.Status.Complete).anyTimes(); + expect(artifactResourceProvider.createResources(anyObject())).andReturn(completedStatus).anyTimes(); + expect(managementController.getAmbariEventPublisher()).andReturn(createNiceMock(AmbariEventPublisher.class)).anyTimes(); expect(managementController.getClusters()).andReturn(clusters).anyTimes(); expect(clusters.getClusterById(anyLong())).andReturn(cluster).anyTimes(); expect(cluster.getClusterName()).andReturn(CLUSTER_NAME).anyTimes(); @@ -382,6 +402,7 @@ public class ClusterInstallWithoutStartOnComponentLevelTest extends EasyMockSupp expect(ambariContext.createAmbariTask(anyLong(), anyLong(), anyString(), anyString(), eq(AmbariContext.TaskType.START), anyBoolean())).andReturn(hostRoleCommand).times(1); expect(hostRoleCommand.getTaskId()).andReturn(1L).atLeastOnce(); + expect(hostRoleCommand.getRole()).andReturn(Role.DATANODE).atLeastOnce(); expect(hostRoleCommand.getRoleCommand()).andReturn(RoleCommand.INSTALL).atLeastOnce(); expect(hostRoleCommand.getStatus()).andReturn(HostRoleStatus.COMPLETED).atLeastOnce(); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterInstallWithoutStartTest.java b/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterInstallWithoutStartTest.java index 61df17b..cbdd860 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterInstallWithoutStartTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterInstallWithoutStartTest.java @@ -42,6 +42,7 @@ import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; +import org.apache.ambari.server.Role; import org.apache.ambari.server.RoleCommand; import org.apache.ambari.server.actionmanager.HostRoleCommand; import org.apache.ambari.server.actionmanager.HostRoleStatus; @@ -50,11 +51,16 @@ import org.apache.ambari.server.controller.AmbariServer; import org.apache.ambari.server.controller.ClusterRequest; import org.apache.ambari.server.controller.ConfigurationRequest; import org.apache.ambari.server.controller.RequestStatusResponse; +import org.apache.ambari.server.controller.internal.ArtifactResourceProvider; +import org.apache.ambari.server.controller.internal.MpackResourceProvider; import org.apache.ambari.server.controller.internal.ProvisionAction; import org.apache.ambari.server.controller.internal.ProvisionClusterRequest; import org.apache.ambari.server.controller.internal.Stack; import org.apache.ambari.server.controller.spi.ClusterController; +import org.apache.ambari.server.controller.spi.RequestStatus; +import org.apache.ambari.server.controller.spi.Resource; import org.apache.ambari.server.controller.spi.ResourceProvider; +import org.apache.ambari.server.events.publishers.AmbariEventPublisher; import org.apache.ambari.server.orm.entities.TopologyLogicalRequestEntity; import org.apache.ambari.server.security.encryption.CredentialStoreService; import org.apache.ambari.server.state.Cluster; @@ -85,7 +91,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @RunWith(PowerMockRunner.class) -@PrepareForTest(AmbariServer.class) +@PrepareForTest({ AmbariContext.class, AmbariServer.class }) public class ClusterInstallWithoutStartTest extends EasyMockSupport { private static final String CLUSTER_NAME = "test-cluster"; @@ -157,6 +163,10 @@ public class ClusterInstallWithoutStartTest extends EasyMockSupport { private ConfigureClusterTaskFactory configureClusterTaskFactory; @Mock(type = MockType.NICE) private ConfigureClusterTask configureClusterTask; + @Mock(type = MockType.NICE) + private ArtifactResourceProvider artifactResourceProvider; + @Mock(type = MockType.NICE) + private MpackResourceProvider mpackResourceProvider; @Mock(type = MockType.NICE) @@ -315,11 +325,12 @@ public class ClusterInstallWithoutStartTest extends EasyMockSupport { expect(request.getDescription()).andReturn("Provision Cluster Test").anyTimes(); expect(request.getConfiguration()).andReturn(topoConfiguration).anyTimes(); expect(request.getHostGroupInfo()).andReturn(groupInfoMap).anyTimes(); - expect(request.getConfigRecommendationStrategy()).andReturn(ConfigRecommendationStrategy.NEVER_APPLY); + expect(request.getConfigRecommendationStrategy()).andReturn(ConfigRecommendationStrategy.NEVER_APPLY).anyTimes(); expect(request.getProvisionAction()).andReturn(INSTALL_ONLY).anyTimes(); expect(request.getSecurityConfiguration()).andReturn(null).anyTimes(); expect(request.getStackIds()).andReturn(ImmutableSet.of(STACK_ID)).anyTimes(); expect(request.getMpacks()).andReturn(ImmutableSet.of()).anyTimes(); + expect(request.getAllMpacks()).andReturn(ImmutableSet.of()).anyTimes(); expect(componentResolver.resolveComponents(anyObject())).andReturn(ImmutableMap.of( "group1", ImmutableSet.of( @@ -359,6 +370,15 @@ public class ClusterInstallWithoutStartTest extends EasyMockSupport { PowerMock.mockStatic(AmbariServer.class); expect(AmbariServer.getController()).andReturn(managementController).anyTimes(); PowerMock.replay(AmbariServer.class); + PowerMock.mockStatic(AmbariContext.class); + expect(AmbariContext.getClusterController()).andReturn(clusterController).anyTimes(); + PowerMock.replay(AmbariContext.class); + expect(clusterController.ensureResourceProvider(Resource.Type.Mpack)).andReturn(mpackResourceProvider).anyTimes(); + expect(clusterController.ensureResourceProvider(Resource.Type.Artifact)).andReturn(artifactResourceProvider).anyTimes(); + RequestStatus completedStatus = createNiceMock(RequestStatus.class); + expect(completedStatus.getStatus()).andReturn(RequestStatus.Status.Complete).anyTimes(); + expect(artifactResourceProvider.createResources(anyObject())).andReturn(completedStatus).anyTimes(); + expect(managementController.getAmbariEventPublisher()).andReturn(createNiceMock(AmbariEventPublisher.class)).anyTimes(); expect(managementController.getClusters()).andReturn(clusters).anyTimes(); expect(clusters.getClusterById(anyLong())).andReturn(cluster).anyTimes(); expect(cluster.getClusterName()).andReturn(CLUSTER_NAME).anyTimes(); @@ -382,6 +402,7 @@ public class ClusterInstallWithoutStartTest extends EasyMockSupport { expect(ambariContext.createAmbariTask(anyLong(), anyLong(), anyString(), anyString(), eq(AmbariContext.TaskType.INSTALL), anyBoolean())).andReturn(hostRoleCommand).atLeastOnce(); expect(hostRoleCommand.getTaskId()).andReturn(1L).atLeastOnce(); + expect(hostRoleCommand.getRole()).andReturn(Role.DATANODE).atLeastOnce(); expect(hostRoleCommand.getRoleCommand()).andReturn(RoleCommand.INSTALL).atLeastOnce(); expect(hostRoleCommand.getStatus()).andReturn(HostRoleStatus.COMPLETED).atLeastOnce(); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/update/HostUpdateHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/update/HostUpdateHelperTest.java index 17f3b12..94c7b7d 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/update/HostUpdateHelperTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/update/HostUpdateHelperTest.java @@ -492,7 +492,7 @@ public class HostUpdateHelperTest { @Override protected void configure() { - PartialNiceMockBinder.newBuilder().addConfigsBindings().addFactoriesInstallBinding().build().configure(binder()); + PartialNiceMockBinder.newBuilder().addAmbariContextBindings().addConfigsBindings().addFactoriesInstallBinding().build().configure(binder()); bind(DBAccessor.class).toInstance(dbAccessor); bind(EntityManager.class).toInstance(entityManager); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog251Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog251Test.java index d35bd91..a5798a0 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog251Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog251Test.java @@ -65,21 +65,28 @@ import org.apache.ambari.server.hooks.HookService; import org.apache.ambari.server.hooks.users.UserHookService; import org.apache.ambari.server.metadata.CachedRoleCommandOrderProvider; import org.apache.ambari.server.metadata.RoleCommandOrderProvider; +import org.apache.ambari.server.mpack.MpackManagerFactory; import org.apache.ambari.server.orm.DBAccessor; import org.apache.ambari.server.orm.DBAccessor.DBColumnInfo; +import org.apache.ambari.server.registry.RegistryManager; +import org.apache.ambari.server.resources.RootLevelSettingsManagerFactory; import org.apache.ambari.server.scheduler.ExecutionScheduler; import org.apache.ambari.server.security.encryption.CredentialStoreService; import org.apache.ambari.server.stack.StackManagerFactory; import org.apache.ambari.server.state.Cluster; +import org.apache.ambari.server.state.ClusterSettingFactory; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.Config; import org.apache.ambari.server.state.SecurityType; import org.apache.ambari.server.state.Service; import org.apache.ambari.server.state.ServiceComponentHostFactory; +import org.apache.ambari.server.state.ServiceGroupFactory; import org.apache.ambari.server.state.stack.OsFamily; import org.apache.ambari.server.testutils.PartialNiceMockBinder; +import org.apache.ambari.server.topology.ComponentResolver; import org.apache.ambari.server.topology.PersistedState; import org.apache.ambari.server.topology.PersistedStateImpl; +import org.apache.ambari.server.topology.StackFactory; import org.easymock.Capture; import org.easymock.EasyMockRunner; import org.easymock.EasyMockSupport; @@ -316,6 +323,13 @@ public class UpgradeCatalog251Test { binder.bind(MetadataHolder.class).toInstance(metadataHolder); binder.bind(AgentConfigsHolder.class).toInstance(createNiceMock(AgentConfigsHolder.class)); binder.bind(StackManagerFactory.class).toInstance(createNiceMock(StackManagerFactory.class)); + binder.bind(MpackManagerFactory.class).toInstance(createNiceMock(MpackManagerFactory.class)); + binder.bind(ClusterSettingFactory.class).toInstance(createNiceMock(ClusterSettingFactory.class)); + binder.bind(RootLevelSettingsManagerFactory.class).toInstance(createNiceMock(RootLevelSettingsManagerFactory.class)); + binder.bind(RegistryManager.class).toInstance(createNiceMock(RegistryManager.class)); + binder.bind(ServiceGroupFactory.class).toInstance(createNiceMock(ServiceGroupFactory.class)); + binder.bind(StackFactory.class).toInstance(createNiceMock(StackFactory.class)); + binder.bind(ComponentResolver.class).toInstance(createNiceMock(ComponentResolver.class)); } }; return Guice.createInjector(module); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog252Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog252Test.java index 8f9616d..595da6c 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog252Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog252Test.java @@ -69,26 +69,33 @@ import org.apache.ambari.server.hooks.users.UserHookService; import org.apache.ambari.server.metadata.CachedRoleCommandOrderProvider; import org.apache.ambari.server.metadata.ClusterMetadataGenerator; import org.apache.ambari.server.metadata.RoleCommandOrderProvider; +import org.apache.ambari.server.mpack.MpackManagerFactory; import org.apache.ambari.server.orm.DBAccessor; import org.apache.ambari.server.orm.DBAccessor.DBColumnInfo; import org.apache.ambari.server.orm.dao.ArtifactDAO; import org.apache.ambari.server.orm.entities.ArtifactEntity; +import org.apache.ambari.server.registry.RegistryManager; +import org.apache.ambari.server.resources.RootLevelSettingsManagerFactory; import org.apache.ambari.server.scheduler.ExecutionScheduler; import org.apache.ambari.server.security.encryption.CredentialStoreService; import org.apache.ambari.server.stack.StackManagerFactory; import org.apache.ambari.server.state.Cluster; +import org.apache.ambari.server.state.ClusterSettingFactory; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.Config; import org.apache.ambari.server.state.Service; import org.apache.ambari.server.state.ServiceComponentHostFactory; +import org.apache.ambari.server.state.ServiceGroupFactory; import org.apache.ambari.server.state.StackId; import org.apache.ambari.server.state.kerberos.KerberosComponentDescriptor; import org.apache.ambari.server.state.kerberos.KerberosDescriptor; import org.apache.ambari.server.state.kerberos.KerberosDescriptorFactory; import org.apache.ambari.server.state.stack.OsFamily; import org.apache.ambari.server.testutils.PartialNiceMockBinder; +import org.apache.ambari.server.topology.ComponentResolver; import org.apache.ambari.server.topology.PersistedState; import org.apache.ambari.server.topology.PersistedStateImpl; +import org.apache.ambari.server.topology.StackFactory; import org.easymock.Capture; import org.easymock.EasyMockRunner; import org.easymock.Mock; @@ -163,10 +170,13 @@ public class UpgradeCatalog252Test { private MetadataHolder metadataHolder; @Mock(type = MockType.NICE) + private ClusterMetadataGenerator metadataGenerator; + + @Mock(type = MockType.NICE) private Injector injector; @Before - public void init() { + public void init() throws Exception { reset(entityManagerProvider, injector); expect(entityManagerProvider.get()).andReturn(entityManager).anyTimes(); @@ -174,8 +184,9 @@ public class UpgradeCatalog252Test { expect(injector.getInstance(Gson.class)).andReturn(null).anyTimes(); expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(null).anyTimes(); expect(injector.getInstance(KerberosHelper.class)).andReturn(kerberosHelper).anyTimes(); + expect(metadataHolder.updateData(anyObject())).andReturn(Boolean.FALSE).anyTimes(); - replay(entityManagerProvider, injector); + replay(entityManagerProvider, injector, metadataHolder); } @After @@ -219,7 +230,6 @@ public class UpgradeCatalog252Test { final Service sparkMock = createNiceMock(Service.class); final Service spark2Mock = createNiceMock(Service.class); final AmbariManagementController controller = createMock(AmbariManagementController.class); - final ClusterMetadataGenerator metadataGenerator = createMock(ClusterMetadataGenerator.class); StackId stackId = new StackId("HDP", "2.2"); @@ -466,8 +476,16 @@ public class UpgradeCatalog252Test { binder.bind(AmbariMetaInfo.class).toInstance(createNiceMock(AmbariMetaInfo.class)); binder.bind(KerberosHelper.class).toInstance(createNiceMock(KerberosHelperImpl.class)); binder.bind(MetadataHolder.class).toInstance(metadataHolder); + binder.bind(ClusterMetadataGenerator.class).toInstance(metadataGenerator); binder.bind(AgentConfigsHolder.class).toInstance(createNiceMock(AgentConfigsHolder.class)); binder.bind(StackManagerFactory.class).toInstance(createNiceMock(StackManagerFactory.class)); + binder.bind(ComponentResolver.class).toInstance(createNiceMock(ComponentResolver.class)); + binder.bind(MpackManagerFactory.class).toInstance(createNiceMock(MpackManagerFactory.class)); + binder.bind(ClusterSettingFactory.class).toInstance(createNiceMock(ClusterSettingFactory.class)); + binder.bind(RootLevelSettingsManagerFactory.class).toInstance(createNiceMock(RootLevelSettingsManagerFactory.class)); + binder.bind(RegistryManager.class).toInstance(createNiceMock(RegistryManager.class)); + binder.bind(ServiceGroupFactory.class).toInstance(createNiceMock(ServiceGroupFactory.class)); + binder.bind(StackFactory.class).toInstance(createNiceMock(StackFactory.class)); } }; return Guice.createInjector(module); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java index bbee83b..f1b1b6a 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java @@ -87,6 +87,7 @@ import org.apache.ambari.server.hooks.users.UserHookService; import org.apache.ambari.server.metadata.CachedRoleCommandOrderProvider; import org.apache.ambari.server.metadata.ClusterMetadataGenerator; import org.apache.ambari.server.metadata.RoleCommandOrderProvider; +import org.apache.ambari.server.mpack.MpackManagerFactory; import org.apache.ambari.server.orm.DBAccessor; import org.apache.ambari.server.orm.DBAccessor.DBColumnInfo; import org.apache.ambari.server.orm.dao.ArtifactDAO; @@ -94,11 +95,14 @@ import org.apache.ambari.server.orm.dao.HostRoleCommandDAO; import org.apache.ambari.server.orm.dao.WidgetDAO; import org.apache.ambari.server.orm.entities.ArtifactEntity; import org.apache.ambari.server.orm.entities.WidgetEntity; +import org.apache.ambari.server.registry.RegistryManager; +import org.apache.ambari.server.resources.RootLevelSettingsManagerFactory; import org.apache.ambari.server.scheduler.ExecutionScheduler; import org.apache.ambari.server.security.encryption.CredentialStoreService; import org.apache.ambari.server.stack.StackManagerFactory; import org.apache.ambari.server.stageplanner.RoleGraphFactory; import org.apache.ambari.server.state.Cluster; +import org.apache.ambari.server.state.ClusterSettingFactory; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.Config; import org.apache.ambari.server.state.ConfigFactory; @@ -110,6 +114,7 @@ import org.apache.ambari.server.state.ServiceComponentFactory; import org.apache.ambari.server.state.ServiceComponentHostFactory; import org.apache.ambari.server.state.ServiceComponentImpl; import org.apache.ambari.server.state.ServiceFactory; +import org.apache.ambari.server.state.ServiceGroupFactory; import org.apache.ambari.server.state.ServiceImpl; import org.apache.ambari.server.state.ServiceInfo; import org.apache.ambari.server.state.StackId; @@ -135,8 +140,10 @@ import org.apache.ambari.server.state.scheduler.RequestExecutionFactory; import org.apache.ambari.server.state.scheduler.RequestExecutionImpl; import org.apache.ambari.server.state.stack.OsFamily; import org.apache.ambari.server.testutils.PartialNiceMockBinder; +import org.apache.ambari.server.topology.ComponentResolver; import org.apache.ambari.server.topology.PersistedState; import org.apache.ambari.server.topology.PersistedStateImpl; +import org.apache.ambari.server.topology.StackFactory; import org.apache.ambari.server.topology.tasks.ConfigureClusterTaskFactory; import org.apache.commons.io.FileUtils; import org.easymock.Capture; @@ -809,7 +816,7 @@ public class UpgradeCatalog260Test { final ClusterMetadataGenerator metadataGenerator = createMock(ClusterMetadataGenerator.class); expect(metadataGenerator.getClusterMetadataOnConfigsUpdate(eq(cluster))) .andReturn(createNiceMock(MetadataUpdateEvent.class)) - .once(); + .anyTimes(); replay(artifactDAO, artifactEntity, cluster, clusters, config, newConfig, hsiConfig, newHsiConfig, response, response1, controller, stackId, metadataGenerator); @@ -915,7 +922,7 @@ public class UpgradeCatalog260Test { .addMockedMethod("createConfiguration") .addMockedMethod("getClusters", new Class[] { }) .addMockedMethod("createConfig") - .withConstructor(createNiceMock(ActionManager.class), clusters, injector) + .withConstructor(createNiceMock(ActionManager.class), clusters, createNiceMock(ClusterMetadataGenerator.class), injector) .createNiceMock(); Injector injector2 = easyMockSupport.createNiceMock(Injector.class); @@ -971,13 +978,16 @@ public class UpgradeCatalog260Test { expect(injector.getInstance(Gson.class)).andReturn(null).anyTimes(); expect(injector.getInstance(MaintenanceStateHelper.class)).andReturn(null).anyTimes(); - replay(injector, clusters, mockHsiConfigs); + AgentConfigsHolder agentConfigsHolder = createNiceMock(AgentConfigsHolder.class); + MetadataHolder metadataHolder = createNiceMock(MetadataHolder.class); + ClusterMetadataGenerator metadataGenerator = easyMockSupport.createNiceMock(ClusterMetadataGenerator.class); + replay(injector, clusters, mockHsiConfigs, agentConfigsHolder, metadataGenerator, metadataHolder); AmbariManagementControllerImpl controller = createMockBuilder(AmbariManagementControllerImpl.class) .addMockedMethod("createConfiguration") .addMockedMethod("getClusters", new Class[] { }) .addMockedMethod("createConfig") - .withConstructor(createNiceMock(ActionManager.class), clusters, injector) + .withConstructor(createNiceMock(ActionManager.class), clusters, metadataGenerator, injector) .createNiceMock(); Injector injector2 = easyMockSupport.createNiceMock(Injector.class); @@ -989,6 +999,9 @@ public class UpgradeCatalog260Test { expect(controller.createConfig(anyObject(Cluster.class), anyObject(StackId.class), anyString(), capture(propertiesCapture), anyString(), anyObject(Map.class), anyLong())).andReturn(config).once(); expect(cluster.getConfig(anyString(), anyString())).andReturn(config); + expect(injector2.getInstance(ClusterMetadataGenerator.class)).andReturn(metadataGenerator).anyTimes(); + expect(injector2.getInstance(MetadataHolder.class)).andReturn(metadataHolder).anyTimes(); + expect(injector2.getInstance(AgentConfigsHolder.class)).andReturn(agentConfigsHolder).anyTimes(); replay(controller, injector2, config, cluster); // This tests the update of HSI config 'hive.llap.daemon.keytab.file'. @@ -1069,7 +1082,16 @@ public class UpgradeCatalog260Test { bind(CredentialStoreService.class).toInstance(createNiceMock(CredentialStoreService.class)); bind(ExecutionScheduler.class).toInstance(createNiceMock(ExecutionScheduler.class)); bind(StateUpdateEventPublisher.class).toInstance(createNiceMock(StateUpdateEventPublisher.class)); + bind(MetadataHolder.class).toInstance(createNiceMock(MetadataHolder.class)); + bind(AgentConfigsHolder.class).toInstance(createNiceMock(AgentConfigsHolder.class)); bind(KerberosHelper.class).toInstance(createNiceMock(KerberosHelperImpl.class)); + bind(MpackManagerFactory.class).toInstance(createNiceMock(MpackManagerFactory.class)); + bind(ClusterSettingFactory.class).toInstance(createNiceMock(ClusterSettingFactory.class)); + bind(RootLevelSettingsManagerFactory.class).toInstance(createNiceMock(RootLevelSettingsManagerFactory.class)); + bind(ComponentResolver.class).toInstance(createNiceMock(ComponentResolver.class)); + bind(RegistryManager.class).toInstance(createNiceMock(RegistryManager.class)); + bind(ServiceGroupFactory.class).toInstance(createNiceMock(ServiceGroupFactory.class)); + bind(StackFactory.class).toInstance(createNiceMock(StackFactory.class)); } }); expect(controller.getClusters()).andReturn(clusters).anyTimes(); @@ -1129,6 +1151,13 @@ public class UpgradeCatalog260Test { binder.bind(KerberosHelper.class).toInstance(createNiceMock(KerberosHelperImpl.class)); binder.bind(MetadataHolder.class).toInstance(createNiceMock(MetadataHolder.class)); binder.bind(AgentConfigsHolder.class).toInstance(createNiceMock(AgentConfigsHolder.class)); + binder.bind(MpackManagerFactory.class).toInstance(createNiceMock(MpackManagerFactory.class)); + binder.bind(ClusterSettingFactory.class).toInstance(createNiceMock(ClusterSettingFactory.class)); + binder.bind(RootLevelSettingsManagerFactory.class).toInstance(createNiceMock(RootLevelSettingsManagerFactory.class)); + binder.bind(ComponentResolver.class).toInstance(createNiceMock(ComponentResolver.class)); + binder.bind(RegistryManager.class).toInstance(createNiceMock(RegistryManager.class)); + binder.bind(ServiceGroupFactory.class).toInstance(createNiceMock(ServiceGroupFactory.class)); + binder.bind(StackFactory.class).toInstance(createNiceMock(StackFactory.class)); binder.install(new FactoryModuleBuilder().build(RequestFactory.class)); binder.install(new FactoryModuleBuilder().build(ConfigureClusterTaskFactory.class)); diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog270Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog270Test.java index 6601816..e699653 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog270Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog270Test.java @@ -121,6 +121,7 @@ import static org.easymock.EasyMock.createNiceMock; import static org.easymock.EasyMock.eq; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.expectLastCall; +import static org.easymock.EasyMock.isNull; import static org.easymock.EasyMock.mock; import static org.easymock.EasyMock.newCapture; import static org.easymock.EasyMock.niceMock; @@ -183,16 +184,20 @@ import org.apache.ambari.server.hooks.users.UserHookService; import org.apache.ambari.server.metadata.CachedRoleCommandOrderProvider; import org.apache.ambari.server.metadata.ClusterMetadataGenerator; import org.apache.ambari.server.metadata.RoleCommandOrderProvider; +import org.apache.ambari.server.mpack.MpackManagerFactory; import org.apache.ambari.server.orm.DBAccessor; import org.apache.ambari.server.orm.dao.AmbariConfigurationDAO; import org.apache.ambari.server.orm.dao.ArtifactDAO; import org.apache.ambari.server.orm.entities.ArtifactEntity; +import org.apache.ambari.server.registry.RegistryManager; +import org.apache.ambari.server.resources.RootLevelSettingsManagerFactory; import org.apache.ambari.server.scheduler.ExecutionScheduler; import org.apache.ambari.server.security.SecurityHelper; import org.apache.ambari.server.security.encryption.CredentialStoreService; import org.apache.ambari.server.serveraction.kerberos.PrepareKerberosIdentitiesServerAction; import org.apache.ambari.server.stack.StackManagerFactory; import org.apache.ambari.server.state.Cluster; +import org.apache.ambari.server.state.ClusterSettingFactory; import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.Config; import org.apache.ambari.server.state.ConfigHelper; @@ -200,6 +205,7 @@ import org.apache.ambari.server.state.Host; import org.apache.ambari.server.state.Service; import org.apache.ambari.server.state.ServiceComponentHostFactory; import org.apache.ambari.server.state.ServiceFactory; +import org.apache.ambari.server.state.ServiceGroupFactory; import org.apache.ambari.server.state.ServiceImpl; import org.apache.ambari.server.state.StackId; import org.apache.ambari.server.state.State; @@ -211,8 +217,10 @@ import org.apache.ambari.server.state.host.HostFactory; import org.apache.ambari.server.state.host.HostImpl; import org.apache.ambari.server.state.stack.OsFamily; import org.apache.ambari.server.testutils.PartialNiceMockBinder; +import org.apache.ambari.server.topology.ComponentResolver; import org.apache.ambari.server.topology.PersistedState; import org.apache.ambari.server.topology.PersistedStateImpl; +import org.apache.ambari.server.topology.StackFactory; import org.apache.commons.io.IOUtils; import org.easymock.Capture; import org.easymock.CaptureType; @@ -577,6 +585,13 @@ public class UpgradeCatalog270Test { bind(AmbariMetaInfo.class).toInstance(createNiceMock(AmbariMetaInfo.class)); bind(KerberosHelper.class).toInstance(createNiceMock(KerberosHelperImpl.class)); bind(StackManagerFactory.class).toInstance(createNiceMock(StackManagerFactory.class)); + bind(ComponentResolver.class).toInstance(createNiceMock(ComponentResolver.class)); + bind(MpackManagerFactory.class).toInstance(createNiceMock(MpackManagerFactory.class)); + bind(ClusterSettingFactory.class).toInstance(createNiceMock(ClusterSettingFactory.class)); + bind(RootLevelSettingsManagerFactory.class).toInstance(createNiceMock(RootLevelSettingsManagerFactory.class)); + bind(RegistryManager.class).toInstance(createNiceMock(RegistryManager.class)); + bind(ServiceGroupFactory.class).toInstance(createNiceMock(ServiceGroupFactory.class)); + bind(StackFactory.class).toInstance(createNiceMock(StackFactory.class)); install(new FactoryModuleBuilder().implement( Host.class, HostImpl.class).build(HostFactory.class)); @@ -1131,7 +1146,7 @@ public class UpgradeCatalog270Test { .addMockedMethod("createConfig") .createMock(); expect(controller.getClusters()).andReturn(clusters).anyTimes(); - expect(controller.createConfig(eq(cluster1), eq(stackId), eq("kerberos-env"), capture(capturedProperties), anyString(), anyObject(Map.class), 1L)).andReturn(newConfig).once(); + expect(controller.createConfig(eq(cluster1), eq(stackId), eq("kerberos-env"), capture(capturedProperties), anyString(), anyObject(Map.class), isNull())).andReturn(newConfig).once(); final ClusterMetadataGenerator metadataGenerator = createMock(ClusterMetadataGenerator.class); expect(metadataGenerator.getClusterMetadataOnConfigsUpdate(eq(cluster1))).andReturn(createNiceMock(MetadataUpdateEvent.class)).once(); @@ -1139,6 +1154,7 @@ public class UpgradeCatalog270Test { Injector injector = createNiceMock(Injector.class); expect(injector.getInstance(AmbariManagementController.class)).andReturn(controller).anyTimes(); expect(injector.getInstance(MetadataHolder.class)).andReturn(createNiceMock(MetadataHolder.class)).anyTimes(); + expect(injector.getInstance(ClusterMetadataGenerator.class)).andReturn(metadataGenerator).anyTimes(); expect(injector.getInstance(AgentConfigsHolder.class)).andReturn(createNiceMock(AgentConfigsHolder.class)).anyTimes(); expect(injector.getInstance(AmbariServer.class)).andReturn(createNiceMock(AmbariServer.class)).anyTimes(); KerberosHelper kerberosHelperMock = createNiceMock(KerberosHelper.class); diff --git a/ambari-server/src/test/resources/custom_action_definitions/cust_action_definitions1.xml b/ambari-server/src/test/resources/custom_action_definitions/cust_action_definitions1.xml index e8e6bc8..80cc489 100644 --- a/ambari-server/src/test/resources/custom_action_definitions/cust_action_definitions1.xml +++ b/ambari-server/src/test/resources/custom_action_definitions/cust_action_definitions1.xml @@ -23,6 +23,7 @@ <actionName>customAction1</actionName> <actionType>USER</actionType> <inputs>threshold</inputs> + <targetServiceGroup>HDPCORE</targetServiceGroup> <targetService>MAPREDUCE</targetService> <targetComponent>TASKTRACKER</targetComponent> <description>A random test</description> @@ -32,6 +33,7 @@ <actionDefinition> <actionName>customAction2</actionName> <actionType>USER</actionType> + <targetServiceGroup>HDPCORE</targetServiceGroup> <targetService>MAPREDUCE</targetService> <targetComponent>TASKTRACKER</targetComponent> <description>A random test</description> @@ -40,6 +42,7 @@ <actionDefinition> <actionName>customAction3</actionName> <actionType>USER</actionType> + <targetServiceGroup>HDPCORE</targetServiceGroup> <targetService>MAPREDUCE</targetService> <targetComponent>TASKTRACKER</targetComponent> <description>A random test</description> @@ -47,8 +50,9 @@ <actionDefinition> <actionName>customAction4</actionName> <actionType>USERS_OWN</actionType> + <targetServiceGroup>HDPCORE</targetServiceGroup> <targetService>MAPREDUCE</targetService> <targetComponent>TASKTRACKER</targetComponent> <description>A random test</description> </actionDefinition> -</actionDefinitions> \ No newline at end of file +</actionDefinitions> diff --git a/ambari-server/src/test/resources/custom_action_definitions_invalid/cust_action_definitions_invalid.xml b/ambari-server/src/test/resources/custom_action_definitions_invalid/cust_action_definitions_invalid.xml index a6fd71e..cabec0e 100644 --- a/ambari-server/src/test/resources/custom_action_definitions_invalid/cust_action_definitions_invalid.xml +++ b/ambari-server/src/test/resources/custom_action_definitions_invalid/cust_action_definitions_invalid.xml @@ -24,10 +24,11 @@ <actionName>invalidCustomAction1</actionName> <actionType>USER</actionType> <inputs>threshold</inputs> + <targetServiceGroup>HDPCORE</targetServiceGroup> <targetService>MAPREDUCE</targetService> <targetComponent>TASKTRACKER</targetComponent> <description>A random test</description> <targetType>ALL</targetType> <permissions>NOT.A.PERMISSION</permissions> </actionDefinition> -</actionDefinitions> \ No newline at end of file +</actionDefinitions> -- To stop receiving notification emails like this one, please contact adorosz...@apache.org.