tests: lxd console code breaks when using lxd as snap

Bug #1745663 reported by Joshua Powers on 2018-01-26
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cloud-init
Medium
Unassigned

Bug Description

Running the integration tests using the lxd backend fails when lxd is installed as a snap:
https://paste.ubuntu.com/26465769/

The failure is a result of the tests/cloud_tests/platforms/lxd.py:_setup_console_log() function attempting to modify the configuration:

49 cfg = "lxc.console.logfile=%s" % logf
50 orig = self._pylxd_container.config.get('raw.lxc', "")
51 if orig:
52 orig += "\n"
53 self._pylxd_container.config['raw.lxc'] = orig + cfg

LXD logs: https://paste.ubuntu.com/26465860/
My lxd setup/config: https://paste.ubuntu.com/26465838/

The specific issue I believe is that LXD as a snap is confined and does not have access to /tmp (need to confirm this) hence the error message:

console.c:lxc_console_create:561 - No such file or directory - failed to open console log file "/tmp/LXDInstance-cloud-test-ubuntu-xenial-image-modification-em88d5kzvxzdrzsgod029n8iztb/console.log"

Related branches

Joshua Powers (powersj) on 2018-01-26
description: updated
Scott Moser (smoser) wrote :

I talked with stgraber.
We have a couple options:
a.) if installed from snap, use
   some path down /var/snap/lxd as a console log path
  /var/snap/lxd/common/consoles (chmod 1777) or
  /var/snap/lxd/common/lxd/logs/CONTAINER-NAME/console.log

b.) use console --show-log
this requires liblxc > 3.0.

We could put into place code that did 'a' when it needed to (util.which('lxc').startswith('/snap')) and used 'b' if it could.

Scott Moser (smoser) on 2018-02-09
Changed in cloud-init:
status: New → Confirmed
importance: Undecided → Medium

This bug is believed to be fixed in cloud-init in 18.1. If this is still a problem for you, please make a comment and set the state back to New

Thank you.

Changed in cloud-init:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers