def test_parameters_in_database(self): zone_serial.create_if_not_exists() query = ("SELECT last_value, log_cnt, is_called FROM %s" % zone_serial.name) with connection.cursor() as cursor: cursor.execute(query) self.assertThat(cursor.fetchone(), Equals((3, 0, True)))
def test_parameters_in_database(self): zone_serial.create_if_not_exists() query = ("SELECT start_value, increment_by, max_value, " "min_value, is_cycled FROM %s" % zone_serial.name) with connection.cursor() as cursor: cursor.execute(query) self.assertThat(cursor.fetchone(), Equals((1, 1, 2**32 - 1, 1, True)))
def test_set_serial_rejects_serials_less_than_1(self): zone_serial.create_if_not_exists() self.become_admin() uri = get_domains_uri() # A serial of 1 is fine. response = self.client.post(uri, {"op": "set_serial", "serial": "1"}) self.assertEqual(http.client.OK, response.status_code, response.content) # A serial of 0 is rejected. response = self.client.post(uri, {"op": "set_serial", "serial": "0"}) self.assertEqual(http.client.BAD_REQUEST, response.status_code, response.content)
def test_parameters_in_database(self): zone_serial.create_if_not_exists() query = "SELECT last_value, is_called FROM %s" % zone_serial.name with connection.cursor() as cursor: cursor.execute(query) last_value1, is_called1 = cursor.fetchone() next(zone_serial) cursor.execute(query) last_value2, is_called2 = cursor.fetchone() self.assertEqual(1, last_value2 - last_value1) self.assertTrue(is_called1) self.assertTrue(is_called2)
def test_can_set_serial(self): zone_serial.create_if_not_exists() self.become_admin() uri = get_domains_uri() serial = random.randint(1, INT_MAX) response = self.client.post(uri, { 'op': 'set_serial', 'serial': str(serial)}) self.assertEqual( http.client.OK, response.status_code, response.content) # The handler forces a DNS reload by creating a new DNS publication, # so the serial has already been incremented. self.assertEqual(serial + 1, next(zone_serial))
def test_set_serial_rejects_serials_greater_than_4294967295(self): zone_serial.create_if_not_exists() self.become_admin() uri = get_domains_uri() # A serial of 4294967295 is fine. response = self.client.post( uri, {'op': 'set_serial', 'serial': '4294967295'}) self.assertEqual( http.client.OK, response.status_code, response.content) # A serial of 4294967296 is rejected. response = self.client.post( uri, {'op': 'set_serial', 'serial': '4294967296'}) self.assertEqual( http.client.BAD_REQUEST, response.status_code, response.content)
def register_system_triggers(): """Register all system triggers into the database.""" # Core register_procedure(CORE_GET_MANAGING_COUNT) register_procedure(CORE_GET_NUMBER_OF_CONN) register_procedure(CORE_GET_NUMBER_OF_PROCESSES) register_procedure(CORE_PICK_NEW_REGION) register_procedure(CORE_SET_NEW_REGION) # RegionRackRPCConnection register_procedure(CORE_REGIONRACKRPCONNECTION_INSERT) register_trigger( "maasserver_regionrackrpcconnection", "sys_core_rpc_insert", "insert") register_procedure(CORE_REGIONRACKRPCONNECTION_DELETE) register_trigger( "maasserver_regionrackrpcconnection", "sys_core_rpc_delete", "delete") # DHCP register_procedure(DHCP_ALERT) # - VLAN register_procedure(DHCP_VLAN_UPDATE) register_trigger("maasserver_vlan", "sys_dhcp_vlan_update", "update") # - Subnet register_procedure(DHCP_SUBNET_UPDATE) register_trigger("maasserver_subnet", "sys_dhcp_subnet_update", "update") register_procedure(DHCP_SUBNET_DELETE) register_trigger("maasserver_subnet", "sys_dhcp_subnet_delete", "delete") # - IPRange register_procedure(DHCP_IPRANGE_INSERT) register_trigger("maasserver_iprange", "sys_dhcp_iprange_insert", "insert") register_procedure(DHCP_IPRANGE_UPDATE) register_trigger("maasserver_iprange", "sys_dhcp_iprange_update", "update") register_procedure(DHCP_IPRANGE_DELETE) register_trigger("maasserver_iprange", "sys_dhcp_iprange_delete", "delete") # - StaticIPAddress register_procedure(DHCP_STATICIPADDRESS_INSERT) register_trigger( "maasserver_staticipaddress", "sys_dhcp_staticipaddress_insert", "insert") register_procedure(DHCP_STATICIPADDRESS_UPDATE) register_trigger( "maasserver_staticipaddress", "sys_dhcp_staticipaddress_update", "update") register_procedure(DHCP_STATICIPADDRESS_DELETE) register_trigger( "maasserver_staticipaddress", "sys_dhcp_staticipaddress_delete", "delete") # - Interface register_procedure(DHCP_INTERFACE_UPDATE) register_trigger( "maasserver_interface", "sys_dhcp_interface_update", "update") # - Node register_procedure(DHCP_NODE_UPDATE) register_trigger( "maasserver_node", "sys_dhcp_node_update", "update") # - DHCPSnippet register_procedure(DHCP_UPDATE_ALL_VLANS) register_procedure(DHCP_SNIPPET_UPDATE_SUBNET) register_procedure(DHCP_SNIPPET_UPDATE_NODE) register_procedure(DHCP_SNIPPET_UPDATE_VALUE) register_procedure(DHCP_SNIPPET_INSERT) register_trigger( "maasserver_dhcpsnippet", "sys_dhcp_snippet_insert", "insert") register_procedure(DHCP_SNIPPET_UPDATE) register_trigger( "maasserver_dhcpsnippet", "sys_dhcp_snippet_update", "update") register_procedure(DHCP_SNIPPET_DELETE) register_trigger( "maasserver_dhcpsnippet", "sys_dhcp_snippet_delete", "delete") # - Config/ntp_servers (and ntp_external_only) register_procedure(DHCP_CONFIG_NTP_SERVERS_INSERT) register_trigger( "maasserver_config", "sys_dhcp_config_ntp_servers_insert", "insert") register_procedure(DHCP_CONFIG_NTP_SERVERS_UPDATE) register_trigger( "maasserver_config", "sys_dhcp_config_ntp_servers_update", "update") register_procedure(DHCP_CONFIG_NTP_SERVERS_DELETE) register_trigger( "maasserver_config", "sys_dhcp_config_ntp_servers_delete", "delete") # DNS # The zone serial is used in the 'sys_dns' triggers. Ensure that it exists # before creating the triggers. zone_serial.create_if_not_exists() # - Domain register_procedure( render_sys_dns_procedure("sys_dns_domain_insert")) register_trigger( "maasserver_domain", "sys_dns_domain_insert", "insert") register_procedure( render_sys_dns_procedure("sys_dns_domain_update")) register_trigger( "maasserver_domain", "sys_dns_domain_update", "update") register_procedure( render_sys_dns_procedure("sys_dns_domain_delete", on_delete=True)) register_trigger( "maasserver_domain", "sys_dns_domain_delete", "delete") # - StaticIPAddress register_procedure( render_sys_dns_procedure("sys_dns_staticipaddress_update")) register_trigger( "maasserver_staticipaddress", "sys_dns_staticipaddress_update", "update") # - Interface -> StaticIPAddress register_procedure( render_sys_dns_procedure("sys_dns_nic_ip_link")) register_trigger( "maasserver_interface_ip_addresses", "sys_dns_nic_ip_link", "insert") register_procedure( render_sys_dns_procedure( "sys_dns_nic_ip_unlink", on_delete=True)) register_trigger( "maasserver_interface_ip_addresses", "sys_dns_nic_ip_unlink", "delete") # - DNSResource register_procedure( render_sys_dns_procedure("sys_dns_dnsresource_insert")) register_trigger( "maasserver_dnsresource", "sys_dns_dnsresource_insert", "insert") register_procedure( render_sys_dns_procedure("sys_dns_dnsresource_update")) register_trigger( "maasserver_dnsresource", "sys_dns_dnsresource_update", "update") register_procedure( render_sys_dns_procedure("sys_dns_dnsresource_delete", on_delete=True)) register_trigger( "maasserver_dnsresource", "sys_dns_dnsresource_delete", "delete") # - DNSResource -> StaticIPAddress register_procedure( render_sys_dns_procedure("sys_dns_dnsresource_ip_link")) register_trigger( "maasserver_dnsresource_ip_addresses", "sys_dns_dnsresource_ip_link", "insert") register_procedure( render_sys_dns_procedure( "sys_dns_dnsresource_ip_unlink", on_delete=True)) register_trigger( "maasserver_dnsresource_ip_addresses", "sys_dns_dnsresource_ip_unlink", "delete") # - DNSData register_procedure( render_sys_dns_procedure("sys_dns_dnsdata_insert")) register_trigger( "maasserver_dnsdata", "sys_dns_dnsdata_insert", "insert") register_procedure( render_sys_dns_procedure("sys_dns_dnsdata_update")) register_trigger( "maasserver_dnsdata", "sys_dns_dnsdata_update", "update") register_procedure( render_sys_dns_procedure("sys_dns_dnsdata_delete", on_delete=True)) register_trigger( "maasserver_dnsdata", "sys_dns_dnsdata_delete", "delete") # - DNSPublication register_procedure(DNS_PUBLISH) register_trigger( "maasserver_dnspublication", "sys_dns_publish", "insert") # - Subnet register_procedure( render_sys_dns_procedure("sys_dns_subnet_insert")) register_trigger( "maasserver_subnet", "sys_dns_subnet_insert", "insert") register_procedure(DNS_SUBNET_UPDATE) register_trigger( "maasserver_subnet", "sys_dns_subnet_update", "update") register_procedure( render_sys_dns_procedure("sys_dns_subnet_delete", on_delete=True)) register_trigger( "maasserver_subnet", "sys_dns_subnet_delete", "delete") # - Node register_procedure(DNS_NODE_UPDATE) register_trigger( "maasserver_node", "sys_dns_node_update", "update") register_procedure( render_sys_dns_procedure("sys_dns_node_delete", on_delete=True)) register_trigger( "maasserver_node", "sys_dns_node_delete", "delete") # - Interface register_procedure(DNS_INTERFACE_UPDATE) register_trigger( "maasserver_interface", "sys_dns_interface_update", "update") # - Config register_procedure(DNS_CONFIG_INSERT) register_procedure(DNS_CONFIG_UPDATE) register_trigger( "maasserver_config", "sys_dns_config_insert", "insert") register_trigger( "maasserver_config", "sys_dns_config_update", "update") # Proxy # - Subnet register_procedure( render_sys_proxy_procedure("sys_proxy_subnet_insert")) register_trigger( "maasserver_subnet", "sys_proxy_subnet_insert", "insert") register_procedure(PROXY_SUBNET_UPDATE) register_trigger( "maasserver_subnet", "sys_proxy_subnet_update", "update") register_procedure( render_sys_proxy_procedure("sys_proxy_subnet_delete", on_delete=True)) register_trigger( "maasserver_subnet", "sys_proxy_subnet_delete", "delete") # - Config/http_proxy (when use_peer_proxy) register_procedure(PEER_PROXY_CONFIG_INSERT) register_trigger( "maasserver_config", "sys_proxy_config_use_peer_proxy_insert", "insert") register_procedure(PEER_PROXY_CONFIG_UPDATE) register_trigger( "maasserver_config", "sys_proxy_config_use_peer_proxy_update", "update")