Closed samizdis closed 7 months ago
When using --explain
:
sam@Sams-MacBook-Pro ~ [2]> vastai ssh-url --explain 9086391
query args:
{'owner': 'me', 'api_key': '<snip>'}
base: https://console.vast.ai/api/v0/instances? + query:
https://console.vast.ai/api/v0/instances?owner=me&api_key=<snip>
Traceback (most recent call last):
File "/usr/local/bin/vastai", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/vastai/vast.py", line 3070, in main
sys.exit(args.func(args) or 0)
File "/usr/local/lib/python3.9/site-packages/vastai/vast.py", line 1857, in ssh_url
return _ssh_url(args, "ssh://")
File "/usr/local/lib/python3.9/site-packages/vastai/vast.py", line 1918, in _ssh_url
if (port > 0):
TypeError: '>' not supported between instances of 'str' and 'int'
and curling that URL gives a JSON dict with:
"ports": {
"22/tcp": [{"HostIp": "0.0.0.0", "HostPort": "58923"}, {"HostIp": "::", "HostPort": "58923"}],
"8080/tcp": [{"HostIp": "0.0.0.0", "HostPort": "61301"}, {"HostIp": "::", "HostPort": "61301"}]
}
So it does indeed look like a bug in the code, since HostPort
is being returned as a string, and
ports = instance.get("ports",{})
port_22d = ports.get("22/tcp",None)
port = -1
try:
if (port_22d is not None):
ipaddr = instance["public_ipaddr"]
port = port_22d[0]["HostPort"]
else:
ipaddr = instance["ssh_host"]
port = int(instance["ssh_port"])+1
except:
port = -1
if (port > 0):
print(f'{protocol}root@{ipaddr}:{port}')
I'm getting the following traceback when running
vastai ssh-url
:where 9086391 is an instance ID. Any ideas?