Skip to content

Commit 5f80980

Browse files
nithinsujirpongad
authored andcommitted
spanner: add snippets for InstanceAdminClient (#3578)
also fix snippet `pubsub_subscriber_custom_credentials` not being closed. ``` $ go run utilities/snippets.go . snippet: [START google-cloud-examples/src/main/java/com/google/cloud/examples/pubsub/snippets/SubscriberSnippets.java]:178 snippet "pubsub_subscriber_custom_credentials" not closed exit status 1 ``` Rename the 2nd `START` to `END` to correct the typo.
1 parent bed08ff commit 5f80980

File tree

2 files changed

+226
-0
lines changed

2 files changed

+226
-0
lines changed

google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/InstanceAdminClient.java

+73
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,23 @@
2525
public interface InstanceAdminClient {
2626

2727
/** Gets an instance config. */
28+
/* <!--SNIPPET instance_admin_client_get_instance_config-->
29+
* <pre>{@code
30+
* final String configId = my_config_id;
31+
* InstanceConfig instanceConfig = instanceAdminClient.getInstanceConfig(configId);
32+
* }</pre>
33+
* <!--SNIPPET instance_admin_client_get_instance_config-->
34+
*/
2835
InstanceConfig getInstanceConfig(String configId) throws SpannerException;
2936

3037
/** Lists the supported instance configs for current project. */
38+
/* <!--SNIPPET instance_admin_client_list_configs-->
39+
* <pre>{@code
40+
* List<InstanceConfig> configs =
41+
* Lists.newArrayList(instanceAdminClient.listInstanceConfigs(Options.pageSize(1)).iterateAll());
42+
* }</pre>
43+
* <!--SNIPPET instance_admin_client_list_configs-->
44+
*/
3145
Page<InstanceConfig> listInstanceConfigs(ListOption... options) throws SpannerException;
3246

3347
/**
@@ -58,11 +72,35 @@ public interface InstanceAdminClient {
5872
* <li> Databases can be created in the instance.
5973
* <li> The instance's allocated resource levels are readable via the
6074
* </ul>
75+
*
76+
* <!--SNIPPET instance_admin_client_create_instance-->
77+
* <pre>{@code
78+
* final String instanceId = my_instance_id;
79+
* final String configId = my_config_id;
80+
* final String clientProject = my_client_project;
81+
*
82+
* Operation<Instance, CreateInstanceMetadata> op =
83+
* instanceAdminClient.createInstance(InstanceInfo
84+
* .newBuilder(InstanceId.of(clientProject, instanceId))
85+
* .setInstanceConfigId(InstanceConfigId.of(clientProject, configId))
86+
* .setDisplayName(instanceId)
87+
* .setNodeCount(1)
88+
* .build());
89+
* op.waitFor();
90+
* }</pre>
91+
* <!--SNIPPET instance_admin_client_create_instance-->
6192
*/
6293
Operation<Instance, CreateInstanceMetadata> createInstance(InstanceInfo instance)
6394
throws SpannerException;
6495

6596
/** Gets an instance. */
97+
/* <!--SNIPPET instance_admin_client_get_instance-->
98+
* <pre>{@code
99+
* final String instanceId = my_instance_id;
100+
* Instance ins = instanceAdminClient.getInstance(instanceId);
101+
* }</pre>
102+
* <!--SNIPPET instance_admin_client_get_instance-->
103+
*/
66104
Instance getInstance(String instanceId) throws SpannerException;
67105

68106
/**
@@ -75,10 +113,25 @@ Operation<Instance, CreateInstanceMetadata> createInstance(InstanceInfo instance
75113
* <li> display_name
76114
* <li> labels.key where key is the name of a label
77115
* </ul>
116+
*
117+
* <!--SNIPPET instance_admin_client_list_instances-->
118+
* <pre>{@code
119+
* List<Instance> instances =
120+
* Lists.newArrayList(
121+
* instanceAdminClient.listInstances(Options.pageSize(1)).iterateAll());
122+
* }</pre>
123+
* <!--SNIPPET instance_admin_client_list_instances-->
78124
*/
79125
Page<Instance> listInstances(ListOption... options) throws SpannerException;
80126

81127
/** Deletes an instance. */
128+
/* <!--SNIPPET instance_admin_client_delete_instance-->
129+
* <pre>{@code
130+
* final String instanceId = my_instance_id;
131+
* instanceAdminClient.deleteInstance(instanceId);
132+
* }</pre>
133+
* <!--SNIPPET instance_admin_client_delete_instance-->
134+
*/
82135
void deleteInstance(String instanceId) throws SpannerException;
83136

84137
/**
@@ -112,6 +165,26 @@ Operation<Instance, CreateInstanceMetadata> createInstance(InstanceInfo instance
112165
* <li> All newly-reserved resources are available for serving the instance's tables.
113166
* <li> The instance's new resource levels are readable via the API.
114167
* </ul>
168+
*
169+
* <!--SNIPPET instance_admin_client_update_instance-->
170+
* <pre>{@code
171+
* Instance instance = my_instance;
172+
* final String clientProject = my_client_project;
173+
* final String instanceId = my_instance_id;
174+
*
175+
* final String newDisplayName = my_display_name;
176+
*
177+
* InstanceInfo toUpdate =
178+
* InstanceInfo.newBuilder(InstanceId.of(clientProject, instanceId))
179+
* .setDisplayName(newDisplayName)
180+
* .setNodeCount(instance.getNodeCount() + 1)
181+
* .build();
182+
* // Only update display name
183+
* Operation<Instance, UpdateInstanceMetadata> op =
184+
* instanceAdminClient.updateInstance(toUpdate, InstanceInfo.InstanceField.DISPLAY_NAME);
185+
* op.waitFor().getResult();
186+
* }</pre>
187+
* <!--SNIPPET instance_admin_client_update_instance-->
115188
*/
116189
Operation<Instance, UpdateInstanceMetadata> updateInstance(
117190
InstanceInfo instance, InstanceInfo.InstanceField... fieldsToUpdate);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
/*
2+
* Copyright 2018 Google LLC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
/*
18+
* EDITING INSTRUCTIONS
19+
* This file is referenced in spanner/InstanceAdminClient's javadoc. Any change
20+
* to this file should be reflected in spanner/InstanceAdminClient's javadoc.
21+
*/
22+
23+
package com.google.cloud.examples.spanner.snippets;
24+
25+
import com.google.cloud.spanner.Instance;
26+
import com.google.cloud.spanner.InstanceAdminClient;
27+
import com.google.cloud.spanner.InstanceConfig;
28+
import com.google.cloud.spanner.InstanceConfigId;
29+
import com.google.cloud.spanner.InstanceId;
30+
import com.google.cloud.spanner.InstanceInfo;
31+
import com.google.cloud.spanner.Operation;
32+
import com.google.cloud.spanner.Options;
33+
import com.google.common.collect.Lists;
34+
import com.google.spanner.admin.instance.v1.CreateInstanceMetadata;
35+
import com.google.spanner.admin.instance.v1.UpdateInstanceMetadata;
36+
import java.util.List;
37+
38+
/**
39+
* This class contains snippets for {@link InstanceAdminClient} interface.
40+
*/
41+
public class InstanceAdminClientSnippets {
42+
43+
private final InstanceAdminClient instanceAdminClient;
44+
45+
public InstanceAdminClientSnippets(InstanceAdminClient instanceAdminClient) {
46+
this.instanceAdminClient = instanceAdminClient;
47+
}
48+
49+
/**
50+
* Example to get instance config.
51+
*/
52+
public InstanceConfig getInstanceConfig(final String my_config_id) {
53+
// [START instance_admin_client_get_instance_config]
54+
final String configId = my_config_id;
55+
InstanceConfig instanceConfig = instanceAdminClient.getInstanceConfig(configId);
56+
// [END instance_admin_client_get_instance_config]
57+
return instanceConfig;
58+
}
59+
60+
/**
61+
* Example to list instance configs.
62+
*/
63+
public List<InstanceConfig> listInstanceConfigs() {
64+
// [START instance_admin_client_list_configs]
65+
List<InstanceConfig> configs =
66+
Lists.newArrayList(instanceAdminClient.listInstanceConfigs(Options.pageSize(1)).iterateAll());
67+
// [END instance_admin_client_list_configs]
68+
return configs;
69+
}
70+
71+
/**
72+
* Example to create an instance.
73+
*/
74+
public void createInstance(
75+
final String my_instance_id,
76+
final String my_config_id,
77+
final String my_client_project) {
78+
// [START instance_admin_client_create_instance]
79+
final String instanceId = my_instance_id;
80+
final String configId = my_config_id;
81+
final String clientProject = my_client_project;
82+
83+
Operation<Instance, CreateInstanceMetadata> op =
84+
instanceAdminClient.createInstance(InstanceInfo
85+
.newBuilder(InstanceId.of(clientProject, instanceId))
86+
.setInstanceConfigId(InstanceConfigId.of(clientProject, configId))
87+
.setDisplayName(instanceId)
88+
.setNodeCount(1)
89+
.build());
90+
op.waitFor();
91+
// [END instance_admin_client_create_instance]
92+
}
93+
94+
/**
95+
* Example to get an instance.
96+
*/
97+
public Instance getInstance(final String my_instance_id) {
98+
// [START instance_admin_client_get_instance]
99+
final String instanceId = my_instance_id;
100+
Instance ins = instanceAdminClient.getInstance(instanceId);
101+
// [END instance_admin_client_get_instance]
102+
return ins;
103+
}
104+
105+
/**
106+
* Example to list instances.
107+
*/
108+
public List<Instance> listInstances() {
109+
// [START instance_admin_client_list_instances]
110+
List<Instance> instances =
111+
Lists.newArrayList(
112+
instanceAdminClient.listInstances(Options.pageSize(1)).iterateAll());
113+
// [END instance_admin_client_list_instances]
114+
return instances;
115+
}
116+
117+
/**
118+
* Example to delete an instance.
119+
*/
120+
public void deleteInstance(final String my_instance_id) {
121+
// [START instance_admin_client_delete_instance]
122+
final String instanceId = my_instance_id;
123+
instanceAdminClient.deleteInstance(instanceId);
124+
// [END instance_admin_client_delete_instance]
125+
}
126+
127+
/**
128+
* Example to update an instance.
129+
*/
130+
public void updateInstance(Instance my_instance,
131+
final String my_client_project,
132+
final String my_instance_id,
133+
final String my_display_name) {
134+
// [START instance_admin_client_update_instance]
135+
Instance instance = my_instance;
136+
final String clientProject = my_client_project;
137+
final String instanceId = my_instance_id;
138+
139+
final String newDisplayName = my_display_name;
140+
141+
InstanceInfo toUpdate =
142+
InstanceInfo.newBuilder(InstanceId.of(clientProject, instanceId))
143+
.setDisplayName(newDisplayName)
144+
.setNodeCount(instance.getNodeCount() + 1)
145+
.build();
146+
// Only update display name
147+
Operation<Instance, UpdateInstanceMetadata> op =
148+
instanceAdminClient.updateInstance(toUpdate, InstanceInfo.InstanceField.DISPLAY_NAME);
149+
op.waitFor().getResult();
150+
// [END instance_admin_client_update_instance]
151+
}
152+
}
153+

0 commit comments

Comments
 (0)