diff --git a/packages/teleport/src/Nodes/NodeAdd/ByScript.tsx b/packages/teleport/src/Nodes/NodeAdd/ByScript.tsx index d03c825e2..857945e20 100644 --- a/packages/teleport/src/Nodes/NodeAdd/ByScript.tsx +++ b/packages/teleport/src/Nodes/NodeAdd/ByScript.tsx @@ -15,6 +15,7 @@ */ import React from 'react'; +import moment from 'moment'; import { NodeAdd } from './NodeAdd'; import { useTheme } from 'styled-components'; import TextSelectCopy from 'teleport/components/TextSelectCopy'; @@ -22,7 +23,10 @@ import { Alert, Text, Indicator, Box, ButtonLink } from 'design'; export default function ByScript(props: Props) { const monoFont = useTheme().fonts.mono; - const { script, expires, getJoinToken, attempt, ...style } = props; + const { script, expiry, getJoinToken, attempt, ...style } = props; + + const duration = moment(new Date()).diff(expiry); + const expiresText = moment.duration(duration).humanize(); if (attempt.status === 'processing') { return ( @@ -39,11 +43,11 @@ export default function ByScript(props: Props) { return ( <> - Use the auto installer script to add a server to your cluster. + Use below script to add a server to your cluster.
- Script will be valid for{' '} + The script will be valid for{' '} - {expires}. + {expiresText}.
@@ -58,7 +62,7 @@ type PropTypes = Parameters[0]; type Props = { script: string; - expires: string; + expiry: PropTypes['expiry']; getJoinToken: PropTypes['createJoinToken']; attempt: PropTypes['attempt']; // handles styles diff --git a/packages/teleport/src/Nodes/NodeAdd/NodeAdd.story.tsx b/packages/teleport/src/Nodes/NodeAdd/NodeAdd.story.tsx index 5e2d42eca..1334edbb3 100644 --- a/packages/teleport/src/Nodes/NodeAdd/NodeAdd.story.tsx +++ b/packages/teleport/src/Nodes/NodeAdd/NodeAdd.story.tsx @@ -50,7 +50,7 @@ const sample = { isEnterprise: true, canCreateToken: true, script: 'some bash script', - expires: '4h0m0s', + expiry: new Date('3000-10-14'), attempt: { status: 'success', statusText: '', diff --git a/packages/teleport/src/Nodes/NodeAdd/NodeAdd.tsx b/packages/teleport/src/Nodes/NodeAdd/NodeAdd.tsx index 73d70593c..66a013ce8 100644 --- a/packages/teleport/src/Nodes/NodeAdd/NodeAdd.tsx +++ b/packages/teleport/src/Nodes/NodeAdd/NodeAdd.tsx @@ -34,7 +34,7 @@ export function NodeAdd(props: ReturnType) { onClose, createJoinToken, script, - expires, + expiry, attempt, } = props; @@ -46,7 +46,7 @@ export function NodeAdd(props: ReturnType) { isEnterprise={isEnterprise} onClose={onClose} script={script} - expires={expires} + expiry={expiry} createJoinToken={createJoinToken} attempt={attempt} /> diff --git a/packages/teleport/src/Nodes/NodeAdd/NodeAddEnterprise.tsx b/packages/teleport/src/Nodes/NodeAdd/NodeAddEnterprise.tsx index d5ba1ca4e..c009bba59 100644 --- a/packages/teleport/src/Nodes/NodeAdd/NodeAddEnterprise.tsx +++ b/packages/teleport/src/Nodes/NodeAdd/NodeAddEnterprise.tsx @@ -31,7 +31,7 @@ import NodeAddDefault from './NodeAddOSS'; export default function NodeAddEnterprise({ onClose, script, - expires, + expiry, createJoinToken, canCreateToken, version, @@ -87,7 +87,7 @@ export default function NodeAddEnterprise({ {activeTab.title === 'Automatically' ? ( - Use the auto installer script to add a server to your cluster. + Use below script to add a server to your cluster.
- Script will be valid for + The script will be valid for - 4h0m0s + 980 years . diff --git a/packages/teleport/src/Nodes/NodeAdd/useNodeAdd.ts b/packages/teleport/src/Nodes/NodeAdd/useNodeAdd.ts index 9822cbae2..e0ac2815b 100644 --- a/packages/teleport/src/Nodes/NodeAdd/useNodeAdd.ts +++ b/packages/teleport/src/Nodes/NodeAdd/useNodeAdd.ts @@ -26,7 +26,7 @@ export default function useNodeAdd(ctx: TeleportContext, onClose: () => void) { const isEnterprise = cfg.isEnterprise; const [script, setScript] = useState(''); - const [expires, setExpires] = useState(''); + const [expiry, setExpiry] = useState(null); useEffect(() => { if (isEnterprise && canCreateToken) { @@ -36,7 +36,7 @@ export default function useNodeAdd(ctx: TeleportContext, onClose: () => void) { function createJoinToken() { return ctx.nodeService.createNodeJoinToken().then(token => { - setExpires(token.expires); + setExpiry(token.expiry); setScript( `sudo bash -c "$(curl -sSL ${cfg.getNodeJoinScriptUrl(token.id)})"` ); @@ -50,7 +50,7 @@ export default function useNodeAdd(ctx: TeleportContext, onClose: () => void) { onClose, createJoinToken, script, - expires, + expiry, attempt, }; } diff --git a/packages/teleport/src/services/nodes/makeNodeJoinToken.ts b/packages/teleport/src/services/nodes/makeNodeJoinToken.ts index a931ceb28..9973b1553 100644 --- a/packages/teleport/src/services/nodes/makeNodeJoinToken.ts +++ b/packages/teleport/src/services/nodes/makeNodeJoinToken.ts @@ -18,10 +18,10 @@ import { at } from 'lodash'; import { NodeJoinToken } from './types'; export default function makeToken(json): NodeJoinToken { - const [id, expires] = at(json, ['id', 'expires']); + const [id, expiry] = at(json, ['id', 'expiry']); return { id, - expires, + expiry: new Date(expiry), }; } diff --git a/packages/teleport/src/services/nodes/types.ts b/packages/teleport/src/services/nodes/types.ts index 80fe5783b..445c99393 100644 --- a/packages/teleport/src/services/nodes/types.ts +++ b/packages/teleport/src/services/nodes/types.ts @@ -30,5 +30,5 @@ export interface Node { export interface NodeJoinToken { id: string; - expires: string; + expiry: Date; }