33
33
def make_interface(network=None):
34
nodegroup = factory.make_node_group(
34
nodegroup = factory.make_NodeGroup(
35
35
status=NODEGROUP_STATUS.ACCEPTED,
36
36
management=NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS,
79
79
interface.display_management())
81
81
def test_name_accepts_network_interface_name(self):
82
cluster = factory.make_node_group()
82
cluster = factory.make_NodeGroup()
85
factory.make_node_group_interface(cluster, name='eth0').name)
85
factory.make_NodeGroupInterface(cluster, name='eth0').name)
87
87
def test_name_accepts_network_interface_name_with_alias(self):
88
cluster = factory.make_node_group()
88
cluster = factory.make_NodeGroup()
91
factory.make_node_group_interface(cluster, name='eth0:1').name)
91
factory.make_NodeGroupInterface(cluster, name='eth0:1').name)
93
93
def test_name_accepts_vlan_interface(self):
94
cluster = factory.make_node_group()
94
cluster = factory.make_NodeGroup()
97
factory.make_node_group_interface(cluster, name='eth0.1').name)
97
factory.make_NodeGroupInterface(cluster, name='eth0.1').name)
99
99
def test_name_accepts_dashes(self):
100
cluster = factory.make_node_group()
100
cluster = factory.make_NodeGroup()
101
101
self.assertEqual(
103
factory.make_node_group_interface(cluster, name='eth0-1').name)
103
factory.make_NodeGroupInterface(cluster, name='eth0-1').name)
105
105
def test_name_rejects_other_unusual_characters(self):
106
cluster = factory.make_node_group()
106
cluster = factory.make_NodeGroup()
107
107
self.assertRaises(
109
factory.make_node_group_interface, cluster, name='eth 0')
109
factory.make_NodeGroupInterface, cluster, name='eth 0')
111
111
def test_clean_ips_in_network_validates_IP(self):
112
112
network = IPNetwork('192.168.0.3/24')
120
120
'static_ip_range_high',
122
122
for field in checked_fields:
123
nodegroup = factory.make_node_group(
123
nodegroup = factory.make_NodeGroup(
124
124
network=network, management=NODEGROUPINTERFACE_MANAGEMENT.DHCP)
125
125
[interface] = nodegroup.get_managed_interfaces()
126
126
setattr(interface, field, ip_outside_network)
133
133
self.assertEqual({field: [message]}, exception.message_dict)
135
135
def test_clean_network(self):
136
nodegroup = factory.make_node_group(
136
nodegroup = factory.make_NodeGroup(
137
137
network=IPNetwork('192.168.0.3/24'),
138
138
management=NODEGROUPINTERFACE_MANAGEMENT.DHCP)
139
139
[interface] = nodegroup.get_managed_interfaces()
157
157
for field in checked_fields:
158
nodegroup = factory.make_node_group(
158
nodegroup = factory.make_NodeGroup(
160
160
management=NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS)
161
161
[interface] = nodegroup.get_managed_interfaces()
174
174
'static_ip_range_high',
176
176
for field in checked_fields:
177
nodegroup = factory.make_node_group(
177
nodegroup = factory.make_NodeGroup(
179
179
management=NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS)
180
180
[interface] = nodegroup.get_managed_interfaces()
185
185
def test_clean_network_config_sets_default_if_netmask_not_given(self):
186
186
network = factory.getRandomNetwork()
187
nodegroup = factory.make_node_group(
187
nodegroup = factory.make_NodeGroup(
189
189
management=NODEGROUPINTERFACE_MANAGEMENT.DHCP_AND_DNS)
190
190
[interface] = nodegroup.get_managed_interfaces()
194
194
def test_clean_network_config_sets_no_broadcast_without_netmask(self):
195
195
network = factory.getRandomNetwork()
196
nodegroup = factory.make_node_group(
196
nodegroup = factory.make_NodeGroup(
198
198
management=NODEGROUPINTERFACE_MANAGEMENT.UNMANAGED)
199
199
interface = NodeGroupInterface.objects.get(nodegroup=nodegroup)
206
206
# When the default value for broadcast_ip was introduced, it broke
207
207
# the form but not tests. The reason: the default was an IPAddress,
208
208
# but GenericIPAddressValidation expects a string.
209
nodegroup = factory.make_node_group()
209
nodegroup = factory.make_NodeGroup()
210
210
# Can't use the factory for this one; it may hide the problem.
211
211
interface = NodeGroupInterface(
212
212
nodegroup=nodegroup, name=factory.make_name('ngi'),
307
307
self.assertEqual(errors, exception.message_dict)
309
309
def test_manages_static_range_returns_False_if_not_managed(self):
310
cluster = factory.make_node_group()
310
cluster = factory.make_NodeGroup()
311
311
network = IPNetwork("10.9.9.0/24")
312
interface = factory.make_node_group_interface(
312
interface = factory.make_NodeGroupInterface(
313
313
cluster, network=network,
314
314
ip_range_low='10.9.9.10', ip_range_high='10.9.9.50',
315
315
static_ip_range_low='10.9.9.100',
332
332
self.assertFalse(interface.manages_static_range())
334
334
def test_manages_static_range_returns_True_if_manages_static_range(self):
335
cluster = factory.make_node_group()
335
cluster = factory.make_NodeGroup()
336
336
network = IPNetwork("10.9.9.0/24")
337
interface = factory.make_node_group_interface(
337
interface = factory.make_NodeGroupInterface(
338
338
cluster, network=network,
339
339
ip_range_low='10.9.9.10', ip_range_high='10.9.9.50',
340
340
static_ip_range_low='10.9.9.100',
346
346
def make_managed_interface():
347
return factory.make_node_group_interface(
347
return factory.make_NodeGroupInterface(
348
348
management=NODEGROUPINTERFACE_MANAGEMENT.DHCP,
349
nodegroup=factory.make_node_group())
349
nodegroup=factory.make_NodeGroup())
351
351
def test_dynamic_ip_range_returns_None_if_range_low_not_set(self):
352
352
interface = self.make_managed_interface()