use of org.opennms.core.db.install.SimpleDataSource in project opennms by OpenNMS.
the class TemporaryDatabasePostgreSQL method setupDatabase.
public void setupDatabase() throws TemporaryDatabaseException {
try {
setDataSource(new SimpleDataSource(m_driver, m_url + getTestDatabase(), m_adminUser, m_adminPassword));
setAdminDataSource(new SimpleDataSource(m_driver, m_url + "template1", m_adminUser, m_adminPassword));
m_xaDataSource = new PGXADataSource();
m_xaDataSource.setServerName("localhost");
m_xaDataSource.setDatabaseName(getTestDatabase());
m_xaDataSource.setUser(m_adminUser);
m_xaDataSource.setPassword(m_adminPassword);
m_adminXaDataSource = new PGXADataSource();
m_adminXaDataSource.setServerName("localhost");
m_adminXaDataSource.setDatabaseName("template1");
m_adminXaDataSource.setUser(m_adminUser);
m_adminXaDataSource.setPassword(m_adminPassword);
} catch (final ClassNotFoundException e) {
throw new TemporaryDatabaseException("Failed to initialize driver " + m_driver, e);
}
if (!m_useExisting) {
// to the template1 database
synchronized (TEMPLATE1_MUTEX) {
createTestDatabase();
}
}
setJdbcTemplate(new JdbcTemplate(this));
// Test connecting to test database and ensuring we can do a basic query
try {
getJdbcTemplate().queryForObject("SELECT now()", Date.class);
} catch (DataAccessException e) {
throw new TemporaryDatabaseException("Error occurred while testing database is connectable: " + e.getMessage(), e);
}
if (!m_useExisting) {
setupBlame(getJdbcTemplate(), getBlame());
}
}
use of org.opennms.core.db.install.SimpleDataSource in project opennms by OpenNMS.
the class Installer method install.
/**
* <p>install</p>
*
* @param argv an array of {@link java.lang.String} objects.
* @throws java.lang.Exception if any.
*/
public void install(final String[] argv) throws Exception {
printHeader();
loadProperties();
parseArguments(argv);
final boolean doDatabase = (m_update_database || m_do_inserts || m_update_iplike || m_update_unicode || m_fix_constraint);
if (!doDatabase && m_tomcat_conf == null && !m_install_webapp && m_library_search_path == null) {
usage(options, m_commandLine, "Nothing to do. Use -h for help.", null);
System.exit(1);
}
if (doDatabase) {
final File cfgFile = ConfigFileConstants.getFile(ConfigFileConstants.OPENNMS_DATASOURCE_CONFIG_FILE_NAME);
InputStream is = new FileInputStream(cfgFile);
final JdbcDataSource adminDsConfig = new DataSourceConfigurationFactory(is).getJdbcDataSource(ADMIN_DATA_SOURCE_NAME);
final DataSource adminDs = new SimpleDataSource(adminDsConfig);
is.close();
is = new FileInputStream(cfgFile);
final JdbcDataSource dsConfig = new DataSourceConfigurationFactory(is).getJdbcDataSource(OPENNMS_DATA_SOURCE_NAME);
final DataSource ds = new SimpleDataSource(dsConfig);
is.close();
m_installerDb.setForce(m_force);
m_installerDb.setIgnoreNotNull(m_ignore_not_null);
m_installerDb.setNoRevert(m_do_not_revert);
m_installerDb.setAdminDataSource(adminDs);
m_installerDb.setPostgresOpennmsUser(dsConfig.getUserName());
m_installerDb.setDataSource(ds);
m_installerDb.setDatabaseName(dsConfig.getDatabaseName());
m_migrator.setDataSource(ds);
m_migrator.setAdminDataSource(adminDs);
m_migrator.setValidateDatabaseVersion(!m_ignore_database_version);
m_migration.setDatabaseName(dsConfig.getDatabaseName());
m_migration.setSchemaName(dsConfig.getSchemaName());
m_migration.setAdminUser(adminDsConfig.getUserName());
m_migration.setAdminPassword(adminDsConfig.getPassword());
m_migration.setDatabaseUser(dsConfig.getUserName());
m_migration.setDatabasePassword(dsConfig.getPassword());
m_migration.setChangeLog("changelog.xml");
}
checkIPv6();
/*
* Make sure we can execute the rrdtool binary when the
* JniRrdStrategy is enabled.
*/
boolean using_jni_rrd_strategy = System.getProperty("org.opennms.rrd.strategyClass", "").contains("JniRrdStrategy");
if (using_jni_rrd_strategy) {
File rrd_binary = new File(System.getProperty("rrd.binary"));
if (!rrd_binary.canExecute()) {
throw new Exception("Cannot execute the rrdtool binary '" + rrd_binary.getAbsolutePath() + "' required by the current RRD strategy. Update the rrd.binary field in opennms.properties appropriately.");
}
}
if (!Boolean.getBoolean("skip-native")) {
String icmp_path = findLibrary("jicmp", m_library_search_path, false);
String icmp6_path = findLibrary("jicmp6", m_library_search_path, false);
String jrrd_path = findLibrary("jrrd", m_library_search_path, false);
String jrrd2_path = findLibrary("jrrd2", m_library_search_path, false);
writeLibraryConfig(icmp_path, icmp6_path, jrrd_path, jrrd2_path);
}
/*
* Everything needs to use the administrative data source until we
* verify that the opennms database is created below (and where we
* create it if it doesn't already exist).
*/
verifyFilesAndDirectories();
if (m_install_webapp) {
checkWebappOldOpennmsDir();
checkServerXmlOldOpennmsContext();
}
if (m_update_database || m_fix_constraint) {
// OLDINSTALL m_installerDb.readTables();
}
m_installerDb.disconnect();
if (doDatabase) {
m_migrator.validateDatabaseVersion();
System.out.println(String.format("* using '%s' as the PostgreSQL user for OpenNMS", m_migration.getAdminUser()));
System.out.println(String.format("* using '%s' as the PostgreSQL database name for OpenNMS", m_migration.getDatabaseName()));
if (m_migration.getSchemaName() != null) {
System.out.println(String.format("* using '%s' as the PostgreSQL schema name for OpenNMS", m_migration.getSchemaName()));
}
}
if (m_update_database) {
m_migrator.prepareDatabase(m_migration);
}
if (doDatabase) {
m_installerDb.checkUnicode();
}
handleConfigurationChanges();
final GenericApplicationContext context = new GenericApplicationContext();
context.setClassLoader(Bootstrap.loadClasses(new File(m_opennms_home), true));
if (m_update_database) {
m_installerDb.databaseSetUser();
m_installerDb.disconnect();
for (final Resource resource : context.getResources("classpath*:/changelog.xml")) {
System.out.println("- Running migration for changelog: " + resource.getDescription());
m_migration.setAccessor(new ExistingResourceAccessor(resource));
m_migrator.migrate(m_migration);
}
}
if (m_update_unicode) {
System.out.println("WARNING: the -U option is deprecated, it does nothing now");
}
if (m_do_vacuum) {
m_installerDb.vacuumDatabase(m_do_full_vacuum);
}
if (m_install_webapp) {
installWebApp();
}
if (m_tomcat_conf != null) {
updateTomcatConf();
}
if (m_update_iplike) {
m_installerDb.updateIplike();
}
if (m_update_database && m_remove_database) {
m_installerDb.disconnect();
m_installerDb.databaseRemoveDB();
}
if (doDatabase) {
m_installerDb.disconnect();
}
if (m_update_database) {
createConfiguredFile();
}
System.out.println();
System.out.println("Installer completed successfully!");
if (!m_skip_upgrade_tools) {
System.setProperty("opennms.manager.class", "org.opennms.upgrade.support.Upgrade");
Bootstrap.main(new String[] {});
}
context.close();
}
use of org.opennms.core.db.install.SimpleDataSource in project opennms by OpenNMS.
the class TemporaryDatabaseITCase method setUp.
@Before
public void setUp() throws Exception {
// Reset any previous test failures
setTestFailureThrowable(null);
TemporaryDatabasePostgreSQL.failIfUnitTest();
m_leaveDatabase = "true".equals(System.getProperty(LEAVE_PROPERTY));
m_leaveDatabaseOnFailure = "true".equals(System.getProperty(LEAVE_ON_FAILURE_PROPERTY));
setTestDatabase(getTestDatabaseName());
setDataSource(new SimpleDataSource(m_driver, m_url + getTestDatabase(), m_adminUser, m_adminPassword));
setAdminDataSource(new SimpleDataSource(m_driver, m_url + "template1", m_adminUser, m_adminPassword));
createTestDatabase();
generateBlame();
// Test connecting to test database.
getConnection().close();
m_initialized = true;
}
use of org.opennms.core.db.install.SimpleDataSource in project opennms by OpenNMS.
the class AbstractOnmsUpgrade method initializeDatasource.
/**
* Initializes the data source.
*
* @throws OnmsUpgradeException the OpenNMS upgrade exception
*/
protected void initializeDatasource() throws OnmsUpgradeException {
if (dataSource != null) {
return;
}
try {
final File cfgFile = ConfigFileConstants.getFile(ConfigFileConstants.OPENNMS_DATASOURCE_CONFIG_FILE_NAME);
final DataSourceConfiguration dsc = JaxbUtils.unmarshal(DataSourceConfiguration.class, cfgFile);
for (JdbcDataSource jds : dsc.getJdbcDataSourceCollection()) {
if (jds.getName().equals("opennms")) {
dataSource = new SimpleDataSource(jds);
DataSourceFactory.setInstance(dataSource);
}
}
if (dataSource == null) {
throw new OnmsUpgradeException("Can't find theOpenNMS Database settings.");
}
} catch (Exception e) {
throw new OnmsUpgradeException("Can't connect to OpenNMS Database because " + e.getMessage(), e);
}
}
Aggregations