tailDeploymentStatus static method
Future<void>
tailDeploymentStatus(
- Client cloudApiClient, {
- required CommandLogger logger,
- required String cloudCapsuleId,
- required UuidValue attemptId,
- bool inUtc = false,
- bool skipUploadStage = false,
Implementation
static Future<void> tailDeploymentStatus(
final Client cloudApiClient, {
required final CommandLogger logger,
required final String cloudCapsuleId,
required final UuidValue attemptId,
final bool inUtc = false,
final bool skipUploadStage = false,
}) async {
final stageStream = cloudApiClient.status.tailDeployAttemptStatus(
cloudCapsuleId: cloudCapsuleId,
attemptId: attemptId,
);
final stageStreams = SplitStreams<DeployStageType, DeployAttemptStage>(
stageStream,
DeployStageType.values,
(final stage) => stage.stageType,
(final stage) => stage.stageStatus.isFinal,
);
if (!skipUploadStage) {
logger.line('Tracking $cloudCapsuleId deployment $attemptId');
logger.line('(Press Ctrl+C to exit)');
logger.line('');
}
final stageStatusTailer = _StageStatusTailer(
logger: logger,
cloudCapsuleId: cloudCapsuleId,
attemptId: attemptId,
stageStreams: stageStreams,
);
for (final stageType in DeployStageType.values) {
if (skipUploadStage && stageType == DeployStageType.upload) {
continue;
}
final stage = await stageStatusTailer.showStageProgress(stageType);
if (stage.stageStatus == DeployProgressStatus.cancelled ||
stage.stageStatus == DeployProgressStatus.failure) {
break;
}
}
}