Skip to content

Instantly share code, notes, and snippets.

@hemna
Created October 6, 2016 18:01
Show Gist options
  • Save hemna/e5210dafc59c0482150363028e6248b2 to your computer and use it in GitHub Desktop.
Save hemna/e5210dafc59c0482150363028e6248b2 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# coding: utf-8
#
# Example program to perform iscsi discovery on a host
import sys
import libiscsi
import pprint
def usage():
print 'Usage: discovery <ISCSI-USL>'
print ''
print 'Example: discovery iscsi://120.0.0.1'
sys.exit()
def discovery(portal_str):
pprint.pprint(portal_str)
_iscsi = libiscsi.iscsi_create_context('iqn.1993-08.org.debian:01:d8e511159458')
_iscsi_url = libiscsi.iscsi_parse_portal_url(_iscsi, portal_str)
libiscsi.iscsi_set_targetname(_iscsi, _iscsi_url.target)
libiscsi.iscsi_set_session_type(_iscsi, libiscsi.ISCSI_SESSION_DISCOVERY)
libiscsi.iscsi_set_header_digest(_iscsi, libiscsi.ISCSI_HEADER_DIGEST_NONE_CRC32C)
libiscsi.iscsi_full_connect_sync(_iscsi, _iscsi_url.portal, _iscsi_url.lun)
_da = libiscsi.iscsi_discovery_sync(_iscsi)
da = _da
while da:
print 'Target', da.target_name
dp = da.portals
while dp:
print ' Portal', dp.portal
dp = dp.next
da = da.next
libiscsi.iscsi_free_discovery_data(_iscsi, _da)
if __name__ == "__main__":
if len(sys.argv) != 2:
usage()
discovery(sys.argv[1])
@WaltHP
Copy link

WaltHP commented Oct 6, 2016

$ python discovery.py iscsi://10.52.1.11
'iscsi://10.52.1.11'
Target iqn.2000-05.com.3pardata:20810002ac00383d
Portal 10.52.1.11:3260,81

@WaltHP
Copy link

WaltHP commented Oct 6, 2016

sudo iscsiadm -m discovery -t sendtargets -p 10.52.1.11
10.52.1.11:3260,81 iqn.2000-05.com.3pardata:20810002ac00383d

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment