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'
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