You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ab...@apache.org on 2013/12/13 19:43:16 UTC

[4/5] JCLOUDS-393. Move to GCE API v1.

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/KernelApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/KernelApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/KernelApi.java
deleted file mode 100644
index 99df99c..0000000
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/KernelApi.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.jclouds.googlecomputeengine.features;
-
-import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptyIterableWithMarkerOnNotFoundOr404;
-import org.jclouds.Fallbacks.EmptyPagedIterableOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.collect.PagedIterable;
-import org.jclouds.googlecomputeengine.domain.Kernel;
-import org.jclouds.googlecomputeengine.domain.ListPage;
-import org.jclouds.googlecomputeengine.functions.internal.ParseKernels;
-import org.jclouds.googlecomputeengine.options.ListOptions;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.oauth.v2.config.OAuthScopes;
-import org.jclouds.oauth.v2.filters.OAuthAuthenticator;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.ResponseParser;
-import org.jclouds.rest.annotations.SkipEncoding;
-import org.jclouds.rest.annotations.Transform;
-
-/**
- * Provides access to Kernels via their REST API.
- *
- * @author David Alves
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/kernels"/>
- */
-@SkipEncoding({'/', '='})
-@RequestFilters(OAuthAuthenticator.class)
-@Consumes(MediaType.APPLICATION_JSON)
-public interface KernelApi {
-
-   /**
-    * Returns the specified kernel resource
-    *
-    * @param kernelName name of the kernel resource to return.
-    * @return If successful, this method returns a Kernel resource
-    */
-   @Named("Kernels:get")
-   @GET
-   @Path("/global/kernels/{kernel}")
-   @OAuthScopes(COMPUTE_READONLY_SCOPE)
-   @Fallback(NullOnNotFoundOr404.class)
-   Kernel get(@PathParam("kernel") String kernelName);
-
-   /**
-    * @see KernelApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
-    */
-   @Named("Kernels:list")
-   @GET
-   @Path("/global/kernels")
-   @OAuthScopes(COMPUTE_READONLY_SCOPE)
-   @ResponseParser(ParseKernels.class)
-   @Fallback(EmptyIterableWithMarkerOnNotFoundOr404.class)
-   ListPage<Kernel> listFirstPage();
-
-   /**
-    * @see KernelApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
-    */
-   @Named("Kernels:list")
-   @GET
-   @Path("/global/kernels")
-   @OAuthScopes(COMPUTE_READONLY_SCOPE)
-   @ResponseParser(ParseKernels.class)
-   @Fallback(EmptyIterableWithMarkerOnNotFoundOr404.class)
-   ListPage<Kernel> listAtMarker(@QueryParam("pageToken") @Nullable String marker);
-
-   /**
-    * Retrieves the list of kernel resources available to the specified project.
-    * By default the list as a maximum size of 100, if no options are provided or ListOptions#getMaxResults() has not
-    * been set.
-    *
-    * @param marker      marks the beginning of the next list page
-    * @param listOptions listing options
-    * @return a page of the list
-    * @see ListOptions
-    * @see org.jclouds.googlecomputeengine.domain.ListPage
-    */
-   @Named("Kernels:list")
-   @GET
-   @Path("/global/kernels")
-   @OAuthScopes(COMPUTE_READONLY_SCOPE)
-   @ResponseParser(ParseKernels.class)
-   @Fallback(EmptyIterableWithMarkerOnNotFoundOr404.class)
-   ListPage<Kernel> listAtMarker(@QueryParam("pageToken") @Nullable String marker,
-                                 ListOptions listOptions);
-
-   /**
-    * @see KernelApi#list(org.jclouds.googlecomputeengine.options.ListOptions)
-    */
-   @Named("Kernels:list")
-   @GET
-   @Path("/global/kernels")
-   @OAuthScopes(COMPUTE_READONLY_SCOPE)
-   @ResponseParser(ParseKernels.class)
-   @Transform(ParseKernels.ToPagedIterable.class)
-   @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
-   PagedIterable<Kernel> list();
-
-   /**
-    * A paged version of KernelApi#list()
-    *
-    * @return a Paged, Fluent Iterable that is able to fetch additional pages when required
-    * @see PagedIterable
-    * @see KernelApi#listAtMarker(String, org.jclouds.googlecomputeengine.options.ListOptions)
-    */
-   @Named("Kernels:list")
-   @GET
-   @Path("/global/kernels")
-   @OAuthScopes(COMPUTE_READONLY_SCOPE)
-   @ResponseParser(ParseKernels.class)
-   @Transform(ParseKernels.ToPagedIterable.class)
-   @Fallback(EmptyPagedIterableOnNotFoundOr404.class)
-   PagedIterable<Kernel> list(ListOptions listOptions);
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
index 8d4aa53..d34f3dd 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java
@@ -47,7 +47,7 @@ import org.jclouds.rest.annotations.Transform;
  * Provides access to MachineTypes via their REST API.
  *
  * @author David Alves
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/machineTypes"/>
+ * @see <a href="https://developers.google.com/compute/docs/reference/v1/machineTypes"/>
  */
 @SkipEncoding({'/', '='})
 @RequestFilters(OAuthAuthenticator.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
index b4de2ac..da1c8e9 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java
@@ -55,7 +55,7 @@ import org.jclouds.rest.binders.BindToJsonPayload;
  * Provides access to Networks via their REST API.
  *
  * @author David Alves
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/networks"/>
+ * @see <a href="https://developers.google.com/compute/docs/reference/v1/networks"/>
  */
 @SkipEncoding({'/', '='})
 @RequestFilters(OAuthAuthenticator.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java
index 84d47ad..c08979d 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java
@@ -46,7 +46,7 @@ import org.jclouds.rest.annotations.SkipEncoding;
  * Provides access to Projects via their REST API.
  *
  * @author David Alves
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/projects"/>
+ * @see <a href="https://developers.google.com/compute/docs/reference/v1/projects"/>
  */
 @SkipEncoding({'/', '='})
 @RequestFilters(OAuthAuthenticator.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
index 33a9494..5c0a4da 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java
@@ -45,7 +45,7 @@ import org.jclouds.rest.annotations.Transform;
  * Provides access to Regions via their REST API.
  *
  * @author David Alves
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/regions"/>
+ * @see <a href="https://developers.google.com/compute/docs/reference/v1/regions"/>
  */
 @SkipEncoding({'/', '='})
 @RequestFilters(OAuthAuthenticator.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java
index b2bd6d8..d5c2d02 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java
@@ -49,7 +49,7 @@ import org.jclouds.rest.annotations.Transform;
  * Provides access to Operations via their REST API.
  *
  * @author David Alves
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/operations"/>
+ * @see <a href="https://developers.google.com/compute/docs/reference/v1/operations"/>
  */
 @SkipEncoding({'/', '='})
 @RequestFilters(OAuthAuthenticator.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java
index 231f813..9557cf6 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java
@@ -57,7 +57,7 @@ import org.jclouds.rest.annotations.Transform;
  * Provides access to Routes via their REST API.
  *
  * @author Andrew Bayer
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/routess"/>
+ * @see <a href="https://developers.google.com/compute/docs/reference/v1/routess"/>
  */
 @SkipEncoding({'/', '='})
 @RequestFilters(OAuthAuthenticator.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java
index e3de540..8bf01ee 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java
@@ -50,7 +50,7 @@ import org.jclouds.rest.annotations.Transform;
  * Provides access to Snapshots via their REST API.
  *
  * @author Andrew Bayer
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/snapshots"/>
+ * @see <a href="https://developers.google.com/compute/docs/reference/v1/snapshots"/>
  */
 @SkipEncoding({'/', '='})
 @RequestFilters(OAuthAuthenticator.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java
index c3c01e2..79aaf5c 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java
@@ -45,7 +45,7 @@ import org.jclouds.rest.annotations.Transform;
  * Provides access to Zones via their REST API.
  *
  * @author David Alves
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/zones"/>
+ * @see <a href="https://developers.google.com/compute/docs/reference/v1/zones"/>
  */
 @SkipEncoding({'/', '='})
 @RequestFilters(OAuthAuthenticator.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java
index b23ee13..9345983 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java
@@ -49,7 +49,7 @@ import org.jclouds.rest.annotations.Transform;
  * Provides access to Operations via their REST API.
  *
  * @author David Alves
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/operations"/>
+ * @see <a href="https://developers.google.com/compute/docs/reference/v1/operations"/>
  */
 @SkipEncoding({'/', '='})
 @RequestFilters(OAuthAuthenticator.class)

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseKernels.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseKernels.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseKernels.java
deleted file mode 100644
index 121677f..0000000
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/functions/internal/ParseKernels.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.jclouds.googlecomputeengine.functions.internal;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import javax.inject.Inject;
-
-import org.jclouds.collect.IterableWithMarker;
-import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
-import org.jclouds.googlecomputeengine.domain.Kernel;
-import org.jclouds.googlecomputeengine.domain.ListPage;
-import org.jclouds.googlecomputeengine.options.ListOptions;
-import org.jclouds.http.functions.ParseJson;
-import org.jclouds.json.Json;
-
-import com.google.common.base.Function;
-import com.google.inject.TypeLiteral;
-
-/**
- * @author David Alves
- */
-public class ParseKernels extends ParseJson<ListPage<Kernel>> {
-
-   @Inject
-   public ParseKernels(Json json) {
-      super(json, new TypeLiteral<ListPage<Kernel>>() {
-      });
-   }
-
-   public static class ToPagedIterable extends BaseToPagedIterable<Kernel, ToPagedIterable> {
-
-      private final GoogleComputeEngineApi api;
-
-      @Inject
-      protected ToPagedIterable(GoogleComputeEngineApi api) {
-         this.api = checkNotNull(api, "api");
-      }
-
-      @Override
-      protected Function<Object, IterableWithMarker<Kernel>> fetchNextPage(final String projectName,
-                                                                           final ListOptions options) {
-         return new Function<Object, IterableWithMarker<Kernel>>() {
-
-            @Override
-            public IterableWithMarker<Kernel> apply(Object input) {
-               return api.getKernelApiForProject(projectName).listAtMarker(input.toString(), options);
-            }
-         };
-      }
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/ListOptions.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/ListOptions.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/ListOptions.java
index 4305579..919a20e 100644
--- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/ListOptions.java
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/options/ListOptions.java
@@ -24,7 +24,7 @@ import org.jclouds.http.options.BaseHttpRequestOptions;
  * Allows to optionally specify a filter, max results and a page token for <code>listFirstPage()</code> REST methods.
  *
  * @author David Alves
- * @see <a href="https://developers.google.com/compute/docs/reference/v1beta16/operations/listFirstPage"/>
+ * @see <a href="https://developers.google.com/compute/docs/reference/v1/operations/listFirstPage"/>
  */
 public class ListOptions extends BaseHttpRequestOptions {
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/InstancePredicates.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/InstancePredicates.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/InstancePredicates.java
new file mode 100644
index 0000000..8cde680
--- /dev/null
+++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/predicates/InstancePredicates.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.jclouds.googlecomputeengine.predicates;
+
+import org.jclouds.googlecomputeengine.domain.InstanceTemplate.PersistentDisk;
+
+import com.google.common.base.Predicate;
+
+public class InstancePredicates {
+
+   public static Predicate<PersistentDisk> isBootDisk() {
+      return new Predicate<PersistentDisk>() {
+         @Override
+         public boolean apply(PersistentDisk input) {
+            return input.isBoot();
+         }
+      };
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/PageSystemExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/PageSystemExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/PageSystemExpectTest.java
index 880252a..d66b193 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/PageSystemExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/PageSystemExpectTest.java
@@ -43,7 +43,7 @@ public class PageSystemExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/images")
+                      ".com/compute/v1/projects/myproject/global/images")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -66,7 +66,7 @@ public class PageSystemExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/images?maxResults=3")
+                      ".com/compute/v1/projects/myproject/global/images?maxResults=3")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -74,7 +74,7 @@ public class PageSystemExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/images?pageToken" +
+                      ".com/compute/v1/projects/myproject/global/images?pageToken" +
                       "=CgVJTUFHRRIbZ29vZ2xlLmNlbnRvcy02LTItdjIwMTIwNjIx&maxResults=3")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
@@ -83,7 +83,7 @@ public class PageSystemExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/images?pageToken" +
+                      ".com/compute/v1/projects/myproject/global/images?pageToken" +
                       "=CgVJTUFHRRIbZ29vZ2xlLmdjZWwtMTAtMDQtdjIwMTIxMTA2&maxResults=3")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java
index c6ea7eb..8a91223 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceExpectTest.java
@@ -19,10 +19,13 @@ package org.jclouds.googlecomputeengine.compute;
 import static com.google.common.collect.Iterables.getOnlyElement;
 import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_READONLY_SCOPE;
 import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.COMPUTE_SCOPE;
+import static org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.GCE_BOOT_DISK_SUFFIX;
 import static org.jclouds.googlecomputeengine.features.GlobalOperationApiExpectTest.GET_GLOBAL_OPERATION_REQUEST;
 import static org.jclouds.googlecomputeengine.features.GlobalOperationApiExpectTest.GET_GLOBAL_OPERATION_RESPONSE;
-import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_GOOGLE_IMAGES_REQUEST;
-import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_GOOGLE_IMAGES_RESPONSE;
+import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_DEBIAN_IMAGES_REQUEST;
+import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_DEBIAN_IMAGES_RESPONSE;
+import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_CENTOS_IMAGES_REQUEST;
+import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_CENTOS_IMAGES_RESPONSE;
 import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_PROJECT_IMAGES_REQUEST;
 import static org.jclouds.googlecomputeengine.features.ImageApiExpectTest.LIST_PROJECT_IMAGES_RESPONSE;
 import static org.jclouds.googlecomputeengine.features.InstanceApiExpectTest.LIST_CENTRAL1B_INSTANCES_REQUEST;
@@ -55,6 +58,7 @@ import javax.ws.rs.core.MediaType;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.RunNodesException;
 import org.jclouds.compute.domain.Hardware;
+import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.domain.Template;
 import org.jclouds.domain.Location;
 import org.jclouds.googlecomputeengine.compute.options.GoogleComputeEngineTemplateOptions;
@@ -82,7 +86,7 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
    private HttpRequest INSERT_NETWORK_REQUEST = HttpRequest
            .builder()
            .method("POST")
-           .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/networks")
+           .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/global/networks")
            .addHeader("Accept", "application/json")
            .addHeader("Authorization", "Bearer " + TOKEN)
            .payload(payloadFromStringWithContentType("{\"name\":\"jclouds-test\",\"IPv4Range\":\"10.0.0.0/8\"}",
@@ -92,11 +96,11 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
    private HttpRequest INSERT_FIREWALL_REQUEST = HttpRequest
            .builder()
            .method("POST")
-           .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/firewalls")
+           .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/global/firewalls")
            .addHeader("Accept", "application/json")
            .addHeader("Authorization", "Bearer " + TOKEN)
            .payload(payloadFromStringWithContentType("{\"name\":\"jclouds-test\",\"network\":\"https://www.googleapis" +
-                   ".com/compute/v1beta16/projects/myproject/global/networks/jclouds-test\"," +
+                   ".com/compute/v1/projects/myproject/global/networks/jclouds-test\"," +
                    "\"sourceRanges\":[\"10.0.0.0/8\",\"0.0.0.0/0\"],\"sourceTags\":[\"aTag\"],\"allowed\":[{\"IPProtocol\":\"tcp\"," +
                    "\"ports\":[\"22\"]}," +
                    "{\"IPProtocol\":\"udp\",\"ports\":[\"22\"]}]}",
@@ -109,7 +113,7 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
                    " \"id\": \"13024414170909937976\",\n" +
                    " \"creationTimestamp\": \"2012-10-24T20:13:19.967\",\n" +
                    " \"selfLink\": \"https://www.googleapis" +
-                   ".com/compute/v1beta16/projects/myproject/global/networks/jclouds-test\",\n" +
+                   ".com/compute/v1/projects/myproject/global/networks/jclouds-test\",\n" +
                    " \"name\": \"jclouds-test\",\n" +
                    " \"description\": \"test network\",\n" +
                    " \"IPv4Range\": \"10.0.0.0/8\",\n" +
@@ -121,7 +125,7 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
 
    private HttpRequest SET_TAGS_REQUEST = HttpRequest.builder()
            .method("POST")
-           .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/zones/us-central1-a/instances/test-1/setTags")
+           .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-1/setTags")
            .addHeader("Accept", "application/json")
            .addHeader("Authorization", "Bearer " + TOKEN)
            .payload(payloadFromStringWithContentType("{\"items\":[\"aTag\"],\"fingerprint\":\"abcd\"}",
@@ -151,38 +155,83 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
                       "application/json")).build();
    }
 
+   private HttpResponse getDiskResponseForInstance(String instanceName) {
+      return HttpResponse.builder().statusCode(200)
+                         .payload(payloadFromStringWithContentType(
+                         replaceDiskNameOnResource("/disk_get.json", instanceName + "-" + GCE_BOOT_DISK_SUFFIX),
+                         "application/json")).build();
+   }
+
+   private String replaceDiskNameOnResource(String resourceName, String diskName) {
+      try {
+         return Strings2.toStringAndClose(this.getClass().getResourceAsStream(resourceName))
+                        .replace("testimage1", diskName);
+      } catch (IOException e) {
+         throw Throwables.propagate(e);
+      }
+   }
+
    private String replaceInstanceNameNetworkAndStatusOnResource(String resourceName, String instanceName,
                                                                 String networkName, String status) {
       try {
          return Strings2.toStringAndClose(this.getClass().getResourceAsStream(resourceName)).replace("test-0",
-                 instanceName).replace("default", networkName).replace("RUNNING", status);
+                                                                                                     instanceName).replace("default", networkName).replace("RUNNING", status);
       } catch (IOException e) {
          throw Throwables.propagate(e);
       }
    }
 
+   private HttpRequest createDiskRequestForInstance(String instanceName) {
+      return HttpRequest
+              .builder()
+              .method("POST")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks"
+                                + "?sourceImage=https%3A//www.googleapis.com/compute/v1/projects/centos-cloud/global/images/gcel-12-04-v20121106")
+              .addHeader("Accept", "application/json")
+              .addHeader("Authorization", "Bearer " + TOKEN)
+              .payload(payloadFromStringWithContentType("{\"name\":\"" + instanceName + "-" + GCE_BOOT_DISK_SUFFIX + "\","
+                                                        + "\"sizeGb\":10}",
+                                                        MediaType.APPLICATION_JSON)).build();
+   }
+
+   private HttpRequest getDiskRequestForInstance(String instanceName) {
+      return HttpRequest
+              .builder()
+              .method("GET")
+              .endpoint("https://www.googleapis" +
+                        ".com/compute/v1/projects/myproject/zones/us-central1-a/disks/"
+                        + instanceName + "-" + GCE_BOOT_DISK_SUFFIX)
+              .addHeader("Accept", "application/json")
+              .addHeader("Authorization", "Bearer " + TOKEN).build();
+   }
+
+
+
    private HttpRequest createInstanceRequestForInstance(String instanceName, String groupName,
                                                         String networkName, String publicKey) {
       return HttpRequest
               .builder()
               .method("POST")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/zones/us-central1-a/instances")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN)
               .payload(payloadFromStringWithContentType("{\"name\":\"" + instanceName + "\"," +
-                      "\"machineType\":\"https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\"," +
-                      "\"image\":\"https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/google/global/images/gcel-12-04-v20121106\"," +
-                      "\"serviceAccounts\":[]," +
-                      "\"networkInterfaces\":[{\"network\":\"https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/networks/" + networkName + "\"," +
-                      "\"accessConfigs\":[{\"type\":\"ONE_TO_ONE_NAT\"}]}]," +
-                      "\"metadata\":{\"kind\":\"compute#metadata\",\"items\":[{\"key\":\"sshKeys\"," +
-                      "\"value\":\"jclouds:" +
-                      publicKey + " jclouds@localhost\"},{\"key\":\"jclouds-group\"," +
-                      "\"value\":\"" + groupName + "\"}]}}",
-                      MediaType.APPLICATION_JSON)).build();
+                                                        "\"machineType\":\"https://www.googleapis" +
+                                                        ".com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\"," +
+                                                        "\"serviceAccounts\":[]," +
+                                                        "\"networkInterfaces\":[{\"network\":\"https://www.googleapis" +
+                                                        ".com/compute/v1/projects/myproject/global/networks/" + networkName + "\"," +
+                                                        "\"accessConfigs\":[{\"type\":\"ONE_TO_ONE_NAT\"}]}]," +
+                                                        "\"disks\":[{\"mode\":\"READ_WRITE\",\"source\":\"https://www.googleapis.com/" +
+                                                        "compute/v1/projects/myproject/zones/us-central1-a/disks/" + instanceName +
+                                                        "-" + GCE_BOOT_DISK_SUFFIX + "\",\"deleteOnTerminate\":true,\"boot\":true,\"type\":\"PERSISTENT\"}]," +
+                                                        "\"metadata\":{\"kind\":\"compute#metadata\",\"items\":[{\"key\":\"sshKeys\"," +
+                                                        "\"value\":\"jclouds:" +
+                                                        publicKey + " jclouds@localhost\"},{\"key\":\"jclouds-group\"," +
+                                                        "\"value\":\"" + groupName + "\"},{\"key\":\"jclouds-image\",\"value\":\"https://www.googleapis" +
+                                                        ".com/compute/v1/projects/centos-cloud/global/images/gcel-12-04-v20121106\"}," +
+                                                        "{\"key\":\"jclouds-delete-boot-disk\",\"value\":\"true\"}]}}",
+                                                        MediaType.APPLICATION_JSON)).build();
    }
 
    private HttpRequest getInstanceRequestForInstance(String instanceName) {
@@ -190,7 +239,7 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/zones/us-central1-a/instances/" + instanceName)
+                      ".com/compute/v1/projects/myproject/zones/us-central1-a/instances/" + instanceName)
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
    }
@@ -230,7 +279,8 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
               .put(GET_PROJECT_REQUEST, GET_PROJECT_RESPONSE)
               .put(LIST_ZONES_REQ, LIST_ZONES_RESPONSE)
               .put(LIST_PROJECT_IMAGES_REQUEST, LIST_PROJECT_IMAGES_RESPONSE)
-              .put(LIST_GOOGLE_IMAGES_REQUEST, LIST_GOOGLE_IMAGES_RESPONSE)
+              .put(LIST_DEBIAN_IMAGES_REQUEST, LIST_DEBIAN_IMAGES_RESPONSE)
+              .put(LIST_CENTOS_IMAGES_REQUEST, LIST_CENTOS_IMAGES_RESPONSE)
               .put(LIST_MACHINE_TYPES_REQUEST, LIST_MACHINE_TYPES_RESPONSE)
               .put(LIST_CENTRAL1B_MACHINE_TYPES_REQUEST, LIST_CENTRAL1B_MACHINE_TYPES_RESPONSE)
               .build();
@@ -259,21 +309,21 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
       HttpRequest deleteNodeRequest = HttpRequest.builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/zones/us-central1-a/instances/test-delete-networks")
+                      ".com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-delete-networks")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
       HttpRequest deleteFirewallRequest = HttpRequest.builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/firewalls/jclouds-test-delete")
+                      ".com/compute/v1/projects/myproject/global/firewalls/jclouds-test-delete")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
       HttpRequest getNetworkRequest = HttpRequest.builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/networks/jclouds-test-delete")
+                      ".com/compute/v1/projects/myproject/global/networks/jclouds-test-delete")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -283,7 +333,7 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
       HttpRequest listFirewallsRequest = HttpRequest.builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/firewalls")
+                        ".com/compute/v1/projects/myproject/global/firewalls")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -293,21 +343,32 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
       HttpRequest deleteNetworkReqquest = HttpRequest.builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/networks/jclouds-test-delete")
+                        ".com/compute/v1/projects/myproject/global/networks/jclouds-test-delete")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
+      HttpRequest deleteDiskRequest= HttpRequest.builder()
+                                                .method("DELETE")
+                                                .endpoint("https://www.googleapis" +
+                                                          ".com/compute/v1/projects/myproject/zones/us-central1-a/disks/test")
+                                                .addHeader("Accept", "application/json")
+                                                .addHeader("Authorization", "Bearer " + TOKEN).build();
+
       List<HttpRequest> orderedRequests = ImmutableList.<HttpRequest>builder()
               .add(requestForScopes(COMPUTE_READONLY_SCOPE))
               .add(GET_PROJECT_REQUEST)
               .add(getInstanceRequestForInstance("test-delete-networks"))
-              .add(LIST_PROJECT_IMAGES_REQUEST)
-              .add(LIST_GOOGLE_IMAGES_REQUEST)
               .add(LIST_ZONES_REQ)
               .add(LIST_MACHINE_TYPES_REQUEST)
+              .add(LIST_PROJECT_IMAGES_REQUEST)
+              .add(LIST_DEBIAN_IMAGES_REQUEST)
+              .add(LIST_CENTOS_IMAGES_REQUEST)
+              .add(getInstanceRequestForInstance("test-delete-networks"))
               .add(requestForScopes(COMPUTE_SCOPE))
               .add(deleteNodeRequest)
               .add(GET_ZONE_OPERATION_REQUEST)
+              .add(deleteDiskRequest)
+              .add(GET_ZONE_OPERATION_REQUEST)
               .add(getInstanceRequestForInstance("test-delete-networks"))
               .add(LIST_INSTANCES_REQUEST)
               .add(getNetworkRequest)
@@ -324,13 +385,18 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
               .add(GET_PROJECT_RESPONSE)
               .add(getInstanceResponseForInstanceAndNetworkAndStatus("test-delete-networks", "test-network", Instance
                       .Status.RUNNING.name()))
-              .add(LIST_PROJECT_IMAGES_RESPONSE)
-              .add(LIST_GOOGLE_IMAGES_RESPONSE)
               .add(LIST_ZONES_SHORT_RESPONSE)
               .add(LIST_MACHINE_TYPES_RESPONSE)
+              .add(LIST_PROJECT_IMAGES_RESPONSE)
+              .add(LIST_DEBIAN_IMAGES_RESPONSE)
+              .add(LIST_CENTOS_IMAGES_RESPONSE)
+              .add(getInstanceResponseForInstanceAndNetworkAndStatus("test-delete-networks", "test-network", Instance
+                                                                                                             .Status.RUNNING.name()))
               .add(TOKEN_RESPONSE)
               .add(SUCESSFULL_OPERATION_RESPONSE)
               .add(GET_ZONE_OPERATION_RESPONSE)
+              .add(SUCESSFULL_OPERATION_RESPONSE)
+              .add(GET_ZONE_OPERATION_RESPONSE)
               .add(getInstanceResponseForInstanceAndNetworkAndStatus("test-delete-networks", "test-network", Instance
                       .Status.TERMINATED.name()))
               .add(getListInstancesResponseForSingleInstanceAndNetworkAndStatus("test-delete-networks",
@@ -359,7 +425,8 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
               .put(LIST_INSTANCES_REQUEST, LIST_INSTANCES_RESPONSE)
               .put(LIST_CENTRAL1B_INSTANCES_REQUEST, LIST_CENTRAL1B_INSTANCES_RESPONSE)
               .put(LIST_PROJECT_IMAGES_REQUEST, LIST_PROJECT_IMAGES_RESPONSE)
-              .put(LIST_GOOGLE_IMAGES_REQUEST, LIST_GOOGLE_IMAGES_RESPONSE)
+              .put(LIST_DEBIAN_IMAGES_REQUEST, LIST_DEBIAN_IMAGES_RESPONSE)
+              .put(LIST_CENTOS_IMAGES_REQUEST, LIST_CENTOS_IMAGES_RESPONSE)
               .put(LIST_MACHINE_TYPES_REQUEST, LIST_MACHINE_TYPES_RESPONSE)
               .put(LIST_CENTRAL1B_MACHINE_TYPES_REQUEST, LIST_CENTRAL1B_MACHINE_TYPES_RESPONSE)
               .build();
@@ -392,18 +459,18 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
                  .builder()
                  .method("GET")
                  .endpoint("https://www.googleapis" +
-                         ".com/compute/v1beta16/projects/myproject/global/firewalls/jclouds-test-port-22")
+                         ".com/compute/v1/projects/myproject/global/firewalls/jclouds-test-port-22")
                  .addHeader("Accept", "application/json")
                  .addHeader("Authorization", "Bearer " + TOKEN).build();
 
       HttpRequest insertFirewallRequest = HttpRequest
                  .builder()
                  .method("POST")
-                 .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/firewalls")
+                 .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/global/firewalls")
                  .addHeader("Accept", "application/json")
                  .addHeader("Authorization", "Bearer " + TOKEN)
                  .payload(payloadFromStringWithContentType("{\"name\":\"jclouds-test-port-22\",\"network\":\"https://www.googleapis" +
-                         ".com/compute/v1beta16/projects/myproject/global/networks/jclouds-test\"," +
+                         ".com/compute/v1/projects/myproject/global/networks/jclouds-test\"," +
                          "\"sourceRanges\":[\"10.0.0.0/8\",\"0.0.0.0/0\"],\"sourceTags\":[\"aTag\"],\"targetTags\":[\"jclouds-test-port-22\"],\"allowed\":[{\"IPProtocol\":\"tcp\"," +
                          "\"ports\":[\"22\"]}," +
                          "{\"IPProtocol\":\"udp\",\"ports\":[\"22\"]}]}",
@@ -413,7 +480,7 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
       HttpRequest setTagsRequest = HttpRequest
                  .builder()
                  .method("POST")
-                 .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/zones/us-central1-a/instances/test-1/setTags")
+                 .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/test-1/setTags")
                  .addHeader("Accept", "application/json")
                  .addHeader("Authorization", "Bearer " + TOKEN)
                  .payload(payloadFromStringWithContentType("{\"items\":[\"jclouds-test-port-22\"],\"fingerprint\":\"abcd\"}",
@@ -425,7 +492,8 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
               .add(GET_PROJECT_REQUEST)
               .add(LIST_ZONES_REQ)
               .add(LIST_PROJECT_IMAGES_REQUEST)
-              .add(LIST_GOOGLE_IMAGES_REQUEST)
+              .add(LIST_DEBIAN_IMAGES_REQUEST)
+              .add(LIST_CENTOS_IMAGES_REQUEST)
               .add(LIST_ZONES_REQ)
               .add(LIST_MACHINE_TYPES_REQUEST)
               .add(GET_NETWORK_REQUEST)
@@ -438,9 +506,13 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
               .add(insertFirewallRequest)
               .add(GET_GLOBAL_OPERATION_REQUEST)
               .add(LIST_INSTANCES_REQUEST)
-              .add(LIST_PROJECT_IMAGES_REQUEST)
-              .add(LIST_GOOGLE_IMAGES_REQUEST)
               .add(LIST_MACHINE_TYPES_REQUEST)
+              .add(LIST_PROJECT_IMAGES_REQUEST)
+              .add(LIST_DEBIAN_IMAGES_REQUEST)
+              .add(LIST_CENTOS_IMAGES_REQUEST)
+              .add(createDiskRequestForInstance("test-1"))
+              .add(GET_ZONE_OPERATION_REQUEST)
+              .add(getDiskRequestForInstance("test-1"))
               .add(createInstanceRequestForInstance("test-1", "test", "jclouds-test", openSshKey))
               .add(GET_ZONE_OPERATION_REQUEST)
               .add(getInstanceRequestForInstance("test-1"))
@@ -448,6 +520,9 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
               .add(GET_ZONE_OPERATION_REQUEST)
               .add(getInstanceRequestForInstance("test-1"))
               .add(setTagsRequest)
+              .add(LIST_PROJECT_IMAGES_REQUEST)
+              .add(LIST_DEBIAN_IMAGES_REQUEST)
+              .add(LIST_CENTOS_IMAGES_REQUEST)
               .add(setTagsRequest)
               .build();
 
@@ -456,7 +531,8 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
               .add(GET_PROJECT_RESPONSE)
               .add(LIST_ZONES_SHORT_RESPONSE)
               .add(LIST_PROJECT_IMAGES_RESPONSE)
-              .add(LIST_GOOGLE_IMAGES_RESPONSE)
+              .add(LIST_DEBIAN_IMAGES_RESPONSE)
+              .add(LIST_CENTOS_IMAGES_RESPONSE)
               .add(LIST_ZONES_SHORT_RESPONSE)
               .add(LIST_MACHINE_TYPES_RESPONSE)
               .add(HttpResponse.builder().statusCode(404).build())
@@ -469,9 +545,13 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
               .add(SUCESSFULL_OPERATION_RESPONSE)
               .add(GET_GLOBAL_OPERATION_RESPONSE)
               .add(LIST_INSTANCES_RESPONSE)
-              .add(LIST_PROJECT_IMAGES_RESPONSE)
-              .add(LIST_GOOGLE_IMAGES_RESPONSE)
               .add(LIST_MACHINE_TYPES_RESPONSE)
+              .add(LIST_PROJECT_IMAGES_RESPONSE)
+              .add(LIST_DEBIAN_IMAGES_RESPONSE)
+              .add(LIST_CENTOS_IMAGES_RESPONSE)
+              .add(SUCESSFULL_OPERATION_RESPONSE)
+              .add(GET_ZONE_OPERATION_RESPONSE)
+              .add(getDiskResponseForInstance("test-1"))
               .add(SUCESSFULL_OPERATION_RESPONSE)
               .add(GET_ZONE_OPERATION_RESPONSE)
               .add(getInstanceResponse)
@@ -479,6 +559,9 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
               .add(GET_ZONE_OPERATION_RESPONSE)
               .add(getInstanceResponse)
               .add(SUCESSFULL_OPERATION_RESPONSE)
+              .add(LIST_PROJECT_IMAGES_RESPONSE)
+              .add(LIST_DEBIAN_IMAGES_RESPONSE)
+              .add(LIST_CENTOS_IMAGES_RESPONSE)
               .add(SUCESSFULL_OPERATION_RESPONSE)
               .build();
 
@@ -487,7 +570,8 @@ public class GoogleComputeEngineServiceExpectTest extends BaseGoogleComputeEngin
 
       GoogleComputeEngineTemplateOptions options = computeService.templateOptions().as(GoogleComputeEngineTemplateOptions.class);
       options.tags(ImmutableSet.of("aTag"));
-      getOnlyElement(computeService.createNodesInGroup("test", 1, options));
+      NodeMetadata node = getOnlyElement(computeService.createNodesInGroup("test", 1, options));
+      assertEquals(node.getImageId(), "gcel-12-04-v20121106");
    }
 }
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FirewallToIpPermissionTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FirewallToIpPermissionTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FirewallToIpPermissionTest.java
index 78089e6..62f9260 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FirewallToIpPermissionTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/FirewallToIpPermissionTest.java
@@ -62,8 +62,8 @@ public class FirewallToIpPermissionTest {
               .addPort(33).build());
       builder.addAllowed(Firewall.Rule.builder().IpProtocol(IpProtocol.ICMP).build());
       builder.id("abcd");
-      builder.selfLink(URI.create("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/firewalls/jclouds-test"));
-      builder.network(URI.create("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/networks/jclouds-test"));
+      builder.selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/firewalls/jclouds-test"));
+      builder.network(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/jclouds-test"));
       builder.creationTimestamp(new Date());
       builder.name("jclouds-test");
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java
index 6f655c1..795c989 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/functions/NetworkToSecurityGroupTest.java
@@ -68,7 +68,7 @@ public class NetworkToSecurityGroupTest {
       Network.Builder builder = Network.builder();
 
       builder.id("abcd");
-      builder.selfLink(URI.create("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/networks/jclouds-test"));
+      builder.selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/jclouds-test"));
       builder.creationTimestamp(new Date());
       builder.description("some description");
       builder.gatewayIPv4("1.2.3.4");
@@ -82,7 +82,7 @@ public class NetworkToSecurityGroupTest {
       SecurityGroup group = netToSg.apply(network);
 
       assertEquals(group.getId(), "jclouds-test");
-      assertEquals(group.getUri(), URI.create("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/networks/jclouds-test"));
+      assertEquals(group.getUri(), URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/jclouds-test"));
       assertEquals(group.getIpPermissions().size(), 3);
       assertTrue(Iterables.any(group.getIpPermissions(), Predicates.and(hasProtocol(IpProtocol.TCP),
               hasStartAndEndPort(1, 10))), "No permission found for TCP, ports 1-10");

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/loaders/FindNetworkOrCreateTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/loaders/FindNetworkOrCreateTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/loaders/FindNetworkOrCreateTest.java
index 7fe7249..dc94989 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/loaders/FindNetworkOrCreateTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/loaders/FindNetworkOrCreateTest.java
@@ -52,7 +52,7 @@ public class FindNetworkOrCreateTest {
 
       Network network = Network.builder().IPv4Range("0.0.0.0/0")
               .id("abcd").name("this-network")
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/networks/this-network"))
+              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/this-network"))
               .build();
 
       final Supplier<String> userProject = new Supplier<String>() {
@@ -94,7 +94,7 @@ public class FindNetworkOrCreateTest {
 
       Network network = Network.builder().IPv4Range("0.0.0.0/0")
               .id("abcd").name("this-network")
-              .selfLink(URI.create("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/networks/this-network"))
+              .selfLink(URI.create("https://www.googleapis.com/compute/v1/projects/myproject/global/networks/this-network"))
               .build();
 
       Operation createOp = createMock(Operation.class);

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java
index d29a2a0..8b69df1 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/AddressApiExpectTest.java
@@ -42,7 +42,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
       HttpRequest get = HttpRequest
               .builder()
               .method("GET")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/regions/us-central1/addresses/test-ip1")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/addresses/test-ip1")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -60,7 +60,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
       HttpRequest get = HttpRequest
               .builder()
               .method("GET")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/regions/us-central1/addresses/test-ip1")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/addresses/test-ip1")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -76,7 +76,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
       HttpRequest insert = HttpRequest
               .builder()
               .method("POST")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/regions/us-central1/addresses")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/regions/us-central1/addresses")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN)
               .payload(payloadFromResourceWithContentType("/address_insert.json", MediaType.APPLICATION_JSON))
@@ -97,7 +97,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/regions/us-central1/addresses/test-ip1")
+                      ".com/compute/v1/projects/myproject/regions/us-central1/addresses/test-ip1")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -116,7 +116,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/regions/us-central1/addresses/test-ip1")
+                      ".com/compute/v1/projects/myproject/regions/us-central1/addresses/test-ip1")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -133,7 +133,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/regions/us-central1/addresses")
+                      ".com/compute/v1/projects/myproject/regions/us-central1/addresses")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -152,7 +152,7 @@ public class AddressApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/regions/us-central1/addresses")
+                      ".com/compute/v1/projects/myproject/regions/us-central1/addresses")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java
index 60f3479..450e079 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/DiskApiExpectTest.java
@@ -37,12 +37,13 @@ import org.testng.annotations.Test;
  */
 @Test(groups = "unit")
 public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
+   public static final String IMAGE_URL = "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/images/foo";
 
    public void testGetDiskResponseIs2xx() throws Exception {
       HttpRequest get = HttpRequest
               .builder()
               .method("GET")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/zones/us-central1-a/disks/testimage1")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -60,7 +61,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
       HttpRequest get = HttpRequest
               .builder()
               .method("GET")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/zones/us-central1-a/disks/testimage1")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -76,7 +77,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
       HttpRequest insert = HttpRequest
               .builder()
               .method("POST")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/zones/us-central1-a/disks")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN)
               .payload(payloadFromResourceWithContentType("/disk_insert.json", MediaType.APPLICATION_JSON))
@@ -92,11 +93,32 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
       assertEquals(api.createInZone("testimage1", 1, "us-central1-a"), new ParseOperationTest().expected());
    }
 
+   public void testInsertDiskFromImageResponseIs2xx() {
+      HttpRequest insert = HttpRequest
+              .builder()
+              .method("POST")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks"
+                       + "?sourceImage=" + IMAGE_URL.replaceAll(":", "%3A"))
+              .addHeader("Accept", "application/json")
+              .addHeader("Authorization", "Bearer " + TOKEN)
+              .payload(payloadFromResourceWithContentType("/disk_insert.json", MediaType.APPLICATION_JSON))
+              .build();
+
+      HttpResponse insertDiskResponse = HttpResponse.builder().statusCode(200)
+                                                    .payload(payloadFromResource("/zone_operation.json")).build();
+
+      DiskApi api = requestsSendResponses(requestForScopes(COMPUTE_SCOPE),
+                                          TOKEN_RESPONSE, insert,
+                                          insertDiskResponse).getDiskApiForProject("myproject");
+
+      assertEquals(api.createFromImageWithSizeInZone(IMAGE_URL, "testimage1", 1, "us-central1-a"), new ParseOperationTest().expected());
+   }
+
    public void testCreateSnapshotResponseIs2xx() {
       HttpRequest createSnapshotRequest = HttpRequest
               .builder()
               .method("POST")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/zones/us-central1-a/disks"
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks"
                       + "/testimage1/createSnapshot")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN)
@@ -117,7 +139,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
       HttpRequest createSnapshotRequest = HttpRequest
               .builder()
               .method("POST")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/zones/us-central1-a/disks"
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks"
                       + "/testimage1/createSnapshot")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN)
@@ -138,7 +160,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/zones/us-central1-a/disks/testimage1")
+                      ".com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -157,7 +179,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/zones/us-central1-a/disks/testimage1")
+                      ".com/compute/v1/projects/myproject/zones/us-central1-a/disks/testimage1")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -174,7 +196,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/zones/us-central1-a/disks")
+                      ".com/compute/v1/projects/myproject/zones/us-central1-a/disks")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -193,7 +215,7 @@ public class DiskApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/zones/us-central1-a/disks")
+                      ".com/compute/v1/projects/myproject/zones/us-central1-a/disks")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/FirewallApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/FirewallApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/FirewallApiExpectTest.java
index e21254d..d41d153 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/FirewallApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/FirewallApiExpectTest.java
@@ -58,7 +58,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
            .builder()
            .method("GET")
            .endpoint("https://www.googleapis" +
-                   ".com/compute/v1beta16/projects/myproject/global/firewalls/jclouds-test")
+                   ".com/compute/v1/projects/myproject/global/firewalls/jclouds-test")
            .addHeader("Accept", "application/json")
            .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -108,7 +108,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/firewalls/jclouds-test")
+                      ".com/compute/v1/projects/myproject/global/firewalls/jclouds-test")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -125,7 +125,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
       HttpRequest request = HttpRequest
               .builder()
               .method("POST")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/firewalls")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/global/firewalls")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN)
               .payload(firewallPayloadFirewallOfName(
@@ -144,7 +144,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
               TOKEN_RESPONSE, request, insertFirewallResponse).getFirewallApiForProject("myproject");
 
       assertEquals(api.createInNetwork("myfw", URI.create("https://www.googleapis" +
-              ".com/compute/v1beta16/projects/myproject/global/networks/default"),
+              ".com/compute/v1/projects/myproject/global/networks/default"),
               new FirewallOptions()
                       .addAllowedRule(Firewall.Rule.builder()
                               .IpProtocol(IpProtocol.TCP)
@@ -160,7 +160,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
       HttpRequest update = HttpRequest
               .builder()
               .method("PUT")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/firewalls/myfw")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/global/firewalls/myfw")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN)
               .payload(firewallPayloadFirewallOfName(
@@ -183,7 +183,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
               new FirewallOptions()
                       .name("myfw")
                       .network(URI.create("https://www.googleapis" +
-                              ".com/compute/v1beta16/projects/myproject/global/networks/default"))
+                              ".com/compute/v1/projects/myproject/global/networks/default"))
                       .addAllowedRule(Firewall.Rule.builder()
                               .IpProtocol(IpProtocol.TCP)
                               .addPort(22)
@@ -197,7 +197,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
       HttpRequest update = HttpRequest
               .builder()
               .method("PATCH")
-              .endpoint("https://www.googleapis.com/compute/v1beta16/projects/myproject/global/firewalls/myfw")
+              .endpoint("https://www.googleapis.com/compute/v1/projects/myproject/global/firewalls/myfw")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN)
               .payload(firewallPayloadFirewallOfName(
@@ -220,7 +220,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
               new FirewallOptions()
                       .name("myfw")
                       .network(URI.create("https://www.googleapis" +
-                              ".com/compute/v1beta16/projects/myproject/global/networks/default"))
+                              ".com/compute/v1/projects/myproject/global/networks/default"))
                       .addAllowedRule(Firewall.Rule.builder()
                               .IpProtocol(IpProtocol.TCP)
                               .addPort(22)
@@ -235,7 +235,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
               .builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/firewalls/default-allow-internal")
+                      ".com/compute/v1/projects/myproject/global/firewalls/default-allow-internal")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -254,7 +254,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
               .builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/firewalls/default-allow-internal")
+                      ".com/compute/v1/projects/myproject/global/firewalls/default-allow-internal")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -271,7 +271,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/firewalls")
+                      ".com/compute/v1/projects/myproject/global/firewalls")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -290,7 +290,7 @@ public class FirewallApiExpectTest extends BaseGoogleComputeEngineApiExpectTest
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/firewalls")
+                      ".com/compute/v1/projects/myproject/global/firewalls")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalOperationApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalOperationApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalOperationApiExpectTest.java
index e6bf13a..ef7c03f 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalOperationApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/GlobalOperationApiExpectTest.java
@@ -37,7 +37,7 @@ import org.testng.annotations.Test;
 public class GlobalOperationApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
 
    private static final String OPERATIONS_URL_PREFIX = "https://www.googleapis" +
-           ".com/compute/v1beta16/projects/myproject/global/operations";
+           ".com/compute/v1/projects/myproject/global/operations";
 
    public static final HttpRequest GET_GLOBAL_OPERATION_REQUEST = HttpRequest
            .builder()

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiExpectTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiExpectTest.java
index 1dacd22..30449f0 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiExpectTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiExpectTest.java
@@ -40,30 +40,40 @@ public class ImageApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
            .builder()
            .method("GET")
            .endpoint("https://www.googleapis" +
-                   ".com/compute/v1beta16/projects/myproject/global/images")
+                   ".com/compute/v1/projects/myproject/global/images")
            .addHeader("Accept", "application/json")
            .addHeader("Authorization", "Bearer " + TOKEN).build();
 
    public static final HttpResponse LIST_PROJECT_IMAGES_RESPONSE = HttpResponse.builder().statusCode(200)
            .payload(staticPayloadFromResource("/image_list.json")).build();
 
-   public static final HttpRequest LIST_GOOGLE_IMAGES_REQUEST = HttpRequest
+   public static final HttpRequest LIST_CENTOS_IMAGES_REQUEST = HttpRequest
            .builder()
            .method("GET")
-           .endpoint("https://www.googleapis.com/compute/v1beta16/projects/google/global/images")
+           .endpoint("https://www.googleapis.com/compute/v1/projects/centos-cloud/global/images")
            .addHeader("Accept", "application/json")
            .addHeader("Authorization", "Bearer " + TOKEN).build();
 
-   public static final HttpResponse LIST_GOOGLE_IMAGES_RESPONSE = HttpResponse.builder().statusCode(200)
+   public static final HttpResponse LIST_CENTOS_IMAGES_RESPONSE = HttpResponse.builder().statusCode(200)
            .payload(staticPayloadFromResource("/image_list_single_page.json")).build();
 
+   public static final HttpRequest LIST_DEBIAN_IMAGES_REQUEST = HttpRequest
+           .builder()
+           .method("GET")
+           .endpoint("https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images")
+           .addHeader("Accept", "application/json")
+           .addHeader("Authorization", "Bearer " + TOKEN).build();
+
+   public static final HttpResponse LIST_DEBIAN_IMAGES_RESPONSE =
+      HttpResponse.builder().statusCode(200)
+                  .payload(staticPayloadFromResource("/image_list_empty.json")).build();
 
    public void testGetImageResponseIs2xx() throws Exception {
       HttpRequest get = HttpRequest
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/google/global/images/centos-6-2-v20120326")
+                      ".com/compute/v1/projects/centos-cloud/global/images/centos-6-2-v20120326")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -71,7 +81,7 @@ public class ImageApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .payload(payloadFromResource("/image_get.json")).build();
 
       ImageApi imageApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, operationResponse).getImageApiForProject("google");
+              TOKEN_RESPONSE, get, operationResponse).getImageApiForProject("centos-cloud");
 
       assertEquals(imageApi.get("centos-6-2-v20120326"),
               new ParseImageTest().expected());
@@ -82,14 +92,14 @@ public class ImageApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("GET")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/google/global/images/centos-6-2-v20120326")
+                      ".com/compute/v1/projects/centos-cloud/global/images/centos-6-2-v20120326")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
       HttpResponse operationResponse = HttpResponse.builder().statusCode(404).build();
 
       ImageApi imageApi = requestsSendResponses(requestForScopes(COMPUTE_READONLY_SCOPE),
-              TOKEN_RESPONSE, get, operationResponse).getImageApiForProject("google");
+              TOKEN_RESPONSE, get, operationResponse).getImageApiForProject("centos-cloud");
 
       assertNull(imageApi.get("centos-6-2-v20120326"));
    }
@@ -99,7 +109,7 @@ public class ImageApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/images/centos-6-2-v20120326")
+                      ".com/compute/v1/projects/myproject/global/images/centos-6-2-v20120326")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 
@@ -118,7 +128,7 @@ public class ImageApiExpectTest extends BaseGoogleComputeEngineApiExpectTest {
               .builder()
               .method("DELETE")
               .endpoint("https://www.googleapis" +
-                      ".com/compute/v1beta16/projects/myproject/global/images/centos-6-2-v20120326")
+                      ".com/compute/v1/projects/myproject/global/images/centos-6-2-v20120326")
               .addHeader("Accept", "application/json")
               .addHeader("Authorization", "Bearer " + TOKEN).build();
 

http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/2aa7340a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiLiveTest.java
index 1180949..0ca6ad0 100644
--- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiLiveTest.java
+++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/features/ImageApiLiveTest.java
@@ -42,7 +42,7 @@ public class ImageApiLiveTest extends BaseGoogleComputeEngineApiLiveTest {
    private Image image;
 
    private ImageApi api() {
-      return api.getImageApiForProject("google");
+      return api.getImageApiForProject("centos-cloud");
    }
 
    @Test(groups = "live")