/**
* 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.DataSourceHueDatabase;
import org.apache.ambari.view.huetoambarimigration.resources.scripts.models.UserModel;
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.huequeryset.userdetails.*;
public class UserDetailsUtility {
public List<UserModel> getUserDetails(ViewContext view) throws PropertyVetoException, SQLException, IOException {
List<UserModel> userlist=new ArrayList<>();
Connection conn = null;
Statement stmt = null;
conn = DataSourceHueDatabase.getInstance(view.getProperties().get("huedrivername"),view.getProperties().get("huejdbcurl"),view.getProperties().get("huedbusername"),view.getProperties().get("huedbpassword")).getConnection();
conn.setAutoCommit(false);
stmt = conn.createStatement();
UserModel all=new UserModel();
all.setId(-1);
all.setUsername("all");
PreparedStatement prSt;
userlist.add(all);
ResultSet rs1=null;
QuerySet huedatabase = null;
if (view.getProperties().get("huedrivername").contains("mysql")) {
huedatabase = new MysqlQuerySet();
} else if (view.getProperties().get("huedrivername").contains("postgresql")) {
huedatabase = new PostgressQuerySet();
} else if (view.getProperties().get("huedrivername").contains("sqlite")) {
huedatabase = new SqliteQuerySet();
} else if (view.getProperties().get("huedrivername").contains("oracle")) {
huedatabase = new OracleQuerySet();
}
prSt = huedatabase.getUserDetails(conn);
rs1 = prSt.executeQuery();
while (rs1.next()) {
UserModel I=new UserModel();
I.setUsername(rs1.getString(2));
I.setId(rs1.getInt(1));
System.out.println(rs1.getString(2));
userlist.add(I);
}
rs1.close();
stmt.close();
return userlist;
}
}