Ejemplo n.º 1
0
  public void updateStorageLocation(StorageLocation sl, Connection c) throws SQLException {
    PreparedStatement stmt = null;
    String password = m_encryptionManager.encryptPassword(sl.getPassword());
    try {
      stmt =
          c.prepareStatement(
              "update storage_location "
                  + "set server_name = ?, storage_directory = ?, "
                  + "mapped_storage_directory = ?, read_only = ?, accessible_remotely = ?, min_free_percent = ?, "
                  + "percent_free = ?, local_only_percent = ?, username = ?, password = ?, domain = ?, management_server = ? where id = ?");

      stmt.setString(1, sl.getServer());
      stmt.setString(2, sl.getStorageDirectory());
      stmt.setString(3, sl.getMappedStorageDirectory());
      stmt.setBoolean(4, sl.isReadOnly());
      stmt.setBoolean(5, sl.isAccessibleRemotely());
      stmt.setInt(6, sl.getMinFreePercent());
      stmt.setInt(7, sl.getPercentFree());
      stmt.setInt(8, sl.getLocalOnlyPercent());
      stmt.setString(9, sl.getUserName());
      stmt.setString(10, password);
      stmt.setString(11, sl.getDomain());
      stmt.setString(12, sl.getManagementServer());
      stmt.setInt(13, sl.getStorageLocationId());

      if (stmt.executeUpdate() != 1) {
        throw new SQLException(
            "Unable to update storage location record with id=" + sl.getStorageLocationId());
      }
      m_storageLocationCache.flush(sl.getStorageLocationId());

      if (m_partitionManager instanceof IPartitionManagerCacheControl) {
        IPartitionManagerCacheControl pmcc = (IPartitionManagerCacheControl) m_partitionManager;
        pmcc.RefreshByStorageLocationId(sl.getStorageLocationId());
      }
    } finally {
      if (stmt != null) stmt.close();
    }
  }