35
35
Type ,
36
36
Union ,
37
37
)
38
+ from urllib .parse import urlparse
38
39
39
40
try :
40
41
from typing import Literal
@@ -1038,7 +1039,7 @@ def __iter__(self) -> Iterator[float]:
1038
1039
1039
1040
1040
1041
def make_backoff_wrapper (
1041
- backoff : Optional [Union [List [Union [float , int ]], bool , Backoff ]]
1042
+ backoff : Optional [Union [List [Union [float , int ]], bool , Backoff ]],
1042
1043
) -> Optional [Union [List [Union [float , int ]], bool , Backoff ]]:
1043
1044
"""
1044
1045
Make a wrapper for a backoff object:
@@ -1099,7 +1100,7 @@ def _connect(self, connection: Connection, url: Url) -> None:
1099
1100
connection .url = url
1100
1101
# if virtual-host not set, use host from address as default
1101
1102
if self .virtual_host is None :
1102
- connection .hostname = url .host
1103
+ connection .hostname = url .path
1103
1104
_logger .info ("Connecting to %r..." % url )
1104
1105
1105
1106
transport = Transport ()
@@ -1291,7 +1292,7 @@ def connect(
1291
1292
reconnect : Union [None , Literal [False ], Backoff ] = None ,
1292
1293
heartbeat : Optional [float ] = None ,
1293
1294
ssl_domain : Optional [SSLDomain ] = None ,
1294
- ** kwargs
1295
+ ** kwargs ,
1295
1296
) -> Connection :
1296
1297
"""
1297
1298
Initiates the establishment of an AMQP connection.
@@ -1427,7 +1428,7 @@ def connect(
1427
1428
reconnect = reconnect ,
1428
1429
heartbeat = heartbeat ,
1429
1430
ssl_domain = _ssl_domain ,
1430
- ** _kwargs
1431
+ ** _kwargs ,
1431
1432
)
1432
1433
else :
1433
1434
return self ._connect (
@@ -1437,7 +1438,7 @@ def connect(
1437
1438
reconnect = reconnect ,
1438
1439
heartbeat = heartbeat ,
1439
1440
ssl_domain = ssl_domain ,
1440
- ** kwargs
1441
+ ** kwargs ,
1441
1442
)
1442
1443
1443
1444
def _connect (
@@ -1448,7 +1449,7 @@ def _connect(
1448
1449
reconnect : Optional [Union [List [Union [float , int ]], bool , Backoff ]] = None ,
1449
1450
heartbeat : None = None ,
1450
1451
ssl_domain : Optional [SSLDomain ] = None ,
1451
- ** kwargs
1452
+ ** kwargs ,
1452
1453
) -> Connection :
1453
1454
conn = self .connection (handler )
1454
1455
conn .container = kwargs .get ("container_id" , self .container_id ) or str (
@@ -1467,6 +1468,14 @@ def _connect(
1467
1468
connector .user = kwargs .get ("user" , self .user )
1468
1469
connector .password = kwargs .get ("password" , self .password )
1469
1470
connector .virtual_host = kwargs .get ("virtual_host" )
1471
+ if not connector .virtual_host and isinstance (url , Url ):
1472
+ connector .virtual_host = url .path
1473
+ elif not connector .virtual_host and urls and isinstance (urls [0 ], Url ):
1474
+ connector .virtual_host = urls [0 ].path
1475
+ elif not connector .virtual_host and isinstance (url , str ):
1476
+ connector .virtual_host = urlparse (url ).path
1477
+ elif not connector .virtual_host and urls and isinstance (urls [0 ], str ):
1478
+ connector .virtual_host = urlparse (urls [0 ]).path
1470
1479
if connector .virtual_host :
1471
1480
# only set hostname if virtual-host is a non-empty string
1472
1481
conn .hostname = connector .virtual_host
0 commit comments