Files
@ 079e7f2b0680
Branch filter:
Location: conntrackt/conntrackt/migrations/0004_auto__add_unique_interface_netmask_address_entity.py - annotation
079e7f2b0680
3.6 KiB
text/x-python
Noticket: Added uniqueness enforcement for IP/address across same entity (i.e. prevent the entity from having multiple interfaces with same IP address.)
079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 079e7f2b0680 | # -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding unique constraint on 'Interface', fields ['netmask', 'address', 'entity']
db.create_unique(u'conntrackt_interface', ['netmask', 'address', 'entity_id'])
def backwards(self, orm):
# Removing unique constraint on 'Interface', fields ['netmask', 'address', 'entity']
db.delete_unique(u'conntrackt_interface', ['netmask', 'address', 'entity_id'])
models = {
u'conntrackt.communication': {
'Meta': {'unique_together': "(('source', 'destination', 'protocol', 'port'),)", 'object_name': 'Communication'},
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'destination': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'destination_set'", 'to': u"orm['conntrackt.Interface']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'port': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
'protocol': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
'source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source_set'", 'to': u"orm['conntrackt.Interface']"})
},
u'conntrackt.entity': {
'Meta': {'unique_together': "(('name', 'project'),)", 'object_name': 'Entity'},
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'location': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['conntrackt.Location']"}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'project': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['conntrackt.Project']"})
},
u'conntrackt.interface': {
'Meta': {'unique_together': "(('name', 'entity'), ('entity', 'address', 'netmask'))", 'object_name': 'Interface'},
'address': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
'description': ('django.db.models.fields.TextField', [], {'default': "'Main network interface.'", 'blank': 'True'}),
'entity': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['conntrackt.Entity']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "'eth0'", 'max_length': '100'}),
'netmask': ('django.db.models.fields.IPAddressField', [], {'default': "'255.255.255.255'", 'max_length': '15'})
},
u'conntrackt.location': {
'Meta': {'object_name': 'Location'},
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
},
u'conntrackt.project': {
'Meta': {'object_name': 'Project'},
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
}
}
complete_apps = ['conntrackt']
|