From 06b5ce4573f5ef420eb5f26015cda71b7ee77193 Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Fri, 22 Sep 2017 07:56:43 +1000 Subject: [PATCH] Revert "Support networkx 2.0" This reverts commit a47ff0dd4abbceae786d9a5a4d1ce8042a9eb4f7. Since this merged, a global-requirements pin to keep networkx <2.0 has also merged. The plan is: 1. revert our 2.0 support and 1a. take the <2.0 pin from global requirements 2. figure out how to use constraints properly in our testing 3. restore this, with a depends-on for a 2.0 bump in requirements (which will self-test, see 3.) 4. when other projects are ready for a global 2.0 bump, merge in a controlled fashion This reverts the 2.0 support, and adds the pin for networkx <2.0 Change-Id: I18f6a1115da779581245e3dd423fd90516974a33 --- diskimage_builder/block_device/config.py | 12 ++++++------ requirements.txt | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/diskimage_builder/block_device/config.py b/diskimage_builder/block_device/config.py index 193b3dffe..57f46eabf 100644 --- a/diskimage_builder/block_device/config.py +++ b/diskimage_builder/block_device/config.py @@ -190,7 +190,7 @@ def create_graph(config, default_config, state): # ensure node names are unique. networkx by default # just appends the attribute to the node dict for # existing nodes, which is not what we want. - if node.name in dg.nodes: + if node.name in dg.node: raise BlockDeviceSetupException( "Duplicate node name: %s" % (node.name)) logger.debug("Adding %s : %s", node.name, node) @@ -210,12 +210,12 @@ def create_graph(config, default_config, state): logger.debug("Edges for %s: f:%s t:%s", name, edges_from, edges_to) for edge_from in edges_from: - if edge_from not in dg.nodes: + if edge_from not in dg.node: raise BlockDeviceSetupException( "Edge not defined: %s->%s" % (edge_from, name)) dg.add_edge(edge_from, name) for edge_to in edges_to: - if edge_to not in dg.nodes: + if edge_to not in dg.node: raise BlockDeviceSetupException( "Edge not defined: %s->%s" % (name, edge_to)) dg.add_edge(name, edge_to) @@ -231,9 +231,9 @@ def create_graph(config, default_config, state): # Topological sort (i.e. create a linear array that satisfies # dependencies) and return the object list - call_order_nodes = list(nx.topological_sort(dg)) - logger.debug("Call order: %s", call_order_nodes) - call_order = [dg.nodes[n]['obj'] for n in call_order_nodes] + call_order_nodes = nx.topological_sort(dg) + logger.debug("Call order: %s", list(call_order_nodes)) + call_order = [dg.node[n]['obj'] for n in call_order_nodes] return dg, call_order diff --git a/requirements.txt b/requirements.txt index 3a18dd8ad..827edc1a6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. Babel!=2.4.0,>=2.3.4 # BSD -networkx>=1.10 # BSD +networkx<2.0,>=1.10 # BSD pbr!=2.1.0,>=2.0.0 # Apache-2.0 PyYAML>=3.10 # MIT flake8<2.6.0,>=2.5.4 # MIT