Merge lp:~mpontillo/maas/bug-1569984 into lp:~maas-committers/maas/trunk

Proposed by Mike Pontillo
Status: Merged
Approved by: Mike Pontillo
Approved revision: no longer in the source branch.
Merged at revision: 4918
Proposed branch: lp:~mpontillo/maas/bug-1569984
Merge into: lp:~maas-committers/maas/trunk
Diff against target: 39 lines (+15/-3)
2 files modified
src/provisioningserver/utils/network.py (+6/-3)
src/provisioningserver/utils/tests/test_network.py (+9/-0)
To merge this branch: bzr merge lp:~mpontillo/maas/bug-1569984
Reviewer Review Type Date Requested Status
Andres Rodriguez (community) Approve
Review via email: mp+291798@code.launchpad.net

Commit message

Fix bug #1569984: don't try to render the JSON for a dynamic range if we don't have a suggestion for that.

To post a comment you must log in.
Revision history for this message
Andres Rodriguez (andreserl) wrote :

lgtm! The question is why would we never have one!"?

review: Approve
Revision history for this message
Mike Pontillo (mpontillo) wrote :

There is no need to calculate the suggested range (or send it over the websocket) if a dynamic range already exists.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/provisioningserver/utils/network.py'
2--- src/provisioningserver/utils/network.py 2016-04-13 01:15:25 +0000
3+++ src/provisioningserver/utils/network.py 2016-04-13 17:29:37 +0000
4@@ -293,9 +293,12 @@
5 data["ranges"] = self.ranges.render_json()
6 if include_suggestions:
7 data["suggested_gateway"] = self.suggested_gateway
8- data["suggested_dynamic_range"] = (
9- self.suggested_dynamic_range.render_json()
10- )
11+ suggested_dynamic_range = None
12+ if self.suggested_dynamic_range is not None:
13+ suggested_dynamic_range = (
14+ self.suggested_dynamic_range.render_json()
15+ )
16+ data["suggested_dynamic_range"] = suggested_dynamic_range
17 return data
18
19
20
21=== modified file 'src/provisioningserver/utils/tests/test_network.py'
22--- src/provisioningserver/utils/tests/test_network.py 2016-04-13 01:15:25 +0000
23+++ src/provisioningserver/utils/tests/test_network.py 2016-04-13 17:29:37 +0000
24@@ -819,6 +819,15 @@
25 stats = IPRangeStatistics(u)
26 self.assertThat(stats.suggested_gateway, Is(None))
27
28+ def test__suggests_no_dynamic_range_if_dynamic_range_exists(self):
29+ s = MAASIPSet([
30+ MAASIPRange(start="10.0.0.2", end="10.0.0.99", purpose="dynamic")])
31+ u = s.get_full_range('10.0.0.0/24')
32+ stats = IPRangeStatistics(u)
33+ json = stats.render_json(include_suggestions=True)
34+ self.assertThat(stats.suggested_dynamic_range, Is(None))
35+ self.assertThat(json["suggested_dynamic_range"], Is(None))
36+
37 def test__suggests_upper_one_fourth_range_for_dynamic_by_default(self):
38 s = MAASIPSet([])
39 u = s.get_full_range('10.0.0.0/24')