2
2
import random
3
3
import string
4
4
5
- import uri
5
+ from urllib . parse import urlparse
6
6
7
7
8
8
async def check_call (program , * args , ** kwargs ):
@@ -13,12 +13,12 @@ async def check_call(program, *args, **kwargs):
13
13
14
14
15
15
def sock_addr (addr ):
16
- parsed = uri . URI ("//" + addr + "/" )
16
+ parsed = urlparse ("//" + addr + "/" )
17
17
return parsed .hostname , parsed .port
18
18
19
19
20
20
def ssh_addr (config ):
21
- parsed = uri . URI ("//" + config + "/" )
21
+ parsed = urlparse ("//" + config + "/" )
22
22
ret = {
23
23
"known_hosts" : None ,
24
24
}
@@ -38,19 +38,21 @@ def hostport(sockaddr):
38
38
39
39
40
40
def ssh_uri (sockaddr , hide_pwd : bool = True ):
41
- if sockaddr .get ("password" ) is None :
42
- password = None
43
- elif hide_pwd :
44
- password = "***"
45
- else :
46
- password = sockaddr .get ("password" )
47
-
48
- return uri .URI (
49
- username = sockaddr .get ("username" ),
50
- password = password ,
51
- hostname = sockaddr .get ("host" ),
52
- port = sockaddr .get ("port" ),
53
- ).uri [2 :- 1 ]
41
+ ret = ""
42
+ if sockaddr .get ("username" ) is not None :
43
+ ret += sockaddr .get ("username" )
44
+ if sockaddr .get ("password" ) is not None :
45
+ ret += ":" + ("***" if hide_pwd else sockaddr .get ("password" ))
46
+
47
+ if ret :
48
+ ret += "@"
49
+
50
+ ret += sockaddr .get ("host" )
51
+
52
+ if sockaddr .get ("port" ) is not None :
53
+ ret += f":{ sockaddr .get ("port" )} "
54
+
55
+ return ret
54
56
55
57
56
58
def random_str (size = 6 , chars = string .ascii_uppercase + string .ascii_lowercase + string .digits ):
0 commit comments