Skip to content

Commit 7c2d777

Browse files
committed
[#817] add zone_report capability to zone manager
1 parent 9554c9f commit 7c2d777

3 files changed

Lines changed: 28 additions & 0 deletions

File tree

irods/api_number.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,4 +181,5 @@
181181
"TOUCH_APN": 20007,
182182
"AUTH_PLUG_REQ_AN": 1201,
183183
"AUTHENTICATION_APN": 110000,
184+
"ZONE_REPORT_AN": 10205,
184185
}

irods/manager/zone_manager.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,20 @@ def remove(self, zone_name):
4141
conn.send(request)
4242
response = conn.recv()
4343
logger.debug(response.int_info)
44+
45+
def zone_report(self):
46+
"""
47+
Get zone report.
48+
49+
Requires rodsadmin privileges.
50+
51+
Returns:
52+
dict: Contains zone configuration.
53+
"""
54+
message_body = ""
55+
request = iRODSMessage("RODS_API_REQ", msg=message_body, int_info=api_number["ZONE_REPORT_AN"])
56+
with self.sess.pool.get_connection() as conn:
57+
conn.send(request)
58+
response = conn.recv()
59+
logger.debug(response.int_info)
60+
return response.get_json_encoded_struct()

irods/test/admin_test.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@ def test_create_delete_local_user(self):
5252
with self.assertRaises(UserDoesNotExist):
5353
self.sess.users.get(self.new_user_name)
5454

55+
def test_zone_report(self):
56+
# get zone report
57+
report = self.sess.zones.zone_report()
58+
59+
# confirm it is a dict
60+
self.assertTrue(isinstance(report, dict))
61+
62+
# confirm zone name matches
63+
self.assertEqual(report["zones"][0]["servers"][0]["server_config"]["zone_name"], self.sess.zone)
64+
5565
def test_create_delete_user_zone(self):
5666
# user should not be already present
5767
with self.assertRaises(UserDoesNotExist):

0 commit comments

Comments
 (0)