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

Function parseEditableNetworkConfig

internal/ui/components/vm_config.go:415–477  ·  view source on GitHub ↗
(vmType, raw string)

Source from the content-addressed store, hash-verified

413}
414
415func parseEditableNetworkConfig(vmType, raw string) editableNetworkConfig {
416 cfg := editableNetworkConfig{}
417 parts := strings.Split(raw, ",")
418 extras := make([]string, 0)
419
420 for _, part := range parts {
421 part = strings.TrimSpace(part)
422 if part == "" {
423 continue
424 }
425
426 kv := strings.SplitN(part, "=", 2)
427 if len(kv) != 2 {
428 extras = append(extras, part)
429 continue
430 }
431
432 key := strings.TrimSpace(kv[0])
433 value := strings.TrimSpace(kv[1])
434
435 switch key {
436 case "bridge":
437 cfg.Bridge = value
438 case "tag":
439 cfg.VLAN = value
440 case "rate":
441 cfg.Rate = value
442 case "ip":
443 cfg.IPModeSet = true
444 if strings.EqualFold(value, ipModeDHCP) {
445 cfg.IPMode = ipModeDHCP
446 cfg.IP = ""
447 } else {
448 cfg.IPMode = ipModeStatic
449 cfg.IP = value
450 }
451 case "gw":
452 cfg.Gateway = value
453 case "firewall":
454 cfg.FirewallSet = true
455 cfg.Firewall = value == "1" || strings.EqualFold(value, "true")
456 case "name":
457 cfg.Name = value
458 case "hwaddr":
459 cfg.MACAddr = value
460 default:
461 // For QEMU, model=MAC is encoded as "<model>=<mac>"
462 if vmType == api.VMTypeQemu && cfg.Model == "" && strings.Count(value, ":") == 5 {
463 cfg.Model = key
464 cfg.MACAddr = value
465 continue
466 }
467 extras = append(extras, part)
468 }
469 }
470
471 cfg.ExtraRawCSV = strings.Join(extras, ",")
472 if cfg.IPMode == "" && vmType == api.VMTypeLXC {

Calls

no outgoing calls

Tested by 1