'Respond to a request for all OpenStack API versions.'

def index(self, req, explicit=False):

    def build_version_object(version, path, status):
        url = (CONF.public_endpoint or req.host_url)
        return {'id': ('v%s' % version), 'status': status, 'links': [{'rel': 'self', 'href': ('%s/%s/' % (url, path))}]}
    version_objs = []
    if CONF.enable_v2_api:
        version_objs.extend([build_version_object(2.6, 'v2', 'EXPERIMENTAL'), build_version_object(2.5, 'v2', 'CURRENT'), build_version_object(2.4, 'v2', 'SUPPORTED'), build_version_object(2.3, 'v2', 'SUPPORTED'), build_version_object(2.2, 'v2', 'SUPPORTED'), build_version_object(2.1, 'v2', 'SUPPORTED'), build_version_object(2.0, 'v2', 'SUPPORTED')])
    if CONF.enable_v1_api:
        LOG.warn(_LW('The    Images    (Glance)    v1    API    is    deprecated    and    will    be    removed    on    or    after    the    Pike    release,    following    the    standard    OpenStack    deprecation    policy.    Currently,    the    solution    is    to    set    enable_v1_api=False    and    enable_v2_api=True    in    your    glance-api.conf    file.    Once    those    options    are    removed    from    the    code,    Images    (Glance)    v2    API    will    be    switched    on    by    default    and    will    be    the    only    option    to    deploy    and    use.'))
        version_objs.extend([build_version_object(1.1, 'v1', 'DEPRECATED'), build_version_object(1.0, 'v1', 'DEPRECATED')])
    status = ((explicit and http_client.OK) or http_client.MULTIPLE_CHOICES)
    response = webob.Response(request=req, status=status, content_type='application/json')
    response.body = jsonutils.dump_as_bytes(dict(versions=version_objs))
    return response
