from flask import jsonify, g from webargs.flaskparser import use_args from console.libs.view import create_api_blueprint, DEFAULT_RETURN_VALUE, user_require from console.libs.validation import ( CreateRoleArgsSchema, CreateRoleBindingArgsSchema, ) from console.models import ( App, User, Group, Role, UserRoleBinding, GroupRoleBinding, str2action, get_roles_by_user ) bp = create_api_blueprint('rbac', __name__, 'rbac') @bp.route('/roles') @user_require(True) def list_roles(): """ List all roles """ roles = get_roles_by_user(g.user) return jsonify([r.to_dict() for r in roles]) @bp.route('/role', methods=['POST']) @use_args(CreateRoleArgsSchema()) @user_require(True) def create_role(args): """ create a role
from marshmallow import ValidationError from sqlalchemy.exc import IntegrityError from webargs.flaskparser import use_args from kaelib.spec import load_job_specs from console.libs.validation import JobArgsSchema from console.libs.view import create_api_blueprint, DEFAULT_RETURN_VALUE, user_require from console.models import Job from console.libs.k8s import KubeApi, ApiException from console.libs.cloner import Cloner from console.config import JOBS_ROOT_DIR, DEFAULT_JOB_NS from console.libs.utils import logger from .util import handle_k8s_err bp = create_api_blueprint('job', __name__, 'job') @bp.route('/') @user_require(False) def list_job(): """ List all the jobs associated with the current logged in user, for administrators, list all apps --- responses: 200: description: A list of job owned by current user schema: type: array items:
from console.libs.view import create_api_blueprint from console.models import App, Job, User, get_current_user from console.tasks import celery_task_stream_response, build_image from console.ext import rds, db from console.config import ( DEFAULT_APP_NS, DEFAULT_JOB_NS, WS_HEARTBEAT_TIMEOUT, FAKE_USER, BEARYCHAT_CHANNEL, APP_BUILD_TIMEOUT, ) ws = create_api_blueprint('ws', __name__, url_prefix='ws', jsonize=False, handle_http_error=False) def send_ping(sock): sock.send_frame("PP", sock.OPCODE_PING) def ws_user_require(privileged=False): def _user_require(func): @wraps(func) def _(socket, *args, **kwargs): if current_app.config['DEBUG']: g.user = User(**FAKE_USER) else:
# -*- coding: utf-8 -*- from flask import jsonify, abort, g from console.libs.view import user_require, create_api_blueprint from console.models import ( User, Group, check_rbac, RBACAction, ) bp = create_api_blueprint('user', __name__, 'user') @bp.route('/') @user_require(True) def list_users(): """ List all users --- responses: 200: description: user list schema: type: array items: $ref: '#/definitions/User' examples: application/json: [ { "username": "******", "nickname": "dude",
from console.libs.view import create_api_blueprint, user_require from console.libs.k8s import KubeApi bp = create_api_blueprint('cluster', __name__, 'cluster') @bp.route('/') @user_require(False) def list_cluster(): """ List all the available clusters --- responses: 200: description: available cluster list schema: type: array items: type: string examples: application/json: [ "cluster1", "cluster2", ] """ return KubeApi.instance().cluster_names