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