'Returns metadata about all urns.
Currently the metadata include type, and last update time.
Args:
urns: The urns of the objects to open.
token: The token to use.
Yields:
A dict of metadata.
Raises:
RuntimeError: A string was passed instead of an iterable.'

def Stat(self, urns, token=None):

    if (token is None):
        token = data_store.default_token
    if isinstance(urns, basestring):
        raise RuntimeError('Expected    an    iterable,    not    string.')
    for (subject, values) in data_store.DB.MultiResolvePrefix(urns, ['aff4:type', 'metadata:last'], token=token):
        res = dict(urn=rdfvalue.RDFURN(subject))
        for v in values:
            if (v[0] == 'aff4:type'):
                res['type'] = v
            elif (v[0] == 'metadata:last'):
                res['last'] = rdfvalue.RDFDatetime(v[1])
        (yield res)
