/** * 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.hive.beeline.hs2connection; import java.io.File; import org.apache.hadoop.hive.conf.HiveConf.ConfVars; import org.junit.Test; public class TestBeelineConnectionUsingHiveSite extends BeelineWithHS2ConnectionFileTestBase { @Test public void testBeelineConnectionHttp() throws Exception { setupHs2(); String path = createDefaultHs2ConnectionFile(); testBeeLineConnection(path, new String[] { "-e", "show tables;" }, tableName); } @Test public void testBeelineConnectionSSL() throws Exception { setupSSLHs2(); String path = createDefaultHs2ConnectionFile(); testBeeLineConnection(path, new String[] { "-e", "show tables;" }, tableName); } @Test public void testBeelineConnectionNoAuth() throws Exception { setupNoAuthHs2(); String path = createDefaultHs2ConnectionFile(); testBeeLineConnection(path, new String[] { "-e", "show tables;" }, tableName); } /* * tests if the beeline behaves like default mode if there is no user-specific connection * configuration file */ @Test public void testBeelineWithNoConnectionFile() throws Exception { setupNoAuthHs2(); testBeeLineConnection(null, new String[] { "-e", "show tables;" }, "no current connection"); } @Test public void testBeelineUsingArgs() throws Exception { setupNoAuthHs2(); String url = miniHS2.getBaseJdbcURL() + "default"; String args[] = new String[] { "-u", url, "-n", System.getProperty("user.name"), "-p", "foo", "-e", "show tables;" }; testBeeLineConnection(null, args, tableName); } private void setupNoAuthHs2() throws Exception { // use default configuration for no-auth mode miniHS2.start(confOverlay); createTable(); } private void setupSSLHs2() throws Exception { confOverlay.put(ConfVars.HIVE_SERVER2_USE_SSL.varname, "true"); confOverlay.put(ConfVars.HIVE_SERVER2_SSL_KEYSTORE_PATH.varname, dataFileDir + File.separator + LOCALHOST_KEY_STORE_NAME); confOverlay.put(ConfVars.HIVE_SERVER2_SSL_KEYSTORE_PASSWORD.varname, KEY_STORE_TRUST_STORE_PASSWORD); miniHS2.start(confOverlay); createTable(); System.setProperty(JAVA_TRUST_STORE_PROP, dataFileDir + File.separator + TRUST_STORE_NAME); System.setProperty(JAVA_TRUST_STORE_PASS_PROP, KEY_STORE_TRUST_STORE_PASSWORD); } private void setupHs2() throws Exception { confOverlay.put(ConfVars.HIVE_SERVER2_TRANSPORT_MODE.varname, HS2_HTTP_MODE); confOverlay.put(ConfVars.HIVE_SERVER2_THRIFT_HTTP_PATH.varname, HS2_HTTP_ENDPOINT); confOverlay.put(ConfVars.HIVE_SERVER2_ENABLE_DOAS.varname, "true"); miniHS2.start(confOverlay); createTable(); } private String createDefaultHs2ConnectionFile() throws Exception { Hs2ConnectionXmlConfigFileWriter writer = new Hs2ConnectionXmlConfigFileWriter(); String baseJdbcURL = miniHS2.getBaseJdbcURL(); System.out.println(baseJdbcURL); writer.writeProperty(HS2ConnectionFileParser.BEELINE_CONNECTION_PROPERTY_PREFIX + "user", System.getProperty("user.name")); writer.writeProperty(HS2ConnectionFileParser.BEELINE_CONNECTION_PROPERTY_PREFIX + "password", "foo"); writer.close(); return writer.path(); } }