+
+ Current contents of {userOpensshConfigPath}
+
+ {userOpensshConfigContents}
+
+ ) : null}
+ >
+ );
+}
+
const Summary = styled.summary`
cursor: pointer;
`;
diff --git a/web/packages/teleterm/src/ui/Vnet/DocumentVnetInfo.tsx b/web/packages/teleterm/src/ui/Vnet/DocumentVnetInfo.tsx
index eb6bd8ecc0db7..95481bd6aeaa0 100644
--- a/web/packages/teleterm/src/ui/Vnet/DocumentVnetInfo.tsx
+++ b/web/packages/teleterm/src/ui/Vnet/DocumentVnetInfo.tsx
@@ -31,7 +31,7 @@ import type * as docTypes from 'teleterm/ui/services/workspacesService';
import { routing } from 'teleterm/ui/uri';
import appAccessPng from './app-access.png';
-import { useVnetAppLauncher } from './useVnetAppLauncher';
+import { useVnetLauncher } from './useVnetLauncher';
import { useVnetContext } from './vnetContext';
export function DocumentVnetInfo(props: {
@@ -39,29 +39,28 @@ export function DocumentVnetInfo(props: {
doc: docTypes.DocumentVnetInfo;
}) {
const { doc } = props;
- const { mainProcessClient } = useAppContext();
+ const { mainProcessClient, clustersService } = useAppContext();
const {
startAttempt,
stop: stopVnet,
stopAttempt,
status,
} = useVnetContext();
- const { launchVnetWithoutFirstTimeCheck } = useVnetAppLauncher();
- const userAtHost = useMemo(() => {
- const { hostname, username } = mainProcessClient.getRuntimeSettings();
- return `${username}@${hostname}`;
+ const { launchVnetWithoutFirstTimeCheck } = useVnetLauncher();
+ const { username, hostname } = useMemo(() => {
+ const { username, hostname } = mainProcessClient.getRuntimeSettings();
+ return { username, hostname };
}, [mainProcessClient]);
+ const userAtHost = `${username}@${hostname}`;
const { rootClusterUri, documentsService } = useWorkspaceContext();
const proxyHostname = routing.parseClusterName(rootClusterUri);
+ const clusterName = clustersService.findCluster(rootClusterUri).name;
const startVnet = async () => {
- await launchVnetWithoutFirstTimeCheck({
- addrToCopy: doc.app?.targetAddress,
- isMultiPort: doc.app?.isMultiPort,
- });
- // Remove targetAddress so that subsequent launches of VNet from this specific doc won't copy
- // the stale app address to the clipboard.
- documentsService.update(doc.uri, { app: undefined });
+ await launchVnetWithoutFirstTimeCheck(doc.launcherArgs);
+ // Remove launcherArgs so that subsequent launches of VNet from this
+ // specific doc won't copy the stale address to the clipboard.
+ documentsService.update(doc.uri, { launcherArgs: undefined });
};
return (
@@ -232,6 +231,61 @@ export function DocumentVnetInfo(props: {
+
+ {/* VNet SSH */}
+