def get_v1_endpoint(): """Entry point for API v1""" if not auth.is_authenticated(): return make_json_response(v1_root) result = v1_root.copy() result['services'] = { 'keystone': app.config['KEYSTONE_URI'], 'nova-billing': _get_os_service_url('nova-billing') } return make_json_response(result)
def test_raises_nicely(self): class TestClass(object): def __repr__(self): return "TEST CLASS" with self.app.test_request_context(): try: make_json_response({"a": TestClass()}) except TypeError, error: pass else:
def test_raises_nicely(self): class TestClass(object): def __repr__(self): return 'TEST CLASS' with self.app.test_request_context(): try: make_json_response({'a': TestClass()}) except TypeError, error: pass else:
def reset_password(): if not g.config('password-reset', 'enabled'): abort(404) data = parse_request_data(allowed=_RESET_SCHEMA) user = _find_user(data) if user is None: return make_json_response(None, status_code=204) token = ResetTokensDAO.create(user.id, user.email) send_reset_password(user.email, token.code, user.name, link_template=data.get('link-template'), greeting=getattr(user, 'fullname', '')) return make_json_response(None, status_code=204)
def test_dates_in_response(self): self.app.config["PRETTY_PRINT_JSON"] = False timestamp = datetime(2012, 9, 13, 15, 03, 42) with self.app.test_request_context(): resp = make_json_response({"created": timestamp}) expected = '{"created":"2012-09-13T15:03:42.000000Z"}' self.assertEquals(resp.data, expected)
def test_dates_in_response(self): self.app.config['PRETTY_PRINT_JSON'] = False timestamp = datetime(2012, 9, 13, 15, 03, 42) with self.app.test_request_context(): resp = make_json_response({'created': timestamp}) expected = '{"created":"2012-09-13T15:03:42.000000Z"}' self.assertEquals(resp.data, expected)
def test_pretty_response(self): self.app.config['PRETTY_PRINT_JSON'] = True with self.app.test_request_context(): resp = make_json_response({'one': 1}) self.assertEquals(resp.data, '{\n "one": 1\n}\n') self.assertEquals(resp.status_code, 200) self.assertEquals(resp.headers.get('Content-type'), 'application/json')
def test_pretty_response(self): self.app.config["PRETTY_PRINT_JSON"] = True with self.app.test_request_context(): resp = make_json_response({"one": 1}) self.assertEquals(resp.data, '{\n "one": 1\n}\n') self.assertEquals(resp.status_code, 200) self.assertEquals(resp.headers.get("Content-type"), "application/json")
def drop_invite(code): """Refuse to accept invite""" invite, user = _invite_and_user(code) try: user.delete() except osc_exc.NotFound: abort(404) InvitesDAO.complete_for_user(invite.user_id) return make_json_response(None, status_code=204)
def apply_password_reset(code): if not g.config('password-reset', 'enabled'): abort(404) data = parse_request_data(required=_APPLY_SCHEMA) token = ResetTokensDAO.get(code) if not token or token.complete: abort(404) user = fetch_user(token.user_id, admin_mode=True) update_user_data(user, data) ResetTokensDAO.complete_for_user(token.user_id) return make_json_response(None, status_code=204)
def accept_invite(code): data = parse_request_data(_ACCEPT_SCHEMA, _ACCEPT_REQUIRES) invite, user = _invite_and_user(code) data['enabled'] = True try: update_user_data(user, data) user = auth.admin_client_set().identity_admin.users.get(user.id) except osc_exc.NotFound: abort(404) InvitesDAO.complete_for_user(user.id) return make_json_response(user_to_view(user, invite), 200)
def _exception_response(self, error, response, code, add_headers): if not isinstance(response, dict): # pragma: nocover response = { 'message': str(response) } response['path'] = flask.request.path response['method'] = flask.request.method tb_mode = self.config['TRACEBACK_IN_RESPONSE'] if tb_mode == 'always' or (tb_mode == 'auth_500' and code == 500 and auth.is_authenticated()): tb = _traceback_to_json(error) if tb: response['traceback'] = tb return make_json_response(response, code, add_headers)
def altai_stats(): cs = auth.admin_client_set() tenants = cs.identity_admin.tenants.list() users = cs.identity_admin.users.list() # TODO(imelnikov): should we ignore servers in systenant? servers = cs.compute.servers.list(search_opts={'all_tenants': 1}) images = list_all_images(cs.image.images) global_images = [image for image in images if image.is_public] return make_json_response({ 'projects': len(tenants) - 1, # not counting systenant 'instances': len(servers), 'users': len(users), 'total-images': len(images), 'global-images': len(global_images), 'by-project-stats-href': url_for('stats.list_stats_by_project') })
def get_project_stats(project_id): tenant = get_tenant(project_id) acs = auth.admin_client_set() users = acs.identity_admin.tenants.list_users(tenant.id) tcs = auth.client_set_for_tenant(project_id, fallback_to_api=g.is_admin) servers = tcs.compute.servers.list() images = tcs.image.images.list() local_images = [image for image in images if image.owner == tenant.id] return make_json_response({ u'project': link_for_tenant(tenant), u'instances': len(servers), u'members': len(users), u'local-images': len(local_images), u'total-images': len(images), 'href': url_for('stats.get_project_stats', project_id=tenant.id) })
def get_user_by_code(code): invite, user = _invite_and_user(code) return make_json_response(user_to_view(user, invite))
def test_dates_in_pretty_response(self): self.app.config['PRETTY_PRINT_JSON'] = True timestamp = datetime(2012, 9, 13, 15, 03, 42) with self.app.test_request_context(): resp = make_json_response({'created': timestamp}) self.assertTrue('"2012-09-13T15:03:42.000000Z"' in resp.data)
def test_empty_400_response(self): with self.app.test_request_context(): resp = make_json_response(None, status_code=400) self.assertEquals(resp.data, '') self.assertEquals(resp.status_code, 400) self.assertEquals(resp.headers.get('Content-type'), 'application/json')
def test_empty_400_response(self): with self.app.test_request_context(): resp = make_json_response(None, status_code=400) self.assertEquals(resp.data, "") self.assertEquals(resp.status_code, 400) self.assertEquals(resp.headers.get("Content-type"), "application/json")
def get_versions(): """REST API entry point.""" return make_json_response(versions)
def get_node(name): try: hosts = g.client_set.compute.hosts.get(name) except osc_exc.NotFound: abort(404) return make_json_response(_node_to_view(name, hosts))
def test_dates_in_pretty_response(self): self.app.config["PRETTY_PRINT_JSON"] = True timestamp = datetime(2012, 9, 13, 15, 03, 42) with self.app.test_request_context(): resp = make_json_response({"created": timestamp}) self.assertTrue('"2012-09-13T15:03:42.000000Z"' in resp.data)
def get_log_record(record_id): result = record_to_view(AuditDAO.get(record_id)) return make_json_response(result)