/*************************************************************************** * Copyright (c) 2014-2015 VMware, Inc. All Rights Reserved. * Licensed 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 com.vmware.bdd.plugin.clouderamgr.model; import com.google.gson.Gson; import com.vmware.bdd.plugin.clouderamgr.model.support.AvailableServiceRole; import com.vmware.bdd.plugin.clouderamgr.model.support.AvailableServiceRoleContainer; import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; /** * Author: Xiaoding Bian * Date: 6/12/14 * Time: 7:48 PM */ public class TestAvailableServiceRoleContainer { @BeforeClass(groups = { "TestAvailableServiceRoleContainer" }, dependsOnGroups = {"TestCmClusterValidator"}) public static void setup() throws IOException { } @Test(groups = {"TestAvailableServiceRoleContainer"}) public void testLoad() throws IOException { AvailableServiceRoleContainer.loadAll(); System.out.println(AvailableServiceRoleContainer.dump()); System.out.println(AvailableServiceRoleContainer.load("HDFS").getAvailableConfigurations().keySet()); System.out.println((new Gson()).toJson(AvailableServiceRoleContainer.load("HUE").getDependencies())); Assert.assertTrue(AvailableServiceRoleContainer.load("HBASE").compareTo(AvailableServiceRoleContainer.load("ZOOKEEPER")) == 1); Assert.assertTrue(AvailableServiceRoleContainer.load("ZOOKEEPER").compareTo(AvailableServiceRoleContainer.load("HBASE")) == -1); Assert.assertTrue(AvailableServiceRoleContainer.load("HDFS").compareTo(AvailableServiceRoleContainer.load("YARN_RESOURCE_MANAGER")) == 0); Assert.assertTrue(AvailableServiceRoleContainer.load("HBASE").compareTo(AvailableServiceRoleContainer.load("YARN")) == 0); Assert.assertTrue(AvailableServiceRoleContainer.load("HDFS").compareTo(AvailableServiceRoleContainer.load("HIVE")) == -1); Assert.assertTrue(AvailableServiceRoleContainer.load("IMPALA").compareTo(AvailableServiceRoleContainer.load("ZOOKEEPER")) == 1); List<AvailableServiceRole> services = new ArrayList<AvailableServiceRole>(); services.add(AvailableServiceRoleContainer.load("HIVE")); services.add(AvailableServiceRoleContainer.load("HBASE")); services.add(AvailableServiceRoleContainer.load("HDFS")); services.add(AvailableServiceRoleContainer.load("ZOOKEEPER")); services.add(AvailableServiceRoleContainer.load("YARN")); services.add(AvailableServiceRoleContainer.load("IMPALA")); Collections.sort(services); for (AvailableServiceRole service : services) { System.out.println(service.getDisplayName()); } } @Test(groups = {"TestAvailableServiceRoleContainer"}) public void testAllServicesRoles() throws IOException { Set<String> allServicesV4 = AvailableServiceRoleContainer.allServices("4"); Assert.assertTrue(allServicesV4.contains("HDFS")); Assert.assertFalse(allServicesV4.contains("YARN")); // CDH4 does not has YARN Assert.assertTrue(allServicesV4.contains("ZOOKEEPER")); Assert.assertTrue(allServicesV4.contains("HIVE")); Set<String> allServicesV5 = AvailableServiceRoleContainer.allServices("5"); Assert.assertTrue(allServicesV5.contains("YARN")); // CDH5 has YARN Set<String> allRoles = AvailableServiceRoleContainer.allRoles("-1"); Assert.assertTrue(allRoles.contains("HDFS_DATANODE")); Assert.assertTrue(allRoles.contains("YARN_NODE_MANAGER")); } @Test(groups = {"TestAvailableServiceRoleContainer"}) public void testConfigs() throws IOException { String configs = AvailableServiceRoleContainer.getSupportedConfigs("5"); Map<String, Object> configMap = (new Gson()).fromJson(configs, Map.class); Assert.assertTrue(configMap.containsKey("HDFS")); Assert.assertTrue(configMap.containsKey("HDFS_DATANODE")); List<String> hdfsConfig = (List<String>) configMap.get("HDFS"); Assert.assertTrue(hdfsConfig.contains("hdfs_missing_blocks_thresholds")); System.out.println(configs); } @Test(groups = {"TestAvailableServiceRoleContainer"}) public void testServiceIsilon() throws IOException { Set<String> allServicesV51 = AvailableServiceRoleContainer.allServices("5.1.0"); Assert.assertTrue(allServicesV51.contains("ISILON")); Set<String> allRolesV51 = AvailableServiceRoleContainer.allRoles("5.1.0"); Assert.assertTrue(allRolesV51.contains("GATEWAY")); Set<String> allServicesV511 = AvailableServiceRoleContainer.allServices("5.1.1"); Assert.assertTrue(allServicesV511.contains("ISILON")); Set<String> allRolesV511 = AvailableServiceRoleContainer.allRoles("5.1.1"); Assert.assertTrue(allRolesV511.contains("GATEWAY")); Set<String> allServicesV52 = AvailableServiceRoleContainer.allServices("5.2"); Assert.assertTrue(allServicesV52.contains("ISILON")); Set<String> allRolesV52 = AvailableServiceRoleContainer.allRoles("5.2"); Assert.assertTrue(allRolesV52.contains("GATEWAY")); Set<String> allServicesV6 = AvailableServiceRoleContainer.allServices("6.0.0"); Assert.assertTrue(allServicesV6.contains("ISILON")); Set<String> allRolesV6 = AvailableServiceRoleContainer.allRoles("6.0.0"); Assert.assertTrue(allRolesV6.contains("GATEWAY")); Set<String> allServicesV1 = AvailableServiceRoleContainer.allServices("-1"); Assert.assertTrue(allServicesV1.contains("ISILON")); Set<String> allRolesV1 = AvailableServiceRoleContainer.allRoles("-1"); Assert.assertTrue(allRolesV1.contains("GATEWAY")); Set<String> allServicesV509 = AvailableServiceRoleContainer.allServices("5.0.9"); Assert.assertFalse(allServicesV509.contains("ISILON")); Set<String> allRolesV510 = AvailableServiceRoleContainer.allRoles("5.0.9"); Assert.assertFalse(allRolesV510.contains("GATEWAY")); Set<String> allServicesV49 = AvailableServiceRoleContainer.allServices("4.9"); Assert.assertFalse(allServicesV49.contains("ISILON")); Set<String> allRolesV49 = AvailableServiceRoleContainer.allRoles("4.9"); Assert.assertFalse(allRolesV49.contains("GATEWAY")); Set<String> allServicesV4 = AvailableServiceRoleContainer.allServices("4"); Assert.assertFalse(allServicesV4.contains("ISILON")); Set<String> allRolesV4 = AvailableServiceRoleContainer.allRoles("4"); Assert.assertFalse(allRolesV4.contains("GATEWAY")); } }