Merge pull request #21673 from Luap99/qemu-netdev-socket
machine/qemu: use extra gvproxy socket
This commit is contained in:
		
						commit
						1141946e67
					
				|  | @ -141,19 +141,18 @@ func (q *QEMUStubber) StartVM(mc *vmconfigs.MachineConfig) (func() error, func() | ||||||
| 		return nil, nil, err | 		return nil, nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// If the qemusocketpath exists and the vm is off/down, we should rm
 | 	gvProxySock, err := mc.GVProxySocket() | ||||||
| 	// it before the dial as to avoid a segv
 | 	if err != nil { | ||||||
| 
 |  | ||||||
| 	if err := mc.QEMUHypervisor.QMPMonitor.Address.Delete(); err != nil { |  | ||||||
| 		return nil, nil, err | 		return nil, nil, err | ||||||
| 	} | 	} | ||||||
| 	qemuSocketConn, err := sockets.DialSocketWithBackoffs(maxBackoffs, defaultBackoff, mc.QEMUHypervisor.QMPMonitor.Address.GetPath()) |  | ||||||
| 	if err != nil { |  | ||||||
| 		return nil, nil, fmt.Errorf("failed to connect to qemu monitor socket: %w", err) |  | ||||||
| 	} |  | ||||||
| 	defer qemuSocketConn.Close() |  | ||||||
| 
 | 
 | ||||||
| 	fd, err := qemuSocketConn.(*net.UnixConn).File() | 	qemuNetdevSockConn, err := sockets.DialSocketWithBackoffs(maxBackoffs, defaultBackoff, gvProxySock.GetPath()) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, nil, fmt.Errorf("failed to connect to gvproxy socket: %w", err) | ||||||
|  | 	} | ||||||
|  | 	defer qemuNetdevSockConn.Close() | ||||||
|  | 
 | ||||||
|  | 	fd, err := qemuNetdevSockConn.(*net.UnixConn).File() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, nil, err | 		return nil, nil, err | ||||||
| 	} | 	} | ||||||
|  | @ -166,9 +165,6 @@ func (q *QEMUStubber) StartVM(mc *vmconfigs.MachineConfig) (func() error, func() | ||||||
| 	defer dnr.Close() | 	defer dnr.Close() | ||||||
| 	defer dnw.Close() | 	defer dnw.Close() | ||||||
| 
 | 
 | ||||||
| 	attr := new(os.ProcAttr) |  | ||||||
| 	files := []*os.File{dnr, dnw, dnw, fd} |  | ||||||
| 	attr.Files = files |  | ||||||
| 	cmdLine := q.Command | 	cmdLine := q.Command | ||||||
| 
 | 
 | ||||||
| 	cmdLine.SetPropagatedHostEnvs() | 	cmdLine.SetPropagatedHostEnvs() | ||||||
|  | @ -292,7 +288,15 @@ func (q *QEMUStubber) SetProviderAttrs(mc *vmconfigs.MachineConfig, opts define. | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (q *QEMUStubber) StartNetworking(mc *vmconfigs.MachineConfig, cmd *gvproxy.GvproxyCommand) error { | func (q *QEMUStubber) StartNetworking(mc *vmconfigs.MachineConfig, cmd *gvproxy.GvproxyCommand) error { | ||||||
| 	cmd.AddQemuSocket(fmt.Sprintf("unix://%s", mc.QEMUHypervisor.QMPMonitor.Address.GetPath())) | 	gvProxySock, err := mc.GVProxySocket() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	// make sure it does not exist before gvproxy is called
 | ||||||
|  | 	if err := gvProxySock.Delete(); err != nil { | ||||||
|  | 		logrus.Error(err) | ||||||
|  | 	} | ||||||
|  | 	cmd.AddQemuSocket(fmt.Sprintf("unix://%s", gvProxySock.GetPath())) | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue