Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-147297

ipa: with xmlrpc, AttributeError: 'API' object has no attribute '_remote_plugins'

Linking RHIVOS CVEs to...Migration: Automation ...Sync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • rhel-9.5.z, rhel-10.1
    • ipa
    • None
    • None
    • Low
    • rhel-idm-ipa
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • None

      What were you trying to do that didn't work?

      If I use the xmlrpc on some ipa commands such as host-show, it failed with AttributeError: 'API' object has no attribute '_remote_plugins':

      # LANG=C.UTF-8 ipa -d -vv  -e rpc_protocol=xmlrpc host-show ${hostname}
      ipa: DEBUG: Loading Index file from '/var/lib/ipa-client/sysrestore/sysrestore.index'
      ipa: DEBUG: Loading StateFile from '/var/lib/ipa-client/sysrestore/sysrestore.state'
      ipa: DEBUG: Loading StateFile from '/var/lib/ipa-client/sysrestore/sysrestore.state'
      ipa: DEBUG: failed to find session_cookie in persistent storage for principal 'admin@EXAMPLE.COM'
      ipa: DEBUG: trying https://host0.example.com/ipa/xml
      ipa: DEBUG: Created connection context.rpcclient_140195208498432
      ipa: DEBUG: [try 1]: Forwarding 'schema' to xml server 'https://host0.example.com/ipa/xml'
      ipa: DEBUG: New HTTP connection (host0.example.com)
      ipa: DEBUG: received Set-Cookie (<class 'list'>)'['ipa_session=MagBearerToken=XXXXXX;path=/ipa;httponly;secure;']'
      ipa: DEBUG: storing cookie 'ipa_session=XXXXXX;' for principal admin@EXAMPLE.COM
      ipa: DEBUG: HTTP connection destroyed (host0.example.com)
      Traceback (most recent call last):
        File "/usr/lib/python3.9/site-packages/ipaclient/remote_plugins/__init__.py", line 118, in get_package
          plugins = api._remote_plugins
      AttributeError: 'API' object has no attribute '_remote_plugins'
      
      During handling of the above exception, another exception occurred:
      
      Traceback (most recent call last):
        File "/usr/lib/python3.9/site-packages/ipalib/rpc.py", line 606, in single_request
          return self.parse_response(response)
        File "/usr/lib/python3.9/site-packages/ipalib/rpc.py", line 723, in parse_response
          return SSLTransport.parse_response(self, response)
        File "/usr/lib64/python3.9/xmlrpc/client.py", line 1354, in parse_response
          return u.close()
        File "/usr/lib64/python3.9/xmlrpc/client.py", line 668, in close
          raise Fault(**self._stack[0])
      xmlrpc.client.Fault: <Fault 4311: "Schema is up to date (FP '0380a493', TTL 3600 s)">
      ipa: DEBUG: Caught fault 4311 from server https://host0.example.com/ipa/xml: Schema is up to date (FP '0380a493', TTL 3600 s)
      ipa: DEBUG: Destroyed connection context.rpcclient_140195208498432
      ipa: ERROR: AttributeError: 'SchemaUpToDate' object has no attribute 'fingerprint'
      Traceback (most recent call last):
        File "/usr/lib/python3.9/site-packages/ipaclient/remote_plugins/__init__.py", line 118, in get_package
          plugins = api._remote_plugins
      AttributeError: 'API' object has no attribute '_remote_plugins'
      
      During handling of the above exception, another exception occurred:
      
      Traceback (most recent call last):
        File "/usr/lib/python3.9/site-packages/ipalib/rpc.py", line 1025, in forward
          return self._call_command(command, params)
        File "/usr/lib/python3.9/site-packages/ipalib/rpc.py", line 1083, in _call_command
          result = command(*params)
        File "/usr/lib64/python3.9/xmlrpc/client.py", line 1122, in __call__
          return self.__send(self.__name, args)
        File "/usr/lib64/python3.9/xmlrpc/client.py", line 1464, in __request
          response = self.__transport.request(
        File "/usr/lib64/python3.9/xmlrpc/client.py", line 1166, in request
          return self.single_request(host, handler, request_body, verbose)
        File "/usr/lib/python3.9/site-packages/ipalib/rpc.py", line 606, in single_request
          return self.parse_response(response)
        File "/usr/lib/python3.9/site-packages/ipalib/rpc.py", line 723, in parse_response
          return SSLTransport.parse_response(self, response)
        File "/usr/lib64/python3.9/xmlrpc/client.py", line 1354, in parse_response
          return u.close()
        File "/usr/lib64/python3.9/xmlrpc/client.py", line 668, in close
          raise Fault(**self._stack[0])
      xmlrpc.client.Fault: <Fault 4311: "Schema is up to date (FP '0380a493', TTL 3600 s)">
      
      During handling of the above exception, another exception occurred:
      
      Traceback (most recent call last):
        File "/usr/lib/python3.9/site-packages/ipaclient/remote_plugins/schema.py", line 545, in get_package
          schema = Schema(client)
        File "/usr/lib/python3.9/site-packages/ipaclient/remote_plugins/schema.py", line 394, in __init__
          fingerprint, ttl = self._fetch(client, ignore_cache=read_failed)
        File "/usr/lib/python3.9/site-packages/ipaclient/remote_plugins/schema.py", line 419, in _fetch
          schema = client.forward(u'schema', **kwargs)['result']
        File "/usr/lib/python3.9/site-packages/ipalib/rpc.py", line 1032, in forward
          raise error(message=e.faultString)
      ipalib.errors.SchemaUpToDate: Schema is up to date (FP '0380a493', TTL 3600 s)
      
      During handling of the above exception, another exception occurred:
      
      Traceback (most recent call last):
        File "/usr/lib/python3.9/site-packages/ipalib/cli.py", line 1484, in run
          api.finalize()
        File "/usr/lib/python3.9/site-packages/ipalib/plugable.py", line 753, in finalize
          self.__do_if_not_done('load_plugins')
        File "/usr/lib/python3.9/site-packages/ipalib/plugable.py", line 432, in __do_if_not_done
          getattr(self, name)()
        File "/usr/lib/python3.9/site-packages/ipalib/plugable.py", line 632, in load_plugins
          for package in self.packages:
        File "/usr/lib/python3.9/site-packages/ipalib/__init__.py", line 1024, in packages
          ipaclient.remote_plugins.get_package(self),
        File "/usr/lib/python3.9/site-packages/ipaclient/remote_plugins/__init__.py", line 126, in get_package
          plugins = schema.get_package(server_info, client)
        File "/usr/lib/python3.9/site-packages/ipaclient/remote_plugins/schema.py", line 549, in get_package
          schema = Schema(client, e.fingerprint, e.ttl)
      AttributeError: 'SchemaUpToDate' object has no attribute 'fingerprint'
      ipa: ERROR: an internal error has occurred 
      

      If unable to reproduce issue with LANG=C.UTF-8, change to other UTF-8 locales, such as LANG=en_NZ.UTF-8

      The jsonrpc works.

      What is the impact of this issue to you?

      Cannot use xmlrpc connect to IPA server.

      Please provide the package NVR for which the bug is seen:

      ipa-4.12.2-1.el9_5.4

      I can also reproduce this with RHEL10:

      ipa-4.12.2-24.el10_1.1.x86_64

      How reproducible is this bug?:

      Always

      Steps to reproduce

      1. kinit admin
      2. LANG=C.UTF-8 ipa -vv -e rpc_protocol=xmlrpc host-show $(hostname)

      Change the LANG= to any utf8 locate if failed to reproduce

      Expected results

      Command outputs corresponding host information

      Actual results

      Failed with
      code
      ipa: ERROR: an internal error has occurred
      code

              frenaud@redhat.com Florence Renaud
              rhn-support-dchen Ding Yi Chen
              Ding Yi Chen
              Florence Renaud Florence Renaud
              Sudhir Menon Sudhir Menon
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated: