Skip to content

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

Open

Description

@peternge

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?

Activity

  1. barny commented on Feb 5, 2024

    @barny
    Member

    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

  2. stradiu commented on Sep 10, 2025

    @stradiu

    Hello,
    For information I'm still facing the exact same issue even with ELM 7.0.3 and the version 0.34.0 of the ELM-Python-Client :/

    Is there any workaround to force the component and config definition by providing directly their URI without using this URL https://host/qm/oslc_config/resources/com.ibm.team.vvc.Component ?

  3. chaieen commented on Sep 23, 2025

    @chaieen

    Hi,
    I am also facing the same issue and one thing is i modified find project function to access project using item id as project name was not working for QM. Can you please help us asap.

    (.venv) PS C:\Users\New folder\ELM-Python-Client> python -m elmclient.examples.etm_scenario2
    p is (<elmclient._qm.QMProject object at 0x000001B519929BE0>, 'https://elm-int.xxx.com/qm/web/console/Sample%20test%20project/_sVMA8K_1Ee-puptzZfwRjg')
    P[0] is <elmclient._qm.QMProject object at 0x000001B519929BE0>
    name or uri Chaitra Workspace
    True
    Traceback (most recent call last):
    File "", line 198, in _run_module_as_main
    File "", line 88, in _run_code
    File "C:\Users\New folder\ELM-Python-Client\elmclient\examples\etm_scenario2.py", line 156, in
    c = p[0].find_local_component(comp)
    File "C:\Users\New folder\ELM-Python-Client\elmclient_qm.py", line 359, in find_local_component
    self.load_components_and_configurations()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
    File "C:\Users\New folder\ELM-Python-Client\elmclient_qm.py", line 174, in load_components_and_configurations
    crx = self.execute_get_xml( components_uri, intent="Retrieve component definition" )
    File "C:\Users\New folder\ELM-Python-Client\elmclient\httpops.py", line 226, in execute_get_xml
    response = request.execute( **kwargs )
    File "C:\Users\New folder\ELM-Python-Client\elmclient\httpops.py", line 512, in execute
    return self._execute_request( no_error_log=no_error_log, close=close, **kwargs )
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\New folder\ELM-Python-Client\elmclient\httpops.py", line 521, in _execute_request
    result = self._execute_one_request_with_login( no_error_log=no_error_log, close=close, **kwargs)
    File "C:\Users\New folder\ELM-Python-Client\elmclient\httpops.py", line 766, in _execute_one_request_with_login
    response.raise_for_status()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
    File "C:\Users\New folder\ELM-Python-Client.venv\Lib\site-packages\requests\models.py", line 1026, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
    requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://elm-int.xxx.com/qm/oslc_config/resources/com.ibm.team.vvc.Component
    (.venv) PS C:\Users\New folder\ELM-Python-Client>

  4. barny commented on Nov 13, 2025

    @barny
    Member

    Hi - is your user a member of the project?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions