From consoft-fiwarecoach at consoft.it Wed Feb 3 17:48:39 2016 From: consoft-fiwarecoach at consoft.it (consoft-fiwarecoach at consoft.it) Date: Wed, 3 Feb 2016 16:48:39 +0000 Subject: [Fiware-ceedtech-coaching] I: [Fiware-data] XML support removed from Orion Context Broker GEri in March sprint version In-Reply-To: <56B229EB.1020600@telefonica.com> References: <56B229EB.1020600@telefonica.com> Message-ID: <9f9a4f0e9db5440d9f45a63ebbac6d18@EXCHMBX2.consoft.it> Dear all, For those who are working with Orion GE, I would like to share the following message from the GE Owner. Thank you for your attention. Best regards, Marco Da: Ferm?n Gal?n M?rquez Inviato: mercoled? 3 febbraio 2016 17:25 A: fiware-data at lists.fiware.org; fiware-iot at lists.fiware.org; fiware-ngsi at lists.fiware.org Oggetto: [Fiware-data] XML support removed from Orion Context Broker GEri in March sprint version Hi, XML support was deprecated in Orion Context Broker 0.23.0 (in summer 2015). This was motivated by the feedback gathered during years in many FIWARE events with developers (Campus Party, Developers week, FIWARE hackathons, etc.): it is a fact that developer community prefers JSON in REST API instead of XML. In fact, the next version of NGSIv2 will be entirely based on JSON. Thus, maintaining both XML and JSON at the same time in the current API is a severe burden in development and documentation tasks for the Orion team, without an actual gain (in this sense, our rationale is very similar to the one that lead JIRA to stop XML support, see https://developer.atlassian.com/jiradev/jira-apis/jira-rest-apis/jira-rest-api-tutorials/jira-rest-api-version-2-tutorial#JIRARESTAPIVersion2Tutorial-IntroductiontoJIRA%27sRESTAPI). Therefore, we have decided to remove XML support from Orion Context Broker in the near future. The plan is that the version corresponding to February sprint (i.e. Orion 0.28.0) will be the last one supporting XML, as has been recently announced to FIWARE Lab users (see attached email). In other words, the version corresponding to March sprint will not include XML support. JSON support (either NGSIv1 or NGSIv2) will remain. We don't oversee any major issue in existing systems (clients, notifications receivers, context providers, etc.) based in Orion developed during the last year or even before (given that even before XML was "official" deprecated in 0.23.0, we haven't talked about XML in any public presentations/speech/workshops/etc. since time before, thus developers working with Orion are mainly using JSON nowadays). The only issue to take into account is with old legacy integrations. For these cases, there are 3 options: 1. Migrate client/receiver/cpr API to NGSIv2 JSON. Probably the best option if you want to take the most of the newer NGSIv2 API (e.g. subscription filters, etc.). However, note that NGSIv2 is yet in "beta" status, with some areas not fully specified and others in which small changes may occur. 2. Migrate client/receiver/cpr API to NGSIv1 JSON. Probably, the best option by the time being from an stability and manteniability point of view. NGSIv1 JSON support will remain during a long time. 3. Keep using the last Orion version supporting XML (Orion 0.28.0). Old versions will remain available (either in RPM and code source form) so you can keep using it (details are provided at https://github.com/telefonicaid/fiware-orion/blob/develop/doc/manuals/deprecated.md#using-old-orion-versions). However, note that doing this, you will be "stalled" at an old version and could be missing new and potentially useful functionality for your use case. Thus, this is recommend only as a temporal solution or for legacy system that doesn't need any functional evolution. Note that this announce has been made 2 months in advance the first Orion version without XML get released, which should be enough time for users still using XML to take decision on migration/keep (and, in the former case, to schedule specific migration actions). Don't hesitate to contact me if you are in this case and have specific questions/doubts about it, e.g. how to migrate from XML to JSON specific API operations, etc. Please, forward this message to whoever you think it may be interested. Thanks! Best regards, ------ Ferm?n PD. This message is being sent to fiware-data due to Orion Context Broker GE belongs to the Data chapter. It is also sent to fiware-ngsi mailing list due to Orion is reference implementation for NGSI API. Finally, it is also sent to fiware-iot as there are GEris in that chapter (e.g IoT Broker) that integrate with Orion (note that I'm not a member of the fiware-iot mailing list, so if you reply to this message in that list, please include also my email in the reply). ________________________________ Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede contener informaci?n privilegiada o confidencial y es para uso exclusivo de la persona o entidad de destino. Si no es usted. el destinatario indicado, queda notificado de que la lectura, utilizaci?n, divulgaci?n y/o copia sin autorizaci?n puede estar prohibida en virtud de la legislaci?n vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma v?a y proceda a su destrucci?n. The information contained in this transmission is privileged and confidential information intended only for the use of the individual or entity named above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this transmission in error, do not read it. Please immediately reply to the sender that you have received this communication in error and then delete it. Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinat?rio, pode conter informa??o privilegiada ou confidencial e ? para uso exclusivo da pessoa ou entidade de destino. Se n?o ? vossa senhoria o destinat?rio indicado, fica notificado de que a leitura, utiliza??o, divulga??o e/ou c?pia sem autoriza??o pode estar proibida em virtude da legisla??o vigente. Se recebeu esta mensagem por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e proceda a sua destrui??o -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded message was scrubbed... From: Subject: [FIWARE Lab] New Orion Context Broker Release (0.27.0) Date: Mon, 1 Feb 2016 11:50:33 +0000 Size: 17608 URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: ATT00001.txt URL: From consoft-fiwarecoach at consoft.it Thu Feb 11 12:36:57 2016 From: consoft-fiwarecoach at consoft.it (consoft-fiwarecoach at consoft.it) Date: Thu, 11 Feb 2016 11:36:57 +0000 Subject: [Fiware-ceedtech-coaching] Reporting questions from a team Message-ID: <94971a6a9f5a4dcd8140449fafa6e58f@EXCHMBX2.consoft.it> Hi, The following are some questions raised by ResultsOnAir team. Hey Marco! I am wondering is there possibility to store additional data (using key:value) for user of our app using Keyrock or some Fiware's extension? Description of API from these pages says that I can access only projects, groups, roles for each user: http://fiware-idm.readthedocs.org/en/latest/user_guide.html#users http://developer.openstack.org/api-ref-identity-v3.html#showUser It is not good option for us because in that case we needed to store part of user data on our side and make two requests instead of one to get all required info (first for Fiware to check auth and get primary info user, second for our backend RDS or DynamoDB to get additional info - eg. settings of frontend application) - it would be great to store all things in one place! Can you offer some solution? And... Hello Marco! I am wondering, is there option to create user accounts using https://account.lab.fiware.org/ for our application - ResultsOnAir 0.1? At this screenshot from user guide I see tab User Accounts, but actually I haven't that tab in my user account (for.tasks.apps at gmail.com). Probably I should have more permissions or not trial account. Can you help me with sharing link where I can create user for our application? At this moment I see only option to createUser via API - it is overhead because I needed only a few accounts and it will more faster do it via interface: http://developer.openstack.org/api-ref-identity-v3.html#createUser Best regards, Marco Marco Terrinoni Consoft Sistemi s.p.a. BU Application Via Pio VII 127 - 10127 - Torino Tel (+39) 011 3161571 Fax (+39) 011 3161583 -------------- next part -------------- An HTML attachment was scrubbed... URL: From consoft-fiwarecoach at consoft.it Mon Feb 29 15:14:03 2016 From: consoft-fiwarecoach at consoft.it (consoft-fiwarecoach at consoft.it) Date: Mon, 29 Feb 2016 14:14:03 +0000 Subject: [Fiware-ceedtech-coaching] Kuan intelligence query In-Reply-To: References: Message-ID: <4bae52ae6f9e441cbef23defeec814a7@EXCHMBX2.consoft.it> Hi, The following is a message received from the Kuan Intelligence team regarding AuthZForce and KeyRock, to be forwarded to the GE owners. Best regards, Marco Marco Terrinoni Consoft Sistemi s.p.a. BU Application Via Pio VII 127 - 10127 - Torino Tel (+39) 011 3161571 Fax (+39) 011 3161583 Da: Yan Zhang [mailto:yan.zhang at kuaninc.com] Inviato: luned? 29 febbraio 2016 10:30 A: consoft-fiwarecoach at consoft.it Cc: Xibo Wang ; Dmitry Moskalets ; Jiajie Li ; Kenneth Ma Oggetto: Kuan intelligence query Dear FIWARE coach, Thanks a lot for your time today! Just now I queried you two questions about AuthZForce and KeyRock, and hoping to have your further description of answers. Following contents are the questions: 1. In the process of the integration of AuthZForce and our system, we deployed the functionalities of policy decision on our system. The question is if there are further functionalities or application on securing web application? 2. Another question is for keyrock, thanks for your mentioning that there wouldn't any dependency between KeyRock and AuthZForce. Our developer have met some problem in run time and also proposed some advice for installation that if the addition of two commands should be allowed: >sudo apt-get update >sudo apt-get install git Also, the forwarded query message from our develop team is attached in the following content. Looking forward to your reply, many thanks! Best regards Yan Zhang Hello! I'm from Kuan Intelligence team. We have a trouble with running KeyRock server. Followed by documentation http://fiware-idm.readthedocs.org/en/latest/admin_guide.html but finally got some errors. Could you please give an advice about it? Many thanks. [28/Feb/2016 20:15:18] "GET / HTTP/1.1" 500 59 DEBUG:idm_logger:Creating a new internal keystoneclient connection to http://127.0.0.1:5000/v3. Unauthorized: The request you have made requires authentication. (HTTP 401) Traceback (most recent call last): File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 776, in _get_element_and_cache role = function(request, role) File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 801, in request, basic, lambda req, n: internal_keystoneclient(req).roles.find(name=n)) File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 63, in internal_keystoneclient cache.set(CACHE_CLIENT, keystoneclient.session.get_token(), INTERNAL_CLIENT_CACHE_TIME) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 610, in get_token return (self.get_auth_headers(auth) or {}).get('X-Auth-Token') File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 589, in get_auth_ headers return auth.get_headers(self, **kwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/base.py", line 114, in get_hea ders token = self.get_token(session) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/base.py", line 104, i n get_token return self.get_access(session).auth_token File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/base.py", line 144, i n get_access self.auth_ref = self.get_auth_ref(session) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/v3.py", line 127, in get_auth_ref authenticated=False, log=False, **rkwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 488, in post return self.request(url, 'POST', **kwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/utils.py", line 318, in inner return func(*args, **kwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 389, in request raise exceptions.from_response(resp, method, url) Unauthorized: The request you have made requires authentication. (HTTP 401) Traceback (most recent call last): File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run self.result = application(self.environ, self.start_response) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", l ine 67, in __call__ return self.application(environ, start_response) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, i n __call__ self.load_middleware() File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 47, in load_middleware mw_instance = mw_class() File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/middleware/locale.py", line 24, in __init__ for url_pattern in get_resolver(None).url_patterns: File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 365, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 360, in urlconf_module self._urlconf_module = import_module(self.urlconf_name) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in im port_module __import__(name) File "/home/ubuntu/horizon/openstack_dashboard/urls.py", line 36, in from openstack_dashboard.dashboards.idm_admin.user_accounts \ File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/views.py", line 28, in from openstack_dashboard.dashboards.idm_admin.user_accounts \ File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 195, in class UpdateAccountForm(forms.SelfHandlingForm, UserAccountsLogicMixin): File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 202, in Upd ateAccountForm choices=get_account_choices()) File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 172, in get _account_choices use_idm_account=True), File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 801, in get_basic_role request, basic, lambda req, n: internal_keystoneclient(req).roles.find(name=n)) File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 780, in _get_element_and_cache exceptions.handle(request) File "/home/ubuntu/horizon/horizon/exceptions.py", line 291, in handle messages.error(request, message or fallback) File "/home/ubuntu/horizon/horizon/messages.py", line 83, in error fail_silently=fail_silently) File "/home/ubuntu/horizon/horizon/messages.py", line 41, in add_message if not horizon_message_already_queued(request, message): File "/home/ubuntu/horizon/horizon/messages.py", line 28, in horizon_message_already_queued if request.is_ajax(): AttributeError: 'NoneType' object has no attribute 'is_ajax' DEBUG:idm_logger:Creating a new internal keystoneclient connection to http://127.0.0.1:5000/v3. Unauthorized: The request you have made requires authentication. (HTTP 401) Traceback (most recent call last): File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 776, in _get_element_and_cache role = function(request, role) File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 801, in request, basic, lambda req, n: internal_keystoneclient(req).roles.find(name=n)) File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 63, in internal_keystoneclient cache.set(CACHE_CLIENT, keystoneclient.session.get_token(), INTERNAL_CLIENT_CACHE_TIME) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 610, in get_token return (self.get_auth_headers(auth) or {}).get('X-Auth-Token') File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 589, in get_auth_ headers return auth.get_headers(self, **kwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/base.py", line 114, in get_hea ders token = self.get_token(session) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/base.py", line 104, i n get_token return self.get_access(session).auth_token File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/base.py", line 144, i n get_access self.auth_ref = self.get_auth_ref(session) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/v3.py", line 127, in get_auth_ref authenticated=False, log=False, **rkwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 488, in post return self.request(url, 'POST', **kwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/utils.py", line 318, in inner return func(*args, **kwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 389, in request raise exceptions.from_response(resp, method, url) Unauthorized: The request you have made requires authentication. (HTTP 401) Traceback (most recent call last): File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run self.result = application(self.environ, self.start_response) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", l ine 67, in __call__ return self.application(environ, start_response) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, i n __call__ self.load_middleware() File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 47, in load_middleware mw_instance = mw_class() File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/middleware/locale.py", line 24, in __init__ for url_pattern in get_resolver(None).url_patterns: File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 365, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 360, in urlconf_module self._urlconf_module = import_module(self.urlconf_name) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in im port_module __import__(name) File "/home/ubuntu/horizon/openstack_dashboard/urls.py", line 36, in from openstack_dashboard.dashboards.idm_admin.user_accounts \ File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/views.py", line 28, in from openstack_dashboard.dashboards.idm_admin.user_accounts \ File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 195, in class UpdateAccountForm(forms.SelfHandlingForm, UserAccountsLogicMixin): File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 202, in Upd ateAccountForm choices=get_account_choices()) File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 172, in get _account_choices use_idm_account=True), File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 801, in get_basic_role request, basic, lambda req, n: internal_keystoneclient(req).roles.find(name=n)) File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 780, in _get_element_and_cache exceptions.handle(request) File "/home/ubuntu/horizon/horizon/exceptions.py", line 291, in handle messages.error(request, message or fallback) File "/home/ubuntu/horizon/horizon/messages.py", line 83, in error fail_silently=fail_silently) File "/home/ubuntu/horizon/horizon/messages.py", line 41, in add_message if not horizon_message_already_queued(request, message): File "/home/ubuntu/horizon/horizon/messages.py", line 28, in horizon_message_already_queued if request.is_ajax(): AttributeError: 'NoneType' object has no attribute 'is_ajax' DEBUG:idm_logger:Creating a new internal keystoneclient connection to http://127.0.0.1:5000/v3. Unauthorized: The request you have made requires authentication. (HTTP 401) Traceback (most recent call last): File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 776, in _get_element_and_cache role = function(request, role) File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 801, in request, basic, lambda req, n: internal_keystoneclient(req).roles.find(name=n)) File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 63, in internal_keystoneclient cache.set(CACHE_CLIENT, keystoneclient.session.get_token(), INTERNAL_CLIENT_CACHE_TIME) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 610, in get_token return (self.get_auth_headers(auth) or {}).get('X-Auth-Token') File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 589, in get_auth_headers return auth.get_headers(self, **kwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/base.py", line 114, in get_headers token = self.get_token(session) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/base.py", line 104, in get_token return self.get_access(session).auth_token File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/base.py", line 144, in get_access self.auth_ref = self.get_auth_ref(session) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/auth/identity/v3.py", line 127, in get_auth_ref authenticated=False, log=False, **rkwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 488, in post return self.request(url, 'POST', **kwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/utils.py", line 318, in inner return func(*args, **kwargs) File "/home/ubuntu/horizon/.venv/src/python-keystoneclient/keystoneclient/session.py", line 389, in request raise exceptions.from_response(resp, method, url) Unauthorized: The request you have made requires authentication. (HTTP 401) Traceback (most recent call last): File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run self.result = application(self.environ, self.start_response) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 67, in __call__ return self.application(environ, start_response) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, in __call__ self.load_middleware() File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 47, in load_middleware mw_instance = mw_class() File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/middleware/locale.py", line 24, in __init__ for url_pattern in get_resolver(None).url_patterns: File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 365, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 360, in urlconf_module self._urlconf_module = import_module(self.urlconf_name) File "/home/ubuntu/horizon/.venv/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module __import__(name) File "/home/ubuntu/horizon/openstack_dashboard/urls.py", line 36, in from openstack_dashboard.dashboards.idm_admin.user_accounts \ File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/views.py", line 28, in from openstack_dashboard.dashboards.idm_admin.user_accounts \ File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 195, in class UpdateAccountForm(forms.SelfHandlingForm, UserAccountsLogicMixin): File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 202, in UpdateAccountForm choices=get_account_choices()) File "/home/ubuntu/horizon/openstack_dashboard/dashboards/idm_admin/user_accounts/forms.py", line 172, in get_account_choices use_idm_account=True), File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 801, in get_basic_role request, basic, lambda req, n: internal_keystoneclient(req).roles.find(name=n)) File "/home/ubuntu/horizon/openstack_dashboard/fiware_api/keystone.py", line 780, in _get_element_and_cache exceptions.handle(request) File "/home/ubuntu/horizon/horizon/exceptions.py", line 291, in handle messages.error(request, message or fallback) File "/home/ubuntu/horizon/horizon/messages.py", line 83, in error fail_silently=fail_silently) File "/home/ubuntu/horizon/horizon/messages.py", line 41, in add_message if not horizon_message_already_queued(request, message): File "/home/ubuntu/horizon/horizon/messages.py", line 28, in horizon_message_already_queued if request.is_ajax(): AttributeError: 'NoneType' object has no attribute 'is_ajax' -- Regards, Dmitry Moskalets ----------------------------------------- Mr Yan Zhang Chief Technology Officer Kuan Intelligence Ltd 75 Whitechapel Road, London, E1 1DU. Tel: 020 7426 0365 [https://mailfoogae.appspot.com/t?sender=aeWFuLnpoYW5nQGt1YW5pbmMuY29t&type=zerocontent&guid=1b391e0f-6a93-4fae-87fc-ae5db9b9f63e]? -------------- next part -------------- An HTML attachment was scrubbed... URL: