Merge pull request #11842 from leoluk/libvirt-permissions-revisited

kvm: only check libvirt membership if we failed to connect to it
pull/12069/head
Medya Ghazizadeh 2021-07-28 12:27:47 -07:00 committed by GitHub
commit 654a1b5b55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 28 additions and 24 deletions

View File

@ -122,6 +122,13 @@ func status() registry.State {
return registry.State{Error: err, Fix: "Install libvirt", Doc: docURL}
}
// On Ubuntu 19.10 (libvirt 5.4), this fails if LIBVIRT_DEFAULT_URI is unset
cmd := exec.CommandContext(ctx, path, "domcapabilities", "--virttype", "kvm")
cmd.Env = append(os.Environ(), fmt.Sprintf("LIBVIRT_DEFAULT_URI=%s", defaultURI()))
out, err := cmd.CombinedOutput()
// If we fail to connect to libvirt, first check whether we're member of the libvirt group.
if err != nil {
member, err := isCurrentUserLibvirtGroupMember()
if err != nil {
return registry.State{
@ -145,11 +152,8 @@ func status() registry.State {
Doc: docURL,
}
}
}
// On Ubuntu 19.10 (libvirt 5.4), this fails if LIBVIRT_DEFAULT_URI is unset
cmd := exec.CommandContext(ctx, path, "domcapabilities", "--virttype", "kvm")
cmd.Env = append(os.Environ(), fmt.Sprintf("LIBVIRT_DEFAULT_URI=%s", defaultURI()))
out, err := cmd.CombinedOutput()
if ctx.Err() == context.DeadlineExceeded {
return registry.State{
Installed: true,