Exemple #1
0
func (s *VirtualMachineConfigSpec) addVirtualSerialPort(device *types.VirtualSerialPort, suffix string, connected bool) *VirtualMachineConfigSpec {
	device.GetVirtualDevice().Key = s.generateNextKey()

	// Set serial device's backing to a datastore file when debug is true
	// We then instruct Linux kernel to use that as a serial console
	if suffix == "" {
		device.GetVirtualDevice().Backing = &types.VirtualSerialPortURIBackingInfo{
			VirtualDeviceURIBackingInfo: types.VirtualDeviceURIBackingInfo{
				Direction:  string(types.VirtualDeviceURIBackingOptionDirectionClient),
				ServiceURI: s.ConnectorURI(),
			},
		}

		device.GetVirtualDevice().Connectable = &types.VirtualDeviceConnectInfo{
			Connected:         connected,
			StartConnected:    connected,
			AllowGuestControl: false,
		}
	} else {
		device.GetVirtualDevice().Backing = &types.VirtualSerialPortFileBackingInfo{
			VirtualDeviceFileBackingInfo: types.VirtualDeviceFileBackingInfo{
				FileName: fmt.Sprintf("%s/%s/%s.%s", s.VMPathName(), s.config.VMFullName, s.ID(), suffix),
			},
		}
	}

	return s.AddVirtualDevice(device)
}