[Bug 2080277] Re: FFe: lxd-installer should prompt before installing LXD

Launchpad Bug Tracker 2080277 at bugs.launchpad.net
Wed Sep 11 09:16:15 UTC 2024


This bug was fixed in the package lxd-installer - 8

---------------
lxd-installer (8) oracular; urgency=medium

  * scripts/lxc: ask before proceeding if interactive (LP: #2073941, LP:
#2080277)

 -- Simon Deziel <simon.deziel at canonical.com>  Tue, 20 Aug 2024 16:56:55
-0400

** Changed in: lxd-installer (Ubuntu)
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to lxd-installer in Ubuntu.
https://bugs.launchpad.net/bugs/2080277

Title:
  FFe: lxd-installer should prompt before installing LXD

Status in lxd-installer package in Ubuntu:
  Fix Released

Bug description:
  * Problem description:

  It is quite easy to accidentally trigger the on-demand installation of
  LXD's snap which takes a while. This is something that can, for
  example, happen inside a LXD instance where the operator didn't notice
  the instance was "entered". Something:

  $ lxc launch ubuntu-minimal:noble c1
  $ lxc shell c1 # accidentally enter `c1`
  # lxc list     # try to interact with LXD in the host but mistakenly triggers lxd-installer

  This last step is taking a while because multiple snaps need to be
  installed due to that `lxc list` being run in the wrong environment
  (instance instead of host). This is why
  https://bugs.launchpad.net/ubuntu/+source/lxd-installer/+bug/2073941
  and https://discourse.ubuntu.com/t/when-an-lxc-command-is-used-on-a-
  system-without-lxc-lxd-lxd-is-immediately-installed-should-it-be-that-
  way/46570 were opened/reported.

  * Motivation for the FFe:

  A better behavior would be for `lxd-installer` to detect if there is a
  terminal and if yes, prompt for a confirmation before doing the
  lengthy installation process. If no terminal is detect, it should
  assume that LXD is to be installed on-demand (current behavior). That
  is what https://code.launchpad.net/~sdeziel/ubuntu/+source/lxd-
  installer/+git/lxd-installer/+merge/471653

  * Additional information:

  lxd-installer authoritative sources live at
  https://code.launchpad.net/~git-ubuntu-import/ubuntu/+source/lxd-
  installer/+git/lxd-installer/+ref/ubuntu/devel so this is not a new
  upstream release per se. As such, the only changelog would be:

    * scripts/lxc: ask before proceeding if interactive (LP: #2073941,
  LP: #2080277)

  This changelog and the associated changes are being proposed for
  merging in https://code.launchpad.net/~sdeziel/ubuntu/+source/lxd-
  installer/+git/lxd-installer/+merge/471653

  The changes themselves are simply to prompt for confirmation before
  proceeding with the lengthy installation if a terminal is detected.

  Source build logs:

  $ dpkg-buildpackage --build=source --no-sign -sa
  dpkg-buildpackage: info: source package lxd-installer
  dpkg-buildpackage: info: source version 8
  dpkg-buildpackage: info: source distribution oracular
  dpkg-buildpackage: info: source changed by Simon Deziel <simon.deziel at canonical.com>
   dpkg-source --before-build .
   debian/rules clean
  dh clean
     dh_auto_clean
     dh_clean
   dpkg-source -b .
  dpkg-source: info: using source format '3.0 (native)'
  dpkg-source: info: building lxd-installer in lxd-installer_8.tar.xz
  dpkg-source: info: building lxd-installer in lxd-installer_8.dsc
   dpkg-genbuildinfo --build=source -O../lxd-installer_8_source.buildinfo
   dpkg-genchanges -sa --build=source -O../lxd-installer_8_source.changes
  dpkg-genchanges: info: including full source code in upload
   dpkg-source --after-build .
  dpkg-buildpackage: info: source-only upload: Debian-native package

  Binary build logs:

  $ dpkg-buildpackage --build=binary --no-sign -sa
  dpkg-buildpackage: info: source package lxd-installer
  dpkg-buildpackage: info: source version 8
  dpkg-buildpackage: info: source distribution oracular
  dpkg-buildpackage: info: source changed by Simon Deziel <simon.deziel at canonical.com>
  dpkg-buildpackage: info: host architecture amd64
   dpkg-source --before-build .
   debian/rules clean
  dh clean
     dh_auto_clean
     dh_clean
   debian/rules binary
  dh binary
     dh_update_autotools_config
     dh_autoreconf
     dh_auto_configure
     dh_auto_build
  	make -j12 "INSTALL=install --strip-program=true"
  make[1]: Entering directory '/home/ubuntu/lxd-installer'
  true
  make[1]: Leaving directory '/home/ubuntu/lxd-installer'
     dh_auto_test
     create-stamp debian/debhelper-build-stamp
     dh_prep
     dh_auto_install --destdir=debian/lxd-installer/
  	make -j12 install DESTDIR=/home/ubuntu/lxd-installer/debian/lxd-installer AM_UPDATE_INFO_DIR=no "INSTALL=install --strip-program=true"
  make[1]: Entering directory '/home/ubuntu/lxd-installer'
  mkdir -p /home/ubuntu/lxd-installer/debian/lxd-installer/usr/sbin /home/ubuntu/lxd-installer/debian/lxd-installer/usr/share/lxd-installer
  install -m 0755 scripts/lxc /home/ubuntu/lxd-installer/debian/lxd-installer/usr/sbin
  ln -sf lxc /home/ubuntu/lxd-installer/debian/lxd-installer/usr/sbin/lxd
  install -m 0755 lxd-installer-service /home/ubuntu/lxd-installer/debian/lxd-installer/usr/share/lxd-installer
  make[1]: Leaving directory '/home/ubuntu/lxd-installer'
     dh_installdocs
     dh_installchangelogs
     dh_installsystemd
     dh_perl
     dh_link
     dh_strip_nondeterminism
     dh_compress
     dh_fixperms
     dh_missing
     dh_installdeb
     dh_gencontrol
  dpkg-gencontrol: warning: Depends field of package lxd-installer: substitution variable ${shlibs:Depends} used, but is not defined
     dh_md5sums
     dh_builddeb
  dpkg-deb: building package 'lxd-installer' in '../lxd-installer_8_all.deb'.
   dpkg-genbuildinfo --build=binary -O../lxd-installer_8_amd64.buildinfo
   dpkg-genchanges -sa --build=binary -O../lxd-installer_8_amd64.changes
  dpkg-genchanges: info: binary-only upload (no source code included)
   dpkg-source --after-build .
  dpkg-buildpackage: info: binary-only upload (no source included)

  
  Install logs from a LXD VM:

  $ lxc launch ubuntu-daily:24.10 c1
  Launching c1
  $ lxc file push /tmp/l/lxd-installer_8_all.deb c1/tmp/
  $ lxc shell c1                                                                         
  root at c1:~# apt-get install /tmp/lxd-installer_8_all.deb 
  Reading package lists... Done
  Building dependency tree... Done
  Reading state information... Done
  Note, selecting 'lxd-installer' instead of '/tmp/lxd-installer_8_all.deb'
  The following packages will be upgraded:
    lxd-installer
  1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  Need to get 0 B/4912 B of archives.
  After this operation, 1024 B of additional disk space will be used.
  Get:1 /tmp/lxd-installer_8_all.deb lxd-installer all 8 [4912 B]
  (Reading database ... 38022 files and directories currently installed.)
  Preparing to unpack /tmp/lxd-installer_8_all.deb ...
  Unpacking lxd-installer (8) over (7) ...
  Setting up lxd-installer (8) ...
  Scanning processes...                                                                                                                     

  No services need to be restarted.

  No containers need to be restarted.

  No user sessions are running outdated binaries.

  No VM guests are running outdated hypervisor (qemu) binaries on this
  host.

  
  And now to confirm the prompt is only present when running interactively:

  root at c1:~# lxc list
  Would you like to install LXD snap now (Y/n)? 
  n

  
  When "scripted", there is no prompting:

  root at c1:~# lxc list | cat
  Installing LXD snap, please be patient.
  If this is your first time running LXD on this machine, you should also run: lxd init
  To start your first container, try: lxc launch ubuntu:24.04
  Or for a virtual machine: lxc launch ubuntu:24.04 --vm

  +------+-------+------+------+------+-----------+
  | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
  +------+-------+------+------+------+-----------+

  
  This shows that accidentally running a `lxc` command interactively will be easy to cancel.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/lxd-installer/+bug/2080277/+subscriptions




More information about the foundations-bugs mailing list