10 changed files with 534 additions and 7 deletions
-
356abonapp/migrations/0001_squashed_0008_auto_20181115_1206.py
-
BINagent/netflow/djing_flow.tar.gz
-
7agent/netflow/netflow_handler.py
-
2agent/netflow/start_netflow.sh
-
120devapp/migrations/0001_squashed_0005_device_ip_address_change.py
-
2devapp/models.py
-
1djing/fields.py
-
36ip_pool/migrations/0001_squashed_0004_auto_20190305_1243.py
-
15ip_pool/migrations/0004_auto_20190305_1243.py
-
2ip_pool/models.py
@ -0,0 +1,356 @@ |
|||
# Generated by Django 2.1.1 on 2019-03-05 20:00 |
|||
|
|||
import bitfield.models |
|||
import django.core.validators |
|||
import django.db.models.deletion |
|||
from django.conf import settings |
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
replaces = [('abonapp', '0001_initial'), ('abonapp', '0002_auto_20180808_1448'), ('abonapp', '0003_abon_nas'), |
|||
('abonapp', '0004_auto_20180918_1734'), ('abonapp', '0005_current_tariff'), |
|||
('abonapp', '0006_change_ip'), ('abonapp', '0007_auto_20181101_1545'), |
|||
('abonapp', '0008_auto_20181115_1206')] |
|||
|
|||
initial = True |
|||
|
|||
dependencies = [ |
|||
('tariff_app', '0003_auto_20181115_1206'), |
|||
('gw_app', '0001_initial'), |
|||
('tariff_app', '0001_initial'), |
|||
('ip_pool', '0001_initial'), |
|||
('gw_app', '0002_auto_20181101_1545'), |
|||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
|||
('group_app', '0001_initial'), |
|||
('accounts_app', '0001_initial'), |
|||
('devapp', '0001_initial'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='AbonTariff', |
|||
fields=[ |
|||
('id', models.AutoField( |
|||
auto_created=True, primary_key=True, |
|||
serialize=False, verbose_name='ID' |
|||
)), |
|||
('tariff', models.ForeignKey( |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
related_name='linkto_tariff', |
|||
to='tariff_app.Tariff' |
|||
)), |
|||
('time_start', models.DateTimeField( |
|||
blank=True, default=None, null=True |
|||
)), |
|||
('deadline', models.DateTimeField( |
|||
blank=True, default=None, null=True |
|||
)), |
|||
], |
|||
options={ |
|||
'ordering': ('time_start',), |
|||
'permissions': (('can_complete_service', 'finish service perm'),), |
|||
'verbose_name': 'Abon service', |
|||
'verbose_name_plural': 'Abon services', |
|||
'db_table': 'abonent_tariff' |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='AbonStreet', |
|||
fields=[ |
|||
('id', models.AutoField( |
|||
auto_created=True, primary_key=True, |
|||
serialize=False, verbose_name='ID')), |
|||
('name', models.CharField(max_length=64)), |
|||
('group', models.ForeignKey( |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
to='group_app.Group' |
|||
)), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Street', |
|||
'verbose_name_plural': 'Streets', |
|||
'db_table': 'abon_street', |
|||
'ordering': ('name',), |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Abon', |
|||
fields=[ |
|||
('baseaccount_ptr', models.OneToOneField( |
|||
auto_created=True, on_delete=django.db.models.deletion.CASCADE, |
|||
parent_link=True, primary_key=True, serialize=False, |
|||
to='accounts_app.BaseAccount' |
|||
)), |
|||
('current_tariff', models.OneToOneField( |
|||
blank=True, default=None, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
to='abonapp.AbonTariff' |
|||
)), |
|||
('group', models.ForeignKey( |
|||
blank=True, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
to='group_app.Group', verbose_name='User group' |
|||
)), |
|||
('ballance', models.FloatField(default=0.0)), |
|||
('ip_address', models.GenericIPAddressField( |
|||
blank=True, null=True, |
|||
verbose_name='Ip address' |
|||
)), |
|||
('description', models.TextField( |
|||
blank=True, null=True, verbose_name='Comment' |
|||
)), |
|||
('street', models.ForeignKey( |
|||
blank=True, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
to='abonapp.AbonStreet', verbose_name='Street' |
|||
)), |
|||
('house', models.CharField( |
|||
blank=True, max_length=12, |
|||
null=True, verbose_name='House' |
|||
)), |
|||
('device', models.ForeignKey( |
|||
blank=True, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
to='devapp.Device' |
|||
)), |
|||
('dev_port', models.ForeignKey( |
|||
blank=True, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
to='devapp.Port' |
|||
)), |
|||
('is_dynamic_ip', models.BooleanField( |
|||
default=False, verbose_name='Is dynamic ip' |
|||
)), |
|||
('nas', models.ForeignKey( |
|||
blank=True, default=None, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
to='gw_app.NASModel', verbose_name='Network access server' |
|||
)), |
|||
('autoconnect_service', models.BooleanField( |
|||
default=False, verbose_name='Automatically connect next service' |
|||
)), |
|||
('last_connected_tariff', models.ForeignKey( |
|||
blank=True, default=None, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
to='tariff_app.Tariff', |
|||
verbose_name='Last connected service' |
|||
)), |
|||
('markers', bitfield.models.BitField( |
|||
(('icon_donkey', 'Donkey'), ('icon_fire', 'Fire'), |
|||
('icon_ok', 'Ok'), ('icon_king', 'King'), |
|||
('icon_tv', 'TV'), ('icon_smile', 'Smile'), |
|||
('icon_dollar', 'Dollar'), ('icon_service', 'Service'), |
|||
('icon_mrk', 'Marker')), default=0 |
|||
)), |
|||
], |
|||
options={ |
|||
'ordering': ('fio',), |
|||
'permissions': ( |
|||
('can_buy_tariff', 'Buy service perm'), |
|||
('can_add_ballance', 'fill account'), |
|||
('can_ping', 'Can ping')), |
|||
'verbose_name': 'Abon', |
|||
'verbose_name_plural': 'Abons', |
|||
'db_table': 'abonent', |
|||
'unique_together': {('ip_address', 'nas')} |
|||
}, |
|||
bases=('accounts_app.baseaccount',), |
|||
), |
|||
migrations.CreateModel( |
|||
name='AbonLog', |
|||
fields=[ |
|||
('id', models.AutoField( |
|||
auto_created=True, primary_key=True, |
|||
serialize=False, verbose_name='ID' |
|||
)), |
|||
('abon', models.ForeignKey( |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
to='abonapp.Abon')), |
|||
('amount', models.FloatField(default=0.0)), |
|||
('author', models.ForeignKey( |
|||
blank=True, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
related_name='+', to=settings.AUTH_USER_MODEL |
|||
)), |
|||
('comment', models.CharField(max_length=128)), |
|||
('date', models.DateTimeField(auto_now_add=True)), |
|||
], |
|||
options={ |
|||
'db_table': 'abonent_log', |
|||
'ordering': ('-date',) |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='AdditionalTelephone', |
|||
fields=[ |
|||
('abon', models.ForeignKey( |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
related_name='additional_telephones', |
|||
to='abonapp.Abon' |
|||
)), |
|||
('id', models.AutoField( |
|||
auto_created=True, primary_key=True, |
|||
serialize=False, verbose_name='ID' |
|||
)), |
|||
('telephone', models.CharField( |
|||
max_length=16, validators=[ |
|||
django.core.validators.RegexValidator('^(\\+[7,8,9,3]\\d{10,11})?$') |
|||
], |
|||
verbose_name='Telephone') |
|||
), |
|||
('owner_name', models.CharField(max_length=127)), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Additional telephone', |
|||
'verbose_name_plural': 'Additional telephones', |
|||
'db_table': 'additional_telephones', |
|||
'ordering': ('owner_name',), |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='AllPayLog', |
|||
fields=[ |
|||
('pay_id', models.CharField(max_length=64, primary_key=True, serialize=False)), |
|||
('date_action', models.DateTimeField(auto_now_add=True)), |
|||
('summ', models.FloatField(default=0.0)), |
|||
('pay_system_name', models.CharField(max_length=16)), |
|||
], |
|||
options={ |
|||
'db_table': 'all_pay_log', |
|||
'ordering': ('-date_action',), |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='AllTimePayLog', |
|||
fields=[ |
|||
('abon', |
|||
models.ForeignKey( |
|||
blank=True, default=None, null=True, |
|||
on_delete=django.db.models.deletion.SET_DEFAULT, |
|||
to='abonapp.Abon' |
|||
)), |
|||
('pay_id', models.CharField( |
|||
max_length=36, primary_key=True, |
|||
serialize=False, unique=True |
|||
)), |
|||
('date_add', models.DateTimeField(auto_now_add=True)), |
|||
('summ', models.FloatField(default=0.0)), |
|||
('trade_point', models.CharField( |
|||
blank=True, default=None, max_length=20, |
|||
null=True, verbose_name='Trade point' |
|||
)), |
|||
('receipt_num', models.BigIntegerField(default=0, verbose_name='Receipt number')), |
|||
], |
|||
options={ |
|||
'db_table': 'all_time_pay_log', |
|||
'ordering': ('-date_add',), |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='InvoiceForPayment', |
|||
fields=[ |
|||
('id', models.AutoField( |
|||
auto_created=True, primary_key=True, |
|||
serialize=False, verbose_name='ID' |
|||
)), |
|||
('abon', models.ForeignKey( |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
to='abonapp.Abon' |
|||
)), |
|||
('status', models.BooleanField(default=False)), |
|||
('amount', models.FloatField(default=0.0)), |
|||
('comment', models.CharField(max_length=128)), |
|||
('date_create', models.DateTimeField(auto_now_add=True)), |
|||
('date_pay', models.DateTimeField(blank=True, null=True)), |
|||
('author', models.ForeignKey( |
|||
blank=True, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
related_name='+', to=settings.AUTH_USER_MODEL |
|||
)) |
|||
], |
|||
options={ |
|||
'verbose_name': 'Debt', |
|||
'verbose_name_plural': 'Debts', |
|||
'db_table': 'abonent_inv_pay', |
|||
'ordering': ('date_create',) |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='PassportInfo', |
|||
fields=[ |
|||
('id', models.AutoField( |
|||
auto_created=True, primary_key=True, |
|||
serialize=False, verbose_name='ID' |
|||
)), |
|||
('series', models.CharField( |
|||
max_length=4, validators=[django.core.validators.integer_validator], |
|||
verbose_name='Pasport serial' |
|||
)), |
|||
('number', models.CharField( |
|||
max_length=6, validators=[django.core.validators.integer_validator], |
|||
verbose_name='Pasport number' |
|||
)), |
|||
('distributor', models.CharField( |
|||
max_length=64, verbose_name='Distributor' |
|||
)), |
|||
('date_of_acceptance', models.DateField( |
|||
verbose_name='Date of acceptance' |
|||
)), |
|||
('abon', models.OneToOneField( |
|||
blank=True, null=True, |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
to='abonapp.Abon' |
|||
)) |
|||
], |
|||
options={ |
|||
'ordering': ('series',), |
|||
'verbose_name': 'Passport Info', |
|||
'verbose_name_plural': 'Passport Info', |
|||
'db_table': 'passport_info' |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='PeriodicPayForId', |
|||
fields=[ |
|||
('id', models.AutoField( |
|||
auto_created=True, primary_key=True, |
|||
serialize=False, verbose_name='ID' |
|||
)), |
|||
('periodic_pay', models.ForeignKey( |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
to='tariff_app.PeriodicPay', |
|||
verbose_name='Periodic pay' |
|||
)), |
|||
('last_pay', models.DateTimeField( |
|||
blank=True, null=True, verbose_name='Last pay time' |
|||
)), |
|||
('next_pay', models.DateTimeField( |
|||
verbose_name='Next time to pay' |
|||
)), |
|||
('account', models.ForeignKey( |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
to='abonapp.Abon', |
|||
verbose_name='Account' |
|||
)) |
|||
], |
|||
options={ |
|||
'db_table': 'periodic_pay_for_id', |
|||
'ordering': ('last_pay',) |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='AbonRawPassword', |
|||
fields=[ |
|||
('account', models.OneToOneField( |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
primary_key=True, serialize=False, |
|||
to='abonapp.Abon' |
|||
)), |
|||
('passw_text', models.CharField(max_length=64)), |
|||
], |
|||
options={ |
|||
'db_table': 'abon_raw_password', |
|||
}, |
|||
), |
|||
] |
|||
@ -1,6 +1,6 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin |
|||
PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/bin |
|||
|
|||
mkdir -p /tmp/djing_flow |
|||
|
|||
|
|||
@ -0,0 +1,120 @@ |
|||
# Generated by Django 2.1.1 on 2019-03-05 19:32 |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
import djing.fields |
|||
import jsonfield.fields |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
replaces = [ |
|||
('devapp', '0001_initial'), |
|||
('devapp', '0002_auto_20180409_1318'), |
|||
('devapp', '0003_auto_20180529_1311'), |
|||
('devapp', '0004_device_extra_data'), |
|||
('devapp', '0005_device_ip_address_change') |
|||
] |
|||
|
|||
initial = True |
|||
|
|||
dependencies = [ |
|||
('group_app', '0001_initial'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='Device', |
|||
fields=[ |
|||
('id', models.AutoField( |
|||
auto_created=True, primary_key=True, |
|||
serialize=False, verbose_name='ID' |
|||
)), |
|||
('ip_address', models.GenericIPAddressField( |
|||
blank=True, null=True, verbose_name='Ip address' |
|||
)), |
|||
('mac_addr', djing.fields.MACAddressField( |
|||
blank=True, integer=True, |
|||
null=True, unique=True, |
|||
verbose_name='Mac address' |
|||
)), |
|||
('comment', models.CharField( |
|||
max_length=256, verbose_name='Comment' |
|||
)), |
|||
('devtype', models.CharField( |
|||
choices=[('Dl', 'DLink switch'), ('Pn', 'PON OLT'), |
|||
('On', 'PON ONU BDCOM'), ('Ex', 'Eltex switch'), |
|||
('Zt', 'OLT ZTE C320'), ('Zo', 'Zte ONU F660'), |
|||
('Z6', 'Zte ONU F601'), ('Hw', 'Huawei switch')], |
|||
default='Dl', max_length=2, |
|||
verbose_name='Device type' |
|||
)), |
|||
('man_passw', models.CharField( |
|||
blank=True, max_length=16, |
|||
null=True, verbose_name='SNMP password' |
|||
)), |
|||
('status', models.CharField( |
|||
choices=[('und', 'Undefined'), ('up', 'Up'), |
|||
('unr', 'Unreachable'), ('dwn', 'Down')], |
|||
default='und', max_length=3, |
|||
verbose_name='Status' |
|||
)), |
|||
('is_noticeable', models.BooleanField( |
|||
default=False, |
|||
verbose_name='Send notify when monitoring state changed' |
|||
)), |
|||
('group', models.ForeignKey( |
|||
blank=True, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
to='group_app.Group', verbose_name='Device group' |
|||
)), |
|||
('parent_dev', models.ForeignKey( |
|||
blank=True, null=True, |
|||
on_delete=django.db.models.deletion.SET_NULL, |
|||
to='devapp.Device', verbose_name='Parent device' |
|||
)), |
|||
('extra_data', jsonfield.fields.JSONField( |
|||
blank=True, |
|||
help_text='Extra data in JSON format. You may use it for your custom data', |
|||
null=True, verbose_name='Extra data' |
|||
)), |
|||
('snmp_extra', models.CharField( |
|||
blank=True, max_length=256, |
|||
null=True, verbose_name='SNMP extra info' |
|||
)) |
|||
], |
|||
options={ |
|||
'verbose_name': 'Device', |
|||
'verbose_name_plural': 'Devices', |
|||
'db_table': 'dev', |
|||
'ordering': ('id',), |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Port', |
|||
fields=[ |
|||
('id', models.AutoField( |
|||
auto_created=True, primary_key=True, |
|||
serialize=False, verbose_name='ID' |
|||
)), |
|||
('num', models.PositiveSmallIntegerField( |
|||
default=0, verbose_name='Number' |
|||
)), |
|||
('descr', models.CharField( |
|||
blank=True, max_length=60, null=True, |
|||
verbose_name='Description' |
|||
)), |
|||
('device', models.ForeignKey( |
|||
on_delete=django.db.models.deletion.CASCADE, |
|||
to='devapp.Device', verbose_name='Device' |
|||
)), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Port', |
|||
'verbose_name_plural': 'Ports', |
|||
'db_table': 'dev_port', |
|||
'permissions': (('can_toggle_ports', 'Can toggle ports'),), |
|||
'ordering': ('num',), |
|||
'unique_together': {('device', 'num')}, |
|||
}, |
|||
), |
|||
] |
|||
@ -0,0 +1,36 @@ |
|||
# Generated by Django 2.1.1 on 2019-03-05 12:47 |
|||
|
|||
from django.db import migrations, models |
|||
import ip_pool.fields |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
replaces = [('ip_pool', '0001_initial'), ('ip_pool', '0002_change_unique'), ('ip_pool', '0003_auto_20181019_1230'), ('ip_pool', '0004_auto_20190305_1243')] |
|||
|
|||
initial = True |
|||
|
|||
dependencies = [ |
|||
('group_app', '0002_group_code'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='NetworkModel', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('network', ip_pool.fields.GenericIpAddressWithPrefix(help_text='Ip address of network. For example: 192.168.1.0 or fde8:6789:1234:1::', unique=True, verbose_name='IP network')), |
|||
('kind', models.CharField(choices=[('inet', 'Internet'), ('guest', 'Guest'), ('trust', 'Trusted'), ('device', 'Devices'), ('admin', 'Admin')], default='guest', max_length=6, verbose_name='Kind of network')), |
|||
('description', models.CharField(max_length=64, verbose_name='Description')), |
|||
('ip_start', models.GenericIPAddressField(verbose_name='Start work ip range')), |
|||
('ip_end', models.GenericIPAddressField(verbose_name='End work ip range')), |
|||
('groups', models.ManyToManyField(to='group_app.Group', verbose_name='Groups')), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Network', |
|||
'verbose_name_plural': 'Networks', |
|||
'db_table': 'ip_pool_network', |
|||
'ordering': ('network',), |
|||
}, |
|||
) |
|||
] |
|||
@ -0,0 +1,15 @@ |
|||
# Generated by Django 2.1.1 on 2019-03-05 12:43 |
|||
|
|||
from django.db import migrations |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('ip_pool', '0003_auto_20181019_1230'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.DeleteModel(name='IpLeaseModel'), |
|||
migrations.DeleteModel(name='LeasesHistory') |
|||
] |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue