Browse Source

make squashed migrations to prepare new version

devel
Dmitry Novikov 7 years ago
parent
commit
5402b0fecc
  1. 356
      abonapp/migrations/0001_squashed_0008_auto_20181115_1206.py
  2. BIN
      agent/netflow/djing_flow.tar.gz
  3. 7
      agent/netflow/netflow_handler.py
  4. 2
      agent/netflow/start_netflow.sh
  5. 120
      devapp/migrations/0001_squashed_0005_device_ip_address_change.py
  6. 2
      devapp/models.py
  7. 1
      djing/fields.py
  8. 36
      ip_pool/migrations/0001_squashed_0004_auto_20190305_1243.py
  9. 15
      ip_pool/migrations/0004_auto_20190305_1243.py
  10. 2
      ip_pool/models.py

356
abonapp/migrations/0001_squashed_0008_auto_20181115_1206.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',
},
),
]

BIN
agent/netflow/djing_flow.tar.gz

7
agent/netflow/netflow_handler.py

@ -39,11 +39,8 @@ if __name__ == '__main__':
cursor = db.cursor()
sql = (
'SELECT INET_ATON(emps.ip) as uip, acc.id FROM abonent '
'LEFT JOIN base_accounts AS acc ON (acc.id = abonent.baseaccount_ptr_id) '
'LEFT JOIN abonent_ip_addresses AS ips ON (acc.id = ips.abon_id) '
'LEFT JOIN ip_pool_employed_ip AS emps ON (ips.ipleasemodel_id = emps.id) '
'WHERE INET_ATON(emps.ip) != 0;'
"SELECT INET_ATON(ip_address) as uip, baseaccount_ptr_id FROM abonent "
"WHERE INET_ATON(ip_address) != 'NULL';"
)
ln = cursor.execute(sql)
with open(tmp_ipuser_file, 'w') as f:

2
agent/netflow/start_netflow.sh

@ -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

120
devapp/migrations/0001_squashed_0005_device_ip_address_change.py

@ -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')},
},
),
]

2
devapp/models.py

@ -110,7 +110,7 @@ class Port(models.Model):
class Meta:
db_table = 'dev_port'
unique_together = (('device', 'num'),)
unique_together = ('device', 'num')
permissions = (
('can_toggle_ports', _('Can toggle ports')),
)

1
djing/fields.py

@ -111,6 +111,7 @@ except ImportError:
pass
# DEPRECATED: remove after clean old migrations
class MyGenericIPAddressField(models.GenericIPAddressField):
description = "Int32 notation ip address"

36
ip_pool/migrations/0001_squashed_0004_auto_20190305_1243.py

@ -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',),
},
)
]

15
ip_pool/migrations/0004_auto_20190305_1243.py

@ -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')
]

2
ip_pool/models.py

@ -160,6 +160,7 @@ class NetworkModel(models.Model):
ordering = ('network',)
# Deprecated. Remove after migrations squashed
class IpLeaseManager(models.Manager):
def get_free_ip(self, network: NetworkModel):
@ -234,6 +235,7 @@ class IpLeaseModel(models.Model):
unique_together = ('ip', 'network', 'mac_addr')
# Deprecated. Remove after migrations squashed
class LeasesHistory(models.Model):
ip = models.GenericIPAddressField(verbose_name=_('Ip address'))
lease_time = models.DateTimeField(_('Lease time'), auto_now_add=True)

Loading…
Cancel
Save