Merge lp:~mpontillo/maas/fix-relay-vlan-hostmap-creation--bug-1686755 into lp:~maas-committers/maas/trunk
- fix-relay-vlan-hostmap-creation--bug-1686755
- Merge into trunk
Proposed by
Mike Pontillo
Status: | Merged |
---|---|
Approved by: | Mike Pontillo |
Approved revision: | no longer in the source branch. |
Merged at revision: | 6041 |
Proposed branch: | lp:~mpontillo/maas/fix-relay-vlan-hostmap-creation--bug-1686755 |
Merge into: | lp:~maas-committers/maas/trunk |
Diff against target: |
669 lines (+276/-71) 3 files modified
src/maasserver/triggers/system.py (+39/-49) src/maasserver/triggers/testing.py (+3/-1) src/maasserver/triggers/tests/test_system_listener.py (+234/-21) |
To merge this branch: | bzr merge lp:~mpontillo/maas/fix-relay-vlan-hostmap-creation--bug-1686755 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Blake Rouse (community) | Approve | ||
Review via email: mp+323561@code.launchpad.net |
Commit message
Fix hostmap creation when IP addresses are created on VLANs with DHCP relay enabled. Also fix DHCP snippet triggers to fire when they occur on a VLAN with DHCP relay enabled.
Description of the change
To post a comment you must log in.
Revision history for this message
Mike Pontillo (mpontillo) wrote : | # |
Fixed. Thanks.
Revision history for this message
Blake Rouse (blake-rouse) : | # |
review:
Needs Fixing
Revision history for this message
Blake Rouse (blake-rouse) wrote : | # |
Thanks for the fixes. Looks good.
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'src/maasserver/triggers/system.py' | |||
2 | --- src/maasserver/triggers/system.py 2017-01-28 00:51:47 +0000 | |||
3 | +++ src/maasserver/triggers/system.py 2017-05-05 15:31:09 +0000 | |||
4 | @@ -368,10 +368,27 @@ | |||
5 | 368 | DHCP_ALERT = dedent("""\ | 368 | DHCP_ALERT = dedent("""\ |
6 | 369 | CREATE OR REPLACE FUNCTION sys_dhcp_alert(vlan maasserver_vlan) | 369 | CREATE OR REPLACE FUNCTION sys_dhcp_alert(vlan maasserver_vlan) |
7 | 370 | RETURNS void AS $$ | 370 | RETURNS void AS $$ |
8 | 371 | DECLARE | ||
9 | 372 | relay_vlan maasserver_vlan; | ||
10 | 371 | BEGIN | 373 | BEGIN |
14 | 372 | PERFORM pg_notify(CONCAT('sys_dhcp_', vlan.primary_rack_id), ''); | 374 | IF vlan.dhcp_on THEN |
15 | 373 | IF vlan.secondary_rack_id IS NOT NULL THEN | 375 | PERFORM pg_notify(CONCAT('sys_dhcp_', vlan.primary_rack_id), ''); |
16 | 374 | PERFORM pg_notify(CONCAT('sys_dhcp_', vlan.secondary_rack_id), ''); | 376 | IF vlan.secondary_rack_id IS NOT NULL THEN |
17 | 377 | PERFORM pg_notify(CONCAT('sys_dhcp_', vlan.secondary_rack_id), ''); | ||
18 | 378 | END IF; | ||
19 | 379 | END IF; | ||
20 | 380 | IF vlan.relay_vlan_id IS NOT NULL THEN | ||
21 | 381 | SELECT maasserver_vlan.* INTO relay_vlan | ||
22 | 382 | FROM maasserver_vlan | ||
23 | 383 | WHERE maasserver_vlan.id = vlan.relay_vlan_id; | ||
24 | 384 | IF relay_vlan.dhcp_on THEN | ||
25 | 385 | PERFORM pg_notify(CONCAT( | ||
26 | 386 | 'sys_dhcp_', relay_vlan.primary_rack_id), ''); | ||
27 | 387 | IF relay_vlan.secondary_rack_id IS NOT NULL THEN | ||
28 | 388 | PERFORM pg_notify(CONCAT( | ||
29 | 389 | 'sys_dhcp_', relay_vlan.secondary_rack_id), ''); | ||
30 | 390 | END IF; | ||
31 | 391 | END IF; | ||
32 | 375 | END IF; | 392 | END IF; |
33 | 376 | RETURN; | 393 | RETURN; |
34 | 377 | END; | 394 | END; |
35 | @@ -393,15 +410,11 @@ | |||
36 | 393 | -- Update old VLAN if DHCP is enabled. | 410 | -- Update old VLAN if DHCP is enabled. |
37 | 394 | SELECT * INTO vlan | 411 | SELECT * INTO vlan |
38 | 395 | FROM maasserver_vlan WHERE id = OLD.vlan_id; | 412 | FROM maasserver_vlan WHERE id = OLD.vlan_id; |
42 | 396 | IF vlan.dhcp_on THEN | 413 | PERFORM sys_dhcp_alert(vlan); |
40 | 397 | PERFORM sys_dhcp_alert(vlan); | ||
41 | 398 | END IF; | ||
43 | 399 | -- Update the new VLAN if DHCP is enabled. | 414 | -- Update the new VLAN if DHCP is enabled. |
44 | 400 | SELECT * INTO vlan | 415 | SELECT * INTO vlan |
45 | 401 | FROM maasserver_vlan WHERE id = NEW.vlan_id; | 416 | FROM maasserver_vlan WHERE id = NEW.vlan_id; |
49 | 402 | IF vlan.dhcp_on THEN | 417 | PERFORM sys_dhcp_alert(vlan); |
47 | 403 | PERFORM sys_dhcp_alert(vlan); | ||
48 | 404 | END IF; | ||
50 | 405 | -- Related fields of subnet where changed. | 418 | -- Related fields of subnet where changed. |
51 | 406 | ELSIF OLD.cidr != NEW.cidr OR | 419 | ELSIF OLD.cidr != NEW.cidr OR |
52 | 407 | (OLD.gateway_ip IS NULL AND NEW.gateway_ip IS NOT NULL) OR | 420 | (OLD.gateway_ip IS NULL AND NEW.gateway_ip IS NOT NULL) OR |
53 | @@ -411,9 +424,7 @@ | |||
54 | 411 | -- Network has changed update alert DHCP if enabled. | 424 | -- Network has changed update alert DHCP if enabled. |
55 | 412 | SELECT * INTO vlan | 425 | SELECT * INTO vlan |
56 | 413 | FROM maasserver_vlan WHERE id = NEW.vlan_id; | 426 | FROM maasserver_vlan WHERE id = NEW.vlan_id; |
60 | 414 | IF vlan.dhcp_on THEN | 427 | PERFORM sys_dhcp_alert(vlan); |
58 | 415 | PERFORM sys_dhcp_alert(vlan); | ||
59 | 416 | END IF; | ||
61 | 417 | END IF; | 428 | END IF; |
62 | 418 | RETURN NEW; | 429 | RETURN NEW; |
63 | 419 | END; | 430 | END; |
64 | @@ -431,9 +442,7 @@ | |||
65 | 431 | -- Update VLAN if DHCP is enabled. | 442 | -- Update VLAN if DHCP is enabled. |
66 | 432 | SELECT * INTO vlan | 443 | SELECT * INTO vlan |
67 | 433 | FROM maasserver_vlan WHERE id = OLD.vlan_id; | 444 | FROM maasserver_vlan WHERE id = OLD.vlan_id; |
71 | 434 | IF vlan.dhcp_on THEN | 445 | PERFORM sys_dhcp_alert(vlan); |
69 | 435 | PERFORM sys_dhcp_alert(vlan); | ||
70 | 436 | END IF; | ||
72 | 437 | RETURN NEW; | 446 | RETURN NEW; |
73 | 438 | END; | 447 | END; |
74 | 439 | $$ LANGUAGE plpgsql; | 448 | $$ LANGUAGE plpgsql; |
75 | @@ -453,9 +462,7 @@ | |||
76 | 453 | FROM maasserver_vlan, maasserver_subnet | 462 | FROM maasserver_vlan, maasserver_subnet |
77 | 454 | WHERE maasserver_subnet.id = NEW.subnet_id AND | 463 | WHERE maasserver_subnet.id = NEW.subnet_id AND |
78 | 455 | maasserver_subnet.vlan_id = maasserver_vlan.id; | 464 | maasserver_subnet.vlan_id = maasserver_vlan.id; |
82 | 456 | IF vlan.dhcp_on THEN | 465 | PERFORM sys_dhcp_alert(vlan); |
80 | 457 | PERFORM sys_dhcp_alert(vlan); | ||
81 | 458 | END IF; | ||
83 | 459 | END IF; | 466 | END IF; |
84 | 460 | RETURN NEW; | 467 | RETURN NEW; |
85 | 461 | END; | 468 | END; |
86 | @@ -476,9 +483,7 @@ | |||
87 | 476 | FROM maasserver_vlan, maasserver_subnet | 483 | FROM maasserver_vlan, maasserver_subnet |
88 | 477 | WHERE maasserver_subnet.id = NEW.subnet_id AND | 484 | WHERE maasserver_subnet.id = NEW.subnet_id AND |
89 | 478 | maasserver_subnet.vlan_id = maasserver_vlan.id; | 485 | maasserver_subnet.vlan_id = maasserver_vlan.id; |
93 | 479 | IF vlan.dhcp_on THEN | 486 | PERFORM sys_dhcp_alert(vlan); |
91 | 480 | PERFORM sys_dhcp_alert(vlan); | ||
92 | 481 | END IF; | ||
94 | 482 | END IF; | 487 | END IF; |
95 | 483 | RETURN NEW; | 488 | RETURN NEW; |
96 | 484 | END; | 489 | END; |
97 | @@ -499,9 +504,7 @@ | |||
98 | 499 | FROM maasserver_vlan, maasserver_subnet | 504 | FROM maasserver_vlan, maasserver_subnet |
99 | 500 | WHERE maasserver_subnet.id = OLD.subnet_id AND | 505 | WHERE maasserver_subnet.id = OLD.subnet_id AND |
100 | 501 | maasserver_subnet.vlan_id = maasserver_vlan.id; | 506 | maasserver_subnet.vlan_id = maasserver_vlan.id; |
104 | 502 | IF vlan.dhcp_on THEN | 507 | PERFORM sys_dhcp_alert(vlan); |
102 | 503 | PERFORM sys_dhcp_alert(vlan); | ||
103 | 504 | END IF; | ||
105 | 505 | END IF; | 508 | END IF; |
106 | 506 | RETURN NEW; | 509 | RETURN NEW; |
107 | 507 | END; | 510 | END; |
108 | @@ -523,9 +526,7 @@ | |||
109 | 523 | FROM maasserver_vlan, maasserver_subnet | 526 | FROM maasserver_vlan, maasserver_subnet |
110 | 524 | WHERE maasserver_subnet.id = NEW.subnet_id AND | 527 | WHERE maasserver_subnet.id = NEW.subnet_id AND |
111 | 525 | maasserver_subnet.vlan_id = maasserver_vlan.id; | 528 | maasserver_subnet.vlan_id = maasserver_vlan.id; |
115 | 526 | IF vlan.dhcp_on THEN | 529 | PERFORM sys_dhcp_alert(vlan); |
113 | 527 | PERFORM sys_dhcp_alert(vlan); | ||
114 | 528 | END IF; | ||
116 | 529 | END IF; | 530 | END IF; |
117 | 530 | RETURN NEW; | 531 | RETURN NEW; |
118 | 531 | END; | 532 | END; |
119 | @@ -556,17 +557,11 @@ | |||
120 | 556 | maasserver_subnet.vlan_id = maasserver_vlan.id; | 557 | maasserver_subnet.vlan_id = maasserver_vlan.id; |
121 | 557 | IF old_vlan.id != new_vlan.id THEN | 558 | IF old_vlan.id != new_vlan.id THEN |
122 | 558 | -- Different VLAN's; update each if DHCP enabled. | 559 | -- Different VLAN's; update each if DHCP enabled. |
129 | 559 | IF old_vlan.dhcp_on THEN | 560 | PERFORM sys_dhcp_alert(old_vlan); |
130 | 560 | PERFORM sys_dhcp_alert(old_vlan); | 561 | PERFORM sys_dhcp_alert(new_vlan); |
125 | 561 | END IF; | ||
126 | 562 | IF new_vlan.dhcp_on THEN | ||
127 | 563 | PERFORM sys_dhcp_alert(new_vlan); | ||
128 | 564 | END IF; | ||
131 | 565 | ELSE | 562 | ELSE |
132 | 566 | -- Same VLAN so only need to update once. | 563 | -- Same VLAN so only need to update once. |
136 | 567 | IF new_vlan.dhcp_on THEN | 564 | PERFORM sys_dhcp_alert(new_vlan); |
134 | 568 | PERFORM sys_dhcp_alert(new_vlan); | ||
135 | 569 | END IF; | ||
137 | 570 | END IF; | 565 | END IF; |
138 | 571 | ELSIF (OLD.ip IS NULL AND NEW.ip IS NOT NULL) OR | 566 | ELSIF (OLD.ip IS NULL AND NEW.ip IS NOT NULL) OR |
139 | 572 | (OLD.ip IS NOT NULL and NEW.ip IS NULL) OR | 567 | (OLD.ip IS NOT NULL and NEW.ip IS NULL) OR |
140 | @@ -576,9 +571,7 @@ | |||
141 | 576 | FROM maasserver_vlan, maasserver_subnet | 571 | FROM maasserver_vlan, maasserver_subnet |
142 | 577 | WHERE maasserver_subnet.id = NEW.subnet_id AND | 572 | WHERE maasserver_subnet.id = NEW.subnet_id AND |
143 | 578 | maasserver_subnet.vlan_id = maasserver_vlan.id; | 573 | maasserver_subnet.vlan_id = maasserver_vlan.id; |
147 | 579 | IF new_vlan.dhcp_on THEN | 574 | PERFORM sys_dhcp_alert(new_vlan); |
145 | 580 | PERFORM sys_dhcp_alert(new_vlan); | ||
146 | 581 | END IF; | ||
148 | 582 | END IF; | 575 | END IF; |
149 | 583 | END IF; | 576 | END IF; |
150 | 584 | RETURN NEW; | 577 | RETURN NEW; |
151 | @@ -600,9 +593,7 @@ | |||
152 | 600 | FROM maasserver_vlan, maasserver_subnet | 593 | FROM maasserver_vlan, maasserver_subnet |
153 | 601 | WHERE maasserver_subnet.id = OLD.subnet_id AND | 594 | WHERE maasserver_subnet.id = OLD.subnet_id AND |
154 | 602 | maasserver_subnet.vlan_id = maasserver_vlan.id; | 595 | maasserver_subnet.vlan_id = maasserver_vlan.id; |
158 | 603 | IF vlan.dhcp_on THEN | 596 | PERFORM sys_dhcp_alert(vlan); |
156 | 604 | PERFORM sys_dhcp_alert(vlan); | ||
157 | 605 | END IF; | ||
159 | 606 | END IF; | 597 | END IF; |
160 | 607 | RETURN NEW; | 598 | RETURN NEW; |
161 | 608 | END; | 599 | END; |
162 | @@ -635,8 +626,7 @@ | |||
163 | 635 | AND maasserver_staticipaddress.alloc_type != 6 | 626 | AND maasserver_staticipaddress.alloc_type != 6 |
164 | 636 | AND maasserver_staticipaddress.ip IS NOT NULL | 627 | AND maasserver_staticipaddress.ip IS NOT NULL |
165 | 637 | AND host(maasserver_staticipaddress.ip) != '' | 628 | AND host(maasserver_staticipaddress.ip) != '' |
168 | 638 | AND maasserver_vlan.id = maasserver_subnet.vlan_id | 629 | AND maasserver_vlan.id = maasserver_subnet.vlan_id) |
167 | 639 | AND maasserver_vlan.dhcp_on) | ||
169 | 640 | LOOP | 630 | LOOP |
170 | 641 | PERFORM sys_dhcp_alert(vlan); | 631 | PERFORM sys_dhcp_alert(vlan); |
171 | 642 | END LOOP; | 632 | END LOOP; |
172 | @@ -673,8 +663,7 @@ | |||
173 | 673 | AND maasserver_staticipaddress.alloc_type != 6 | 663 | AND maasserver_staticipaddress.alloc_type != 6 |
174 | 674 | AND maasserver_staticipaddress.ip IS NOT NULL | 664 | AND maasserver_staticipaddress.ip IS NOT NULL |
175 | 675 | AND host(maasserver_staticipaddress.ip) != '' | 665 | AND host(maasserver_staticipaddress.ip) != '' |
178 | 676 | AND maasserver_vlan.id = maasserver_subnet.vlan_id | 666 | AND maasserver_vlan.id = maasserver_subnet.vlan_id) |
177 | 677 | AND maasserver_vlan.dhcp_on) | ||
179 | 678 | LOOP | 667 | LOOP |
180 | 679 | PERFORM sys_dhcp_alert(vlan); | 668 | PERFORM sys_dhcp_alert(vlan); |
181 | 680 | END LOOP; | 669 | END LOOP; |
182 | @@ -723,7 +712,8 @@ | |||
183 | 723 | maasserver_subnet | 712 | maasserver_subnet |
184 | 724 | WHERE maasserver_subnet.id = _subnet_id | 713 | WHERE maasserver_subnet.id = _subnet_id |
185 | 725 | AND maasserver_vlan.id = maasserver_subnet.vlan_id | 714 | AND maasserver_vlan.id = maasserver_subnet.vlan_id |
187 | 726 | AND maasserver_vlan.dhcp_on = true) | 715 | AND (maasserver_vlan.dhcp_on = true |
188 | 716 | OR maasserver_vlan.relay_vlan_id IS NOT NULL)) | ||
189 | 727 | LOOP | 717 | LOOP |
190 | 728 | PERFORM sys_dhcp_alert(vlan); | 718 | PERFORM sys_dhcp_alert(vlan); |
191 | 729 | END LOOP; | 719 | END LOOP; |
192 | @@ -744,8 +734,8 @@ | |||
193 | 744 | FROM maasserver_vlan, maasserver_interface | 734 | FROM maasserver_vlan, maasserver_interface |
194 | 745 | WHERE maasserver_interface.node_id = _node_id | 735 | WHERE maasserver_interface.node_id = _node_id |
195 | 746 | AND maasserver_interface.vlan_id = maasserver_vlan.id | 736 | AND maasserver_interface.vlan_id = maasserver_vlan.id |
198 | 747 | AND maasserver_vlan.dhcp_on = true | 737 | AND (maasserver_vlan.dhcp_on = true |
199 | 748 | ) | 738 | OR maasserver_vlan.relay_vlan_id IS NOT NULL)) |
200 | 749 | SELECT primary_rack_id FROM racks | 739 | SELECT primary_rack_id FROM racks |
201 | 750 | WHERE primary_rack_id IS NOT NULL | 740 | WHERE primary_rack_id IS NOT NULL |
202 | 751 | UNION | 741 | UNION |
203 | 752 | 742 | ||
204 | === modified file 'src/maasserver/triggers/testing.py' | |||
205 | --- src/maasserver/triggers/testing.py 2017-04-11 01:29:40 +0000 | |||
206 | +++ src/maasserver/triggers/testing.py 2017-05-05 15:31:09 +0000 | |||
207 | @@ -372,9 +372,11 @@ | |||
208 | 372 | event.delete() | 372 | event.delete() |
209 | 373 | 373 | ||
210 | 374 | @transactional | 374 | @transactional |
212 | 375 | def create_staticipaddress(self, params=None): | 375 | def create_staticipaddress(self, params=None, vlan=None): |
213 | 376 | if params is None: | 376 | if params is None: |
214 | 377 | params = {} | 377 | params = {} |
215 | 378 | if vlan is not None: | ||
216 | 379 | params['subnet'] = vlan.subnet_set.first() | ||
217 | 378 | return factory.make_StaticIPAddress(**params) | 380 | return factory.make_StaticIPAddress(**params) |
218 | 379 | 381 | ||
219 | 380 | @transactional | 382 | @transactional |
220 | 381 | 383 | ||
221 | === modified file 'src/maasserver/triggers/tests/test_system_listener.py' | |||
222 | --- src/maasserver/triggers/tests/test_system_listener.py 2017-01-28 00:51:47 +0000 | |||
223 | +++ src/maasserver/triggers/tests/test_system_listener.py 2017-05-05 15:31:09 +0000 | |||
224 | @@ -842,6 +842,115 @@ | |||
225 | 842 | 842 | ||
226 | 843 | @wait_for_reactor | 843 | @wait_for_reactor |
227 | 844 | @inlineCallbacks | 844 | @inlineCallbacks |
228 | 845 | def test_sends_messages_when_ip_address_created(self): | ||
229 | 846 | primary_rack = yield deferToDatabase(self.create_rack_controller) | ||
230 | 847 | secondary_rack = yield deferToDatabase(self.create_rack_controller) | ||
231 | 848 | vlan = yield deferToDatabase(self.create_vlan, params={ | ||
232 | 849 | "dhcp_on": True, | ||
233 | 850 | "primary_rack": primary_rack, | ||
234 | 851 | "secondary_rack": secondary_rack, | ||
235 | 852 | }) | ||
236 | 853 | relay_vlan = yield deferToDatabase(self.create_vlan, params={ | ||
237 | 854 | "relay_vlan": vlan | ||
238 | 855 | }) | ||
239 | 856 | yield deferToDatabase(self.create_subnet, { | ||
240 | 857 | "vlan": relay_vlan, | ||
241 | 858 | }) | ||
242 | 859 | yield deferToDatabase(register_system_triggers) | ||
243 | 860 | primary_rack_dv = DeferredValue() | ||
244 | 861 | secondary_rack_dv = DeferredValue() | ||
245 | 862 | listener = self.make_listener_without_delay() | ||
246 | 863 | listener.register( | ||
247 | 864 | "sys_dhcp_%s" % primary_rack.id, | ||
248 | 865 | lambda *args: primary_rack_dv.set(args)) | ||
249 | 866 | listener.register( | ||
250 | 867 | "sys_dhcp_%s" % secondary_rack.id, | ||
251 | 868 | lambda *args: secondary_rack_dv.set(args)) | ||
252 | 869 | yield listener.startService() | ||
253 | 870 | try: | ||
254 | 871 | yield deferToDatabase(self.create_staticipaddress, vlan=relay_vlan) | ||
255 | 872 | yield primary_rack_dv.get(timeout=2) | ||
256 | 873 | yield secondary_rack_dv.get(timeout=2) | ||
257 | 874 | finally: | ||
258 | 875 | yield listener.stopService() | ||
259 | 876 | |||
260 | 877 | @wait_for_reactor | ||
261 | 878 | @inlineCallbacks | ||
262 | 879 | def test_sends_messages_when_ip_address_updated(self): | ||
263 | 880 | primary_rack = yield deferToDatabase(self.create_rack_controller) | ||
264 | 881 | secondary_rack = yield deferToDatabase(self.create_rack_controller) | ||
265 | 882 | vlan = yield deferToDatabase(self.create_vlan, params={ | ||
266 | 883 | "dhcp_on": True, | ||
267 | 884 | "primary_rack": primary_rack, | ||
268 | 885 | "secondary_rack": secondary_rack, | ||
269 | 886 | }) | ||
270 | 887 | relay_vlan = yield deferToDatabase(self.create_vlan, params={ | ||
271 | 888 | "relay_vlan": vlan | ||
272 | 889 | }) | ||
273 | 890 | yield deferToDatabase(self.create_subnet, { | ||
274 | 891 | "vlan": relay_vlan, | ||
275 | 892 | }) | ||
276 | 893 | yield deferToDatabase(register_system_triggers) | ||
277 | 894 | primary_rack_dv = DeferredValue() | ||
278 | 895 | secondary_rack_dv = DeferredValue() | ||
279 | 896 | listener = self.make_listener_without_delay() | ||
280 | 897 | listener.register( | ||
281 | 898 | "sys_dhcp_%s" % primary_rack.id, | ||
282 | 899 | lambda *args: primary_rack_dv.set(args)) | ||
283 | 900 | listener.register( | ||
284 | 901 | "sys_dhcp_%s" % secondary_rack.id, | ||
285 | 902 | lambda *args: secondary_rack_dv.set(args)) | ||
286 | 903 | sip = yield deferToDatabase( | ||
287 | 904 | self.create_staticipaddress, vlan=relay_vlan) | ||
288 | 905 | yield listener.startService() | ||
289 | 906 | try: | ||
290 | 907 | yield deferToDatabase( | ||
291 | 908 | self.update_staticipaddress, sip.id, params={ | ||
292 | 909 | 'ip': '' | ||
293 | 910 | }) | ||
294 | 911 | yield primary_rack_dv.get(timeout=2) | ||
295 | 912 | yield secondary_rack_dv.get(timeout=2) | ||
296 | 913 | finally: | ||
297 | 914 | yield listener.stopService() | ||
298 | 915 | |||
299 | 916 | @wait_for_reactor | ||
300 | 917 | @inlineCallbacks | ||
301 | 918 | def test_sends_messages_when_ip_address_deleted(self): | ||
302 | 919 | primary_rack = yield deferToDatabase(self.create_rack_controller) | ||
303 | 920 | secondary_rack = yield deferToDatabase(self.create_rack_controller) | ||
304 | 921 | vlan = yield deferToDatabase(self.create_vlan, params={ | ||
305 | 922 | "dhcp_on": True, | ||
306 | 923 | "primary_rack": primary_rack, | ||
307 | 924 | "secondary_rack": secondary_rack, | ||
308 | 925 | }) | ||
309 | 926 | relay_vlan = yield deferToDatabase(self.create_vlan, params={ | ||
310 | 927 | "relay_vlan": vlan | ||
311 | 928 | }) | ||
312 | 929 | yield deferToDatabase(self.create_subnet, { | ||
313 | 930 | "vlan": relay_vlan, | ||
314 | 931 | }) | ||
315 | 932 | yield deferToDatabase(register_system_triggers) | ||
316 | 933 | primary_rack_dv = DeferredValue() | ||
317 | 934 | secondary_rack_dv = DeferredValue() | ||
318 | 935 | listener = self.make_listener_without_delay() | ||
319 | 936 | listener.register( | ||
320 | 937 | "sys_dhcp_%s" % primary_rack.id, | ||
321 | 938 | lambda *args: primary_rack_dv.set(args)) | ||
322 | 939 | listener.register( | ||
323 | 940 | "sys_dhcp_%s" % secondary_rack.id, | ||
324 | 941 | lambda *args: secondary_rack_dv.set(args)) | ||
325 | 942 | sip = yield deferToDatabase( | ||
326 | 943 | self.create_staticipaddress, vlan=relay_vlan) | ||
327 | 944 | yield listener.startService() | ||
328 | 945 | try: | ||
329 | 946 | yield deferToDatabase(self.delete_staticipaddress, sip.id) | ||
330 | 947 | yield primary_rack_dv.get(timeout=2) | ||
331 | 948 | yield secondary_rack_dv.get(timeout=2) | ||
332 | 949 | finally: | ||
333 | 950 | yield listener.stopService() | ||
334 | 951 | |||
335 | 952 | @wait_for_reactor | ||
336 | 953 | @inlineCallbacks | ||
337 | 845 | def test_sends_messages_when_relay_vlan_unset(self): | 954 | def test_sends_messages_when_relay_vlan_unset(self): |
338 | 846 | yield deferToDatabase(register_system_triggers) | 955 | yield deferToDatabase(register_system_triggers) |
339 | 847 | primary_rack = yield deferToDatabase(self.create_rack_controller) | 956 | primary_rack = yield deferToDatabase(self.create_rack_controller) |
340 | @@ -1283,6 +1392,11 @@ | |||
341 | 1283 | MAASTransactionServerTestCase, TransactionalHelpersMixin): | 1392 | MAASTransactionServerTestCase, TransactionalHelpersMixin): |
342 | 1284 | """End-to-end test for the DHCP triggers code.""" | 1393 | """End-to-end test for the DHCP triggers code.""" |
343 | 1285 | 1394 | ||
344 | 1395 | scenarios = ( | ||
345 | 1396 | ('with_dhcp_relay', {"dhcp_relay": True}), | ||
346 | 1397 | ('without_dhcp_relay', {"dhcp_relay": False}), | ||
347 | 1398 | ) | ||
348 | 1399 | |||
349 | 1286 | @wait_for_reactor | 1400 | @wait_for_reactor |
350 | 1287 | @inlineCallbacks | 1401 | @inlineCallbacks |
351 | 1288 | def test_sends_message_for_new_managed_dhcp_range(self): | 1402 | def test_sends_message_for_new_managed_dhcp_range(self): |
352 | @@ -1294,12 +1408,16 @@ | |||
353 | 1294 | "primary_rack": primary_rack, | 1408 | "primary_rack": primary_rack, |
354 | 1295 | "secondary_rack": secondary_rack, | 1409 | "secondary_rack": secondary_rack, |
355 | 1296 | }) | 1410 | }) |
356 | 1411 | relay_vlan = None | ||
357 | 1412 | if self.dhcp_relay: | ||
358 | 1413 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
359 | 1414 | "relay_vlan": vlan, | ||
360 | 1415 | }) | ||
361 | 1297 | network = factory.make_ipv4_network() | 1416 | network = factory.make_ipv4_network() |
362 | 1298 | subnet = yield deferToDatabase(self.create_subnet, { | 1417 | subnet = yield deferToDatabase(self.create_subnet, { |
363 | 1299 | "cidr": str(network.cidr), | 1418 | "cidr": str(network.cidr), |
365 | 1300 | "vlan": vlan, | 1419 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
366 | 1301 | }) | 1420 | }) |
367 | 1302 | |||
368 | 1303 | listener = self.make_listener_without_delay() | 1421 | listener = self.make_listener_without_delay() |
369 | 1304 | primary_dv = DeferredValue() | 1422 | primary_dv = DeferredValue() |
370 | 1305 | listener.register( | 1423 | listener.register( |
371 | @@ -1336,10 +1454,15 @@ | |||
372 | 1336 | "primary_rack": primary_rack, | 1454 | "primary_rack": primary_rack, |
373 | 1337 | "secondary_rack": secondary_rack, | 1455 | "secondary_rack": secondary_rack, |
374 | 1338 | }) | 1456 | }) |
375 | 1457 | relay_vlan = None | ||
376 | 1458 | if self.dhcp_relay: | ||
377 | 1459 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
378 | 1460 | "relay_vlan": vlan, | ||
379 | 1461 | }) | ||
380 | 1339 | network = factory.make_ipv4_network() | 1462 | network = factory.make_ipv4_network() |
381 | 1340 | subnet = yield deferToDatabase(self.create_subnet, { | 1463 | subnet = yield deferToDatabase(self.create_subnet, { |
382 | 1341 | "cidr": str(network.cidr), | 1464 | "cidr": str(network.cidr), |
384 | 1342 | "vlan": vlan, | 1465 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
385 | 1343 | }) | 1466 | }) |
386 | 1344 | network = subnet.get_ipnetwork() | 1467 | network = subnet.get_ipnetwork() |
387 | 1345 | start_ip = str(IPAddress(network.first + 2)) | 1468 | start_ip = str(IPAddress(network.first + 2)) |
388 | @@ -1382,10 +1505,15 @@ | |||
389 | 1382 | "primary_rack": primary_rack, | 1505 | "primary_rack": primary_rack, |
390 | 1383 | "secondary_rack": secondary_rack, | 1506 | "secondary_rack": secondary_rack, |
391 | 1384 | }) | 1507 | }) |
392 | 1508 | relay_vlan = None | ||
393 | 1509 | if self.dhcp_relay: | ||
394 | 1510 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
395 | 1511 | "relay_vlan": vlan, | ||
396 | 1512 | }) | ||
397 | 1385 | network = factory.make_ipv4_network() | 1513 | network = factory.make_ipv4_network() |
398 | 1386 | subnet = yield deferToDatabase(self.create_subnet, { | 1514 | subnet = yield deferToDatabase(self.create_subnet, { |
399 | 1387 | "cidr": str(network.cidr), | 1515 | "cidr": str(network.cidr), |
401 | 1388 | "vlan": vlan, | 1516 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
402 | 1389 | }) | 1517 | }) |
403 | 1390 | network = subnet.get_ipnetwork() | 1518 | network = subnet.get_ipnetwork() |
404 | 1391 | start_ip = str(IPAddress(network.first + 2)) | 1519 | start_ip = str(IPAddress(network.first + 2)) |
405 | @@ -1427,10 +1555,15 @@ | |||
406 | 1427 | "primary_rack": primary_rack, | 1555 | "primary_rack": primary_rack, |
407 | 1428 | "secondary_rack": secondary_rack, | 1556 | "secondary_rack": secondary_rack, |
408 | 1429 | }) | 1557 | }) |
409 | 1558 | relay_vlan = None | ||
410 | 1559 | if self.dhcp_relay: | ||
411 | 1560 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
412 | 1561 | "relay_vlan": vlan, | ||
413 | 1562 | }) | ||
414 | 1430 | network = factory.make_ipv4_network() | 1563 | network = factory.make_ipv4_network() |
415 | 1431 | subnet = yield deferToDatabase(self.create_subnet, { | 1564 | subnet = yield deferToDatabase(self.create_subnet, { |
416 | 1432 | "cidr": str(network.cidr), | 1565 | "cidr": str(network.cidr), |
418 | 1433 | "vlan": vlan, | 1566 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
419 | 1434 | }) | 1567 | }) |
420 | 1435 | network = subnet.get_ipnetwork() | 1568 | network = subnet.get_ipnetwork() |
421 | 1436 | start_ip = str(IPAddress(network.first + 2)) | 1569 | start_ip = str(IPAddress(network.first + 2)) |
422 | @@ -1472,10 +1605,15 @@ | |||
423 | 1472 | "primary_rack": primary_rack, | 1605 | "primary_rack": primary_rack, |
424 | 1473 | "secondary_rack": secondary_rack, | 1606 | "secondary_rack": secondary_rack, |
425 | 1474 | }) | 1607 | }) |
426 | 1608 | relay_vlan = None | ||
427 | 1609 | if self.dhcp_relay: | ||
428 | 1610 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
429 | 1611 | "relay_vlan": vlan, | ||
430 | 1612 | }) | ||
431 | 1475 | network = factory.make_ipv4_network() | 1613 | network = factory.make_ipv4_network() |
432 | 1476 | subnet = yield deferToDatabase(self.create_subnet, { | 1614 | subnet = yield deferToDatabase(self.create_subnet, { |
433 | 1477 | "cidr": str(network.cidr), | 1615 | "cidr": str(network.cidr), |
435 | 1478 | "vlan": vlan, | 1616 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
436 | 1479 | }) | 1617 | }) |
437 | 1480 | network = subnet.get_ipnetwork() | 1618 | network = subnet.get_ipnetwork() |
438 | 1481 | start_ip = str(IPAddress(network.first + 2)) | 1619 | start_ip = str(IPAddress(network.first + 2)) |
439 | @@ -1536,7 +1674,7 @@ | |||
440 | 1536 | lambda *args: secondary_dv.set(args)) | 1674 | lambda *args: secondary_dv.set(args)) |
441 | 1537 | yield listener.startService() | 1675 | yield listener.startService() |
442 | 1538 | try: | 1676 | try: |
444 | 1539 | yield deferToDatabase(self.create_staticipaddress, { | 1677 | yield deferToDatabase(self.create_staticipaddress, params={ |
445 | 1540 | "subnet": subnet, | 1678 | "subnet": subnet, |
446 | 1541 | "alloc_type": IPADDRESS_TYPE.USER_RESERVED, | 1679 | "alloc_type": IPADDRESS_TYPE.USER_RESERVED, |
447 | 1542 | "user": user, | 1680 | "user": user, |
448 | @@ -1987,6 +2125,11 @@ | |||
449 | 1987 | MAASTransactionServerTestCase, TransactionalHelpersMixin): | 2125 | MAASTransactionServerTestCase, TransactionalHelpersMixin): |
450 | 1988 | """End-to-end test for the DHCP triggers code.""" | 2126 | """End-to-end test for the DHCP triggers code.""" |
451 | 1989 | 2127 | ||
452 | 2128 | scenarios = ( | ||
453 | 2129 | ('with_dhcp_relay', {"dhcp_relay": True}), | ||
454 | 2130 | ('without_dhcp_relay', {"dhcp_relay": False}), | ||
455 | 2131 | ) | ||
456 | 2132 | |||
457 | 1990 | @wait_for_reactor | 2133 | @wait_for_reactor |
458 | 1991 | @inlineCallbacks | 2134 | @inlineCallbacks |
459 | 1992 | def test_sends_message_for_global_dhcp_snippet_inserted(self): | 2135 | def test_sends_message_for_global_dhcp_snippet_inserted(self): |
460 | @@ -1996,8 +2139,13 @@ | |||
461 | 1996 | "dhcp_on": True, | 2139 | "dhcp_on": True, |
462 | 1997 | "primary_rack": primary_rack, | 2140 | "primary_rack": primary_rack, |
463 | 1998 | }) | 2141 | }) |
464 | 2142 | relay_vlan = None | ||
465 | 2143 | if self.dhcp_relay: | ||
466 | 2144 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
467 | 2145 | "relay_vlan": vlan, | ||
468 | 2146 | }) | ||
469 | 1999 | yield deferToDatabase(self.create_subnet, { | 2147 | yield deferToDatabase(self.create_subnet, { |
471 | 2000 | "vlan": vlan, | 2148 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
472 | 2001 | }) | 2149 | }) |
473 | 2002 | dv = DeferredValue() | 2150 | dv = DeferredValue() |
474 | 2003 | listener = self.make_listener_without_delay() | 2151 | listener = self.make_listener_without_delay() |
475 | @@ -2022,8 +2170,13 @@ | |||
476 | 2022 | "dhcp_on": True, | 2170 | "dhcp_on": True, |
477 | 2023 | "primary_rack": primary_rack, | 2171 | "primary_rack": primary_rack, |
478 | 2024 | }) | 2172 | }) |
479 | 2173 | relay_vlan = None | ||
480 | 2174 | if self.dhcp_relay: | ||
481 | 2175 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
482 | 2176 | "relay_vlan": vlan, | ||
483 | 2177 | }) | ||
484 | 2025 | yield deferToDatabase(self.create_subnet, { | 2178 | yield deferToDatabase(self.create_subnet, { |
486 | 2026 | "vlan": vlan, | 2179 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
487 | 2027 | }) | 2180 | }) |
488 | 2028 | dv = DeferredValue() | 2181 | dv = DeferredValue() |
489 | 2029 | listener = self.make_listener_without_delay() | 2182 | listener = self.make_listener_without_delay() |
490 | @@ -2051,8 +2204,13 @@ | |||
491 | 2051 | "dhcp_on": True, | 2204 | "dhcp_on": True, |
492 | 2052 | "primary_rack": primary_rack, | 2205 | "primary_rack": primary_rack, |
493 | 2053 | }) | 2206 | }) |
494 | 2207 | relay_vlan = None | ||
495 | 2208 | if self.dhcp_relay: | ||
496 | 2209 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
497 | 2210 | "relay_vlan": vlan, | ||
498 | 2211 | }) | ||
499 | 2054 | subnet = yield deferToDatabase(self.create_subnet, { | 2212 | subnet = yield deferToDatabase(self.create_subnet, { |
501 | 2055 | "vlan": vlan, | 2213 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
502 | 2056 | }) | 2214 | }) |
503 | 2057 | dv = DeferredValue() | 2215 | dv = DeferredValue() |
504 | 2058 | listener = self.make_listener_without_delay() | 2216 | listener = self.make_listener_without_delay() |
505 | @@ -2078,8 +2236,13 @@ | |||
506 | 2078 | "dhcp_on": True, | 2236 | "dhcp_on": True, |
507 | 2079 | "primary_rack": primary_rack, | 2237 | "primary_rack": primary_rack, |
508 | 2080 | }) | 2238 | }) |
509 | 2239 | relay_vlan = None | ||
510 | 2240 | if self.dhcp_relay: | ||
511 | 2241 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
512 | 2242 | "relay_vlan": vlan, | ||
513 | 2243 | }) | ||
514 | 2081 | yield deferToDatabase(self.create_subnet, { | 2244 | yield deferToDatabase(self.create_subnet, { |
516 | 2082 | "vlan": vlan, | 2245 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
517 | 2083 | }) | 2246 | }) |
518 | 2084 | node = yield deferToDatabase(self.create_node) | 2247 | node = yield deferToDatabase(self.create_node) |
519 | 2085 | yield deferToDatabase(self.create_interface, { | 2248 | yield deferToDatabase(self.create_interface, { |
520 | @@ -2110,8 +2273,13 @@ | |||
521 | 2110 | "dhcp_on": True, | 2273 | "dhcp_on": True, |
522 | 2111 | "primary_rack": primary_rack, | 2274 | "primary_rack": primary_rack, |
523 | 2112 | }) | 2275 | }) |
524 | 2276 | relay_vlan = None | ||
525 | 2277 | if self.dhcp_relay: | ||
526 | 2278 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
527 | 2279 | "relay_vlan": vlan, | ||
528 | 2280 | }) | ||
529 | 2113 | yield deferToDatabase(self.create_subnet, { | 2281 | yield deferToDatabase(self.create_subnet, { |
531 | 2114 | "vlan": vlan, | 2282 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
532 | 2115 | }) | 2283 | }) |
533 | 2116 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { | 2284 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { |
534 | 2117 | "enabled": True, | 2285 | "enabled": True, |
535 | @@ -2140,8 +2308,13 @@ | |||
536 | 2140 | "dhcp_on": True, | 2308 | "dhcp_on": True, |
537 | 2141 | "primary_rack": primary_rack, | 2309 | "primary_rack": primary_rack, |
538 | 2142 | }) | 2310 | }) |
539 | 2311 | relay_vlan = None | ||
540 | 2312 | if self.dhcp_relay: | ||
541 | 2313 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
542 | 2314 | "relay_vlan": vlan, | ||
543 | 2315 | }) | ||
544 | 2143 | yield deferToDatabase(self.create_subnet, { | 2316 | yield deferToDatabase(self.create_subnet, { |
546 | 2144 | "vlan": vlan, | 2317 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
547 | 2145 | }) | 2318 | }) |
548 | 2146 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { | 2319 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { |
549 | 2147 | "enabled": False, | 2320 | "enabled": False, |
550 | @@ -2173,8 +2346,13 @@ | |||
551 | 2173 | "dhcp_on": True, | 2346 | "dhcp_on": True, |
552 | 2174 | "primary_rack": primary_rack, | 2347 | "primary_rack": primary_rack, |
553 | 2175 | }) | 2348 | }) |
554 | 2349 | relay_vlan = None | ||
555 | 2350 | if self.dhcp_relay: | ||
556 | 2351 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
557 | 2352 | "relay_vlan": vlan, | ||
558 | 2353 | }) | ||
559 | 2176 | yield deferToDatabase(self.create_subnet, { | 2354 | yield deferToDatabase(self.create_subnet, { |
561 | 2177 | "vlan": vlan, | 2355 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
562 | 2178 | }) | 2356 | }) |
563 | 2179 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { | 2357 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { |
564 | 2180 | "enabled": False, | 2358 | "enabled": False, |
565 | @@ -2202,8 +2380,13 @@ | |||
566 | 2202 | "dhcp_on": True, | 2380 | "dhcp_on": True, |
567 | 2203 | "primary_rack": primary_rack, | 2381 | "primary_rack": primary_rack, |
568 | 2204 | }) | 2382 | }) |
569 | 2383 | relay_vlan = None | ||
570 | 2384 | if self.dhcp_relay: | ||
571 | 2385 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
572 | 2386 | "relay_vlan": vlan, | ||
573 | 2387 | }) | ||
574 | 2205 | yield deferToDatabase(self.create_subnet, { | 2388 | yield deferToDatabase(self.create_subnet, { |
576 | 2206 | "vlan": vlan, | 2389 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
577 | 2207 | }) | 2390 | }) |
578 | 2208 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { | 2391 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { |
579 | 2209 | "enabled": True, | 2392 | "enabled": True, |
580 | @@ -2231,8 +2414,13 @@ | |||
581 | 2231 | "dhcp_on": True, | 2414 | "dhcp_on": True, |
582 | 2232 | "primary_rack": primary_rack, | 2415 | "primary_rack": primary_rack, |
583 | 2233 | }) | 2416 | }) |
584 | 2417 | relay_vlan = None | ||
585 | 2418 | if self.dhcp_relay: | ||
586 | 2419 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
587 | 2420 | "relay_vlan": vlan, | ||
588 | 2421 | }) | ||
589 | 2234 | subnet = yield deferToDatabase(self.create_subnet, { | 2422 | subnet = yield deferToDatabase(self.create_subnet, { |
591 | 2235 | "vlan": vlan, | 2423 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
592 | 2236 | }) | 2424 | }) |
593 | 2237 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { | 2425 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { |
594 | 2238 | "enabled": True, | 2426 | "enabled": True, |
595 | @@ -2260,8 +2448,13 @@ | |||
596 | 2260 | "dhcp_on": True, | 2448 | "dhcp_on": True, |
597 | 2261 | "primary_rack": primary_rack, | 2449 | "primary_rack": primary_rack, |
598 | 2262 | }) | 2450 | }) |
599 | 2451 | relay_vlan = None | ||
600 | 2452 | if self.dhcp_relay: | ||
601 | 2453 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
602 | 2454 | "relay_vlan": vlan, | ||
603 | 2455 | }) | ||
604 | 2263 | yield deferToDatabase(self.create_subnet, { | 2456 | yield deferToDatabase(self.create_subnet, { |
606 | 2264 | "vlan": vlan, | 2457 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
607 | 2265 | }) | 2458 | }) |
608 | 2266 | node = yield deferToDatabase(self.create_node) | 2459 | node = yield deferToDatabase(self.create_node) |
609 | 2267 | yield deferToDatabase(self.create_interface, { | 2460 | yield deferToDatabase(self.create_interface, { |
610 | @@ -2294,8 +2487,13 @@ | |||
611 | 2294 | "dhcp_on": True, | 2487 | "dhcp_on": True, |
612 | 2295 | "primary_rack": primary_rack, | 2488 | "primary_rack": primary_rack, |
613 | 2296 | }) | 2489 | }) |
614 | 2490 | relay_vlan = None | ||
615 | 2491 | if self.dhcp_relay: | ||
616 | 2492 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
617 | 2493 | "relay_vlan": vlan, | ||
618 | 2494 | }) | ||
619 | 2297 | yield deferToDatabase(self.create_subnet, { | 2495 | yield deferToDatabase(self.create_subnet, { |
621 | 2298 | "vlan": vlan, | 2496 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
622 | 2299 | }) | 2497 | }) |
623 | 2300 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { | 2498 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { |
624 | 2301 | "enabled": True, | 2499 | "enabled": True, |
625 | @@ -2321,8 +2519,13 @@ | |||
626 | 2321 | "dhcp_on": True, | 2519 | "dhcp_on": True, |
627 | 2322 | "primary_rack": primary_rack, | 2520 | "primary_rack": primary_rack, |
628 | 2323 | }) | 2521 | }) |
629 | 2522 | relay_vlan = None | ||
630 | 2523 | if self.dhcp_relay: | ||
631 | 2524 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
632 | 2525 | "relay_vlan": vlan, | ||
633 | 2526 | }) | ||
634 | 2324 | yield deferToDatabase(self.create_subnet, { | 2527 | yield deferToDatabase(self.create_subnet, { |
636 | 2325 | "vlan": vlan, | 2528 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
637 | 2326 | }) | 2529 | }) |
638 | 2327 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { | 2530 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { |
639 | 2328 | "enabled": False, | 2531 | "enabled": False, |
640 | @@ -2351,8 +2554,13 @@ | |||
641 | 2351 | "dhcp_on": True, | 2554 | "dhcp_on": True, |
642 | 2352 | "primary_rack": primary_rack, | 2555 | "primary_rack": primary_rack, |
643 | 2353 | }) | 2556 | }) |
644 | 2557 | relay_vlan = None | ||
645 | 2558 | if self.dhcp_relay: | ||
646 | 2559 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
647 | 2560 | "relay_vlan": vlan, | ||
648 | 2561 | }) | ||
649 | 2354 | subnet = yield deferToDatabase(self.create_subnet, { | 2562 | subnet = yield deferToDatabase(self.create_subnet, { |
651 | 2355 | "vlan": vlan, | 2563 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
652 | 2356 | }) | 2564 | }) |
653 | 2357 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { | 2565 | dhcp_snippet = yield deferToDatabase(self.create_dhcp_snippet, { |
654 | 2358 | "enabled": True, | 2566 | "enabled": True, |
655 | @@ -2379,8 +2587,13 @@ | |||
656 | 2379 | "dhcp_on": True, | 2587 | "dhcp_on": True, |
657 | 2380 | "primary_rack": primary_rack, | 2588 | "primary_rack": primary_rack, |
658 | 2381 | }) | 2589 | }) |
659 | 2590 | relay_vlan = None | ||
660 | 2591 | if self.dhcp_relay: | ||
661 | 2592 | relay_vlan = yield deferToDatabase(self.create_vlan, { | ||
662 | 2593 | "relay_vlan": vlan, | ||
663 | 2594 | }) | ||
664 | 2382 | yield deferToDatabase(self.create_subnet, { | 2595 | yield deferToDatabase(self.create_subnet, { |
666 | 2383 | "vlan": vlan, | 2596 | "vlan": relay_vlan if self.dhcp_relay else vlan, |
667 | 2384 | }) | 2597 | }) |
668 | 2385 | node = yield deferToDatabase(self.create_node) | 2598 | node = yield deferToDatabase(self.create_node) |
669 | 2386 | yield deferToDatabase(self.create_interface, { | 2599 | yield deferToDatabase(self.create_interface, { |
Looks good mostly. But have some issues in the dhcp alert procedure that needs to be fixed.