/*
* 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.stack;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import org.apache.ambari.server.state.kerberos.KerberosDescriptor;
import org.apache.ambari.server.state.kerberos.KerberosDescriptorFactory;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import org.springframework.util.Assert;
/**
* KerberosDescriptorTest tests the stack- and service-level descriptors for certain stacks
* and services
*/
@Ignore
public class KerberosDescriptorTest {
private static final KerberosDescriptorFactory KERBEROS_DESCRIPTOR_FACTORY = new KerberosDescriptorFactory();
private static File stacksDirectory;
private static File hdpStackDirectory;
private static File hdp22StackDirectory;
private static File hdp22ServicesDirectory;
private static File commonServicesDirectory;
@BeforeClass
public static void beforeClass() {
URL rootDirectoryURL = KerberosDescriptorTest.class.getResource("/");
Assert.notNull(rootDirectoryURL);
File resourcesDirectory = new File(new File(rootDirectoryURL.getFile()).getParentFile().getParentFile(), "src/main/resources");
Assert.notNull(resourcesDirectory);
Assert.isTrue(resourcesDirectory.canRead());
stacksDirectory = new File(resourcesDirectory, "stacks");
Assert.notNull(stacksDirectory);
Assert.isTrue(stacksDirectory.canRead());
hdpStackDirectory = new File(stacksDirectory, "HDP");
Assert.notNull(hdpStackDirectory);
Assert.isTrue(hdpStackDirectory.canRead());
hdp22StackDirectory = new File(hdpStackDirectory, "2.2");
Assert.notNull(hdp22StackDirectory);
Assert.isTrue(hdp22StackDirectory.canRead());
hdp22ServicesDirectory = new File(hdp22StackDirectory, "services");
Assert.notNull(hdp22ServicesDirectory);
Assert.isTrue(hdp22ServicesDirectory.canRead());
commonServicesDirectory = new File(resourcesDirectory, "common-services");
Assert.notNull(commonServicesDirectory);
Assert.isTrue(commonServicesDirectory.canRead());
}
@Test
public void testCommonHBASEServiceDescriptor() throws IOException {
KerberosDescriptor descriptor = getKerberosDescriptor(commonServicesDirectory, "HBASE", "0.96.0.2.0");
Assert.notNull(descriptor);
Assert.notNull(descriptor.getServices());
Assert.notNull(descriptor.getService("HBASE"));
}
@Test
public void testCommonHDFSServiceDescriptor() throws IOException {
KerberosDescriptor descriptor = getKerberosDescriptor(commonServicesDirectory, "HDFS", "2.1.0.2.0");
Assert.notNull(descriptor);
Assert.notNull(descriptor.getServices());
Assert.notNull(descriptor.getService("HDFS"));
}
@Test
public void testCommonYarnServiceDescriptor() throws IOException {
KerberosDescriptor descriptor = getKerberosDescriptor(commonServicesDirectory, "YARN", "2.1.0.2.0");
Assert.notNull(descriptor);
Assert.notNull(descriptor.getServices());
Assert.notNull(descriptor.getService("YARN"));
Assert.notNull(descriptor.getService("MAPREDUCE2"));
}
@Test
public void testCommonFalconServiceDescriptor() throws IOException {
KerberosDescriptor descriptor = getKerberosDescriptor(commonServicesDirectory, "FALCON", "0.5.0.2.1");
Assert.notNull(descriptor);
Assert.notNull(descriptor.getServices());
Assert.notNull(descriptor.getService("FALCON"));
}
@Test
public void testCommonHiveServiceDescriptor() throws IOException {
KerberosDescriptor descriptor = getKerberosDescriptor(commonServicesDirectory, "HIVE", "0.12.0.2.0");
Assert.notNull(descriptor);
Assert.notNull(descriptor.getServices());
Assert.notNull(descriptor.getService("HIVE"));
}
@Test
public void testCommonKnoxServiceDescriptor() throws IOException {
KerberosDescriptor descriptor = getKerberosDescriptor(commonServicesDirectory, "KNOX", "0.5.0.2.2");
Assert.notNull(descriptor);
Assert.notNull(descriptor.getServices());
Assert.notNull(descriptor.getService("KNOX"));
}
@Test
public void testCommonOozieServiceDescriptor() throws IOException {
KerberosDescriptor descriptor;
descriptor = getKerberosDescriptor(commonServicesDirectory, "OOZIE", "4.0.0.2.0");
Assert.notNull(descriptor);
Assert.notNull(descriptor.getServices());
Assert.notNull(descriptor.getService("OOZIE"));
}
@Test
public void testCommonStormServiceDescriptor() throws IOException {
KerberosDescriptor descriptor = getKerberosDescriptor(commonServicesDirectory, "STORM", "0.9.1");
Assert.notNull(descriptor);
Assert.notNull(descriptor.getServices());
Assert.notNull(descriptor.getService("STORM"));
}
@Test
public void testCommonZookeepeerServiceDescriptor() throws IOException {
KerberosDescriptor descriptor = getKerberosDescriptor(commonServicesDirectory, "ZOOKEEPER", "3.4.5");
Assert.notNull(descriptor);
Assert.notNull(descriptor.getServices());
Assert.notNull(descriptor.getService("ZOOKEEPER"));
}
@Test
public void testCommonSparkServiceDescriptor() throws IOException {
KerberosDescriptor descriptor = getKerberosDescriptor(commonServicesDirectory, "SPARK", "1.2.1");
Assert.notNull(descriptor);
Assert.notNull(descriptor.getServices());
Assert.notNull(descriptor.getService("SPARK"));
}
private KerberosDescriptor getKerberosDescriptor(File baseDirectory, String service, String version) throws IOException {
File serviceDirectory = new File(baseDirectory, service);
File serviceVersionDirectory = new File(serviceDirectory, version);
return KERBEROS_DESCRIPTOR_FACTORY.createInstance(new File(serviceVersionDirectory, "kerberos.json"));
}
}