diff --git a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java index d24d5df9e20..b3ace278f73 100755 --- a/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java +++ b/server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java @@ -701,8 +701,8 @@ public class SnapshotManagerImpl implements SnapshotManager, SnapshotService, Ma if (snapshotCheck == null) { throw new InvalidParameterValueException("unable to find a snapshot with id " + snapshotId); } - if( !Status.BackedUp.equals(snapshotCheck.getStatus() ) ) { - throw new InvalidParameterValueException("Can't delete snapshotshot " + snapshotId + " due to it is not in BackedUp Status"); + if( !Status.BackedUp.equals(snapshotCheck.getStatus()) && !Status.Error.equals(snapshotCheck.getStatus())) { + throw new InvalidParameterValueException("Can't delete snapshotshot " + snapshotId + " due to it is not in BackedUp or Error Status"); } _accountMgr.checkAccess(caller, null, snapshotCheck); diff --git a/utils/src/com/cloud/utils/db/Transaction.java b/utils/src/com/cloud/utils/db/Transaction.java index 9b9713c8fbe..6af93b590fc 100755 --- a/utils/src/com/cloud/utils/db/Transaction.java +++ b/utils/src/com/cloud/utils/db/Transaction.java @@ -1031,22 +1031,27 @@ public class Transaction { s_usageDS = new PoolingDataSource(usagePoolableConnectionFactory.getPool()); // configure the simulator db - final int simulatorMaxActive = Integer.parseInt(dbProps.getProperty("db.simulator.maxActive")); - final int simulatorMaxIdle = Integer.parseInt(dbProps.getProperty("db.simulator.maxIdle")); - final long simulatorMaxWait = Long.parseLong(dbProps.getProperty("db.simulator.maxWait")); - final String simulatorUsername = dbProps.getProperty("db.simulator.username"); - final String simulatorPassword = dbProps.getProperty("db.simulator.password"); - final String simulatorHost = dbProps.getProperty("db.simulator.host"); - final int simulatorPort = Integer.parseInt(dbProps.getProperty("db.simulator.port")); - final String simulatorDbName = dbProps.getProperty("db.simulator.name"); - final boolean simulatorAutoReconnect = Boolean.parseBoolean(dbProps.getProperty("db.simulator.autoReconnect")); - final GenericObjectPool simulatorConnectionPool = new GenericObjectPool(null, simulatorMaxActive, GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION, - simulatorMaxWait, simulatorMaxIdle); - final ConnectionFactory simulatorConnectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://"+simulatorHost + ":" + simulatorPort + "/" + simulatorDbName + - "?autoReconnect="+simulatorAutoReconnect, simulatorUsername, simulatorPassword); - final PoolableConnectionFactory simulatorPoolableConnectionFactory = new PoolableConnectionFactory(simulatorConnectionFactory, simulatorConnectionPool, - new StackKeyedObjectPoolFactory(), null, false, false); - s_simulatorDS = new PoolingDataSource(simulatorPoolableConnectionFactory.getPool()); + try { + final int simulatorMaxActive = Integer.parseInt(dbProps.getProperty("db.simulator.maxActive")); + final int simulatorMaxIdle = Integer.parseInt(dbProps.getProperty("db.simulator.maxIdle")); + final long simulatorMaxWait = Long.parseLong(dbProps.getProperty("db.simulator.maxWait")); + final String simulatorUsername = dbProps.getProperty("db.simulator.username"); + final String simulatorPassword = dbProps.getProperty("db.simulator.password"); + final String simulatorHost = dbProps.getProperty("db.simulator.host"); + final int simulatorPort = Integer.parseInt(dbProps.getProperty("db.simulator.port")); + final String simulatorDbName = dbProps.getProperty("db.simulator.name"); + final boolean simulatorAutoReconnect = Boolean.parseBoolean(dbProps.getProperty("db.simulator.autoReconnect")); + final GenericObjectPool simulatorConnectionPool = new GenericObjectPool(null, simulatorMaxActive, GenericObjectPool.DEFAULT_WHEN_EXHAUSTED_ACTION, + simulatorMaxWait, simulatorMaxIdle); + final ConnectionFactory simulatorConnectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://"+simulatorHost + ":" + simulatorPort + "/" + simulatorDbName + + "?autoReconnect="+simulatorAutoReconnect, simulatorUsername, simulatorPassword); + final PoolableConnectionFactory simulatorPoolableConnectionFactory = new PoolableConnectionFactory(simulatorConnectionFactory, simulatorConnectionPool, + new StackKeyedObjectPoolFactory(), null, false, false); + s_simulatorDS = new PoolingDataSource(simulatorPoolableConnectionFactory.getPool()); + } catch (Exception e) { + s_logger.warn("Unable to load db for simulator"); + s_simulatorDS = null; + } } catch (final Exception e) { final GenericObjectPool connectionPool = new GenericObjectPool(null, 5); final ConnectionFactory connectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://localhost:3306/cloud", "cloud", "cloud");