Bug 2225403 - subscription-manager cli command does not support IPv6 proxy
Summary: subscription-manager cli command does not support IPv6 proxy
Keywords:
Status: ASSIGNED
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: subscription-manager
Version: 9.2
Hardware: Unspecified
OS: Linux
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Jiri Hnidek
QA Contact: Red Hat subscription-manager QE Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-07-25 08:58 UTC by Joerg
Modified: 2023-07-25 16:22 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github candlepin subscription-manager pull 3302 0 None Draft 2225403: Parse URL properly 2023-07-25 16:22:40 UTC
Red Hat Bugzilla 1878182 0 medium NEW RHSM does not support ipv6 proxy 2023-07-25 08:58:03 UTC
Red Hat Issue Tracker RHELPLAN-163265 0 None None None 2023-07-25 09:00:10 UTC

Description Joerg 2023-07-25 08:58:03 UTC
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.

~~~
# 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:

~~~
# 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.

Comment 1 Pino Toscano 2023-07-25 12:47:23 UTC
This is the RHEL 9 version of bug 1878182; known issue, unfortunately.

OTOH, subscription-manager does actually support IPv6: at least TTBOMK, the problem is only in the parsing of URL strings.


Note You need to log in before you can comment on or make changes to this bug.