X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fauthconn.py;h=df5c700ab2f67d7e58d0a4e6aa873bbb577cf6e4;hp=4d28bf8fae6606c72b0146b8b5ed9cd963aec934;hb=db04d1ed5d5da9cb1a31c56984663f90d1bf998a;hpb=747c34e54f98aa70b3407ad0da54e5ad0cfb64a0 diff --git a/osm_nbi/authconn.py b/osm_nbi/authconn.py index 4d28bf8..df5c700 100644 --- a/osm_nbi/authconn.py +++ b/osm_nbi/authconn.py @@ -1,5 +1,23 @@ # -*- 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. @@ -16,8 +34,8 @@ class AuthException(Exception): 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): @@ -25,7 +43,7 @@ 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 @@ -34,7 +52,7 @@ class AuthconnConnectionException(AuthconnException): 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): @@ -42,7 +60,7 @@ 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): @@ -50,7 +68,7 @@ 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): @@ -58,7 +76,7 @@ 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: @@ -118,7 +136,7 @@ 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. @@ -127,7 +145,7 @@ class Authconn: """ 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. @@ -157,15 +175,23 @@ class Authconn: """ 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. @@ -175,15 +201,23 @@ class Authconn: """ 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. @@ -193,15 +227,24 @@ class Authconn: """ 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.