This question has been flagged
1 Reply
4135 Views

Hello to all friends, 

I try to install a auth keycloack module and I have an error but I cannot identify what it is, it seems to me that it is with the name, please any help I would appreciate it.
Odoo Server Error

Traceback (most recent call last):
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 677, in _tag_root
f(rec)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 501, in _tag_record
self._test_xml_id(rec_id)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 247, in _test_xml_id
assert modcnt == 1, """The ID "%s" refers to an uninstalled module""" % (xml_id,)
AssertionError: The ID "auth_oauth_keycloak.new_checkbox_x_keycloak" refers to an uninstalled module

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/jose/Desktop/CRM_odoo/crm/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 683, in dispatch
result = self._call_function(**self.params)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 359, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 347, in checked_call
result = self.endpoint(*a, **kw)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 912, in __call__
return self.method(*args, **kw)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 531, in response_wrap
response = f(*args, **kw)
File "/home/jose/Desktop/CRM_odoo/crm/addons/web/controllers/main.py", line 1381, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/addons/web/controllers/main.py", line 1369, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/api.py", line 396, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/api.py", line 383, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "", line 2, in button_immediate_install
File "/home/jose/Desktop/CRM_odoo/crm/odoo/addons/base/models/ir_module.py", line 73, in check_and_log
return method(self, *args, **kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/addons/base/models/ir_module.py", line 474, in button_immediate_install
return self._button_immediate_function(type(self).button_install)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/addons/base/models/ir_module.py", line 592, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/modules/registry.py", line 89, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/modules/loading.py", line 453, in load_modules
processed_modules += load_marked_modules(cr, graph,
File "/home/jose/Desktop/CRM_odoo/crm/odoo/modules/loading.py", line 346, in load_marked_modules
loaded, processed = load_module_graph(
File "/home/jose/Desktop/CRM_odoo/crm/odoo/modules/loading.py", line 221, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/modules/loading.py", line 69, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 733, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 799, in convert_xml_import
obj.parse(doc.getroot())
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 719, in parse
self._tag_root(de)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 681, in _tag_root
raise ParseError('while parsing %s:%s, near\n%s' % (
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 639, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 315, in _handle_exception
raise exception.with_traceback(None) from new_cause
odoo.tools.convert.ParseError: while parsing /home/jose/Desktop/CRM_odoo/crm/custom-addons/Auth/views/ir_model_fields.xml:3, near





[]
Keycloak



auth.oauth.provider

x_keycloak










manual



boolean


---------------------------------------------------------

view: ir_model_fields.xml







[]
Keycloak



auth.oauth.provider

x_keycloak










manual



boolean



view: ir_ui_view.xml















extension
auth.oauth.provider
auth.oauth.provider.form customization
99
form



---------------------------

model:

from odoo.addons import base
base.models.res_users.USER_PRIVATE_FIELDS.append('oauth_access_token')

class ResUsers(models.Model):

_inherit = 'res.users'

oauth_provider_id = fields.Many2one('auth.oauth.provider', string='OAuth Provider')
oauth_uid = fields.Char(string='OAuth User ID', help="Oauth Provider user_id", copy=False)
oauth_access_token = fields.Char(string='OAuth Access Token', readonly=True, copy=False)

_sql_constraints = [
('uniq_users_oauth_provider_oauth_uid', 'unique(oauth_provider_id, oauth_uid)', 'OAuth UID must be unique per provider'),
]

@api.model
def _auth_oauth_rpc(self, endpoint, access_token):
return requests.get(endpoint, params={'access_token': access_token}).json()
def _auth_oauth_rpc(self, endpoint, access_token, provider):
oauth_provider = self.env['auth.oauth.provider'].browse(provider)
if oauth_provider.x_keycloak:
return requests.get(endpoint, headers={'Authorization': 'bearer ' + access_token}).json()
else:
return requests.get(endpoint, params={'access_token': access_token}).json()
@api.model
def _auth_oauth_validate(self, provider, access_token):
""" return the validation data corresponding to the access token """
oauth_provider = self.env['auth.oauth.provider'].browse(provider)
validation = self._auth_oauth_rpc(oauth_provider.validation_endpoint, access_token, provider)
if validation.get("error"):
raise Exception(validation['error'])
if oauth_provider.data_endpoint:
data = self._auth_oauth_rpc(oauth_provider.data_endpoint, access_token, provider)
validation.update(data)
return validation

odoo v 14.0.1.0

Avatar
Discard

I got same error. Just check that your data.xml have right value.

in my case was seceltion field with SSl instead ssl))


Best Answer

Hi,

Some where inside your module the code look up for the record with the ID auth_oauth_keycloak.new_checkbox_x_keycloak , this record, according to the external id has to be inside the module auth_oauth_keycloak, so do you have such a module in your addons path ? If not, see from where this look up is taking place.


Thanks

Avatar
Discard

Thanks Sir!