Skip to content

docs: samples and tests for instance APIs. #2768

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 37 commits into from
Jan 12, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
edc5bbf
fix: prevent illegal negative timeout values into thread sleep() meth…
arpan14 Feb 6, 2023
49a85df
Merge pull request #1 from arpan14/retryerror
arpan14 Feb 8, 2023
4cd497b
Fixing lint issues.
arpan14 Feb 8, 2023
4a6aa8e
Merge branch 'googleapis:main' into main
arpan14 Mar 13, 2023
b2aa09d
Merge branch 'googleapis:main' into main
arpan14 Mar 15, 2023
8d6d71e
Merge branch 'googleapis:main' into main
arpan14 May 9, 2023
77e6e7d
Merge branch 'googleapis:main' into main
arpan14 Jul 17, 2023
e8b7fad
Merge branch 'googleapis:main' into main
arpan14 Jul 25, 2023
8aa84e1
Merge branch 'googleapis:main' into main
arpan14 Oct 10, 2023
57fd405
Merge branch 'googleapis:main' into main
arpan14 Oct 27, 2023
1253563
Merge branch 'googleapis:main' into main
arpan14 Nov 20, 2023
d4f6a60
Merge branch 'googleapis:main' into main
arpan14 Dec 15, 2023
3efaf7c
Merge branch 'googleapis:main' into main
arpan14 Dec 26, 2023
f41b39f
Merge branch 'googleapis:main' into main
arpan14 Jan 3, 2024
82a16e9
chore: adding a few samples with auto-gen clients.
arpan14 Nov 29, 2023
c187621
chore: adding integration tests for samples.
arpan14 Dec 18, 2023
360d5db
chore: fixing the end-point for staging.
arpan14 Dec 21, 2023
a12fb43
chore: modified test for CreateDatabaseWithDefaultLeaderSample.
arpan14 Dec 21, 2023
f144f42
chore: adding sample and integration test for CreateInstanceSample.
arpan14 Dec 21, 2023
091414c
chore: adding license headers.
arpan14 Dec 21, 2023
988fd7a
chore: fix lint errors.
arpan14 Dec 21, 2023
922f47b
chore: rename file and add sample tags.
arpan14 Dec 23, 2023
0bf6f87
chore: address comments.
arpan14 Dec 23, 2023
396419d
Update samples/snippets/src/main/java/com/example/spanner/v2/CreateDa…
arpan14 Dec 23, 2023
eb997ae
chore: rewrite CreateInstanceConfigSample.
arpan14 Dec 25, 2023
b54bb0f
chore: rewrite instance API samples.
arpan14 Dec 25, 2023
fa0aa1e
chore: removed previous files and adding new integration test.
arpan14 Dec 26, 2023
78beaac
chore: changing instance integration tests.
arpan14 Dec 26, 2023
7fb407b
chore: add samples/tests for instance creation with processing units …
arpan14 Dec 26, 2023
c602c5b
chore:rename directory.
arpan14 Jan 3, 2024
be2b503
chore: minor fixes.
arpan14 Jan 4, 2024
335b465
chore: address comments.
arpan14 Jan 11, 2024
97ee485
chore: fix lint errors.
arpan14 Jan 11, 2024
fbf4df5
chore: fix lint errors.
arpan14 Jan 11, 2024
1b6a011
🦉 Updates from OwlBot post-processor
gcf-owl-bot[bot] Jan 11, 2024
a975ecf
chore: close client resources.
arpan14 Jan 11, 2024
87bea00
chore: fix lint issues.
arpan14 Jan 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore: rewrite instance API samples.
  • Loading branch information
arpan14 committed Jan 3, 2024
commit b54bb0f62c873f4c31cfad78a3568fccf8385218
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,28 @@
//[START spanner_create_instance_with_processing_units]

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.spanner.Instance;
import com.google.cloud.spanner.InstanceAdminClient;
import com.google.cloud.spanner.InstanceConfigId;
import com.google.cloud.spanner.InstanceId;
import com.google.cloud.spanner.InstanceInfo;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerOptions;
import com.google.cloud.spanner.admin.instance.v1.InstanceAdminClient;
import com.google.cloud.spanner.admin.instance.v1.InstanceAdminSettings;
import com.google.spanner.admin.instance.v1.CreateInstanceMetadata;
import com.google.spanner.admin.instance.v1.CreateInstanceRequest;
import com.google.spanner.admin.instance.v1.Instance;
import com.google.spanner.admin.instance.v1.InstanceConfigName;
import com.google.spanner.admin.instance.v1.ProjectName;
import java.io.IOException;

class CreateInstanceWithProcessingUnitsExample {

static void createInstance() {
static void createInstance() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "my-project";
String instanceId = "my-instance";
createInstance(projectId, instanceId);
}

static void createInstance(String projectId, String instanceId) {
Spanner spanner = SpannerOptions.newBuilder().setProjectId(projectId).build().getService();
InstanceAdminClient instanceAdminClient = spanner.getInstanceAdminClient();
static void createInstance(String projectId, String instanceId) throws IOException {
InstanceAdminSettings instanceAdminSettings =
InstanceAdminSettings.newBuilder().setQuotaProjectId(projectId).build();
InstanceAdminClient instanceAdminClient = InstanceAdminClient.create(instanceAdminSettings);

// Set Instance configuration.
String configId = "regional-us-central1";
Expand All @@ -50,27 +51,33 @@ static void createInstance(String projectId, String instanceId) {
try {
// Creates a new instance
System.out.printf("Creating instance %s.%n", instanceId);
OperationFuture<Instance, CreateInstanceMetadata> operation =
instanceAdminClient.createInstance(InstanceInfo
.newBuilder(InstanceId.of(projectId, instanceId))
.setInstanceConfigId(InstanceConfigId.of(projectId, configId))
.setProcessingUnits(processingUnits)
Instance instance =
Instance.newBuilder()
.setDisplayName(displayName)
.build());
.setProcessingUnits(processingUnits)
.setConfig(
InstanceConfigName.of(projectId, configId).toString())
.build();
OperationFuture<Instance, CreateInstanceMetadata> operation =
instanceAdminClient.createInstanceAsync(
CreateInstanceRequest.newBuilder()
.setParent(ProjectName.of(projectId).toString())
.setInstanceId(instanceId)
.setInstance(instance)
.build());

// Wait for the createInstance operation to finish.
System.out.printf("Waiting for operation on %s to complete...%n", instanceId);
Instance createdInstance = operation.get();

System.out.printf("Created instance %s.%n", createdInstance.getId().getInstance());
System.out.printf("Created instance %s.%n", createdInstance.getName());

Instance instance = instanceAdminClient.getInstance(instanceId);
System.out.printf("Instance %s has %d processing units.%n", instance.getId().getInstance(),
instance.getProcessingUnits());
Instance instanceResult = instanceAdminClient.getInstance(instanceId);
System.out.printf("Instance %s has %d processing units.%n", instanceResult.getName(),
instanceResult.getProcessingUnits());
} catch (Exception e) {
System.out.printf("Error: %s.%n", e.getMessage());
}
spanner.close();
}
}
//[END spanner_create_instance_with_processing_units]
Original file line number Diff line number Diff line change
Expand Up @@ -17,32 +17,35 @@
package com.example.spanner.v2;

// [START spanner_delete_instance_config]
import com.google.cloud.spanner.InstanceAdminClient;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerException;
import com.google.cloud.spanner.SpannerOptions;
import com.google.cloud.spanner.admin.instance.v1.InstanceAdminClient;
import com.google.cloud.spanner.admin.instance.v1.InstanceAdminSettings;
import com.google.spanner.admin.instance.v1.DeleteInstanceConfigRequest;
import java.io.IOException;

class DeleteInstanceConfigSample {
static void deleteInstanceConfig() {
static void deleteInstanceConfig() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "my-project";
String instanceConfigId = "custom-user-config";
String instanceConfigId = "projects/my-project/instanceConfigs/custom-user-config";
deleteInstanceConfig(projectId, instanceConfigId);
}

static void deleteInstanceConfig(String projectId, String instanceConfigId) {
try (Spanner spanner =
SpannerOptions.newBuilder().setProjectId(projectId).build().getService()) {
final InstanceAdminClient instanceAdminClient = spanner.getInstanceAdminClient();
try {
System.out.printf("Deleting %s...\n", instanceConfigId);
instanceAdminClient.deleteInstanceConfig(instanceConfigId);
System.out.printf("Deleted instance configuration %s\n", instanceConfigId);
} catch (SpannerException e) {
System.out.printf(
"Error: Deleting instance configuration %s failed with error message: %s\n",
instanceConfigId, e.getMessage());
}
static void deleteInstanceConfig(String projectId, String instanceConfigId) throws IOException {
final InstanceAdminSettings instanceAdminSettings =
InstanceAdminSettings.newBuilder().setQuotaProjectId(projectId).build();
final InstanceAdminClient instanceAdminClient = InstanceAdminClient.create(instanceAdminSettings);
final DeleteInstanceConfigRequest request =
DeleteInstanceConfigRequest.newBuilder().setName(instanceConfigId).build();

try {
System.out.printf("Deleting %s...\n", instanceConfigId);
instanceAdminClient.deleteInstanceConfig(request);
System.out.printf("Deleted instance configuration %s\n", instanceConfigId);
} catch (SpannerException e) {
System.out.printf(
"Error: Deleting instance configuration %s failed with error message: %s\n",
instanceConfigId, e.getMessage());
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,37 +18,32 @@

//[START spanner_get_instance_config]

import com.google.cloud.spanner.InstanceAdminClient;
import com.google.cloud.spanner.InstanceConfig;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerOptions;
import com.google.cloud.spanner.admin.instance.v1.InstanceAdminClient;
import com.google.cloud.spanner.admin.instance.v1.InstanceAdminSettings;
import com.google.spanner.admin.instance.v1.InstanceConfig;
import java.io.IOException;

public class GetInstanceConfigSample {

static void getInstanceConfig() {
static void getInstanceConfig() throws IOException {
// TODO(developer): Replace these variables before running the sample.
final String projectId = "my-project";
final String instanceConfigName = "nam6";
getInstanceConfig(projectId, instanceConfigName);
}

static void getInstanceConfig(String projectId, String instanceConfigName) {
try (Spanner spanner = SpannerOptions
.newBuilder()
.setProjectId(projectId)
.build()
.getService()) {
final InstanceAdminClient instanceAdminClient = spanner.getInstanceAdminClient();

final InstanceConfig instanceConfig = instanceAdminClient
.getInstanceConfig(instanceConfigName);

System.out.printf(
"Available leader options for instance config %s: %s%n",
instanceConfig.getId(),
instanceConfig.getLeaderOptions()
);
}
static void getInstanceConfig(String projectId, String instanceConfigName) throws IOException {
final InstanceAdminSettings instanceAdminSettings =
InstanceAdminSettings.newBuilder().setQuotaProjectId(projectId).build();
final InstanceAdminClient instanceAdminClient = InstanceAdminClient.create(instanceAdminSettings);

final InstanceConfig instanceConfig = instanceAdminClient.getInstanceConfig(instanceConfigName);

System.out.printf(
"Available leader options for instance config %s: %s%n",
instanceConfig.getName(),
instanceConfig.getLeaderOptionsList()
);
}
}
//[END spanner_get_instance_config]
Original file line number Diff line number Diff line change
Expand Up @@ -17,49 +17,47 @@
package com.example.spanner.v2;

// [START spanner_list_instance_config_operations]
import com.google.cloud.spanner.InstanceAdminClient;
import com.google.cloud.spanner.Options;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerOptions;
import com.google.cloud.spanner.admin.instance.v1.InstanceAdminClient;
import com.google.cloud.spanner.admin.instance.v1.InstanceAdminSettings;
import com.google.longrunning.Operation;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.spanner.admin.instance.v1.CreateInstanceConfigMetadata;
import com.google.spanner.admin.instance.v1.ListInstanceConfigOperationsRequest;
import java.io.IOException;

public class ListInstanceConfigOperationsSample {
static void listInstanceConfigOperations() {
static void listInstanceConfigOperations() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "my-project";
listInstanceConfigOperations(projectId);
}

static void listInstanceConfigOperations(String projectId) {
try (Spanner spanner =
SpannerOptions.newBuilder().setProjectId(projectId).build().getService()) {
final InstanceAdminClient instanceAdminClient = spanner.getInstanceAdminClient();
static void listInstanceConfigOperations(String projectId) throws IOException {
final InstanceAdminSettings instanceAdminSettings =
InstanceAdminSettings.newBuilder().setQuotaProjectId(projectId).build();
final InstanceAdminClient instanceAdminClient =
InstanceAdminClient.create(instanceAdminSettings);

try {
try {
System.out.printf(
"Getting list of instance config operations for project %s...\n",
projectId);
final ListInstanceConfigOperationsRequest request =
ListInstanceConfigOperationsRequest.newBuilder().setFilter("(metadata.@type=type.googleapis.com/"
+ "google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)").build();
final Iterable<Operation> instanceConfigOperations =
instanceAdminClient.listInstanceConfigOperations(request).iterateAll();
for (Operation operation : instanceConfigOperations) {
CreateInstanceConfigMetadata metadata =
operation.getMetadata().unpack(CreateInstanceConfigMetadata.class);
System.out.printf(
"Getting list of instance config operations for project %s...\n",
projectId);
final Iterable<Operation> instanceConfigOperations =
instanceAdminClient
.listInstanceConfigOperations(
Options.filter(
"(metadata.@type=type.googleapis.com/"
+ "google.spanner.admin.instance.v1.CreateInstanceConfigMetadata)"))
.iterateAll();
for (Operation operation : instanceConfigOperations) {
CreateInstanceConfigMetadata metadata =
operation.getMetadata().unpack(CreateInstanceConfigMetadata.class);
System.out.printf(
"Create instance config operation for %s is %d%% completed.\n",
metadata.getInstanceConfig().getName(), metadata.getProgress().getProgressPercent());
}
} catch (InvalidProtocolBufferException e) {
System.out.printf(
"Error: Listing instance config operations failed with error message %s\n",
e.getMessage());
"Create instance config operation for %s is %d%% completed.\n",
metadata.getInstanceConfig().getName(), metadata.getProgress().getProgressPercent());
}
} catch (InvalidProtocolBufferException e) {
System.out.printf(
"Error: Listing instance config operations failed with error message %s\n",
e.getMessage());
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,34 +18,27 @@

//[START spanner_list_instance_configs]

import com.google.cloud.spanner.InstanceAdminClient;
import com.google.cloud.spanner.InstanceConfig;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerOptions;
import com.google.cloud.spanner.admin.instance.v1.InstanceAdminClient;
import com.google.spanner.admin.instance.v1.InstanceConfig;
import java.io.IOException;

public class ListInstanceConfigsSample {

static void listInstanceConfigs() {
static void listInstanceConfigs() throws IOException {
// TODO(developer): Replace these variables before running the sample.
final String projectId = "my-project";
listInstanceConfigs(projectId);
}

static void listInstanceConfigs(String projectId) {
try (Spanner spanner = SpannerOptions
.newBuilder()
.setProjectId(projectId)
.build()
.getService()) {
final InstanceAdminClient instanceAdminClient = spanner.getInstanceAdminClient();

for (InstanceConfig instanceConfig : instanceAdminClient.listInstanceConfigs().iterateAll()) {
System.out.printf(
"Available leader options for instance config %s: %s%n",
instanceConfig.getId(),
instanceConfig.getLeaderOptions()
);
}
static void listInstanceConfigs(String projectId) throws IOException {
final InstanceAdminClient instanceAdminClient = InstanceAdminClient.create();
for (InstanceConfig instanceConfig :
instanceAdminClient.listInstanceConfigs(projectId).iterateAll()) {
System.out.printf(
"Available leader options for instance config %s: %s%n",
instanceConfig.getName(),
instanceConfig.getLeaderOptionsList()
);
}
}
}
Expand Down
Loading