docs: def list_transaction(hostname, username, password, label):
      '''
      A function to connect to a bigip device and list an existing transaction.
  
      hostname
          The host/address of the bigip device
      username
          The iControl REST username
      password
          The iControl REST password
      label
          the label of this transaction stored within the grain:
          ``bigip_f5_trans:<label>``
  
      CLI Example::
  
          salt '*' bigip.list_transaction bigip admin admin my_transaction
  
      '''
  
      #build the session
      bigip_session = _build_session(username, password)
  
      #pull the trans id from the grain
      trans_id = __salt__['grains.get']('bigip_f5_trans:{label}'.format(label=label))
  
      if trans_id:
  
          #post to REST to get trans id
          try:
              response = bigip_session.get(BIG_IP_URL_BASE.format(host=hostname)+'/transaction/{trans_id}/commands'.format(trans_id=trans_id))
              return _load_response(response)
          except requests.exceptions.ConnectionError as e:
              return _load_connection_error(hostname, e)
      else:
          return 'Error: the label for this transaction was not defined as a grain.  Begin a new transaction using the' \
                 ' bigip.start_transaction function'