The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/2386
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) === Switch to new logging functions.
From 2f5a1d04c8d30ce6d667b00de4f373c9d41cd93c Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 09:51:07 +0200 Subject: [PATCH 01/16] lxd/container_lxc: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/container_lxc.go | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/lxd/container_lxc.go b/lxd/container_lxc.go index 63c86c2..99e7d40 100644 --- a/lxd/container_lxc.go +++ b/lxd/container_lxc.go @@ -1233,7 +1233,7 @@ func (c *containerLXC) startCommon() (string, error) { /* it's ok to fail, the device might be hot plugged later */ _, err := c.createUnixDevice(temp) if err != nil { - shared.Log.Debug("failed to create usb device", log.Ctx{"err": err, "device": k}) + shared.LogDebug("failed to create usb device", log.Ctx{"err": err, "device": k}) continue } @@ -1504,7 +1504,7 @@ func (c *containerLXC) OnStart() error { c.fromHook = false err := c.setNetworkPriority() if err != nil { - shared.Log.Error("Failed to apply network priority", log.Ctx{"container": c.name, "err": err}) + shared.LogError("Failed to apply network priority", log.Ctx{"container": c.name, "err": err}) } }(c) } @@ -1524,7 +1524,7 @@ func (c *containerLXC) OnStart() error { c.fromHook = false err = c.setNetworkLimits(name, m) if err != nil { - shared.Log.Error("Failed to apply network limits", log.Ctx{"container": c.name, "err": err}) + shared.LogError("Failed to apply network limits", log.Ctx{"container": c.name, "err": err}) } }(c, name, m) } @@ -1666,13 +1666,13 @@ func (c *containerLXC) OnStop(target string) error { // Clean all the unix devices err = c.removeUnixDevices() if err != nil { - shared.Log.Error("Unable to remove unix devices", log.Ctx{"err": err}) + shared.LogError("Unable to remove unix devices", log.Ctx{"err": err}) } // Clean all the disk devices err = c.removeDiskDevices() if err != nil { - shared.Log.Error("Unable to remove disk devices", log.Ctx{"err": err}) + shared.LogError("Unable to remove disk devices", log.Ctx{"err": err}) } // Reboot the container @@ -1879,7 +1879,7 @@ func (c *containerLXC) Restore(sourceContainer container) error { if c.IsRunning() { wasRunning = true if err := c.Stop(false); err != nil { - shared.Log.Error( + shared.LogError( "Could not stop container", log.Ctx{ "container": c.Name(), @@ -1891,7 +1891,7 @@ func (c *containerLXC) Restore(sourceContainer container) error { // Restore the rootfs err = c.storage.ContainerRestore(c, sourceContainer) if err != nil { - shared.Log.Error("Restoring the filesystem failed", + shared.LogError("Restoring the filesystem failed", log.Ctx{ "source": sourceContainer.Name(), "destination": c.Name()}) @@ -1909,7 +1909,7 @@ func (c *containerLXC) Restore(sourceContainer container) error { err = c.Update(args, false) if err != nil { - shared.Log.Error("Restoring the configuration failed", + shared.LogError("Restoring the configuration failed", log.Ctx{ "source": sourceContainer.Name(), "destination": c.Name()}) @@ -1928,7 +1928,7 @@ func (c *containerLXC) Restore(sourceContainer container) error { // this in snapshots. err2 := os.RemoveAll(c.StatePath()) if err2 != nil { - shared.Log.Error("failed to delete snapshot state", "path", c.StatePath(), "err", err2) + shared.LogError("failed to delete snapshot state", log.Ctx{"path": c.StatePath(), "err": err2}) } if err != nil { @@ -1966,12 +1966,12 @@ func (c *containerLXC) Delete() error { if c.IsSnapshot() { // Remove the snapshot if err := c.storage.ContainerSnapshotDelete(c); err != nil { - shared.Log.Warn("failed to delete snapshot", "name", c.Name(), "err", err) + shared.LogWarn("failed to delete snapshot", log.Ctx{"name": c.Name(), "err": err}) } } else { // Remove all snapshot if err := containerDeleteSnapshots(c.daemon, c.Name()); err != nil { - shared.Log.Warn("failed to delete snapshots", "name", c.Name(), "err", err) + shared.LogWarn("failed to delete snapshots", log.Ctx{"name": c.Name(), "err": err}) } // Clean things up @@ -2617,7 +2617,7 @@ func (c *containerLXC) Update(args containerArgs, userRequested bool) error { err = c.insertUSBDevice(m, usb) if err != nil { - shared.Log.Error("failed to insert usb device", log.Ctx{"err": err, "usb": usb, "container": c.Name()}) + shared.LogError("failed to insert usb device", log.Ctx{"err": err, "usb": usb, "container": c.Name()}) } } } @@ -2905,7 +2905,7 @@ func (c *containerLXC) Migrate(cmd uint, stateDir string, function string, stop prettyCmd = "restore" default: prettyCmd = "unknown" - shared.Log.Warn("unknown migrate call", log.Ctx{"cmd": cmd}) + shared.LogWarn("unknown migrate call", log.Ctx{"cmd": cmd}) } preservesInodes := c.storage.PreservesInodes() @@ -3003,7 +3003,7 @@ func (c *containerLXC) Migrate(cmd uint, stateDir string, function string, stop collectErr := collectCRIULogFile(c, stateDir, function, prettyCmd) if collectErr != nil { - shared.Log.Error("Error collecting checkpoint log file", log.Ctx{"err": collectErr}) + shared.LogError("Error collecting checkpoint log file", log.Ctx{"err": collectErr}) } if migrateErr != nil { @@ -3505,7 +3505,7 @@ func (c *containerLXC) networkState() map[string]shared.ContainerStateNetwork { // Process forkgetnet response if err != nil { - shared.Log.Error("Error calling 'lxd forkgetnet", log.Ctx{"container": c.name, "output": string(out), "pid": pid}) + shared.LogError("Error calling 'lxd forkgetnet", log.Ctx{"container": c.name, "output": string(out), "pid": pid}) return result } @@ -3513,7 +3513,7 @@ func (c *containerLXC) networkState() map[string]shared.ContainerStateNetwork { err = json.Unmarshal(out, &networks) if err != nil { - shared.Log.Error("Failure to read forkgetnet json", log.Ctx{"container": c.name, "err": err}) + shared.LogError("Failure to read forkgetnet json", log.Ctx{"container": c.name, "err": err}) return result } @@ -4000,7 +4000,7 @@ func (c *containerLXC) removeUSBDevice(m shared.Device, usb usbDevice) error { err := c.removeUnixDevice(temp) if err != nil { - shared.Log.Error("failed to remove usb device", log.Ctx{"err": err, "usb": usb, "container": c.Name()}) + shared.LogError("failed to remove usb device", log.Ctx{"err": err, "usb": usb, "container": c.Name()}) return err } @@ -4036,7 +4036,7 @@ func (c *containerLXC) removeUnixDevices() error { devicePath := filepath.Join(c.DevicesPath(), f.Name()) err := os.Remove(devicePath) if err != nil { - shared.Log.Error("failed removing unix device", log.Ctx{"err": err, "path": devicePath}) + shared.LogError("failed removing unix device", log.Ctx{"err": err, "path": devicePath}) } } @@ -4496,7 +4496,7 @@ func (c *containerLXC) removeDiskDevices() error { diskPath := filepath.Join(c.DevicesPath(), f.Name()) err := os.Remove(diskPath) if err != nil { - shared.Log.Error("Failed to remove disk device path", log.Ctx{"err": err, "path": diskPath}) + shared.LogError("Failed to remove disk device path", log.Ctx{"err": err, "path": diskPath}) } } From 5777cab970aa5dc08ef25a15763ac8ccaa66f915 Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 09:52:38 +0200 Subject: [PATCH 02/16] lxd/container_put: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/container_put.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lxd/container_put.go b/lxd/container_put.go index 1b19cea..b6aca32 100644 --- a/lxd/container_put.go +++ b/lxd/container_put.go @@ -94,7 +94,7 @@ func containerSnapRestore(d *Daemon, name string, snap string) error { snap = name + shared.SnapshotDelimiter + snap } - shared.Log.Info( + shared.LogInfo( "RESTORE => Restoring snapshot", log.Ctx{ "snapshot": snap, @@ -102,7 +102,7 @@ func containerSnapRestore(d *Daemon, name string, snap string) error { c, err := containerLoadByName(d, name) if err != nil { - shared.Log.Error( + shared.LogError( "RESTORE => loadcontainerLXD() failed", log.Ctx{ "container": name, From 4bd0828484eb20edcd26adb4ea1cdb951af4fa0d Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 10:43:41 +0200 Subject: [PATCH 03/16] lxd/containers: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/containers.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/containers.go b/lxd/containers.go index 15c6526..39c3e02 100644 --- a/lxd/containers.go +++ b/lxd/containers.go @@ -177,7 +177,7 @@ func containersShutdown(d *Daemon) error { } func containerDeleteSnapshots(d *Daemon, cname string) error { - shared.Log.Debug("containerDeleteSnapshots", + shared.LogDebug("containerDeleteSnapshots", log.Ctx{"container": cname}) results, err := dbContainerGetSnapshots(d.db, cname) @@ -188,7 +188,7 @@ func containerDeleteSnapshots(d *Daemon, cname string) error { for _, sname := range results { sc, err := containerLoadByName(d, sname) if err != nil { - shared.Log.Error( + shared.LogError( "containerDeleteSnapshots: Failed to load the snapshotcontainer", log.Ctx{"container": cname, "snapshot": sname}) @@ -196,7 +196,7 @@ func containerDeleteSnapshots(d *Daemon, cname string) error { } if err := sc.Delete(); err != nil { - shared.Log.Error( + shared.LogError( "containerDeleteSnapshots: Failed to delete a snapshotcontainer", log.Ctx{"container": cname, "snapshot": sname, "err": err}) } From 2ace6bad04bfee9a8f3c6463c2f18f62f0792d98 Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 10:49:03 +0200 Subject: [PATCH 04/16] lxd/daemon: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/daemon.go | 94 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/lxd/daemon.go b/lxd/daemon.go index e8e7f3e..5636a46 100644 --- a/lxd/daemon.go +++ b/lxd/daemon.go @@ -218,7 +218,7 @@ func (d *Daemon) httpGetFile(url string, certificate string) (*http.Response, er func readMyCert() (string, string, error) { certf := shared.VarPath("server.crt") keyf := shared.VarPath("server.key") - shared.Log.Info("Looking for existing certificates", log.Ctx{"cert": certf, "key": keyf}) + shared.LogInfo("Looking for existing certificates", log.Ctx{"cert": certf, "key": keyf}) err := shared.FindOrGenCert(certf, keyf) return certf, keyf, err @@ -277,19 +277,19 @@ func (d *Daemon) createCmd(version string, c Command) { w.Header().Set("Content-Type", "application/json") if d.isTrustedClient(r) { - shared.Log.Info( + shared.LogInfo( "handling", log.Ctx{"method": r.Method, "url": r.URL.RequestURI(), "ip": r.RemoteAddr}) } else if r.Method == "GET" && c.untrustedGet { - shared.Log.Info( + shared.LogInfo( "allowing untrusted GET", log.Ctx{"url": r.URL.RequestURI(), "ip": r.RemoteAddr}) } else if r.Method == "POST" && c.untrustedPost { - shared.Log.Info( + shared.LogInfo( "allowing untrusted POST", log.Ctx{"url": r.URL.RequestURI(), "ip": r.RemoteAddr}) } else { - shared.Log.Warn( + shared.LogWarn( "rejecting request from untrusted client", log.Ctx{"ip": r.RemoteAddr}) Forbidden.Render(w) @@ -340,7 +340,7 @@ func (d *Daemon) createCmd(version string, c Command) { if err := resp.Render(w); err != nil { err := InternalError(err).Render(w) if err != nil { - shared.Log.Error("Failed writing error for error, giving up") + shared.LogErrorf("Failed writing error for error, giving up") } } @@ -573,13 +573,13 @@ func (d *Daemon) Init() error { /* Print welcome message */ if d.MockMode { - shared.Log.Info("LXD is starting in mock mode", + shared.LogInfo("LXD is starting in mock mode", log.Ctx{"path": shared.VarPath("")}) } else if d.SetupMode { - shared.Log.Info("LXD is starting in setup mode", + shared.LogInfo("LXD is starting in setup mode", log.Ctx{"path": shared.VarPath("")}) } else { - shared.Log.Info("LXD is starting in normal mode", + shared.LogInfo("LXD is starting in normal mode", log.Ctx{"path": shared.VarPath("")}) } @@ -590,31 +590,31 @@ func (d *Daemon) Init() error { if aaAvailable && os.Getenv("LXD_SECURITY_APPARMOR") == "false" { aaAvailable = false aaAdmin = false - shared.Log.Warn("AppArmor support has been manually disabled") + shared.LogWarnf("AppArmor support has been manually disabled") } if aaAvailable && !shared.IsDir("/sys/kernel/security/apparmor") { aaAvailable = false aaAdmin = false - shared.Log.Warn("AppArmor support has been disabled because of lack of kernel support") + shared.LogWarnf("AppArmor support has been disabled because of lack of kernel support") } _, err = exec.LookPath("apparmor_parser") if aaAvailable && err != nil { aaAvailable = false aaAdmin = false - shared.Log.Warn("AppArmor support has been disabled because 'apparmor_parser' couldn't be found") + shared.LogWarnf("AppArmor support has been disabled because 'apparmor_parser' couldn't be found") } /* Detect AppArmor admin support */ if aaAdmin && !haveMacAdmin() { aaAdmin = false - shared.Log.Warn("Per-container AppArmor profiles are disabled because the mac_admin capability is missing.") + shared.LogWarnf("Per-container AppArmor profiles are disabled because the mac_admin capability is missing.") } if aaAdmin && runningInUserns { aaAdmin = false - shared.Log.Warn("Per-container AppArmor profiles are disabled because LXD is running in an unprivileged container.") + shared.LogWarnf("Per-container AppArmor profiles are disabled because LXD is running in an unprivileged container.") } /* Detect AppArmor confinment */ @@ -622,54 +622,54 @@ func (d *Daemon) Init() error { profile := aaProfile() if profile != "unconfined" && profile != "" { aaConfined = true - shared.Log.Warn("Per-container AppArmor profiles are disabled because LXD is already protected by AppArmor.") + shared.LogWarnf("Per-container AppArmor profiles are disabled because LXD is already protected by AppArmor.") } } /* Detect CGroup support */ cgBlkioController = shared.PathExists("/sys/fs/cgroup/blkio/") if !cgBlkioController { - shared.Log.Warn("Couldn't find the CGroup blkio controller, I/O limits will be ignored.") + shared.LogWarnf("Couldn't find the CGroup blkio controller, I/O limits will be ignored.") } cgCpuController = shared.PathExists("/sys/fs/cgroup/cpu/") if !cgCpuController { - shared.Log.Warn("Couldn't find the CGroup CPU controller, CPU time limits will be ignored.") + shared.LogWarnf("Couldn't find the CGroup CPU controller, CPU time limits will be ignored.") } cgCpuacctController = shared.PathExists("/sys/fs/cgroup/cpuacct/") if !cgCpuacctController { - shared.Log.Warn("Couldn't find the CGroup CPUacct controller, CPU accounting will not be available.") + shared.LogWarnf("Couldn't find the CGroup CPUacct controller, CPU accounting will not be available.") } cgCpusetController = shared.PathExists("/sys/fs/cgroup/cpuset/") if !cgCpusetController { - shared.Log.Warn("Couldn't find the CGroup CPUset controller, CPU pinning will be ignored.") + shared.LogWarnf("Couldn't find the CGroup CPUset controller, CPU pinning will be ignored.") } cgDevicesController = shared.PathExists("/sys/fs/cgroup/devices/") if !cgDevicesController { - shared.Log.Warn("Couldn't find the CGroup devices controller, device access control won't work.") + shared.LogWarnf("Couldn't find the CGroup devices controller, device access control won't work.") } cgMemoryController = shared.PathExists("/sys/fs/cgroup/memory/") if !cgMemoryController { - shared.Log.Warn("Couldn't find the CGroup memory controller, memory limits will be ignored.") + shared.LogWarnf("Couldn't find the CGroup memory controller, memory limits will be ignored.") } cgNetPrioController = shared.PathExists("/sys/fs/cgroup/net_prio/") if !cgNetPrioController { - shared.Log.Warn("Couldn't find the CGroup network class controller, network limits will be ignored.") + shared.LogWarnf("Couldn't find the CGroup network class controller, network limits will be ignored.") } cgPidsController = shared.PathExists("/sys/fs/cgroup/pids/") if !cgPidsController { - shared.Log.Warn("Couldn't find the CGroup pids controller, process limits will be ignored.") + shared.LogWarnf("Couldn't find the CGroup pids controller, process limits will be ignored.") } cgSwapAccounting = shared.PathExists("/sys/fs/cgroup/memory/memory.memsw.limit_in_bytes") if !cgSwapAccounting { - shared.Log.Warn("CGroup memory swap accounting is disabled, swap limits will be ignored.") + shared.LogWarnf("CGroup memory swap accounting is disabled, swap limits will be ignored.") } /* Get the list of supported architectures */ @@ -727,18 +727,18 @@ func (d *Daemon) Init() error { /* Detect the filesystem */ d.BackingFs, err = filesystemDetect(d.lxcpath) if err != nil { - shared.Log.Error("Error detecting backing fs", log.Ctx{"err": err}) + shared.LogError("Error detecting backing fs", log.Ctx{"err": err}) } /* Read the uid/gid allocation */ d.IdmapSet, err = shared.DefaultIdmapSet() if err != nil { - shared.Log.Warn("Error reading idmap", log.Ctx{"err": err.Error()}) - shared.Log.Warn("Only privileged containers will be able to run") + shared.LogWarn("Error reading idmap", log.Ctx{"err": err.Error()}) + shared.LogWarnf("Only privileged containers will be able to run") } else { - shared.Log.Info("Default uid/gid map:") + shared.LogInfof("Default uid/gid map:") for _, lxcmap := range d.IdmapSet.ToLxcString() { - shared.Log.Info(strings.TrimRight(" - "+lxcmap, "\n")) + shared.LogInfof(strings.TrimRight(" - "+lxcmap, "\n")) } } @@ -776,7 +776,7 @@ func (d *Daemon) Init() error { err := d.ExpireLogs() if err != nil { - shared.Log.Error("Failed to expire logs", log.Ctx{"err": err}) + shared.LogError("Failed to expire logs", log.Ctx{"err": err}) } shared.LogDebugf("Done expiring log files") @@ -835,7 +835,7 @@ func (d *Daemon) Init() error { tlsConfig.RootCAs = caPool tlsConfig.ClientCAs = caPool - shared.Log.Info("LXD is in CA mode, only CA-signed certificates will be allowed") + shared.LogInfof("LXD is in CA mode, only CA-signed certificates will be allowed") } tlsConfig.BuildNameToCertificate() @@ -863,14 +863,14 @@ func (d *Daemon) Init() error { } d.mux.NotFoundHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - shared.Log.Debug("Sending top level 404", log.Ctx{"url": r.URL}) + shared.LogDebug("Sending top level 404", log.Ctx{"url": r.URL}) w.Header().Set("Content-Type", "application/json") NotFound.Render(w) }) listeners := d.GetListeners() if len(listeners) > 0 { - shared.Log.Info("LXD is socket activated") + shared.LogInfof("LXD is socket activated") for _, listener := range listeners { if shared.PathExists(listener.Addr().String()) { @@ -881,7 +881,7 @@ func (d *Daemon) Init() error { } } } else { - shared.Log.Info("LXD isn't socket activated") + shared.LogInfof("LXD isn't socket activated") localSocketPath := shared.VarPath("unix.socket") @@ -890,7 +890,7 @@ func (d *Daemon) Init() error { if shared.PathExists(localSocketPath) { _, err := lxd.NewClient(&lxd.DefaultConfig, "local") if err != nil { - shared.Log.Debug("Detected stale unix socket, deleting") + shared.LogDebugf("Detected stale unix socket, deleting") // Connecting failed, so let's delete the socket and // listen on it ourselves. err = os.Remove(localSocketPath) @@ -942,10 +942,10 @@ func (d *Daemon) Init() error { tcpl, err := tls.Listen("tcp", listenAddr, d.tlsConfig) if err != nil { - shared.Log.Error("cannot listen on https socket, skipping...", log.Ctx{"err": err}) + shared.LogError("cannot listen on https socket, skipping...", log.Ctx{"err": err}) } else { if d.TCPSocket != nil { - shared.Log.Info("Replacing inherited TCP socket with configured one") + shared.LogInfof("Replacing inherited TCP socket with configured one") d.TCPSocket.Socket.Close() } d.TCPSocket = &Socket{Socket: tcpl, CloseOnExit: true} @@ -953,14 +953,14 @@ func (d *Daemon) Init() error { } d.tomb.Go(func() error { - shared.Log.Info("REST API daemon:") + shared.LogInfof("REST API daemon:") if d.UnixSocket != nil { - shared.Log.Info(" - binding Unix socket", log.Ctx{"socket": d.UnixSocket.Socket.Addr()}) + shared.LogInfo(" - binding Unix socket", log.Ctx{"socket": d.UnixSocket.Socket.Addr()}) d.tomb.Go(func() error { return http.Serve(d.UnixSocket.Socket, &lxdHttpServer{d.mux, d}) }) } if d.TCPSocket != nil { - shared.Log.Info(" - binding TCP socket", log.Ctx{"socket": d.TCPSocket.Socket.Addr()}) + shared.LogInfo(" - binding TCP socket", log.Ctx{"socket": d.TCPSocket.Socket.Addr()}) d.tomb.Go(func() error { return http.Serve(d.TCPSocket.Socket, &lxdHttpServer{d.mux, d}) }) } @@ -1042,7 +1042,7 @@ func (d *Daemon) Ready() error { func (d *Daemon) CheckTrustState(cert x509.Certificate) bool { for k, v := range d.clientCerts { if bytes.Compare(cert.Raw, v.Raw) == 0 { - shared.Log.Debug("Found cert", log.Ctx{"k": k}) + shared.LogDebug("Found cert", log.Ctx{"k": k}) return true } } @@ -1078,33 +1078,33 @@ func (d *Daemon) Stop() error { forceStop := false d.tomb.Kill(errStop) - shared.Log.Info("Stopping REST API handler:") + shared.LogInfof("Stopping REST API handler:") for _, socket := range []*Socket{d.TCPSocket, d.UnixSocket} { if socket == nil { continue } if socket.CloseOnExit { - shared.Log.Info(" - closing socket", log.Ctx{"socket": socket.Socket.Addr()}) + shared.LogInfo(" - closing socket", log.Ctx{"socket": socket.Socket.Addr()}) socket.Socket.Close() } else { - shared.Log.Info(" - skipping socket-activated socket", log.Ctx{"socket": socket.Socket.Addr()}) + shared.LogInfo(" - skipping socket-activated socket", log.Ctx{"socket": socket.Socket.Addr()}) forceStop = true } } if n, err := d.numRunningContainers(); err != nil || n == 0 { - shared.Log.Debug("Unmounting shmounts") + shared.LogDebugf("Unmounting shmounts") syscall.Unmount(shared.VarPath("shmounts"), syscall.MNT_DETACH) } else { shared.LogDebugf("Not unmounting shmounts (containers are still running)") } - shared.Log.Debug("Closing the database") + shared.LogDebugf("Closing the database") d.db.Close() - shared.Log.Debug("Stopping /dev/lxd handler") + shared.LogDebugf("Stopping /dev/lxd handler") d.devlxd.Close() if d.MockMode || forceStop { From 0a8cd657deb58db60919aeac51ac67311ec4551a Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 10:49:31 +0200 Subject: [PATCH 05/16] lxd/daemon_config: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/daemon_config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/daemon_config.go b/lxd/daemon_config.go index 473054c..ccc30d9 100644 --- a/lxd/daemon_config.go +++ b/lxd/daemon_config.go @@ -198,7 +198,7 @@ func daemonConfigInit(db *sql.DB) error { for k, v := range dbValues { _, ok := daemonConfig[k] if !ok { - shared.Log.Error("Found invalid configuration key in database", log.Ctx{"key": k}) + shared.LogError("Found invalid configuration key in database", log.Ctx{"key": k}) } daemonConfig[k].currentValue = v From fcd89d3a726526fc8e3ecdfae84d8adf6869534a Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 10:51:29 +0200 Subject: [PATCH 06/16] lxd/daemon_images: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/daemon_images.go | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/lxd/daemon_images.go b/lxd/daemon_images.go index ed1c763..887450c 100644 --- a/lxd/daemon_images.go +++ b/lxd/daemon_images.go @@ -77,12 +77,12 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce } if _, _, err := dbImageGet(d.db, fp, false, false); err == nil { - shared.Log.Debug("Image already exists in the db", log.Ctx{"image": fp}) + shared.LogDebug("Image already exists in the db", log.Ctx{"image": fp}) // already have it return fp, nil } - shared.Log.Info( + shared.LogInfo( "Image not in the db, downloading it", log.Ctx{"image": fp, "server": server}) @@ -92,24 +92,24 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce // We already download the image d.imagesDownloadingLock.RUnlock() - shared.Log.Info( + shared.LogInfo( "Already downloading the image, waiting for it to succeed", log.Ctx{"image": fp}) // Wait until the download finishes (channel closes) if _, ok := <-waitChannel; ok { - shared.Log.Warn("Value transmitted over image lock semaphore?") + shared.LogWarnf("Value transmitted over image lock semaphore?") } if _, _, err := dbImageGet(d.db, fp, false, true); err != nil { - shared.Log.Error( + shared.LogError( "Previous download didn't succeed", log.Ctx{"image": fp}) return "", fmt.Errorf("Previous download didn't succeed") } - shared.Log.Info( + shared.LogInfo( "Previous download succeeded", log.Ctx{"image": fp}) @@ -118,7 +118,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce d.imagesDownloadingLock.RUnlock() - shared.Log.Info( + shared.LogInfo( "Downloading the image", log.Ctx{"image": fp}) @@ -179,7 +179,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce resp, err := d.httpGetSync(url, certificate) if err != nil { - shared.Log.Error( + shared.LogError( "Failed to download image metadata", log.Ctx{"image": fp, "err": err}) @@ -246,7 +246,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce raw, err := d.httpGetFile(exporturl, certificate) if err != nil { - shared.Log.Error( + shared.LogError( "Failed to download image", log.Ctx{"image": fp, "err": err}) return "", err @@ -267,7 +267,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce // Get the metadata tarball part, err := mr.NextPart() if err != nil { - shared.Log.Error( + shared.LogError( "Invalid multipart image", log.Ctx{"image": fp, "err": err}) @@ -275,7 +275,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce } if part.FormName() != "metadata" { - shared.Log.Error( + shared.LogError( "Invalid multipart image", log.Ctx{"image": fp, "err": err}) @@ -285,7 +285,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce destName = filepath.Join(destDir, info.Fingerprint) f, err := os.Create(destName) if err != nil { - shared.Log.Error( + shared.LogError( "Failed to save image", log.Ctx{"image": fp, "err": err}) @@ -296,7 +296,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce f.Close() if err != nil { - shared.Log.Error( + shared.LogError( "Failed to save image", log.Ctx{"image": fp, "err": err}) @@ -306,7 +306,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce // Get the rootfs tarball part, err = mr.NextPart() if err != nil { - shared.Log.Error( + shared.LogError( "Invalid multipart image", log.Ctx{"image": fp, "err": err}) @@ -314,7 +314,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce } if part.FormName() != "rootfs" { - shared.Log.Error( + shared.LogError( "Invalid multipart image", log.Ctx{"image": fp}) return "", fmt.Errorf("Invalid multipart image") @@ -323,7 +323,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce destName = filepath.Join(destDir, info.Fingerprint+".rootfs") f, err = os.Create(destName) if err != nil { - shared.Log.Error( + shared.LogError( "Failed to save image", log.Ctx{"image": fp, "err": err}) return "", err @@ -333,7 +333,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce f.Close() if err != nil { - shared.Log.Error( + shared.LogError( "Failed to save image", log.Ctx{"image": fp, "err": err}) return "", err @@ -343,7 +343,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce f, err := os.Create(destName) if err != nil { - shared.Log.Error( + shared.LogError( "Failed to save image", log.Ctx{"image": fp, "err": err}) @@ -354,7 +354,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce f.Close() if err != nil { - shared.Log.Error( + shared.LogError( "Failed to save image", log.Ctx{"image": fp, "err": err}) return "", err @@ -382,7 +382,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce _, err = imageBuildFromInfo(d, info) if err != nil { - shared.Log.Error( + shared.LogError( "Failed to create image", log.Ctx{"image": fp, "err": err}) @@ -401,7 +401,7 @@ func (d *Daemon) ImageDownload(op *operation, server string, protocol string, ce } } - shared.Log.Info( + shared.LogInfo( "Download succeeded", log.Ctx{"image": fp}) From 2ac3b0f194f9f2981881350f48f97d43fcf1307f Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 10:53:04 +0200 Subject: [PATCH 07/16] lxd/db_containers: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/db_containers.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/db_containers.go b/lxd/db_containers.go index 059bcf6..7d82fa2 100644 --- a/lxd/db_containers.go +++ b/lxd/db_containers.go @@ -346,7 +346,7 @@ func dbContainerRename(db *sql.DB, oldName string, newName string) error { } defer stmt.Close() - shared.Log.Debug( + shared.LogDebug( "Calling SQL Query", log.Ctx{ "query": "UPDATE containers SET name = ? WHERE name = ?", From 82a332968e9f3f44d7f95a83b44ca9cf67141726 Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 10:55:59 +0200 Subject: [PATCH 08/16] lxd/db_update: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/db_update.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/db_update.go b/lxd/db_update.go index 6c90c7d..1aba65d 100644 --- a/lxd/db_update.go +++ b/lxd/db_update.go @@ -102,7 +102,7 @@ func dbUpdatesApplyAll(d *Daemon) error { } if !backup { - shared.Log.Info("Updating the LXD database schema. Backup made as \"lxd.db.bak\"") + shared.LogInfof("Updating the LXD database schema. Backup made as \"lxd.db.bak\"") err := shared.FileCopy(shared.VarPath("lxd.db"), shared.VarPath("lxd.db.bak")) if err != nil { return err From adf4057e2f107396874fc41603fc452711eaca2b Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 10:58:46 +0200 Subject: [PATCH 09/16] lxd/devices: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/devices.go | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/lxd/devices.go b/lxd/devices.go index 2324351..652c6b3 100644 --- a/lxd/devices.go +++ b/lxd/devices.go @@ -218,7 +218,7 @@ func deviceNetlinkListener() (chan []string, chan []string, chan usbDevice, erro devnum, ) if err != nil { - shared.Log.Error("error reading usb device", log.Ctx{"err": err, "path": props["PHYSDEVPATH"]}) + shared.LogError("error reading usb device", log.Ctx{"err": err, "path": props["PHYSDEVPATH"]}) continue } @@ -286,24 +286,24 @@ func deviceTaskBalance(d *Daemon) { // Older kernel - use cpuset.cpus effectiveCpus, err = cGroupGet("cpuset", "/", "cpuset.cpus") if err != nil { - shared.Log.Error("Error reading host's cpuset.cpus") + shared.LogErrorf("Error reading host's cpuset.cpus") return } } err = cGroupSet("cpuset", "/lxc", "cpuset.cpus", effectiveCpus) if err != nil && shared.PathExists("/sys/fs/cgroup/cpuset/lxc") { - shared.Log.Warn("Error setting lxd's cpuset.cpus", log.Ctx{"err": err}) + shared.LogWarn("Error setting lxd's cpuset.cpus", log.Ctx{"err": err}) } cpus, err := parseCpuset(effectiveCpus) if err != nil { - shared.Log.Error("Error parsing host's cpu set", log.Ctx{"cpuset": effectiveCpus, "err": err}) + shared.LogError("Error parsing host's cpu set", log.Ctx{"cpuset": effectiveCpus, "err": err}) return } // Iterate through the containers containers, err := dbContainersList(d.db, cTypeRegular) if err != nil { - shared.Log.Error("problem loading containers list", log.Ctx{"err": err}) + shared.LogError("problem loading containers list", log.Ctx{"err": err}) return } fixedContainers := map[int][]container{} @@ -367,7 +367,7 @@ func deviceTaskBalance(d *Daemon) { for cpu, ctns := range fixedContainers { c, ok := usage[cpu] if !ok { - shared.Log.Error("Internal error: container using unavailable cpu") + shared.LogErrorf("Internal error: container using unavailable cpu") continue } id := c.strId @@ -416,7 +416,7 @@ func deviceTaskBalance(d *Daemon) { sort.Strings(set) err := ctn.CGroupSet("cpuset.cpus", strings.Join(set, ",")) if err != nil { - shared.Log.Error("balance: Unable to set cpuset", log.Ctx{"name": ctn.Name(), "err": err, "value": strings.Join(set, ",")}) + shared.LogError("balance: Unable to set cpuset", log.Ctx{"name": ctn.Name(), "err": err, "value": strings.Join(set, ",")}) } } } @@ -460,7 +460,7 @@ func deviceNetworkPriority(d *Daemon, netif string) { func deviceUSBEvent(d *Daemon, usb usbDevice) { containers, err := dbContainersList(d.db, cTypeRegular) if err != nil { - shared.Log.Error("problem loading containers list", log.Ctx{"err": err}) + shared.LogError("problem loading containers list", log.Ctx{"err": err}) return } @@ -472,7 +472,7 @@ func deviceUSBEvent(d *Daemon, usb usbDevice) { c, ok := containerIf.(*containerLXC) if !ok { - shared.Log.Error("got device event on non-LXC container?") + shared.LogErrorf("got device event on non-LXC container?") return } @@ -494,17 +494,17 @@ func deviceUSBEvent(d *Daemon, usb usbDevice) { if usb.action == "add" { err := c.insertUSBDevice(m, usb) if err != nil { - shared.Log.Error("failed to create usb device", log.Ctx{"err": err, "usb": usb, "container": c.Name()}) + shared.LogError("failed to create usb device", log.Ctx{"err": err, "usb": usb, "container": c.Name()}) return } } else if usb.action == "remove" { err := c.removeUSBDevice(m, usb) if err != nil { - shared.Log.Error("failed to remove usb device", log.Ctx{"err": err, "usb": usb, "container": c.Name()}) + shared.LogError("failed to remove usb device", log.Ctx{"err": err, "usb": usb, "container": c.Name()}) return } } else { - shared.Log.Error("unknown action for usb device", log.Ctx{"usb": usb}) + shared.LogError("unknown action for usb device", log.Ctx{"usb": usb}) continue } } @@ -514,7 +514,7 @@ func deviceUSBEvent(d *Daemon, usb usbDevice) { func deviceEventListener(d *Daemon) { chNetlinkCPU, chNetlinkNetwork, chUSB, err := deviceNetlinkListener() if err != nil { - shared.Log.Error("scheduler: couldn't setup netlink listener") + shared.LogErrorf("scheduler: couldn't setup netlink listener") return } @@ -522,7 +522,7 @@ func deviceEventListener(d *Daemon) { select { case e := <-chNetlinkCPU: if len(e) != 2 { - shared.Log.Error("Scheduler: received an invalid cpu hotplug event") + shared.LogErrorf("Scheduler: received an invalid cpu hotplug event") continue } @@ -534,7 +534,7 @@ func deviceEventListener(d *Daemon) { deviceTaskBalance(d) case e := <-chNetlinkNetwork: if len(e) != 2 { - shared.Log.Error("Scheduler: received an invalid network hotplug event") + shared.LogErrorf("Scheduler: received an invalid network hotplug event") continue } @@ -548,7 +548,7 @@ func deviceEventListener(d *Daemon) { deviceUSBEvent(d, e) case e := <-deviceSchedRebalance: if len(e) != 3 { - shared.Log.Error("Scheduler: received an invalid rebalance event") + shared.LogErrorf("Scheduler: received an invalid rebalance event") continue } From 03ca42fc11b5eaeee3dd6dffa4bf9b1664992e43 Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 11:25:58 +0200 Subject: [PATCH 10/16] lxd/main: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/main.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lxd/main.go b/lxd/main.go index 832693f..d464cfe 100644 --- a/lxd/main.go +++ b/lxd/main.go @@ -374,8 +374,7 @@ func cmdDaemon() error { signal.Notify(ch, syscall.SIGPWR) sig := <-ch - shared.Log.Info( - fmt.Sprintf("Received '%s signal', shutting down containers.", sig)) + shared.LogInfof("Received '%s signal', shutting down containers.", sig) containersShutdown(d) @@ -386,8 +385,7 @@ func cmdDaemon() error { go func() { <-d.shutdownChan - shared.Log.Info( - fmt.Sprintf("Asked to shutdown by API, shutting down containers.")) + shared.LogInfof("Asked to shutdown by API, shutting down containers.") containersShutdown(d) @@ -402,7 +400,7 @@ func cmdDaemon() error { signal.Notify(ch, syscall.SIGTERM) sig := <-ch - shared.Log.Info(fmt.Sprintf("Received '%s signal', exiting.", sig)) + shared.LogInfof("Received '%s signal', exiting.", sig) ret = d.Stop() wg.Done() }() From 2d5425d31204143dd548b46d0329ebbeeb3d5e34 Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 11:27:54 +0200 Subject: [PATCH 11/16] lxd/patches: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/patches.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/patches.go b/lxd/patches.go index 4d7f0f0..3d303dd 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -95,7 +95,7 @@ func patchInvalidProfileNames(name string, d *Daemon) error { for _, profile := range profiles { if strings.Contains(profile, "/") || shared.StringInSlice(profile, []string{".", ".."}) { - shared.Log.Info("Removing unreachable profile (invalid name)", log.Ctx{"name": profile}) + shared.LogInfo("Removing unreachable profile (invalid name)", log.Ctx{"name": profile}) err := dbProfileDelete(d.db, profile) if err != nil { return err From ed197dbc2ac5a5418426f468fc57b9df171fc8f4 Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 11:29:51 +0200 Subject: [PATCH 12/16] lxd/profiles: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/profiles.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lxd/profiles.go b/lxd/profiles.go index bf3fdff..a76e612 100644 --- a/lxd/profiles.go +++ b/lxd/profiles.go @@ -43,7 +43,7 @@ func profilesGet(d *Daemon, r *http.Request) Response { } else { profile, err := doProfileGet(d, name) if err != nil { - shared.Log.Error("Failed to get profile", log.Ctx{"profile": name}) + shared.LogError("Failed to get profile", log.Ctx{"profile": name}) continue } resultMap[i] = profile @@ -134,7 +134,7 @@ func getRunningContainersWithProfile(d *Daemon, profile string) []container { for _, name := range output { c, err := containerLoadByName(d, name) if err != nil { - shared.Log.Error("Failed opening container", log.Ctx{"container": name}) + shared.LogError("Failed opening container", log.Ctx{"container": name}) continue } results = append(results, c) From 76386b4ca537af620bc508198378e0a133bc8624 Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 11:35:48 +0200 Subject: [PATCH 13/16] lxd/storage: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/storage.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/storage.go b/lxd/storage.go index 7b6f9ac..a660dde 100644 --- a/lxd/storage.go +++ b/lxd/storage.go @@ -309,7 +309,7 @@ func (ss *storageShared) shiftRootfs(c container) error { dpath := c.Path() rpath := c.RootfsPath() - shared.Log.Debug("Shifting root filesystem", + shared.LogDebug("Shifting root filesystem", log.Ctx{"container": c.Name(), "rootfs": rpath}) idmapset := c.IdmapSet() From 5a619cee3967cd02729547f99432cef49a782327 Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 11:37:59 +0200 Subject: [PATCH 14/16] lxd/storage_btrfs: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/storage_btrfs.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/storage_btrfs.go b/lxd/storage_btrfs.go index 9e6621d..16308f6 100644 --- a/lxd/storage_btrfs.go +++ b/lxd/storage_btrfs.go @@ -1033,7 +1033,7 @@ func (s *storageBtrfs) MigrationSink(live bool, container container, snapshots [ err = cmd.Wait() if err != nil { - shared.Log.Error("problem with btrfs receive", log.Ctx{"output": string(output)}) + shared.LogError("problem with btrfs receive", log.Ctx{"output": string(output)}) return err } @@ -1042,13 +1042,13 @@ func (s *storageBtrfs) MigrationSink(live bool, container container, snapshots [ err := s.subvolSnapshot(cPath, targetPath, false) if err != nil { - shared.Log.Error("problem with btrfs snapshot", log.Ctx{"err": err}) + shared.LogError("problem with btrfs snapshot", log.Ctx{"err": err}) return err } err = s.subvolsDelete(cPath) if err != nil { - shared.Log.Error("problem with btrfs delete", log.Ctx{"err": err}) + shared.LogError("problem with btrfs delete", log.Ctx{"err": err}) return err } } From 41c00cdf0310503a8c4301ed2a286414c31ee54f Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 11:44:28 +0200 Subject: [PATCH 15/16] lxd/storage_lvm: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/storage_lvm.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/storage_lvm.go b/lxd/storage_lvm.go index 2964346..3f8fc5d 100644 --- a/lxd/storage_lvm.go +++ b/lxd/storage_lvm.go @@ -20,7 +20,7 @@ import ( func storageLVMCheckVolumeGroup(vgName string) error { output, err := exec.Command("vgdisplay", "-s", vgName).CombinedOutput() if err != nil { - shared.Log.Debug("vgdisplay failed to find vg", log.Ctx{"output": string(output)}) + shared.LogDebug("vgdisplay failed to find vg", log.Ctx{"output": string(output)}) return fmt.Errorf("LVM volume group '%s' not found", vgName) } @@ -557,7 +557,7 @@ func (s *storageLvm) createSnapshotContainer( srcName := containerNameToLVName(sourceContainer.Name()) destName := containerNameToLVName(snapshotContainer.Name()) - shared.Log.Debug( + shared.LogDebug( "Creating snapshot", log.Ctx{"srcName": srcName, "destName": destName}) @@ -649,7 +649,7 @@ func (s *storageLvm) ContainerSnapshotStart(container container) error { srcName := containerNameToLVName(container.Name()) destName := containerNameToLVName(container.Name() + "/rw") - shared.Log.Debug( + shared.LogDebug( "Creating snapshot", log.Ctx{"srcName": srcName, "destName": destName}) From 370ced5debca070de390d74b67e6171a3b6949fd Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@canonical.com> Date: Fri, 16 Sep 2016 11:47:19 +0200 Subject: [PATCH 16/16] lxd/storage_zfs: switch to new logging functions Signed-off-by: Christian Brauner <christian.brau...@canonical.com> --- lxd/storage_zfs.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lxd/storage_zfs.go b/lxd/storage_zfs.go index 39d33bd..9457c88 100644 --- a/lxd/storage_zfs.go +++ b/lxd/storage_zfs.go @@ -1250,12 +1250,12 @@ func (s *zfsMigrationSourceDriver) send(conn *websocket.Conn, zfsName string, zf output, err := ioutil.ReadAll(stderr) if err != nil { - shared.Log.Error("problem reading zfs send stderr", "err", err) + shared.LogError("problem reading zfs send stderr", log.Ctx{"err": err}) } err = cmd.Wait() if err != nil { - shared.Log.Error("problem with zfs send", "output", string(output)) + shared.LogError("problem with zfs send", log.Ctx{"output": string(output)}) } return err @@ -1397,12 +1397,12 @@ func (s *storageZfs) MigrationSink(live bool, container container, snapshots []c output, err := ioutil.ReadAll(stderr) if err != nil { - shared.LogDebugf("problem reading zfs recv stderr %s", "err", err) + shared.LogDebug("problem reading zfs recv stderr %s", log.Ctx{"err": err}) } err = cmd.Wait() if err != nil { - shared.Log.Error("problem with zfs recv", "output", string(output)) + shared.LogError("problem with zfs recv", log.Ctx{"output": string(output)}) } return err } @@ -1441,7 +1441,7 @@ func (s *storageZfs) MigrationSink(live bool, container container, snapshots []c /* clean up our migration-send snapshots that we got from recv. */ zfsSnapshots, err := s.zfsListSnapshots(fmt.Sprintf("containers/%s", container.Name())) if err != nil { - shared.Log.Error("failed listing snapshots post migration", "err", err) + shared.LogError("failed listing snapshots post migration", log.Ctx{"err": err}) return }
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel