|
63 | 63 | from nav.models.fields import CIDRField |
64 | 64 | import nav.models.event |
65 | 65 | from nav.oids import get_enterprise_id |
| 66 | +import nav.dhcpstats.common |
66 | 67 |
|
67 | 68 |
|
68 | 69 | _logger = logging.getLogger(__name__) |
@@ -1475,6 +1476,16 @@ def get_graph_url(self): |
1475 | 1476 | def get_absolute_url(self): |
1476 | 1477 | return reverse('prefix-details', args=[self.pk]) |
1477 | 1478 |
|
| 1479 | + def get_dhcp_graph_urls(self): |
| 1480 | + """ |
| 1481 | + Creates urls to graphs showing range/pool/subnet utilization, with one |
| 1482 | + url (and one graph) per set of ranges/pools/subnets in graphite with the |
| 1483 | + same ip_version, server_name and group where at least one |
| 1484 | + range/pool/subnet intersects this prefix. |
| 1485 | + """ |
| 1486 | + prefix = IPy.IP(self.net_address) |
| 1487 | + return nav.dhcpstats.common.fetch_graph_urls_for_prefixes([prefix]) |
| 1488 | + |
1478 | 1489 |
|
1479 | 1490 | class Vlan(models.Model): |
1480 | 1491 | """From NAV Wiki: The vlan table defines the IP broadcast domain / vlan. A |
@@ -1572,6 +1583,16 @@ def get_graph_url(self, family=4): |
1572 | 1583 |
|
1573 | 1584 | return json_graph_url(*series, title=title) |
1574 | 1585 |
|
| 1586 | + def get_dhcp_graph_urls(self): |
| 1587 | + """ |
| 1588 | + Creates urls to graphs showing range/pool/subnet utilization, with one |
| 1589 | + url (and one graph) per set of ranges/pools/subnets in graphite with the |
| 1590 | + same ip_version, server_name and group where at least one |
| 1591 | + range/pool/subnet intersects this vlan. |
| 1592 | + """ |
| 1593 | + prefixes = [IPy.IP(prefix.net_address) for prefix in self.prefixes.all()] |
| 1594 | + return nav.dhcpstats.common.fetch_graph_urls_for_prefixes(prefixes) |
| 1595 | + |
1575 | 1596 |
|
1576 | 1597 | class NetType(models.Model): |
1577 | 1598 | """From NAV Wiki: The nettype table defines network type;lan, core, link, |
|
0 commit comments