summaryrefslogtreecommitdiff
path: root/usr.sbin/vmctl
AgeCommit message (Collapse)Author
2020-09-02Fix clang warning in vmctl(8)Theo Buehler
If the path to a tty doesn't contain a '/' or ends in a '/' use the full path. (The intent is to chop off the leading "/dev/") ok deraadt (who had the same diff) martijn millert
2020-03-11fix spelling of IMSG_VMDOP_TERMINATE_VM_RESPONSE in commentJasper Lievisse Adriaanse
from Matt Schultz
2020-02-16Backout "DHCP is configured on the first interface only"kn
I completely missed that part from vmctl.5's "LOCAL INTERFACES" section. Reading `-L's description itself and the fact that it functions as a boolean switch contrary to how `-i' expects a number, I made the wrong assumption that it can only work for the first interface. "vmctl -Li2" configures two interfaces, one witch DHCP and one without. "vmctl -L -L" however configures two interfaces with DHCP IPs each. My second mistake was to imply analogue behaviour for the configuration. Now that you stated the obvious about `local' being per `interface' line, it makes absoloutely no sense to above mentioned behaviour for static VM definitions. Pointed out by tb
2020-02-15DHCP is configured on the first interface onlykn
A VM can have multiple interfaces, but only the first one gets DHCP if "-L" (vmctl) or "local" (vm.conf) is specified. Positive feedback Mike Larkin
2020-01-03vmctl(8): fix vmctl send exit codepd
vmctl send always returned exit code 1 Patch by Benjamin Baier ok kn@
2019-12-28Run cu(1) in restricted modekn
Users must not not be able to transfer files from the local hypervisor filesystem to VMs/LDOMs, especially since the "vmctl/ldomctl console ..." might be run as root. Disable all relevant escape sequences and cause cu to run under "stdio tty" pledge by using -r. OK deraadt mlarkin
2019-12-17Use local variable isntead of function parameterkn
The parse_size() wrapper around scan_scaled(3) writes its intermediate result to the function argument which is always passed as literal zero. This seems odd, the function parameter has no meaning but merely serves as storage, so let's use a proper function scoped variable instead. OK pd
2019-12-15Explicitly print root user in status OWNER columnkn
With "owner root:wheel" (any group) the status output prints ":wheel" only, presumably to emphasize that only group membership matters. Always print whatever is configured to be explicit and less confusing. OK jasper
2019-12-12vmd: start vms defined in vm.conf in a staggered fashionpd
This addresses 'thundering herd' problem when a lot of vms are configured in vm.conf. A lot of vms booting in parallel can overload the host and also mess up tsc calibration in openbsd guests as it uses PIT which doesn't fire reliably if the host is overloaded. We default to starting vms with parallelism of ncpuonline and a delay 30 seconds between batches. This is configurable in vm.conf. ok mlarkin@ (also addressed comments from cheloha@)
2019-10-27Require at least one interface with -ikn
Either a positive count is given or -i is omitted entirely; vm.conf(5) does not allow interface configuration that results in zero interfaces either. Raise the minimium count value to one and tell more about invalid counts with the usual strtonum(3) idiom. OK reyk
2019-09-15Use (egress) in nat-to examplekn
Without parentheses, this rule evaluates to the static list of addresses at loadtime; this can be a problem when the machine's network is not fully established when pf.conf is loaded. From pf.conf(5): When the interface name is surrounded by parentheses, the rule is automatically updated whenever the interface changes its address. The ruleset does not need to be reloaded. This is especially useful with NAT. This syncs vmctl(8) with the VMM FAQ. Pointed out by Matthias Schmidt, thanks!
2019-09-07Remove unused VMD_DISK_INVALID message type and mark it obsolete.tobhe
ok mlarkin@
2019-08-23vmctl(8): fix wrong output when using 'vmctl stop'Mike Larkin
Fix a wrong output when using 'vmctl stop' without any further arguments. Patch from Caspar Schutijser, thanks! ok deraadt
2019-08-14Improve the error message when supplying an invalid template to vmctlanton
start. Favoring 'invalid template' over 'permission denied' should give the user a better hint on what went wrong. ok kn@ mlarkin@
2019-08-08Fix a bunch of typos in various man pages.Frederic Cambus
2019-07-05zap an extra space in usage();Jason McIntyre
from alessandro gallo
2019-05-31zap trailing whitespace;Jason McIntyre
2019-05-29Change vmctl(8) syntax: command options before the disk/name/id argument.Reyk Floeter
vmctl had a CLI-style syntax (bgpctl-style) for a short time but I changed it back to a more suitable getopt syntax. I replaced the CLI tokens to getopts flags but didn't consider swapping the order of command options and arguments to be more UNIX-like again ("vmctl create disk.img size 10G" simply became "vmctl create disk.img -s 10G"). This changes "create", "start", and "stop" commands to the commonly expected syntax like "vmctl create -s 10G disk.img". Requested by many OK mlarkin@ kn@ solene@
2019-05-22re-order to reported states based on order of significance:Jasper Lievisse Adriaanse
paused takes priority over running; running takes priority over disabled ok mlarkin@ pd@
2019-05-16treat vms that are disabled in vm.conf the same as any other vm that's stoppedJasper Lievisse Adriaanse
"disabled" in this context might imply it being broken or otherwise unusable prompted by and ok mlarkin@
2019-05-14Delete some .Sx macros that were used in a wrong way.Ingo Schwarze
Part of a patch from Stephen Gregoratto <dev at sgregoratto dot me>.
2019-05-11report vm state through 'vmctl status'; whereas previously this would ↵Jasper Lievisse Adriaanse
display the state of the vcpu (which is why it got removed), it now actually reports the correct state (running, stopped, disabled, paused, etc) ok ccardenas@ mlarkin@
2019-05-10remove receive_vm prototype for the function does not exist (anymore)Jasper Lievisse Adriaanse
ok pd@
2019-05-06double macro snuck in;Jason McIntyre
2019-05-06vmctl.8 : man page cleanupMike Larkin
input from jmc@
2019-04-02Report reliable VM state on status commandkn
`vmctl status id' reports the VM's VCPU states, that is whether they are running or halted. Given that only one VCPU is currently supported per VM and the undocumented states change across repetitive status commands, change it to indicate the VM's general state based on whether the respective host procces is running or not. This makes vmctl reliably report "STATE: RUNNING" and "STATE: STOPPED" for started and stopped VMs respectively. OK mlarkin
2019-03-18Consistently use imperative present tense throughout the manualkn
Feedback and OK jmc
2019-03-18An existing VM may be started by referencing its IDkn
Document `vmctl start id ...' again but be clear about the difference between starting new and existing VMs by name and ID respectively. This completes what I started with vmctl.8 revision 1.61. Feedback and OK jmc
2019-03-07Clarify that VM names must start with a letterkn
`start' requires an alphanumeric VM name, must not be a number and in fact must not start with a digit. Improve and simplify the current requirements as starting with a letter directly implies all of the above. OK mlarkin, feedback jmc
2019-03-01Fix previous extra arguments commitkn
I blatantly missed the argc/argv adjustments after getopt(3), resulting in valid commands like `vmctl create a -s 1G' to fail. Noticed by ajacoutot the hard way. OK ajacoutot jca
2019-03-01Print usage on extra create, start and stop argumentskn
OK mlarkin
2019-01-18disable vmd/vmctl for i386pd
Next commit will delete vmm(4) for i386. Reasons to delete i386 vmm: - Been broken for a while, almost no one complained. - Had been falling out of sync from amd64 while it worked. - If your machine has vmx, you most probably can run amd64, so why not run that? ok mlarkin@ deraadt@
2018-12-18show log/reset/stop as single commands, like usage() currently does;Jason McIntyre
ok mlarkin claudio
2018-12-14sync usage(); also, stop enclosing arg names in quotes, since it wasJason McIntyre
applied inconsistently, and applied consistently would make it look like spaghetti; ok mlarkin
2018-12-13various minor tweaks; ok mlarkinJason McIntyre
2018-12-11Extend vmctl start -B argument to work for disk, cdrom and net.Claudio Jeker
Currently SeaBIOS will respect disk and cdrom and our kernel will understand net. OK ccardenas@, reyk@, mlarkin@
2018-12-07zap trailing whitespaceanton
2018-12-06Add a new argument -B device to vmctl start. It allows to set the boot device.Claudio Jeker
At the moment only 'net' is supported and all other values are silently ignored. This allows to kick of an OpenBSD autoinstall by using: vmctl start "installer" -Lc -B net -b bsd.rd -d disk.img OK ccardenas@
2018-12-04Add 'vmctl wait <VM>' a command that waits until the specified VM isClaudio Jeker
stopped/terminates. Useful in scripts when waiting until a vm has finished its work. Ok ccardenas@, reyk@
2018-11-26Move the {qcow2,raw} create functions from vmctl into vmd/vio{qcow2,raw}.cReyk Floeter
This way they are in the appropriate place and code can be shared with vmd. Ok ori@ mlarkin@ ccardenas@
2018-11-20DNS goes over both udp and tcp, so reflect that in example pf.conf line;Otto Moerbeek
ok reyk@
2018-10-20remove unneccessary macros;Jason McIntyre
2018-10-19Add support to create and convert disk images from existing imagesReyk Floeter
The -i option to vmctl create (eg. vmctl create output.qcow2 -i input.img) lets you create a new image from an input file and convert it if it is a different format. This allows to convert qcow2 images from raw images, raw from qcow2, or even qcow2 from qcow2 and raw from raw to re-optimize the disk. This re-uses Ori's vioqcow2.c from vmd by reaching into it and compiling it in. The API has been adjust to be used from both vmctl and vmd accordingly. OK mlarkin@
2018-10-08Add support for qcow2 base images (external snapshots).Reyk Floeter
This works is from Ori Bernstein, committing on his behalf: Add support to vmd for external snapshots. That is, snapshots that are derived from a base image. Data lookups start in the derived image, and if the derived image does not contain some data, the search proceeds ot the base image. Multiple derived images may exist off of a single base image. A limitation of this format is that modifying the base image will corrupt the derived image. This change also adds support for creating disk derived disk images to vmctl. To use it: vmctl create derived.qcow2 -s 16G -b base.qcow2 From Ori Bernstein OK mlarkin@ reyk@
2018-10-05Setting getopt optreset to 1 needs an additional reset of optind to 1.Reyk Floeter
OK millert@
2018-10-02Fix potential rounding errors when calculating the qcow2 l1 and ref tables sizesReyk Floeter
OK ccardenas@ mlarkin@
2018-10-01Try to derive the qcow2 file format from an image file automatically.Reyk Floeter
This makes the "-d qcow2:" and "format qcow" arguments optional as vmctl and vmd will read the magic bytes at the beginning of a file to guess if it is a raw or a qcow image file. The "vmctl create" command has been changed by removing the -f qcow2 option and replacing it with the same syntax as -d: "vmctl create qcow2:foo.img". In a slightly ununixy but intended way, the create command now also considers the file extension for the format as "vmctl create foo.qcow2" creates a qcow2 disk and not a raw image file. Ok mlarkin@ (and ccardenas@ on an earlier version of the diff)
2018-09-27Add vmctl stop -a [-fw] option to stop or terminate all running VMs.Reyk Floeter
This is also be used to simplify the vmd rc stop script. OK mlarkin@ ccardenas@
2018-09-21Add explanations about vmctl send commandsolene
ok jmc@ jca@ mlarkin@ mdoc tip from bentley@
2018-09-16Use user_from_uid(3) and group_from_gid(3) in a few more placesTodd C. Miller
that do repeated lookups. OK tb@