Skip to content

Update READMEs for Compute #3388

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 13 commits into from
Jul 10, 2018
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
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
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ This library supports the following Google Cloud Platform services with clients

This library supports the following Google Cloud Platform services with clients at an [Alpha](#versioning) quality level:

- [Cloud Compute](google-cloud-clients/google-cloud-compute) (Alpha)
- [Cloud Dataproc](google-cloud-clients/google-cloud-dataproc) (Alpha)
- [Cloud DNS](google-cloud-clients/google-cloud-dns) (Alpha)
- [Cloud OS Login](google-cloud-clients/google-cloud-os-login) (Alpha)
Expand All @@ -46,10 +47,6 @@ This library supports the following Google Cloud Platform services with clients
- [Dialogflow](google-cloud-clients/google-cloud-dialogflow) (Alpha)
- [Web Security Scanner](google-cloud-clients/google-cloud-websecurityscanner) (Alpha)

These libraries are deprecated and no longer receive updates:

- [Cloud Compute](google-cloud-clients/google-cloud-compute) (Deprecated)

Quickstart
----------

Expand Down
3 changes: 1 addition & 2 deletions google-cloud-clients/google-cloud-compute/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ Java idiomatic client for [Google Cloud Compute][cloud-compute].
- [Product Documentation][compute-product-docs]
- [Client Library Documentation][compute-client-lib-docs]

> Note: This client is no longer receiving updates; new features in the Compute API will not be added to this client.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

Check https://cloud.google.com/compute/docs/api/libraries for the recommended Java client library to use for
accessing Compute.

Expand Down Expand Up @@ -276,4 +275,4 @@ Apache 2.0 - See [LICENSE] for more information.

[cloud-compute]: https://cloud.google.com/compute/
[compute-product-docs]: https://cloud.google.com/compute/docs/
[compute-client-lib-docs]: https://googlecloudplatform.github.io/google-cloud-java/google-cloud-clients/apidocs/index.html?com/google/cloud/compute/deprecated/package-summary.html
[compute-client-lib-docs]: https://googlecloudplatform.github.io/google-cloud-java/google-cloud-clients/apidocs/index.html?com/google/cloud/compute/v1/package-summary.html
6 changes: 5 additions & 1 deletion google-cloud-examples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,11 @@
<name>BigQueryExample</name>
</program>
<program>
<mainClass>com.google.cloud.examples.compute.ComputeExample</mainClass>
<mainClass>com.google.cloud.examples.compute.deprecated.ComputeExample</mainClass>
<name>ComputeExample</name>
</program>
<program>
<mainClass>com.google.cloud.examples.compute.v1.ComputeExample</mainClass>
<name>ComputeExample</name>
</program>
<program>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.google.cloud.examples.compute;
package com.google.cloud.examples.compute.deprecated;

import com.google.api.gax.paging.Page;
import com.google.cloud.Tuple;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
package com.google.cloud.examples.compute.v1;

import com.google.api.core.ApiFuture;
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.Credentials;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.compute.v1.Address;
import com.google.cloud.compute.v1.AddressClient;
import com.google.cloud.compute.v1.AddressSettings;
import com.google.cloud.compute.v1.InsertAddressHttpRequest;
import com.google.cloud.compute.v1.ListAddressesHttpRequest;
import com.google.cloud.compute.v1.Operation;
import com.google.cloud.compute.v1.ProjectRegionAddressName;
import com.google.cloud.compute.v1.ProjectRegionName;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;

/** Working example code to make live calls on Addresses resources in a GCP Compute project. */
public class ComputeExample {

This comment was marked as spam.

This comment was marked as spam.


// Replace the following String values with your Project and Region ids.
private static String PROJECT_NAME = "my-project-id";
private static String REGION = "us-central1";

/**
* List addresses, Insert an address, and then delete the address. Use ResourceNames in the
* request objects.
*/
public static void main(String[] args) throws IOException {
AddressClient client = createCredentialedClient();

System.out.println("Running with Gapic Client.");
AddressClient.ListAddressesPagedResponse listResponse = listAddresses(client);
verifyListAddressWithGets(client, listResponse);

System.out.println("Running with Gapic Client and Resource Name.");
String newAddressName = "new_address_name";
System.out.println("Inserting address:");

insertNewAddressJustClient(client, newAddressName);

listAddresses(client);

System.out.println("Deleting address:");
Operation deleteResponse =
client.deleteAddress(ProjectRegionAddressName.of(newAddressName, PROJECT_NAME, REGION));
System.out.format("Result of delete: %s\n", deleteResponse.toString());
int sleepTimeInSeconds = 3;
System.out.format("Waiting %d seconds for server to update...\n", sleepTimeInSeconds);
// Wait for the delete operation to finish on the server.
try {
TimeUnit.SECONDS.sleep(sleepTimeInSeconds);
} catch (InterruptedException e) {
e.printStackTrace();
}
listAddresses(client);
}

private static AddressClient createCredentialedClient() throws IOException {
Credentials myCredentials = GoogleCredentials.getApplicationDefault();
String myEndpoint = AddressSettings.getDefaultEndpoint();

AddressSettings addressSettings =
AddressSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
.setTransportChannelProvider(
AddressSettings.defaultHttpJsonTransportProviderBuilder()
.setEndpoint(myEndpoint)
.build())
.build();
return AddressClient.create(addressSettings);
}

private static void insertNewAddressJustClient(AddressClient client, String newAddressName) {
// Begin samplegen code for insertAddress().
Address newAddress = Address.newBuilder().setName(newAddressName).build();
ProjectRegionName region = ProjectRegionName.of(PROJECT_NAME, REGION);
Operation response = client.insertAddress(region, newAddress);
// End samplegen code for insertAddress().
System.out.format("Result of insert: %s\n", response.toString());
}

/** Use an InsertAddressHttpRequest object to make an addresses.insert method call. */
private static void insertNewAddressUsingRequest(AddressClient client, String newAddressName)
throws InterruptedException, ExecutionException {
// Begin samplegen code for insertAddress().
ProjectRegionName region = ProjectRegionName.of(PROJECT_NAME, REGION);
Address address = Address.newBuilder().build();
InsertAddressHttpRequest request =
InsertAddressHttpRequest.newBuilder()
.setRegion(region.toString())
.setAddressResource(address)
.build();
// Do something
Operation response = client.insertAddress(request);

// End samplegen code for insertAddress().
System.out.format("Result of insert: %s\n", response.toString());
}

/** Use an callable object to make an addresses.insert method call. */
private static void insertAddressUsingCallable(AddressClient client, String newAddressName)
throws InterruptedException, ExecutionException {
// Begin samplegen code for insertAddress().
ProjectRegionName region = ProjectRegionName.of(PROJECT_NAME, REGION);
Address address = Address.newBuilder().build();
InsertAddressHttpRequest request =
InsertAddressHttpRequest.newBuilder()
.setRegion(region.toString())
.setAddressResource(address)
.build();
ApiFuture<Operation> future = client.insertAddressCallable().futureCall(request);
// Do something
Operation response = future.get();

// End samplegen code for insertAddress().
System.out.format("Result of insert: %s\n", response.toString());
}

/** List Addresses in the under the project PROJECT_NAME and region REGION. */
private static AddressClient.ListAddressesPagedResponse listAddresses(AddressClient client) {
System.out.println("Listing addresses:");
ProjectRegionName regionName =
ProjectRegionName.newBuilder().setRegion(REGION).setProject(PROJECT_NAME).build();
ListAddressesHttpRequest listRequest =
ListAddressesHttpRequest.newBuilder().setRegion(regionName.toString()).build();
AddressClient.ListAddressesPagedResponse response = client.listAddresses(listRequest);
for (Address address : response.iterateAll()) {
System.out.println("\t - " + address.toString());
}
return response;
}

private static void verifyListAddressWithGets(
AddressClient client, AddressClient.ListAddressesPagedResponse listResponse) {
for (Address address : listResponse.iterateAll()) {
System.out.format("Making get request for address \"%s\"...\n", address.getName());
Address fetchedAddress =
client.getAddress(ProjectRegionAddressName.of(address.getName(), PROJECT_NAME, REGION));
System.out.format("addresses.get returns \n\t%s\n\n", fetchedAddress.toString());
}
}
}