public Builder toBuilder() { return newBuilder() .setIgnoreAuthzErrors(ignoreAuthzErrors.orElse(null)) .setDeleteUnavailableDatasets(deleteUnavailableDatasets.orElse(null)) .setAutoPromote(autoPromote.orElse(null)) .setForceUpdate(forceUpdate.orElse(null)); }
/** * Convert a {@link MetadataPolicy} to {@link DatasetRetrievalOptions}. * * @param policy metadata policy * @return dataset retrieval options */ public static DatasetRetrievalOptions fromMetadataPolicy(MetadataPolicy policy) { Preconditions.checkNotNull(policy.getAutoPromoteDatasets()); Preconditions.checkNotNull(policy.getDeleteUnavailableDatasets()); return newBuilder() .setAutoPromote(policy.getAutoPromoteDatasets()) .setDeleteUnavailableDatasets(policy.getDeleteUnavailableDatasets()) // not an option in policy (or UI) .setForceUpdate(false) // not an option in policy (or UI) .setIgnoreAuthzErrors(false) .build(); } }
@Override public CheckResult checkReadSignature( ByteString key, DatasetConfig oldConfig, DatasetRetrievalOptions retrievalOptions ) throws Exception { final SourceTableDefinition definition = getDataset( new NamespaceKey(oldConfig.getFullPathList()), oldConfig, retrievalOptions.toBuilder() .setIgnoreAuthzErrors(true) .build()); if(definition == null) { return CheckResult.DELETED; } return new CheckResult() { @Override public UpdateStatus getStatus() { return UpdateStatus.CHANGED; } @Override public SourceTableDefinition getDataset() { return definition; }}; }
public SourceTableDefinition getTable(NamespaceKey key, DatasetConfig datasetConfig, final boolean ignoreAuthErrors) throws Exception { DatasetRetrievalOptions retrievalOptions = getDefaultRetrievalOptions().toBuilder() .setIgnoreAuthzErrors(ignoreAuthErrors) .build(); try(AutoCloseableLock l = readLock()) { checkState(); if (datasetConfig != null && datasetConfig.getReadDefinition() != null) { final CheckResult res = plugin.checkReadSignature( datasetConfig.getReadDefinition().getReadSignature(), datasetConfig, retrievalOptions ); if (res.getStatus() == UpdateStatus.DELETED) { return null; } else if (res.getStatus() == UpdateStatus.CHANGED || res.getDataset() != null) { return res.getDataset(); } } return plugin.getDataset(key, datasetConfig, retrievalOptions); } }
SourceTableDefinition getDatasetWithOptions(NamespaceKey datasetPath, TableInstance instance, boolean ignoreAuthErrors, String user) throws Exception{ final FormatPluginConfig fconfig = optionExtractor.createConfigForTable(instance); return getDatasetWithFormat( datasetPath, null, fconfig, DatasetRetrievalOptions.DEFAULT.toBuilder() .setIgnoreAuthzErrors(ignoreAuthErrors) .build(), user ); }