http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/README.txt
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/README.txt 
b/dependencies/jclouds/apis/gce/1.8.1-stratos/README.txt
deleted file mode 100644
index 0801104..0000000
--- a/dependencies/jclouds/apis/gce/1.8.1-stratos/README.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-======
-Stratos GCE provider 1.8.1
-======
-
-This code in Stratos is copied from Jclouds GCE [1]
-The jclouds GCE code has 2 directories oauth & google-compute-engine
-In Stratos, these two directories are mered into one.
-
-[1] 
https://github.com/jclouds/jclouds-labs-google/tree/jclouds-labs-google-1.8.1
-
-
-
-
-======
-jclouds Google Compute Engine Provider
-======
-
-
-Authenticating into the instances:
---------
-
-User:
-If no user is provided in GoogleComputeEngineTemplateOptions when launching an 
instance by default "jclouds" is used.
-
-Credential:
-
-GCE uses exclusively ssh keys to login into instances.
-In order for an instance to be sshable a public key must be installed. Public 
keys are installed if they are present in the project or instance's metatada.
-
-For an instance to be ssable one of the following must happen:
-1 - the project's metadata has an adequately built "sshKeys" entry and a 
corresponding private key is provided in GoogleComputeEngineTemplateOptions 
when createNodesInGroup is called.
-2 - an instance of GoogleComputeEngineTemplateOptions with an adequate public 
and private key is provided.
-
-NOTE: if methods 2 is chosen the global project keys will not be installed in 
the instance.
-
-Please refer to Google's documentation on how to form valid project wide ssh 
keys metadata entries.
-
-FAQ:
---------
-
-* Q. What is the identity for GCE?
-
-A. the identity is the developer email which can be obtained from the admin 
GUI. Its usually something in the form: <my account 
id>@developer.gserviceaccount.com
-
-* Q. What is the credential for GCE
-
-A. the credential is a private key, in pem format. It can be extracted from 
the p12 keystore that is obtained when creating a "Service Account" (in the 
GUI: Google apis console > Api Access > Create another client ID > "Service 
Account"
-
-* Q. How to convert a p12 keystore into a pem format jclouds Google Compute 
Engine can handle:
-
-A.
-
-1. Convert the p12 file into pem format (it will ask for the keystore 
password, which is usually "notasecret"):
- openssl pkcs12 -in <my_keystore>.p12 -out <my_keystore>.pem -nodes
-
-2. Extract only the pk and remove passphrase
- openssl rsa -in <my_keystore>.pem -out <my_key>.pem
-
-The last file (<my_key>.pem) should contain the pk that needs to be passed to 
`ContextBuilder.credential()` for the provider `google-compute-engine`.
-
-
-Running the live tests:
---------
-
-1. Place the following in your ~/.m2/settings.xml in a profile enabled when 
live:
-```
-    
<test.google-compute-engine.identity>[email protected]</test.google-compute-engine.identity>
-    <test.google-compute-engine.credential>-----BEGIN RSA PRIVATE KEY-----
-MIICXgIBAAKBgQRRbRqVDtJLN1MO/xJoKqZuphDeBh5jIKueW3aNIiWs1XFcct+h
--- this text is literally from your <my_key>.pem
-aH7xmpHSTbbXmQkuuv+z8EKijigprd/FoJpTX1f5/R+4wQ==
------END RSA PRIVATE KEY-----</test.google-compute-engine.credential>
-  </properties>
-```
-
-2. mvn clean install -Plive 
-

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/pom.xml 
b/dependencies/jclouds/apis/gce/1.8.1-stratos/pom.xml
deleted file mode 100644
index c1a7b9d..0000000
--- a/dependencies/jclouds/apis/gce/1.8.1-stratos/pom.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.jclouds.labs</groupId>
-        <artifactId>jclouds-labs-google</artifactId>
-        <version>1.8.1</version>
-    </parent>
-
-    <!-- TODO: when out of labs, switch to org.jclouds.provider -->
-    <groupId>org.apache.stratos</groupId>
-    <artifactId>gce</artifactId>
-    <version>1.8.1-stratosv1</version>
-    <name>jclouds Google Compute Engine provider</name>
-    <description>jclouds components to access GoogleCompute</description>
-    <packaging>bundle</packaging>
-
-    <properties>
-        <jclouds.version>1.8.1</jclouds.version>
-        <test.google-compute-engine.identity>Email associated with the Google 
API client_id
-        </test.google-compute-engine.identity>
-        <test.google-compute-engine.credential>Private key (PKCS12 file) 
associated with the Google API client_id
-        </test.google-compute-engine.credential>
-        
<test.google-compute-engine.api-version>v1</test.google-compute-engine.api-version>
-        <test.google-compute-engine.build-version/>
-        
<test.google-compute-engine.template>imageId=debian-7-wheezy-v20131120,locationId=us-central1-a,minRam=2048
-        </test.google-compute-engine.template>
-        
<jclouds.osgi.export>org.jclouds.googlecomputeengine*;version="${project.version}"</jclouds.osgi.export>
-        <jclouds.osgi.import>
-            org.jclouds.compute.internal;version="${jclouds.version}",
-            org.jclouds.rest.internal;version="${jclouds.version}",
-            org.jclouds*;version="${jclouds.version}",
-            *
-        </jclouds.osgi.import>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.jclouds</groupId>
-            <artifactId>jclouds-core</artifactId>
-            <version>${jclouds.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jclouds</groupId>
-            <artifactId>jclouds-compute</artifactId>
-            <version>${jclouds.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jclouds</groupId>
-            <artifactId>jclouds-compute</artifactId>
-            <version>${jclouds.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jclouds</groupId>
-            <artifactId>jclouds-core</artifactId>
-            <version>${jclouds.version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jclouds.driver</groupId>
-            <artifactId>jclouds-slf4j</artifactId>
-            <version>${jclouds.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jclouds.driver</groupId>
-            <artifactId>jclouds-sshj</artifactId>
-            <version>${jclouds.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-    <profiles>
-        <profile>
-            <id>live</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>default-test</id>
-                                <configuration>
-                                    <skipTests>true</skipTests>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>integration</id>
-                                <phase>integration-test</phase>
-                                <goals>
-                                    <goal>test</goal>
-                                </goals>
-                                <configuration>
-                                    <systemPropertyVariables>
-                                        
<test.google-compute-engine.identity>${test.google-compute-engine.identity}
-                                        </test.google-compute-engine.identity>
-                                        <test.google-compute-engine.credential>
-                                            
${test.google-compute-engine.credential}
-                                        
</test.google-compute-engine.credential>
-                                        
<test.google-compute-engine.api-version>
-                                            
${test.google-compute-engine.api-version}
-                                        
</test.google-compute-engine.api-version>
-                                        
<test.google-compute-engine.build-version>
-                                            
${test.google-compute-engine.build-version}
-                                        
</test.google-compute-engine.build-version>
-                                        
<test.google-compute-engine.template>${test.google-compute-engine.template}
-                                        </test.google-compute-engine.template>
-                                    </systemPropertyVariables>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApi.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApi.java
 
b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApi.java
deleted file mode 100644
index 6440d91..0000000
--- 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApi.java
+++ /dev/null
@@ -1,185 +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;
-
-import java.io.Closeable;
-
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-
-import org.jclouds.googlecomputeengine.features.AddressApi;
-import org.jclouds.googlecomputeengine.features.DiskApi;
-import org.jclouds.googlecomputeengine.features.FirewallApi;
-import org.jclouds.googlecomputeengine.features.GlobalOperationApi;
-import org.jclouds.googlecomputeengine.features.ImageApi;
-import org.jclouds.googlecomputeengine.features.InstanceApi;
-import org.jclouds.googlecomputeengine.features.MachineTypeApi;
-import org.jclouds.googlecomputeengine.features.NetworkApi;
-import org.jclouds.googlecomputeengine.features.ProjectApi;
-import org.jclouds.googlecomputeengine.features.RegionApi;
-import org.jclouds.googlecomputeengine.features.RegionOperationApi;
-import org.jclouds.googlecomputeengine.features.RouteApi;
-import org.jclouds.googlecomputeengine.features.SnapshotApi;
-import org.jclouds.googlecomputeengine.features.ZoneApi;
-import org.jclouds.googlecomputeengine.features.ZoneOperationApi;
-import org.jclouds.rest.annotations.Delegate;
-
-import com.google.common.annotations.Beta;
-
-
-/**
- * Provides access to GoogleCompute.
- * <p/>
- *
- * @see <a href="https://developers.google.com/compute/docs/reference/v1";>api 
doc</a>
- */
-@Beta
-public interface GoogleComputeEngineApi extends Closeable {
-
-   /**
-    * Provides access to Address features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   AddressApi getAddressApiForProject(@PathParam("project") String 
projectName);
-
-   /**
-    * Provides access to Disk features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   DiskApi getDiskApiForProject(@PathParam("project") String projectName);
-
-   /**
-    * Provides access to Firewall features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   FirewallApi getFirewallApiForProject(@PathParam("project") String 
projectName);
-
-   /**
-    * Provides access to Global Operation features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   GlobalOperationApi getGlobalOperationApiForProject(@PathParam("project") 
String projectName);
-
-   /**
-    * Provides access to Image features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   ImageApi getImageApiForProject(@PathParam("project") String projectName);
-
-   /**
-    * Provides access to Instance features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   InstanceApi getInstanceApiForProject(@PathParam("project") String 
projectName);
-
-   /**
-    * Provides access to MachineType features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   MachineTypeApi getMachineTypeApiForProject(@PathParam("project") String 
projectName);
-
-   /**
-    * Provides access to Network features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   NetworkApi getNetworkApiForProject(@PathParam("project") String 
projectName);
-
-   /**
-    * Provides access to Project features
-    */
-   @Delegate
-   ProjectApi getProjectApi();
-
-   /**
-    * Provides access to Region features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   RegionApi getRegionApiForProject(@PathParam("project") String projectName);
-
-   /**
-    * Provides access to Region Operation features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   RegionOperationApi getRegionOperationApiForProject(@PathParam("project") 
String projectName);
-
-   /**
-    * Provides access to Route features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   RouteApi getRouteApiForProject(@PathParam("project") String projectName);
-
-   /**
-    * Provides access to Snapshot features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   SnapshotApi getSnapshotApiForProject(@PathParam("project") String 
projectName);
-
-   /**
-    * Provides access to Zone features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   ZoneApi getZoneApiForProject(@PathParam("project") String projectName);
-
-   /**
-    * Provides access to Zone Operation features
-    *
-    * @param projectName the name of the project
-    */
-   @Delegate
-   @Path("/projects/{project}")
-   ZoneOperationApi getZoneOperationApiForProject(@PathParam("project") String 
projectName);
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadata.java
 
b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadata.java
deleted file mode 100644
index 544a851..0000000
--- 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineApiMetadata.java
+++ /dev/null
@@ -1,103 +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;
-
-import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
-import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.GCE_PROVIDER_NAME;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_INTERVAL;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_TIMEOUT;
-import static org.jclouds.oauth.v2.config.OAuthProperties.AUDIENCE;
-import static 
org.jclouds.oauth.v2.config.OAuthProperties.SIGNATURE_OR_MAC_ALGORITHM;
-import static org.jclouds.reflect.Reflection2.typeToken;
-
-import java.net.URI;
-import java.util.Properties;
-
-import org.jclouds.compute.ComputeServiceContext;
-import 
org.jclouds.googlecomputeengine.compute.config.GoogleComputeEngineServiceContextModule;
-import org.jclouds.googlecomputeengine.config.GoogleComputeEngineHttpApiModule;
-import org.jclouds.googlecomputeengine.config.GoogleComputeEngineParserModule;
-import org.jclouds.googlecomputeengine.config.OAuthModuleWithoutTypeAdapters;
-import org.jclouds.oauth.v2.config.OAuthAuthenticationModule;
-import org.jclouds.rest.internal.BaseHttpApiMetadata;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-
-/**
- * Implementation of {@link ApiMetadata} for GoogleCompute v1 API
- */
-public class GoogleComputeEngineApiMetadata extends 
BaseHttpApiMetadata<GoogleComputeEngineApi> {
-
-   @Override
-   public Builder toBuilder() {
-      return new Builder().fromApiMetadata(this);
-   }
-
-   public GoogleComputeEngineApiMetadata() {
-      this(new Builder());
-   }
-
-   protected GoogleComputeEngineApiMetadata(Builder builder) {
-      super(builder);
-   }
-
-   public static Properties defaultProperties() {
-      Properties properties = BaseHttpApiMetadata.defaultProperties();
-      properties.put("oauth.endpoint", 
"https://accounts.google.com/o/oauth2/token";);
-      properties.put(AUDIENCE, "https://accounts.google.com/o/oauth2/token";);
-      properties.put(SIGNATURE_OR_MAC_ALGORITHM, "RS256");
-      properties.put(PROPERTY_SESSION_INTERVAL, 3600);
-      properties.setProperty(TEMPLATE, 
"osFamily=DEBIAN,osVersionMatches=7\\..*,locationId=us-central1-a,loginUser=jclouds");
-      properties.put(OPERATION_COMPLETE_INTERVAL, 500);
-      properties.put(OPERATION_COMPLETE_TIMEOUT, 600000);
-      return properties;
-   }
-
-   public static class Builder extends 
BaseHttpApiMetadata.Builder<GoogleComputeEngineApi, Builder> {
-
-      protected Builder() {
-         id(GCE_PROVIDER_NAME)
-                 .name("Google Compute Engine Api")
-                 .identityName("Email associated with the Google API 
client_id")
-                 .credentialName("Private key literal associated with the 
Google API client_id")
-                 
.documentation(URI.create("https://developers.google.com/compute/docs";))
-                 .version("v1")
-                 .defaultEndpoint("https://www.googleapis.com/compute/v1";)
-                 
.defaultProperties(GoogleComputeEngineApiMetadata.defaultProperties())
-                 .view(typeToken(ComputeServiceContext.class))
-                 .defaultModules(ImmutableSet.<Class<? extends 
Module>>builder()
-                         .add(GoogleComputeEngineHttpApiModule.class)
-                         .add(GoogleComputeEngineParserModule.class)
-                         .add(OAuthAuthenticationModule.class)
-                         .add(OAuthModuleWithoutTypeAdapters.class)
-                         .add(GoogleComputeEngineServiceContextModule.class)
-                         .build());
-      }
-
-      @Override
-      public GoogleComputeEngineApiMetadata build() {
-         return new GoogleComputeEngineApiMetadata(this);
-      }
-
-      @Override
-      protected Builder self() {
-         return this;
-      }
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineConstants.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineConstants.java
 
b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineConstants.java
deleted file mode 100644
index d20ff98..0000000
--- 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/GoogleComputeEngineConstants.java
+++ /dev/null
@@ -1,81 +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;
-
-import org.jclouds.domain.Location;
-import org.jclouds.domain.LocationBuilder;
-import org.jclouds.domain.LocationScope;
-
-import com.google.common.annotations.Beta;
-
-public final class GoogleComputeEngineConstants {
-
-   public static final String GCE_PROVIDER_NAME = "google-compute-engine";
-
-   /**
-    * The name of the project that keeps public resources.
-    */
-   public static final String GOOGLE_PROJECT = "google";
-
-   public static final String CENTOS_PROJECT = "centos-cloud";
-
-   public static final String DEBIAN_PROJECT = "debian-cloud";
-
-   public static final String COMPUTE_SCOPE = 
"https://www.googleapis.com/auth/compute";;
-
-   public static final String COMPUTE_READONLY_SCOPE = 
"https://www.googleapis.com/auth/compute.readonly";;
-
-   public static final String STORAGE_READONLY_SCOPE = 
"https://www.googleapis.com/auth/devstorage.read_only";;
-
-   public static final String STORAGE_WRITEONLY_SCOPE = 
"https://www.googleapis.com/auth/devstorage.write_only";;
-
-
-   /**
-    * The total time, in msecs, to wait for an operation to complete.
-    */
-   @Beta
-   public static final String OPERATION_COMPLETE_TIMEOUT = 
"jclouds.google-compute-engine.operation-complete-timeout";
-
-   /**
-    * The interval, in msecs, between calls to check whether an operation has 
completed.
-    */
-   @Beta
-   public static final String OPERATION_COMPLETE_INTERVAL = 
"jclouds.google-compute-engine.operation-complete-interval";
-
-   public static final Location GOOGLE_PROVIDER_LOCATION = new 
LocationBuilder().scope(LocationScope.PROVIDER).id
-           (GCE_PROVIDER_NAME).description(GCE_PROVIDER_NAME).build();
-
-
-   /**
-    * The key we look for in instance metadata for the URI for the image the 
instance was created from.
-    */
-   public static final String GCE_IMAGE_METADATA_KEY = "jclouds-image";
-
-   /**
-    * Metadata key to check for whether we should delete an instance's boot 
disk when we delete the instance.
-    */
-   public static final String GCE_DELETE_BOOT_DISK_METADATA_KEY = 
"jclouds-delete-boot-disk";
-
-   /**
-    * The suffix we append to auto-created boot disk names.
-    */
-   public static final String GCE_BOOT_DISK_SUFFIX = "boot-disk";
-
-   private GoogleComputeEngineConstants() {
-      throw new AssertionError("intentionally unimplemented");
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java
 
b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java
deleted file mode 100644
index 3c140eb..0000000
--- 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineService.java
+++ /dev/null
@@ -1,200 +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.compute;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static 
org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING;
-import static 
org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_SUSPENDED;
-import static 
org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_INTERVAL;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_TIMEOUT;
-import static org.jclouds.util.Predicates2.retry;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicReference;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Provider;
-
-import org.jclouds.Constants;
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.compute.callables.RunScriptOnNode;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.TemplateBuilder;
-import org.jclouds.compute.extensions.ImageExtension;
-import org.jclouds.compute.extensions.SecurityGroupExtension;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.compute.internal.BaseComputeService;
-import org.jclouds.compute.internal.PersistNodeCredentials;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.compute.strategy.CreateNodesInGroupThenAddToSet;
-import org.jclouds.compute.strategy.DestroyNodeStrategy;
-import org.jclouds.compute.strategy.GetImageStrategy;
-import org.jclouds.compute.strategy.GetNodeMetadataStrategy;
-import org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap;
-import org.jclouds.compute.strategy.ListNodesStrategy;
-import org.jclouds.compute.strategy.RebootNodeStrategy;
-import org.jclouds.compute.strategy.ResumeNodeStrategy;
-import org.jclouds.compute.strategy.SuspendNodeStrategy;
-import org.jclouds.domain.Credentials;
-import org.jclouds.domain.Location;
-import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
-import 
org.jclouds.googlecomputeengine.compute.options.GoogleComputeEngineTemplateOptions;
-import org.jclouds.googlecomputeengine.config.UserProject;
-import org.jclouds.googlecomputeengine.domain.Firewall;
-import org.jclouds.googlecomputeengine.domain.Network;
-import org.jclouds.googlecomputeengine.domain.Operation;
-import org.jclouds.googlecomputeengine.features.FirewallApi;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.scriptbuilder.functions.InitAdminAccess;
-
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-import com.google.common.collect.Sets;
-import com.google.common.util.concurrent.Atomics;
-import com.google.common.util.concurrent.ListeningExecutorService;
-
-public class GoogleComputeEngineService extends BaseComputeService {
-
-   private final Function<Set<? extends NodeMetadata>, Set<String>> 
findOrphanedGroups;
-   private final GroupNamingConvention.Factory namingConvention;
-   private final GoogleComputeEngineApi api;
-   private final Supplier<String> project;
-   private final Predicate<AtomicReference<Operation>> operationDonePredicate;
-   private final long operationCompleteCheckInterval;
-   private final long operationCompleteCheckTimeout;
-
-   @Inject
-   protected GoogleComputeEngineService(ComputeServiceContext context,
-                                        Map<String, Credentials> 
credentialStore,
-                                        @Memoized Supplier<Set<? extends 
Image>> images,
-                                        @Memoized Supplier<Set<? extends 
Hardware>> hardwareProfiles,
-                                        @Memoized Supplier<Set<? extends 
Location>> locations,
-                                        ListNodesStrategy listNodesStrategy,
-                                        GetImageStrategy getImageStrategy,
-                                        GetNodeMetadataStrategy 
getNodeMetadataStrategy,
-                                        CreateNodesInGroupThenAddToSet 
runNodesAndAddToSetStrategy,
-                                        RebootNodeStrategy rebootNodeStrategy,
-                                        DestroyNodeStrategy 
destroyNodeStrategy,
-                                        ResumeNodeStrategy resumeNodeStrategy,
-                                        SuspendNodeStrategy 
suspendNodeStrategy,
-                                        Provider<TemplateBuilder> 
templateBuilderProvider,
-                                        @Named("DEFAULT") 
Provider<TemplateOptions> templateOptionsProvider,
-                                        @Named(TIMEOUT_NODE_RUNNING) 
Predicate<AtomicReference<NodeMetadata>>
-                                                nodeRunning,
-                                        @Named(TIMEOUT_NODE_TERMINATED) 
Predicate<AtomicReference<NodeMetadata>>
-                                                nodeTerminated,
-                                        @Named(TIMEOUT_NODE_SUSPENDED)
-                                        
Predicate<AtomicReference<NodeMetadata>> nodeSuspended,
-                                        
InitializeRunScriptOnNodeOrPlaceInBadMap.Factory initScriptRunnerFactory,
-                                        InitAdminAccess initAdminAccess,
-                                        RunScriptOnNode.Factory 
runScriptOnNodeFactory,
-                                        PersistNodeCredentials 
persistNodeCredentials,
-                                        ComputeServiceConstants.Timeouts 
timeouts,
-                                        
@Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor,
-                                        Optional<ImageExtension> 
imageExtension,
-                                        Optional<SecurityGroupExtension> 
securityGroupExtension,
-                                        Function<Set<? extends NodeMetadata>, 
Set<String>> findOrphanedGroups,
-                                        GroupNamingConvention.Factory 
namingConvention,
-                                        GoogleComputeEngineApi api,
-                                        @UserProject Supplier<String> project,
-                                        @Named("global") 
Predicate<AtomicReference<Operation>> operationDonePredicate,
-                                        @Named(OPERATION_COMPLETE_INTERVAL) 
Long operationCompleteCheckInterval,
-                                        @Named(OPERATION_COMPLETE_TIMEOUT) 
Long operationCompleteCheckTimeout) {
-
-      super(context, credentialStore, images, hardwareProfiles, locations, 
listNodesStrategy, getImageStrategy,
-              getNodeMetadataStrategy, runNodesAndAddToSetStrategy, 
rebootNodeStrategy, destroyNodeStrategy,
-              resumeNodeStrategy, suspendNodeStrategy, 
templateBuilderProvider, templateOptionsProvider, nodeRunning,
-              nodeTerminated, nodeSuspended, initScriptRunnerFactory, 
initAdminAccess, runScriptOnNodeFactory,
-              persistNodeCredentials, timeouts, userExecutor, imageExtension, 
securityGroupExtension);
-      this.findOrphanedGroups = checkNotNull(findOrphanedGroups, "find 
orphaned groups function");
-      this.namingConvention = checkNotNull(namingConvention, "naming 
convention factory");
-      this.api = checkNotNull(api, "google compute api");
-      this.project = checkNotNull(project, "user project name");
-      this.operationDonePredicate = checkNotNull(operationDonePredicate, 
"operation completed predicate");
-      this.operationCompleteCheckInterval = 
checkNotNull(operationCompleteCheckInterval,
-              "operation completed check interval");
-      this.operationCompleteCheckTimeout = 
checkNotNull(operationCompleteCheckTimeout,
-              "operation completed check timeout");
-   }
-
-   @Override
-   protected synchronized void cleanUpIncidentalResourcesOfDeadNodes(Set<? 
extends NodeMetadata> deadNodes) {
-      Set<String> orphanedGroups = findOrphanedGroups.apply(deadNodes);
-      for (String orphanedGroup : orphanedGroups) {
-         cleanUpNetworksAndFirewallsForGroup(orphanedGroup);
-      }
-   }
-
-
-   protected void cleanUpNetworksAndFirewallsForGroup(final String groupName) {
-      String resourceName = 
namingConvention.create().sharedNameForGroup(groupName);
-      final Network network = 
api.getNetworkApiForProject(project.get()).get(resourceName);
-      FirewallApi firewallApi = api.getFirewallApiForProject(project.get());
-      Predicate<Firewall> firewallBelongsToNetwork = new Predicate<Firewall>() 
{
-         @Override
-         public boolean apply(Firewall input) {
-            return input != null && 
input.getNetwork().equals(network.getSelfLink());
-         }
-      };
-
-      Set<AtomicReference<Operation>> operations = Sets.newHashSet();
-      for (Firewall firewall : 
firewallApi.list().concat().filter(firewallBelongsToNetwork)) {
-         operations.add(new 
AtomicReference<Operation>(firewallApi.delete(firewall.getName())));
-      }
-
-      for (AtomicReference<Operation> operation : operations) {
-         retry(operationDonePredicate, operationCompleteCheckTimeout, 
operationCompleteCheckInterval,
-                 MILLISECONDS).apply(operation);
-
-         if (operation.get().getHttpError().isPresent()) {
-            HttpResponse response = operation.get().getHttpError().get();
-            logger.warn("delete orphaned firewall %s failed. Http Error Code: 
%d HttpError: %s",
-                    operation.get().getTargetId(), response.getStatusCode(), 
response.getMessage());
-         }
-      }
-
-      AtomicReference<Operation> operation = 
Atomics.newReference(api.getNetworkApiForProject(project.get()).delete(resourceName));
-
-      retry(operationDonePredicate, operationCompleteCheckTimeout, 
operationCompleteCheckInterval,
-              MILLISECONDS).apply(operation);
-
-      if (operation.get().getHttpError().isPresent()) {
-         HttpResponse response = operation.get().getHttpError().get();
-         logger.warn("delete orphaned network failed. Http Error Code: " + 
response.getStatusCode() +
-                 " HttpError: " + response.getMessage());
-      }
-   }
-
-
-   /**
-    * returns template options, except of type {@link 
org.jclouds.googlecomputeengine.compute.options.GoogleComputeEngineTemplateOptions}.
-    */
-   @Override
-   public GoogleComputeEngineTemplateOptions templateOptions() {
-      return 
GoogleComputeEngineTemplateOptions.class.cast(super.templateOptions());
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java
 
b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java
deleted file mode 100644
index 3a26d34..0000000
--- 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceAdapter.java
+++ /dev/null
@@ -1,439 +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.compute;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static com.google.common.collect.Iterables.contains;
-import static com.google.common.collect.Iterables.filter;
-import static com.google.common.collect.Iterables.tryFind;
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.CENTOS_PROJECT;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.DEBIAN_PROJECT;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.GCE_BOOT_DISK_SUFFIX;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.GCE_DELETE_BOOT_DISK_METADATA_KEY;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.GCE_IMAGE_METADATA_KEY;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_INTERVAL;
-import static 
org.jclouds.googlecomputeengine.GoogleComputeEngineConstants.OPERATION_COMPLETE_TIMEOUT;
-import static 
org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface.AccessConfig.Type;
-import static 
org.jclouds.googlecomputeengine.predicates.InstancePredicates.isBootDisk;
-import static org.jclouds.util.Predicates2.retry;
-import java.net.URI;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicReference;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.ComputeServiceAdapter;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.domain.Location;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
-import 
org.jclouds.googlecomputeengine.compute.functions.FirewallTagNamingConvention;
-import 
org.jclouds.googlecomputeengine.compute.options.GoogleComputeEngineTemplateOptions;
-import org.jclouds.googlecomputeengine.config.UserProject;
-import org.jclouds.googlecomputeengine.domain.Disk;
-import org.jclouds.googlecomputeengine.domain.Image;
-import org.jclouds.googlecomputeengine.domain.Instance;
-import org.jclouds.googlecomputeengine.domain.Instance.AttachedDisk;
-import org.jclouds.googlecomputeengine.domain.Instance.PersistentAttachedDisk;
-import org.jclouds.googlecomputeengine.domain.InstanceInZone;
-import org.jclouds.googlecomputeengine.domain.InstanceTemplate;
-import org.jclouds.googlecomputeengine.domain.InstanceTemplate.PersistentDisk;
-import 
org.jclouds.googlecomputeengine.domain.InstanceTemplate.PersistentDisk.Mode;
-import org.jclouds.googlecomputeengine.domain.MachineType;
-import org.jclouds.googlecomputeengine.domain.MachineTypeInZone;
-import org.jclouds.googlecomputeengine.domain.Operation;
-import org.jclouds.googlecomputeengine.domain.SlashEncodedIds;
-import org.jclouds.googlecomputeengine.domain.Zone;
-import org.jclouds.googlecomputeengine.features.InstanceApi;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.logging.Logger;
-
-import com.google.common.base.Function;
-import com.google.common.base.Objects;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
-import com.google.common.primitives.Ints;
-import com.google.common.util.concurrent.Atomics;
-import com.google.common.util.concurrent.UncheckedTimeoutException;
-import com.google.inject.Inject;
-
-public class GoogleComputeEngineServiceAdapter implements 
ComputeServiceAdapter<InstanceInZone, MachineTypeInZone, Image, Zone> {
-
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   protected Logger logger = Logger.NULL;
-
-   private final GoogleComputeEngineApi api;
-   private final Supplier<String> userProject;
-   private final Supplier<Map<URI, ? extends Location>> zones;
-   private final Function<TemplateOptions, ImmutableMap.Builder<String, 
String>> metatadaFromTemplateOptions;
-   private final Predicate<AtomicReference<Operation>> 
retryOperationDonePredicate;
-   private final long operationCompleteCheckInterval;
-   private final long operationCompleteCheckTimeout;
-   private final FirewallTagNamingConvention.Factory 
firewallTagNamingConvention;
-
-   @Inject
-   public GoogleComputeEngineServiceAdapter(GoogleComputeEngineApi api,
-                                            @UserProject Supplier<String> 
userProject,
-                                            Function<TemplateOptions,
-                                                    
ImmutableMap.Builder<String, String>> metatadaFromTemplateOptions,
-                                            @Named("zone") 
Predicate<AtomicReference<Operation>> operationDonePredicate,
-                                            
@Named(OPERATION_COMPLETE_INTERVAL) Long operationCompleteCheckInterval,
-                                            @Named(OPERATION_COMPLETE_TIMEOUT) 
Long operationCompleteCheckTimeout,
-                                            @Memoized Supplier<Map<URI, ? 
extends Location>> zones,
-                                            
FirewallTagNamingConvention.Factory firewallTagNamingConvention) {
-      this.api = checkNotNull(api, "google compute api");
-      this.userProject = checkNotNull(userProject, "user project name");
-      this.metatadaFromTemplateOptions = 
checkNotNull(metatadaFromTemplateOptions,
-              "metadata from template options function");
-      this.operationCompleteCheckInterval = 
checkNotNull(operationCompleteCheckInterval,
-              "operation completed check interval");
-      this.operationCompleteCheckTimeout = 
checkNotNull(operationCompleteCheckTimeout,
-                                                        "operation completed 
check timeout");
-      this.retryOperationDonePredicate = retry(operationDonePredicate, 
operationCompleteCheckTimeout,
-                                               operationCompleteCheckInterval, 
TimeUnit.MILLISECONDS);
-      this.zones = checkNotNull(zones, "zones");
-      this.firewallTagNamingConvention = 
checkNotNull(firewallTagNamingConvention, "firewallTagNamingConvention");
-   }
-
-   @Override
-   public NodeAndInitialCredentials<InstanceInZone> 
createNodeWithGroupEncodedIntoName(
-           final String group, final String name, final Template template) {
-
-      checkNotNull(template, "template");
-
-      GoogleComputeEngineTemplateOptions options = 
GoogleComputeEngineTemplateOptions.class.cast(template.getOptions()).clone();
-      checkState(options.getNetwork().isPresent(), "network was not present in 
template options");
-      Hardware hardware = checkNotNull(template.getHardware(), "hardware must 
be set");
-
-      checkNotNull(hardware.getUri(), "hardware must have a URI");
-      checkNotNull(template.getImage().getUri(), "image URI is null");
-
-      // Note that the ordering is significant here - the first disk must be 
the boot disk.
-      List<PersistentDisk> disks = Lists.newArrayList();
-
-      if (!tryFind(options.getDisks(), isBootDisk()).isPresent()) {
-         Disk bootDisk = createBootDisk(template, name);
-
-         disks.add(new PersistentDisk(Mode.READ_WRITE,
-                                      bootDisk.getSelfLink(),
-                                      null,
-                                      true,
-                                      true));
-      }
-
-      disks.addAll(options.getDisks());
-
-      InstanceTemplate instanceTemplate = InstanceTemplate.builder()
-              .forMachineType(hardware.getUri());
-
-      if (options.isEnableNat()) {
-         instanceTemplate.addNetworkInterface(options.getNetwork().get(), 
Type.ONE_TO_ONE_NAT);
-      } else {
-         instanceTemplate.addNetworkInterface(options.getNetwork().get());
-      }
-
-      instanceTemplate.disks(disks);
-
-      LoginCredentials credentials = 
getFromImageAndOverrideIfRequired(template.getImage(), options);
-
-      ImmutableMap.Builder<String, String> metadataBuilder = 
metatadaFromTemplateOptions.apply(options);
-
-      metadataBuilder.put(GCE_IMAGE_METADATA_KEY, 
template.getImage().getUri().toString());
-
-      if (!options.shouldKeepBootDisk()) {
-         metadataBuilder.put(GCE_DELETE_BOOT_DISK_METADATA_KEY, 
Boolean.TRUE.toString());
-      }
-
-      instanceTemplate.metadata(metadataBuilder.build());
-      instanceTemplate.serviceAccounts(options.getServiceAccounts());
-
-      final InstanceApi instanceApi = 
api.getInstanceApiForProject(userProject.get());
-      final String zone = template.getLocation().getId();
-      Operation operation = instanceApi.createInZone(name, zone, 
instanceTemplate);
-
-      if (options.shouldBlockUntilRunning()) {
-         waitOperationDone(operation);
-      }
-
-      // some times the newly created instances are not immediately returned
-      AtomicReference<Instance> instance = Atomics.newReference();
-
-      retry(new Predicate<AtomicReference<Instance>>() {
-         @Override
-         public boolean apply(AtomicReference<Instance> input) {
-            input.set(instanceApi.getInZone(zone, name));
-            return input.get() != null;
-         }
-      }, operationCompleteCheckTimeout, operationCompleteCheckInterval, 
MILLISECONDS).apply(instance);
-
-      if (!options.getTags().isEmpty()) {
-         Operation tagsOperation = instanceApi.setTagsInZone(zone,
-                 name, options.getTags(), 
instance.get().getTags().getFingerprint());
-
-         waitOperationDone(tagsOperation);
-
-         retry(new Predicate<AtomicReference<Instance>>() {
-            @Override
-            public boolean apply(AtomicReference<Instance> input) {
-               input.set(instanceApi.getInZone(zone, name));
-               return input.get() != null;
-            }
-         }, operationCompleteCheckTimeout, operationCompleteCheckInterval, 
MILLISECONDS).apply(instance);
-      }
-
-      // Add tags for security groups
-      final FirewallTagNamingConvention naming = 
firewallTagNamingConvention.get(group);
-      Set<String> tags = 
FluentIterable.from(Ints.asList(options.getInboundPorts()))
-              .transform(new Function<Integer, String>(){
-                       @Override
-                       public String apply(Integer input) {
-                          return input != null
-                                  ? naming.name(input)
-                                  : null;
-                       }
-                    })
-              .toSet();
-      instanceApi.setTagsInZone(zone, instance.get().getName(), tags, 
instance.get().getTags().getFingerprint());
-
-      InstanceInZone instanceInZone = new InstanceInZone(instance.get(), zone);
-
-      return new NodeAndInitialCredentials<InstanceInZone>(instanceInZone, 
instanceInZone.slashEncode(), credentials);
-   }
-
-   private Disk createBootDisk(Template template, String instanceName) {
-      URI imageUri = template.getImage().getUri();
-
-      GoogleComputeEngineTemplateOptions options = 
GoogleComputeEngineTemplateOptions.class.cast(template.getOptions()).clone();
-
-      int diskSize = options.getBootDiskSize().or(10l).intValue();
-
-      String diskName = instanceName + "-" + GCE_BOOT_DISK_SUFFIX;
-
-      Operation diskOperation = api.getDiskApiForProject(userProject.get())
-                                   
.createFromImageWithSizeInZone(imageUri.toString(),
-                                                                  diskName,
-                                                                  diskSize,
-                                                                  
template.getLocation().getId());
-
-      waitOperationDone(diskOperation);
-
-      return 
api.getDiskApiForProject(userProject.get()).getInZone(template.getLocation().getId(),
-                                                                   diskName);
-   }
-
-   @Override
-   public Iterable<MachineTypeInZone> listHardwareProfiles() {
-      ImmutableSet.Builder<MachineTypeInZone> builder = ImmutableSet.builder();
-
-      for (final Location zone : zones.get().values()) {
-         builder.addAll(api.getMachineTypeApiForProject(userProject.get())
-                 .listInZone(zone.getId())
-                 .concat()
-                 .filter(new Predicate<MachineType>() {
-                    @Override
-                    public boolean apply(MachineType input) {
-                       return !input.getDeprecated().isPresent();
-                    }
-                 })
-                 .transform(new Function<MachineType, MachineTypeInZone>() {
-
-                    @Override
-                    public MachineTypeInZone apply(MachineType arg0) {
-                       return new MachineTypeInZone(arg0, arg0.getZone());
-                    }
-                 }));
-      }
-
-      return builder.build();
-   }
-
-   @Override
-   public Iterable<Image> listImages() {
-      return ImmutableSet.<Image>builder()
-              
.addAll(api.getImageApiForProject(userProject.get()).list().concat())
-              
.addAll(api.getImageApiForProject(DEBIAN_PROJECT).list().concat())
-              
.addAll(api.getImageApiForProject(CENTOS_PROJECT).list().concat())
-              .build();
-   }
-
-   @Override
-   public Image getImage(String id) {
-      return 
Objects.firstNonNull(api.getImageApiForProject(userProject.get()).get(id),
-                                  
Objects.firstNonNull(api.getImageApiForProject(DEBIAN_PROJECT).get(id),
-                                          
api.getImageApiForProject(CENTOS_PROJECT).get(id)));
-
-   }
-
-   @Override
-   public Iterable<Zone> listLocations() {
-      return api.getZoneApiForProject(userProject.get()).list().concat();
-   }
-
-   @Override
-   public InstanceInZone getNode(String name) {
-      SlashEncodedIds slashEncodedIds = SlashEncodedIds.fromSlashEncoded(name);
-
-      Instance instance = 
api.getInstanceApiForProject(userProject.get()).getInZone(slashEncodedIds.getFirstId(),
-              slashEncodedIds.getSecondId());
-
-      return instance == null ?  null : new InstanceInZone(instance, 
slashEncodedIds.getFirstId());
-   }
-
-   @Override
-   public Iterable<InstanceInZone> listNodes() {
-      return FluentIterable.from(zones.get().values()).transformAndConcat(new 
Function<Location, ImmutableSet<InstanceInZone>>() {
-         @Override
-         public ImmutableSet<InstanceInZone> apply(final Location input) {
-            return 
api.getInstanceApiForProject(userProject.get()).listInZone(input.getId()).concat()
-                    .transform(new Function<Instance, InstanceInZone>() {
-
-                       @Override
-                       public InstanceInZone apply(Instance arg0) {
-                          return new InstanceInZone(arg0, input.getId());
-                       }
-                    }).toSet();
-         }
-      }).toSet();
-   }
-
-   @Override
-   public Iterable<InstanceInZone> listNodesByIds(final Iterable<String> ids) {
-      return filter(listNodes(), new Predicate<InstanceInZone>() {
-
-         @Override
-         public boolean apply(InstanceInZone instanceInZone) {
-            return contains(ids, instanceInZone.getInstance().getName());
-         }
-      });
-   }
-
-   @Override
-   public void destroyNode(final String name) {
-      SlashEncodedIds slashEncodedIds = SlashEncodedIds.fromSlashEncoded(name);
-      String diskName = null;
-      try {
-         Instance instance = 
api.getInstanceApiForProject(userProject.get()).getInZone(slashEncodedIds.getFirstId(),
-                                                                              
slashEncodedIds.getSecondId());
-         if 
(instance.getMetadata().getItems().get(GCE_DELETE_BOOT_DISK_METADATA_KEY).equals("true"))
 {
-            Optional<AttachedDisk> disk = tryFind(instance.getDisks(), new 
Predicate<AttachedDisk>() {
-               @Override
-               public boolean apply(AttachedDisk input) {
-                  return PersistentAttachedDisk.class.isInstance(input) &&
-                         PersistentAttachedDisk.class.cast(input).isBoot();
-               }
-            });
-            if (disk.isPresent()) {
-               diskName = 
PersistentAttachedDisk.class.cast(disk.get()).getSourceDiskName();
-            }
-         }
-      } catch (Exception e) {
-         // TODO: what exception actually gets thrown here if the instance 
doesn't really exist?
-      }
-      
waitOperationDone(api.getInstanceApiForProject(userProject.get()).deleteInZone(slashEncodedIds.getFirstId(),
-              slashEncodedIds.getSecondId()));
-
-      if (diskName != null) {
-         
waitOperationDone(api.getDiskApiForProject(userProject.get()).deleteInZone(slashEncodedIds.getFirstId(),
-                                                                               
     diskName));
-      }
-
-   }
-
-   @Override
-   public void rebootNode(final String name) {
-      SlashEncodedIds slashEncodedIds = SlashEncodedIds.fromSlashEncoded(name);
-
-      
waitOperationDone(api.getInstanceApiForProject(userProject.get()).resetInZone(slashEncodedIds.getFirstId(),
-              slashEncodedIds.getSecondId()));
-   }
-
-   @Override
-   public void resumeNode(String name) {
-      throw new UnsupportedOperationException("resume is not supported by 
GCE");
-   }
-
-   @Override
-   public void suspendNode(String name) {
-      throw new UnsupportedOperationException("suspend is not supported by 
GCE");
-   }
-
-   private LoginCredentials 
getFromImageAndOverrideIfRequired(org.jclouds.compute.domain.Image image,
-                                                              
GoogleComputeEngineTemplateOptions options) {
-      LoginCredentials defaultCredentials = image.getDefaultCredentials();
-      String[] keys = defaultCredentials.getPrivateKey().split(":");
-      String publicKey = keys[0];
-      String privateKey = keys[1];
-
-      LoginCredentials.Builder credentialsBuilder = 
defaultCredentials.toBuilder();
-      credentialsBuilder.privateKey(privateKey);
-
-      // LoginCredentials from image stores the public key along with the 
private key in the privateKey field
-      // @see GoogleComputePopulateDefaultLoginCredentialsForImageStrategy
-      // so if options doesn't have a public key set we set it from the default
-      if (options.getPublicKey() == null) {
-         options.authorizePublicKey(publicKey);
-      }
-      if (options.hasLoginPrivateKeyOption()) {
-         credentialsBuilder.privateKey(options.getPrivateKey());
-      }
-      if (options.getLoginUser() != null) {
-         credentialsBuilder.identity(options.getLoginUser());
-      }
-      if (options.hasLoginPasswordOption()) {
-         credentialsBuilder.password(options.getLoginPassword());
-      }
-      if (options.shouldAuthenticateSudo() != null) {
-         credentialsBuilder.authenticateSudo(options.shouldAuthenticateSudo());
-      }
-      LoginCredentials credentials = credentialsBuilder.build();
-      options.overrideLoginCredentials(credentials);
-      return credentials;
-   }
-
-   private void waitOperationDone(Operation operation) {
-      AtomicReference<Operation> operationRef = 
Atomics.newReference(operation);
-
-      // wait for the operation to complete
-      if (!retryOperationDonePredicate.apply(operationRef)) {
-         throw new UncheckedTimeoutException("operation did not reach DONE 
state" + operationRef.get());
-      }
-
-      // check if the operation failed
-      if (operationRef.get().getHttpError().isPresent()) {
-         HttpResponse response = operationRef.get().getHttpError().get();
-         throw new IllegalStateException("operation failed. Http Error Code: " 
+ response.getStatusCode() +
-                 " HttpError: " + response.getMessage());
-      }
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java
 
b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java
deleted file mode 100644
index 730c515..0000000
--- 
a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/compute/config/GoogleComputeEngineServiceContextModule.java
+++ /dev/null
@@ -1,283 +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.compute.config;
-
-import static com.google.common.collect.Iterables.transform;
-import static com.google.common.collect.Maps.uniqueIndex;
-import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
-
-import java.net.URI;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicReference;
-
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import com.google.inject.Scopes;
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.ComputeServiceAdapter;
-import org.jclouds.compute.config.ComputeServiceAdapterContextModule;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.SecurityGroup;
-import org.jclouds.compute.extensions.ImageExtension;
-import org.jclouds.compute.extensions.SecurityGroupExtension;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.compute.strategy.PrioritizeCredentialsFromTemplate;
-import org.jclouds.domain.Location;
-import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
-import org.jclouds.googlecomputeengine.compute.GoogleComputeEngineService;
-import 
org.jclouds.googlecomputeengine.compute.GoogleComputeEngineServiceAdapter;
-import 
org.jclouds.googlecomputeengine.compute.extensions.GoogleComputeEngineSecurityGroupExtension;
-import org.jclouds.googlecomputeengine.compute.functions.BuildInstanceMetadata;
-import 
org.jclouds.googlecomputeengine.compute.functions.FirewallTagNamingConvention;
-import 
org.jclouds.googlecomputeengine.compute.functions.FirewallToIpPermission;
-import 
org.jclouds.googlecomputeengine.compute.functions.GoogleComputeEngineImageToImage;
-import 
org.jclouds.googlecomputeengine.compute.functions.InstanceInZoneToNodeMetadata;
-import 
org.jclouds.googlecomputeengine.compute.functions.MachineTypeInZoneToHardware;
-import 
org.jclouds.googlecomputeengine.compute.functions.NetworkToSecurityGroup;
-import 
org.jclouds.googlecomputeengine.compute.functions.OrphanedGroupsFromDeadNodes;
-import org.jclouds.googlecomputeengine.compute.functions.RegionToLocation;
-import org.jclouds.googlecomputeengine.compute.functions.ZoneToLocation;
-import org.jclouds.googlecomputeengine.compute.loaders.FindNetworkOrCreate;
-import 
org.jclouds.googlecomputeengine.compute.options.GoogleComputeEngineTemplateOptions;
-import 
org.jclouds.googlecomputeengine.compute.predicates.AllNodesInGroupTerminated;
-import 
org.jclouds.googlecomputeengine.compute.strategy.CreateNodesWithGroupEncodedIntoNameThenAddToSet;
-import 
org.jclouds.googlecomputeengine.compute.strategy.PopulateDefaultLoginCredentialsForImageStrategy;
-import 
org.jclouds.googlecomputeengine.compute.strategy.UseNodeCredentialsButOverrideFromTemplate;
-import org.jclouds.googlecomputeengine.config.UserProject;
-import org.jclouds.googlecomputeengine.domain.Firewall;
-import org.jclouds.googlecomputeengine.domain.Image;
-import org.jclouds.googlecomputeengine.domain.Instance;
-import org.jclouds.googlecomputeengine.domain.InstanceInZone;
-import org.jclouds.googlecomputeengine.domain.MachineTypeInZone;
-import org.jclouds.googlecomputeengine.domain.Network;
-import org.jclouds.googlecomputeengine.domain.Region;
-import org.jclouds.googlecomputeengine.domain.Zone;
-import org.jclouds.googlecomputeengine.domain.internal.NetworkAndAddressRange;
-import org.jclouds.googlecomputeengine.functions.CreateNetworkIfNeeded;
-import org.jclouds.net.domain.IpPermission;
-import org.jclouds.rest.AuthorizationException;
-import 
org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.ImmutableMap;
-import com.google.inject.Injector;
-import com.google.inject.Provides;
-import com.google.inject.TypeLiteral;
-
-public class GoogleComputeEngineServiceContextModule
-        extends ComputeServiceAdapterContextModule<InstanceInZone, 
MachineTypeInZone, Image, Zone> {
-
-   @Override
-   protected void configure() {
-      super.configure();
-
-      bind(ComputeService.class).to(GoogleComputeEngineService.class);
-
-      bind(new TypeLiteral<ComputeServiceAdapter<InstanceInZone, 
MachineTypeInZone, Image, Zone>>() {})
-              .to(GoogleComputeEngineServiceAdapter.class);
-
-      bind(new TypeLiteral<Function<InstanceInZone, NodeMetadata>>() {})
-              .to(InstanceInZoneToNodeMetadata.class);
-
-      bind(new TypeLiteral<Function<MachineTypeInZone, Hardware>>() {})
-              .to(MachineTypeInZoneToHardware.class);
-
-      bind(new TypeLiteral<Function<Image, 
org.jclouds.compute.domain.Image>>() {})
-              .to(GoogleComputeEngineImageToImage.class);
-
-      bind(new TypeLiteral<Function<Region, Location>>() {
-      })
-              .to(RegionToLocation.class);
-
-      bind(new TypeLiteral<Function<Zone, Location>>() {})
-              .to(ZoneToLocation.class);
-
-      bind(new TypeLiteral<Function<Firewall, Iterable<IpPermission>>>() {})
-              .to(FirewallToIpPermission.class);
-
-      bind(new TypeLiteral<Function<Network, SecurityGroup>>() {})
-              .to(NetworkToSecurityGroup.class);
-
-      bind(new TypeLiteral<Function<TemplateOptions, 
ImmutableMap.Builder<String, String>>>() {})
-              .to(BuildInstanceMetadata.class);
-
-      
bind(org.jclouds.compute.strategy.PopulateDefaultLoginCredentialsForImageStrategy.class)
-              .to(PopulateDefaultLoginCredentialsForImageStrategy.class);
-
-      
bind(org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.class).to(
-              CreateNodesWithGroupEncodedIntoNameThenAddToSet.class);
-
-      bind(TemplateOptions.class).to(GoogleComputeEngineTemplateOptions.class);
-
-      bind(new TypeLiteral<Function<Set<? extends NodeMetadata>, 
Set<String>>>() {})
-              .to(OrphanedGroupsFromDeadNodes.class);
-
-      bind(new TypeLiteral<Predicate<String>>() 
{}).to(AllNodesInGroupTerminated.class);
-
-      bind(new TypeLiteral<Function<NetworkAndAddressRange, Network>>() {})
-              .to(CreateNetworkIfNeeded.class);
-
-      bind(new TypeLiteral<CacheLoader<NetworkAndAddressRange, Network>>() {})
-              .to(FindNetworkOrCreate.class);
-
-      bind(new TypeLiteral<SecurityGroupExtension>() {})
-              .to(GoogleComputeEngineSecurityGroupExtension.class);
-
-      
bind(PrioritizeCredentialsFromTemplate.class).to(UseNodeCredentialsButOverrideFromTemplate.class);
-
-      install(new LocationsFromComputeServiceAdapterModule<InstanceInZone, 
MachineTypeInZone, Image, Zone>() {});
-
-      bind(FirewallTagNamingConvention.Factory.class).in(Scopes.SINGLETON);
-   }
-
-   @Provides
-   @Singleton
-   @Memoized
-   public Supplier<Map<URI, ? extends org.jclouds.compute.domain.Image>> 
provideImagesMap(
-           AtomicReference<AuthorizationException> authException,
-           final Supplier<Set<? extends org.jclouds.compute.domain.Image>> 
images,
-           @Named(PROPERTY_SESSION_INTERVAL) long seconds) {
-      return 
MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException,
-              new Supplier<Map<URI, ? extends 
org.jclouds.compute.domain.Image>>() {
-                 @Override
-                 public Map<URI, ? extends org.jclouds.compute.domain.Image> 
get() {
-                    return uniqueIndex(images.get(), new 
Function<org.jclouds.compute.domain.Image, URI>() {
-                       @Override
-                       public URI apply(org.jclouds.compute.domain.Image 
input) {
-                          return input.getUri();
-                       }
-                    });
-                 }
-              },
-              seconds, TimeUnit.SECONDS);
-   }
-
-   @Provides
-   @Singleton
-   @Memoized
-   public Supplier<Map<URI, ? extends Hardware>> provideHardwaresMap(
-           AtomicReference<AuthorizationException> authException,
-           final Supplier<Set<? extends Hardware>> hardwares,
-           @Named(PROPERTY_SESSION_INTERVAL) long seconds) {
-      return 
MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException,
-              new Supplier<Map<URI, ? extends Hardware>>() {
-                 @Override
-                 public Map<URI, ? extends Hardware> get() {
-                    return uniqueIndex(hardwares.get(), new Function<Hardware, 
URI>() {
-                       @Override
-                       public URI apply(Hardware input) {
-                          return input.getUri();
-                       }
-                    });
-                 }
-              },
-              seconds, TimeUnit.SECONDS);
-   }
-
-   @Provides
-   @Singleton
-   @Memoized
-   public Supplier<Map<URI, ? extends Location>> provideZones(
-           AtomicReference<AuthorizationException> authException,
-           final GoogleComputeEngineApi api, final Function<Zone, Location> 
zoneToLocation,
-           @UserProject final Supplier<String> userProject,
-           @Named(PROPERTY_SESSION_INTERVAL) long seconds) {
-      return 
MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException,
-              new Supplier<Map<URI, ? extends Location>>() {
-                 @Override
-                 public Map<URI, ? extends Location> get() {
-                    return 
uniqueIndex(transform(api.getZoneApiForProject(userProject.get()).list().concat(),
 zoneToLocation),
-                            new Function<Location, URI>() {
-                               @Override
-                               public URI apply(Location input) {
-                                  return (URI) 
input.getMetadata().get("selfLink");
-                               }
-                            });
-                 }
-              },
-              seconds, TimeUnit.SECONDS);
-   }
-
-   @Provides
-   @Singleton
-   @Memoized
-   public Supplier<Map<URI, Region>> provideRegions(
-           AtomicReference<AuthorizationException> authException,
-           final GoogleComputeEngineApi api,
-           @UserProject final Supplier<String> userProject,
-           @Named(PROPERTY_SESSION_INTERVAL) long seconds) {
-      return 
MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException,
-              new Supplier<Map<URI, Region>>() {
-                 @Override
-                 public Map<URI, Region> get() {
-                    return 
uniqueIndex(api.getRegionApiForProject(userProject.get()).list().concat(),
-                            new Function<Region, URI>() {
-                               @Override
-                               public URI apply(Region input) {
-                                  return input.getSelfLink();
-                               }
-                            });
-                 }
-              },
-              seconds, TimeUnit.SECONDS);
-   }
-
-   @Provides
-   @Singleton
-   protected LoadingCache<NetworkAndAddressRange, Network> networkMap(
-           CacheLoader<NetworkAndAddressRange, Network> in) {
-      return CacheBuilder.newBuilder().build(in);
-   }
-
-   @Override
-   protected Optional<ImageExtension> provideImageExtension(Injector i) {
-      return Optional.absent();
-   }
-
-   @Override
-   protected Optional<SecurityGroupExtension> 
provideSecurityGroupExtension(Injector i) {
-      return Optional.of(i.getInstance(SecurityGroupExtension.class));
-   }
-
-   @VisibleForTesting
-   public static final Map<Instance.Status, NodeMetadata.Status> 
toPortableNodeStatus =
-           ImmutableMap.<Instance.Status, NodeMetadata.Status>builder()
-                   .put(Instance.Status.PROVISIONING, 
NodeMetadata.Status.PENDING)
-                   .put(Instance.Status.STAGING, NodeMetadata.Status.PENDING)
-                   .put(Instance.Status.RUNNING, NodeMetadata.Status.RUNNING)
-                   .put(Instance.Status.STOPPING, NodeMetadata.Status.PENDING)
-                   .put(Instance.Status.STOPPED, NodeMetadata.Status.SUSPENDED)
-                   .put(Instance.Status.TERMINATED, 
NodeMetadata.Status.TERMINATED).build();
-
-   @Singleton
-   @Provides
-   protected Map<Instance.Status, NodeMetadata.Status> toPortableNodeStatus() {
-      return toPortableNodeStatus;
-   }
-}

Reply via email to