Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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:
Ejemplo n.º 3
0
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:
Ejemplo n.º 4
0
# -*- 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",
Ejemplo n.º 5
0
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