api_version = {'version': '1.0 r1'}

@appv1.error(400)
@appv1.error(401)
@appv1.error(404)
@appv1.error(500)
def error_json_generic(error):
    try:
        error_details = json.loads(error.body)
    except:
        error_details = error.body
    enable_cors()
    bottle.response.content_type = 'application/json'
    return json.dumps({"error_message": error_details})

autocf = automate_cf.automate_cf()
#autohos = automate_openstack.automate_openstack_v2()

class AuthorizationError(Exception):
    """ A base class for exceptions used by bottle. """
    pass

#@bottle.hook('after_request')  # this doesn't work, so I added the add_hook call below
def enable_cors():
    origin = bottle.request.headers.get('Origin', None)
    if origin:
        bottle.response.headers['Access-Control-Allow-Origin'] = origin
        bottle.response.headers['Access-Control-Allow-Methods'] = 'GET, PUT, POST, DELETE'
        bottle.response.headers['Access-Control-Allow-Headers'] = 'Authorization, Content-Type'

appv1.add_hook('after_request', enable_cors)