github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/cmd/hyper-control/updateNetworkConfiguration.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 "os/exec" 7 8 "github.com/Cloud-Foundations/Dominator/lib/log" 9 "github.com/Cloud-Foundations/Dominator/lib/net/configurator" 10 ) 11 12 func updateNetworkConfigurationSubcommand(args []string, 13 logger log.DebugLogger) error { 14 err := updateNetworkConfiguration(logger) 15 if err != nil { 16 return fmt.Errorf("Error updating network configuration: %s", err) 17 } 18 return nil 19 } 20 21 func updateNetworkConfiguration(logger log.DebugLogger) error { 22 _, interfaces, err := getUpInterfaces(logger) 23 if err != nil { 24 return err 25 } 26 info, err := getInfoForhost("") 27 if err != nil { 28 return err 29 } 30 netconf, err := configurator.Compute(info, interfaces, logger) 31 if err != nil { 32 return err 33 } 34 if changed, err := netconf.Update("/", logger); err != nil { 35 return err 36 } else if !changed { 37 return nil 38 } 39 logger.Println("restarting hypervisor") 40 cmd := exec.Command("service", "hypervisor", "restart") 41 cmd.Stdout = os.Stdout 42 cmd.Stderr = os.Stderr 43 return cmd.Run() 44 }