Adds a type field to group to support racks and sites

* Add type support to Group
This commit is contained in:
Ben Thomasson 2017-08-21 11:47:23 -04:00
parent 9dc4e22fe6
commit d153d5f907
No known key found for this signature in database
GPG Key ID: 5818EF4CC895D5F5
5 changed files with 152 additions and 5 deletions

View File

@ -24,6 +24,10 @@ from awx.network_ui.models import DataType
from awx.network_ui.models import DataSheet
from awx.network_ui.models import Stream
from awx.network_ui.models import Process
class DeviceAdmin(admin.ModelAdmin):
fields = ('topology', 'name', 'x', 'y', 'id', 'type', 'interface_id_seq',)
@ -42,8 +46,8 @@ admin.site.register(Link, LinkAdmin)
class TopologyAdmin(admin.ModelAdmin):
fields = ('name', 'scale', 'panX', 'panY', 'device_id_seq', 'link_id_seq', 'group_id_seq',)
raw_id_fields = ()
fields = ('name', 'scale', 'panX', 'panY', 'device_id_seq', 'link_id_seq', 'group_id_seq', 'stream_id_seq',)
raw_id_fields = ('group_id_seq',)
admin.site.register(Topology, TopologyAdmin)
@ -82,7 +86,7 @@ admin.site.register(Interface, InterfaceAdmin)
class GroupAdmin(admin.ModelAdmin):
fields = ('id', 'name', 'x1', 'y1', 'x2', 'y2', 'topology',)
fields = ('id', 'name', 'x1', 'y1', 'x2', 'y2', 'topology', 'type',)
raw_id_fields = ('topology',)
@ -119,3 +123,19 @@ class DataSheetAdmin(admin.ModelAdmin):
admin.site.register(DataSheet, DataSheetAdmin)
class StreamAdmin(admin.ModelAdmin):
fields = ('from_device', 'to_device', 'label', 'id',)
raw_id_fields = ('stream_id', 'from_device', 'to_device', 'label',)
admin.site.register(Stream, StreamAdmin)
class ProcessAdmin(admin.ModelAdmin):
fields = ('device', 'name', 'type', 'id',)
raw_id_fields = ('device',)
admin.site.register(Process, ProcessAdmin)

View File

@ -441,12 +441,14 @@ class _Persistence(object):
x2='x2',
y2='y2',
name='name',
id='id'), group)
id='id',
type='type'), group)
d, _ = DeviceGroup.objects.get_or_create(topology_id=topology_id, id=group['id'], defaults=group)
d.x1 = group['x1']
d.y1 = group['y1']
d.x2 = group['x2']
d.y2 = group['y2']
d.type = group['type']
d.save()
(Topology.objects
.filter(topology_id=topology_id, group_id_seq__lt=group['id'])

View File

@ -82,6 +82,11 @@ models:
type: IntegerField
- default: 0
name: group_id_seq
ref: Topology
ref_field: group_id_seq
type: IntegerField
- default: 0
name: stream_id_seq
type: IntegerField
name: Topology
x: 111
@ -168,6 +173,9 @@ models:
ref: Topology
ref_field: topology_id
type: ForeignKey
- len: 200
name: type
type: CharField
name: Group
x: 407
y: -379
@ -241,6 +249,53 @@ models:
name: DataSheet
x: -207
y: -282
- fields:
- name: stream_id
pk: true
ref: Stream
ref_field: stream_id
type: AutoField
- name: from_device
ref: Stream
ref_field: from_device
related_name: from_stream
type: ForeignKey
- name: to_device
ref: Stream
ref_field: to_device
related_name: to_stream
type: ForeignKey
- len: 200
name: label
ref: Stream
ref_field: label
type: CharField
- default: 0
name: id
type: IntegerField
name: Stream
x: 709
y: 527
- fields:
- name: process_id
pk: true
type: AutoField
- name: device
ref: Device
ref_field: device_id
type: ForeignKey
- len: 200
name: name
type: CharField
- len: 200
name: type
type: CharField
- default: 0
name: id
type: IntegerField
name: Process
x: 654
y: 778
modules: []
view:
panX: 213.72955551921206

View File

@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('network_ui', '0017_auto_20170717_1813'),
]
operations = [
migrations.CreateModel(
name='Process',
fields=[
('process_id', models.AutoField(serialize=False, primary_key=True)),
('name', models.CharField(max_length=200)),
('type', models.CharField(max_length=200)),
('id', models.IntegerField(default=0)),
('device', models.ForeignKey(to='network_ui.Device')),
],
),
migrations.CreateModel(
name='Stream',
fields=[
('stream_id', models.AutoField(serialize=False, verbose_name=b'Stream', primary_key=True)),
('label', models.CharField(max_length=200, verbose_name=b'Stream')),
('id', models.IntegerField(default=0)),
('from_device', models.ForeignKey(related_name='from_stream', to='network_ui.Stream')),
('to_device', models.ForeignKey(related_name='to_stream', to='network_ui.Stream')),
],
),
migrations.AddField(
model_name='group',
name='type',
field=models.CharField(default='', max_length=200),
preserve_default=False,
),
migrations.AddField(
model_name='topology',
name='stream_id_seq',
field=models.IntegerField(default=0),
),
migrations.AlterField(
model_name='topology',
name='group_id_seq',
field=models.IntegerField(default=0, verbose_name=b'Topology'),
),
]

View File

@ -36,7 +36,8 @@ class Topology(models.Model):
panY = models.FloatField()
device_id_seq = models.IntegerField(default=0)
link_id_seq = models.IntegerField(default=0)
group_id_seq = models.IntegerField(default=0)
group_id_seq = models.IntegerField('Topology', default=0)
stream_id_seq = models.IntegerField(default=0)
def __unicode__(self):
return self.name
@ -88,6 +89,7 @@ class Group(models.Model):
x2 = models.IntegerField()
y2 = models.IntegerField()
topology = models.ForeignKey('Topology',)
type = models.CharField(max_length=200,)
class GroupDevice(models.Model):
@ -121,3 +123,21 @@ class DataSheet(models.Model):
name = models.CharField(max_length=200,)
topology = models.ForeignKey('Topology',)
client = models.ForeignKey('Client',)
class Stream(models.Model):
stream_id = models.AutoField('Stream', primary_key=True,)
from_device = models.ForeignKey('Stream', related_name='from_stream',)
to_device = models.ForeignKey('Stream', related_name='to_stream',)
label = models.CharField('Stream', max_length=200,)
id = models.IntegerField(default=0)
class Process(models.Model):
process_id = models.AutoField(primary_key=True,)
device = models.ForeignKey('Device',)
name = models.CharField(max_length=200,)
type = models.CharField(max_length=200,)
id = models.IntegerField(default=0)