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

Function buildEditableNetworkRaw

internal/ui/components/vm_config.go:479–539  ·  view source on GitHub ↗
(vmType string, cfg editableNetworkConfig)

Source from the content-addressed store, hash-verified

477}
478
479func buildEditableNetworkRaw(vmType string, cfg editableNetworkConfig) string {
480 parts := make([]string, 0, 10)
481
482 if vmType == api.VMTypeQemu {
483 if cfg.Model != "" && cfg.MACAddr != "" {
484 parts = append(parts, fmt.Sprintf("%s=%s", cfg.Model, cfg.MACAddr))
485 }
486 } else if vmType == api.VMTypeLXC {
487 if cfg.Name != "" {
488 parts = append(parts, fmt.Sprintf("name=%s", cfg.Name))
489 }
490 if cfg.MACAddr != "" {
491 parts = append(parts, fmt.Sprintf("hwaddr=%s", cfg.MACAddr))
492 }
493 }
494
495 if cfg.Bridge != "" {
496 parts = append(parts, fmt.Sprintf("bridge=%s", cfg.Bridge))
497 }
498 if cfg.VLAN != "" {
499 parts = append(parts, fmt.Sprintf("tag=%s", cfg.VLAN))
500 }
501 if cfg.Rate != "" {
502 parts = append(parts, fmt.Sprintf("rate=%s", cfg.Rate))
503 }
504 if vmType == api.VMTypeLXC {
505 if strings.EqualFold(cfg.IPMode, ipModeStatic) {
506 if cfg.IP != "" {
507 parts = append(parts, fmt.Sprintf("ip=%s", cfg.IP))
508 }
509 } else if cfg.IPModeSet {
510 parts = append(parts, "ip=dhcp")
511 }
512 } else if cfg.IP != "" {
513 parts = append(parts, fmt.Sprintf("ip=%s", cfg.IP))
514 }
515
516 if cfg.Gateway != "" && !strings.EqualFold(cfg.IPMode, ipModeDHCP) {
517 parts = append(parts, fmt.Sprintf("gw=%s", cfg.Gateway))
518 }
519
520 if cfg.FirewallSet {
521 if cfg.Firewall {
522 parts = append(parts, "firewall=1")
523 } else {
524 parts = append(parts, "firewall=0")
525 }
526 }
527
528 if trimmedExtra := strings.TrimSpace(cfg.ExtraRawCSV); trimmedExtra != "" {
529 for _, extra := range strings.Split(trimmedExtra, ",") {
530 token := strings.TrimSpace(extra)
531 if token == "" {
532 continue
533 }
534 parts = append(parts, token)
535 }
536 }

Calls

no outgoing calls