maidn-cli/internal/ui/wizard_proxmox.go

27 lines
1,019 B
Go

package ui
import (
"bufio"
"fmt"
"github.com/Pingu-Studio/MaidnCLI/internal/config"
"github.com/Pingu-Studio/MaidnCLI/internal/proxmox"
)
func discoverProxmox(reader *bufio.Reader, cfg config.Config) ([]proxmox.NodeInfo, error) {
for {
discovered, err := proxmox.New(cfg.Talos.Proxmox.APIURL, cfg.Talos.Proxmox.APITokenID, cfg.Talos.Proxmox.APITokenSecret, cfg.Talos.Proxmox.Insecure).Discover()
if err == nil {
return discovered, nil
}
fmt.Printf("[WARN] Proxmox discovery failed: %v\n", err)
fmt.Println("[WARN] Required token perms for discovery: Sys.Audit on nodes/storage/network you want listed.")
if !promptBool(reader, "Retry Proxmox discovery", true) {
return nil, err
}
cfg.Talos.Proxmox.APIURL = prompt(reader, "Proxmox API URL", cfg.Talos.Proxmox.APIURL)
cfg.Talos.Proxmox.APITokenID = prompt(reader, "Proxmox API token ID", cfg.Talos.Proxmox.APITokenID)
cfg.Talos.Proxmox.APITokenSecret = prompt(reader, "Proxmox API token secret", cfg.Talos.Proxmox.APITokenSecret)
}
}