/**
* 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
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* 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.view.huetoambarimigration.migration.configuration;
import org.apache.ambari.view.ViewContext;
import org.apache.ambari.view.huetoambarimigration.datasource.DataSourceAmbariDatabase;
import org.apache.ambari.view.huetoambarimigration.resources.scripts.models.InstanceModel;
import java.beans.PropertyVetoException;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import org.apache.ambari.view.huetoambarimigration.datasource.queryset.ambariqueryset.hive.instancedetail.*;
import org.apache.log4j.Logger;
public class HiveInstanceDetailsUtility {
public List<InstanceModel> getInstancedetails(ViewContext view) throws PropertyVetoException, SQLException, IOException {
final Logger logger = Logger.getLogger(HiveInstanceDetailsUtility.class);
List<InstanceModel> instancelist = new ArrayList<>();
Connection conn = null;
conn = DataSourceAmbariDatabase.getInstance(view.getProperties().get("ambaridrivername"), view.getProperties().get("ambarijdbcurl"), view.getProperties().get("ambaridbusername"), view.getProperties().get("ambaridbpassword")).getConnection();
conn.setAutoCommit(false);
PreparedStatement prSt = null;
QuerySetAmbariDB ambaridatabase = null;
ResultSet rs1 = null;
try {
if (view.getProperties().get("ambaridrivername").contains("mysql")) {
ambaridatabase = new MysqlQuerySetAmbariDB();
} else if (view.getProperties().get("ambaridrivername").contains("postgresql")) {
ambaridatabase = new PostgressQuerySetAmbariDB();
} else if (view.getProperties().get("ambaridrivername").contains("oracle")) {
ambaridatabase = new OracleQuerySetAmbariDB();
}
prSt = ambaridatabase.getHiveInstanceDeatil(conn);
rs1 = prSt.executeQuery();
int i = 0;
while (rs1.next()) {
InstanceModel I = new InstanceModel();
I.setInstanceName(rs1.getString(1));
I.setId(i);
instancelist.add(I);
i++;
}
return instancelist;
} finally {
if (rs1 != null) {
try {
rs1.close();
} catch (SQLException e) {
logger.error("Sql exception in while closing result set : ", e);
}
}
if (prSt != null) {
try {
prSt.close();
} catch (SQLException e) {
logger.error("Sql exception in while closing PreparedStatement : ", e);
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
logger.error("Sql exception in while closing the connection : ", e);
}
}
}
}
public List<InstanceModel> getAllInstancedetails(ViewContext view) throws PropertyVetoException, SQLException, IOException {
List<InstanceModel> instancelist = new ArrayList<>();
final Logger logger = Logger.getLogger(HiveInstanceDetailsUtility.class);
Connection conn = null;
Statement stmt = null;
conn = DataSourceAmbariDatabase.getInstance(view.getProperties().get("ambaridrivername"), view.getProperties().get("ambarijdbcurl"), view.getProperties().get("ambaridbusername"), view.getProperties().get("ambaridbpassword")).getConnection();
conn.setAutoCommit(false);
PreparedStatement prSt = null;
ResultSet rs1 = null;
QuerySetAmbariDB ambaridatabase = null;
try {
if (view.getProperties().get("ambaridrivername").contains("mysql")) {
ambaridatabase = new MysqlQuerySetAmbariDB();
} else if (view.getProperties().get("ambaridrivername").contains("postgresql")) {
ambaridatabase = new PostgressQuerySetAmbariDB();
} else if (view.getProperties().get("ambaridrivername").contains("oracle")) {
ambaridatabase = new OracleQuerySetAmbariDB();
}
int i = 0;
prSt = ambaridatabase.getAllInstanceDeatil(conn);
rs1 = prSt.executeQuery();
while (rs1.next()) {
InstanceModel I = new InstanceModel();
I.setInstanceName(rs1.getString(1));
I.setId(i);
instancelist.add(I);
i++;
}
return instancelist;
} finally {
if (rs1 != null) {
try {
rs1.close();
} catch (SQLException e) {
logger.error("Sql exception in while closing result set : ", e);
}
}
if (prSt != null) {
try {
prSt.close();
} catch (SQLException e) {
logger.error("Sql exception in while closing PreparedStatement : ", e);
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
logger.error("Sql exception in while closing the connection : ", e);
}
}
}
}
}