Comment 0 for bug 1946957

Revision history for this message
Michael Vogt (mvo) wrote : Unset of a subtree crashes with dbus (but not cli)

Hey, sorry to bother you again with a crash. Help welcome!

I have:

$ $ apt list netplan.io
Listing... Done
netplan.io/now 0.103-0ubuntu5~21.04.2 amd64 [installed,local]

$ zcat /usr/share/doc/netplan.io/changelog.Debian.gz |head -n 6
netplan.io (0.103-0ubuntu5~21.04.2) hirsute; urgency=medium

  * Backport patches from impish:
    + Add d/p/0006-netplan-set-make-it-possible-to-unset-a-whole-devtyp.patch:
      Fix unset of a devtype subtree, e.g. "netplan set network.ethernets=null"
      (LP: #1942930)

With:
$ netplan get
network:
  renderer: NetworkManager
  version: 2

When I do the following:
$ sudo netplan set network.ethernets=null
that works just fine now.

But when I do (what I think is) the dbus equivalent:

path=$(dbus-send --system --print-reply --type=method_call --dest=io.netplan.Netplan /io/netplan/Netplan io.netplan.Netplan.Config|grep path|cut -f2 -d'"')
dbus-send --system --print-reply --type=method_call --dest=io.netplan.Netplan "$path" io.netplan.Netplan.Config.Set string:"network.ethernets=null" string:"90-snapd-conf"

I get:

Error org.freedesktop.DBus.Error.Failed: netplan set failed: Child process exited with code 1
stdout: ''
stderr: 'Traceback (most recent call last):
  File "/usr/sbin/netplan", line 23, in <module>
    netplan.main()
  File "/usr/share/netplan/netplan/cli/core.py", line 50, in main
    self.run_command()
  File "/usr/share/netplan/netplan/cli/utils.py", line 310, in run_command
    self.func()
  File "/usr/share/netplan/netplan/cli/commands/set.py", line 53, in run
    self.run_command()
  File "/usr/share/netplan/netplan/cli/utils.py", line 310, in run_command
    self.func()
  File "/usr/share/netplan/netplan/cli/commands/set.py", line 106, in command_set
    self.write_file(subtree, hint + '.yaml', self.root_dir)
  File "/usr/share/netplan/netplan/cli/commands/set.py", line 176, in write_file
    raise Exception('Invalid input: {}'.format(set_tree))
Exception: Invalid input: {'network': {'ethernets': None}}
'

Any help or tips appreciated!