Skip to content

Commit

Permalink
docs(samples): fix GrantViewAccess sample IT failure
Browse files Browse the repository at this point in the history
Fixes issue: googleapis#1806
  • Loading branch information
stephaniewang526 committed Jan 31, 2022
1 parent f2cfc8b commit c552746
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import com.google.cloud.bigquery.DatasetId;
import com.google.cloud.bigquery.Table;
import java.util.ArrayList;
import java.util.List;
Expand All @@ -44,8 +43,8 @@ public static void grantViewAccess(String srcDatasetId, String viewDatasetId, St
// once, and can be reused for multiple requests.
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

Dataset srcDataset = bigquery.getDataset(DatasetId.of(srcDatasetId));
Dataset viewDataset = bigquery.getDataset(DatasetId.of(viewDatasetId));
Dataset srcDataset = bigquery.getDataset(srcDatasetId);
Dataset viewDataset = bigquery.getDataset(viewDatasetId);
Table view = viewDataset.get(viewId);
// First, we'll add a group to the ACL for the dataset containing the view. This will allow
// users within that group to query the view, but they must have direct access to any tables
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ public class GrantViewAccessIT {

private final Logger log = Logger.getLogger(this.getClass().getName());
private String datasetName;
private String viewDatasetName;
private String tableName;
private String viewName;
private ByteArrayOutputStream bout;
private PrintStream out;
private PrintStream originalPrintStream;

private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT");
private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME");

private static String requireEnvVar(String varName) {
String value = System.getenv(varName);
Expand All @@ -56,7 +56,6 @@ private static String requireEnvVar(String varName) {
@BeforeClass
public static void checkRequirements() {
requireEnvVar("GOOGLE_CLOUD_PROJECT");
requireEnvVar("BIGQUERY_DATASET_NAME");
}

@Before
Expand All @@ -68,30 +67,32 @@ public void setUp() {

// create a temporary dataset, table and view to be deleted.
datasetName = "MY_DATASET_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8);
viewDatasetName = "MY_VIEW_DATASET_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8);
tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8);
viewName = "MY_VIEW_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8);

CreateDataset.createDataset(datasetName);
CreateDataset.createDataset(viewDatasetName);

Schema schema =
Schema.of(
Field.of("timestampField", StandardSQLTypeName.TIMESTAMP),
Field.of("stringField", StandardSQLTypeName.STRING),
Field.of("booleanField", StandardSQLTypeName.BOOL));
CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema);
CreateTable.createTable(viewDatasetName, tableName, schema);

String query =
String.format(
"SELECT timestampField, stringField, booleanField FROM %s.%s",
BIGQUERY_DATASET_NAME, tableName);
CreateView.createView(BIGQUERY_DATASET_NAME, viewName, query);
viewDatasetName, tableName);
CreateView.createView(viewDatasetName, viewName, query);
}

@After
public void tearDown() {
// Clean up
DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName);
DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName);
DeleteTable.deleteTable(viewDatasetName, viewName);
DeleteTable.deleteTable(viewDatasetName, tableName);
DeleteDataset.deleteDataset(PROJECT_ID, datasetName);
// restores print statements in the original method
System.out.flush();
Expand All @@ -101,7 +102,7 @@ public void tearDown() {

@Test
public void testGrantViewAccess() {
GrantViewAccess.grantViewAccess(datasetName, BIGQUERY_DATASET_NAME, viewName);
GrantViewAccess.grantViewAccess(datasetName, viewDatasetName, viewName);
assertThat(bout.toString()).contains("Grant view access successfully");
}
}

0 comments on commit c552746

Please sign in to comment.