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  }