def test_env_networks_configs(self): config = _sanitize_dhcp_config( generate_dhcp_config_networks(environments=[self.env2]), ) self.assertEqual( config, """shared-network "net1.dc2" { subnet 10.20.1.0 netmask 255.255.255.0 { option routers 10.20.1.255; option domain-name "dc2"; option domain-name-servers 10.20.30.3,10.20.30.4; deny unknown-clients; } }""") config = _sanitize_dhcp_config( generate_dhcp_config_networks( environments=[self.env1, self.env2]), ) self.assertEqual( config, """shared-network "net1.dc1" { subnet 127.0.0.0 netmask 255.255.255.0 { option routers 127.0.0.255; option domain-name "dc1"; option domain-name-servers 10.20.30.1,10.20.30.2; deny unknown-clients; } } shared-network "net1.dc2" { subnet 10.20.1.0 netmask 255.255.255.0 { option routers 10.20.1.255; option domain-name "dc2"; option domain-name-servers 10.20.30.3,10.20.30.4; deny unknown-clients; } }""")
def test_networks_configs(self): config = _sanitize_dhcp_config(generate_dhcp_config_networks(), ) self.assertEqual( config, """shared-network "net1.dc1" { subnet 127.0.0.0 netmask 255.255.255.0 { option routers 127.0.0.255; option domain-name "dc1"; option domain-name-servers 10.20.30.1,10.20.30.2; deny unknown-clients; } } shared-network "net1.dc2" { subnet 10.20.1.0 netmask 255.255.255.0 { option routers 10.20.1.255; option domain-name "dc2"; option domain-name-servers 10.20.30.3,10.20.30.4; deny unknown-clients; } }""") self.network1.dhcp_broadcast = False self.network1.save() self.network2.dhcp_config = 'SAMPLE ADDITIONAL CONFIG' self.network2.save() config = _sanitize_dhcp_config(generate_dhcp_config_networks(), ) self.assertEqual( config, """shared-network "net1.dc2" { subnet 10.20.1.0 netmask 255.255.255.0 { option routers 10.20.1.255; option domain-name "dc2"; option domain-name-servers 10.20.30.3,10.20.30.4; deny unknown-clients; SAMPLE ADDITIONAL CONFIG } }""")
def dhcp_config_networks(request): if not api.is_authenticated(request): return HttpResponseForbidden('API key required.') dc_names, env_names = _get_params(request) if dc_names and env_names: return HttpResponseForbidden('Only DC or ENV mode available.') data_centers = [] for dc_name in dc_names: try: dc = DataCenter.objects.get(name__iexact=dc_name) except DataCenter.DoesNotExist: return HttpResponseNotFound( "Data Center `%s` does not exist." % dc_name ) else: data_centers.append(dc) environments = [] for env_name in env_names: try: env = Environment.objects.get(name__iexact=env_name) except Environment.DoesNotExist: return HttpResponseNotFound( "Environment `%s` does not exist." % env_name ) else: environments.append(env) return HttpResponse( generate_dhcp_config_networks( data_centers=data_centers, environments=environments, ), content_type='text/plain', )
def dhcp_config_networks(request): if not api.is_authenticated(request): return HttpResponseForbidden('API key required.') dc_names, env_names = _get_params(request) if dc_names and env_names: return HttpResponseForbidden('Only DC or ENV mode available.') data_centers = [] for dc_name in dc_names: try: dc = DataCenter.objects.get(name__iexact=dc_name) except DataCenter.DoesNotExist: return HttpResponseNotFound("Data Center `%s` does not exist." % dc_name) else: data_centers.append(dc) environments = [] for env_name in env_names: try: env = Environment.objects.get(name__iexact=env_name) except Environment.DoesNotExist: return HttpResponseNotFound("Environment `%s` does not exist." % env_name) else: environments.append(env) return HttpResponse( generate_dhcp_config_networks( data_centers=data_centers, environments=environments, ), content_type='text/plain', )
def test_networks_configs(self): config = _sanitize_dhcp_config( generate_dhcp_config_networks(), ) self.assertEqual( config, """shared-network "net1.dc1" { subnet 127.0.0.0 netmask 255.255.255.0 { option routers 127.0.0.255; option domain-name "dc1"; option domain-name-servers 10.20.30.1,10.20.30.2; deny unknown-clients; } } shared-network "net1.dc2" { subnet 10.20.1.0 netmask 255.255.255.0 { option routers 10.20.1.255; option domain-name "dc2"; option domain-name-servers 10.20.30.3,10.20.30.4; deny unknown-clients; } }""" ) self.network1.dhcp_broadcast = False self.network1.save() self.network2.dhcp_config = 'SAMPLE ADDITIONAL CONFIG' self.network2.save() config = _sanitize_dhcp_config( generate_dhcp_config_networks(), ) self.assertEqual( config, """shared-network "net1.dc2" { subnet 10.20.1.0 netmask 255.255.255.0 { option routers 10.20.1.255; option domain-name "dc2"; option domain-name-servers 10.20.30.3,10.20.30.4; deny unknown-clients; SAMPLE ADDITIONAL CONFIG } }""" )
def test_no_domain_networks_configs(self): self.env2.domain = None self.env2.save() config = _sanitize_dhcp_config(generate_dhcp_config_networks(), ) self.assertEqual( config, """shared-network "net1.dc1" { subnet 127.0.0.0 netmask 255.255.255.0 { option routers 127.0.0.255; option domain-name "dc1"; option domain-name-servers 10.20.30.1,10.20.30.2; deny unknown-clients; } }""")
def test_env_networks_configs(self): config = _sanitize_dhcp_config( generate_dhcp_config_networks(environments=[self.env2]), ) self.assertEqual( config, """shared-network "net1.dc2" { subnet 10.20.1.0 netmask 255.255.255.0 { option routers 10.20.1.255; option domain-name "dc2"; option domain-name-servers 10.20.30.3,10.20.30.4; deny unknown-clients; } }""" ) config = _sanitize_dhcp_config( generate_dhcp_config_networks(environments=[self.env1, self.env2]), ) self.assertEqual( config, """shared-network "net1.dc1" { subnet 127.0.0.0 netmask 255.255.255.0 { option routers 127.0.0.255; option domain-name "dc1"; option domain-name-servers 10.20.30.1,10.20.30.2; deny unknown-clients; } } shared-network "net1.dc2" { subnet 10.20.1.0 netmask 255.255.255.0 { option routers 10.20.1.255; option domain-name "dc2"; option domain-name-servers 10.20.30.3,10.20.30.4; deny unknown-clients; } }""" )
def test_no_domain_networks_configs(self): self.env2.domain = None self.env2.save() config = _sanitize_dhcp_config( generate_dhcp_config_networks(), ) self.assertEqual( config, """shared-network "net1.dc1" { subnet 127.0.0.0 netmask 255.255.255.0 { option routers 127.0.0.255; option domain-name "dc1"; option domain-name-servers 10.20.30.1,10.20.30.2; deny unknown-clients; } }""" )