Esempio n. 1
0
 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)))
Esempio n. 2
0
 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)))
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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))
Esempio n. 6
0
 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)
Esempio n. 7
0
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")