Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

load_components_and_configurations fails when trying to get all components and configurations from one QM project area #59

Open
peternge opened this issue Jan 25, 2024 · 1 comment

Comments

@peternge
Copy link

Hi there,

First of all - I am not an OSLC expert, just a user who wants to do something with this package.

Currently I am a user which has access only to some particular QM project areas (not all project areas).
So when trying to find a specific component (which is accessible to me), I use this simple code snipped:

import elmclient.server as elmserver
...

obj_server = elmserver.JazzTeamServer(str_host, str_user, str_pass, verifysslcerts=False, jtsappstring="jts:jts", appstring="qm", cachingcontrol=0)
obj_app = obj_server.find_app('qm', ok_to_create=True)
obj_project = obj_app.find_project(str_project_area_name)
obj_component = obj_project.find_local_component(str_component_name)

Which throws the following error:

Traceback (most recent call last):
  File "c:\XXX\.venv\Lib\site-packages\elmclient\_qm.py", line 296, in find_local_component
    self.load_components_and_configurations()
  File "c:\XXX\.venv\Lib\site-packages\elmclient\_qm.py", line 112, in load_components_and_configurations
    crx = self.execute_get_xml( components_uri, intent="Retrieve component definition" )
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\XXX\.venv\Lib\site-packages\elmclient\httpops.py", line 139, in execute_get_xml
    response = request.execute( **kwargs )
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\XXX\.venv\Lib\site-packages\elmclient\httpops.py", line 334, in execute
    return self._execute_request( no_error_log=no_error_log, close=close, **kwargs )
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\XXX\.venv\Lib\site-packages\elmclient\httpops.py", line 343, in _execute_request
    result = self._execute_one_request_with_login( no_error_log=no_error_log, close=close, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\XXX\.venv\Lib\site-packages\elmclient\httpops.py", line 624, in _execute_one_request_with_login
    response.raise_for_status()
  File "c:\XXX\.venv\Lib\site-packages\requests\models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://host/qm/oslc_config/resources/com.ibm.team.vvc.Component

When trying to access the URL https://host/qm/oslc_config/resources/com.ibm.team.vvc.Component using my web browser, I get the following error message displayed:

The user "XXX" does not have permission to read item "_xxxxxxxxxxxxxxxxxxxxxxxx", which has the "ProjectArea" item type.

It seems that it querys all components of all project areas - including those which are not accessible for me - for some reason.
Does anybody know how to evade this issue?

@barny
Copy link
Member

barny commented Feb 5, 2024

Are you using the most recent elmclient version 0.26? Which version of Python, is it from python.org?

What version+ifix of ELM are you using?

I've found this defect is probably the cause of errors when you don't have read access to a project https://jazz.net/jazz02/web/projects/Rational%20Quality%20Manager#action=com.ibm.team.workitem.viewWorkItem&id=189010

It's resolved in 7.0.3.

I'm afraid that until you can upgrade to 7.0.3 the only really practicable workaround are to be made a member of every project, or get JazzAdmin privilege :-o

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants