MCPcopy Create free account
hub / github.com/Thunder-Compute/thunder-cli / renderProvisioningSection

Method renderProvisioningSection

tui/status.go:507–581  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

505}
506
507func (m *statusModel) renderProvisioningSection() string {
508 // Group instances with PROVISIONING status by GPU type
509 instancesByGPU := make(map[string][]api.Instance)
510 for _, instance := range m.instances {
511 if instance.Status == "PROVISIONING" && !instance.ProvisioningTime.IsZero() {
512 instancesByGPU[instance.GPUType] = append(instancesByGPU[instance.GPUType], instance)
513 }
514 }
515
516 if len(instancesByGPU) == 0 {
517 return ""
518 }
519
520 var b strings.Builder
521 b.WriteString("\n")
522 b.WriteString(primaryStyle.Bold(true).Render("Provisioning Instances:"))
523 b.WriteString("\n\n")
524
525 gpuTypes := make([]string, 0, len(instancesByGPU))
526 for gpuType := range instancesByGPU {
527 gpuTypes = append(gpuTypes, gpuType)
528 }
529 sort.Strings(gpuTypes)
530
531 for _, gpuType := range gpuTypes {
532 instances := instancesByGPU[gpuType]
533 m.ensureProgressBar(gpuType)
534 progressBar := m.progressBars[gpuType]
535
536 // Use the earliest provisioning time from all instances of this GPU type
537 earliestTime := instances[0].ProvisioningTime
538 for _, instance := range instances[1:] {
539 if instance.ProvisioningTime.Before(earliestTime) {
540 earliestTime = instance.ProvisioningTime
541 }
542 }
543
544 // Calculate progress using the GetProgress method
545 progressPercent := utils.GetProgress(earliestTime, provisioningExpectedDuration)
546
547 // Calculate time remaining
548 elapsed := time.Since(earliestTime)
549 remaining := provisioningExpectedDuration - elapsed
550 if remaining < 0 {
551 remaining = 0
552 }
553 remainingMinutes := int(remaining.Minutes())
554 if remainingMinutes < 1 {
555 remainingMinutes = 1
556 }
557
558 // Build comma-separated list of instance names
559 var names []string
560 for _, instance := range instances {
561 names = append(names, instance.Name)
562 }
563 instanceList := strings.Join(names, ", ")
564

Callers 1

ViewMethod · 0.95

Calls 3

ensureProgressBarMethod · 0.95
GetProgressFunction · 0.92
SubtleTextStyleFunction · 0.85

Tested by

no test coverage detected