/** * @param clusterInfo * the available partition/host/databases/port combinations in the cluster */ @Override public void setPartitioningInformation( PartitionDatabaseMeta[] clusterInfo ) { for ( int nr = 0; nr < clusterInfo.length; nr++ ) { PartitionDatabaseMeta meta = clusterInfo[nr]; attributes.put( ATTRIBUTE_CLUSTER_PARTITION_PREFIX + nr, Const.NVL( meta.getPartitionId(), "" ) ); attributes.put( ATTRIBUTE_CLUSTER_HOSTNAME_PREFIX + nr, Const.NVL( meta.getHostname(), "" ) ); attributes.put( ATTRIBUTE_CLUSTER_PORT_PREFIX + nr, Const.NVL( meta.getPort(), "" ) ); attributes.put( ATTRIBUTE_CLUSTER_DBNAME_PREFIX + nr, Const.NVL( meta.getDatabaseName(), "" ) ); attributes.put( ATTRIBUTE_CLUSTER_USERNAME_PREFIX + nr, Const.NVL( meta.getUsername(), "" ) ); attributes.put( ATTRIBUTE_CLUSTER_PASSWORD_PREFIX + nr, Const.NVL( Encr .encryptPasswordIfNotUsingVariables( meta.getPassword() ), "" ) ); } }
/** * @return the available partition/host/databases/port combinations in the cluster */ @Override public PartitionDatabaseMeta[] getPartitioningInformation() { // find the maximum number of attributes starting with ATTRIBUTE_CLUSTER_HOSTNAME_PREFIX int nr = 0; while ( ( attributes.getProperty( ATTRIBUTE_CLUSTER_HOSTNAME_PREFIX + nr ) ) != null ) { nr++; } PartitionDatabaseMeta[] clusterInfo = new PartitionDatabaseMeta[nr]; for ( nr = 0; nr < clusterInfo.length; nr++ ) { String partitionId = attributes.getProperty( ATTRIBUTE_CLUSTER_PARTITION_PREFIX + nr ); String hostname = attributes.getProperty( ATTRIBUTE_CLUSTER_HOSTNAME_PREFIX + nr ); String port = attributes.getProperty( ATTRIBUTE_CLUSTER_PORT_PREFIX + nr ); String dbName = attributes.getProperty( ATTRIBUTE_CLUSTER_DBNAME_PREFIX + nr ); String username = attributes.getProperty( ATTRIBUTE_CLUSTER_USERNAME_PREFIX + nr ); String password = attributes.getProperty( ATTRIBUTE_CLUSTER_PASSWORD_PREFIX + nr ); clusterInfo[nr] = new PartitionDatabaseMeta( partitionId, hostname, port, dbName ); clusterInfo[nr].setUsername( username ); clusterInfo[nr].setPassword( Encr.decryptPasswordOptionallyEncrypted( password ) ); } return clusterInfo; }
for ( int i = 0; i < partitioningInformation.length; i++ ) { try { db.connect( partitioningInformation[i].getPartitionId() ); report.append( BaseMessages.getString( PKG, "DatabaseMeta.report.ConnectionWithPartOk", databaseMeta .getName(), partitioningInformation[i].getPartitionId() ) + Const.CR ); } catch ( KettleException e ) { report.append( BaseMessages.getString( PKG, "DatabaseMeta.report.ConnectionWithPartError", databaseMeta.getName(), partitioningInformation[i].getPartitionId(), e.toString() ) + Const.CR ); report.append( Const.getStackTracker( e ) + Const.CR ); appendConnectionInfo( report, db.environmentSubstitute( partitioningInformation[i].getHostname() ), db .environmentSubstitute( partitioningInformation[i].getPort() ), db .environmentSubstitute( partitioningInformation[i].getDatabaseName() ) ); report.append( Const.CR );
hostname = environmentSubstitute( partition.getHostname() ); port = environmentSubstitute( partition.getPort() ); databaseName = environmentSubstitute( partition.getDatabaseName() ); } else { hostname = environmentSubstitute( getHostname() );
/** * Finds the partition metadata for the given partition iD * * @param partitionId * The partition ID to look for * @return the partition database metadata or null if nothing was found. */ public PartitionDatabaseMeta getPartitionMeta( String partitionId ) { PartitionDatabaseMeta[] partitionInfo = getPartitioningInformation(); for ( int i = 0; i < partitionInfo.length; i++ ) { if ( partitionInfo[i].getPartitionId().equals( partitionId ) ) { return partitionInfo[i]; } } return null; }
clusterUsername = partition.getUsername(); clusterPassword = Encr.decryptPasswordOptionallyEncrypted( partition.getPassword() );
wPartitions.add( new String[] { meta.getPartitionId() } );
row.addCellText( 0, Const.NVL( meta.getPartitionId(), "" ) ); row.addCellText( 1, Const.NVL( meta.getHostname(), "" ) ); row.addCellText( 2, Const.NVL( meta.getPort(), "" ) ); row.addCellText( 3, Const.NVL( meta.getDatabaseName(), "" ) ); row.addCellText( 4, Const.NVL( meta.getUsername(), "" ) ); row.addCellText( 5, Const.NVL( meta.getPassword(), "" ) );
String username = (String) values[i][4]; String password = (String) values[i][5]; PartitionDatabaseMeta pdm = new PartitionDatabaseMeta( partitionId, hostname, port, dbName ); pdm.setUsername( username ); pdm.setPassword( password ); pdms.add( pdm );
String partitionId = null; if ( partitioningInformation != null && partitioningInformation.length > 0 ) { partitionId = partitioningInformation[partitionNr].getPartitionId();