def get_block_list(self, container_name, blob_name, snapshot=None,<EOL>block_list_type=None, lease_id=None, timeout=None):
_validate_not_none('<STR_LIT>', container_name)<EOL>_validate_not_none('<STR_LIT>', blob_name)<EOL>request = HTTPRequest()<EOL>request.method = '<STR_LIT:GET>'<EOL>request.host_locations = self._get_host_locations(secondary=True)<EOL>request.path = _get_path(container_name, blob_name)<EOL>request.query = {<EOL>'<STR_LIT>': '<STR_LIT>',<EOL>'<STR_LIT>': _to_str(snapshot),<EOL>'<STR_LIT>': _to_str(block_list_type),<EOL>'<STR_LIT>': _int_to_str(timeout),<EOL>}<EOL>request.headers = {'<STR_LIT>': _to_str(lease_id)}<EOL>return self._perform_request(request, _convert_xml_to_block_list)<EOL>
Retrieves the list of blocks that have been uploaded as part of a
block blob. There are two block lists maintained for a blob:
    Committed Block List:
        The list of blocks that have been successfully committed to a
        given blob with Put Block List.
    Uncommitted Block List:
        The list of blocks that have been uploaded for a blob using
        Put Block, but that have not yet been committed. These blocks
        are stored in Azure in association with a blob, but do not yet
        form part of the blob.

:param str container_name:
    Name of existing container.
:param str blob_name:
    Name of existing blob.
:param str snapshot:
    Datetime to determine the time to retrieve the blocks.
:param str block_list_type:
    Specifies whether to return the list of committed blocks, the list
    of uncommitted blocks, or both lists together. Valid values are:
    committed, uncommitted, or all.
:param str lease_id:
    Required if the blob has an active lease.
:param int timeout:
    The timeout parameter is expressed in seconds.
:return: list committed and/or uncommitted blocks for Block Blob
:rtype: :class:`~azure.storage.blob.models.BlobBlockList`