[ 
https://issues.apache.org/jira/browse/HDFS-16946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17727161#comment-17727161
 ] 

ASF GitHub Bot commented on HDFS-16946:
---------------------------------------

goiri commented on code in PR #5696:
URL: https://github.com/apache/hadoop/pull/5696#discussion_r1209480436


##########
hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/RBFMetrics.java:
##########
@@ -50,6 +50,8 @@
 import javax.management.ObjectName;
 import javax.management.StandardMBean;
 
+import com.fasterxml.jackson.core.JsonProcessingException;

Review Comment:
   What's our take on using fasterxml in HDFS?
   Is that the common approach?



##########
hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/RBFMetrics.java:
##########
@@ -712,13 +715,22 @@ public long getCurrentTokensCount() {
 
   @Override
   public String getTopTokenRealOwners() {
-    RouterSecurityManager mgr =
+    String topTokenRealOwnersString = "";
+    RouterSecurityManager routerSecurityManager =
         this.router.getRpcServer().getRouterSecurityManager();
-    if (mgr != null && mgr.getSecretManager() != null) {
-      return JSON.toString(mgr.getSecretManager()
-          .getTopTokenRealOwners(this.topTokenRealOwners));
+    if (routerSecurityManager != null && 
routerSecurityManager.getSecretManager() != null) {
+      try {
+        List<Metrics2Util.NameValuePair> topOwners = 
routerSecurityManager.getSecretManager()
+                .getTopTokenRealOwners(this.topTokenRealOwners);
+        if (topOwners.size() > 0) {

Review Comment:
   ```suggestion
           if (!topOwners.isEmpty()) {
   ```



##########
hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/RBFMetrics.java:
##########
@@ -712,13 +715,22 @@ public long getCurrentTokensCount() {
 
   @Override
   public String getTopTokenRealOwners() {
-    RouterSecurityManager mgr =
+    String topTokenRealOwnersString = "";
+    RouterSecurityManager routerSecurityManager =
         this.router.getRpcServer().getRouterSecurityManager();
-    if (mgr != null && mgr.getSecretManager() != null) {
-      return JSON.toString(mgr.getSecretManager()
-          .getTopTokenRealOwners(this.topTokenRealOwners));
+    if (routerSecurityManager != null && 
routerSecurityManager.getSecretManager() != null) {

Review Comment:
   Let's reverse the if.
   ```
   if (routerSecurityManager == null || 
routerSecurityManager.getSecretManager() == null) {
     return topTokenRealOwnersString;
   }
   ```
   
   



##########
hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/RBFMetrics.java:
##########
@@ -712,13 +715,22 @@ public long getCurrentTokensCount() {
 
   @Override
   public String getTopTokenRealOwners() {

Review Comment:
   Do we have a unit test for this?



##########
hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/server/federation/metrics/RBFMetrics.java:
##########
@@ -712,13 +715,22 @@ public long getCurrentTokensCount() {
 
   @Override
   public String getTopTokenRealOwners() {
-    RouterSecurityManager mgr =
+    String topTokenRealOwnersString = "";
+    RouterSecurityManager routerSecurityManager =
         this.router.getRpcServer().getRouterSecurityManager();
-    if (mgr != null && mgr.getSecretManager() != null) {
-      return JSON.toString(mgr.getSecretManager()
-          .getTopTokenRealOwners(this.topTokenRealOwners));
+    if (routerSecurityManager != null && 
routerSecurityManager.getSecretManager() != null) {
+      try {
+        List<Metrics2Util.NameValuePair> topOwners = 
routerSecurityManager.getSecretManager()
+                .getTopTokenRealOwners(this.topTokenRealOwners);
+        if (topOwners.size() > 0) {
+          topTokenRealOwnersString = new 
ObjectMapper().writeValueAsString(topOwners);
+        }
+      }
+      catch (JsonProcessingException jsonProcessingException) {
+        LOG.error("Unable to parse the top token real owners to string" + 
jsonProcessingException.getMessage());

Review Comment:
   Use {}





> RBF: top real owners metrics can't been parsed json string
> ----------------------------------------------------------
>
>                 Key: HDFS-16946
>                 URL: https://issues.apache.org/jira/browse/HDFS-16946
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: rbf
>    Affects Versions: 3.4.0
>            Reporter: Max  Xie
>            Assignee: Nishtha Shah
>            Priority: Minor
>              Labels: pull-request-available
>         Attachments: image-2023-03-09-22-24-39-833.png
>
>
> After HDFS-15447,  Add top real owners metrics for delegation tokens. But the 
> metrics can't been parsed json string.
>  RBFMetrics$getTopTokenRealOwners method just return 
> `org.apache.hadoop.metrics2.util.Metrics2Util$NameValuePair@1`
> !image-2023-03-09-22-24-39-833.png!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to