28 from django.db
import models
30 from cm.models.lease
import Lease
31 from cm.utils.exception
import CMException
32 from netaddr
import IPNetwork
36 address = models.CharField(max_length=20)
37 mask = models.IntegerField()
38 available_network = models.ForeignKey(
'AvailableNetwork')
39 user = models.ForeignKey(
'User')
40 name = models.CharField(max_length=200)
52 d[
'total_leases'] = self.lease_set.count()
53 d[
'used_leases'] = d[
'total_leases'] - Lease.objects.filter(user_network=self).filter(vm=
None).count()
54 d[
'network_id'] = self.id
57 d[
'available_network_id'] = self.available_network.id
58 d[
'user_id'] = self.user.id
66 return IPNetwork(self.
address +
"/" + str(self.
mask))
69 for lease
in self.lease_set.all():
82 lease.user_network = self
91 raise CMException(
'network_in_use')
93 for lease
in self.lease_set.all():
97 leases = filter(
lambda x: x.vm ==
None, self.lease_set.all())
99 raise CMException(
'lease_not_found')