All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nachc.cad.cosmos.util.configuration.ConfigurationUtil Maven / Gradle / Ivy

package org.nachc.cad.cosmos.util.configuration;

import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;

import org.nachc.cad.cosmos.util.connection.CosmosConnections;
import org.nachc.cad.cosmos.util.databricks.database.DatabricksFileUtilFactory;
import org.yaorma.database.Data;
import org.yaorma.database.Database;
import org.yaorma.database.Row;

import com.nach.core.util.databricks.database.DatabricksDbUtil;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class ConfigurationUtil {

	public static String getDatabricksFileStoreInstance() {
		log.info("Getting files");
		List files = DatabricksFileUtilFactory.get().listFileNames("/FileStore/meta/host");
		log.info("Got files");
		if (files.size() == 0) {
			return "Could not confirm instance: meta file not found.";
		}
		if (files.size() > 1) {
			return "Could not confirm instance: To many meta files.";
		}
		return files.get(0);
	}

	public static String getDatabricksSqlInstance(CosmosConnections conns) {
		Data data = DatabricksDbUtil.showSchemas(conns);
		ArrayList matches = new ArrayList();
		log.info("Got data.");
		for (Row row : data) {
			String namespace = row.get("namespace");
			if (namespace == null) {
				namespace = row.get("databasename");
			}
			if (namespace != null && namespace.startsWith("this_is_")) {
				matches.add(namespace);
			}
		}
		log.info("Got data");
		if (matches.size() == 0) {
			return "Could not confirm instance: no matching records found.";
		}
		if (matches.size() == 0) {
			return "Could not confirm instance: no matching records found.";
		}
		if (matches.size() > 1) {
			return "Could not confirm instance: to many matching records.";
		}
		return matches.get(0);
	}

	public static String getMySqlInstance(Connection mySqlConn) {
		String sqlString = "select * from information_schema.schemata where lower(schema_name) like 'this_is_%'";
		Data data = Database.query(sqlString, mySqlConn);
		log.info("Got data");
		if (data.size() == 0) {
			return "Could not confirm instance: no matching records found.";
		}
		if (data.size() == 0) {
			return "Could not confirm instance: no matching records found.";
		}
		if (data.size() > 1) {
			return "Could not confirm instance: to many matching records.";
		}
		return data.get(0).get("schemaName");
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy