Beispiel #1
0
def add_switch_machine():
    """add switch machine."""
    data = _get_request_data()
    return utils.make_json_response(
        200,
        switch_api.add_switch_machine(current_user, switch_id, **data)
    )
Beispiel #2
0
def delete_switch(switch_id):
    """delete switch."""
    data = _get_request_data()
    return utils.make_json_response(
        200,
        switch_api.del_switch(current_user, switch_id, **data)
    )
Beispiel #3
0
def show_permission(permission_id):
    """Get permission."""
    data = _get_request_args()
    return utils.make_json_response(
        200,
        permission_api.get_permission(current_user, permission_id, **data)
    )
Beispiel #4
0
def poll_switch_machines(switch_id):
    """update switch."""
    data = _get_request_data()
    return utils.make_json_response(
        201,
        switch_api.poll_switch_machines(current_user, switch_id, **data)
    )
Beispiel #5
0
def add_cluster_config(cluster_id):
    """Update the config information for a specified cluster."""
    config = json.loads(request.data)
    if not config:
        raise BadRequest("Config cannot be None!")

    root_elems = ['os_config', 'package_config']
    if len(config.keys()) != 1 or config.keys()[0] not in root_elems:
        error_msg = ("Config root elements must be either"
                     "'os_config' or 'package_config'")
        raise BadRequest(error_msg)

    result = None
    is_patch_method = request.method == 'PATCH'
    try:
        if "os_config" in config:
            result = db_api.cluster\
                           .update_cluster_config(cluster_id,
                                                  'os_config',
                                                  config,
                                                  patch=is_patch_method)
        elif "package_config" in config:
            result = db_api.cluster\
                           .update_cluster_config(cluster_id,
                                                  'package_config', config,
                                                  patch=is_patch_method)

    except InvalidParameter as ex:
        raise BadRequest(ex.message)

    except RecordNotExists as ex:
        raise ItemNotFound(ex.message)

    return utils.make_json_response(200, result)
Beispiel #6
0
def list_permissions():
    """List permissions."""
    data = _get_request_args()
    return utils.make_json_response(
        200,
        permission_api.list_permissions(current_user, **data)
    )
Beispiel #7
0
def add_user():
    """add user."""
    data = _get_request_data()
    user_dict = user_api.add_user(current_user, **data)
    return utils.make_json_response(
        200, user_dict
    )
Beispiel #8
0
def add_cluster_config(cluster_id):
    """Update the config information for a specified cluster."""
    config = json.loads(request.data)
    if not config:
        raise BadRequest("Config cannot be None!")

    root_elems = ['os_config', 'package_config']
    if len(config.keys()) != 1 or config.keys()[0] not in root_elems:
        error_msg = ("Config root elements must be either"
                     "'os_config' or 'package_config'")
        raise BadRequest(error_msg)

    result = None
    is_patch_method = request.method == 'PATCH'
    try:
        if "os_config" in config:
            result = db_api.update_cluster_config(cluster_id, 'os_config',
                                                  config,
                                                  patch=is_patch_method)
        elif "package_config" in config:
            result = db_api.update_cluster_config(cluster_id,
                                                  'package_config', config,
                                                  patch=is_patch_method)

    except InvalidParameter as ex:
        raise BadRequest(ex.message)

    except RecordNotExists as ex:
        raise ItemNotFound(ex.message)

    return utils.make_json_response(200, result)
Beispiel #9
0
def patch_switch_filter(switch_id):
    """update switch filters."""
    data = _get_request_data()
    return utils.make_json_response(
        200,
        switch_api.patch_switch_filter(current_user, switch_id, **data)
    )
Beispiel #10
0
def _login(use_cookie):
    """User login helper function."""
    data = _get_request_data()
    if 'email' not in data or 'password' not in data:
        raise exception_handler.BadRequest(
            'missing email or password in data'
        )
    if 'expires' not in data:
        expire_timestamp = (
            datetime.datetime.now() + app.config['REMEMBER_COOKIE_DURATION']
        )
    else:
        expire_timestamp = util.parse_datetime(
            data['expires'], exception_handler.BadRequest
        )

    data['expire_timestamp'] = expire_timestamp
    user = auth_handler.authenticate_user(**data)
    if not login_user(user, remember=data.get('remember', False)):
        raise exception_handler.UserDisabled('failed to login: %s' % user)

    user_log_api.log_user_action(user.id, request.path)
    response_data = {'id': user.id}
    user_api.record_user_token(
        user, user.token, user.expire_timestamp
    )
    if not use_cookie:
        response_data['token'] = user.token
        response_data['expires'] = util.format_datetime(user.expire_timestamp)

    return utils.make_json_response(200, response_data)
Beispiel #11
0
def delete_user(user_id):
    """Delete user."""
    data = _get_request_data()
    return utils.make_json_response(
        200,
        user_api.del_user(
            current_user, user_id, **data
        )
    )
Beispiel #12
0
def get_adapter_roles(adapter_id):
    """Get roles for a specified adapter."""

    try:
        roles = db_api.adapter.get_adapter(adapter_id, True)
    except RecordNotExists as ex:
        raise ItemNotFound(ex.message)

    return utils.make_json_response(200, roles)
Beispiel #13
0
def get_adapter_roles(adapter_id):
    """Get roles for a specified adapter."""

    try:
        roles = db_api.get_adapter(adapter_id, True)
    except RecordNotExists as ex:
        raise ItemNotFound(ex.message)

    return utils.make_json_response(200, roles)
Beispiel #14
0
def show_machine(machine_id):
    """Get machine."""
    data = _get_request_args()
    return utils.make_json_response(
        200,
        machine_api.get_machine(
            current_user, machine_id, **data
        )
    )
Beispiel #15
0
def handle_bad_request(error, failed_objs=None):
    """Handler of badRequest Exception."""

    message = {'type': 'badRequest', 'message': error.message}

    if failed_objs and isinstance(failed_objs, dict):
        message.update(failed_objs)

    return utils.make_json_response(400, message)
Beispiel #16
0
def handle_no_permission(error, failed_objs=None):
    """Handler of Forbidden Exception."""

    message = {'type': 'Forbidden', 'message': error.message}

    if failed_objs and isinstance(failed_objs, dict):
        message.update(failed_objs)

    return utils.make_json_response(403, message)
Beispiel #17
0
def delete_machine(machine_id):
    """Delete machine."""
    data = _get_request_data()
    return utils.make_json_response(
        200,
        machine_api.del_machine(
            current_user, machine_id, **data
        )
    )
Beispiel #18
0
def handle_not_exist(error, failed_objs=None):
    """Handler of ItemNotFound Exception."""

    message = {'type': 'itemNotFound', 'message': error.message}

    if failed_objs and isinstance(failed_objs, dict):
        message.update(failed_objs)

    return utils.make_json_response(404, message)
Beispiel #19
0
def patch_machine():
    """patch machine."""
    data = _get_request_data()
    return utils.make_json_response(
        200,
        machine_api.patch_machine(
            current_user, machine_id, **data
        )
    )
Beispiel #20
0
def update_machine():
    """update machine."""
    data = _get_request_data()
    return utils.make_json_response(
        200,
        machine_api.update_machine(
            current_user, machine_id, **data
        )
    )
Beispiel #21
0
def handle_invalid_user(error, failed_objs=None):
    """Handler of Unauthorized Exception."""

    message = {'type': 'unathorized', 'message': error.message}

    if failed_objs and isinstance(failed_objs, dict):
        message.update(failed_objs)

    return utils.make_json_response(401, message)
Beispiel #22
0
def handle_bad_request(error, failed_objs=None):
    """Handler of badRequest Exception."""

    message = {'type': 'badRequest',
               'message': error.message}

    if failed_objs and isinstance(failed_objs, dict):
        message.update(failed_objs)

    return utils.make_json_response(400, message)
Beispiel #23
0
def handle_no_permission(error, failed_objs=None):
    """Handler of Forbidden Exception."""

    message = {'type': 'Forbidden',
               'message': error.message}

    if failed_objs and isinstance(failed_objs, dict):
        message.update(failed_objs)

    return utils.make_json_response(403, message)
Beispiel #24
0
def handle_invalid_user(error, failed_objs=None):
    """Handler of Unauthorized Exception."""

    message = {'type': 'unathorized',
               'message': error.message}

    if failed_objs and isinstance(failed_objs, dict):
        message.update(failed_objs)

    return utils.make_json_response(401, message)
Beispiel #25
0
def handle_not_exist(error, failed_objs=None):
    """Handler of ItemNotFound Exception."""

    message = {'type': 'itemNotFound',
               'message': error.message}

    if failed_objs and isinstance(failed_objs, dict):
        message.update(failed_objs)

    return utils.make_json_response(404, message)
Beispiel #26
0
def get_user_permission(user_id, permission_id):
    """Get a specific user permission."""
    data = _get_request_args()
    return utils.make_json_response(
        200,
        user_api.get_permission(
            current_user, user_id, permission_id
            **data
        )
    )
Beispiel #27
0
def list_adapters():
    """ List details of all adapters filtered by the adapter name(s)."""

    names = request.args.getlist('name')
    filters = {}
    if names:
        filters['name'] = names

    adapters_list = db_api.list_adapters(filters)
    return utils.make_json_response(200, adapters_list)
Beispiel #28
0
def delete_user_permission(user_id, permission_id):
    """Delete a specific user permission."""
    data = _get_request_data()
    return utils.make_json_response(
        200,
        user_api.del_permission(
            current_user, user_id, permission_id,
            **data
        )
    )
Beispiel #29
0
    def get(self, adapter_id):
        """Get information for a specified adapter."""

        try:
            adapter_info = db_api.get_adapter(adapter_id)
        except RecordNotExists as ex:
            error_msg = ex.message
            raise ItemNotFound(error_msg)

        return utils.make_json_response(200, adapter_info)
Beispiel #30
0
def delete_user_actions(uesr_id):
    """Delete user actions."""
    data = _get_request_data()
    _filter_timestamp(data)
    return utils.make_json_response(
        200,
        user_log_api.del_user_actions(
            current_user, user_id, **data
        )
    )
Beispiel #31
0
def update_user_permissions(user_id):
    """Update user permissions."""
    data = _get_request_data()
    return utils.make_json_response(
        200,
        user_api.update_permissions(
            current_user, user_id,
            **data
        )
    )
Beispiel #32
0
def list_switch_filters():
    """List switch filters."""
    data = _get_request_args()
    _filter_ip(data)
    return utils.make_json_response(
        200,
        switch_api.list_switch_filters(
            current_user, **data
        )
    )
Beispiel #33
0
def list_user_actions(uesr_id):
    """List user actions."""
    data = _get_request_args()
    _filter_timestamp(data)
    return utils.make_json_response(
        200,
        user_log_api.list_user_actions(
            current_user, user_id, **data
        )
    )
Beispiel #34
0
def list_adapters():
    """List details of all adapters filtered by the adapter name(s)."""

    names = request.args.getlist('name')
    filters = {}
    if names:
        filters['name'] = names

    adapters_list = db_api.adapter.list_adapters(filters)
    return utils.make_json_response(200, adapters_list)
Beispiel #35
0
    def get(self, adapter_id):
        """Get information for a specified adapter."""

        try:
            adapter_info = db_api.adapter.get_adapter(adapter_id)
        except RecordNotExists as ex:
            error_msg = ex.message
            raise ItemNotFound(error_msg)

        return utils.make_json_response(200, adapter_info)
Beispiel #36
0
def get_adapter_config_schema(adapter_id):
    """Get the config schema for a specified adapter."""

    os_id = request.args.get("os-id", type=int)

    try:
        schema = db_api.get_adapter_config_schema(adapter_id, os_id)
    except RecordNotExists as ex:
        raise ItemNotFound(ex.message)

    return utils.make_json_response(200, schema)
Beispiel #37
0
    def get(self, user_id):
        """Get user's information for the specified ID."""
        try:
            user_data = db_api.user.get_user(user_id)
            logging.debug("user_data is===>%s", user_data)

        except RecordNotExists as ex:
            error_msg = ex.message
            raise ItemNotFound(error_msg)

        return utils.make_json_response(200, user_data)
Beispiel #38
0
def list_machines():
    """List machines."""
    data = _get_request_args()
    _filter_tag(data)
    _filter_location(data)
    return utils.make_json_response(
        200,
        machine_api.list_machines(
            current_user, **data
        )
    )
Beispiel #39
0
    def get(self, user_id):
        """Get user's information for the specified ID."""
        try:
            user_data = db_api.get_user(user_id)
            logging.debug("user_data is===>%s", user_data)

        except RecordNotExists as ex:
            error_msg = ex.message
            raise ItemNotFound(error_msg)

        return utils.make_json_response(200, user_data)
Beispiel #40
0
def get_adapter_config_schema(adapter_id):
    """Get the config schema for a specified adapter."""

    os_id = request.args.get("os-id", type=int)

    try:
        schema = db_api.adapter.get_adapter_config_schema(adapter_id, os_id)
    except RecordNotExists as ex:
        raise ItemNotFound(ex.message)

    return utils.make_json_response(200, schema)
def handle_exception(error):
    if hasattr(error, 'to_dict'):
        response = error.to_dict()
    else:
        response = {'message': str(error)}
    if app.debug and hasattr(error, 'traceback'):
        response['traceback'] = error.traceback

    status_code = 400
    if hasattr(error, 'status_code'):
        status_code = error.status_code

        return utils.make_json_response(status_code, response)
Beispiel #42
0
def list_users():
    """List details of all users filtered by user email and admin role."""

    emails = request.args.getlist('email')
    is_admin = request.args.get('admin')
    filters = {}

    if emails:
        filters['email'] = emails

    if is_admin is not None:
        if is_admin == 'true':
            filters['is_admin'] = True
        elif is_admin == 'false':
            filters['is_admin'] = False

    users_list = db_api.user.list_users(filters)

    return utils.make_json_response(200, users_list)