Confusing 'success' message when apply_net fails.

Bug #1615780 reported by Jon Grimm
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fix Released
curtin (Ubuntu)
Fix Released
Fix Released

Bug Description


 * Curtin produced a configusing 'success' message when failying to apply
   a provided network configuration.

   Curtin has been updated to ensure that if 'apply_net' commands fail
   the return code is propagated up to the invocation and no longer
   prints both a success and failure message when a failure occurs.

[Test Case]

 * Install proposed curtin package and run the command
   - # curtin apply_net -t target -c bad.yaml

  PASS: Curtin does not emit successful message:
        'Applied network configuration successfully'

  FAIL: Curtin emits both
        'Applied network configuration successfully' and
        'failed to apply network config'

[Regression Potential]

 * Users of apply_net cli command may have examined the output of the
   command which is now modified, as well as the return code.

[Original Description]

When apply_net fails, the user both a fail message and a success message.. a bit confusing.

root@x1:~# curtin apply_net -t target -c bad.yaml
Applying network configuration
failed to apply network config
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/curtin/commands/", line 78, in apply_net_main
  File "/usr/lib/python3/dist-packages/curtin/commands/", line 44, in apply_net
    ns = net.parse_net_config(network_config)
  File "/usr/lib/python3/dist-packages/curtin/net/", line 283, in parse_net_config
    net_config = config.load_config(path)
  File "/usr/lib/python3/dist-packages/curtin/", line 117, in load_config
    return yaml.safe_load(content)
  File "/usr/lib/python3/dist-packages/yaml/", line 94, in safe_load
    return load(stream, SafeLoader)
  File "/usr/lib/python3/dist-packages/yaml/", line 72, in load
    return loader.get_single_data()
  File "/usr/lib/python3/dist-packages/yaml/", line 35, in get_single_data
    node = self.get_single_node()
  File "/usr/lib/python3/dist-packages/yaml/", line 36, in get_single_node
    document = self.compose_document()
  File "/usr/lib/python3/dist-packages/yaml/", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/usr/lib/python3/dist-packages/yaml/", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python3/dist-packages/yaml/", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/lib/python3/dist-packages/yaml/", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/lib/python3/dist-packages/yaml/", line 127, in compose_mapping_node
    while not self.check_event(MappingEndEvent):
  File "/usr/lib/python3/dist-packages/yaml/", line 98, in check_event
    self.current_event = self.state()
  File "/usr/lib/python3/dist-packages/yaml/", line 428, in parse_block_mapping_key
    if self.check_token(KeyToken):
  File "/usr/lib/python3/dist-packages/yaml/", line 116, in check_token
  File "/usr/lib/python3/dist-packages/yaml/", line 257, in fetch_more_tokens
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 5:
Applied network configuration successfully

Note the emitting of messages

"failed to apply network config"
"Applied network configuration successfully"

Really a minor issue.

Related branches

Ryan Harper (raharper)
Changed in curtin:
importance: Undecided → Low
status: New → In Progress
Ryan Harper (raharper)
description: updated
Revision history for this message
Andy Whitcroft (apw) wrote : Please test proposed package

Hello Jon, or anyone else affected,

Accepted curtin into xenial-proposed. The package will build now and be available at in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at . Thank you in advance!

tags: added: verification-needed
Andy Whitcroft (apw)
Changed in curtin (Ubuntu):
status: New → Fix Released
Changed in curtin (Ubuntu Xenial):
status: New → Fix Committed
Revision history for this message
Jon Grimm (jgrimm) wrote :

Verified fixed.

tags: added: verification-done
removed: verification-needed
Revision history for this message
Jon Grimm (jgrimm) wrote :

Verified curtin 0.1.0~bzr425-0ubuntu1~16.04.1 out of xenial-proposed.

Jon Grimm (jgrimm)
Changed in curtin:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package curtin - 0.1.0~bzr425-0ubuntu1~16.04.1

curtin (0.1.0~bzr425-0ubuntu1~16.04.1) xenial-proposed; urgency=medium

  [ Scott Moser ]
  * debian/new-upstream-snapshot: add writing of debian changelog entries.

  [ Ryan Harper ]
  * New upstream snapshot.
    - unittest,tox.ini: catch and fix issue with trusty-level mock of open
    - block/mdadm: add option to ignore mdadm_assemble errors (LP: #1618429)
    - curtin/doc: overhaul curtin documentation for
      (LP: #1351085)
    - curtin.util: re-add support for RunInChroot (LP: #1617375)
    - curtin/net: overhaul of eni rendering to handle mixed ipv4/ipv6 configs
    - curtin.block: refactor clear_holders logic into block.clear_holders and
      cli cmd
    - curtin.apply_net should exit non-zero upon exception. (LP: #1615780)
    - apt: fix bug in disable_suites if sources.list line is blank.
    - vmtests: disable Wily in vmtests
    - Fix the unittests for test_apt_source.
    - get CURTIN_VMTEST_PARALLEL shown correctly in jenkins-runner output
    - fix vmtest check_file_strippedline to strip lines before comparing
    - fix whitespace damage in tests/vmtests/
    - fix dpkg-reconfigure when debconf_selections was provided.
      (LP: #1609614)
    - fix apt tests on non-intel arch
    - Add apt features to curtin. (LP: #1574113)
    - vmtest: easier use of parallel and controlling timeouts
    - mkfs.vfat: add force flag for formating whole disks (LP: #1597923)
    - block.mkfs: fix sectorsize flag (LP: #1597522)
    - block_meta: cleanup use of sys_block_path and handle cciss knames
      (LP: #1562249)
    - block.get_blockdev_sector_size: handle _lsblock multi result return
      (LP: #1598310)
    - util: add target (chroot) support to subp, add target_path helper.
    - block_meta: fallback to parted if blkid does not produce output
      (LP: #1524031)
    - commands.block_wipe: correct default wipe mode to 'superblock'
    - tox.ini: run coverage normally rather than separately
    - move uefi boot knowledge from launch and vmtest to xkvm

 -- Ryan Harper <email address hidden> Mon, 03 Oct 2016 13:43:54 -0500

Changed in curtin (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Martin Pitt (pitti) wrote : Update Released

The verification of the Stable Release Update for curtin has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Scott Moser (smoser) wrote : Fixed in Curtin 17.1

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

Thank you.

Changed in curtin:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.