Rollback of commit 0e9a1b2d51f9e03f4493e52d23cb3efc568be59f.
*** Reason for rollback ***
[] hasn't released unknown commit yet.
We need to keep the old behavior until then.
*** Original change description ***
Stop consulting the environment for "originating user" information.
--
MOS_MIGRATED_REVID=135441115
diff --git a/src/main/java/com/google/devtools/build/lib/util/UserUtils.java b/src/main/java/com/google/devtools/build/lib/util/UserUtils.java
index 84fb215..08e6f09 100644
--- a/src/main/java/com/google/devtools/build/lib/util/UserUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/util/UserUtils.java
@@ -18,11 +18,15 @@
import com.google.common.base.Strings;
+import java.util.Map;
+
/**
* User information utility methods.
*/
public final class UserUtils {
+ private static final String ORIGINATING_USER_KEY = "BLAZE_ORIGINATING_USER";
+
private UserUtils() {
// prohibit instantiation
}
@@ -41,11 +45,16 @@
/**
* Returns the originating user for this build from the command-line or the environment.
*/
- public static String getOriginatingUser(String originatingUser) {
+ public static String getOriginatingUser(String originatingUser,
+ Map<String, String> clientEnv) {
if (!Strings.isNullOrEmpty(originatingUser)) {
return originatingUser;
}
+ if (!Strings.isNullOrEmpty(clientEnv.get(ORIGINATING_USER_KEY))) {
+ return clientEnv.get(ORIGINATING_USER_KEY);
+ }
+
return UserUtils.getUserName();
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/util/UserUtilsTest.java b/src/test/java/com/google/devtools/build/lib/util/UserUtilsTest.java
new file mode 100644
index 0000000..5998862
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/util/UserUtilsTest.java
@@ -0,0 +1,53 @@
+// Copyright 2014 The Bazel Authors. All rights reserved.
+//
+// Licensed 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 com.google.devtools.build.lib.util;
+
+import static org.junit.Assert.assertEquals;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.testutil.Suite;
+import com.google.devtools.build.lib.testutil.TestSpec;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.util.Map;
+
+/** Unit tests for {@link UserUtils}. */
+@RunWith(JUnit4.class)
+@TestSpec(size = Suite.SMALL_TESTS)
+public class UserUtilsTest {
+
+ private static final String USER = "real_user";
+ private static final Map<String, String> CLIENT_ENV = ImmutableMap
+ .of("BLAZE_ORIGINATING_USER", USER);
+ public static final ImmutableMap<String, String> EMPTY_CLIENT_ENV = ImmutableMap.of();
+
+
+ @Test
+ public void testGetOriginatingUserFromFlag() throws Exception {
+ assertEquals(USER, UserUtils.getOriginatingUser(USER, EMPTY_CLIENT_ENV));
+ }
+
+ @Test
+ public void testGetOriginatingUserFromClientEnv() throws Exception {
+ assertEquals(USER, UserUtils.getOriginatingUser("", CLIENT_ENV));
+ }
+
+ @Test
+ public void testGetOriginatingUserFromUserUtils() {
+ assertEquals(UserUtils.getUserName(), UserUtils.getOriginatingUser("", EMPTY_CLIENT_ENV));
+ }
+}