From 25f9111c87ecf7ffca16608f0fb693a95da1dd8d Mon Sep 17 00:00:00 2001 From: SomeFire <> Date: Tue, 8 Apr 2025 19:26:08 +0300 Subject: [PATCH 1/2] Fix ACL window --- .../gui/nodeviewer/NodeViewerACL.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/apache/zookeeper/inspector/gui/nodeviewer/NodeViewerACL.java b/src/main/java/org/apache/zookeeper/inspector/gui/nodeviewer/NodeViewerACL.java index bb463e2..0885da0 100644 --- a/src/main/java/org/apache/zookeeper/inspector/gui/nodeviewer/NodeViewerACL.java +++ b/src/main/java/org/apache/zookeeper/inspector/gui/nodeviewer/NodeViewerACL.java @@ -99,22 +99,21 @@ protected void done() { } aclDataPanel.removeAll(); aclDataPanel.setLayout(new GridBagLayout()); - int j = 0; + int rowPos = 0; for (Map data : acls) { - int rowPos = 2 * j + 1; JPanel aclPanel = new JPanel(); aclPanel.setBorder(BorderFactory .createLineBorder(Color.BLACK)); aclPanel.setBackground(Color.WHITE); aclPanel.setLayout(new GridBagLayout()); - int i = 0; + int rowPosACL = 0; for (Map.Entry entry : data.entrySet()) { - int rowPosACL = 2 * i + 1; JLabel label = new JLabel(entry.getKey()); + label.setPreferredSize(new Dimension(60, 30)); JTextField text = new JTextField(entry.getValue()); text.setEditable(false); GridBagConstraints c1 = new GridBagConstraints(); - c1.gridx = 1; + c1.gridx = 0; c1.gridy = rowPosACL; c1.gridwidth = 1; c1.gridheight = 1; @@ -127,11 +126,11 @@ protected void done() { c1.ipady = 0; aclPanel.add(label, c1); GridBagConstraints c2 = new GridBagConstraints(); - c2.gridx = 3; + c2.gridx = 1; c2.gridy = rowPosACL; c2.gridwidth = 1; c2.gridheight = 1; - c2.weightx = 0; + c2.weightx = 1; c2.weighty = 0; c2.anchor = GridBagConstraints.NORTHWEST; c2.fill = GridBagConstraints.BOTH; @@ -139,24 +138,26 @@ protected void done() { c2.ipadx = 0; c2.ipady = 0; aclPanel.add(text, c2); - i++; + rowPosACL++; } GridBagConstraints c = new GridBagConstraints(); - c.gridx = 1; + c.gridx = 0; c.gridy = rowPos; c.gridwidth = 1; c.gridheight = 1; c.weightx = 1; - c.weighty = 1; + c.weighty = rowPos == acls.size() - 1 ? 1 : 0; c.anchor = GridBagConstraints.NORTHWEST; - c.fill = GridBagConstraints.NONE; + c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(5, 5, 5, 5); c.ipadx = 0; c.ipady = 0; aclDataPanel.add(aclPanel, c); + rowPos++; } - NodeViewerACL.this.aclDataPanel.revalidate(); - NodeViewerACL.this.aclDataPanel.repaint(); + + aclDataPanel.revalidate(); + aclDataPanel.repaint(); } }; worker.execute(); From 34f93b08ec9052f4a40925a2c7b9000000e12cbc Mon Sep 17 00:00:00 2001 From: SomeFire <> Date: Tue, 8 Apr 2025 19:27:36 +0300 Subject: [PATCH 2/2] Fix ACL permissions conversion --- README.md | 2 +- pom.xml | 2 +- .../manager/ZooInspectorManagerImpl.java | 39 +------------------ 3 files changed, 4 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index ca72162..5be93fe 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ current version: __1.2-SNAPSHOT__ An improved zookeeper inspector -- single executable jar, java8, ZooKeeper 3.4.13 +- single executable jar, java8, ZooKeeper 3.9.3 - Supports export zookeeper data to .zk, XML and folder [ctapmex/zkTreeUtil][1] (planned ability to restore dump from file: [fork kostapc/zkTreeUtil][2]) - centered GUI forms and dialogs diff --git a/pom.xml b/pom.xml index cebd918..f6346c7 100644 --- a/pom.xml +++ b/pom.xml @@ -36,7 +36,7 @@ org.apache.zookeeper zookeeper - 3.4.13 + 3.9.3 junit diff --git a/src/main/java/org/apache/zookeeper/inspector/manager/ZooInspectorManagerImpl.java b/src/main/java/org/apache/zookeeper/inspector/manager/ZooInspectorManagerImpl.java index 9120a80..c6e67ec 100644 --- a/src/main/java/org/apache/zookeeper/inspector/manager/ZooInspectorManagerImpl.java +++ b/src/main/java/org/apache/zookeeper/inspector/manager/ZooInspectorManagerImpl.java @@ -24,8 +24,8 @@ import org.apache.zookeeper.Watcher; import org.apache.zookeeper.Watcher.Event.EventType; import org.apache.zookeeper.Watcher.Event.KeeperState; +import org.apache.zookeeper.ZKUtil; import org.apache.zookeeper.ZooDefs.Ids; -import org.apache.zookeeper.ZooDefs.Perms; import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.ZooKeeper.States; import org.apache.zookeeper.data.ACL; @@ -416,42 +416,7 @@ public List> getACLs(String nodePath) { Map aclMap = new LinkedHashMap(); aclMap.put(ACL_SCHEME, acl.getId().getScheme()); aclMap.put(ACL_ID, acl.getId().getId()); - StringBuilder sb = new StringBuilder(); - int perms = acl.getPerms(); - boolean addedPerm = false; - if ((perms & Perms.READ) == Perms.READ) { - sb.append("Read"); - addedPerm = true; - } - if (addedPerm) { - sb.append(", "); - } - if ((perms & Perms.WRITE) == Perms.WRITE) { - sb.append("Write"); - addedPerm = true; - } - if (addedPerm) { - sb.append(", "); - } - if ((perms & Perms.CREATE) == Perms.CREATE) { - sb.append("Create"); - addedPerm = true; - } - if (addedPerm) { - sb.append(", "); - } - if ((perms & Perms.DELETE) == Perms.DELETE) { - sb.append("Delete"); - addedPerm = true; - } - if (addedPerm) { - sb.append(", "); - } - if ((perms & Perms.ADMIN) == Perms.ADMIN) { - sb.append("Admin"); - addedPerm = true; - } - aclMap.put(ACL_PERMS, sb.toString()); + aclMap.put(ACL_PERMS, ZKUtil.getPermString(acl.getPerms())); returnACLs.add(aclMap); } }