The extension ID has now changed, due to the new location of the extension.
You'll probably end up with two entries for this, and they may conflict.
Try going into the database editor in the admin UI, clicking Registered
Extensions, and deleting the old entry. Then re-run 'setup.py develop' or
'install' or whatever for your extension, restart the server, and see if
the situation improves at all.

Christian

-- 
Christian Hammond - christ...@beanbaginc.com
Review Board - https://www.reviewboard.org
Beanbag, Inc. - https://www.beanbaginc.com

On Tue, Nov 3, 2015 at 4:17 PM, Graeme Perrow <graeme.per...@gmail.com>
wrote:

> I moved the code into sapauth/extension/__init__.py, created an empty
> sapauth/__init__.py, and changed setup.py to:
>
> setup( name='sapauth',
>        version='1.0',
>        description='SAP Authentication backend for sareviews',
>        author='Graeme Perrow',
>        packages=['sapauth.extension'],
>        entry_points={
>           'reviewboard.extensions': 'sapauth =
> sapauth.extension:SAPExtension',
>       }
> )
>
> Now when I load the extension page, I see "The extension failed to load
> with the following error: " (followed by nothing). There is nothing in the
> log file relating to the extension.
>
>
>
> On Tuesday, 3 November 2015 18:19:37 UTC-5, Christian Hammond wrote:
>>
>> You'll need to move your module into a submodule of sap auth, like
>> sapauth.extension.
>>
>> Christian
>>
>>
>> On Tuesday, November 3, 2015, Graeme Perrow <graeme...@gmail.com> wrote:
>>
>>>
>>> Here is setup.py:
>>>
>>> from reviewboard.extensions.packaging import setup
>>>
>>> setup( name='sapauth',
>>>        version='1.0',
>>>        description='SAP Authentication backend for sareviews',
>>>        author='Graeme Perrow',
>>>        packages=['sapauth'],
>>>        entry_points={
>>>           'reviewboard.extensions': [
>>>               'sapauth = sapauth:SAPExtension',
>>>           ],
>>>       }
>>> )
>>>
>>>
>>> And sapauth/__init__.py (with much of the code removed):
>>>
>>> import sys,urllib2,xml.sax
>>> import logging
>>> from django.conf import settings
>>> from django.contrib.auth.models import User
>>> from djblets.db.query import get_object_or_none
>>>
>>> from reviewboard.accounts.backends import AuthBackend
>>> from reviewboard.extensions.base import Extension
>>> from reviewboard.extensions.hooks import AuthBackendHook
>>>
>>> class sapauth(AuthBackend):
>>>     name = 'SAP'
>>>     backend_id = 'SAP_Auth_1.0'
>>>     supports_registration = False
>>>     supports_change_name = False
>>>     supports_change_email = False
>>>     supports_change_password = False
>>>
>>>     def authenticate(self, username, password):
>>>         ...
>>>     #
>>>
>>>     def get_user( self, user_id ):
>>>         return get_object_or_none(User, pk=user_id)
>>>     #
>>>
>>>     def get_or_create_user(self, username, handler=None):
>>>         ...
>>> #
>>>
>>> class SAPExtension(Extension):
>>>     def initialize(self):
>>>         AuthBackendHook(self, sapauth)
>>> #
>>>
>>>
>>>
>>> On Tuesday, 3 November 2015 16:29:55 UTC-5, Christian Hammond wrote:
>>>>
>>>> Hi,
>>>>
>>>> I'd have to see the source of the extension to really be able to tell
>>>> you more, but it sounds like perhaps the extension or its registration (in
>>>> setup.py) isn't using absolute module paths to refer to some module.
>>>>
>>>> Would you be able to show me how you're registering it in setup.py, and
>>>> the class attributes for your extension?
>>>>
>>>> Thanks,
>>>>
>>>> Christian
>>>>
>>>> --
>>>> Christian Hammond - chri...@beanbaginc.com
>>>> Review Board - https://www.reviewboard.org
>>>> Beanbag, Inc. - https://www.beanbaginc.com
>>>>
>>>> On Tue, Nov 3, 2015 at 12:23 PM, Graeme Perrow <graeme...@gmail.com>
>>>> wrote:
>>>>
>>>>> I am trying to create an authentication extension for reviewboard
>>>>> (running 2.0.18). I've followed the authentication backend instructions
>>>>> here
>>>>> <https://www.reviewboard.org/docs/manual/2.0/extending/auth-backends/#authentication-classes>
>>>>>  and
>>>>> the installation instructions here
>>>>> <https://www.reviewboard.org/docs/manual/2.0/extending/extensions/distribution/#python-egg>.
>>>>> But I'm obviously missing something. My extension shows up in the list of
>>>>> available extensions, but attempting to enable it results in a 
>>>>> "Loading..."
>>>>> message that never goes away.
>>>>>
>>>>> If I look in the log file (specified in the Logging admin page), I see
>>>>> this exception:
>>>>>
>>>>> relative imports require the 'package' argument
>>>>> Traceback (most recent call last):
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 112,
>>>>> in get_response
>>>>>     response = wrapped_callback(request, *callback_args,
>>>>> **callback_kwargs)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/django/views/decorators/cache.py", line
>>>>> 52, in _wrapped_view_func
>>>>>     response = view_func(request, *args, **kwargs)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/django/views/decorators/vary.py", line
>>>>> 19, in inner_func
>>>>>     response = func(*args, **kwargs)
>>>>>   File "/usr/lib/python2.7/site-packages/djblets/webapi/resources.py",
>>>>> line 497, in __call__
>>>>>     request, method, view, api_format=api_format, *args, **kwargs)
>>>>>   File "/usr/lib/python2.7/site-packages/djblets/webapi/resources.py",
>>>>> line 568, in call_method_view
>>>>>     return view(request, *args, **kwargs)
>>>>>   File "/usr/lib/python2.7/site-packages/djblets/webapi/resources.py",
>>>>> line 765, in put
>>>>>     return self.update(request, *args, **kwargs)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", line 117,
>>>>> in _call
>>>>>     return view_func(*args, **kwargs)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", line 138,
>>>>> in _checklogin
>>>>>     return view_func(*args, **kwargs)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", line 117,
>>>>> in _call
>>>>>     return view_func(*args, **kwargs)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", line 164,
>>>>> in _checkpermissions
>>>>>     response = view_func(*args, **kwargs)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", line 117,
>>>>> in _call
>>>>>     return view_func(*args, **kwargs)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", line 117,
>>>>> in _call
>>>>>     return view_func(*args, **kwargs)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/webapi/decorators.py", line 287,
>>>>> in _validate
>>>>>     return view_func(*args, **new_kwargs)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/extensions/resources.py", line
>>>>> 211, in update
>>>>>     self._extension_manager.enable_extension(extension_id)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/extensions/manager.py", line 
>>>>> 310,
>>>>> in enable_extension
>>>>>     extension = self._init_extension(ext_class)
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/extensions/manager.py", line 
>>>>> 608,
>>>>> in _init_extension
>>>>>     self._reset_templatetags_cache()
>>>>>   File
>>>>> "/usr/lib/python2.7/site-packages/djblets/extensions/manager.py", line 
>>>>> 667,
>>>>> in _reset_templatetags_cache
>>>>>     get_templatetags_modules()
>>>>>   File "/usr/lib/python2.7/site-packages/django/template/base.py",
>>>>> line 1292, in get_templatetags_modules
>>>>>     import_module(templatetag_module)
>>>>>   File "/usr/lib/python2.7/site-packages/django/utils/importlib.py",
>>>>> line 33, in import_module
>>>>>     raise TypeError("relative imports require the 'package' argument")
>>>>> TypeError: relative imports require the 'package' argument
>>>>>
>>>>> My actual extension is not listed in the call stack. What am I missing?
>>>>>
>>>>>
>>>>> --
>>>>> Supercharge your Review Board with Power Pack:
>>>>> https://www.reviewboard.org/powerpack/
>>>>> Want us to host Review Board for you? Check out RBCommons:
>>>>> https://rbcommons.com/
>>>>> Happy user? Let us know! https://www.reviewboard.org/users/
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "reviewboard" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to reviewboard...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>
>> --
>> --
>> Christian Hammond - chri...@beanbaginc.com
>> Review Board - https://www.reviewboard.org
>> Beanbag, Inc. - https://www.beanbaginc.com
>>
>>

-- 
Supercharge your Review Board with Power Pack: 
https://www.reviewboard.org/powerpack/
Want us to host Review Board for you? Check out RBCommons: 
https://rbcommons.com/
Happy user? Let us know! https://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to