MCPcopy Create free account
hub / github.com/devnullvoid/pvetui / showEditNetworkInterfacesModal

Function showEditNetworkInterfacesModal

internal/ui/components/vm_config.go:541–804  ·  view source on GitHub ↗
(app *App, vm *api.VM, config *api.VMConfig, onApply func())

Source from the content-addressed store, hash-verified

539}
540
541func showEditNetworkInterfacesModal(app *App, vm *api.VM, config *api.VMConfig, onApply func()) {
542 if config == nil {
543 app.showMessageSafe("No configuration loaded")
544 return
545 }
546
547 if len(config.NetworkInterfaces) == 0 {
548 app.showMessageSafe("No network interfaces found for this guest")
549 return
550 }
551
552 networkKeys := make([]string, 0, len(config.NetworkInterfaces))
553 for key := range config.NetworkInterfaces {
554 if strings.HasPrefix(key, "net") {
555 networkKeys = append(networkKeys, key)
556 }
557 }
558 sort.Strings(networkKeys)
559 if len(networkKeys) == 0 {
560 app.showMessageSafe("No editable netX interfaces found")
561 return
562 }
563
564 working := make(map[string]string, len(config.NetworkInterfaces))
565 for k, v := range config.NetworkInterfaces {
566 working[k] = v
567 }
568 originalWorking := make(map[string]string, len(config.NetworkInterfaces))
569 for k, v := range config.NetworkInterfaces {
570 originalWorking[k] = buildEditableNetworkRaw(vm.Type, parseEditableNetworkConfig(vm.Type, v))
571 }
572
573 form := newStandardForm()
574 form.SetBorder(true)
575 form.SetTitle(fmt.Sprintf(" Network Interfaces - %s (%d) ", vm.Name, vm.ID))
576
577 currentKey := networkKeys[0]
578 current := parseEditableNetworkConfig(vm.Type, working[currentKey])
579 suppress := false
580
581 form.AddDropDown("Interface", networkKeys, 0, nil)
582 if vm.Type == api.VMTypeQemu {
583 form.AddInputField("Model", "", 20, nil, nil)
584 }
585 if vm.Type == api.VMTypeLXC {
586 form.AddInputField("Name", "", 20, nil, nil)
587 }
588 form.AddInputField("MAC Address", "", 24, nil, nil)
589 form.AddInputField("Bridge", "", 20, nil, nil)
590 form.AddInputField("VLAN Tag", "", 8, nil, nil)
591 form.AddInputField("Rate", "", 10, nil, nil)
592 if vm.Type == api.VMTypeLXC {
593 form.AddInputField("IP", "", 32, nil, nil)
594 form.AddDropDown("IP Assignment", []string{"DHCP", "Static"}, 0, nil)
595 form.AddInputField("Gateway", "", 32, nil, nil)
596 form.AddInputField("Nameserver", strings.TrimSpace(config.Nameserver), 48, nil, nil)
597 form.AddInputField("Search Domain", strings.TrimSpace(config.SearchDomain), 48, nil, nil)
598 }

Callers 1

NewVMConfigPageFunction · 0.85

Calls 15

buildEditableNetworkRawFunction · 0.85
newStandardFormFunction · 0.85
validateNameserverFunction · 0.85
validateSearchDomainFunction · 0.85
networkConfigMapsEqualFunction · 0.85
showMessageSafeMethod · 0.80
SetSelectedFuncMethod · 0.80
removePageIfPresentMethod · 0.80
SetTitleMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected