test/spdkcli: Delete multiple subnodes from iscsi node

Change-Id: Iedea21339cde0b9ffd7bd724f642b5257208b82a
Signed-off-by: Pawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-on: https://review.gerrithub.io/430384
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Pawel Kaminski 2018-10-22 22:22:05 -04:00 committed by Jim Harris
parent 814a2dd90a
commit b7b7efdeaa
3 changed files with 90 additions and 40 deletions

View File

@ -70,6 +70,12 @@ class UIISCSIDevices(UINode):
== device.device_name:
UIISCSIDevice(device, node, self)
def delete(self, name):
try:
self.get_root().delete_target_node(target_node_name=name)
except JSONRPCException as e:
self.shell.log.error(e.message)
def ui_command_create(self, name, alias_name, bdev_name_id_pairs,
pg_ig_mappings, queue_depth, g=None, d=None, r=None,
m=None, h=None, t=None):
@ -124,18 +130,13 @@ class UIISCSIDevices(UINode):
Arguments:
name - Target node name.
"""
if name is None:
for device in self.devices:
try:
self.get_root().delete_target_node(
target_node_name=device.device_name)
except JSONRPCException as e:
self.shell.log.error(e.message)
else:
try:
self.get_root().delete_target_node(target_node_name=name)
except JSONRPCException as e:
self.shell.log.error(e.message)
self.delete(name)
self.refresh()
def ui_command_delete_all(self):
"""Delete all target nodes"""
for device in self.scsi_devices:
self.delete(device.device_name)
self.refresh()
def ui_command_add_lun(self, name, bdev_name, lun_id=None):
@ -310,6 +311,12 @@ class UIPortalGroups(UINode):
UINode.__init__(self, "portal_groups", parent)
self.refresh()
def delete(self, tag):
try:
self.get_root().delete_portal_group(tag=tag)
except JSONRPCException as e:
self.shell.log.error(e.message)
def ui_command_create(self, tag, portal_list):
"""Add a portal group.
@ -318,7 +325,6 @@ class UIPortalGroups(UINode):
tag: Portal group tag (unique, integer > 0)
"""
portals = []
print("portal_list: %s" % portal_list)
for portal in portal_list.strip().split(" "):
host = portal
cpumask = None
@ -339,11 +345,13 @@ class UIPortalGroups(UINode):
def ui_command_delete(self, tag):
"""Delete a portal group with given tag (unique, integer > 0))"""
tag = self.ui_eval_param(tag, "number", None)
try:
self.get_root().delete_portal_group(tag=tag)
except JSONRPCException as e:
self.shell.log.error(e.message)
self.delete(tag)
self.refresh()
def ui_command_delete_all(self):
"""Delete all portal groups"""
for pg in self.pgs:
self.delete(pg.tag)
self.refresh()
def refresh(self):
@ -383,6 +391,12 @@ class UIInitiatorGroups(UINode):
UINode.__init__(self, "initiator_groups", parent)
self.refresh()
def delete(self, tag):
try:
self.get_root().delete_initiator_group(tag=tag)
except JSONRPCException as e:
self.shell.log.error(e.message)
def ui_command_create(self, tag, initiator_list, netmask_list):
"""Add an initiator group.
@ -410,11 +424,13 @@ class UIInitiatorGroups(UINode):
tag: Initiator group tag (unique, integer > 0)
"""
tag = self.ui_eval_param(tag, "number", None)
try:
self.get_root().delete_initiator_group(tag=tag)
except JSONRPCException as e:
self.shell.log.error(e.message)
self.delete(tag)
self.refresh()
def ui_command_delete_all(self):
"""Delete all initiator groups"""
for ig in self.igs:
self.delete(ig.tag)
self.refresh()
def ui_command_add_initiator(self, tag, initiators, netmasks):
@ -538,6 +554,19 @@ class UIISCSIAuthGroups(UINode):
for ag in self.iscsi_auth_groups:
UIISCSIAuthGroup(ag, self)
def delete(self, tag):
try:
self.get_root().delete_iscsi_auth_group(tag=tag)
except JSONRPCException as e:
self.shell.log.error(e.message)
def delete_secret(self, tag, user):
try:
self.get_root().delete_secret_from_iscsi_auth_group(
tag=tag, user=user)
except JSONRPCException as e:
self.shell.log.error(e.message)
def ui_command_create(self, tag, secrets=None):
"""Add authentication group for CHAP authentication.
@ -565,11 +594,13 @@ class UIISCSIAuthGroups(UINode):
tag: Authentication group tag (unique, integer > 0)
"""
tag = self.ui_eval_param(tag, "number", None)
try:
self.get_root().delete_iscsi_auth_group(tag=tag)
except JSONRPCException as e:
self.shell.log.error(e.message)
self.delete(tag)
self.refresh()
def ui_command_delete_all(self):
"""Delete all authentication groups."""
for iscsi_auth_group in self.iscsi_auth_groups:
self.delete(iscsi_auth_group['tag'])
self.refresh()
def ui_command_add_secret(self, tag, user, secret,
@ -601,11 +632,20 @@ class UIISCSIAuthGroups(UINode):
user: User name for one-way CHAP authentication
"""
tag = self.ui_eval_param(tag, "number", None)
try:
self.get_root().delete_secret_from_iscsi_auth_group(
tag=tag, user=user)
except JSONRPCException as e:
self.shell.log.error(e.message)
self.delete_secret(tag, user)
self.refresh()
def ui_command_delete_secret_all(self, tag):
"""Delete all secrets from an authentication group.
Args:
tag: Authentication group tag (unique, integer > 0)
"""
tag = self.ui_eval_param(tag, "number", None)
for ag in self.iscsi_auth_groups:
if ag['tag'] == tag:
for secret in ag['secrets']:
self.delete_secret(tag, secret['user'])
self.refresh()
def summary(self):
@ -629,8 +669,10 @@ class UIISCSIAuthGroup(UINode):
class UISCSIAuthSecret(UINode):
def __init__(self, secret, parent):
info = ", ".join("%s=%s" % (key, val)
for key, val in secret.items())
info_list = ["%s=%s" % (key, val)
for key, val in secret.items()]
info_list.sort(reverse=True)
info = ", ".join(info_list)
UINode.__init__(self, info, parent)
self.secret = secret
self.refresh()

View File

@ -28,9 +28,10 @@ $spdkcli_job "/iscsi/target_nodes create Target0 Target0_alias \"Malloc0:0 Mallo
$spdkcli_job "/iscsi/target_nodes create Target1 Target1_alias Malloc2:0 1:2 64 g=1" "Target1" True
$spdkcli_job "/iscsi/target_nodes/iqn.2016-06.io.spdk:Target0 add_pg_ig_maps \"1:3 2:2\"" "portal_group1 - initiator_group3" True
$spdkcli_job "/iscsi/target_nodes add_lun iqn.2016-06.io.spdk:Target1 Malloc3 2" "Malloc3" True
$spdkcli_job "/iscsi/auth_groups create 1 \"user:test secret:test muser:mutual_test msecret:mutual_test \
$spdkcli_job "/iscsi/auth_groups create 1 \"user:test1 secret:test1 muser:mutual_test1 msecret:mutual_test1,\
user:test3 secret:test3 muser:mutual_test3 msecret:mutual_test3\"" "user=test3" True
$spdkcli_job "/iscsi/auth_groups add_secret 1 user=test2 secret=test2 muser=mutual_test2 msecret=mutual_test2" "user=test2" True
$spdkcli_job "/iscsi/auth_groups create 2 \"user:test4 secret:test4 muser:mutual_test4 msecret:mutual_test4\"" "user=test4" True
$spdkcli_job "/iscsi/target_nodes/iqn.2016-06.io.spdk:Target0 set_auth g=1 d=true" "disable_chap: True" True
$spdkcli_job "/iscsi/global_params set_auth g=1 d=true r=false" "disable_chap: True" True
$spdkcli_job "/iscsi ls" "Malloc" True
@ -42,13 +43,17 @@ timing_exit spdkcli_check_match
timing_enter spdkcli_clear_iscsi_config
$spdkcli_job "/iscsi/auth_groups delete_secret 1 test2" "user=test2"
$spdkcli_job "/iscsi/auth_groups delete 1" "user=test"
$spdkcli_job "/iscsi/auth_groups delete_secret_all 1" "user=test1"
$spdkcli_job "/iscsi/auth_groups delete 1" "user=test1"
$spdkcli_job "/iscsi/auth_groups delete_all" "user=test4"
$spdkcli_job "/iscsi/target_nodes/iqn.2016-06.io.spdk:Target0 delete_pg_ig_maps \"1:3 2:2\"" "portal_group1 - initiator_group3"
$spdkcli_job "/iscsi/target_nodes delete iqn.2016-06.io.spdk:Target1" "Target1"
$spdkcli_job "/iscsi/target_nodes delete iqn.2016-06.io.spdk:Target0" "Target0"
$spdkcli_job "/iscsi/target_nodes delete_all" "Target0"
$spdkcli_job "/iscsi/initiator_groups delete_initiator 2 ANW 10.0.2.16/32" "ANW"
$spdkcli_job "/iscsi/initiator_groups delete 3" "ANYZ"
$spdkcli_job "/iscsi/initiator_groups delete 3" "ANZ"
$spdkcli_job "/iscsi/initiator_groups delete_all" "ANY"
$spdkcli_job "/iscsi/portal_groups delete 1" "127.0.0.1:3261"
$spdkcli_job "/iscsi/portal_groups delete_all" "127.0.0.1:3262"
$spdkcli_job "/bdevs/malloc delete Malloc3" "Malloc3"
$spdkcli_job "/bdevs/malloc delete Malloc2" "Malloc2"
$spdkcli_job "/bdevs/malloc delete Malloc1" "Malloc1"

View File

@ -1,8 +1,11 @@
o- iscsi ..................................................................................................................... [...]
o- auth_groups ....................................................................................................... [Groups: 1]
| o- group1 ......................................................................................................... [Secrets: 2]
| o- user=test2, secret=test2, muser=mutual_test2, msecret=mutual_test2 .................................................. [...]
| o- user=test3, secret=test3, muser=mutual_test3, msecret=mutual_test3 .................................................. [...]
o- auth_groups ....................................................................................................... [Groups: 2]
| o- group1 ......................................................................................................... [Secrets: 3]
| | o- user=test1, secret=test1, muser=mutual_test1, msecret=mutual_test1 .................................................. [...]
| | o- user=test2, secret=test2, muser=mutual_test2, msecret=mutual_test2 .................................................. [...]
| | o- user=test3, secret=test3, muser=mutual_test3, msecret=mutual_test3 .................................................. [...]
| o- group2 ......................................................................................................... [Secrets: 1]
| o- user=test4, secret=test4, muser=mutual_test4, msecret=mutual_test4 .................................................. [...]
o- global_params ........................................................................................................... [...]
| o- allow_duplicated_isid: False .......................................................................................... [...]
| o- chap_group: 1 ......................................................................................................... [...]