YARN-1215. Yarn URL should include userinfo. Contributed by Chuan Liu.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1528233 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
aa2745abe5
commit
b2a7811fe7
|
@ -54,6 +54,8 @@ Release 2.3.0 - UNRELEASED
|
|||
YARN-1188. The context of QueueMetrics becomes default when using
|
||||
FairScheduler (Tsuyoshi Ozawa via Sandy Ryza)
|
||||
|
||||
YARN-1215. Yarn URL should include userinfo. (Chuan Liu via cnauroth)
|
||||
|
||||
Release 2.2.0 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -56,6 +56,22 @@ public abstract class URL {
|
|||
@Stable
|
||||
public abstract void setScheme(String scheme);
|
||||
|
||||
/**
|
||||
* Get the user info of the URL.
|
||||
* @return user info of the URL
|
||||
*/
|
||||
@Public
|
||||
@Stable
|
||||
public abstract String getUserInfo();
|
||||
|
||||
/**
|
||||
* Set the user info of the URL.
|
||||
* @param userInfo user info of the URL
|
||||
*/
|
||||
@Public
|
||||
@Stable
|
||||
public abstract void setUserInfo(String userInfo);
|
||||
|
||||
/**
|
||||
* Get the host of the URL.
|
||||
* @return host of the URL
|
||||
|
|
|
@ -100,6 +100,7 @@ message URLProto {
|
|||
optional string host = 2;
|
||||
optional int32 port = 3;
|
||||
optional string file = 4;
|
||||
optional string userInfo = 5;
|
||||
}
|
||||
|
||||
enum LocalResourceVisibilityProto {
|
||||
|
|
|
@ -113,6 +113,26 @@ public class URLPBImpl extends URL {
|
|||
}
|
||||
builder.setScheme((scheme));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUserInfo() {
|
||||
URLProtoOrBuilder p = viaProto ? proto : builder;
|
||||
if (!p.hasUserInfo()) {
|
||||
return null;
|
||||
}
|
||||
return (p.getUserInfo());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUserInfo(String userInfo) {
|
||||
maybeInitBuilder();
|
||||
if (userInfo == null) {
|
||||
builder.clearUserInfo();
|
||||
return;
|
||||
}
|
||||
builder.setUserInfo((userInfo));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHost() {
|
||||
URLProtoOrBuilder p = viaProto ? proto : builder;
|
||||
|
|
|
@ -69,6 +69,9 @@ public class ConverterUtils {
|
|||
String authority = "";
|
||||
if (url.getHost() != null) {
|
||||
authority = url.getHost();
|
||||
if (url.getUserInfo() != null) {
|
||||
authority = url.getUserInfo() + "@" + authority;
|
||||
}
|
||||
if (url.getPort() > 0) {
|
||||
authority += ":" + url.getPort();
|
||||
}
|
||||
|
@ -102,6 +105,9 @@ public class ConverterUtils {
|
|||
if (uri.getHost() != null) {
|
||||
url.setHost(uri.getHost());
|
||||
}
|
||||
if (uri.getUserInfo() != null) {
|
||||
url.setUserInfo(uri.getUserInfo());
|
||||
}
|
||||
url.setPort(uri.getPort());
|
||||
url.setScheme(uri.getScheme());
|
||||
url.setFile(uri.getPath());
|
||||
|
|
|
@ -38,6 +38,14 @@ public class TestConverterUtils {
|
|||
assertEquals(expectedPath, actualPath);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConvertUrlWithUserinfo() throws URISyntaxException {
|
||||
Path expectedPath = new Path("foo://username:password@example.com:8042");
|
||||
URL url = ConverterUtils.getYarnUrlFromPath(expectedPath);
|
||||
Path actualPath = ConverterUtils.getPathFromYarnURL(url);
|
||||
assertEquals(expectedPath, actualPath);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testContainerId() throws URISyntaxException {
|
||||
ContainerId id = TestContainerId.newContainerId(0, 0, 0, 0);
|
||||
|
|
Loading…
Reference in New Issue