# -*- coding: utf-8 -*-
+# Copyright 2018 Whitestack, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# For those usages not covered by the Apache License, Version 2.0 please
+# contact: esousa@whitestack.com or glavado@whitestack.com
+##
+
"""
Authconn implements an Abstract class for the Auth backend connector
plugins with the definition of the methods to be implemented.
Authentication error.
"""
def __init__(self, message, http_code=HTTPStatus.UNAUTHORIZED):
+ super(AuthException, self).__init__(message)
self.http_code = http_code
- Exception.__init__(self, message)
class AuthconnException(Exception):
Common and base class Exception for all authconn exceptions.
"""
def __init__(self, message, http_code=HTTPStatus.UNAUTHORIZED):
- Exception.__init__(message)
+ super(AuthconnException, self).__init__(message)
self.http_code = http_code
Connectivity error with Auth backend.
"""
def __init__(self, message, http_code=HTTPStatus.BAD_GATEWAY):
- AuthconnException.__init__(self, message, http_code)
+ super(AuthconnConnectionException, self).__init__(message, http_code)
class AuthconnNotSupportedException(AuthconnException):
The request is not supported by the Auth backend.
"""
def __init__(self, message, http_code=HTTPStatus.NOT_IMPLEMENTED):
- AuthconnException.__init__(self, message, http_code)
+ super(AuthconnNotSupportedException, self).__init__(message, http_code)
class AuthconnNotImplementedException(AuthconnException):
The method is not implemented by the Auth backend.
"""
def __init__(self, message, http_code=HTTPStatus.NOT_IMPLEMENTED):
- AuthconnException.__init__(self, message, http_code)
+ super(AuthconnNotImplementedException, self).__init__(message, http_code)
class AuthconnOperationException(AuthconnException):
The operation executed failed.
"""
def __init__(self, message, http_code=HTTPStatus.INTERNAL_SERVER_ERROR):
- AuthconnException.__init__(self, message, http_code)
+ super(AuthconnOperationException, self).__init__(message, http_code)
class Authconn:
"""
raise AuthconnNotImplementedException("Should have implemented this")
- def get_project_list(self, token):
+ def get_user_project_list(self, token):
"""
Get all the projects associated with a user.
"""
raise AuthconnNotImplementedException("Should have implemented this")
- def get_role_list(self, token):
+ def get_user_role_list(self, token):
"""
Get role list for a scoped project.
"""
raise AuthconnNotImplementedException("Should have implemented this")
- def delete_user(self, user):
+ def delete_user(self, user_id):
"""
Delete user.
- :param user: username.
+ :param user_id: user identifier.
:raises AuthconnOperationException: if user deletion failed.
"""
raise AuthconnNotImplementedException("Should have implemented this")
+ def get_user_list(self, filter_q={}):
+ """
+ Get user list.
+
+ :param filter_q: dictionary to filter user list.
+ :return: returns a list of users.
+ """
+
def create_role(self, role):
"""
Create a role.
"""
raise AuthconnNotImplementedException("Should have implemented this")
- def delete_role(self, role):
+ def delete_role(self, role_id):
"""
Delete a role.
- :param role: role name.
+ :param role_id: role identifier.
:raises AuthconnOperationException: if user deletion failed.
"""
raise AuthconnNotImplementedException("Should have implemented this")
+ def get_role_list(self):
+ """
+ Get all the roles.
+
+ :return: list of roles
+ """
+ raise AuthconnNotImplementedException("Should have implemented this")
+
def create_project(self, project):
"""
Create a project.
"""
raise AuthconnNotImplementedException("Should have implemented this")
- def delete_project(self, project):
+ def delete_project(self, project_id):
"""
Delete a project.
- :param project: project name.
+ :param project_id: project identifier.
:raises AuthconnOperationException: if project deletion failed.
"""
raise AuthconnNotImplementedException("Should have implemented this")
+ def get_project_list(self, filter_q={}):
+ """
+ Get all the projects.
+
+ :param filter_q: dictionary to filter project list.
+ :return: list of projects
+ """
+ raise AuthconnNotImplementedException("Should have implemented this")
+
def assign_role_to_user(self, user, project, role):
"""
Assigning a role to a user in a project.