Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tools/net-convert: fix argument order for render_network_state #2870

Closed
ubuntu-server-builder opened this issue May 10, 2023 · 10 comments
Closed
Labels
launchpad Migrated from Launchpad

Comments

@ubuntu-server-builder
Copy link
Collaborator

This bug was originally filed in Launchpad as LP: #1685944

Launchpad details
affected_projects = ['cloud-init (Ubuntu)', 'cloud-init (Ubuntu Xenial)', 'cloud-init (Ubuntu Yakkety)', 'cloud-init (Ubuntu Zesty)']
assignee = xnox
assignee_name = Dimitri John Ledkov
date_closed = 2017-09-23T02:31:39.987043+00:00
date_created = 2017-04-24T21:44:16.837132+00:00
date_fix_committed = 2017-05-17T16:29:20.197617+00:00
date_fix_released = 2017-09-23T02:31:39.987043+00:00
id = 1685944
importance = low
is_complete = True
lp_url = https://bugs.launchpad.net/cloud-init/+bug/1685944
milestone = None
owner = smoser
owner_name = Scott Moser
private = False
status = fix_released
submitter = raharper
submitter_name = Ryan Harper
tags = ['verification-done-xenial', 'verification-done-yakkety', 'verification-done-zesty']
duplicates = []

Launchpad user Ryan Harper(raharper) wrote on 2017-04-24T21:44:16.837132+00:00

=== Begin SRU Template ===
[Impact]
Rendering of netplan content was broken due to an incorrect
function signature in net/netplan.py:render_network_state.

The end result was that rendering of netplan configuration was
broken in actual usage. Note, though that no official Ubuntu images
use this path at the current time. Ubuntu image all use ifupdown.

[Test Case]
The basic idea below is:
a.) launch an instance with proposed version of cloud-init.
b.) inside instance, run the test case. That would stack trace
as seen in the bug on prior versions of cloud-init.
c.) show the output.

launch an instance.

$ release=xenial
$ ref=$release-proposed
$ lxc-proposed-snapshot --proposed --publish $release $ref
$ lxc launch $ref $name
$ lxc exec $name

% cat > render-test.py <<"EOF"
#!/usr/bin/python3
import sys
from cloudinit.net import netplan, eni, network_state
out_d = "./out.d" if len(sys.argv) < 2 else sys.argv[1]

cfg = {'version': 1,
'config': [{'name': 'eth1', 'type': 'physical',
'subnets': [{'type': 'dhcp'}]}]}

Render eni and netplan to show that they both work.

ns = network_state.parse_net_config_data(cfg)
for renderer in netplan.Renderer(), eni.Renderer():
print("Rendering %s" % renderer)
renderer.render_network_state(ns, out_d)
EOF

$ python3 render-test.py out.d
Rendering <cloudinit.net.netplan.Renderer object at 0x7fd197c48208>
Rendering <cloudinit.net.eni.Renderer object at 0x7fd197c48278>

$ ( cd out.d && for f in $(find . -type f); do echo == $f ==; cat $f; done )
== ./etc/network/interfaces ==
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet dhcp
== ./etc/netplan/50-cloud-init.yaml ==
network:
version: 2
ethernets:
eth1:
dhcp4: true
== ./etc/udev/rules.d/70-persistent-net.rules ==

$ dpkg-query --show cloud-init

[Regression Potential]
This specific change has basically zero regression potential as it
was in netplan specific path that was only previously excercised
with test cases.

[Other Info]
Upstream commit at
https://git.launchpad.net/cloud-init/commit/?id=a6572d9415e59

lxc-proposed-snapshot is
https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot
It publishes an image to lxd with proposed enabled and cloud-init upgraded.
=== End SRU Template ===

% cat simple-v2.yaml
network:
  version: 2
  # comment above ethernets
  ethernets:
      ens0:
         dhcp4: true
         match:
           macaddress: 00:11:22:33:44:55
         set-name: ens0
      switchports:
        # all cards on second PCI bus; unconfigured by themselves, will be added
        # to br0 below
        match:
          name: enp2*
        mtu: 1280

% PYTHONPATH=pwd ./tools/net-convert.py --network-data simple-v2.yaml
                                          --kind yaml
                                          --output-kind netplan
                                          --directory ./target

Traceback (most recent call last):
  File "./tools/net-convert.py", line 82, in
    main()
  File "./tools/net-convert.py", line 78, in main
    r.render_network_state(ns, target=args.directory)
TypeError: render_network_state() got multiple values for argument 'target'

This is broken on master.

@ubuntu-server-builder ubuntu-server-builder added the launchpad Migrated from Launchpad label May 10, 2023
@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Scott Moser(smoser) wrote on 2017-05-17T16:25:50.252819+00:00

this attachment can be run from trunk and shows the stack trace.
It just picks a config (from bug 1691135) and renders it to ENI and netplan with tools/net-convert.py.

Launchpad attachments: bug-show.sh: shows the stacktrace

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Brian Murray(brian-murray) wrote on 2017-06-13T18:05:39.488373+00:00

Hello Ryan, or anyone else affected,

Accepted cloud-init into zesty-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.9-153-g16a7302f-0ubuntu1~17.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on 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 https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Brian Murray(brian-murray) wrote on 2017-06-13T18:53:54.830093+00:00

Hello Ryan, or anyone else affected,

Accepted cloud-init into yakkety-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.9-153-g16a7302f-0ubuntu1~16.10.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on 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 https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Brian Murray(brian-murray) wrote on 2017-06-13T19:07:27.053216+00:00

Hello Ryan, or anyone else affected,

Accepted cloud-init into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.9-153-g16a7302f-0ubuntu1~16.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on 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 https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Chad Smith(chad.smith) wrote on 2017-06-13T21:53:43.631669+00:00

Validated xenial yakkety and zesty:

root@test-xenial:# python3 render-test.py out.d
Rendering <cloudinit.net.netplan.Renderer object at 0x7f20cacb8470>
Rendering <cloudinit.net.eni.Renderer object at 0x7f20cacb84e0>
root@test-xenial:
# cd out.d && for f in $(find . -type f); do echo == $f ==; cat $f; done
== ./etc/netplan/50-cloud-init.yaml ==

network:
version: 2
ethernets:
eth1:
dhcp4: true
== ./etc/udev/rules.d/70-persistent-net.rules ==
== ./etc/network/interfaces ==
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet dhcp
root@test-xenial:# dpkg-query --show cloud-init
cloud-init 0.7.9-153-g16a7302f-0ubuntu1
16.04.1


root@test-yakkety:# python3 render-test.py out.d
Rendering <cloudinit.net.netplan.Renderer object at 0x7fac56641518>
Rendering <cloudinit.net.eni.Renderer object at 0x7fac53f495f8>
root@test-yakkety:
# cd out.d && for f in $(find . -type f); do echo == $f ==; cat $f; done
== ./etc/netplan/50-cloud-init.yaml ==

network:
version: 2
ethernets:
eth1:
dhcp4: true
== ./etc/udev/rules.d/70-persistent-net.rules ==
== ./etc/network/interfaces ==
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet dhcp

root@test-yakkety:# dpkg-query --show cloud-init
cloud-init 0.7.9-153-g16a7302f-0ubuntu1
16.10.1


root@test-zesty:# python3 render-test.py out.d
Rendering <cloudinit.net.netplan.Renderer object at 0x7f13a6064668>
Rendering <cloudinit.net.eni.Renderer object at 0x7f13a60646d8>
root@test-zesty:
# cd out.d && for f in $(find . -type f); do echo == $f ==; cat $f; done
== ./etc/netplan/50-cloud-init.yaml ==

network:
version: 2
ethernets:
eth1:
dhcp4: true
== ./etc/udev/rules.d/70-persistent-net.rules ==
== ./etc/network/interfaces ==
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet dhcp
root@test-zesty:/out.d# dpkg-query --show cloud-init
cloud-init 0.7.9-153-g16a7302f-0ubuntu1
17.04.1

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Launchpad Janitor(janitor) wrote on 2017-06-27T15:51:34.880334+00:00

This bug was fixed in the package cloud-init - 0.7.9-153-g16a7302f-0ubuntu1~17.04.1


cloud-init (0.7.9-153-g16a7302f-0ubuntu1~17.04.1) zesty-proposed; urgency=medium

  • New upstream snapshot.
    • net: fix reading and rendering addresses in cidr format.
      [Dimitri John Ledkov] (LP: #1689346, #1684349)
    • disk_setup: udev settle before attempting partitioning or fs creation.
      (LP: #1692093)
    • GCE: Update the attribute used to find instance SSH keys.
      [Daniel Watkins] (LP: #1693582)
    • nplan: For bonds, allow dashed or underscore names of keys.
      [Dimitri John Ledkov] (LP: #1690480)
    • tests: python2.6: fix unit tests usage of assertNone and format.
    • tests: update docstring on test_configured_list_with_none
    • fix tools/ds-identify to not write None twice.
    • tox/build: do not package depend on style requirements.
    • tests: ntp: Restructure cc_ntp unit tests. [Chad Smith]
    • flake8: move the pinned version of flake8 up to 3.3.0
    • tests: Apply workaround for snapd bug in test case. [Joshua Powers]
    • RHEL/CentOS: Fix dual stack IPv4/IPv6 configuration. [Andreas Karis]
    • disk_setup: fix several issues with gpt disk partitions. (LP: #1692087)
    • function spelling & docstring update [Joshua Powers]
    • tests: Fix unittest bug in ntp tests. [Joshua Powers]
    • tox: move pylint target to 1.7.1
    • Fix get_interfaces_by_mac for empty macs (LP: #1692028)
    • DigitalOcean: remove routes except for the public interface.
      [Ben Howard] (LP: #1681531.)
    • netplan: pass macaddress, when specified, for vlans
      [Dimitri John Ledkov] (LP: #1690388)
    • doc: various improvements for the docs on cc_users_groups.
      [Felix Dreissig]
    • cc_ntp: write template before installing and add service restart
      [Ryan Harper] (LP: #1645644)
    • tests: fix cloudstack unit tests to avoid accessing
      /var/lib/NetworkManager [Lars Kellogg-Stedman]
    • tests: fix hardcoded path to mkfs.ext4 [Joshua Powers] (LP: #1691517)
    • Actually skip warnings when .skip file is present.
      [Chris Brinker] (LP: #1691551)
    • netplan: fix netplan render_network_state signature.
      [Dimitri John Ledkov] (LP: #1685944)
    • Azure: fix reformatting of ephemeral disks on resize to large types.
      (LP: #1686514)
    • make deb: Add devscripts dependency for make deb.
      Cleanup packages/bddeb. [Chad Smith] (LP: #1685935)
    • openstack: fix log message copy/paste typo in _get_url_settings
      [Lars Kellogg-Stedman]
    • unittests: fix unittests run on centos [Joshua Powers]
    • Improve detection of snappy to include os-release and kernel cmdline.
      (LP: #1689944)
    • Add address to config entry generated by _klibc_to_config_entry.
      [Julien Castets] (LP: #1691135)
    • sysconfig: Raise ValueError when multiple default gateways are present.
      [Chad Smith] (LP: #1687485)
    • FreeBSD: improvements and fixes for use on Azure
      [Hongjiang Zhang] (LP: #1636345)
    • Add unit tests for ds-identify, fix Ec2 bug found.
    • fs_setup: if cmd is specified, use shell interpretation.
      [Paul Meyer] (LP: #1687712)
    • doc: document network configuration defaults policy and formats.
      [Ryan Harper]
    • doc: Fix name of "uri" key in docs for "cc_apt_configure" module
      [Felix Dreissig]
    • tests: Enable artful in integration tests [Joshua Powers]

-- Scott Moser smoser@ubuntu.com Fri, 26 May 2017 16:14:09 -0400

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Steve Langasek(vorlon) wrote on 2017-06-27T15:52:20.543954+00:00

The verification of the Stable Release Update for cloud-init 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.

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Launchpad Janitor(janitor) wrote on 2017-06-27T15:54:02.062609+00:00

This bug was fixed in the package cloud-init - 0.7.9-153-g16a7302f-0ubuntu1~16.10.1


cloud-init (0.7.9-153-g16a7302f-0ubuntu1~16.10.1) yakkety-proposed; urgency=medium

  • New upstream snapshot.
    • net: fix reading and rendering addresses in cidr format.
      [Dimitri John Ledkov] (LP: #1689346, #1684349)
    • disk_setup: udev settle before attempting partitioning or fs creation.
      (LP: #1692093)
    • GCE: Update the attribute used to find instance SSH keys.
      [Daniel Watkins] (LP: #1693582)
    • nplan: For bonds, allow dashed or underscore names of keys.
      [Dimitri John Ledkov] (LP: #1690480)
    • tests: python2.6: fix unit tests usage of assertNone and format.
    • tests: update docstring on test_configured_list_with_none
    • fix tools/ds-identify to not write None twice.
    • tox/build: do not package depend on style requirements.
    • tests: ntp: Restructure cc_ntp unit tests. [Chad Smith]
    • flake8: move the pinned version of flake8 up to 3.3.0
    • tests: Apply workaround for snapd bug in test case. [Joshua Powers]
    • RHEL/CentOS: Fix dual stack IPv4/IPv6 configuration. [Andreas Karis]
    • disk_setup: fix several issues with gpt disk partitions. (LP: #1692087)
    • function spelling & docstring update [Joshua Powers]
    • tests: Fix unittest bug in ntp tests. [Joshua Powers]
    • tox: move pylint target to 1.7.1
    • Fix get_interfaces_by_mac for empty macs (LP: #1692028)
    • DigitalOcean: remove routes except for the public interface.
      [Ben Howard] (LP: #1681531.)
    • netplan: pass macaddress, when specified, for vlans
      [Dimitri John Ledkov] (LP: #1690388)
    • doc: various improvements for the docs on cc_users_groups.
      [Felix Dreissig]
    • cc_ntp: write template before installing and add service restart
      [Ryan Harper] (LP: #1645644)
    • tests: fix cloudstack unit tests to avoid accessing
      /var/lib/NetworkManager [Lars Kellogg-Stedman]
    • tests: fix hardcoded path to mkfs.ext4 [Joshua Powers] (LP: #1691517)
    • Actually skip warnings when .skip file is present.
      [Chris Brinker] (LP: #1691551)
    • netplan: fix netplan render_network_state signature.
      [Dimitri John Ledkov] (LP: #1685944)
    • Azure: fix reformatting of ephemeral disks on resize to large types.
      (LP: #1686514)
    • make deb: Add devscripts dependency for make deb.
      Cleanup packages/bddeb. [Chad Smith] (LP: #1685935)
    • openstack: fix log message copy/paste typo in _get_url_settings
      [Lars Kellogg-Stedman]
    • unittests: fix unittests run on centos [Joshua Powers]
    • Improve detection of snappy to include os-release and kernel cmdline.
      (LP: #1689944)
    • Add address to config entry generated by _klibc_to_config_entry.
      [Julien Castets] (LP: #1691135)
    • sysconfig: Raise ValueError when multiple default gateways are present.
      [Chad Smith] (LP: #1687485)
    • FreeBSD: improvements and fixes for use on Azure
      [Hongjiang Zhang] (LP: #1636345)
    • Add unit tests for ds-identify, fix Ec2 bug found.
    • fs_setup: if cmd is specified, use shell interpretation.
      [Paul Meyer] (LP: #1687712)
    • doc: document network configuration defaults policy and formats.
      [Ryan Harper]
    • doc: Fix name of "uri" key in docs for "cc_apt_configure" module
      [Felix Dreissig]
    • tests: Enable artful in integration tests [Joshua Powers]

-- Scott Moser smoser@ubuntu.com Fri, 26 May 2017 16:08:21 -0400

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Launchpad Janitor(janitor) wrote on 2017-06-27T15:54:45.867129+00:00

This bug was fixed in the package cloud-init - 0.7.9-153-g16a7302f-0ubuntu1~16.04.1


cloud-init (0.7.9-153-g16a7302f-0ubuntu1~16.04.1) xenial-proposed; urgency=medium

  • New upstream snapshot.
    • net: fix reading and rendering addresses in cidr format.
      [Dimitri John Ledkov] (LP: #1689346, #1684349)
    • disk_setup: udev settle before attempting partitioning or fs creation.
      (LP: #1692093)
    • GCE: Update the attribute used to find instance SSH keys.
      [Daniel Watkins] (LP: #1693582)
    • nplan: For bonds, allow dashed or underscore names of keys.
      [Dimitri John Ledkov] (LP: #1690480)
    • tests: python2.6: fix unit tests usage of assertNone and format.
    • tests: update docstring on test_configured_list_with_none
    • fix tools/ds-identify to not write None twice.
    • tox/build: do not package depend on style requirements.
    • tests: ntp: Restructure cc_ntp unit tests. [Chad Smith]
    • flake8: move the pinned version of flake8 up to 3.3.0
    • tests: Apply workaround for snapd bug in test case. [Joshua Powers]
    • RHEL/CentOS: Fix dual stack IPv4/IPv6 configuration. [Andreas Karis]
    • disk_setup: fix several issues with gpt disk partitions. (LP: #1692087)
    • function spelling & docstring update [Joshua Powers]
    • tests: Fix unittest bug in ntp tests. [Joshua Powers]
    • tox: move pylint target to 1.7.1
    • Fix get_interfaces_by_mac for empty macs (LP: #1692028)
    • DigitalOcean: remove routes except for the public interface.
      [Ben Howard] (LP: #1681531.)
    • netplan: pass macaddress, when specified, for vlans
      [Dimitri John Ledkov] (LP: #1690388)
    • doc: various improvements for the docs on cc_users_groups.
      [Felix Dreissig]
    • cc_ntp: write template before installing and add service restart
      [Ryan Harper] (LP: #1645644)
    • tests: fix cloudstack unit tests to avoid accessing
      /var/lib/NetworkManager [Lars Kellogg-Stedman]
    • tests: fix hardcoded path to mkfs.ext4 [Joshua Powers] (LP: #1691517)
    • Actually skip warnings when .skip file is present.
      [Chris Brinker] (LP: #1691551)
    • netplan: fix netplan render_network_state signature.
      [Dimitri John Ledkov] (LP: #1685944)
    • Azure: fix reformatting of ephemeral disks on resize to large types.
      (LP: #1686514)
    • make deb: Add devscripts dependency for make deb.
      Cleanup packages/bddeb. [Chad Smith] (LP: #1685935)
    • openstack: fix log message copy/paste typo in _get_url_settings
      [Lars Kellogg-Stedman]
    • unittests: fix unittests run on centos [Joshua Powers]
    • Improve detection of snappy to include os-release and kernel cmdline.
      (LP: #1689944)
    • Add address to config entry generated by _klibc_to_config_entry.
      [Julien Castets] (LP: #1691135)
    • sysconfig: Raise ValueError when multiple default gateways are present.
      [Chad Smith] (LP: #1687485)
    • FreeBSD: improvements and fixes for use on Azure
      [Hongjiang Zhang] (LP: #1636345)
    • Add unit tests for ds-identify, fix Ec2 bug found.
    • fs_setup: if cmd is specified, use shell interpretation.
      [Paul Meyer] (LP: #1687712)
    • doc: document network configuration defaults policy and formats.
      [Ryan Harper]
    • doc: Fix name of "uri" key in docs for "cc_apt_configure" module
      [Felix Dreissig]
    • tests: Enable artful in integration tests [Joshua Powers]

-- Scott Moser smoser@ubuntu.com Fri, 26 May 2017 15:58:48 -0400

@ubuntu-server-builder
Copy link
Collaborator Author

Launchpad user Scott Moser(smoser) wrote on 2017-09-23T02:31:42.213462+00:00

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

Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
launchpad Migrated from Launchpad
Projects
None yet
Development

No branches or pull requests

1 participant