diff --git a/src/api.ts b/src/api.ts index fbed064..5225b2d 100644 --- a/src/api.ts +++ b/src/api.ts @@ -137,6 +137,7 @@ export interface VmOsImage { flavour: string; version: string; release_date: string; + default_username?: string; } export interface UserSshKey { diff --git a/src/pages/vm.tsx b/src/pages/vm.tsx index c590d54..0447d8f 100644 --- a/src/pages/vm.tsx +++ b/src/pages/vm.tsx @@ -72,6 +72,14 @@ export default function VmPage() { return () => clearInterval(t); }, []); + function bestHost() { + if (!state) return; + if (state.ip_assignments.length > 0) { + const ip = state.ip_assignments.at(0)!; + return ip.forward_dns ? ip.forward_dns : ip.ip.split("/")[0]; + } + } + if (!state) { return

No VM selected

; } @@ -85,18 +93,27 @@ export default function VmPage() {
Network:
{networkInfo()}
-
-
SSH Key:
-
- {state.ssh_key?.name} +
SSH:
+
+
+
Key:
+
+ {state.ssh_key?.name} +
+ setEditKey(true)} /> +
+
+
Login:
+
+            ssh {state.image.default_username}@{bestHost()}
+          
- setEditKey(true)} />

- navigate("/vm/console", { state })}> + {/* navigate("/vm/console", { state })}> Console - + */} navigate("/vm/billing", { state })}> Billing