/*
* Copyright (C) 2013 Intel Corporation
* All rights reserved.
*/
package com.intel.mtwilson.setup.tasks;
import com.intel.mtwilson.My;
import com.intel.mtwilson.setup.LocalSetupTask;
import java.sql.Connection;
import java.sql.Statement;
/**
*
* @author jbuhacoff
*/
public class ConfigureDatabase extends LocalSetupTask {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ConfigureDatabase.class);
private String databaseHost = "127.0.0.1";
private String databasePort = "5432";
private String databaseDriver = "postgresql";
private String databaseUsername;
private String databasePassword;
private String databaseUrl;
public String getDatabaseHost() {
return databaseHost;
}
public String getDatabasePort() {
return databasePort;
}
public String getDatabaseDriver() {
return databaseDriver;
}
public String getDatabaseUsername() {
return databaseUsername;
}
public String getDatabasePassword() {
return databasePassword;
}
public String getDatabaseUrl() {
return databaseUrl;
}
@Override
protected void configure() throws Exception {
databaseDriver = My.jdbc().driver();
if( databaseDriver == null ) {
configuration("Database driver not configured");
}
else {
log.debug("Database driver: {}", databaseDriver);
}
databaseUrl = My.jdbc().url();
if( databaseUrl == null ) {
configuration("Database URL not configured");
}
else {
log.debug("Database URL: {}", databaseUrl);
}
getConfiguration().setString("mtwilson.db.host", databaseHost);
getConfiguration().setString("mtwilson.db.port", databasePort);
getConfiguration().setString("mtwilson.db.driver", databaseDriver);
getConfiguration().setString("mtwilson.db.username", databaseUsername);
getConfiguration().setString("mtwilson.db.password", databasePassword);
// getConfiguration().setString("mtwilson.db.url", databaseUrl);
}
@Override
protected void validate() throws Exception {
try (Connection c = My.jdbc().connection()) {
try (Statement s = c.createStatement()) {
s.executeQuery("SELECT 1");
} catch (Exception ex) {
log.error("Error creating select statement",ex);
validation("Error creating select statement");
}
} catch(Exception e) {
log.error("Cannot connect to database", e);
validation("Cannot connect to database");
}
}
@Override
protected void execute() throws Exception {
// we cannot install a database from here... nothing to do.
// but a separate derby configuration task maybe would create a local derby db??
}
}