'Returns timestamp(s) and other info extracted from a policy specific
file name. For EC policy the data file name includes a fragment index
and possibly a durable marker, both of which which must be stripped off
to retrieve the timestamp.
:param filename: the file name including extension
:returns: a dict, with keys for timestamp, frag_index, durable, ext and
ctype_timestamp:
* timestamp is a :class:`~swift.common.utils.Timestamp`
* frag_index is an int or None
* ctype_timestamp is a :class:`~swift.common.utils.Timestamp` or
None for .meta files, otherwise None
* ext is a string, the file extension including the leading dot or
the empty string if the filename has no extension
* durable is a boolean that is True if the filename is a data file
that includes a durable marker
:raises DiskFileError: if any part of the filename is not able to be
validated.'

def parse_on_disk_filename(self, filename):

    frag_index = None
    (float_frag, ext) = splitext(filename)
    if (ext == '.data'):
        parts = float_frag.split('#')
        try:
            timestamp = Timestamp(parts[0])
        except ValueError:
            raise DiskFileError(('Invalid    Timestamp    value    in    filename    %r' % filename))
        try:
            frag_index = parts[1]
        except IndexError:
            pass
        frag_index = self.validate_fragment_index(frag_index)
        try:
            durable = (parts[2] == 'd')
        except IndexError:
            durable = False
        return {'timestamp': timestamp, 'frag_index': frag_index, 'ext': ext, 'ctype_timestamp': None, 'durable': durable}
    rv = super(ECDiskFileManager, self).parse_on_disk_filename(filename)
    rv['frag_index'] = None
    return rv
