Repository: ambari Updated Branches: refs/heads/trunk 5378bd912 -> fa1303aaa
AMBARI-11073. RU: Should not complain about decommissioned components (dlysnichenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/fa1303aa Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/fa1303aa Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/fa1303aa Branch: refs/heads/trunk Commit: fa1303aaa6c4ac61a8f3f213dc33adf5b062b458 Parents: 5378bd9 Author: Lisnichenko Dmitro <dlysniche...@hortonworks.com> Authored: Tue May 12 21:00:18 2015 +0300 Committer: Lisnichenko Dmitro <dlysniche...@hortonworks.com> Committed: Tue May 12 21:00:18 2015 +0300 ---------------------------------------------------------------------- .../ambari/server/checks/CheckDescription.java | 7 -- .../checks/ServicesDecommissionCheck.java | 68 ------------ .../checks/ServicesDecommissionCheckTest.java | 105 ------------------- 3 files changed, 180 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/fa1303aa/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java index 083d3f9..8e92cfe 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java @@ -72,13 +72,6 @@ public enum CheckDescription { put(AbstractCheckDescriptor.DEFAULT, "The SNameNode component must be deleted from host: {{fails}}."); }}), - SERVICES_DECOMMISSION(PrereqCheckType.SERVICE, - "Services should not have components in decommission state", - new HashMap<String, String>() {{ - put(AbstractCheckDescriptor.DEFAULT, - "The following Services must not have components in decommissioned or decommissioning state: {{fails}}."); - }}), - SERVICES_MAINTENANCE_MODE(PrereqCheckType.SERVICE, "No services can be in Maintenance Mode", new HashMap<String, String>() {{ http://git-wip-us.apache.org/repos/asf/ambari/blob/fa1303aa/ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesDecommissionCheck.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesDecommissionCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesDecommissionCheck.java deleted file mode 100644 index 6ebfd1f..0000000 --- a/ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesDecommissionCheck.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.ambari.server.checks; - -import java.util.Map; - -import org.apache.ambari.server.AmbariException; -import org.apache.ambari.server.controller.PrereqCheckRequest; -import org.apache.ambari.server.state.Cluster; -import org.apache.ambari.server.state.HostComponentAdminState; -import org.apache.ambari.server.state.Service; -import org.apache.ambari.server.state.ServiceComponent; -import org.apache.ambari.server.state.ServiceComponentHost; -import org.apache.ambari.server.state.stack.PrereqCheckStatus; -import org.apache.ambari.server.state.stack.PrerequisiteCheck; - -import com.google.inject.Singleton; - -/** - * Checks that there are no services in decommission state. - */ -@Singleton -public class ServicesDecommissionCheck extends AbstractCheckDescriptor { - - /** - * Constructor. - */ - public ServicesDecommissionCheck() { - super(CheckDescription.SERVICES_DECOMMISSION); - } - - @Override - public void perform(PrerequisiteCheck prerequisiteCheck, PrereqCheckRequest request) throws AmbariException { - final String clusterName = request.getClusterName(); - final Cluster cluster = clustersProvider.get().getCluster(clusterName); - for (Map.Entry<String, Service> serviceEntry: cluster.getServices().entrySet()) { - final Service service = serviceEntry.getValue(); - for (Map.Entry<String, ServiceComponent> serviceComponentEntry: service.getServiceComponents().entrySet()) { - final ServiceComponent serviceComponent = serviceComponentEntry.getValue(); - for (String hostName : serviceComponent.getServiceComponentHosts().keySet()) { - final ServiceComponentHost scHost = serviceComponent.getServiceComponentHost(hostName); - if (scHost.getComponentAdminState() == HostComponentAdminState.DECOMMISSIONED || scHost.getComponentAdminState() == HostComponentAdminState.DECOMMISSIONING) { - prerequisiteCheck.getFailedOn().add(serviceComponent.getName()); - } - } - } - } - if (!prerequisiteCheck.getFailedOn().isEmpty()) { - prerequisiteCheck.setStatus(PrereqCheckStatus.FAIL); - prerequisiteCheck.setFailReason(getFailReason(prerequisiteCheck, request)); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/fa1303aa/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesDecommissionCheckTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesDecommissionCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesDecommissionCheckTest.java deleted file mode 100644 index 1c3056b..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesDecommissionCheckTest.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.ambari.server.checks; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -import org.apache.ambari.server.api.services.AmbariMetaInfo; -import org.apache.ambari.server.controller.PrereqCheckRequest; -import org.apache.ambari.server.state.Cluster; -import org.apache.ambari.server.state.Clusters; -import org.apache.ambari.server.state.HostComponentAdminState; -import org.apache.ambari.server.state.Service; -import org.apache.ambari.server.state.ServiceComponent; -import org.apache.ambari.server.state.ServiceComponentHost; -import org.apache.ambari.server.state.StackId; -import org.apache.ambari.server.state.stack.PrereqCheckStatus; -import org.apache.ambari.server.state.stack.PrerequisiteCheck; -import org.junit.Assert; -import org.junit.Test; -import org.mockito.Mockito; - -import com.google.inject.Provider; - -/** - * Unit tests for ServicesDecommissionCheck - * - */ -public class ServicesDecommissionCheckTest { - private final Clusters clusters = Mockito.mock(Clusters.class); - - @Test - public void testIsApplicable() throws Exception { - PrereqCheckRequest checkRequest = new PrereqCheckRequest("c1"); - checkRequest.setRepositoryVersion("HDP-2.2.0.0"); - checkRequest.setSourceStackId(new StackId("HDP", "2.2")); - checkRequest.setTargetStackId(new StackId("HDP", "2.2")); - - Assert.assertTrue(new ServicesDecommissionCheck().isApplicable(checkRequest)); - } - - @Test - public void testPerform() throws Exception { - final ServicesDecommissionCheck servicesDecommissionCheck = new ServicesDecommissionCheck(); - servicesDecommissionCheck.clustersProvider = new Provider<Clusters>() { - - @Override - public Clusters get() { - return clusters; - } - }; - servicesDecommissionCheck.ambariMetaInfo = new Provider<AmbariMetaInfo>() { - @Override - public AmbariMetaInfo get() { - return Mockito.mock(AmbariMetaInfo.class); - } - }; - - final Cluster cluster = Mockito.mock(Cluster.class); - Mockito.when(cluster.getClusterId()).thenReturn(1L); - Mockito.when(cluster.getCurrentStackVersion()).thenReturn(new StackId("HDP", "2.2")); - Mockito.when(clusters.getCluster("cluster")).thenReturn(cluster); - final Service service = Mockito.mock(Service.class); - Mockito.when(cluster.getServices()).thenReturn(Collections.singletonMap("service", service)); - final ServiceComponent serviceComponent1 = Mockito.mock(ServiceComponent.class); - final ServiceComponent serviceComponent2 = Mockito.mock(ServiceComponent.class); - final Map<String, ServiceComponent> serviceComponents = new HashMap<String, ServiceComponent>(); - serviceComponents.put("component1", serviceComponent1); - serviceComponents.put("component2", serviceComponent2); - Mockito.when(service.getServiceComponents()).thenReturn(serviceComponents); - final ServiceComponentHost serviceComponentHost1 = Mockito.mock(ServiceComponentHost.class); - final ServiceComponentHost serviceComponentHost2 = Mockito.mock(ServiceComponentHost.class); - Mockito.when(serviceComponent1.getServiceComponentHosts()).thenReturn(Collections.singletonMap("serviceComponentHost1", serviceComponentHost1)); - Mockito.when(serviceComponent2.getServiceComponentHosts()).thenReturn(Collections.singletonMap("serviceComponentHost2", serviceComponentHost2)); - Mockito.when(serviceComponent1.getServiceComponentHost(Mockito.anyString())).thenReturn(serviceComponentHost1); - Mockito.when(serviceComponent2.getServiceComponentHost(Mockito.anyString())).thenReturn(serviceComponentHost2); - Mockito.when(serviceComponentHost1.getComponentAdminState()).thenReturn(HostComponentAdminState.DECOMMISSIONED); - Mockito.when(serviceComponentHost2.getComponentAdminState()).thenReturn(HostComponentAdminState.INSERVICE); - - PrerequisiteCheck check = new PrerequisiteCheck(null, null); - servicesDecommissionCheck.perform(check, new PrereqCheckRequest("cluster")); - Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus()); - - Mockito.when(serviceComponentHost1.getComponentAdminState()).thenReturn(HostComponentAdminState.INSERVICE); - check = new PrerequisiteCheck(null, null); - servicesDecommissionCheck.perform(check, new PrereqCheckRequest("cluster")); - Assert.assertEquals(PrereqCheckStatus.PASS, check.getStatus()); - } -}