Пример #1
0
    def get(self, account):
        """ list all scopes for an account.

        .. :quickref: Scopes; List scope for account.

        :param account: The account identifier.
        :resheader Content-Type: application/x-json-stream
        :status 200: OK.
        :status 401: Invalid auth token.
        :status 404: Account not found.
        :status 404: Scope not found.
        :statsu 406: Not Acceptable
        :returns: A list containing all scope names for an account.
        """
        try:
            scopes = get_scopes(account, vo=request.environ.get('vo'))
        except AccountNotFound as error:
            return generate_http_error_flask(404, error)

        if not len(scopes):
            return generate_http_error_flask(
                404, ScopeNotFound.__name__,
                f"no scopes found for account ID '{account}'")

        return jsonify(scopes)
Пример #2
0
    def get(self, account):
        """ list all scopes for an account.

        .. :quickref: Scopes; List scope for account.

        :param account: The account identifier.
        :resheader Content-Type: application/x-json-stream
        :status 200: OK.
        :status 401: Invalid auth token.
        :status 404: Account not found.
        :status 404: Scope not found.
        :statsu 406: Not Acceptable
        :status 500: Database exception.
        :returns: A list containing all scope names for an account.
        """
        try:
            scopes = get_scopes(account, vo=request.environ.get('vo'))
        except AccountNotFound as error:
            return generate_http_error_flask(404, 'AccountNotFound', error.args[0])
        except RucioException as error:
            return generate_http_error_flask(500, error.__class__.__name__, error.args[0])
        except Exception as error:
            print(format_exc())
            return str(error), 500

        if not len(scopes):
            return generate_http_error_flask(404, 'ScopeNotFound', 'no scopes found for account ID \'%s\'' % account)

        return jsonify(scopes)
Пример #3
0
    def GET(self, account):
        """ list all scopes for an account.

        HTTP Success:
            200 OK

        HTTP Error:
            401 Unauthorized
            404 Not Found
            406 Not Acceptable
            500 InternalError

        :param Rucio-Account: Account identifier.
        :param Rucio-Auth-Token: as an 32 character hex string.
        :returns: A list containing all scope names for an account.
        """
        header('Content-Type', 'application/json')
        try:
            scopes = get_scopes(account, vo=ctx.env.get('vo'))
        except AccountNotFound as error:
            raise generate_http_error(404, 'AccountNotFound', error.args[0])
        except RucioException as error:
            raise generate_http_error(500, error.__class__.__name__,
                                      error.args[0])
        except Exception as error:
            print(format_exc())
            raise InternalError(error)

        if not len(scopes):
            raise generate_http_error(
                404, 'ScopeNotFound',
                'no scopes found for account ID \'%s\'' % account)

        return dumps(scopes)
Пример #4
0
    def get(self, account):
        """List account scopes.

        .. :quickref: Scopes; Get scopes for account.

        :resheader Content-Type: application/json
        :status 200: Scopes found
        :status 404: Account not found
        :status 404: No scopes for this account
        :status 406: Not Acceptable
        :returns: A list containing all scope names for an account.
        """
        try:
            scopes = get_scopes(account, vo=request.environ.get('vo'))
        except AccountNotFound as error:
            return generate_http_error_flask(404, 'AccountNotFound',
                                             error.args[0])
        except Exception as error:
            print(format_exc())
            return str(error), 500

        if not len(scopes):
            return generate_http_error_flask(
                404, 'ScopeNotFound',
                'no scopes found for account ID \'%s\'' % account)

        return jsonify(scopes)
Пример #5
0
    def test_api_scope(self):
        """ SCOPE (API): Test external representation of scopes """

        out = list_scopes()
        assert self.scope_name in out
        if self.multi_vo:
            assert self.scope.internal not in out

        out = get_scopes(self.account_name, **self.vo)
        assert self.scope_name in out
        if self.multi_vo:
            assert self.scope.internal not in out
Пример #6
0
    def get(self, account):
        """
        ---
        summary: List scopes
        description: List all scopse for an account.
        tags:
          - Account
        parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
        responses:
          200:
            description: OK
            content:
              application/x-json-stream:
                schema:
                  description: All scopes for the account.
                  type: array
                  items:
                    description: A scope
                    type: string
          401:
            description: Invalid Auth Token
          404:
            description: No account or scope found for the given id.
          406:
            description: Not acceptable
        """
        try:
            scopes = get_scopes(account, vo=request.environ.get('vo'))
        except AccountNotFound as error:
            return generate_http_error_flask(404, error)

        if not len(scopes):
            return generate_http_error_flask(
                404, ScopeNotFound.__name__,
                f"no scopes found for account ID '{account}'")

        return jsonify(scopes)
Пример #7
0
    def GET(self, account):
        """ list all scopes for an account.

        HTTP Success:
            200 OK

        HTTP Error:
            401 Unauthorized
            404 Not Found
            500 InternalError

        :param Rucio-Account: Account identifier.
        :param Rucio-Auth-Token: as an 32 character hex string.
        :returns: A list containing all scope names for an account.
        """
        header('Content-Type', 'application/json')
        try:
            scopes = get_scopes(account)
        except AccountNotFound, e:
            raise generate_http_error(404, 'AccountNotFound', e.args[0][0])
Пример #8
0
    def GET(self, account):
        """ list all scopes for an account.

        HTTP Success:
            200 OK

        HTTP Error:
            401 Unauthorized
            404 Not Found
            500 InternalError

        :param Rucio-Account: Account identifier.
        :param Rucio-Auth-Token: as an 32 character hex string.
        :returns: A list containing all scope names for an account.
        """
        header('Content-Type', 'application/json')
        try:
            scopes = get_scopes(account)
        except AccountNotFound, e:
            raise generate_http_error(404, 'AccountNotFound', e.args[0][0])
Пример #9
0
    def get(self, account):
        """List account scopes.

        .. :quickref: Scopes; Get scopes for account.

        :resheader Content-Type: application/json
        :status 200: Scopes found
        :status 404: Account not found
        :status 404: No scopes for this account
        :status 406: Not Acceptable
        :returns: A list containing all scope names for an account.
        """
        try:
            scopes = get_scopes(account, vo=request.environ.get('vo'))
        except AccountNotFound as error:
            return generate_http_error_flask(404, error)

        if not len(scopes):
            return generate_http_error_flask(
                404, ScopeNotFound.__name__,
                f"no scopes found for account '{account}'")

        return jsonify(scopes)