* access_group_init_del(ag_name, init_id, init_type) Remove a initiator from an access group. If requested initiator not in defined access group, return silently. If defined access group does not exist, return silently. Parameters: ag_name (str): Access group name init_id (str): iSCSI initiator address init_type (str): Reserved for future use. Should be set as 'iscsi' Returns: N/A Errors: N/A
Signed-off-by: Gris Ge fge@redhat.com --- API.md | 13 +++++++++++++ targetd/block.py | 17 +++++++++++++++++ 2 files changed, 30 insertions(+)
diff --git a/API.md b/API.md index c16eb54..52c0f4c 100644 --- a/API.md +++ b/API.md @@ -187,6 +187,19 @@ Returns: Errors: -52: Exists initiator. Requested 'init_id' is in use
+### access_group_init_del(ag_name, init_id, init_type) +Remove a initiator from an access group. +If requested initiator not in defined access group, return silently. +If defined access group does not exist, return silently. +Parameters: + ag_name (str): Access group name + init_id (str): iSCSI initiator address + init_type (str): Reserved for future use. Should be set as 'iscsi' +Returns: + N/A +Errors: + N/A + File system operations ---------------------- Ability to create different file systems and perform operation on them. The diff --git a/targetd/block.py b/targetd/block.py index 0ea7875..bdf2332 100644 --- a/targetd/block.py +++ b/targetd/block.py @@ -111,6 +111,7 @@ def initialize(config_dict): access_group_create=access_group_create, access_group_destroy=access_group_destroy, access_group_init_add=access_group_init_add, + access_group_init_del=access_group_init_del, )
@@ -463,3 +464,19 @@ def access_group_init_add(req, ag_name, init_id, init_type):
NodeACLGroup(tpg, ag_name).add_acl(init_id) RTSRoot().save_to_file() + + +def access_group_init_del(req, ag_name, init_id, init_type): + if init_type != 'iscsi': + raise TargetdError( + TargetdError.NO_SUPPORT, "Only support iscsi") + + tpg = _get_iscsi_tpg() + + # Pre-check: + # 1. Initiator is not in requested access group, return silently. + if init_id not in list(NodeACLGroup(tpg, ag_name).wwns): + return + + NodeACLGroup(tpg, ag_name).remove_acl(init_id) + RTSRoot().save_to_file()