274
277
yield overloaded_dv.get(timeout=2)
275
278
yield process_dv.get(timeout=2)
277
(None, "unwatch_%s" % rack_controller.system_id),
280
"sys_core_%s" % overloaded_region_process.id,
281
"unwatch_%s" % rack_controller.id),
278
282
overloaded_dv.value)
280
(None, "watch_%s" % rack_controller.system_id),
284
"sys_core_%s" % region_process.id,
285
"watch_%s" % rack_controller.id),
281
286
process_dv.value)
282
287
rack_controller = yield deferToDatabase(
283
288
self.reload_object, rack_controller)
431
436
self.delete_region_rack_rpc_connection, connection.id)
432
437
yield process_dv.get(timeout=2)
433
438
yield other_process_dv.get(timeout=2)
435
(None, "unwatch_%s" % rack_controller.system_id),
440
"sys_core_%s" % region_process.id,
441
"unwatch_%s" % rack_controller.id),
436
442
process_dv.value)
438
(None, "watch_%s" % rack_controller.system_id),
444
"sys_core_%s" % other_region_process.id,
445
"watch_%s" % rack_controller.id),
439
446
other_process_dv.value)
440
447
rack_controller = yield deferToDatabase(
441
448
self.reload_object, rack_controller)
553
561
@wait_for_reactor
563
def test_sends_message_for_both_when_secondary_set(self):
564
yield deferToDatabase(register_system_triggers)
565
primary_rack = yield deferToDatabase(self.create_rack_controller)
566
secondary_rack = yield deferToDatabase(self.create_rack_controller)
567
vlan = yield deferToDatabase(self.create_vlan, {
569
"primary_rack": primary_rack,
572
primary_dv = DeferredValue()
573
secondary_dv = DeferredValue()
574
listener = self.make_listener_without_delay()
576
"sys_dhcp_%s" % primary_rack.id,
577
lambda *args: primary_dv.set(args))
579
"sys_dhcp_%s" % secondary_rack.id,
580
lambda *args: secondary_dv.set(args))
581
yield listener.startService()
583
yield deferToDatabase(self.update_vlan, vlan.id, {
584
"secondary_rack": secondary_rack,
586
yield primary_dv.get(timeout=2)
587
yield secondary_dv.get(timeout=2)
589
yield listener.stopService()
593
def test_sends_message_for_both_when_secondary_cleared(self):
594
yield deferToDatabase(register_system_triggers)
595
primary_rack = yield deferToDatabase(self.create_rack_controller)
596
old_secondary_rack = yield deferToDatabase(self.create_rack_controller)
597
vlan = yield deferToDatabase(self.create_vlan, {
599
"primary_rack": primary_rack,
600
"secondary_rack": old_secondary_rack,
603
primary_dv = DeferredValue()
604
old_secondary_dv = DeferredValue()
605
listener = self.make_listener_without_delay()
607
"sys_dhcp_%s" % primary_rack.id,
608
lambda *args: primary_dv.set(args))
610
"sys_dhcp_%s" % old_secondary_rack.id,
611
lambda *args: old_secondary_dv.set(args))
612
yield listener.startService()
614
yield deferToDatabase(self.update_vlan, vlan.id, {
615
"secondary_rack": None,
617
yield primary_dv.get(timeout=2)
618
yield old_secondary_dv.get(timeout=2)
620
yield listener.stopService()
555
624
def test_sends_message_for_old_primary_when_turned_off(self):
556
625
yield deferToDatabase(register_system_triggers)
557
626
primary_rack = yield deferToDatabase(self.create_rack_controller)
643
712
def test_sends_message_for_old_and_new_secondary_when_changed(self):
644
713
yield deferToDatabase(register_system_triggers)
714
primary_rack = yield deferToDatabase(self.create_rack_controller)
645
715
old_secondary_rack = yield deferToDatabase(self.create_rack_controller)
646
716
new_secondary_rack = yield deferToDatabase(self.create_rack_controller)
647
717
vlan = yield deferToDatabase(self.create_vlan, {
719
"primary_rack": primary_rack,
649
720
"secondary_rack": old_secondary_rack,
723
primary_dv = DeferredValue()
652
724
old_secondary_dv = DeferredValue()
653
725
new_secondary_rack_dv = DeferredValue()
654
726
listener = self.make_listener_without_delay()
655
727
listener.register(
728
"sys_dhcp_%s" % primary_rack.id,
729
lambda *args: primary_dv.set(args))
656
731
"sys_dhcp_%s" % old_secondary_rack.id,
657
732
lambda *args: old_secondary_dv.set(args))
658
733
listener.register(
795
871
yield listener.startService()
797
873
network = factory.make_ip4_or_6_network()
874
gateway_ip = yield deferToDatabase(
875
factory.pick_ip_in_network, network)
798
876
yield deferToDatabase(self.update_subnet, subnet.id, {
799
877
"cidr": str(network.cidr),
800
"gateway_ip": factory.pick_ip_in_network(network),
878
"gateway_ip": gateway_ip,
802
880
yield primary_dv.get(timeout=2)
803
881
yield secondary_dv.get(timeout=2)
830
908
lambda *args: secondary_dv.set(args))
831
909
yield listener.startService()
833
yield deferToDatabase(self.update_subnet, subnet.id, {
834
"gateway_ip": factory.pick_ip_in_network(
835
subnet.get_ipnetwork(), but_not=[subnet.gateway_ip]),
911
gateway_ip = yield deferToDatabase(
912
factory.pick_ip_in_network, subnet.get_ipnetwork(),
913
but_not=[subnet.gateway_ip])
914
yield deferToDatabase(self.update_subnet, subnet.id, {
915
"gateway_ip": gateway_ip,
917
yield primary_dv.get(timeout=2)
918
yield secondary_dv.get(timeout=2)
920
yield listener.stopService()
924
def test_sends_message_for_vlan_when_gateway_ip_is_set(self):
925
yield deferToDatabase(register_system_triggers)
926
primary_rack = yield deferToDatabase(self.create_rack_controller)
927
secondary_rack = yield deferToDatabase(self.create_rack_controller)
928
vlan = yield deferToDatabase(self.create_vlan, {
930
"primary_rack": primary_rack,
931
"secondary_rack": secondary_rack,
933
subnet = yield deferToDatabase(self.create_subnet, {
936
# Make sure its empty. This test that it handles being set.
937
yield deferToDatabase(self.update_subnet, subnet.id, {
941
primary_dv = DeferredValue()
942
secondary_dv = DeferredValue()
943
listener = self.make_listener_without_delay()
945
"sys_dhcp_%s" % primary_rack.id,
946
lambda *args: primary_dv.set(args))
948
"sys_dhcp_%s" % secondary_rack.id,
949
lambda *args: secondary_dv.set(args))
950
yield listener.startService()
952
gateway_ip = yield deferToDatabase(
953
factory.pick_ip_in_network, subnet.get_ipnetwork())
954
yield deferToDatabase(self.update_subnet, subnet.id, {
955
"gateway_ip": gateway_ip,
957
yield primary_dv.get(timeout=2)
958
yield secondary_dv.get(timeout=2)
960
yield listener.stopService()
964
def test_sends_message_for_vlan_when_gateway_ip_is_cleared(self):
965
yield deferToDatabase(register_system_triggers)
966
primary_rack = yield deferToDatabase(self.create_rack_controller)
967
secondary_rack = yield deferToDatabase(self.create_rack_controller)
968
vlan = yield deferToDatabase(self.create_vlan, {
970
"primary_rack": primary_rack,
971
"secondary_rack": secondary_rack,
973
subnet = yield deferToDatabase(self.create_subnet, {
977
primary_dv = DeferredValue()
978
secondary_dv = DeferredValue()
979
listener = self.make_listener_without_delay()
981
"sys_dhcp_%s" % primary_rack.id,
982
lambda *args: primary_dv.set(args))
984
"sys_dhcp_%s" % secondary_rack.id,
985
lambda *args: secondary_dv.set(args))
986
yield listener.startService()
988
yield deferToDatabase(self.update_subnet, subnet.id, {
837
991
yield primary_dv.get(timeout=2)
838
992
yield secondary_dv.get(timeout=2)
865
1019
lambda *args: secondary_dv.set(args))
866
1020
yield listener.startService()
868
yield deferToDatabase(self.update_subnet, subnet.id, {
869
"dns_servers": [factory.pick_ip_in_network(
870
subnet.get_ipnetwork(), but_not=subnet.dns_servers)],
1022
dns_server = yield deferToDatabase(
1023
factory.pick_ip_in_network, subnet.get_ipnetwork(),
1024
but_not=subnet.dns_servers)
1025
yield deferToDatabase(self.update_subnet, subnet.id, {
1026
"dns_servers": [dns_server],
1028
yield primary_dv.get(timeout=2)
1029
yield secondary_dv.get(timeout=2)
1031
yield listener.stopService()
1035
def test_sends_message_for_vlan_when_dns_servers_is_set(self):
1036
yield deferToDatabase(register_system_triggers)
1037
primary_rack = yield deferToDatabase(self.create_rack_controller)
1038
secondary_rack = yield deferToDatabase(self.create_rack_controller)
1039
vlan = yield deferToDatabase(self.create_vlan, {
1041
"primary_rack": primary_rack,
1042
"secondary_rack": secondary_rack,
1044
subnet = yield deferToDatabase(self.create_subnet, {
1047
# Make sure its empty. This test that it handles being set.
1048
yield deferToDatabase(self.update_subnet, subnet.id, {
1052
primary_dv = DeferredValue()
1053
secondary_dv = DeferredValue()
1054
listener = self.make_listener_without_delay()
1056
"sys_dhcp_%s" % primary_rack.id,
1057
lambda *args: primary_dv.set(args))
1059
"sys_dhcp_%s" % secondary_rack.id,
1060
lambda *args: secondary_dv.set(args))
1061
yield listener.startService()
1063
dns_server = yield deferToDatabase(
1064
factory.pick_ip_in_network, subnet.get_ipnetwork(),
1065
but_not=subnet.dns_servers)
1066
yield deferToDatabase(self.update_subnet, subnet.id, {
1067
"dns_servers": [dns_server],
1069
yield primary_dv.get(timeout=2)
1070
yield secondary_dv.get(timeout=2)
1072
yield listener.stopService()
1076
def test_sends_message_for_vlan_when_dns_servers_is_cleared(self):
1077
yield deferToDatabase(register_system_triggers)
1078
primary_rack = yield deferToDatabase(self.create_rack_controller)
1079
secondary_rack = yield deferToDatabase(self.create_rack_controller)
1080
vlan = yield deferToDatabase(self.create_vlan, {
1082
"primary_rack": primary_rack,
1083
"secondary_rack": secondary_rack,
1085
subnet = yield deferToDatabase(self.create_subnet, {
1088
dns_server = yield deferToDatabase(
1089
factory.pick_ip_in_network, subnet.get_ipnetwork(),
1090
but_not=subnet.dns_servers)
1091
yield deferToDatabase(self.update_subnet, subnet.id, {
1092
"dns_servers": [dns_server],
1095
primary_dv = DeferredValue()
1096
secondary_dv = DeferredValue()
1097
listener = self.make_listener_without_delay()
1099
"sys_dhcp_%s" % primary_rack.id,
1100
lambda *args: primary_dv.set(args))
1102
"sys_dhcp_%s" % secondary_rack.id,
1103
lambda *args: secondary_dv.set(args))
1104
yield listener.startService()
1106
yield deferToDatabase(self.update_subnet, subnet.id, {
872
1109
yield primary_dv.get(timeout=2)
873
1110
yield secondary_dv.get(timeout=2)