Skip to content
This repository has been archived by the owner on Sep 27, 2023. It is now read-only.

docs(samples): add list configs #308

Merged
merged 3 commits into from Aug 31, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -31,7 +31,7 @@
// Sample to create a scheduled query
public class CreateScheduledQuery {

public static void main(String[] args) {
public static void main(String[] args) throws IOException {
// TODO(developer): Replace these variables before running the sample.
final String projectId = "MY_PROJECT_ID";
final String datasetId = "MY_DATASET_ID";
Expand All @@ -56,7 +56,8 @@ public static void main(String[] args) {
createScheduledQuery(projectId, transferConfig);
}

public static void createScheduledQuery(String projectId, TransferConfig transferConfig) {
public static void createScheduledQuery(String projectId, TransferConfig transferConfig)
throws IOException {
try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
ProjectName parent = ProjectName.of(projectId);
CreateTransferConfigRequest request =
Expand All @@ -65,9 +66,9 @@ public static void createScheduledQuery(String projectId, TransferConfig transfe
.setTransferConfig(transferConfig)
.build();
TransferConfig config = dataTransferServiceClient.createTransferConfig(request);
System.out.print("Scheduled query created successfully." + config.getName());
} catch (IOException | ApiException ex) {
System.out.print("Scheduled query was not created." + ex.toString());
System.out.println("\nScheduled query created successfully :" + config.getName());
} catch (ApiException ex) {
System.out.print("\nScheduled query was not created." + ex.toString());
}
}
}
Expand Down
Expand Up @@ -25,21 +25,21 @@
// Sample to delete a scheduled query
public class DeleteScheduledQuery {

public static void main(String[] args) {
public static void main(String[] args) throws IOException {
// TODO(developer): Replace these variables before running the sample.
// i.e projects/{project_id}/transferConfigs/{config_id}` or
// `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
String name = "MY_CONFIG_ID";
deleteScheduledQuery(name);
}

public static void deleteScheduledQuery(String name) {
public static void deleteScheduledQuery(String name) throws IOException {
try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
DeleteTransferConfigRequest request =
DeleteTransferConfigRequest.newBuilder().setName(name).build();
dataTransferServiceClient.deleteTransferConfig(request);
System.out.print("Scheduled query deleted successfully.");
} catch (IOException | ApiException ex) {
System.out.print("Scheduled query deleted successfully.\n");
} catch (ApiException ex) {
System.out.print("Scheduled query was not deleted." + ex.toString());
}
}
Expand Down
Expand Up @@ -39,7 +39,7 @@ public static void getTransferConfigInfo(String configId) throws IOException {
GetTransferConfigRequest request =
GetTransferConfigRequest.newBuilder().setName(configId).build();
TransferConfig info = dataTransferServiceClient.getTransferConfig(request);
System.out.printf("\nConfig info retrieved successfully.name : %s \n", info.getName());
System.out.print("Config info retrieved successfully." + info.getName() + "\n");
} catch (ApiException ex) {
System.out.print("config not found." + ex.toString());
}
Expand Down
@@ -0,0 +1,49 @@
/*
* Copyright 2020 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.example.bigquerydatatransfer;

// [START bigquerydatatransfer_list_configs]
import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferConfigsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import java.io.IOException;

// Sample to get list of transfer config
public class ListTransferConfigs {

public static void main(String[] args) throws IOException {
// TODO(developer): Replace these variables before running the sample.
final String projectId = "MY_PROJECT_ID";
listTransferConfigs(projectId);
}

public static void listTransferConfigs(String projectId) throws IOException {
try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
ProjectName parent = ProjectName.of(projectId);
ListTransferConfigsRequest request =
ListTransferConfigsRequest.newBuilder().setParent(parent.toString()).build();
dataTransferServiceClient
.listTransferConfigs(request)
.iterateAll()
.forEach(config -> System.out.print("Success! Config ID :" + config.getName() + "\n"));
} catch (ApiException ex) {
System.out.println("Config list not found due to error." + ex.toString());
}
}
}
// [END bigquerydatatransfer_list_configs]
Expand Up @@ -27,23 +27,28 @@
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class CreateScheduledQueryIT {

private static final Logger LOG = Logger.getLogger(CreateScheduledQueryIT.class.getName());
private BigQuery bigquery;
private ByteArrayOutputStream bout;
private String name;
private String displayName;
private String datasetName;
private PrintStream out;
private PrintStream originalPrintStream;

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

Expand All @@ -67,22 +72,27 @@ public void setUp() {
// create a temporary dataset
bigquery = BigQueryOptions.getDefaultInstance().getService();
bigquery.create(DatasetInfo.of(datasetName));

bout = new ByteArrayOutputStream();
out = new PrintStream(bout);
originalPrintStream = System.out;
System.setOut(out);
}

@After
public void tearDown() {
public void tearDown() throws IOException {
// Clean up
DeleteScheduledQuery.deleteScheduledQuery(name);
// delete a temporary dataset
bigquery.delete(datasetName, BigQuery.DatasetDeleteOption.deleteContents());
System.setOut(null);
// restores print statements in the original method
System.out.flush();
System.setOut(originalPrintStream);
LOG.log(Level.INFO, bout.toString());
}

@Test
public void testCreateScheduledQuery() {
public void testCreateScheduledQuery() throws IOException {
String query =
"SELECT CURRENT_TIMESTAMP() as current_time, @run_time as intended_run_time, "
+ "@run_date as intended_run_date, 17 as some_integer";
Expand All @@ -106,7 +116,7 @@ public void testCreateScheduledQuery() {
.build();
CreateScheduledQuery.createScheduledQuery(PROJECT_ID, transferConfig);
String result = bout.toString();
name = result.substring(result.indexOf(".") + 1);
assertThat(result).contains("Scheduled query created successfully.");
name = result.substring(result.indexOf(":") + 1, result.length() - 1);
assertThat(result).contains("Scheduled query created successfully");
}
}
Expand Up @@ -22,27 +22,35 @@
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.DatasetInfo;
import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class DeleteScheduledQueryIT {

private static final Logger LOG = Logger.getLogger(DeleteScheduledQueryIT.class.getName());
private BigQuery bigquery;
private ByteArrayOutputStream bout;
private String name;
private String displayName;
private String datasetName;
private PrintStream out;
private PrintStream originalPrintStream;

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

Expand All @@ -60,9 +68,10 @@ public static void checkRequirements() {
}

@Before
public void setUp() {
public void setUp() throws IOException {
bout = new ByteArrayOutputStream();
out = new PrintStream(bout);
originalPrintStream = System.out;
System.setOut(out);

displayName = "MY_SCHEDULE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8);
Expand Down Expand Up @@ -92,24 +101,30 @@ public void setUp() {
.setParams(Struct.newBuilder().putAllFields(params).build())
.setSchedule("every 24 hours")
.build();
CreateScheduledQuery.createScheduledQuery(PROJECT_ID, transferConfig);
String result = bout.toString();
name = result.substring(result.indexOf(".") + 1);

bout = new ByteArrayOutputStream();
out = new PrintStream(bout);
System.setOut(out);
try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
ProjectName parent = ProjectName.of(PROJECT_ID);
CreateTransferConfigRequest request =
CreateTransferConfigRequest.newBuilder()
.setParent(parent.toString())
.setTransferConfig(transferConfig)
.build();
name = dataTransferServiceClient.createTransferConfig(request).getName();
System.out.println("\nScheduled query created successfully :" + name);
}
}

@After
public void tearDown() {
// delete a temporary dataset
bigquery.delete(datasetName, BigQuery.DatasetDeleteOption.deleteContents());
System.setOut(null);
// restores print statements in the original method
System.out.flush();
System.setOut(originalPrintStream);
LOG.log(Level.INFO, bout.toString());
}

@Test
public void testDeleteScheduledQuery() {
public void testDeleteScheduledQuery() throws IOException {
// delete scheduled query that was just created
DeleteScheduledQuery.deleteScheduledQuery(name);
assertThat(bout.toString()).contains("Scheduled query deleted successfully.");
Expand Down
Expand Up @@ -22,6 +22,9 @@
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.DatasetInfo;
import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
Expand All @@ -31,13 +34,16 @@
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class GetTransferConfigInfoIT {

private static final Logger LOG = Logger.getLogger(GetTransferConfigInfoIT.class.getName());
private BigQuery bigquery;
private ByteArrayOutputStream bout;
private String name;
Expand All @@ -62,19 +68,17 @@ public static void checkRequirements() {
}

@Before
public void setUp() {
public void setUp() throws IOException {
bout = new ByteArrayOutputStream();
out = new PrintStream(bout);
originalPrintStream = System.out;
System.setOut(out);

displayName = "MY_SCHEDULE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8);
datasetName = "MY_DATASET_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8);

// create a temporary dataset
bigquery = BigQueryOptions.getDefaultInstance().getService();
bigquery.create(DatasetInfo.of(datasetName));

// create a scheduled query
String query =
"SELECT CURRENT_TIMESTAMP() as current_time, @run_time as intended_run_time, "
Expand All @@ -96,22 +100,29 @@ public void setUp() {
.setParams(Struct.newBuilder().putAllFields(params).build())
.setSchedule("every 24 hours")
.build();
CreateScheduledQuery.createScheduledQuery(PROJECT_ID, transferConfig);
String result = bout.toString();
name = result.substring(result.indexOf(".") + 1);
try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
ProjectName parent = ProjectName.of(PROJECT_ID);
CreateTransferConfigRequest request =
CreateTransferConfigRequest.newBuilder()
.setParent(parent.toString())
.setTransferConfig(transferConfig)
.build();
name = dataTransferServiceClient.createTransferConfig(request).getName();
System.out.println("\nScheduled query created successfully :" + name);
}
}

@After
public void tearDown() {
public void tearDown() throws IOException {
// delete scheduled query that was just created
DeleteScheduledQuery.deleteScheduledQuery(name);
// delete a temporary dataset
bigquery.delete(datasetName, BigQuery.DatasetDeleteOption.deleteContents());

// restores print statements in the original method
System.out.flush();
System.setOut(originalPrintStream);
String output = new String(bout.toByteArray());
System.out.println(output);
LOG.log(Level.INFO, bout.toString());
}

@Test
Expand Down