mirror of
https://github.com/cirruslabs/orchard.git
synced 2026-09-30 03:51:43 +02:00
Add an option to disable Tart clipboard sharing (#475)
Expose noClipboard in VM creation, CLI inspection, and the API schema. Pass --no-clipboard to Tart when requested. Clipboard sharing remains enabled by default for existing VM specifications.
This commit is contained in:
@@ -747,6 +747,10 @@ components:
|
|||||||
type: boolean
|
type: boolean
|
||||||
description: Whether to disable audio pass-through to the host
|
description: Whether to disable audio pass-through to the host
|
||||||
default: false
|
default: false
|
||||||
|
noClipboard:
|
||||||
|
type: boolean
|
||||||
|
description: Whether to disable clipboard sharing between host and guest
|
||||||
|
default: false
|
||||||
username:
|
username:
|
||||||
type: string
|
type: string
|
||||||
description: SSH username to use when connecting to a VM
|
description: SSH username to use when connecting to a VM
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ var netBridged string
|
|||||||
var headless bool
|
var headless bool
|
||||||
var nested bool
|
var nested bool
|
||||||
var noAudio bool
|
var noAudio bool
|
||||||
|
var noClipboard bool
|
||||||
var suspendable bool
|
var suspendable bool
|
||||||
var username string
|
var username string
|
||||||
var password string
|
var password string
|
||||||
@@ -72,6 +73,7 @@ func newCreateVMCommand() *cobra.Command {
|
|||||||
command.Flags().BoolVar(&headless, "headless", true, "whether to run without graphics")
|
command.Flags().BoolVar(&headless, "headless", true, "whether to run without graphics")
|
||||||
command.Flags().BoolVar(&nested, "nested", false, "enable nested virtualization")
|
command.Flags().BoolVar(&nested, "nested", false, "enable nested virtualization")
|
||||||
command.Flags().BoolVar(&noAudio, "no-audio", false, "disable audio pass-through to the host")
|
command.Flags().BoolVar(&noAudio, "no-audio", false, "disable audio pass-through to the host")
|
||||||
|
command.Flags().BoolVar(&noClipboard, "no-clipboard", false, "disable clipboard sharing between host and guest")
|
||||||
command.Flags().BoolVar(&suspendable, "suspendable", false, "treat the VM as suspendable, "+
|
command.Flags().BoolVar(&suspendable, "suspendable", false, "treat the VM as suspendable, "+
|
||||||
"disabling certain devices for suspendability support and issuing \"tart suspend\" instead of \"tart stop\" "+
|
"disabling certain devices for suspendability support and issuing \"tart suspend\" instead of \"tart stop\" "+
|
||||||
"when VM's specification is updated, thus preserving the VM's state between specification generations")
|
"when VM's specification is updated, thus preserving the VM's state between specification generations")
|
||||||
@@ -159,6 +161,7 @@ func runCreateVM(cmd *cobra.Command, args []string) error {
|
|||||||
Headless: headless,
|
Headless: headless,
|
||||||
Nested: nested,
|
Nested: nested,
|
||||||
NoAudio: noAudio,
|
NoAudio: noAudio,
|
||||||
|
NoClipboard: noClipboard,
|
||||||
Username: username,
|
Username: username,
|
||||||
Password: password,
|
Password: password,
|
||||||
RandomSerial: randomSerial,
|
RandomSerial: randomSerial,
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ func runGetVM(cmd *cobra.Command, args []string) error {
|
|||||||
table.AddRow("Headless mode", vm.Headless)
|
table.AddRow("Headless mode", vm.Headless)
|
||||||
table.AddRow("Nested virtualization", vm.Nested)
|
table.AddRow("Nested virtualization", vm.Nested)
|
||||||
table.AddRow("Audio disabled", vm.NoAudio)
|
table.AddRow("Audio disabled", vm.NoAudio)
|
||||||
|
table.AddRow("Clipboard sharing disabled", vm.NoClipboard)
|
||||||
table.AddRow("Status", vm.Status)
|
table.AddRow("Status", vm.Status)
|
||||||
table.AddRow("Status message", vm.StatusMessage)
|
table.AddRow("Status message", vm.StatusMessage)
|
||||||
table.AddRow("Assigned worker", nonEmptyOrNone(vm.Worker))
|
table.AddRow("Assigned worker", nonEmptyOrNone(vm.Worker))
|
||||||
|
|||||||
@@ -307,6 +307,10 @@ func (vm *VM) run(ctx context.Context, eventStreamer *client.EventStreamer) {
|
|||||||
runArgs = append(runArgs, "--no-audio")
|
runArgs = append(runArgs, "--no-audio")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if vm.resource.NoClipboard {
|
||||||
|
runArgs = append(runArgs, "--no-clipboard")
|
||||||
|
}
|
||||||
|
|
||||||
if vm.resource.Suspendable {
|
if vm.resource.Suspendable {
|
||||||
runArgs = append(runArgs, "--suspendable")
|
runArgs = append(runArgs, "--suspendable")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ type VM struct {
|
|||||||
Headless bool `json:"headless,omitempty"`
|
Headless bool `json:"headless,omitempty"`
|
||||||
Nested bool `json:"nested,omitempty"`
|
Nested bool `json:"nested,omitempty"`
|
||||||
NoAudio bool `json:"noAudio,omitempty"`
|
NoAudio bool `json:"noAudio,omitempty"`
|
||||||
|
NoClipboard bool `json:"noClipboard,omitempty"`
|
||||||
|
|
||||||
VMSpec
|
VMSpec
|
||||||
VMSpecReadOnly
|
VMSpecReadOnly
|
||||||
|
|||||||
Reference in New Issue
Block a user