The University of Queensland Homepage
UQ VisLab UQ VisLab

 Quick Bindings Test Guide
Note: For more comprehensive examples, download and extract one of the AG packages (it can be opened with a zip program) and read through agSRB.py (or mirrored here).

  • Start a Python interactive shell in the same directory as the built library.
    • Python 2.4.3 (#1, Jul 26 2006, 20:13:39)
      [GCC 3.4.6] on linux2
      Type "help", "copyright", "credits" or "license" for more information.

  • Then import the library with:
    • >>> import srb

  • To check if they have been properly imported:
    • >>> dir(srb)
      ['__doc__', '__file__', '__name__', 'coll_rename', 'connect', 'disconnect', 'get_error', 'get_obj_metadata', 'get_objs_in_coll', 'get_subcoll_name', 'get_subcolls', 'get_user_metadata', 'issue_ticket', 'mk_collection', 'more_objs_in_coll', 'more_subcolls', 'obj_close', 'obj_create', 'obj_delete', 'obj_open', 'obj_read', 'obj_rename', 'obj_seek', 'obj_ti_open', 'obj_write', 'register_user', 'remove_ticket', 'remove_user', 'rm_collection', 'rm_user_metadata', 'set_user_metadata', 'ti_connect']

  • Try connecting to a test account hosted at UQ Vislab (usually accessible during GMT+10 working hours)
    • >>> conn = srb.connect('laing.vislab.uq.edu.au', '5544', 'demo', 'ENCRYPT1', 'test', 'test', '')
      >>> conn
      1

  • To list the SRB data items in '/A/home/test.demo':
    • >>> nums = srb.get_objs_in_coll(conn, 0, 16, '/A/home/test.demo')
      >>> for num in range(nums):
      ...     srb.get_obj_metadata(conn, 0, num)
      ...
      'GenericData.png'
      'SRB3_4_2client.tar'
      'app.log'

  • To make a new SRB collection in '/A/home/test.demo':
    • >>> srb.mk_collection(conn, 0, '/A/home/test.demo', 'newdir')
      0

  • To list the SRB collections in '/A/home/test.demo':
    • >>> nums = srb.get_subcolls(conn, 0, '/A/home/test.demo')
      >>> for num in range(nums):
      ...     srb.get_subcoll_name(conn, num)
      ...
      '/A/home/test.demo/newdir'

  • To issue a ticket to a SRB data item:
    • >>> srb.issue_ticket(conn, 'GenericData.png', '/A/home/test.demo', '', '', '', -1, "ticketuser@sdsc")
      (0, 'DYwERng3Sb')

  • To return verbose messages from SRB error codes:
    • >>> srb.get_error(-3201)
      'DATA_NOT_IN_CAT: DATA_NOT_IN_CAT'
      >>> srb.get_error(-3202)
      'DATA_NOT_IN_DOMN: DATA_NOT_IN_DOMN'
      >>> srb.get_error(-3203)
      'USER_NOT_IN_DOMN: USER_NOT_IN_DOMN'

  • Don't forget to disconnect when you are done:
    • srb.disconnect(conn)