hadoop git commit: HDDS-909 : Default implementation for Ozone acls. Contributed by Ajay Kumar.

2018-12-07 Thread aengineer
Repository: hadoop
Updated Branches:
  refs/heads/trunk 8fc0d0451 -> 5e773efd7


HDDS-909 : Default implementation for Ozone acls.
Contributed by Ajay Kumar.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5e773efd
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5e773efd
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5e773efd

Branch: refs/heads/trunk
Commit: 5e773efd7839c4807f98f00d286b9325c1fe81df
Parents: 8fc0d04
Author: Anu Engineer 
Authored: Fri Dec 7 23:20:19 2018 -0800
Committer: Anu Engineer 
Committed: Fri Dec 7 23:20:19 2018 -0800

--
 .../apache/hadoop/ozone/OzoneConfigKeys.java|   8 +
 .../common/src/main/resources/ozone-default.xml |  17 +-
 .../security/acl/OzoneAccessAuthorizer.java |  29 +++
 .../ozone/security/acl/OzoneAclException.java   |  20 +-
 .../hadoop/ozone/security/acl/OzoneObj.java |  24 ++-
 .../hadoop/ozone/security/acl/OzoneObjInfo.java | 118 
 .../ozone/security/acl/RequestContext.java  |   6 +-
 .../ozone/security/acl/TestOzoneObjInfo.java|  87 +
 .../org/apache/hadoop/ozone/om/TestOmAcls.java  | 176 ++
 .../hadoop/ozone/om/TestOzoneManager.java   |   2 +
 .../apache/hadoop/ozone/om/OzoneManager.java| 183 ++-
 11 files changed, 653 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/5e773efd/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java
--
diff --git 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java
index a331f48..bac07d5 100644
--- 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java
+++ 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConfigKeys.java
@@ -346,6 +346,14 @@ public final class OzoneConfigKeys {
   public static final int OZONE_CLIENT_BYTES_PER_CHECKSUM_DEFAULT_BYTES =
   1024 * 1024;
   public static final int OZONE_CLIENT_BYTES_PER_CHECKSUM_MIN_SIZE = 256 * 
1024;
+  public static final String OZONE_ACL_AUTHORIZER_CLASS =
+  "ozone.acl.authorizer.class";
+  public static final String OZONE_ACL_AUTHORIZER_CLASS_DEFAULT =
+  "org.apache.hadoop.ozone.security.acl.OzoneAccessAuthorizer";
+  public static final String OZONE_ACL_ENABLED =
+  "ozone.acl.enabled";
+  public static final boolean OZONE_ACL_ENABLED_DEFAULT =
+  false;
 
   /**
* There is no need to instantiate this class.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/5e773efd/hadoop-hdds/common/src/main/resources/ozone-default.xml
--
diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml 
b/hadoop-hdds/common/src/main/resources/ozone-default.xml
index 001153b..2d62baa 100644
--- a/hadoop-hdds/common/src/main/resources/ozone-default.xml
+++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml
@@ -1138,7 +1138,8 @@
 
   
 ozone.tags.system
-
OZONE,MANAGEMENT,SECURITY,PERFORMANCE,DEBUG,CLIENT,SERVER,OM,SCM,CRITICAL,RATIS,CONTAINER,REQUIRED,REST,STORAGE,PIPELINE,STANDALONE,S3GATEWAY
+OZONE,MANAGEMENT,SECURITY,PERFORMANCE,DEBUG,CLIENT,SERVER,OM,SCM,
+  
CRITICAL,RATIS,CONTAINER,REQUIRED,REST,STORAGE,PIPELINE,STANDALONE,S3GATEWAY,ACL
   
 
 
@@ -1512,4 +1513,18 @@
 
   
 
+  
+ozone.acl.authorizer.class
+org.apache.hadoop.ozone.security.acl.OzoneAccessAuthorizer
+OZONE, SECURITY, ACL
+Acl authorizer for Ozone.
+
+  
+  
+ozone.acl.enabled
+false
+OZONE, SECURITY, ACL
+Key to enable/disable ozone acls.
+  
+
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/5e773efd/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java
--
diff --git 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java
 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java
new file mode 100644
index 000..db3a579
--- /dev/null
+++ 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/security/acl/OzoneAccessAuthorizer.java
@@ -0,0 +1,29 @@
+/**
+ * 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
+ *
+ 

[Hadoop Wiki] Update of "GitAndHadoop" by AkiraAjisaka

2018-12-07 Thread Apache Wiki
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change 
notification.

The "GitAndHadoop" page has been changed by AkiraAjisaka:
https://wiki.apache.org/hadoop/GitAndHadoop?action=diff=26=27

Comment:
Fix typo

  Content moved to 
https://cwiki.apache.org/confluence/display/HADOOP/Git+And+Hadoop
  
- Please email common-...@hadoop.apache.org for cwiki access.
+ Please email common-...@hadoop.apache.org for cwiki access.
  

-
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org



hadoop git commit: HDFS-14001. [PROVIDED Storage] bootstrapStandby should manage the InMemoryAliasMap. Contributed by Virajith Jalaparti.

2018-12-07 Thread inigoiri
Repository: hadoop
Updated Branches:
  refs/heads/trunk 154449fbd -> 8fc0d0451


HDFS-14001. [PROVIDED Storage] bootstrapStandby should manage the 
InMemoryAliasMap. Contributed by Virajith Jalaparti.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8fc0d045
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8fc0d045
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8fc0d045

Branch: refs/heads/trunk
Commit: 8fc0d04517912766a3102f3e611f7d0fabd2f815
Parents: 154449f
Author: Inigo Goiri 
Authored: Fri Dec 7 18:30:36 2018 -0800
Committer: Inigo Goiri 
Committed: Fri Dec 7 18:30:36 2018 -0800

--
 .../hdfs/server/aliasmap/InMemoryAliasMap.java  | 216 +--
 .../aliasmap/InMemoryLevelDBAliasMapServer.java |   8 +
 .../hdfs/server/namenode/ImageServlet.java  |  32 ++-
 .../hadoop/hdfs/server/namenode/NameNode.java   |  11 +
 .../server/namenode/NameNodeHttpServer.java |  15 ++
 .../hdfs/server/namenode/TransferFsImage.java   |  21 +-
 .../server/namenode/ha/BootstrapStandby.java|  91 +++-
 .../namenode/metrics/NameNodeMetrics.java   |   6 +
 .../org/apache/hadoop/hdfs/MiniDFSCluster.java  |  23 ++
 .../server/aliasmap/ITestInMemoryAliasMap.java  |  30 +++
 .../server/aliasmap/TestInMemoryAliasMap.java   |  45 
 .../impl/TestInMemoryLevelDBAliasMapClient.java |   9 -
 .../namenode/ha/TestBootstrapAliasmap.java  |  99 +
 .../namenode/ITestProvidedImplementation.java   | 139 +++-
 14 files changed, 669 insertions(+), 76 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/8fc0d045/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java
--
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java
index 142a040..2a3 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java
@@ -19,10 +19,14 @@ package org.apache.hadoop.hdfs.server.aliasmap;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Lists;
 import com.google.protobuf.InvalidProtocolBufferException;
+import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
+import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
+import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.hadoop.conf.Configurable;
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileUtil;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
 import org.apache.hadoop.hdfs.protocol.Block;
 import org.apache.hadoop.hdfs.protocol.ProvidedStorageLocation;
@@ -30,17 +34,28 @@ import 
org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.BlockProto;
 import 
org.apache.hadoop.hdfs.protocol.proto.HdfsProtos.ProvidedStorageLocationProto;
 import org.apache.hadoop.hdfs.protocolPB.PBHelperClient;
 import org.apache.hadoop.hdfs.server.common.FileRegion;
+import org.apache.hadoop.hdfs.server.namenode.ImageServlet;
+import org.apache.hadoop.hdfs.server.namenode.TransferFsImage;
+import org.apache.hadoop.hdfs.util.DataTransferThrottler;
+import org.apache.hadoop.io.IOUtils;
 import org.fusesource.leveldbjni.JniDBFactory;
 import org.iq80.leveldb.DB;
 import org.iq80.leveldb.DBIterator;
 import org.iq80.leveldb.Options;
+import org.iq80.leveldb.ReadOptions;
+import org.iq80.leveldb.Snapshot;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.annotation.Nonnull;
+import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedOutputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.net.URI;
 import java.util.ArrayList;
 import java.util.Map;
 import java.util.Optional;
@@ -57,6 +72,9 @@ public class InMemoryAliasMap implements 
InMemoryAliasMapProtocol,
   private static final Logger LOG = LoggerFactory
   .getLogger(InMemoryAliasMap.class);
 
+  private static final String SNAPSHOT_COPY_DIR = "aliasmap_snapshot";
+  private static final String TAR_NAME = "aliasmap.tar.gz";
+  private final URI aliasMapURI;
   private final DB levelDb;
   private Configuration conf;
   private String blockPoolID;
@@ -71,22 +89,15 @@ public class InMemoryAliasMap implements 

[4/5] hadoop git commit: YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB

2018-12-07 Thread billie
http://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js
new file mode 100644
index 000..70a7ff7
--- /dev/null
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js
@@ -0,0 +1,45 @@
+(function(f){if(typeof exports==="object"& 
module!=="undefined"){module.exports=f()}else if(typeof 
define==="function"&){define([],f)}else{var g;if(typeof 
window!=="undefined"){g=window}else if(typeof 
global!=="undefined"){g=global}else if(typeof 
self!=="undefined"){g=self}else{g=this}g.zmodem = f()}})(function(){var 
define,module,exports;return (function(){function r(e,n,t){function 
o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof 
require&if(!f&)return c(i,!0);if(u)return u(i,!0);var a=new 
Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var 
p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return 
o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof 
require&,i=0;ihttp://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js.map
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js.map
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js.map
new file mode 100644
index 000..74927e7
--- /dev/null
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/addons/zmodem/zmodem.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"zmodem.js","sources":["../../../src/addons/zmodem/zmodem.ts","../../../node_modules/browser-pack/_prelude.js"],"sourcesContent":["/**\n
 * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license 
MIT\n */\n\nimport { Terminal } from 'xterm';\n\n/**\n *\n * Allow xterm.js to 
handle ZMODEM uploads and downloads.\n *\n * This addon is a wrapper around 
zmodem.js. It adds the following to the\n *  Terminal class:\n *\n * - function 
`zmodemAttach(, )` - creates a Zmodem.Sentry\n *  on the 
passed WebSocket object. The Object passed is optional and\n *  can 
contain:\n *  - noTerminalWriteOutsideSession: Suppress writes from the 
Sentry\n *object to the Terminal while there is no active Session. 
This\n *is necessary for compatibility with, for example, the\n *   
 `attach.js` addon.\n *\n * - event `zmodemDetect` - fired on 
Zmodem.Sentry’s `on_detect` callback.\n *  Passes the zmodem.
 js Detection object.\n *\n * - event `zmodemRetract` - fired on 
Zmodem.Sentry’s `on_retract` callback.\n *\n * You’ll need to provide logic 
to handle uploads and downloads.\n * See zmodem.js’s documentation for more 
details.\n *\n * **IMPORTANT:** After you confirm() a zmodem.js Detection, if 
you have\n *  used the `attach` or `terminado` addons, you’ll need to suspend 
their\n *  operation for the duration of the ZMODEM session. (The demo does 
this\n *  via `detach()` and a re-`attach()`.)\n */\n\nlet zmodem;\n\nexport 
interface IZmodemOptions {\n  noTerminalWriteOutsideSession?: 
boolean;\n}\n\nfunction zmodemAttach(ws: WebSocket, opts: IZmodemOptions = {}): 
void {\n  const term = this;\n  const senderFunc = (octets: ArrayLike) 
=> ws.send(new Uint8Array(octets));\n\n  let zsentry;\n\n  function 
shouldWrite(): boolean {\nreturn !!zsentry.get_confirmed_session() || 
!opts.noTerminalWriteOutsideSession;\n  }\n\n  zsentry = new zmodem.Sentry({\n  
  to_terminal: (octet
 s: ArrayLike) => {\n  if (shouldWrite()) {\nterm.write(\n  
String.fromCharCode.apply(String, octets)\n);\n  }\n
},\nsender: senderFunc,\non_retract: () => 
(term).emit('zmodemRetract'),\non_detect: (detection: any) => 
(term).emit('zmodemDetect', detection)\n  });\n\n  function 
handleWSMessage(evt: MessageEvent): void {\n\n// In testing with 
xterm.js’s demo the first message was\n// always text even if the rest 
were binary. While that\n// may be specific to xterm.js’s demo, 
ultimately we\n// should reject anything that isn’t 

[5/5] hadoop git commit: YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB

2018-12-07 Thread billie
YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/154449fb
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/154449fb
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/154449fb

Branch: refs/heads/trunk
Commit: 154449fbd80d1b357063ec675d12b17b6c6e20fc
Parents: cc51607
Author: Billie Rinaldi 
Authored: Fri Dec 7 10:55:13 2018 -0800
Committer: Billie Rinaldi 
Committed: Fri Dec 7 10:56:17 2018 -0800

--
 LICENSE.txt |   33 +
 NOTICE.txt  |7 +
 .../hadoop-client-minicluster/pom.xml   |8 +
 .../hadoop-yarn-server-nodemanager/pom.xml  |1 +
 .../nodemanager/webapp/TerminalServlet.java |   49 +
 .../server/nodemanager/webapp/WebServer.java|9 +-
 .../src/main/resources/TERMINAL/css/style.css   |   33 +
 .../main/resources/TERMINAL/terminal.template   |  110 +
 .../TERMINAL/xterm/dist/addons/attach/attach.js |  104 +
 .../xterm/dist/addons/attach/attach.js.map  |1 +
 .../TERMINAL/xterm/dist/addons/fit/fit.js   |   51 +
 .../TERMINAL/xterm/dist/addons/fit/fit.js.map   |1 +
 .../xterm/dist/addons/fullscreen/fullscreen.css |   10 +
 .../xterm/dist/addons/fullscreen/fullscreen.js  |   27 +
 .../dist/addons/fullscreen/fullscreen.js.map|1 +
 .../TERMINAL/xterm/dist/addons/search/search.js |  166 +
 .../xterm/dist/addons/search/search.js.map  |1 +
 .../xterm/dist/addons/terminado/terminado.js|   69 +
 .../dist/addons/terminado/terminado.js.map  |1 +
 .../xterm/dist/addons/webLinks/webLinks.js  |   41 +
 .../xterm/dist/addons/webLinks/webLinks.js.map  |1 +
 .../dist/addons/winptyCompat/winptyCompat.js|   31 +
 .../addons/winptyCompat/winptyCompat.js.map |1 +
 .../TERMINAL/xterm/dist/addons/zmodem/zmodem.js |   45 +
 .../xterm/dist/addons/zmodem/zmodem.js.map  |1 +
 .../resources/TERMINAL/xterm/dist/xterm.css |  164 +
 .../main/resources/TERMINAL/xterm/dist/xterm.js | 8907 ++
 .../resources/TERMINAL/xterm/dist/xterm.js.map  |1 +
 .../nodemanager/webapp/TestNMWebTerminal.java   |  124 +
 .../hadoop-yarn/hadoop-yarn-ui/pom.xml  |   41 +
 .../main/webapp/app/components/timeline-view.js |   19 +-
 .../main/webapp/app/models/yarn-container.js|2 +-
 .../app/models/yarn-timeline-container.js   |2 +-
 .../main/webapp/app/routes/yarn-app-attempt.js  |5 +
 .../templates/components/container-table.hbs|6 +
 .../app/templates/components/timeline-view.hbs  |2 +-
 .../webapp/app/templates/yarn-app-attempt.hbs   |1 +
 37 files changed, 10070 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/LICENSE.txt
--
diff --git a/LICENSE.txt b/LICENSE.txt
index dd7195e..a01cff4 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -2793,6 +2793,38 @@ available under the Creative Commons By Attribution 3.0 
License.
 this trademark restriction does not form part of this License.
 
 Creative Commons may be contacted at https://creativecommons.org/.
+
+
+
+For: /hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server
+/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL
+
+xterm.js 3.8.0
+The source and binary distribution of this product bundles these dependencies
+under the following license:
+
+Copyright (c) 2017-2018, The xterm.js authors 
(https://github.com/xtermjs/xterm.js)
+Copyright (c) 2014-2016, SourceLair Private Company 
(https://www.sourcelair.com)
+Copyright (c) 2012-2013, Christopher Jeffrey (https://github.com/chjj/)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 

[1/5] hadoop git commit: YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB

2018-12-07 Thread billie
Repository: hadoop
Updated Branches:
  refs/heads/trunk cc51607cc -> 154449fbd


http://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java
new file mode 100644
index 000..8589b94
--- /dev/null
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java
@@ -0,0 +1,124 @@
+/**
+* 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.apache.hadoop.yarn.server.nodemanager.webapp;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.ws.rs.core.MediaType;
+
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.http.JettyUtils;
+import org.apache.hadoop.util.NodeHealthScriptRunner;
+import org.apache.hadoop.yarn.conf.YarnConfiguration;
+import org.apache.hadoop.yarn.server.nodemanager.Context;
+import org.apache.hadoop.yarn.server.nodemanager.LocalDirsHandlerService;
+import org.apache.hadoop.yarn.server.nodemanager.NodeHealthCheckerService;
+import org.apache.hadoop.yarn.server.nodemanager.NodeManager;
+import org.apache.hadoop.yarn.server.nodemanager.ResourceView;
+import org.apache.hadoop.yarn.server.security.ApplicationACLsManager;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.sun.jersey.api.client.Client;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.WebResource.Builder;
+
+/**
+ * Unit test for hosting web terminal servlet in node manager.
+ */
+public class TestNMWebTerminal {
+  private static final File TESTROOTDIR = new File("target",
+  TestNMWebServer.class.getSimpleName());
+  private static File TESTLOGDIR = new File("target",
+  TestNMWebServer.class.getSimpleName() + "LogDir");
+  private NodeHealthCheckerService healthChecker;
+  private WebServer server;
+  private int port;
+
+  private NodeHealthCheckerService createNodeHealthCheckerService(
+  Configuration conf) {
+NodeHealthScriptRunner scriptRunner = NodeManager
+.getNodeHealthScriptRunner(conf);
+LocalDirsHandlerService dirsHandler = new LocalDirsHandlerService();
+return new NodeHealthCheckerService(scriptRunner, dirsHandler);
+  }
+
+  private int startNMWebAppServer(String webAddr) {
+Configuration conf = new Configuration();
+Context nmContext = new NodeManager.NMContext(null, null, null, null,
+null, false, conf);
+ResourceView resourceView = new ResourceView() {
+  @Override
+  public long getVmemAllocatedForContainers() {
+return 0;
+  }
+  @Override
+  public long getPmemAllocatedForContainers() {
+return 0;
+  }
+  @Override
+  public long getVCoresAllocatedForContainers() {
+return 0;
+  }
+  @Override
+  public boolean isVmemCheckEnabled() {
+return true;
+  }
+  @Override
+  public boolean isPmemCheckEnabled() {
+return true;
+  }
+};
+conf.set(YarnConfiguration.NM_LOCAL_DIRS, TESTROOTDIR.getAbsolutePath());
+conf.set(YarnConfiguration.NM_LOG_DIRS, TESTLOGDIR.getAbsolutePath());
+healthChecker = createNodeHealthCheckerService(conf);
+healthChecker.init(conf);
+LocalDirsHandlerService dirsHandler = healthChecker.getDiskHandler();
+conf.set(YarnConfiguration.NM_WEBAPP_ADDRESS, webAddr);
+server = new WebServer(nmContext, resourceView,
+new ApplicationACLsManager(conf), dirsHandler);
+server.init(conf);
+server.start();
+return server.getPort();
+  }
+
+  @Before
+  public void setUp() {
+port = 

[2/5] hadoop git commit: YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB

2018-12-07 Thread billie
http://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js.map
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js.map
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js.map
new file mode 100644
index 000..9ea86f3
--- /dev/null
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"xterm.js","sources":["../src/xterm.ts","../src/utils/MouseHelper.ts","../src/utils/Clone.ts","../src/ui/ScreenDprMonitor.ts","../src/ui/RenderDebouncer.ts","../src/ui/MouseZoneManager.ts","../src/ui/Lifecycle.ts","../src/ui/CharMeasure.ts","../src/shared/utils/Browser.ts","../src/shared/atlas/Types.ts","../src/shared/atlas/CharAtlasGenerator.ts","../src/renderer/dom/DomRendererRowFactory.ts","../src/renderer/dom/DomRenderer.ts","../src/renderer/atlas/Types.ts","../src/renderer/atlas/StaticCharAtlas.ts","../src/renderer/atlas/NoneCharAtlas.ts","../src/renderer/atlas/LRUMap.ts","../src/renderer/atlas/DynamicCharAtlas.ts","../src/renderer/atlas/CharAtlasUtils.ts","../src/renderer/atlas/CharAtlasCache.ts","../src/renderer/atlas/BaseCharAtlas.ts","../src/renderer/TextRenderLayer.ts","../src/renderer/SelectionRenderLayer.ts","../src/renderer/Renderer.ts","../src/renderer/LinkRenderLayer.ts","../src/renderer/GridCache.ts","../src/renderer/CursorRenderLayer.ts","../src/
 
renderer/ColorManager.ts","../src/renderer/CharacterJoinerRegistry.ts","../src/renderer/BaseRenderLayer.ts","../src/public/Terminal.ts","../src/handlers/Clipboard.ts","../src/handlers/AltClickHandler.ts","../src/core/input/Keyboard.ts","../src/core/data/Charsets.ts","../src/common/data/EscapeSequences.ts","../src/common/Lifecycle.ts","../src/common/EventEmitter.ts","../src/common/CircularList.ts","../src/Viewport.ts","../src/Terminal.ts","../src/Strings.ts","../src/SoundManager.ts","../src/SelectionModel.ts","../src/SelectionManager.ts","../src/Linkifier.ts","../src/InputHandler.ts","../src/EscapeSequenceParser.ts","../src/CompositionHelper.ts","../src/CharWidth.ts","../src/BufferSet.ts","../src/BufferLine.ts","../src/Buffer.ts","../src/AccessibilityManager.ts","../node_modules/browser-pack/_prelude.js"],"sourcesContent":["/**\n
 * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license 
MIT\n *\n * This file is the entry point for browserify.\n */\n\nimport { Termi
 nal } from './public/Terminal';\n\nmodule.exports = Terminal;\n","/**\n * 
Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license 
MIT\n */\n\nimport { ICharMeasure } from '../Types';\nimport { IRenderer } from 
'../renderer/Types';\n\nexport class MouseHelper {\n  constructor(private 
_renderer: IRenderer) {}\n\n  public static getCoordsRelativeToElement(event: 
{pageX: number, pageY: number}, element: HTMLElement): [number, number] {\n
// Ignore browsers that don't support MouseEvent.pageX\nif (event.pageX === 
null || event.pageX === undefined) {\n  return null;\n}\n\nconst 
originalElement = element;\nlet x = event.pageX;\nlet y = 
event.pageY;\n\n// Converts the coordinates from being relative to the 
document to being\n// relative to the terminal.\nwhile (element) {\n
  x -= element.offsetLeft;\n  y -= element.offsetTop;\n  element = 
element.offsetParent;\n}\nelement = originalElement;\n
while
  (element && element !== element.ownerDocument.body) {\n  x += 
element.scrollLeft;\n  y += element.scrollTop;\n  element = 
element.parentElement;\n}\nreturn [x, y];\n  }\n\n  /**\n  
 * Gets coordinates within the terminal for a particular mouse event. The 
result\n   * is returned as an array in the form [x, y] instead of an object as 
it's a\n   * little faster and this function is used in some low level code.\n  
 * @param event The mouse event.\n   * @param element The terminal's container 
element.\n   * @param charMeasure The char measure object used to determine 
character sizes.\n   * @param colCount The number of columns in the terminal.\n 
  * @param rowCount The number of rows n the terminal.\n   * @param isSelection 
Whether the request is for the selection or not. This will\n   * apply an 
offset to the x value such that the left half of the cell will\n   * select 
that cell and the right half will select the next cell.\n   */\n  public 
getCoords(
 event: {pageX: number, pageY: number}, element: HTMLElement, charMeasure: 
ICharMeasure, lineHeight: number, colCount: number, rowCount: number, 
isSelection?: boolean): [number, number] {\n// Coordinates cannot be 
measured if 

[3/5] hadoop git commit: YARN-8914. Add xtermjs to YARN UI2. Contributed by Eric Yang and Akhil PB

2018-12-07 Thread billie
http://git-wip-us.apache.org/repos/asf/hadoop/blob/154449fb/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js
new file mode 100644
index 000..eb44f54
--- /dev/null
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/resources/TERMINAL/xterm/dist/xterm.js
@@ -0,0 +1,8907 @@
+(function(f){if(typeof exports==="object"& 
module!=="undefined"){module.exports=f()}else if(typeof 
define==="function"&){define([],f)}else{var g;if(typeof 
window!=="undefined"){g=window}else if(typeof 
global!=="undefined"){g=global}else if(typeof 
self!=="undefined"){g=self}else{g=this}g.Terminal = f()}})(function(){var 
define,module,exports;return (function(){function r(e,n,t){function 
o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof 
require&if(!f&)return c(i,!0);if(u)return u(i,!0);var a=new 
Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var 
p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return 
o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof 
require&,i=0;i rows) {
+this._rowContainer.removeChild(this._rowElements.pop());
+}
+this._rowElements[this._rowElements.length - 
1].addEventListener('focus', this._bottomBoundaryFocusListener);
+this._refreshRowsDimensions();
+};
+AccessibilityManager.prototype._createAccessibilityTreeNode = function () {
+var element = document.createElement('div');
+element.setAttribute('role', 'listitem');
+element.tabIndex = -1;
+this._refreshRowDimensions(element);
+return element;
+};
+AccessibilityManager.prototype._onTab = function (spaceCount) {
+for (var i = 0; i < spaceCount; i++) {
+this._onChar(' ');
+}
+};
+AccessibilityManager.prototype._onChar = function (char) {
+var _this = this;
+if (this._liveRegionLineCount < MAX_ROWS_TO_READ + 1) {
+if (this._charsToConsume.length > 0) {
+var shiftedChar = this._charsToConsume.shift();
+if (shiftedChar !== char) {
+this._announceCharacter(char);
+}
+}
+else {
+this._announceCharacter(char);
+}
+if (char === '\n') {
+this._liveRegionLineCount++;
+if (this._liveRegionLineCount === MAX_ROWS_TO_READ + 1) {
+this._liveRegion.textContent += Strings.tooMuchOutput;
+}
+}
+if (Browser_1.isMac) {
+if (this._liveRegion.textContent && 
this._liveRegion.textContent.length > 0 && !this._liveRegion.parentNode) {
+setTimeout(function () {
+
_this._accessibilityTreeRoot.appendChild(_this._liveRegion);
+}, 0);
+}
+}
+}
+};
+AccessibilityManager.prototype._clearLiveRegion = function () {
+this._liveRegion.textContent = '';
+this._liveRegionLineCount = 0;
+if (Browser_1.isMac) {
+if (this._liveRegion.parentNode) {
+this._accessibilityTreeRoot.removeChild(this._liveRegion);
+}
+}
+};
+AccessibilityManager.prototype._onKey = function (keyChar) {
+this._clearLiveRegion();
+this._charsToConsume.push(keyChar);
+};
+AccessibilityManager.prototype._refreshRows = function (start, end) {
+this._renderRowsDebouncer.refresh(start, end);
+};
+AccessibilityManager.prototype._renderRows = function (start, end) {
+var buffer = this._terminal.buffer;
+var setSize = buffer.lines.length.toString();
+for (var i = start; i <= end; i++) {
+var lineData = buffer.translateBufferLineToString(buffer.ydisp + 
i, true);
+var posInSet = (buffer.ydisp + i + 1).toString();
+var element = this._rowElements[i];
+element.textContent = lineData.length === 0 ? Strings.blankLine : 
lineData;
+element.setAttribute('aria-posinset', posInSet);
+element.setAttribute('aria-setsize', setSize);
+}
+};
+AccessibilityManager.prototype._refreshRowsDimensions = function () {
+if (!this._terminal.renderer.dimensions.actualCellHeight) {
+return;
+}
+if (this._rowElements.length !== this._terminal.rows) {
+this._onResize(this._terminal.rows);
+}
+for (var i = 0; i < 

hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

2018-12-07 Thread jhung
Repository: hadoop
Updated Branches:
  refs/heads/branch-2.9 61a3bf465 -> df9a01810


YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

(cherry picked from commit cc51607ccdf60f4ebecf7afa3e2056297ca0ac5f)
(cherry picked from commit eb8b1eaa9a8aa1424864c94a7f796f33dd425f07)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/df9a0181
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/df9a0181
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/df9a0181

Branch: refs/heads/branch-2.9
Commit: df9a018109b841744128369cadffda5ac87f373e
Parents: 61a3bf4
Author: Jonathan Hung 
Authored: Fri Dec 7 10:32:53 2018 -0800
Committer: Jonathan Hung 
Committed: Fri Dec 7 10:50:06 2018 -0800

--
 .../scheduler/capacity/CSQueueMetrics.java  | 39 +
 .../scheduler/capacity/CSQueueUtils.java| 17 
 .../scheduler/capacity/LeafQueue.java   |  4 ++
 .../scheduler/capacity/ParentQueue.java |  4 ++
 .../capacity/TestCapacityScheduler.java | 44 
 5 files changed, 108 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/df9a0181/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
index 87fc234..8382665 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric;
 import org.apache.hadoop.metrics2.annotation.Metrics;
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
 import org.apache.hadoop.metrics2.lib.MutableGaugeFloat;
+import org.apache.hadoop.metrics2.lib.MutableGaugeInt;
 import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
 import org.apache.hadoop.yarn.api.records.Resource;
 import 
org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics {
   MutableGaugeFloat usedCapacity;
   @Metric("Percent of Absolute Capacity Used")
   MutableGaugeFloat absoluteUsedCapacity;
+  @Metric("Guaranteed memory in MB")
+  MutableGaugeLong guaranteedMB;
+  @Metric("Guaranteed CPU in virtual cores")
+  MutableGaugeInt guaranteedVCores;
+  @Metric("Maximum memory in MB")
+  MutableGaugeLong maxCapacityMB;
+  @Metric("Maximum CPU in virtual cores")
+  MutableGaugeInt maxCapacityVCores;
 
   CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent,
   boolean enableUserMetrics, Configuration conf) {
@@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics {
 }
   }
 
+  public long getGuaranteedMB() {
+return guaranteedMB.value();
+  }
+
+  public int getGuaranteedVCores() {
+return guaranteedVCores.value();
+  }
+
+  public void setGuaranteedResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  guaranteedMB.set(res.getMemorySize());
+  guaranteedVCores.set(res.getVirtualCores());
+}
+  }
+
+  public long getMaxCapacityMB() {
+return maxCapacityMB.value();
+  }
+
+  public int getMaxCapacityVCores() {
+return maxCapacityVCores.value();
+  }
+
+  public void setMaxCapacityResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  maxCapacityMB.set(res.getMemorySize());
+  maxCapacityVCores.set(res.getVirtualCores());
+}
+  }
+
   public synchronized static CSQueueMetrics forQueue(String queueName,
   Queue parent, boolean enableUserMetrics, Configuration conf) {
 MetricsSystem ms = DefaultMetricsSystem.instance();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/df9a0181/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java
--
diff --git 

hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

2018-12-07 Thread jhung
Repository: hadoop
Updated Branches:
  refs/heads/branch-2 5cef413a8 -> eb8b1eaa9


YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

(cherry picked from commit cc51607ccdf60f4ebecf7afa3e2056297ca0ac5f)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/eb8b1eaa
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/eb8b1eaa
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/eb8b1eaa

Branch: refs/heads/branch-2
Commit: eb8b1eaa9a8aa1424864c94a7f796f33dd425f07
Parents: 5cef413
Author: Jonathan Hung 
Authored: Fri Dec 7 10:32:53 2018 -0800
Committer: Jonathan Hung 
Committed: Fri Dec 7 10:47:45 2018 -0800

--
 .../scheduler/capacity/CSQueueMetrics.java  | 39 +
 .../scheduler/capacity/CSQueueUtils.java| 17 
 .../scheduler/capacity/LeafQueue.java   |  4 ++
 .../scheduler/capacity/ParentQueue.java |  4 ++
 .../capacity/TestCapacityScheduler.java | 44 
 5 files changed, 108 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/eb8b1eaa/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
index 87fc234..8382665 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric;
 import org.apache.hadoop.metrics2.annotation.Metrics;
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
 import org.apache.hadoop.metrics2.lib.MutableGaugeFloat;
+import org.apache.hadoop.metrics2.lib.MutableGaugeInt;
 import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
 import org.apache.hadoop.yarn.api.records.Resource;
 import 
org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics {
   MutableGaugeFloat usedCapacity;
   @Metric("Percent of Absolute Capacity Used")
   MutableGaugeFloat absoluteUsedCapacity;
+  @Metric("Guaranteed memory in MB")
+  MutableGaugeLong guaranteedMB;
+  @Metric("Guaranteed CPU in virtual cores")
+  MutableGaugeInt guaranteedVCores;
+  @Metric("Maximum memory in MB")
+  MutableGaugeLong maxCapacityMB;
+  @Metric("Maximum CPU in virtual cores")
+  MutableGaugeInt maxCapacityVCores;
 
   CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent,
   boolean enableUserMetrics, Configuration conf) {
@@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics {
 }
   }
 
+  public long getGuaranteedMB() {
+return guaranteedMB.value();
+  }
+
+  public int getGuaranteedVCores() {
+return guaranteedVCores.value();
+  }
+
+  public void setGuaranteedResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  guaranteedMB.set(res.getMemorySize());
+  guaranteedVCores.set(res.getVirtualCores());
+}
+  }
+
+  public long getMaxCapacityMB() {
+return maxCapacityMB.value();
+  }
+
+  public int getMaxCapacityVCores() {
+return maxCapacityVCores.value();
+  }
+
+  public void setMaxCapacityResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  maxCapacityMB.set(res.getMemorySize());
+  maxCapacityVCores.set(res.getVirtualCores());
+}
+  }
+
   public synchronized static CSQueueMetrics forQueue(String queueName,
   Queue parent, boolean enableUserMetrics, Configuration conf) {
 MetricsSystem ms = DefaultMetricsSystem.instance();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/eb8b1eaa/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java
--
diff --git 

hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

2018-12-07 Thread jhung
Repository: hadoop
Updated Branches:
  refs/heads/branch-3.1 6e6f43afd -> 7b523e6a7


YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

(cherry picked from commit 978ab3e958227220cb6f1a08ae6e7cdb8a46628b)
(cherry picked from commit dca69d178dba21c41fd1293187f29143f7e81e19)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7b523e6a
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7b523e6a
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7b523e6a

Branch: refs/heads/branch-3.1
Commit: 7b523e6a772019277ee0a476ab167b8203d6dccf
Parents: 6e6f43a
Author: Jonathan Hung 
Authored: Fri Dec 7 10:32:53 2018 -0800
Committer: Jonathan Hung 
Committed: Fri Dec 7 10:45:57 2018 -0800

--
 .../scheduler/capacity/CSQueueMetrics.java  | 39 +
 .../scheduler/capacity/CSQueueUtils.java| 17 
 .../scheduler/capacity/LeafQueue.java   |  4 ++
 .../scheduler/capacity/ParentQueue.java |  4 ++
 .../capacity/TestCapacityScheduler.java | 44 
 5 files changed, 108 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/7b523e6a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
index 87fc234..8382665 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric;
 import org.apache.hadoop.metrics2.annotation.Metrics;
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
 import org.apache.hadoop.metrics2.lib.MutableGaugeFloat;
+import org.apache.hadoop.metrics2.lib.MutableGaugeInt;
 import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
 import org.apache.hadoop.yarn.api.records.Resource;
 import 
org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics {
   MutableGaugeFloat usedCapacity;
   @Metric("Percent of Absolute Capacity Used")
   MutableGaugeFloat absoluteUsedCapacity;
+  @Metric("Guaranteed memory in MB")
+  MutableGaugeLong guaranteedMB;
+  @Metric("Guaranteed CPU in virtual cores")
+  MutableGaugeInt guaranteedVCores;
+  @Metric("Maximum memory in MB")
+  MutableGaugeLong maxCapacityMB;
+  @Metric("Maximum CPU in virtual cores")
+  MutableGaugeInt maxCapacityVCores;
 
   CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent,
   boolean enableUserMetrics, Configuration conf) {
@@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics {
 }
   }
 
+  public long getGuaranteedMB() {
+return guaranteedMB.value();
+  }
+
+  public int getGuaranteedVCores() {
+return guaranteedVCores.value();
+  }
+
+  public void setGuaranteedResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  guaranteedMB.set(res.getMemorySize());
+  guaranteedVCores.set(res.getVirtualCores());
+}
+  }
+
+  public long getMaxCapacityMB() {
+return maxCapacityMB.value();
+  }
+
+  public int getMaxCapacityVCores() {
+return maxCapacityVCores.value();
+  }
+
+  public void setMaxCapacityResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  maxCapacityMB.set(res.getMemorySize());
+  maxCapacityVCores.set(res.getVirtualCores());
+}
+  }
+
   public synchronized static CSQueueMetrics forQueue(String queueName,
   Queue parent, boolean enableUserMetrics, Configuration conf) {
 MetricsSystem ms = DefaultMetricsSystem.instance();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/7b523e6a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java
--
diff --git 

hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

2018-12-07 Thread jhung
Repository: hadoop
Updated Branches:
  refs/heads/branch-3.0 a7b402b06 -> 80ef3e758


YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

(cherry picked from commit 978ab3e958227220cb6f1a08ae6e7cdb8a46628b)
(cherry picked from commit dca69d178dba21c41fd1293187f29143f7e81e19)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/80ef3e75
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/80ef3e75
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/80ef3e75

Branch: refs/heads/branch-3.0
Commit: 80ef3e7581c25163a43ad4ae4d1b181379455a7a
Parents: a7b402b
Author: Jonathan Hung 
Authored: Fri Dec 7 10:32:53 2018 -0800
Committer: Jonathan Hung 
Committed: Fri Dec 7 10:46:07 2018 -0800

--
 .../scheduler/capacity/CSQueueMetrics.java  | 39 +
 .../scheduler/capacity/CSQueueUtils.java| 17 
 .../scheduler/capacity/LeafQueue.java   |  4 ++
 .../scheduler/capacity/ParentQueue.java |  4 ++
 .../capacity/TestCapacityScheduler.java | 44 
 5 files changed, 108 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/80ef3e75/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
index 87fc234..8382665 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric;
 import org.apache.hadoop.metrics2.annotation.Metrics;
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
 import org.apache.hadoop.metrics2.lib.MutableGaugeFloat;
+import org.apache.hadoop.metrics2.lib.MutableGaugeInt;
 import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
 import org.apache.hadoop.yarn.api.records.Resource;
 import 
org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics {
   MutableGaugeFloat usedCapacity;
   @Metric("Percent of Absolute Capacity Used")
   MutableGaugeFloat absoluteUsedCapacity;
+  @Metric("Guaranteed memory in MB")
+  MutableGaugeLong guaranteedMB;
+  @Metric("Guaranteed CPU in virtual cores")
+  MutableGaugeInt guaranteedVCores;
+  @Metric("Maximum memory in MB")
+  MutableGaugeLong maxCapacityMB;
+  @Metric("Maximum CPU in virtual cores")
+  MutableGaugeInt maxCapacityVCores;
 
   CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent,
   boolean enableUserMetrics, Configuration conf) {
@@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics {
 }
   }
 
+  public long getGuaranteedMB() {
+return guaranteedMB.value();
+  }
+
+  public int getGuaranteedVCores() {
+return guaranteedVCores.value();
+  }
+
+  public void setGuaranteedResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  guaranteedMB.set(res.getMemorySize());
+  guaranteedVCores.set(res.getVirtualCores());
+}
+  }
+
+  public long getMaxCapacityMB() {
+return maxCapacityMB.value();
+  }
+
+  public int getMaxCapacityVCores() {
+return maxCapacityVCores.value();
+  }
+
+  public void setMaxCapacityResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  maxCapacityMB.set(res.getMemorySize());
+  maxCapacityVCores.set(res.getVirtualCores());
+}
+  }
+
   public synchronized static CSQueueMetrics forQueue(String queueName,
   Queue parent, boolean enableUserMetrics, Configuration conf) {
 MetricsSystem ms = DefaultMetricsSystem.instance();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/80ef3e75/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java
--
diff --git 

hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

2018-12-07 Thread jhung
Repository: hadoop
Updated Branches:
  refs/heads/trunk 6c852f2a3 -> cc51607cc


YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/cc51607c
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/cc51607c
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/cc51607c

Branch: refs/heads/trunk
Commit: cc51607ccdf60f4ebecf7afa3e2056297ca0ac5f
Parents: 6c852f2
Author: Jonathan Hung 
Authored: Fri Dec 7 10:32:53 2018 -0800
Committer: Jonathan Hung 
Committed: Fri Dec 7 10:45:37 2018 -0800

--
 .../scheduler/capacity/CSQueueMetrics.java  | 39 +
 .../scheduler/capacity/CSQueueUtils.java| 17 
 .../scheduler/capacity/LeafQueue.java   |  4 ++
 .../scheduler/capacity/ParentQueue.java |  4 ++
 .../capacity/TestCapacityScheduler.java | 44 
 5 files changed, 108 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/cc51607c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
index 87fc234..8382665 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric;
 import org.apache.hadoop.metrics2.annotation.Metrics;
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
 import org.apache.hadoop.metrics2.lib.MutableGaugeFloat;
+import org.apache.hadoop.metrics2.lib.MutableGaugeInt;
 import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
 import org.apache.hadoop.yarn.api.records.Resource;
 import 
org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics {
   MutableGaugeFloat usedCapacity;
   @Metric("Percent of Absolute Capacity Used")
   MutableGaugeFloat absoluteUsedCapacity;
+  @Metric("Guaranteed memory in MB")
+  MutableGaugeLong guaranteedMB;
+  @Metric("Guaranteed CPU in virtual cores")
+  MutableGaugeInt guaranteedVCores;
+  @Metric("Maximum memory in MB")
+  MutableGaugeLong maxCapacityMB;
+  @Metric("Maximum CPU in virtual cores")
+  MutableGaugeInt maxCapacityVCores;
 
   CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent,
   boolean enableUserMetrics, Configuration conf) {
@@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics {
 }
   }
 
+  public long getGuaranteedMB() {
+return guaranteedMB.value();
+  }
+
+  public int getGuaranteedVCores() {
+return guaranteedVCores.value();
+  }
+
+  public void setGuaranteedResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  guaranteedMB.set(res.getMemorySize());
+  guaranteedVCores.set(res.getVirtualCores());
+}
+  }
+
+  public long getMaxCapacityMB() {
+return maxCapacityMB.value();
+  }
+
+  public int getMaxCapacityVCores() {
+return maxCapacityVCores.value();
+  }
+
+  public void setMaxCapacityResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  maxCapacityMB.set(res.getMemorySize());
+  maxCapacityVCores.set(res.getVirtualCores());
+}
+  }
+
   public synchronized static CSQueueMetrics forQueue(String queueName,
   Queue parent, boolean enableUserMetrics, Configuration conf) {
 MetricsSystem ms = DefaultMetricsSystem.instance();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/cc51607c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java
--
diff --git 

hadoop git commit: YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

2018-12-07 Thread jhung
Repository: hadoop
Updated Branches:
  refs/heads/branch-3.2 298a1f29e -> 3ab6ea7ac


YARN-9085. Add Guaranteed and MaxCapacity to CSQueueMetrics

(cherry picked from commit 978ab3e958227220cb6f1a08ae6e7cdb8a46628b)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3ab6ea7a
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3ab6ea7a
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3ab6ea7a

Branch: refs/heads/branch-3.2
Commit: 3ab6ea7aca431d32a742f92b739250f42bc95153
Parents: 298a1f2
Author: Jonathan Hung 
Authored: Fri Dec 7 10:32:53 2018 -0800
Committer: Jonathan Hung 
Committed: Fri Dec 7 10:45:47 2018 -0800

--
 .../scheduler/capacity/CSQueueMetrics.java  | 39 +
 .../scheduler/capacity/CSQueueUtils.java| 17 
 .../scheduler/capacity/LeafQueue.java   |  4 ++
 .../scheduler/capacity/ParentQueue.java |  4 ++
 .../capacity/TestCapacityScheduler.java | 44 
 5 files changed, 108 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/3ab6ea7a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
index 87fc234..8382665 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueMetrics.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.metrics2.annotation.Metric;
 import org.apache.hadoop.metrics2.annotation.Metrics;
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
 import org.apache.hadoop.metrics2.lib.MutableGaugeFloat;
+import org.apache.hadoop.metrics2.lib.MutableGaugeInt;
 import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
 import org.apache.hadoop.yarn.api.records.Resource;
 import 
org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
@@ -46,6 +47,14 @@ public class CSQueueMetrics extends QueueMetrics {
   MutableGaugeFloat usedCapacity;
   @Metric("Percent of Absolute Capacity Used")
   MutableGaugeFloat absoluteUsedCapacity;
+  @Metric("Guaranteed memory in MB")
+  MutableGaugeLong guaranteedMB;
+  @Metric("Guaranteed CPU in virtual cores")
+  MutableGaugeInt guaranteedVCores;
+  @Metric("Maximum memory in MB")
+  MutableGaugeLong maxCapacityMB;
+  @Metric("Maximum CPU in virtual cores")
+  MutableGaugeInt maxCapacityVCores;
 
   CSQueueMetrics(MetricsSystem ms, String queueName, Queue parent,
   boolean enableUserMetrics, Configuration conf) {
@@ -126,6 +135,36 @@ public class CSQueueMetrics extends QueueMetrics {
 }
   }
 
+  public long getGuaranteedMB() {
+return guaranteedMB.value();
+  }
+
+  public int getGuaranteedVCores() {
+return guaranteedVCores.value();
+  }
+
+  public void setGuaranteedResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  guaranteedMB.set(res.getMemorySize());
+  guaranteedVCores.set(res.getVirtualCores());
+}
+  }
+
+  public long getMaxCapacityMB() {
+return maxCapacityMB.value();
+  }
+
+  public int getMaxCapacityVCores() {
+return maxCapacityVCores.value();
+  }
+
+  public void setMaxCapacityResources(String partition, Resource res) {
+if (partition == null || partition.equals(RMNodeLabelsManager.NO_LABEL)) {
+  maxCapacityMB.set(res.getMemorySize());
+  maxCapacityVCores.set(res.getVirtualCores());
+}
+  }
+
   public synchronized static CSQueueMetrics forQueue(String queueName,
   Queue parent, boolean enableUserMetrics, Configuration conf) {
 MetricsSystem ms = DefaultMetricsSystem.instance();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/3ab6ea7a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/CSQueueUtils.java
--
diff --git