Skip to content

Commit ba3eb53

Browse files
authored
get rid of GAE API's (#806)
1 parent 4f21d84 commit ba3eb53

File tree

3 files changed

+16
-18
lines changed

3 files changed

+16
-18
lines changed

appengine-java8/metadata/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Use either:
1818
## Maven
1919
### Running locally
2020

21-
$ mvn appengine:run
21+
## NOTE - There is no local Metadata server, so local running isn't available. It is possible to setup an [Emulator](https://medium.com/google-cloud/google-compute-engine-metadata-server-emulator-fe0fb1e5a8b5).
2222

2323
### Deploying
2424

appengine-java8/metadata/pom.xml

-5
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,6 @@ Copyright 2017 Google Inc.
3636
<!-- [END compiler] -->
3737

3838
<dependencies>
39-
<dependency>
40-
<groupId>com.google.appengine</groupId>
41-
<artifactId>appengine-api-1.0-sdk</artifactId>
42-
<version>${appengine.sdk.version}</version>
43-
</dependency>
4439

4540
<dependency>
4641
<groupId>javax.servlet</groupId>

appengine-java8/metadata/src/main/java/com/example/appengine/standard/MetadataServlet.java

+15-12
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@
1414

1515
package com.example.appengine.standard;
1616

17-
import com.google.appengine.api.appidentity.AppIdentityService;
18-
import com.google.appengine.api.appidentity.AppIdentityServiceFactory;
19-
import com.google.appengine.api.utils.SystemProperty;
2017
import com.google.gson.Gson;
2118
import com.google.gson.GsonBuilder;
2219
import com.google.gson.JsonParser;
@@ -47,18 +44,19 @@ public class MetadataServlet extends HttpServlet {
4744
"/computeMetadata/v1/project/project-id",
4845
"/computeMetadata/v1/instance/zone",
4946
"/computeMetadata/v1/instance/service-accounts/default/aliases",
47+
"/computeMetadata/v1/instance/service-accounts/default/email",
5048
"/computeMetadata/v1/instance/service-accounts/default/",
5149
"/computeMetadata/v1/instance/service-accounts/default/scopes",
52-
// Tokens work - but are a security risk to display
53-
// "/computeMetadata/v1/instance/service-accounts/default/token"
50+
// Tokens work - but are a security risk to display
51+
// "/computeMetadata/v1/instance/service-accounts/default/token"
5452
};
5553

5654
final String[] metaServiceAcct = {
5755
"/computeMetadata/v1/instance/service-accounts/{account}/aliases",
5856
"/computeMetadata/v1/instance/service-accounts/{account}/email",
5957
"/computeMetadata/v1/instance/service-accounts/{account}/scopes",
60-
// Tokens work - but are a security risk to display
61-
// "/computeMetadata/v1/instance/service-accounts/{account}/token"
58+
// Tokens work - but are a security risk to display
59+
// "/computeMetadata/v1/instance/service-accounts/{account}/token"
6260
};
6361

6462
private final String metadata = "http://metadata.google.internal";
@@ -90,7 +88,7 @@ String fetchMetadata(String key) throws IOException {
9088

9189
String fetchJsonMetadata(String prefix) throws IOException {
9290
Request request = new Request.Builder()
93-
.url(metadata + prefix )
91+
.url(metadata + prefix)
9492
.addHeader("Metadata-Flavor", "Google")
9593
.get()
9694
.build();
@@ -121,28 +119,33 @@ public void init() {
121119

122120
@Override
123121
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
124-
final AppIdentityService appIdentity = AppIdentityServiceFactory.getAppIdentityService();
122+
String defaultServiceAccount = "";
125123
WebContext ctx = new WebContext(req, resp, getServletContext(), req.getLocale());
126124

127125
resp.setContentType("text/html");
128126

129-
ctx.setVariable("production", SystemProperty.environment.value().name());
127+
String environment =
128+
(String) System.getProperties().get("com.google.appengine.runtime.environment");
129+
ctx.setVariable("production", environment);
130130

131131
// The metadata server is only on a production system
132-
if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
132+
if (environment.equals("Production")) {
133133

134134
TreeMap<String, String> m = new TreeMap<>();
135135

136136
for (String key : metaPath) {
137137
m.put(key, fetchMetadata(key));
138+
if (key.contains("default/email")) {
139+
defaultServiceAccount = m.get(key);
140+
}
138141
}
139142

140143
ctx.setVariable("Metadata", m.descendingMap());
141144

142145
m = new TreeMap<>();
143146
for (String key : metaServiceAcct) {
144147
// substitute a service account for {account}
145-
key = key.replace("{account}", appIdentity.getServiceAccountName());
148+
key = key.replace("{account}", defaultServiceAccount);
146149
m.put(key, fetchMetadata(key));
147150
}
148151
ctx.setVariable("sam", m.descendingMap());

0 commit comments

Comments
 (0)