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

subscription-manager cli command does not support IPv6 proxy

    • subscription-manager-1.29.39-1.el9
    • None
    • None
    • rhel-sst-csi-client-tools
    • ssg_subscription_management
    • 16
    • None
    • False
    • Hide

      None

      Show
      None
    • No
    • Red Hat Enterprise Linux
    • None
    • Release Note Not Required
    • None

      Description of problem:
      Hosts in IPv6-only networks cannot subscribe to RHSM using an IPv6 proxy address. The dual-stack proxy is necessary as RHSM currently still don't support IPv6.

      Version-Release number of selected component (if applicable):
      subscription-manager 1.29.33.1-1.el9_2

      How reproducible:
      100%

      Steps to Reproduce:
      1. Provision host with IPv6 connectivity
      2. Run `subscription-manager version --proxy="http://[<IPv6-of-your-proxy>]:3128

      Actual results:
      The following blocks show you some examples of the the commands I tried. IP addresses were replaced with RFC 3849 prefix.

      ~~~

      1. subscription-manager version --proxy="http://[2001:DB8::DEAD:BEEF:2]:3128"
        Traceback (most recent call last):
        File "/usr/sbin/subscription-manager", line 33, in <module>
        sys.exit(load_entry_point('subscription-manager==1.29.33.1', 'console_scripts', 'subscription-manager')())
        File "/usr/lib64/python3.9/site-packages/subscription_manager/scripts/subscription_manager.py", line 73, in main
        return managercli.ManagerCLI().main()
        File "/usr/lib64/python3.9/site-packages/subscription_manager/managercli.py", line 87, in main
        ret = CLI.main(self)
        File "/usr/lib64/python3.9/site-packages/subscription_manager/cli.py", line 190, in main
        return cmd.main()
        File "/usr/lib64/python3.9/site-packages/subscription_manager/cli_command/cli.py", line 331, in main
        self.proxy_port = int(parts[1])
        ValueError: invalid literal for int() with base 10: 'DB8'
        ~~~

      The same 'ValueError' occurs when specifying the IPv6 address without the brackets '[]'. Using proxy FQDN leads to the same exception followed by another one:

      ~~~

      1. subscription-manager version --proxy="http://proxy.example.com"
        Traceback (most recent call last):
        File "/usr/lib64/python3.9/site-packages/rhsm/utils.py", line 207, in parse_url
        int(port)
        ValueError: invalid literal for int() with base 10: 'DB8'

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
      File "/usr/sbin/subscription-manager", line 33, in <module>
      sys.exit(load_entry_point('subscription-manager==1.29.33.1', 'console_scripts', 'subscription-manager')())
      File "/usr/lib64/python3.9/site-packages/subscription_manager/scripts/subscription_manager.py", line 73, in main
      return managercli.ManagerCLI().main()
      File "/usr/lib64/python3.9/site-packages/subscription_manager/managercli.py", line 87, in main
      ret = CLI.main(self)
      File "/usr/lib64/python3.9/site-packages/subscription_manager/cli.py", line 190, in main
      return cmd.main()
      File "/usr/lib64/python3.9/site-packages/subscription_manager/cli_command/cli.py", line 376, in main
      self.cp = self.cp_provider.get_consumer_auth_cp()
      File "/usr/lib64/python3.9/site-packages/subscription_manager/cp_provider.py", line 184, in get_consumer_auth_cp
      self.consumer_auth_cp = connection.UEPConnection(
      File "/usr/lib64/python3.9/site-packages/rhsm/connection.py", line 1367, in _init_
      super(UEPConnection, self)._init_(user_agent=user_agent, **kwargs)
      File "/usr/lib64/python3.9/site-packages/rhsm/connection.py", line 248, in _init_
      info = utils.get_env_proxy_info()
      File "/usr/lib64/python3.9/site-packages/rhsm/utils.py", line 237, in get_env_proxy_info
      info = parse_url(proxy_info, default_port=DEFAULT_PROXY_PORT)
      File "/usr/lib64/python3.9/site-packages/rhsm/utils.py", line 211, in parse_url
      raise ServerUrlParseErrorPort(local_server_entry)
      rhsm.utils.ServerUrlParseErrorPort: http://[2001:DB8::DEAD:BEEF:2]:3128/
      ~~~

      Expected results:
      Command should succeed.

              jhnidek@redhat.com Jiri Hnidek
              rhn-support-jkastnin Joerg Kastning
              Zdenek Petracek Zdenek Petracek
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: