cloud-init-dev team mailing list archive
-
cloud-init-dev team
-
Mailing list archive
-
Message #03566
[Merge] ~raharper/cloud-init:ubuntu-devel-new-artful-release-v7 into cloud-init:ubuntu/devel
Ryan Harper has proposed merging ~raharper/cloud-init:ubuntu-devel-new-artful-release-v7 into cloud-init:ubuntu/devel.
Requested reviews:
Server Team CI bot (server-team-bot): continuous-integration
cloud-init commiters (cloud-init-dev)
Related bugs:
Bug #1721157 in cloud-init: "netplan render drops bridge_stp setting"
https://bugs.launchpad.net/cloud-init/+bug/1721157
For more details, see:
https://code.launchpad.net/~raharper/cloud-init/+git/cloud-init/+merge/331892
cloud-init (17.1-16-g6eb4dc24-0ubuntu1) artful; urgency=medium
* New upstream snapshot.
- tools: Give specific --abbrev=8 to "git describe"
- network: bridge_stp value not always correct [Ryan Harper] (LP: #1721157)
- tests: re-enable tox with nocloud-kvm support [Joshua Powers]
-- Ryan Harper <ryan.harper@xxxxxxxxxxxxx> Thu, 05 Oct 2017 13:46:43 -0500
--
Your team cloud-init commiters is requested to review the proposed merge of ~raharper/cloud-init:ubuntu-devel-new-artful-release-v7 into cloud-init:ubuntu/devel.
diff --git a/cloudinit/net/eni.py b/cloudinit/net/eni.py
index bb80ec0..c6a71d1 100644
--- a/cloudinit/net/eni.py
+++ b/cloudinit/net/eni.py
@@ -95,6 +95,9 @@ def _iface_add_attrs(iface, index):
ignore_map.append('mac_address')
for key, value in iface.items():
+ # convert bool to string for eni
+ if type(value) == bool:
+ value = 'on' if iface[key] else 'off'
if not value or key in ignore_map:
continue
if key in multiline_keys:
diff --git a/cloudinit/net/netplan.py b/cloudinit/net/netplan.py
index 3b06fbf..d3788af 100644
--- a/cloudinit/net/netplan.py
+++ b/cloudinit/net/netplan.py
@@ -244,9 +244,9 @@ class Renderer(renderer.Renderer):
for config in network_state.iter_interfaces():
ifname = config.get('name')
- # filter None entries up front so we can do simple if key in dict
+ # filter None (but not False) entries up front
ifcfg = dict((key, value) for (key, value) in config.items()
- if value)
+ if value is not None)
if_type = ifcfg.get('type')
if if_type == 'physical':
@@ -318,6 +318,7 @@ class Renderer(renderer.Renderer):
(port, cost) = costval.split()
newvalue[port] = int(cost)
br_config.update({newname: newvalue})
+
if len(br_config) > 0:
bridge.update({'parameters': br_config})
_extract_addresses(ifcfg, bridge)
diff --git a/cloudinit/net/network_state.py b/cloudinit/net/network_state.py
index 6faf01b..890dbf8 100644
--- a/cloudinit/net/network_state.py
+++ b/cloudinit/net/network_state.py
@@ -48,6 +48,7 @@ NET_CONFIG_TO_V2 = {
'bridge_maxwait': None,
'bridge_pathcost': 'path-cost',
'bridge_portprio': None,
+ 'bridge_stp': 'stp',
'bridge_waitport': None}}
@@ -465,6 +466,18 @@ class NetworkStateInterpreter(object):
for param, val in command.get('params', {}).items():
iface.update({param: val})
+ # convert value to boolean
+ bridge_stp = iface.get('bridge_stp')
+ if bridge_stp and type(bridge_stp) != bool:
+ if bridge_stp in ['on', '1', 1]:
+ bridge_stp = True
+ elif bridge_stp in ['off', '0', 0]:
+ bridge_stp = False
+ else:
+ raise ValueError("Cannot convert bridge_stp value"
+ "(%s) to boolean", bridge_stp)
+ iface.update({'bridge_stp': bridge_stp})
+
interfaces.update({iface['name']: iface})
@ensure_command_keys(['address'])
@@ -525,8 +538,8 @@ class NetworkStateInterpreter(object):
v2_command = {
br0: {
'interfaces': ['interface0', 'interface1'],
- 'fd': 0,
- 'stp': 'off',
+ 'forward-delay': 0,
+ 'stp': False,
'maxwait': 0,
}
}
diff --git a/debian/changelog b/debian/changelog
index d2207b6..0a5901c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+cloud-init (17.1-16-g6eb4dc24-0ubuntu1) artful; urgency=medium
+
+ * New upstream snapshot.
+ - tools: Give specific --abbrev=8 to "git describe"
+ - network: bridge_stp value not always correct [Ryan Harper] (LP: #1721157)
+ - tests: re-enable tox with nocloud-kvm support [Joshua Powers]
+
+ -- Ryan Harper <ryan.harper@xxxxxxxxxxxxx> Thu, 05 Oct 2017 13:46:43 -0500
+
cloud-init (17.1-13-g7fd04255-0ubuntu1) artful; urgency=medium
* debian/copyright: dep5 updates, reorganize, add Apache 2.0 license.
diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py
index f249615..17c9342 100644
--- a/tests/unittests/test_net.py
+++ b/tests/unittests/test_net.py
@@ -756,6 +756,7 @@ pre-down route del -net 10.0.0.0 netmask 255.0.0.0 gw 11.0.0.1 metric 3 || true
eth3: 50
eth4: 75
priority: 22
+ stp: false
routes:
- to: ::/0
via: 2001:4800:78ff:1b::1
@@ -820,7 +821,7 @@ pre-down route del -net 10.0.0.0 netmask 255.0.0.0 gw 11.0.0.1 metric 3 || true
NM_CONTROLLED=no
ONBOOT=yes
PRIO=22
- STP=off
+ STP=no
TYPE=Bridge
USERCTL=no"""),
'ifcfg-eth0': textwrap.dedent("""\
@@ -1296,7 +1297,7 @@ pre-down route del -net 10.0.0.0 netmask 255.0.0.0 gw 11.0.0.1 metric 3 || true
NM_CONTROLLED=no
ONBOOT=yes
PRIO=22
- STP=off
+ STP=no
TYPE=Bridge
USERCTL=no
"""),
diff --git a/tools/make-tarball b/tools/make-tarball
index 91c4562..3197689 100755
--- a/tools/make-tarball
+++ b/tools/make-tarball
@@ -35,7 +35,7 @@ while [ $# -ne 0 ]; do
done
rev=${1:-HEAD}
-version=$(git describe "--match=[0-9]*" ${long_opt} $rev)
+version=$(git describe --abbrev=8 "--match=[0-9]*" ${long_opt} $rev)
archive_base="cloud-init-$version"
if [ -z "$output" ]; then
diff --git a/tools/read-version b/tools/read-version
index ddb2838..d9ed30d 100755
--- a/tools/read-version
+++ b/tools/read-version
@@ -56,7 +56,7 @@ if os.path.isdir(os.path.join(_tdir, ".git")) and which("git"):
flags = []
if use_tags:
flags = ['--tags']
- cmd = ['git', 'describe', '--match=[0-9]*'] + flags
+ cmd = ['git', 'describe', '--abbrev=8', '--match=[0-9]*'] + flags
version = tiny_p(cmd).strip()
diff --git a/tox.ini b/tox.ini
index aef1f84..9223220 100644
--- a/tox.ini
+++ b/tox.ini
@@ -132,3 +132,5 @@ commands = {envpython} -m tests.cloud_tests {posargs}
passenv = HOME
deps =
pylxd==2.2.4
+ paramiko==2.3.1
+ bzr+lp:simplestreams