Move `getDevNullFiles` into a common file
Moves `getDevNullFiles` into a new common file, `pkg/machine/machine_common.go`, preventing the re-implementation of the function across the different hypervisor implementations. Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
This commit is contained in:
		
							parent
							
								
									7d5f9de7a9
								
							
						
					
					
						commit
						906af5bbc6
					
				| 
						 | 
				
			
			@ -616,24 +616,6 @@ func (m *HyperVMachine) loadHyperVMachineFromJSON(fqConfigPath string) error {
 | 
			
		|||
	return json.Unmarshal(b, m)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// getDevNullFiles returns pointers to Read-only and Write-only DevNull files
 | 
			
		||||
func getDevNullFiles() (*os.File, *os.File, error) {
 | 
			
		||||
	dnr, err := os.OpenFile(os.DevNull, os.O_RDONLY, 0755)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	dnw, err := os.OpenFile(os.DevNull, os.O_WRONLY, 0755)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if e := dnr.Close(); e != nil {
 | 
			
		||||
			err = e
 | 
			
		||||
		}
 | 
			
		||||
		return nil, nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return dnr, dnw, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *HyperVMachine) startHostNetworking() (string, machine.APIForwardingState, error) {
 | 
			
		||||
	var (
 | 
			
		||||
		forwardSock string
 | 
			
		||||
| 
						 | 
				
			
			@ -645,7 +627,7 @@ func (m *HyperVMachine) startHostNetworking() (string, machine.APIForwardingStat
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	attr := new(os.ProcAttr)
 | 
			
		||||
	dnr, dnw, err := getDevNullFiles()
 | 
			
		||||
	dnr, dnw, err := machine.GetDevNullFiles()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", machine.NoForwarding, err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
//go:build amd64 || arm64
 | 
			
		||||
// +build amd64 arm64
 | 
			
		||||
 | 
			
		||||
package machine
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"os"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// getDevNullFiles returns pointers to Read-only and Write-only DevNull files
 | 
			
		||||
func GetDevNullFiles() (*os.File, *os.File, error) {
 | 
			
		||||
	dnr, err := os.OpenFile(os.DevNull, os.O_RDONLY, 0755)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	dnw, err := os.OpenFile(os.DevNull, os.O_WRONLY, 0755)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if e := dnr.Close(); e != nil {
 | 
			
		||||
			err = e
 | 
			
		||||
		}
 | 
			
		||||
		return nil, nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return dnr, dnw, nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -629,24 +629,6 @@ func (v *MachineVM) connectToPodmanSocket(maxBackoffs int, backoff time.Duration
 | 
			
		|||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// getDevNullFiles returns pointers to Read-only and Write-only DevNull files
 | 
			
		||||
func getDevNullFiles() (*os.File, *os.File, error) {
 | 
			
		||||
	dnr, err := os.OpenFile(os.DevNull, os.O_RDONLY, 0755)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	dnw, err := os.OpenFile(os.DevNull, os.O_WRONLY, 0755)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if e := dnr.Close(); e != nil {
 | 
			
		||||
			err = e
 | 
			
		||||
		}
 | 
			
		||||
		return nil, nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return dnr, dnw, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Start executes the qemu command line and forks it
 | 
			
		||||
func (v *MachineVM) Start(name string, opts machine.StartOptions) error {
 | 
			
		||||
	var (
 | 
			
		||||
| 
						 | 
				
			
			@ -739,7 +721,7 @@ func (v *MachineVM) Start(name string, opts machine.StartOptions) error {
 | 
			
		|||
	}
 | 
			
		||||
	defer fd.Close()
 | 
			
		||||
 | 
			
		||||
	dnr, dnw, err := getDevNullFiles()
 | 
			
		||||
	dnr, dnw, err := machine.GetDevNullFiles()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1336,7 +1318,7 @@ func (v *MachineVM) startHostNetworking() (string, machine.APIForwardingState, e
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	attr := new(os.ProcAttr)
 | 
			
		||||
	dnr, dnw, err := getDevNullFiles()
 | 
			
		||||
	dnr, dnw, err := machine.GetDevNullFiles()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", machine.NoForwarding, err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue