diff --git a/src/components/BuildPages/BuildPages.tsx b/src/components/BuildPages/BuildPages.tsx index e76cf5f6..b85f63d7 100644 --- a/src/components/BuildPages/BuildPages.tsx +++ b/src/components/BuildPages/BuildPages.tsx @@ -25,7 +25,7 @@ import { PageTabs } from 'components/PageTabs/PageTabs'; import { PageTabsItem } from 'components/PageTabs/PageTabsItem'; import { PageTabsLabel } from 'components/PageTabs/PageTabsLabel'; import { ServiceContainerLoading } from 'components/ServiceContainers/ServiceContainerLoading'; -import { SshCredentialsButton } from 'components/SshCredentialsButton/SshCredentialsButton'; +import { BUILD_STATUS, SshCredentialsButton } from 'components/SshCredentialsButton/SshCredentialsButton'; import * as buildApi from 'services/buildApi'; import { uiLogger } from 'services/uiLogger'; @@ -166,7 +166,15 @@ export const BuildPages = () => { key="ssh-credentials" serviceContainerSshCredentials={serviceContainerBuildSshCredentials} buildBelongToCurrentUser={buildBelongToCurrentUser || isCurrentUserAdmin} - hasBuildFailed={!!serviceContainerBuild.data?.status && !!buildStatusData[serviceContainerBuild.data.status].failed} + buildStatus={ + !serviceContainerBuild.data?.status + ? BUILD_STATUS.InProgress + : buildStatusData[serviceContainerBuild.data.status].failed + ? BUILD_STATUS.Failed + : buildStatusData[serviceContainerBuild.data.status].progress !== 'FINISHED' + ? BUILD_STATUS.InProgress + : BUILD_STATUS.Success + } />, ; buildBelongToCurrentUser: boolean; - hasBuildFailed: boolean; + buildStatus: BUILD_STATUS; } export const SshCredentialsButton = ({ serviceContainerSshCredentials, buildBelongToCurrentUser, - hasBuildFailed, + buildStatus, }: ISshCredentialsButtonProps) => { const disabledReason = !buildBelongToCurrentUser - ? 'Build does not belong to the currently logged in user.' - : !hasBuildFailed - ? 'Build has not failed.' + ? 'Only user who executed the build and PNC admins are allowed to get the SSH Credentials.' + : buildStatus === BUILD_STATUS.InProgress + ? 'The build is currently in progress; SSH Credentials are only available for unsuccessful builds with "keep pod alive" option.' + : buildStatus === BUILD_STATUS.Success + ? 'SSH Credentials are only available for unsuccessful builds with "keep pod alive" option.' : !serviceContainerSshCredentials.data?.command - ? "SSH credentials are only available for those unsuccessful builds with 'keep pod alive' option. Alternatively you can modify your build script to intentionally fail it and get the SSH credentials you need." + ? "SSH credentials are only available for unsuccessful builds with 'keep pod alive' option. Alternatively you can modify your build script to intentionally fail it and get the SSH credentials you need." : undefined; return ( @@ -52,7 +60,7 @@ export const SshCredentialsButton = ({ >