From db31574231dc9052b6efc0fd360da3a52a5cd04c Mon Sep 17 00:00:00 2001 From: Suman Chakravartula Date: Fri, 25 Nov 2016 09:59:03 -0800 Subject: [PATCH] Add new migrations for django 1.8 upgrade. #1190 Move all old/south migrations to south_migrations directory. We'll delete them soon after successfull upgrade. Create new native-django initial migrations for both storageadmin and smart_manager. --- .../smart_manager/migrations/0001_initial.py | 1031 +++++-------- .../south_migrations/0001_initial.py | 673 +++++++++ .../0002_auto__chg_field_task_state.py | 0 ...bution_num_write__chg_field_nfsdsharedi.py | 0 ...__add_field_poolusage_free__add_field_p.py | 0 ...frequency__del_field_taskdefinition_ts_.py | 0 ...ca_frequency__add_field_replica_crontab.py | 0 ..._auto__add_field_replica_replication_ip.py | 0 ..._add_field_TaskDefinition_crontabwindow.py | 0 .../south_migrations/__init__.py | 0 .../storageadmin/migrations/0001_initial.py | 1327 ++++++++++------- .../south_migrations/0001_initial.py | 565 +++++++ ...arestatistic__chg_field_disk_size__chg_.py | 0 ...to__add_field_nfsexportgroup_admin_host.py | 0 .../0004_auto__add_advancednfsexport.py | 0 ...e_gateway__add_field_networkinterface_d.py | 0 .../0006_auto__add_oauthapp.py | 0 ...t_id__add_field_appliance_client_secret.py | 0 .../0008_auto__add_field_user_public_key.py | 0 ..._auto__del_field_sambashare_admin_users.py | 0 .../0010_auto__add_field_disk_btrfs_uuid.py | 0 .../0011_auto__add_netatalkshare.py | 0 ..._field_disk_serial__add_field_disk_tran.py | 0 ..._field_user_homedir__add_field_user_ema.py | 0 .../0014_auto__add_group.py | 0 .../0015_auto__add_field_user_group.py | 0 ...s__add_field_poolscrub_data_extents_scr.py | 0 ...compression__add_field_pool_mnt_options.py | 0 ..._auto__add_field_share_compression_algo.py | 0 .../0019_auto__add_poolbalance.py | 0 .../0020_auto__add_sambacustomconfig.py | 0 ..._auto__del_field_sambashare_create_mask.py | 0 ...volume_container_dest_dir__add_containe.py | 0 .../0023_auto__add_tlscertificate.py | 0 ...dd_smartinfo__add_smarttestlog__add_sma.py | 0 .../0025_auto__add_field_dport_uiport.py | 0 ..._rockon_state__chg_field_rockon_version.py | 0 .../0027_auto__chg_field_rockon_status.py | 0 ...__add_field_snapshot_eusage__add_field_.py | 0 ...nique_dcontainerlink_destination_name__.py | 0 .../0030_auto__add_field_share_pqgroup.py | 0 .../0031_auto__add_configbackup.py | 0 ...d_snapshot_toc__chg_field_configbackup_.py | 0 ...__add_field_poolbalance_tid__add_field_.py | 0 ...034_auto__chg_field_tlscertificate_name.py | 0 ...e_domain__del_field_networkinterface_bo.py | 0 ...ow_copy__add_field_sambashare_snapshot_.py | 0 ...e_autoconnect__chg_field_networkinterfa.py | 0 .../0038_auto__add_updatesubscription.py | 0 ...certificate__chg_field_tlscertificate_k.py | 0 ...ique_dcontainerenv_container_key__add_f.py | 0 .../0041_auto__add_field_pool_role.py | 0 ...disk_smart_options__add_field_disk_role.py | 0 .../0043_auto__add_field_emailclient_port.py | 0 .../0044_add_field_EmailClient_username.py | 0 ..._networkdevice__add_ethernetconnection_.py | 0 ...ard__add_unique_pincard_user_pin_number.py | 0 .../0047_auto__chg_field_disk_name.py | 0 .../storageadmin/south_migrations/__init__.py | 0 59 files changed, 2360 insertions(+), 1236 deletions(-) create mode 100644 src/rockstor/smart_manager/south_migrations/0001_initial.py rename src/rockstor/smart_manager/{migrations => south_migrations}/0002_auto__chg_field_task_state.py (100%) rename src/rockstor/smart_manager/{migrations => south_migrations}/0003_auto__chg_field_nfsdsharedistribution_num_write__chg_field_nfsdsharedi.py (100%) rename src/rockstor/smart_manager/{migrations => south_migrations}/0004_auto__del_field_poolusage_usage__add_field_poolusage_free__add_field_p.py (100%) rename src/rockstor/smart_manager/{migrations => south_migrations}/0005_auto__del_field_taskdefinition_frequency__del_field_taskdefinition_ts_.py (100%) rename src/rockstor/smart_manager/{migrations => south_migrations}/0006_auto__del_field_replica_frequency__add_field_replica_crontab.py (100%) rename src/rockstor/smart_manager/{migrations => south_migrations}/0007_auto__add_field_replica_replication_ip.py (100%) rename src/rockstor/smart_manager/{migrations => south_migrations}/0008_add_field_TaskDefinition_crontabwindow.py (100%) create mode 100644 src/rockstor/smart_manager/south_migrations/__init__.py create mode 100644 src/rockstor/storageadmin/south_migrations/0001_initial.py rename src/rockstor/storageadmin/{migrations => south_migrations}/0002_auto__del_poolstatistic__del_sharestatistic__chg_field_disk_size__chg_.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0003_auto__add_field_nfsexportgroup_admin_host.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0004_auto__add_advancednfsexport.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0005_auto__add_field_networkinterface_gateway__add_field_networkinterface_d.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0006_auto__add_oauthapp.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0007_auto__add_field_appliance_client_id__add_field_appliance_client_secret.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0008_auto__add_field_user_public_key.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0009_auto__del_field_sambashare_admin_users.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0010_auto__add_field_disk_btrfs_uuid.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0011_auto__add_netatalkshare.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0012_auto__add_field_disk_model__add_field_disk_serial__add_field_disk_tran.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0013_auto__add_field_user_shell__add_field_user_homedir__add_field_user_ema.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0014_auto__add_group.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0015_auto__add_field_user_group.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0016_auto__del_field_poolscrub_errors__add_field_poolscrub_data_extents_scr.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0017_auto__add_field_pool_compression__add_field_pool_mnt_options.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0018_auto__add_field_share_compression_algo.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0019_auto__add_poolbalance.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0020_auto__add_sambacustomconfig.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0021_auto__del_field_sambashare_create_mask.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0022_auto__add_dvolume__add_unique_dvolume_container_dest_dir__add_containe.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0023_auto__add_tlscertificate.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0024_auto__add_smarttestlogdetail__add_smartinfo__add_smarttestlog__add_sma.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0025_auto__add_field_dport_uiport.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0026_auto__chg_field_rockon_state__chg_field_rockon_version.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0027_auto__chg_field_rockon_status.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0028_auto__add_field_snapshot_rusage__add_field_snapshot_eusage__add_field_.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0029_auto__add_dcontainerlink__add_unique_dcontainerlink_destination_name__.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0030_auto__add_field_share_pqgroup.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0031_auto__add_configbackup.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0032_auto__add_emailclient__chg_field_snapshot_toc__chg_field_configbackup_.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0033_auto__del_field_poolbalance_pid__add_field_poolbalance_tid__add_field_.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0034_auto__chg_field_tlscertificate_name.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0035_auto__del_field_networkinterface_domain__del_field_networkinterface_bo.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0036_auto__add_field_sambashare_shadow_copy__add_field_sambashare_snapshot_.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0037_auto__chg_field_networkinterface_autoconnect__chg_field_networkinterfa.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0038_auto__add_updatesubscription.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0039_auto__chg_field_tlscertificate_certificate__chg_field_tlscertificate_k.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0040_auto__add_dcontainerenv__add_unique_dcontainerenv_container_key__add_f.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0041_auto__add_field_pool_role.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0042_auto__add_field_disk_smart_options__add_field_disk_role.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0043_auto__add_field_emailclient_port.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0044_add_field_EmailClient_username.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0045_auto__del_networkinterface__add_networkdevice__add_ethernetconnection_.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0046_auto__add_pincard__add_unique_pincard_user_pin_number.py (100%) rename src/rockstor/storageadmin/{migrations => south_migrations}/0047_auto__chg_field_disk_name.py (100%) create mode 100644 src/rockstor/storageadmin/south_migrations/__init__.py diff --git a/src/rockstor/smart_manager/migrations/0001_initial.py b/src/rockstor/smart_manager/migrations/0001_initial.py index 79499f5d1..e573dca5d 100644 --- a/src/rockstor/smart_manager/migrations/0001_initial.py +++ b/src/rockstor/smart_manager/migrations/0001_initial.py @@ -1,673 +1,360 @@ # -*- coding: utf-8 -*- -from south.utils import datetime_utils as datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'CPUMetric' - db.create_table(u'smart_manager_cpumetric', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=10)), - ('umode', self.gf('django.db.models.fields.IntegerField')()), - ('umode_nice', self.gf('django.db.models.fields.IntegerField')()), - ('smode', self.gf('django.db.models.fields.IntegerField')()), - ('idle', self.gf('django.db.models.fields.IntegerField')()), - ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), - )) - db.send_create_signal('smart_manager', ['CPUMetric']) - - # Adding model 'DiskStat' - db.create_table(u'smart_manager_diskstat', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=128)), - ('reads_completed', self.gf('django.db.models.fields.FloatField')()), - ('reads_merged', self.gf('django.db.models.fields.FloatField')()), - ('sectors_read', self.gf('django.db.models.fields.FloatField')()), - ('ms_reading', self.gf('django.db.models.fields.FloatField')()), - ('writes_completed', self.gf('django.db.models.fields.FloatField')()), - ('writes_merged', self.gf('django.db.models.fields.FloatField')()), - ('sectors_written', self.gf('django.db.models.fields.FloatField')()), - ('ms_writing', self.gf('django.db.models.fields.FloatField')()), - ('ios_progress', self.gf('django.db.models.fields.FloatField')()), - ('ms_ios', self.gf('django.db.models.fields.FloatField')()), - ('weighted_ios', self.gf('django.db.models.fields.FloatField')()), - ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), - )) - db.send_create_signal('smart_manager', ['DiskStat']) - - # Adding model 'LoadAvg' - db.create_table(u'smart_manager_loadavg', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('load_1', self.gf('django.db.models.fields.FloatField')()), - ('load_5', self.gf('django.db.models.fields.FloatField')()), - ('load_15', self.gf('django.db.models.fields.FloatField')()), - ('active_threads', self.gf('django.db.models.fields.IntegerField')()), - ('total_threads', self.gf('django.db.models.fields.IntegerField')()), - ('latest_pid', self.gf('django.db.models.fields.IntegerField')()), - ('idle_seconds', self.gf('django.db.models.fields.IntegerField')()), - ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), - )) - db.send_create_signal('smart_manager', ['LoadAvg']) - - # Adding model 'MemInfo' - db.create_table(u'smart_manager_meminfo', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('total', self.gf('django.db.models.fields.IntegerField')()), - ('free', self.gf('django.db.models.fields.IntegerField')()), - ('buffers', self.gf('django.db.models.fields.IntegerField')()), - ('cached', self.gf('django.db.models.fields.IntegerField')()), - ('swap_total', self.gf('django.db.models.fields.IntegerField')()), - ('swap_free', self.gf('django.db.models.fields.IntegerField')()), - ('active', self.gf('django.db.models.fields.IntegerField')()), - ('inactive', self.gf('django.db.models.fields.IntegerField')()), - ('dirty', self.gf('django.db.models.fields.IntegerField')()), - ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), - )) - db.send_create_signal('smart_manager', ['MemInfo']) - - # Adding model 'VmStat' - db.create_table(u'smart_manager_vmstat', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('free_pages', self.gf('django.db.models.fields.IntegerField')()), - ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), - )) - db.send_create_signal('smart_manager', ['VmStat']) - - # Adding model 'Service' - db.create_table(u'smart_manager_service', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=24)), - ('display_name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=24)), - ('config', self.gf('django.db.models.fields.CharField')(max_length=8192, null=True)), - )) - db.send_create_signal('smart_manager', ['Service']) - - # Adding model 'ServiceStatus' - db.create_table(u'smart_manager_servicestatus', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('service', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.Service'])), - ('status', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('count', self.gf('django.db.models.fields.IntegerField')(default=1)), - ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), - )) - db.send_create_signal('smart_manager', ['ServiceStatus']) - - # Adding model 'SProbe' - db.create_table(u'smart_manager_sprobe', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('display_name', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)), - ('smart', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('state', self.gf('django.db.models.fields.CharField')(max_length=7)), - ('start', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), - ('end', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), - )) - db.send_create_signal('smart_manager', ['SProbe']) - - # Adding model 'NFSDCallDistribution' - db.create_table(u'smart_manager_nfsdcalldistribution', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('rid', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.SProbe'])), - ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), - ('num_lookup', self.gf('django.db.models.fields.IntegerField')()), - ('num_read', self.gf('django.db.models.fields.IntegerField')()), - ('num_write', self.gf('django.db.models.fields.IntegerField')()), - ('num_create', self.gf('django.db.models.fields.IntegerField')()), - ('num_commit', self.gf('django.db.models.fields.IntegerField')()), - ('num_remove', self.gf('django.db.models.fields.IntegerField')()), - ('sum_read', self.gf('django.db.models.fields.IntegerField')()), - ('sum_write', self.gf('django.db.models.fields.IntegerField')()), - )) - db.send_create_signal('smart_manager', ['NFSDCallDistribution']) - - # Adding model 'NFSDClientDistribution' - db.create_table(u'smart_manager_nfsdclientdistribution', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('rid', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.SProbe'])), - ('ts', self.gf('django.db.models.fields.DateTimeField')()), - ('ip', self.gf('django.db.models.fields.CharField')(max_length=15)), - ('num_lookup', self.gf('django.db.models.fields.IntegerField')()), - ('num_read', self.gf('django.db.models.fields.IntegerField')()), - ('num_write', self.gf('django.db.models.fields.IntegerField')()), - ('num_create', self.gf('django.db.models.fields.IntegerField')()), - ('num_commit', self.gf('django.db.models.fields.IntegerField')()), - ('num_remove', self.gf('django.db.models.fields.IntegerField')()), - ('sum_read', self.gf('django.db.models.fields.IntegerField')()), - ('sum_write', self.gf('django.db.models.fields.IntegerField')()), - )) - db.send_create_signal('smart_manager', ['NFSDClientDistribution']) - - # Adding model 'NFSDShareDistribution' - db.create_table(u'smart_manager_nfsdsharedistribution', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('rid', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.SProbe'])), - ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), - ('share', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('num_lookup', self.gf('django.db.models.fields.IntegerField')()), - ('num_read', self.gf('django.db.models.fields.IntegerField')()), - ('num_write', self.gf('django.db.models.fields.IntegerField')()), - ('num_create', self.gf('django.db.models.fields.IntegerField')()), - ('num_commit', self.gf('django.db.models.fields.IntegerField')()), - ('num_remove', self.gf('django.db.models.fields.IntegerField')()), - ('sum_read', self.gf('django.db.models.fields.IntegerField')()), - ('sum_write', self.gf('django.db.models.fields.IntegerField')()), - )) - db.send_create_signal('smart_manager', ['NFSDShareDistribution']) - - # Adding model 'PoolUsage' - db.create_table(u'smart_manager_poolusage', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pool', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('usage', self.gf('django.db.models.fields.IntegerField')(default=0)), - ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), - ('count', self.gf('django.db.models.fields.IntegerField')(default=1)), - )) - db.send_create_signal('smart_manager', ['PoolUsage']) - - # Adding model 'NetStat' - db.create_table(u'smart_manager_netstat', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('device', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('kb_rx', self.gf('django.db.models.fields.FloatField')()), - ('packets_rx', self.gf('django.db.models.fields.FloatField')()), - ('errs_rx', self.gf('django.db.models.fields.FloatField')()), - ('drop_rx', self.gf('django.db.models.fields.IntegerField')()), - ('fifo_rx', self.gf('django.db.models.fields.IntegerField')()), - ('frame', self.gf('django.db.models.fields.IntegerField')()), - ('compressed_rx', self.gf('django.db.models.fields.IntegerField')()), - ('multicast_rx', self.gf('django.db.models.fields.IntegerField')()), - ('kb_tx', self.gf('django.db.models.fields.FloatField')()), - ('packets_tx', self.gf('django.db.models.fields.IntegerField')()), - ('errs_tx', self.gf('django.db.models.fields.IntegerField')()), - ('drop_tx', self.gf('django.db.models.fields.IntegerField')()), - ('fifo_tx', self.gf('django.db.models.fields.IntegerField')()), - ('colls', self.gf('django.db.models.fields.IntegerField')()), - ('carrier', self.gf('django.db.models.fields.IntegerField')()), - ('compressed_tx', self.gf('django.db.models.fields.IntegerField')()), - ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), - )) - db.send_create_signal('smart_manager', ['NetStat']) - - # Adding model 'NFSDShareClientDistribution' - db.create_table(u'smart_manager_nfsdshareclientdistribution', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('rid', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.SProbe'])), - ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), - ('share', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('client', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('num_lookup', self.gf('django.db.models.fields.IntegerField')()), - ('num_read', self.gf('django.db.models.fields.IntegerField')()), - ('num_write', self.gf('django.db.models.fields.IntegerField')()), - ('num_create', self.gf('django.db.models.fields.IntegerField')()), - ('num_commit', self.gf('django.db.models.fields.IntegerField')()), - ('num_remove', self.gf('django.db.models.fields.IntegerField')()), - ('sum_read', self.gf('django.db.models.fields.IntegerField')()), - ('sum_write', self.gf('django.db.models.fields.IntegerField')()), - )) - db.send_create_signal('smart_manager', ['NFSDShareClientDistribution']) - - # Adding model 'ShareUsage' - db.create_table(u'smart_manager_shareusage', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('r_usage', self.gf('django.db.models.fields.IntegerField')(default=0)), - ('e_usage', self.gf('django.db.models.fields.IntegerField')(default=0)), - ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), - ('count', self.gf('django.db.models.fields.IntegerField')(default=1)), - )) - db.send_create_signal('smart_manager', ['ShareUsage']) - - # Adding model 'NFSDUidGidDistribution' - db.create_table(u'smart_manager_nfsduidgiddistribution', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('rid', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.SProbe'])), - ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), - ('share', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('client', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('uid', self.gf('django.db.models.fields.IntegerField')()), - ('gid', self.gf('django.db.models.fields.IntegerField')()), - ('num_lookup', self.gf('django.db.models.fields.IntegerField')()), - ('num_read', self.gf('django.db.models.fields.IntegerField')()), - ('num_write', self.gf('django.db.models.fields.IntegerField')()), - ('num_create', self.gf('django.db.models.fields.IntegerField')()), - ('num_commit', self.gf('django.db.models.fields.IntegerField')()), - ('num_remove', self.gf('django.db.models.fields.IntegerField')()), - ('sum_read', self.gf('django.db.models.fields.IntegerField')()), - ('sum_write', self.gf('django.db.models.fields.IntegerField')()), - )) - db.send_create_signal('smart_manager', ['NFSDUidGidDistribution']) - - # Adding model 'TaskDefinition' - db.create_table(u'smart_manager_taskdefinition', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)), - ('task_type', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), - ('frequency', self.gf('django.db.models.fields.IntegerField')(null=True)), - ('json_meta', self.gf('django.db.models.fields.CharField')(max_length=8192)), - ('enabled', self.gf('django.db.models.fields.BooleanField')(default=True)), - )) - db.send_create_signal('smart_manager', ['TaskDefinition']) - - # Adding model 'Task' - db.create_table(u'smart_manager_task', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('task_def', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.TaskDefinition'])), - ('state', self.gf('django.db.models.fields.CharField')(max_length=7)), - ('start', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), - ('end', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), - )) - db.send_create_signal('smart_manager', ['Task']) - - # Adding model 'Replica' - db.create_table(u'smart_manager_replica', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('task_name', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('share', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('pool', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('appliance', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('dpool', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('dshare', self.gf('django.db.models.fields.CharField')(max_length=4096, null=True)), - ('enabled', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('frequency', self.gf('django.db.models.fields.IntegerField')()), - ('data_port', self.gf('django.db.models.fields.IntegerField')(default=10002)), - ('meta_port', self.gf('django.db.models.fields.IntegerField')(default=10003)), - ('ts', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), - )) - db.send_create_signal('smart_manager', ['Replica']) - - # Adding model 'ReplicaTrail' - db.create_table(u'smart_manager_replicatrail', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('replica', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.Replica'])), - ('snap_name', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('kb_sent', self.gf('django.db.models.fields.IntegerField')(default=0)), - ('snapshot_created', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('snapshot_failed', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('send_pending', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('send_succeeded', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('send_failed', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('end_ts', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), - ('status', self.gf('django.db.models.fields.CharField')(max_length=10)), - ('error', self.gf('django.db.models.fields.CharField')(max_length=4096, null=True)), - )) - db.send_create_signal('smart_manager', ['ReplicaTrail']) - - # Adding model 'ReplicaShare' - db.create_table(u'smart_manager_replicashare', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('share', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), - ('pool', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('appliance', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('src_share', self.gf('django.db.models.fields.CharField')(max_length=4096, null=True)), - ('data_port', self.gf('django.db.models.fields.IntegerField')(default=10002)), - ('meta_port', self.gf('django.db.models.fields.IntegerField')(default=10003)), - ('ts', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), - )) - db.send_create_signal('smart_manager', ['ReplicaShare']) - - # Adding model 'ReceiveTrail' - db.create_table(u'smart_manager_receivetrail', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('rshare', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.ReplicaShare'])), - ('snap_name', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('kb_received', self.gf('django.db.models.fields.IntegerField')(default=0)), - ('receive_pending', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('receive_succeeded', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('receive_failed', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('end_ts', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), - ('status', self.gf('django.db.models.fields.CharField')(max_length=10)), - ('error', self.gf('django.db.models.fields.CharField')(max_length=4096, null=True)), - )) - db.send_create_signal('smart_manager', ['ReceiveTrail']) - - - def backwards(self, orm): - # Deleting model 'CPUMetric' - db.delete_table(u'smart_manager_cpumetric') - - # Deleting model 'DiskStat' - db.delete_table(u'smart_manager_diskstat') - - # Deleting model 'LoadAvg' - db.delete_table(u'smart_manager_loadavg') - - # Deleting model 'MemInfo' - db.delete_table(u'smart_manager_meminfo') - - # Deleting model 'VmStat' - db.delete_table(u'smart_manager_vmstat') - - # Deleting model 'Service' - db.delete_table(u'smart_manager_service') - - # Deleting model 'ServiceStatus' - db.delete_table(u'smart_manager_servicestatus') - - # Deleting model 'SProbe' - db.delete_table(u'smart_manager_sprobe') - - # Deleting model 'NFSDCallDistribution' - db.delete_table(u'smart_manager_nfsdcalldistribution') - - # Deleting model 'NFSDClientDistribution' - db.delete_table(u'smart_manager_nfsdclientdistribution') - - # Deleting model 'NFSDShareDistribution' - db.delete_table(u'smart_manager_nfsdsharedistribution') - - # Deleting model 'PoolUsage' - db.delete_table(u'smart_manager_poolusage') - - # Deleting model 'NetStat' - db.delete_table(u'smart_manager_netstat') - - # Deleting model 'NFSDShareClientDistribution' - db.delete_table(u'smart_manager_nfsdshareclientdistribution') - - # Deleting model 'ShareUsage' - db.delete_table(u'smart_manager_shareusage') - - # Deleting model 'NFSDUidGidDistribution' - db.delete_table(u'smart_manager_nfsduidgiddistribution') - - # Deleting model 'TaskDefinition' - db.delete_table(u'smart_manager_taskdefinition') - - # Deleting model 'Task' - db.delete_table(u'smart_manager_task') - - # Deleting model 'Replica' - db.delete_table(u'smart_manager_replica') - - # Deleting model 'ReplicaTrail' - db.delete_table(u'smart_manager_replicatrail') - - # Deleting model 'ReplicaShare' - db.delete_table(u'smart_manager_replicashare') - - # Deleting model 'ReceiveTrail' - db.delete_table(u'smart_manager_receivetrail') - - - models = { - 'smart_manager.cpumetric': { - 'Meta': {'object_name': 'CPUMetric'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'idle': ('django.db.models.fields.IntegerField', [], {}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '10'}), - 'smode': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), - 'umode': ('django.db.models.fields.IntegerField', [], {}), - 'umode_nice': ('django.db.models.fields.IntegerField', [], {}) - }, - 'smart_manager.diskstat': { - 'Meta': {'object_name': 'DiskStat'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ios_progress': ('django.db.models.fields.FloatField', [], {}), - 'ms_ios': ('django.db.models.fields.FloatField', [], {}), - 'ms_reading': ('django.db.models.fields.FloatField', [], {}), - 'ms_writing': ('django.db.models.fields.FloatField', [], {}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'reads_completed': ('django.db.models.fields.FloatField', [], {}), - 'reads_merged': ('django.db.models.fields.FloatField', [], {}), - 'sectors_read': ('django.db.models.fields.FloatField', [], {}), - 'sectors_written': ('django.db.models.fields.FloatField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'weighted_ios': ('django.db.models.fields.FloatField', [], {}), - 'writes_completed': ('django.db.models.fields.FloatField', [], {}), - 'writes_merged': ('django.db.models.fields.FloatField', [], {}) - }, - 'smart_manager.loadavg': { - 'Meta': {'object_name': 'LoadAvg'}, - 'active_threads': ('django.db.models.fields.IntegerField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'idle_seconds': ('django.db.models.fields.IntegerField', [], {}), - 'latest_pid': ('django.db.models.fields.IntegerField', [], {}), - 'load_1': ('django.db.models.fields.FloatField', [], {}), - 'load_15': ('django.db.models.fields.FloatField', [], {}), - 'load_5': ('django.db.models.fields.FloatField', [], {}), - 'total_threads': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) - }, - 'smart_manager.meminfo': { - 'Meta': {'object_name': 'MemInfo'}, - 'active': ('django.db.models.fields.IntegerField', [], {}), - 'buffers': ('django.db.models.fields.IntegerField', [], {}), - 'cached': ('django.db.models.fields.IntegerField', [], {}), - 'dirty': ('django.db.models.fields.IntegerField', [], {}), - 'free': ('django.db.models.fields.IntegerField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'inactive': ('django.db.models.fields.IntegerField', [], {}), - 'swap_free': ('django.db.models.fields.IntegerField', [], {}), - 'swap_total': ('django.db.models.fields.IntegerField', [], {}), - 'total': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) - }, - 'smart_manager.netstat': { - 'Meta': {'object_name': 'NetStat'}, - 'carrier': ('django.db.models.fields.IntegerField', [], {}), - 'colls': ('django.db.models.fields.IntegerField', [], {}), - 'compressed_rx': ('django.db.models.fields.IntegerField', [], {}), - 'compressed_tx': ('django.db.models.fields.IntegerField', [], {}), - 'device': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'drop_rx': ('django.db.models.fields.IntegerField', [], {}), - 'drop_tx': ('django.db.models.fields.IntegerField', [], {}), - 'errs_rx': ('django.db.models.fields.FloatField', [], {}), - 'errs_tx': ('django.db.models.fields.IntegerField', [], {}), - 'fifo_rx': ('django.db.models.fields.IntegerField', [], {}), - 'fifo_tx': ('django.db.models.fields.IntegerField', [], {}), - 'frame': ('django.db.models.fields.IntegerField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'kb_rx': ('django.db.models.fields.FloatField', [], {}), - 'kb_tx': ('django.db.models.fields.FloatField', [], {}), - 'multicast_rx': ('django.db.models.fields.IntegerField', [], {}), - 'packets_rx': ('django.db.models.fields.FloatField', [], {}), - 'packets_tx': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}) - }, - 'smart_manager.nfsdcalldistribution': { - 'Meta': {'object_name': 'NFSDCallDistribution'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'num_commit': ('django.db.models.fields.IntegerField', [], {}), - 'num_create': ('django.db.models.fields.IntegerField', [], {}), - 'num_lookup': ('django.db.models.fields.IntegerField', [], {}), - 'num_read': ('django.db.models.fields.IntegerField', [], {}), - 'num_remove': ('django.db.models.fields.IntegerField', [], {}), - 'num_write': ('django.db.models.fields.IntegerField', [], {}), - 'rid': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.SProbe']"}), - 'sum_read': ('django.db.models.fields.IntegerField', [], {}), - 'sum_write': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}) - }, - 'smart_manager.nfsdclientdistribution': { - 'Meta': {'object_name': 'NFSDClientDistribution'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '15'}), - 'num_commit': ('django.db.models.fields.IntegerField', [], {}), - 'num_create': ('django.db.models.fields.IntegerField', [], {}), - 'num_lookup': ('django.db.models.fields.IntegerField', [], {}), - 'num_read': ('django.db.models.fields.IntegerField', [], {}), - 'num_remove': ('django.db.models.fields.IntegerField', [], {}), - 'num_write': ('django.db.models.fields.IntegerField', [], {}), - 'rid': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.SProbe']"}), - 'sum_read': ('django.db.models.fields.IntegerField', [], {}), - 'sum_write': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {}) - }, - 'smart_manager.nfsdshareclientdistribution': { - 'Meta': {'object_name': 'NFSDShareClientDistribution'}, - 'client': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'num_commit': ('django.db.models.fields.IntegerField', [], {}), - 'num_create': ('django.db.models.fields.IntegerField', [], {}), - 'num_lookup': ('django.db.models.fields.IntegerField', [], {}), - 'num_read': ('django.db.models.fields.IntegerField', [], {}), - 'num_remove': ('django.db.models.fields.IntegerField', [], {}), - 'num_write': ('django.db.models.fields.IntegerField', [], {}), - 'rid': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.SProbe']"}), - 'share': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'sum_read': ('django.db.models.fields.IntegerField', [], {}), - 'sum_write': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}) - }, - 'smart_manager.nfsdsharedistribution': { - 'Meta': {'object_name': 'NFSDShareDistribution'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'num_commit': ('django.db.models.fields.IntegerField', [], {}), - 'num_create': ('django.db.models.fields.IntegerField', [], {}), - 'num_lookup': ('django.db.models.fields.IntegerField', [], {}), - 'num_read': ('django.db.models.fields.IntegerField', [], {}), - 'num_remove': ('django.db.models.fields.IntegerField', [], {}), - 'num_write': ('django.db.models.fields.IntegerField', [], {}), - 'rid': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.SProbe']"}), - 'share': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'sum_read': ('django.db.models.fields.IntegerField', [], {}), - 'sum_write': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}) - }, - 'smart_manager.nfsduidgiddistribution': { - 'Meta': {'object_name': 'NFSDUidGidDistribution'}, - 'client': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'gid': ('django.db.models.fields.IntegerField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'num_commit': ('django.db.models.fields.IntegerField', [], {}), - 'num_create': ('django.db.models.fields.IntegerField', [], {}), - 'num_lookup': ('django.db.models.fields.IntegerField', [], {}), - 'num_read': ('django.db.models.fields.IntegerField', [], {}), - 'num_remove': ('django.db.models.fields.IntegerField', [], {}), - 'num_write': ('django.db.models.fields.IntegerField', [], {}), - 'rid': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.SProbe']"}), - 'share': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'sum_read': ('django.db.models.fields.IntegerField', [], {}), - 'sum_write': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'uid': ('django.db.models.fields.IntegerField', [], {}) - }, - 'smart_manager.poolusage': { - 'Meta': {'object_name': 'PoolUsage'}, - 'count': ('django.db.models.fields.IntegerField', [], {'default': '1'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pool': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), - 'usage': ('django.db.models.fields.IntegerField', [], {'default': '0'}) - }, - 'smart_manager.receivetrail': { - 'Meta': {'object_name': 'ReceiveTrail'}, - 'end_ts': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'max_length': '4096', 'null': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'kb_received': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'receive_failed': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'receive_pending': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'receive_succeeded': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'rshare': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.ReplicaShare']"}), - 'snap_name': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'status': ('django.db.models.fields.CharField', [], {'max_length': '10'}) - }, - 'smart_manager.replica': { - 'Meta': {'object_name': 'Replica'}, - 'appliance': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'data_port': ('django.db.models.fields.IntegerField', [], {'default': '10002'}), - 'dpool': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'dshare': ('django.db.models.fields.CharField', [], {'max_length': '4096', 'null': 'True'}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'frequency': ('django.db.models.fields.IntegerField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'meta_port': ('django.db.models.fields.IntegerField', [], {'default': '10003'}), - 'pool': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'share': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'task_name': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}) - }, - 'smart_manager.replicashare': { - 'Meta': {'object_name': 'ReplicaShare'}, - 'appliance': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'data_port': ('django.db.models.fields.IntegerField', [], {'default': '10002'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'meta_port': ('django.db.models.fields.IntegerField', [], {'default': '10003'}), - 'pool': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'share': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), - 'src_share': ('django.db.models.fields.CharField', [], {'max_length': '4096', 'null': 'True'}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}) - }, - 'smart_manager.replicatrail': { - 'Meta': {'object_name': 'ReplicaTrail'}, - 'end_ts': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'max_length': '4096', 'null': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'kb_sent': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'replica': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.Replica']"}), - 'send_failed': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'send_pending': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'send_succeeded': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'snap_name': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'snapshot_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'snapshot_failed': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'status': ('django.db.models.fields.CharField', [], {'max_length': '10'}) - }, - 'smart_manager.service': { - 'Meta': {'object_name': 'Service'}, - 'config': ('django.db.models.fields.CharField', [], {'max_length': '8192', 'null': 'True'}), - 'display_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '24'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '24'}) - }, - 'smart_manager.servicestatus': { - 'Meta': {'object_name': 'ServiceStatus'}, - 'count': ('django.db.models.fields.IntegerField', [], {'default': '1'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.Service']"}), - 'status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) - }, - 'smart_manager.shareusage': { - 'Meta': {'object_name': 'ShareUsage'}, - 'count': ('django.db.models.fields.IntegerField', [], {'default': '1'}), - 'e_usage': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'r_usage': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) - }, - 'smart_manager.sprobe': { - 'Meta': {'object_name': 'SProbe'}, - 'display_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'smart': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'start': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), - 'state': ('django.db.models.fields.CharField', [], {'max_length': '7'}) - }, - 'smart_manager.task': { - 'Meta': {'object_name': 'Task'}, - 'end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'start': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), - 'state': ('django.db.models.fields.CharField', [], {'max_length': '7'}), - 'task_def': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.TaskDefinition']"}) - }, - 'smart_manager.taskdefinition': { - 'Meta': {'object_name': 'TaskDefinition'}, - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'frequency': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'json_meta': ('django.db.models.fields.CharField', [], {'max_length': '8192'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'task_type': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}) - }, - 'smart_manager.vmstat': { - 'Meta': {'object_name': 'VmStat'}, - 'free_pages': ('django.db.models.fields.IntegerField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['smart_manager'] \ No newline at end of file +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='CPUMetric', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=10)), + ('umode', models.IntegerField()), + ('umode_nice', models.IntegerField()), + ('smode', models.IntegerField()), + ('idle', models.IntegerField()), + ('ts', models.DateTimeField(auto_now=True, db_index=True)), + ], + ), + migrations.CreateModel( + name='DiskStat', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=128)), + ('reads_completed', models.FloatField()), + ('reads_merged', models.FloatField()), + ('sectors_read', models.FloatField()), + ('ms_reading', models.FloatField()), + ('writes_completed', models.FloatField()), + ('writes_merged', models.FloatField()), + ('sectors_written', models.FloatField()), + ('ms_writing', models.FloatField()), + ('ios_progress', models.FloatField()), + ('ms_ios', models.FloatField()), + ('weighted_ios', models.FloatField()), + ('ts', models.DateTimeField(db_index=True)), + ], + ), + migrations.CreateModel( + name='LoadAvg', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('load_1', models.FloatField()), + ('load_5', models.FloatField()), + ('load_15', models.FloatField()), + ('active_threads', models.IntegerField()), + ('total_threads', models.IntegerField()), + ('latest_pid', models.IntegerField()), + ('idle_seconds', models.IntegerField()), + ('ts', models.DateTimeField(auto_now=True, db_index=True)), + ], + ), + migrations.CreateModel( + name='MemInfo', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('total', models.BigIntegerField(default=0)), + ('free', models.BigIntegerField(default=0)), + ('buffers', models.BigIntegerField(default=0)), + ('cached', models.BigIntegerField(default=0)), + ('swap_total', models.BigIntegerField(default=0)), + ('swap_free', models.BigIntegerField(default=0)), + ('active', models.BigIntegerField(default=0)), + ('inactive', models.BigIntegerField(default=0)), + ('dirty', models.BigIntegerField(default=0)), + ('ts', models.DateTimeField(auto_now=True, db_index=True)), + ], + ), + migrations.CreateModel( + name='NetStat', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('device', models.CharField(max_length=100)), + ('kb_rx', models.FloatField()), + ('packets_rx', models.FloatField()), + ('errs_rx', models.FloatField()), + ('drop_rx', models.BigIntegerField(default=0)), + ('fifo_rx', models.BigIntegerField(default=0)), + ('frame', models.BigIntegerField(default=0)), + ('compressed_rx', models.BigIntegerField(default=0)), + ('multicast_rx', models.BigIntegerField(default=0)), + ('kb_tx', models.FloatField()), + ('packets_tx', models.BigIntegerField(default=0)), + ('errs_tx', models.BigIntegerField(default=0)), + ('drop_tx', models.BigIntegerField(default=0)), + ('fifo_tx', models.BigIntegerField(default=0)), + ('colls', models.BigIntegerField(default=0)), + ('carrier', models.BigIntegerField(default=0)), + ('compressed_tx', models.BigIntegerField(default=0)), + ('ts', models.DateTimeField(db_index=True)), + ], + ), + migrations.CreateModel( + name='NFSDCallDistribution', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('ts', models.DateTimeField(db_index=True)), + ('num_lookup', models.BigIntegerField(default=0)), + ('num_read', models.BigIntegerField(default=0)), + ('num_write', models.BigIntegerField(default=0)), + ('num_create', models.BigIntegerField(default=0)), + ('num_commit', models.BigIntegerField(default=0)), + ('num_remove', models.BigIntegerField(default=0)), + ('sum_read', models.BigIntegerField(default=0)), + ('sum_write', models.BigIntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='NFSDClientDistribution', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('ts', models.DateTimeField()), + ('ip', models.CharField(max_length=15)), + ('num_lookup', models.BigIntegerField(default=0)), + ('num_read', models.BigIntegerField(default=0)), + ('num_write', models.BigIntegerField(default=0)), + ('num_create', models.BigIntegerField(default=0)), + ('num_commit', models.BigIntegerField(default=0)), + ('num_remove', models.BigIntegerField(default=0)), + ('sum_read', models.BigIntegerField(default=0)), + ('sum_write', models.BigIntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='NFSDShareClientDistribution', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('ts', models.DateTimeField(db_index=True)), + ('share', models.CharField(max_length=255)), + ('client', models.CharField(max_length=100)), + ('num_lookup', models.BigIntegerField(default=0)), + ('num_read', models.BigIntegerField(default=0)), + ('num_write', models.BigIntegerField(default=0)), + ('num_create', models.BigIntegerField(default=0)), + ('num_commit', models.BigIntegerField(default=0)), + ('num_remove', models.BigIntegerField(default=0)), + ('sum_read', models.BigIntegerField(default=0)), + ('sum_write', models.BigIntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='NFSDShareDistribution', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('ts', models.DateTimeField(db_index=True)), + ('share', models.CharField(max_length=255)), + ('num_lookup', models.BigIntegerField(default=0)), + ('num_read', models.BigIntegerField(default=0)), + ('num_write', models.BigIntegerField(default=0)), + ('num_create', models.BigIntegerField(default=0)), + ('num_commit', models.BigIntegerField(default=0)), + ('num_remove', models.BigIntegerField(default=0)), + ('sum_read', models.BigIntegerField(default=0)), + ('sum_write', models.BigIntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='NFSDUidGidDistribution', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('ts', models.DateTimeField(db_index=True)), + ('share', models.CharField(max_length=255)), + ('client', models.CharField(max_length=100)), + ('uid', models.IntegerField(default=0)), + ('gid', models.IntegerField(default=0)), + ('num_lookup', models.BigIntegerField(default=0)), + ('num_read', models.BigIntegerField(default=0)), + ('num_write', models.BigIntegerField(default=0)), + ('num_create', models.BigIntegerField(default=0)), + ('num_commit', models.BigIntegerField(default=0)), + ('num_remove', models.BigIntegerField(default=0)), + ('sum_read', models.BigIntegerField(default=0)), + ('sum_write', models.BigIntegerField(default=0)), + ], + ), + migrations.CreateModel( + name='PoolUsage', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('pool', models.CharField(max_length=4096)), + ('free', models.BigIntegerField(default=0)), + ('reclaimable', models.BigIntegerField(default=0)), + ('ts', models.DateTimeField(auto_now=True, db_index=True)), + ('count', models.BigIntegerField(default=1)), + ], + ), + migrations.CreateModel( + name='ReceiveTrail', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('snap_name', models.CharField(max_length=1024)), + ('kb_received', models.BigIntegerField(default=0)), + ('receive_pending', models.DateTimeField(null=True)), + ('receive_succeeded', models.DateTimeField(null=True)), + ('receive_failed', models.DateTimeField(null=True)), + ('end_ts', models.DateTimeField(null=True, db_index=True)), + ('status', models.CharField(max_length=10)), + ('error', models.CharField(max_length=4096, null=True)), + ], + ), + migrations.CreateModel( + name='Replica', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('task_name', models.CharField(max_length=1024)), + ('share', models.CharField(max_length=4096)), + ('pool', models.CharField(max_length=4096)), + ('appliance', models.CharField(max_length=4096)), + ('dpool', models.CharField(max_length=4096)), + ('dshare', models.CharField(max_length=4096, null=True)), + ('enabled', models.BooleanField(default=False)), + ('data_port', models.IntegerField(default=10002)), + ('meta_port', models.IntegerField(default=10002)), + ('ts', models.DateTimeField(null=True, db_index=True)), + ('crontab', models.CharField(max_length=64, null=True)), + ('replication_ip', models.CharField(max_length=4096, null=True)), + ], + ), + migrations.CreateModel( + name='ReplicaShare', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('share', models.CharField(unique=True, max_length=4096)), + ('pool', models.CharField(max_length=4096)), + ('appliance', models.CharField(max_length=4096)), + ('src_share', models.CharField(max_length=4096, null=True)), + ('data_port', models.IntegerField(default=10002)), + ('meta_port', models.IntegerField(default=10002)), + ('ts', models.DateTimeField(null=True, db_index=True)), + ], + ), + migrations.CreateModel( + name='ReplicaTrail', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('snap_name', models.CharField(max_length=1024)), + ('kb_sent', models.BigIntegerField(default=0)), + ('snapshot_created', models.DateTimeField(null=True)), + ('snapshot_failed', models.DateTimeField(null=True)), + ('send_pending', models.DateTimeField(null=True)), + ('send_succeeded', models.DateTimeField(null=True)), + ('send_failed', models.DateTimeField(null=True)), + ('end_ts', models.DateTimeField(null=True, db_index=True)), + ('status', models.CharField(max_length=10)), + ('error', models.CharField(max_length=4096, null=True)), + ('replica', models.ForeignKey(to='smart_manager.Replica')), + ], + ), + migrations.CreateModel( + name='Service', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=24)), + ('display_name', models.CharField(unique=True, max_length=24)), + ('config', models.CharField(max_length=8192, null=True)), + ], + ), + migrations.CreateModel( + name='ServiceStatus', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('status', models.BooleanField(default=False)), + ('count', models.BigIntegerField(default=1)), + ('ts', models.DateTimeField(auto_now=True, db_index=True)), + ('service', models.ForeignKey(to='smart_manager.Service')), + ], + ), + migrations.CreateModel( + name='ShareUsage', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=4096)), + ('r_usage', models.BigIntegerField(default=0)), + ('e_usage', models.BigIntegerField(default=0)), + ('ts', models.DateTimeField(auto_now=True, db_index=True)), + ('count', models.BigIntegerField(default=1)), + ], + ), + migrations.CreateModel( + name='SProbe', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=255)), + ('display_name', models.CharField(max_length=255, null=True)), + ('smart', models.BooleanField(default=False)), + ('state', models.CharField(max_length=7, choices=[(b'created', b'created'), (b'error', b'error'), (b'running', b'running'), (b'stopped', b'stopped')])), + ('start', models.DateTimeField(auto_now=True, db_index=True)), + ('end', models.DateTimeField(null=True, db_index=True)), + ], + ), + migrations.CreateModel( + name='Task', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('state', models.CharField(max_length=64)), + ('start', models.DateTimeField(null=True, db_index=True)), + ('end', models.DateTimeField(null=True, db_index=True)), + ], + ), + migrations.CreateModel( + name='TaskDefinition', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=255)), + ('task_type', models.CharField(max_length=100, choices=[(b'scrub', b'scrub'), (b'snapshot', b'snapshot')])), + ('json_meta', models.CharField(max_length=8192)), + ('enabled', models.BooleanField(default=True)), + ('crontab', models.CharField(max_length=64, null=True)), + ('crontabwindow', models.CharField(max_length=64, null=True)), + ], + ), + migrations.CreateModel( + name='VmStat', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('free_pages', models.BigIntegerField(default=0)), + ('ts', models.DateTimeField(auto_now=True, db_index=True)), + ], + ), + migrations.AddField( + model_name='task', + name='task_def', + field=models.ForeignKey(to='smart_manager.TaskDefinition'), + ), + migrations.AddField( + model_name='receivetrail', + name='rshare', + field=models.ForeignKey(to='smart_manager.ReplicaShare'), + ), + migrations.AddField( + model_name='nfsduidgiddistribution', + name='rid', + field=models.ForeignKey(to='smart_manager.SProbe'), + ), + migrations.AddField( + model_name='nfsdsharedistribution', + name='rid', + field=models.ForeignKey(to='smart_manager.SProbe'), + ), + migrations.AddField( + model_name='nfsdshareclientdistribution', + name='rid', + field=models.ForeignKey(to='smart_manager.SProbe'), + ), + migrations.AddField( + model_name='nfsdclientdistribution', + name='rid', + field=models.ForeignKey(to='smart_manager.SProbe'), + ), + migrations.AddField( + model_name='nfsdcalldistribution', + name='rid', + field=models.ForeignKey(to='smart_manager.SProbe'), + ), + ] diff --git a/src/rockstor/smart_manager/south_migrations/0001_initial.py b/src/rockstor/smart_manager/south_migrations/0001_initial.py new file mode 100644 index 000000000..79499f5d1 --- /dev/null +++ b/src/rockstor/smart_manager/south_migrations/0001_initial.py @@ -0,0 +1,673 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'CPUMetric' + db.create_table(u'smart_manager_cpumetric', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=10)), + ('umode', self.gf('django.db.models.fields.IntegerField')()), + ('umode_nice', self.gf('django.db.models.fields.IntegerField')()), + ('smode', self.gf('django.db.models.fields.IntegerField')()), + ('idle', self.gf('django.db.models.fields.IntegerField')()), + ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), + )) + db.send_create_signal('smart_manager', ['CPUMetric']) + + # Adding model 'DiskStat' + db.create_table(u'smart_manager_diskstat', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=128)), + ('reads_completed', self.gf('django.db.models.fields.FloatField')()), + ('reads_merged', self.gf('django.db.models.fields.FloatField')()), + ('sectors_read', self.gf('django.db.models.fields.FloatField')()), + ('ms_reading', self.gf('django.db.models.fields.FloatField')()), + ('writes_completed', self.gf('django.db.models.fields.FloatField')()), + ('writes_merged', self.gf('django.db.models.fields.FloatField')()), + ('sectors_written', self.gf('django.db.models.fields.FloatField')()), + ('ms_writing', self.gf('django.db.models.fields.FloatField')()), + ('ios_progress', self.gf('django.db.models.fields.FloatField')()), + ('ms_ios', self.gf('django.db.models.fields.FloatField')()), + ('weighted_ios', self.gf('django.db.models.fields.FloatField')()), + ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), + )) + db.send_create_signal('smart_manager', ['DiskStat']) + + # Adding model 'LoadAvg' + db.create_table(u'smart_manager_loadavg', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('load_1', self.gf('django.db.models.fields.FloatField')()), + ('load_5', self.gf('django.db.models.fields.FloatField')()), + ('load_15', self.gf('django.db.models.fields.FloatField')()), + ('active_threads', self.gf('django.db.models.fields.IntegerField')()), + ('total_threads', self.gf('django.db.models.fields.IntegerField')()), + ('latest_pid', self.gf('django.db.models.fields.IntegerField')()), + ('idle_seconds', self.gf('django.db.models.fields.IntegerField')()), + ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), + )) + db.send_create_signal('smart_manager', ['LoadAvg']) + + # Adding model 'MemInfo' + db.create_table(u'smart_manager_meminfo', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('total', self.gf('django.db.models.fields.IntegerField')()), + ('free', self.gf('django.db.models.fields.IntegerField')()), + ('buffers', self.gf('django.db.models.fields.IntegerField')()), + ('cached', self.gf('django.db.models.fields.IntegerField')()), + ('swap_total', self.gf('django.db.models.fields.IntegerField')()), + ('swap_free', self.gf('django.db.models.fields.IntegerField')()), + ('active', self.gf('django.db.models.fields.IntegerField')()), + ('inactive', self.gf('django.db.models.fields.IntegerField')()), + ('dirty', self.gf('django.db.models.fields.IntegerField')()), + ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), + )) + db.send_create_signal('smart_manager', ['MemInfo']) + + # Adding model 'VmStat' + db.create_table(u'smart_manager_vmstat', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('free_pages', self.gf('django.db.models.fields.IntegerField')()), + ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), + )) + db.send_create_signal('smart_manager', ['VmStat']) + + # Adding model 'Service' + db.create_table(u'smart_manager_service', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=24)), + ('display_name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=24)), + ('config', self.gf('django.db.models.fields.CharField')(max_length=8192, null=True)), + )) + db.send_create_signal('smart_manager', ['Service']) + + # Adding model 'ServiceStatus' + db.create_table(u'smart_manager_servicestatus', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('service', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.Service'])), + ('status', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('count', self.gf('django.db.models.fields.IntegerField')(default=1)), + ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), + )) + db.send_create_signal('smart_manager', ['ServiceStatus']) + + # Adding model 'SProbe' + db.create_table(u'smart_manager_sprobe', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('display_name', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)), + ('smart', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('state', self.gf('django.db.models.fields.CharField')(max_length=7)), + ('start', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), + ('end', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), + )) + db.send_create_signal('smart_manager', ['SProbe']) + + # Adding model 'NFSDCallDistribution' + db.create_table(u'smart_manager_nfsdcalldistribution', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('rid', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.SProbe'])), + ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), + ('num_lookup', self.gf('django.db.models.fields.IntegerField')()), + ('num_read', self.gf('django.db.models.fields.IntegerField')()), + ('num_write', self.gf('django.db.models.fields.IntegerField')()), + ('num_create', self.gf('django.db.models.fields.IntegerField')()), + ('num_commit', self.gf('django.db.models.fields.IntegerField')()), + ('num_remove', self.gf('django.db.models.fields.IntegerField')()), + ('sum_read', self.gf('django.db.models.fields.IntegerField')()), + ('sum_write', self.gf('django.db.models.fields.IntegerField')()), + )) + db.send_create_signal('smart_manager', ['NFSDCallDistribution']) + + # Adding model 'NFSDClientDistribution' + db.create_table(u'smart_manager_nfsdclientdistribution', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('rid', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.SProbe'])), + ('ts', self.gf('django.db.models.fields.DateTimeField')()), + ('ip', self.gf('django.db.models.fields.CharField')(max_length=15)), + ('num_lookup', self.gf('django.db.models.fields.IntegerField')()), + ('num_read', self.gf('django.db.models.fields.IntegerField')()), + ('num_write', self.gf('django.db.models.fields.IntegerField')()), + ('num_create', self.gf('django.db.models.fields.IntegerField')()), + ('num_commit', self.gf('django.db.models.fields.IntegerField')()), + ('num_remove', self.gf('django.db.models.fields.IntegerField')()), + ('sum_read', self.gf('django.db.models.fields.IntegerField')()), + ('sum_write', self.gf('django.db.models.fields.IntegerField')()), + )) + db.send_create_signal('smart_manager', ['NFSDClientDistribution']) + + # Adding model 'NFSDShareDistribution' + db.create_table(u'smart_manager_nfsdsharedistribution', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('rid', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.SProbe'])), + ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), + ('share', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('num_lookup', self.gf('django.db.models.fields.IntegerField')()), + ('num_read', self.gf('django.db.models.fields.IntegerField')()), + ('num_write', self.gf('django.db.models.fields.IntegerField')()), + ('num_create', self.gf('django.db.models.fields.IntegerField')()), + ('num_commit', self.gf('django.db.models.fields.IntegerField')()), + ('num_remove', self.gf('django.db.models.fields.IntegerField')()), + ('sum_read', self.gf('django.db.models.fields.IntegerField')()), + ('sum_write', self.gf('django.db.models.fields.IntegerField')()), + )) + db.send_create_signal('smart_manager', ['NFSDShareDistribution']) + + # Adding model 'PoolUsage' + db.create_table(u'smart_manager_poolusage', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('pool', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('usage', self.gf('django.db.models.fields.IntegerField')(default=0)), + ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), + ('count', self.gf('django.db.models.fields.IntegerField')(default=1)), + )) + db.send_create_signal('smart_manager', ['PoolUsage']) + + # Adding model 'NetStat' + db.create_table(u'smart_manager_netstat', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('device', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('kb_rx', self.gf('django.db.models.fields.FloatField')()), + ('packets_rx', self.gf('django.db.models.fields.FloatField')()), + ('errs_rx', self.gf('django.db.models.fields.FloatField')()), + ('drop_rx', self.gf('django.db.models.fields.IntegerField')()), + ('fifo_rx', self.gf('django.db.models.fields.IntegerField')()), + ('frame', self.gf('django.db.models.fields.IntegerField')()), + ('compressed_rx', self.gf('django.db.models.fields.IntegerField')()), + ('multicast_rx', self.gf('django.db.models.fields.IntegerField')()), + ('kb_tx', self.gf('django.db.models.fields.FloatField')()), + ('packets_tx', self.gf('django.db.models.fields.IntegerField')()), + ('errs_tx', self.gf('django.db.models.fields.IntegerField')()), + ('drop_tx', self.gf('django.db.models.fields.IntegerField')()), + ('fifo_tx', self.gf('django.db.models.fields.IntegerField')()), + ('colls', self.gf('django.db.models.fields.IntegerField')()), + ('carrier', self.gf('django.db.models.fields.IntegerField')()), + ('compressed_tx', self.gf('django.db.models.fields.IntegerField')()), + ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), + )) + db.send_create_signal('smart_manager', ['NetStat']) + + # Adding model 'NFSDShareClientDistribution' + db.create_table(u'smart_manager_nfsdshareclientdistribution', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('rid', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.SProbe'])), + ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), + ('share', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('client', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('num_lookup', self.gf('django.db.models.fields.IntegerField')()), + ('num_read', self.gf('django.db.models.fields.IntegerField')()), + ('num_write', self.gf('django.db.models.fields.IntegerField')()), + ('num_create', self.gf('django.db.models.fields.IntegerField')()), + ('num_commit', self.gf('django.db.models.fields.IntegerField')()), + ('num_remove', self.gf('django.db.models.fields.IntegerField')()), + ('sum_read', self.gf('django.db.models.fields.IntegerField')()), + ('sum_write', self.gf('django.db.models.fields.IntegerField')()), + )) + db.send_create_signal('smart_manager', ['NFSDShareClientDistribution']) + + # Adding model 'ShareUsage' + db.create_table(u'smart_manager_shareusage', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('r_usage', self.gf('django.db.models.fields.IntegerField')(default=0)), + ('e_usage', self.gf('django.db.models.fields.IntegerField')(default=0)), + ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), + ('count', self.gf('django.db.models.fields.IntegerField')(default=1)), + )) + db.send_create_signal('smart_manager', ['ShareUsage']) + + # Adding model 'NFSDUidGidDistribution' + db.create_table(u'smart_manager_nfsduidgiddistribution', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('rid', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.SProbe'])), + ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), + ('share', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('client', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('uid', self.gf('django.db.models.fields.IntegerField')()), + ('gid', self.gf('django.db.models.fields.IntegerField')()), + ('num_lookup', self.gf('django.db.models.fields.IntegerField')()), + ('num_read', self.gf('django.db.models.fields.IntegerField')()), + ('num_write', self.gf('django.db.models.fields.IntegerField')()), + ('num_create', self.gf('django.db.models.fields.IntegerField')()), + ('num_commit', self.gf('django.db.models.fields.IntegerField')()), + ('num_remove', self.gf('django.db.models.fields.IntegerField')()), + ('sum_read', self.gf('django.db.models.fields.IntegerField')()), + ('sum_write', self.gf('django.db.models.fields.IntegerField')()), + )) + db.send_create_signal('smart_manager', ['NFSDUidGidDistribution']) + + # Adding model 'TaskDefinition' + db.create_table(u'smart_manager_taskdefinition', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)), + ('task_type', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('ts', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), + ('frequency', self.gf('django.db.models.fields.IntegerField')(null=True)), + ('json_meta', self.gf('django.db.models.fields.CharField')(max_length=8192)), + ('enabled', self.gf('django.db.models.fields.BooleanField')(default=True)), + )) + db.send_create_signal('smart_manager', ['TaskDefinition']) + + # Adding model 'Task' + db.create_table(u'smart_manager_task', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('task_def', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.TaskDefinition'])), + ('state', self.gf('django.db.models.fields.CharField')(max_length=7)), + ('start', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, db_index=True, blank=True)), + ('end', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), + )) + db.send_create_signal('smart_manager', ['Task']) + + # Adding model 'Replica' + db.create_table(u'smart_manager_replica', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('task_name', self.gf('django.db.models.fields.CharField')(max_length=1024)), + ('share', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('pool', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('appliance', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('dpool', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('dshare', self.gf('django.db.models.fields.CharField')(max_length=4096, null=True)), + ('enabled', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('frequency', self.gf('django.db.models.fields.IntegerField')()), + ('data_port', self.gf('django.db.models.fields.IntegerField')(default=10002)), + ('meta_port', self.gf('django.db.models.fields.IntegerField')(default=10003)), + ('ts', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), + )) + db.send_create_signal('smart_manager', ['Replica']) + + # Adding model 'ReplicaTrail' + db.create_table(u'smart_manager_replicatrail', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('replica', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.Replica'])), + ('snap_name', self.gf('django.db.models.fields.CharField')(max_length=1024)), + ('kb_sent', self.gf('django.db.models.fields.IntegerField')(default=0)), + ('snapshot_created', self.gf('django.db.models.fields.DateTimeField')(null=True)), + ('snapshot_failed', self.gf('django.db.models.fields.DateTimeField')(null=True)), + ('send_pending', self.gf('django.db.models.fields.DateTimeField')(null=True)), + ('send_succeeded', self.gf('django.db.models.fields.DateTimeField')(null=True)), + ('send_failed', self.gf('django.db.models.fields.DateTimeField')(null=True)), + ('end_ts', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), + ('status', self.gf('django.db.models.fields.CharField')(max_length=10)), + ('error', self.gf('django.db.models.fields.CharField')(max_length=4096, null=True)), + )) + db.send_create_signal('smart_manager', ['ReplicaTrail']) + + # Adding model 'ReplicaShare' + db.create_table(u'smart_manager_replicashare', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('share', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), + ('pool', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('appliance', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('src_share', self.gf('django.db.models.fields.CharField')(max_length=4096, null=True)), + ('data_port', self.gf('django.db.models.fields.IntegerField')(default=10002)), + ('meta_port', self.gf('django.db.models.fields.IntegerField')(default=10003)), + ('ts', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), + )) + db.send_create_signal('smart_manager', ['ReplicaShare']) + + # Adding model 'ReceiveTrail' + db.create_table(u'smart_manager_receivetrail', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('rshare', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['smart_manager.ReplicaShare'])), + ('snap_name', self.gf('django.db.models.fields.CharField')(max_length=1024)), + ('kb_received', self.gf('django.db.models.fields.IntegerField')(default=0)), + ('receive_pending', self.gf('django.db.models.fields.DateTimeField')(null=True)), + ('receive_succeeded', self.gf('django.db.models.fields.DateTimeField')(null=True)), + ('receive_failed', self.gf('django.db.models.fields.DateTimeField')(null=True)), + ('end_ts', self.gf('django.db.models.fields.DateTimeField')(null=True, db_index=True)), + ('status', self.gf('django.db.models.fields.CharField')(max_length=10)), + ('error', self.gf('django.db.models.fields.CharField')(max_length=4096, null=True)), + )) + db.send_create_signal('smart_manager', ['ReceiveTrail']) + + + def backwards(self, orm): + # Deleting model 'CPUMetric' + db.delete_table(u'smart_manager_cpumetric') + + # Deleting model 'DiskStat' + db.delete_table(u'smart_manager_diskstat') + + # Deleting model 'LoadAvg' + db.delete_table(u'smart_manager_loadavg') + + # Deleting model 'MemInfo' + db.delete_table(u'smart_manager_meminfo') + + # Deleting model 'VmStat' + db.delete_table(u'smart_manager_vmstat') + + # Deleting model 'Service' + db.delete_table(u'smart_manager_service') + + # Deleting model 'ServiceStatus' + db.delete_table(u'smart_manager_servicestatus') + + # Deleting model 'SProbe' + db.delete_table(u'smart_manager_sprobe') + + # Deleting model 'NFSDCallDistribution' + db.delete_table(u'smart_manager_nfsdcalldistribution') + + # Deleting model 'NFSDClientDistribution' + db.delete_table(u'smart_manager_nfsdclientdistribution') + + # Deleting model 'NFSDShareDistribution' + db.delete_table(u'smart_manager_nfsdsharedistribution') + + # Deleting model 'PoolUsage' + db.delete_table(u'smart_manager_poolusage') + + # Deleting model 'NetStat' + db.delete_table(u'smart_manager_netstat') + + # Deleting model 'NFSDShareClientDistribution' + db.delete_table(u'smart_manager_nfsdshareclientdistribution') + + # Deleting model 'ShareUsage' + db.delete_table(u'smart_manager_shareusage') + + # Deleting model 'NFSDUidGidDistribution' + db.delete_table(u'smart_manager_nfsduidgiddistribution') + + # Deleting model 'TaskDefinition' + db.delete_table(u'smart_manager_taskdefinition') + + # Deleting model 'Task' + db.delete_table(u'smart_manager_task') + + # Deleting model 'Replica' + db.delete_table(u'smart_manager_replica') + + # Deleting model 'ReplicaTrail' + db.delete_table(u'smart_manager_replicatrail') + + # Deleting model 'ReplicaShare' + db.delete_table(u'smart_manager_replicashare') + + # Deleting model 'ReceiveTrail' + db.delete_table(u'smart_manager_receivetrail') + + + models = { + 'smart_manager.cpumetric': { + 'Meta': {'object_name': 'CPUMetric'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'idle': ('django.db.models.fields.IntegerField', [], {}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '10'}), + 'smode': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), + 'umode': ('django.db.models.fields.IntegerField', [], {}), + 'umode_nice': ('django.db.models.fields.IntegerField', [], {}) + }, + 'smart_manager.diskstat': { + 'Meta': {'object_name': 'DiskStat'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ios_progress': ('django.db.models.fields.FloatField', [], {}), + 'ms_ios': ('django.db.models.fields.FloatField', [], {}), + 'ms_reading': ('django.db.models.fields.FloatField', [], {}), + 'ms_writing': ('django.db.models.fields.FloatField', [], {}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'reads_completed': ('django.db.models.fields.FloatField', [], {}), + 'reads_merged': ('django.db.models.fields.FloatField', [], {}), + 'sectors_read': ('django.db.models.fields.FloatField', [], {}), + 'sectors_written': ('django.db.models.fields.FloatField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), + 'weighted_ios': ('django.db.models.fields.FloatField', [], {}), + 'writes_completed': ('django.db.models.fields.FloatField', [], {}), + 'writes_merged': ('django.db.models.fields.FloatField', [], {}) + }, + 'smart_manager.loadavg': { + 'Meta': {'object_name': 'LoadAvg'}, + 'active_threads': ('django.db.models.fields.IntegerField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'idle_seconds': ('django.db.models.fields.IntegerField', [], {}), + 'latest_pid': ('django.db.models.fields.IntegerField', [], {}), + 'load_1': ('django.db.models.fields.FloatField', [], {}), + 'load_15': ('django.db.models.fields.FloatField', [], {}), + 'load_5': ('django.db.models.fields.FloatField', [], {}), + 'total_threads': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) + }, + 'smart_manager.meminfo': { + 'Meta': {'object_name': 'MemInfo'}, + 'active': ('django.db.models.fields.IntegerField', [], {}), + 'buffers': ('django.db.models.fields.IntegerField', [], {}), + 'cached': ('django.db.models.fields.IntegerField', [], {}), + 'dirty': ('django.db.models.fields.IntegerField', [], {}), + 'free': ('django.db.models.fields.IntegerField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inactive': ('django.db.models.fields.IntegerField', [], {}), + 'swap_free': ('django.db.models.fields.IntegerField', [], {}), + 'swap_total': ('django.db.models.fields.IntegerField', [], {}), + 'total': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) + }, + 'smart_manager.netstat': { + 'Meta': {'object_name': 'NetStat'}, + 'carrier': ('django.db.models.fields.IntegerField', [], {}), + 'colls': ('django.db.models.fields.IntegerField', [], {}), + 'compressed_rx': ('django.db.models.fields.IntegerField', [], {}), + 'compressed_tx': ('django.db.models.fields.IntegerField', [], {}), + 'device': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'drop_rx': ('django.db.models.fields.IntegerField', [], {}), + 'drop_tx': ('django.db.models.fields.IntegerField', [], {}), + 'errs_rx': ('django.db.models.fields.FloatField', [], {}), + 'errs_tx': ('django.db.models.fields.IntegerField', [], {}), + 'fifo_rx': ('django.db.models.fields.IntegerField', [], {}), + 'fifo_tx': ('django.db.models.fields.IntegerField', [], {}), + 'frame': ('django.db.models.fields.IntegerField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kb_rx': ('django.db.models.fields.FloatField', [], {}), + 'kb_tx': ('django.db.models.fields.FloatField', [], {}), + 'multicast_rx': ('django.db.models.fields.IntegerField', [], {}), + 'packets_rx': ('django.db.models.fields.FloatField', [], {}), + 'packets_tx': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}) + }, + 'smart_manager.nfsdcalldistribution': { + 'Meta': {'object_name': 'NFSDCallDistribution'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'num_commit': ('django.db.models.fields.IntegerField', [], {}), + 'num_create': ('django.db.models.fields.IntegerField', [], {}), + 'num_lookup': ('django.db.models.fields.IntegerField', [], {}), + 'num_read': ('django.db.models.fields.IntegerField', [], {}), + 'num_remove': ('django.db.models.fields.IntegerField', [], {}), + 'num_write': ('django.db.models.fields.IntegerField', [], {}), + 'rid': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.SProbe']"}), + 'sum_read': ('django.db.models.fields.IntegerField', [], {}), + 'sum_write': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}) + }, + 'smart_manager.nfsdclientdistribution': { + 'Meta': {'object_name': 'NFSDClientDistribution'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ip': ('django.db.models.fields.CharField', [], {'max_length': '15'}), + 'num_commit': ('django.db.models.fields.IntegerField', [], {}), + 'num_create': ('django.db.models.fields.IntegerField', [], {}), + 'num_lookup': ('django.db.models.fields.IntegerField', [], {}), + 'num_read': ('django.db.models.fields.IntegerField', [], {}), + 'num_remove': ('django.db.models.fields.IntegerField', [], {}), + 'num_write': ('django.db.models.fields.IntegerField', [], {}), + 'rid': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.SProbe']"}), + 'sum_read': ('django.db.models.fields.IntegerField', [], {}), + 'sum_write': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {}) + }, + 'smart_manager.nfsdshareclientdistribution': { + 'Meta': {'object_name': 'NFSDShareClientDistribution'}, + 'client': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'num_commit': ('django.db.models.fields.IntegerField', [], {}), + 'num_create': ('django.db.models.fields.IntegerField', [], {}), + 'num_lookup': ('django.db.models.fields.IntegerField', [], {}), + 'num_read': ('django.db.models.fields.IntegerField', [], {}), + 'num_remove': ('django.db.models.fields.IntegerField', [], {}), + 'num_write': ('django.db.models.fields.IntegerField', [], {}), + 'rid': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.SProbe']"}), + 'share': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'sum_read': ('django.db.models.fields.IntegerField', [], {}), + 'sum_write': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}) + }, + 'smart_manager.nfsdsharedistribution': { + 'Meta': {'object_name': 'NFSDShareDistribution'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'num_commit': ('django.db.models.fields.IntegerField', [], {}), + 'num_create': ('django.db.models.fields.IntegerField', [], {}), + 'num_lookup': ('django.db.models.fields.IntegerField', [], {}), + 'num_read': ('django.db.models.fields.IntegerField', [], {}), + 'num_remove': ('django.db.models.fields.IntegerField', [], {}), + 'num_write': ('django.db.models.fields.IntegerField', [], {}), + 'rid': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.SProbe']"}), + 'share': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'sum_read': ('django.db.models.fields.IntegerField', [], {}), + 'sum_write': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}) + }, + 'smart_manager.nfsduidgiddistribution': { + 'Meta': {'object_name': 'NFSDUidGidDistribution'}, + 'client': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'gid': ('django.db.models.fields.IntegerField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'num_commit': ('django.db.models.fields.IntegerField', [], {}), + 'num_create': ('django.db.models.fields.IntegerField', [], {}), + 'num_lookup': ('django.db.models.fields.IntegerField', [], {}), + 'num_read': ('django.db.models.fields.IntegerField', [], {}), + 'num_remove': ('django.db.models.fields.IntegerField', [], {}), + 'num_write': ('django.db.models.fields.IntegerField', [], {}), + 'rid': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.SProbe']"}), + 'share': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'sum_read': ('django.db.models.fields.IntegerField', [], {}), + 'sum_write': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), + 'uid': ('django.db.models.fields.IntegerField', [], {}) + }, + 'smart_manager.poolusage': { + 'Meta': {'object_name': 'PoolUsage'}, + 'count': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'pool': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), + 'usage': ('django.db.models.fields.IntegerField', [], {'default': '0'}) + }, + 'smart_manager.receivetrail': { + 'Meta': {'object_name': 'ReceiveTrail'}, + 'end_ts': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}), + 'error': ('django.db.models.fields.CharField', [], {'max_length': '4096', 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kb_received': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'receive_failed': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), + 'receive_pending': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), + 'receive_succeeded': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), + 'rshare': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.ReplicaShare']"}), + 'snap_name': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '10'}) + }, + 'smart_manager.replica': { + 'Meta': {'object_name': 'Replica'}, + 'appliance': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'data_port': ('django.db.models.fields.IntegerField', [], {'default': '10002'}), + 'dpool': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'dshare': ('django.db.models.fields.CharField', [], {'max_length': '4096', 'null': 'True'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'frequency': ('django.db.models.fields.IntegerField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'meta_port': ('django.db.models.fields.IntegerField', [], {'default': '10003'}), + 'pool': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'share': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'task_name': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}) + }, + 'smart_manager.replicashare': { + 'Meta': {'object_name': 'ReplicaShare'}, + 'appliance': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'data_port': ('django.db.models.fields.IntegerField', [], {'default': '10002'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'meta_port': ('django.db.models.fields.IntegerField', [], {'default': '10003'}), + 'pool': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'share': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), + 'src_share': ('django.db.models.fields.CharField', [], {'max_length': '4096', 'null': 'True'}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}) + }, + 'smart_manager.replicatrail': { + 'Meta': {'object_name': 'ReplicaTrail'}, + 'end_ts': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}), + 'error': ('django.db.models.fields.CharField', [], {'max_length': '4096', 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kb_sent': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'replica': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.Replica']"}), + 'send_failed': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), + 'send_pending': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), + 'send_succeeded': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), + 'snap_name': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), + 'snapshot_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), + 'snapshot_failed': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '10'}) + }, + 'smart_manager.service': { + 'Meta': {'object_name': 'Service'}, + 'config': ('django.db.models.fields.CharField', [], {'max_length': '8192', 'null': 'True'}), + 'display_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '24'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '24'}) + }, + 'smart_manager.servicestatus': { + 'Meta': {'object_name': 'ServiceStatus'}, + 'count': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.Service']"}), + 'status': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) + }, + 'smart_manager.shareusage': { + 'Meta': {'object_name': 'ShareUsage'}, + 'count': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'e_usage': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'r_usage': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) + }, + 'smart_manager.sprobe': { + 'Meta': {'object_name': 'SProbe'}, + 'display_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), + 'end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'smart': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'start': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'max_length': '7'}) + }, + 'smart_manager.task': { + 'Meta': {'object_name': 'Task'}, + 'end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'db_index': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'start': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), + 'state': ('django.db.models.fields.CharField', [], {'max_length': '7'}), + 'task_def': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['smart_manager.TaskDefinition']"}) + }, + 'smart_manager.taskdefinition': { + 'Meta': {'object_name': 'TaskDefinition'}, + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'frequency': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'json_meta': ('django.db.models.fields.CharField', [], {'max_length': '8192'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), + 'task_type': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}) + }, + 'smart_manager.vmstat': { + 'Meta': {'object_name': 'VmStat'}, + 'free_pages': ('django.db.models.fields.IntegerField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['smart_manager'] \ No newline at end of file diff --git a/src/rockstor/smart_manager/migrations/0002_auto__chg_field_task_state.py b/src/rockstor/smart_manager/south_migrations/0002_auto__chg_field_task_state.py similarity index 100% rename from src/rockstor/smart_manager/migrations/0002_auto__chg_field_task_state.py rename to src/rockstor/smart_manager/south_migrations/0002_auto__chg_field_task_state.py diff --git a/src/rockstor/smart_manager/migrations/0003_auto__chg_field_nfsdsharedistribution_num_write__chg_field_nfsdsharedi.py b/src/rockstor/smart_manager/south_migrations/0003_auto__chg_field_nfsdsharedistribution_num_write__chg_field_nfsdsharedi.py similarity index 100% rename from src/rockstor/smart_manager/migrations/0003_auto__chg_field_nfsdsharedistribution_num_write__chg_field_nfsdsharedi.py rename to src/rockstor/smart_manager/south_migrations/0003_auto__chg_field_nfsdsharedistribution_num_write__chg_field_nfsdsharedi.py diff --git a/src/rockstor/smart_manager/migrations/0004_auto__del_field_poolusage_usage__add_field_poolusage_free__add_field_p.py b/src/rockstor/smart_manager/south_migrations/0004_auto__del_field_poolusage_usage__add_field_poolusage_free__add_field_p.py similarity index 100% rename from src/rockstor/smart_manager/migrations/0004_auto__del_field_poolusage_usage__add_field_poolusage_free__add_field_p.py rename to src/rockstor/smart_manager/south_migrations/0004_auto__del_field_poolusage_usage__add_field_poolusage_free__add_field_p.py diff --git a/src/rockstor/smart_manager/migrations/0005_auto__del_field_taskdefinition_frequency__del_field_taskdefinition_ts_.py b/src/rockstor/smart_manager/south_migrations/0005_auto__del_field_taskdefinition_frequency__del_field_taskdefinition_ts_.py similarity index 100% rename from src/rockstor/smart_manager/migrations/0005_auto__del_field_taskdefinition_frequency__del_field_taskdefinition_ts_.py rename to src/rockstor/smart_manager/south_migrations/0005_auto__del_field_taskdefinition_frequency__del_field_taskdefinition_ts_.py diff --git a/src/rockstor/smart_manager/migrations/0006_auto__del_field_replica_frequency__add_field_replica_crontab.py b/src/rockstor/smart_manager/south_migrations/0006_auto__del_field_replica_frequency__add_field_replica_crontab.py similarity index 100% rename from src/rockstor/smart_manager/migrations/0006_auto__del_field_replica_frequency__add_field_replica_crontab.py rename to src/rockstor/smart_manager/south_migrations/0006_auto__del_field_replica_frequency__add_field_replica_crontab.py diff --git a/src/rockstor/smart_manager/migrations/0007_auto__add_field_replica_replication_ip.py b/src/rockstor/smart_manager/south_migrations/0007_auto__add_field_replica_replication_ip.py similarity index 100% rename from src/rockstor/smart_manager/migrations/0007_auto__add_field_replica_replication_ip.py rename to src/rockstor/smart_manager/south_migrations/0007_auto__add_field_replica_replication_ip.py diff --git a/src/rockstor/smart_manager/migrations/0008_add_field_TaskDefinition_crontabwindow.py b/src/rockstor/smart_manager/south_migrations/0008_add_field_TaskDefinition_crontabwindow.py similarity index 100% rename from src/rockstor/smart_manager/migrations/0008_add_field_TaskDefinition_crontabwindow.py rename to src/rockstor/smart_manager/south_migrations/0008_add_field_TaskDefinition_crontabwindow.py diff --git a/src/rockstor/smart_manager/south_migrations/__init__.py b/src/rockstor/smart_manager/south_migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/rockstor/storageadmin/migrations/0001_initial.py b/src/rockstor/storageadmin/migrations/0001_initial.py index dcf88d692..00ec9a2da 100644 --- a/src/rockstor/storageadmin/migrations/0001_initial.py +++ b/src/rockstor/storageadmin/migrations/0001_initial.py @@ -1,565 +1,764 @@ # -*- coding: utf-8 -*- -from south.utils import datetime_utils as datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'Pool' - db.create_table(u'storageadmin_pool', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), - ('uuid', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), - ('size', self.gf('django.db.models.fields.IntegerField')(default=0)), - ('raid', self.gf('django.db.models.fields.CharField')(max_length=10)), - ('toc', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - )) - db.send_create_signal('storageadmin', ['Pool']) - - # Adding model 'Disk' - db.create_table(u'storageadmin_disk', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pool', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Pool'], null=True, on_delete=models.SET_NULL)), - ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=10)), - ('size', self.gf('django.db.models.fields.IntegerField')()), - ('offline', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('parted', self.gf('django.db.models.fields.BooleanField')()), - )) - db.send_create_signal('storageadmin', ['Disk']) - - # Adding model 'Share' - db.create_table(u'storageadmin_share', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pool', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Pool'])), - ('qgroup', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), - ('uuid', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), - ('size', self.gf('django.db.models.fields.IntegerField')()), - ('owner', self.gf('django.db.models.fields.CharField')(default='root', max_length=4096)), - ('group', self.gf('django.db.models.fields.CharField')(default='root', max_length=4096)), - ('perms', self.gf('django.db.models.fields.CharField')(default='755', max_length=9)), - ('toc', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - ('subvol_name', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('replica', self.gf('django.db.models.fields.BooleanField')(default=False)), - )) - db.send_create_signal('storageadmin', ['Share']) - - # Adding model 'Snapshot' - db.create_table(u'storageadmin_snapshot', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('share', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Share'])), - ('name', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('real_name', self.gf('django.db.models.fields.CharField')(default='unknownsnap', max_length=4096)), - ('writable', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('size', self.gf('django.db.models.fields.IntegerField')(default=0)), - ('toc', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - ('qgroup', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('uvisible', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('snap_type', self.gf('django.db.models.fields.CharField')(default='admin', max_length=64)), - )) - db.send_create_signal('storageadmin', ['Snapshot']) - - # Adding unique constraint on 'Snapshot', fields ['share', 'name'] - db.create_unique(u'storageadmin_snapshot', ['share_id', 'name']) - - # Adding model 'PoolStatistic' - db.create_table(u'storageadmin_poolstatistic', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pool', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Pool'])), - ('total_capacity', self.gf('django.db.models.fields.IntegerField')()), - ('used', self.gf('django.db.models.fields.IntegerField')()), - ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - )) - db.send_create_signal('storageadmin', ['PoolStatistic']) - - # Adding model 'ShareStatistic' - db.create_table(u'storageadmin_sharestatistic', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('share', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Share'])), - ('total_capacity', self.gf('django.db.models.fields.IntegerField')()), - ('used', self.gf('django.db.models.fields.IntegerField')()), - ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - )) - db.send_create_signal('storageadmin', ['ShareStatistic']) - - # Adding model 'NFSExportGroup' - db.create_table(u'storageadmin_nfsexportgroup', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('host_str', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('editable', self.gf('django.db.models.fields.CharField')(default='ro', max_length=2)), - ('syncable', self.gf('django.db.models.fields.CharField')(default='async', max_length=5)), - ('mount_security', self.gf('django.db.models.fields.CharField')(default='insecure', max_length=8)), - ('nohide', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('enabled', self.gf('django.db.models.fields.BooleanField')(default=True)), - )) - db.send_create_signal('storageadmin', ['NFSExportGroup']) - - # Adding model 'NFSExport' - db.create_table(u'storageadmin_nfsexport', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('export_group', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.NFSExportGroup'])), - ('share', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Share'])), - ('mount', self.gf('django.db.models.fields.CharField')(max_length=4096)), - )) - db.send_create_signal('storageadmin', ['NFSExport']) - - # Adding model 'SambaShare' - db.create_table(u'storageadmin_sambashare', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('share', self.gf('django.db.models.fields.related.OneToOneField')(related_name='sambashare', unique=True, to=orm['storageadmin.Share'])), - ('path', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), - ('comment', self.gf('django.db.models.fields.CharField')(default='foo bar', max_length=100)), - ('browsable', self.gf('django.db.models.fields.CharField')(default='yes', max_length=3)), - ('read_only', self.gf('django.db.models.fields.CharField')(default='no', max_length=3)), - ('guest_ok', self.gf('django.db.models.fields.CharField')(default='no', max_length=3)), - ('create_mask', self.gf('django.db.models.fields.CharField')(default='0755', max_length=4)), - ('admin_users', self.gf('django.db.models.fields.CharField')(default='Administrator', max_length=128)), - )) - db.send_create_signal('storageadmin', ['SambaShare']) - - # Adding model 'IscsiTarget' - db.create_table(u'storageadmin_iscsitarget', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('share', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Share'])), - ('tid', self.gf('django.db.models.fields.IntegerField')(unique=True)), - ('tname', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)), - ('dev_name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)), - ('dev_size', self.gf('django.db.models.fields.IntegerField')()), - )) - db.send_create_signal('storageadmin', ['IscsiTarget']) - - # Adding model 'PosixACLs' - db.create_table(u'storageadmin_posixacls', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('smb_share', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.SambaShare'])), - ('owner', self.gf('django.db.models.fields.CharField')(max_length=5)), - ('perms', self.gf('django.db.models.fields.CharField')(max_length=3)), - )) - db.send_create_signal('storageadmin', ['PosixACLs']) - - # Adding model 'APIKeys' - db.create_table(u'storageadmin_apikeys', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('user', self.gf('django.db.models.fields.CharField')(unique=True, max_length=8)), - ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=10)), - )) - db.send_create_signal('storageadmin', ['APIKeys']) - - # Adding model 'Appliance' - db.create_table(u'storageadmin_appliance', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('uuid', self.gf('django.db.models.fields.CharField')(unique=True, max_length=64)), - ('ip', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), - ('current_appliance', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('hostname', self.gf('django.db.models.fields.CharField')(default='Rockstor', max_length=128)), - ('mgmt_port', self.gf('django.db.models.fields.IntegerField')(default=443)), - )) - db.send_create_signal('storageadmin', ['Appliance']) - - # Adding model 'SupportCase' - db.create_table(u'storageadmin_supportcase', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('notes', self.gf('django.db.models.fields.TextField')()), - ('zipped_log', self.gf('django.db.models.fields.CharField')(max_length=128)), - ('status', self.gf('django.db.models.fields.CharField')(max_length=9)), - ('case_type', self.gf('django.db.models.fields.CharField')(max_length=6)), - )) - db.send_create_signal('storageadmin', ['SupportCase']) - - # Adding model 'DashboardConfig' - db.create_table(u'storageadmin_dashboardconfig', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], unique=True)), - ('widgets', self.gf('django.db.models.fields.CharField')(max_length=4096)), - )) - db.send_create_signal('storageadmin', ['DashboardConfig']) - - # Adding model 'NetworkInterface' - db.create_table(u'storageadmin_networkinterface', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('alias', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), - ('mac', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('boot_proto', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), - ('onboot', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), - ('network', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), - ('netmask', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), - ('ipaddr', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), - ('itype', self.gf('django.db.models.fields.CharField')(default='io', max_length=100)), - )) - db.send_create_signal('storageadmin', ['NetworkInterface']) - - # Adding model 'User' - db.create_table(u'storageadmin_user', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('user', self.gf('django.db.models.fields.related.OneToOneField')(related_name='suser', unique=True, null=True, to=orm['auth.User'])), - ('username', self.gf('django.db.models.fields.CharField')(default='', unique=True, max_length=4096)), - ('uid', self.gf('django.db.models.fields.IntegerField')(default=5000)), - ('gid', self.gf('django.db.models.fields.IntegerField')(default=5000)), - )) - db.send_create_signal('storageadmin', ['User']) - - # Adding model 'PoolScrub' - db.create_table(u'storageadmin_poolscrub', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pool', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Pool'])), - ('status', self.gf('django.db.models.fields.CharField')(default='started', max_length=10)), - ('pid', self.gf('django.db.models.fields.IntegerField')()), - ('start_time', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - ('end_time', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('kb_scrubbed', self.gf('django.db.models.fields.IntegerField')(null=True)), - ('errors', self.gf('django.db.models.fields.IntegerField')(null=True)), - )) - db.send_create_signal('storageadmin', ['PoolScrub']) - - # Adding model 'Setup' - db.create_table(u'storageadmin_setup', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('setup_user', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('setup_system', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('setup_disks', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('setup_network', self.gf('django.db.models.fields.BooleanField')(default=False)), - )) - db.send_create_signal('storageadmin', ['Setup']) - - # Adding model 'SFTP' - db.create_table(u'storageadmin_sftp', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('share', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['storageadmin.Share'], unique=True)), - ('editable', self.gf('django.db.models.fields.CharField')(default='ro', max_length=2)), - )) - db.send_create_signal('storageadmin', ['SFTP']) - - # Adding model 'Plugin' - db.create_table(u'storageadmin_plugin', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), - ('display_name', self.gf('django.db.models.fields.CharField')(default='', unique=True, max_length=4096)), - ('description', self.gf('django.db.models.fields.CharField')(default='', max_length=4096)), - ('css_file_name', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('js_file_name', self.gf('django.db.models.fields.CharField')(max_length=4096)), - ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), - )) - db.send_create_signal('storageadmin', ['Plugin']) - - # Adding model 'InstalledPlugin' - db.create_table(u'storageadmin_installedplugin', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('plugin_meta', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Plugin'])), - ('install_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - )) - db.send_create_signal('storageadmin', ['InstalledPlugin']) - - - def backwards(self, orm): - # Removing unique constraint on 'Snapshot', fields ['share', 'name'] - db.delete_unique(u'storageadmin_snapshot', ['share_id', 'name']) - - # Deleting model 'Pool' - db.delete_table(u'storageadmin_pool') - - # Deleting model 'Disk' - db.delete_table(u'storageadmin_disk') - - # Deleting model 'Share' - db.delete_table(u'storageadmin_share') - - # Deleting model 'Snapshot' - db.delete_table(u'storageadmin_snapshot') - - # Deleting model 'PoolStatistic' - db.delete_table(u'storageadmin_poolstatistic') - - # Deleting model 'ShareStatistic' - db.delete_table(u'storageadmin_sharestatistic') - - # Deleting model 'NFSExportGroup' - db.delete_table(u'storageadmin_nfsexportgroup') - - # Deleting model 'NFSExport' - db.delete_table(u'storageadmin_nfsexport') - - # Deleting model 'SambaShare' - db.delete_table(u'storageadmin_sambashare') - - # Deleting model 'IscsiTarget' - db.delete_table(u'storageadmin_iscsitarget') - - # Deleting model 'PosixACLs' - db.delete_table(u'storageadmin_posixacls') - - # Deleting model 'APIKeys' - db.delete_table(u'storageadmin_apikeys') - - # Deleting model 'Appliance' - db.delete_table(u'storageadmin_appliance') - - # Deleting model 'SupportCase' - db.delete_table(u'storageadmin_supportcase') - - # Deleting model 'DashboardConfig' - db.delete_table(u'storageadmin_dashboardconfig') - - # Deleting model 'NetworkInterface' - db.delete_table(u'storageadmin_networkinterface') - - # Deleting model 'User' - db.delete_table(u'storageadmin_user') - - # Deleting model 'PoolScrub' - db.delete_table(u'storageadmin_poolscrub') - - # Deleting model 'Setup' - db.delete_table(u'storageadmin_setup') - - # Deleting model 'SFTP' - db.delete_table(u'storageadmin_sftp') - - # Deleting model 'Plugin' - db.delete_table(u'storageadmin_plugin') - - # Deleting model 'InstalledPlugin' - db.delete_table(u'storageadmin_installedplugin') - - - models = { - u'auth.group': { - 'Meta': {'object_name': 'Group'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - u'auth.permission': { - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - u'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - u'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'storageadmin.apikeys': { - 'Meta': {'object_name': 'APIKeys'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}), - 'user': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '8'}) - }, - 'storageadmin.appliance': { - 'Meta': {'object_name': 'Appliance'}, - 'current_appliance': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'hostname': ('django.db.models.fields.CharField', [], {'default': "'Rockstor'", 'max_length': '128'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), - 'mgmt_port': ('django.db.models.fields.IntegerField', [], {'default': '443'}), - 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'}) - }, - 'storageadmin.dashboardconfig': { - 'Meta': {'object_name': 'DashboardConfig'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'unique': 'True'}), - 'widgets': ('django.db.models.fields.CharField', [], {'max_length': '4096'}) - }, - 'storageadmin.disk': { - 'Meta': {'object_name': 'Disk'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}), - 'offline': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'parted': ('django.db.models.fields.BooleanField', [], {}), - 'pool': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Pool']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'size': ('django.db.models.fields.IntegerField', [], {}) - }, - 'storageadmin.installedplugin': { - 'Meta': {'object_name': 'InstalledPlugin'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'install_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'plugin_meta': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Plugin']"}) - }, - 'storageadmin.iscsitarget': { - 'Meta': {'object_name': 'IscsiTarget'}, - 'dev_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}), - 'dev_size': ('django.db.models.fields.IntegerField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'share': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Share']"}), - 'tid': ('django.db.models.fields.IntegerField', [], {'unique': 'True'}), - 'tname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}) - }, - 'storageadmin.networkinterface': { - 'Meta': {'object_name': 'NetworkInterface'}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}), - 'boot_proto': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ipaddr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}), - 'itype': ('django.db.models.fields.CharField', [], {'default': "'io'", 'max_length': '100'}), - 'mac': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'netmask': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}), - 'network': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}), - 'onboot': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}) - }, - 'storageadmin.nfsexport': { - 'Meta': {'object_name': 'NFSExport'}, - 'export_group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.NFSExportGroup']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mount': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'share': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Share']"}) - }, - 'storageadmin.nfsexportgroup': { - 'Meta': {'object_name': 'NFSExportGroup'}, - 'editable': ('django.db.models.fields.CharField', [], {'default': "'ro'", 'max_length': '2'}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'host_str': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mount_security': ('django.db.models.fields.CharField', [], {'default': "'insecure'", 'max_length': '8'}), - 'nohide': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'syncable': ('django.db.models.fields.CharField', [], {'default': "'async'", 'max_length': '5'}) - }, - 'storageadmin.plugin': { - 'Meta': {'object_name': 'Plugin'}, - 'css_file_name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'description': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '4096'}), - 'display_name': ('django.db.models.fields.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '4096'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'js_file_name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}) - }, - 'storageadmin.pool': { - 'Meta': {'object_name': 'Pool'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), - 'raid': ('django.db.models.fields.CharField', [], {'max_length': '10'}), - 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'toc': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}) - }, - 'storageadmin.poolscrub': { - 'Meta': {'object_name': 'PoolScrub'}, - 'end_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'errors': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'kb_scrubbed': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), - 'pid': ('django.db.models.fields.IntegerField', [], {}), - 'pool': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Pool']"}), - 'start_time': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'status': ('django.db.models.fields.CharField', [], {'default': "'started'", 'max_length': '10'}) - }, - 'storageadmin.poolstatistic': { - 'Meta': {'object_name': 'PoolStatistic'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pool': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Pool']"}), - 'total_capacity': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'used': ('django.db.models.fields.IntegerField', [], {}) - }, - 'storageadmin.posixacls': { - 'Meta': {'object_name': 'PosixACLs'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.CharField', [], {'max_length': '5'}), - 'perms': ('django.db.models.fields.CharField', [], {'max_length': '3'}), - 'smb_share': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.SambaShare']"}) - }, - 'storageadmin.sambashare': { - 'Meta': {'object_name': 'SambaShare'}, - 'admin_users': ('django.db.models.fields.CharField', [], {'default': "'Administrator'", 'max_length': '128'}), - 'browsable': ('django.db.models.fields.CharField', [], {'default': "'yes'", 'max_length': '3'}), - 'comment': ('django.db.models.fields.CharField', [], {'default': "'foo bar'", 'max_length': '100'}), - 'create_mask': ('django.db.models.fields.CharField', [], {'default': "'0755'", 'max_length': '4'}), - 'guest_ok': ('django.db.models.fields.CharField', [], {'default': "'no'", 'max_length': '3'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), - 'read_only': ('django.db.models.fields.CharField', [], {'default': "'no'", 'max_length': '3'}), - 'share': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'sambashare'", 'unique': 'True', 'to': "orm['storageadmin.Share']"}) - }, - 'storageadmin.setup': { - 'Meta': {'object_name': 'Setup'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'setup_disks': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'setup_network': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'setup_system': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'setup_user': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'storageadmin.sftp': { - 'Meta': {'object_name': 'SFTP'}, - 'editable': ('django.db.models.fields.CharField', [], {'default': "'ro'", 'max_length': '2'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'share': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['storageadmin.Share']", 'unique': 'True'}) - }, - 'storageadmin.share': { - 'Meta': {'object_name': 'Share'}, - 'group': ('django.db.models.fields.CharField', [], {'default': "'root'", 'max_length': '4096'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), - 'owner': ('django.db.models.fields.CharField', [], {'default': "'root'", 'max_length': '4096'}), - 'perms': ('django.db.models.fields.CharField', [], {'default': "'755'", 'max_length': '9'}), - 'pool': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Pool']"}), - 'qgroup': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'replica': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'size': ('django.db.models.fields.IntegerField', [], {}), - 'subvol_name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'toc': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}) - }, - 'storageadmin.sharestatistic': { - 'Meta': {'object_name': 'ShareStatistic'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'share': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Share']"}), - 'total_capacity': ('django.db.models.fields.IntegerField', [], {}), - 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'used': ('django.db.models.fields.IntegerField', [], {}) - }, - 'storageadmin.snapshot': { - 'Meta': {'unique_together': "(('share', 'name'),)", 'object_name': 'Snapshot'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), - 'qgroup': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'real_name': ('django.db.models.fields.CharField', [], {'default': "'unknownsnap'", 'max_length': '4096'}), - 'share': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Share']"}), - 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'snap_type': ('django.db.models.fields.CharField', [], {'default': "'admin'", 'max_length': '64'}), - 'toc': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'uvisible': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'writable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'storageadmin.supportcase': { - 'Meta': {'object_name': 'SupportCase'}, - 'case_type': ('django.db.models.fields.CharField', [], {'max_length': '6'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'notes': ('django.db.models.fields.TextField', [], {}), - 'status': ('django.db.models.fields.CharField', [], {'max_length': '9'}), - 'zipped_log': ('django.db.models.fields.CharField', [], {'max_length': '128'}) - }, - 'storageadmin.user': { - 'Meta': {'object_name': 'User'}, - 'gid': ('django.db.models.fields.IntegerField', [], {'default': '5000'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'uid': ('django.db.models.fields.IntegerField', [], {'default': '5000'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'suser'", 'unique': 'True', 'null': 'True', 'to': u"orm['auth.User']"}), - 'username': ('django.db.models.fields.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '4096'}) - } - } - - complete_apps = ['storageadmin'] \ No newline at end of file +from __future__ import unicode_literals + +from django.db import migrations, models +import django.core.validators +import django.db.models.deletion +from django.conf import settings +import storageadmin.models.validators + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + migrations.swappable_dependency(settings.OAUTH2_PROVIDER_APPLICATION_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='AdvancedNFSExport', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('export_str', models.CharField(max_length=4096)), + ], + ), + migrations.CreateModel( + name='APIKeys', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('user', models.CharField(unique=True, max_length=8)), + ('key', models.CharField(unique=True, max_length=10)), + ], + ), + migrations.CreateModel( + name='Appliance', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('uuid', models.CharField(unique=True, max_length=64)), + ('ip', models.CharField(unique=True, max_length=4096)), + ('current_appliance', models.BooleanField(default=False)), + ('hostname', models.CharField(default=b'Rockstor', max_length=128)), + ('mgmt_port', models.IntegerField(default=443)), + ('client_id', models.CharField(max_length=100, null=True)), + ('client_secret', models.CharField(max_length=255, null=True)), + ], + ), + migrations.CreateModel( + name='BondConnection', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=64, null=True)), + ('config', models.CharField(max_length=2048, null=True)), + ], + ), + migrations.CreateModel( + name='ConfigBackup', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('filename', models.CharField(max_length=64)), + ('md5sum', models.CharField(max_length=32, null=True)), + ('size', models.IntegerField(null=True)), + ('config_backup', models.FileField(null=True, upload_to=b'config-backups')), + ], + ), + migrations.CreateModel( + name='ContainerOption', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=1024)), + ('val', models.CharField(max_length=1024, blank=True)), + ], + ), + migrations.CreateModel( + name='DashboardConfig', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('widgets', models.CharField(max_length=4096)), + ], + ), + migrations.CreateModel( + name='DContainer', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=1024)), + ('launch_order', models.IntegerField(default=1)), + ('uid', models.IntegerField(null=True)), + ], + ), + migrations.CreateModel( + name='DContainerEnv', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('key', models.CharField(max_length=1024)), + ('val', models.CharField(max_length=1024, null=True)), + ('description', models.CharField(max_length=2048, null=True)), + ('label', models.CharField(max_length=64, null=True)), + ('container', models.ForeignKey(to='storageadmin.DContainer')), + ], + ), + migrations.CreateModel( + name='DContainerLink', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=64, null=True)), + ('destination', models.ForeignKey(related_name='destination_container', to='storageadmin.DContainer')), + ('source', models.OneToOneField(to='storageadmin.DContainer')), + ], + ), + migrations.CreateModel( + name='DCustomConfig', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('key', models.CharField(max_length=1024)), + ('val', models.CharField(max_length=1024, null=True)), + ('description', models.CharField(max_length=2048, null=True)), + ('label', models.CharField(max_length=64, null=True)), + ], + ), + migrations.CreateModel( + name='DImage', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=1024)), + ('tag', models.CharField(max_length=1024)), + ('repo', models.CharField(max_length=1024)), + ], + ), + migrations.CreateModel( + name='Disk', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=128)), + ('size', models.BigIntegerField(default=0)), + ('offline', models.BooleanField(default=False)), + ('parted', models.BooleanField()), + ('btrfs_uuid', models.CharField(max_length=1024, null=True)), + ('model', models.CharField(max_length=1024, null=True)), + ('serial', models.CharField(max_length=1024, null=True)), + ('transport', models.CharField(max_length=1024, null=True)), + ('vendor', models.CharField(max_length=1024, null=True)), + ('smart_available', models.BooleanField(default=False)), + ('smart_enabled', models.BooleanField(default=False)), + ('smart_options', models.CharField(max_length=64, null=True)), + ('role', models.CharField(max_length=256, null=True)), + ], + ), + migrations.CreateModel( + name='DPort', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('description', models.CharField(max_length=1024, null=True)), + ('hostp', models.IntegerField(unique=True)), + ('hostp_default', models.IntegerField(null=True)), + ('containerp', models.IntegerField()), + ('protocol', models.CharField(max_length=32, null=True)), + ('uiport', models.BooleanField(default=False)), + ('label', models.CharField(max_length=1024, null=True)), + ('container', models.ForeignKey(to='storageadmin.DContainer')), + ], + ), + migrations.CreateModel( + name='DVolume', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('dest_dir', models.CharField(max_length=1024)), + ('uservol', models.BooleanField(default=False)), + ('description', models.CharField(max_length=1024, null=True)), + ('min_size', models.IntegerField(null=True)), + ('label', models.CharField(max_length=1024, null=True)), + ('container', models.ForeignKey(to='storageadmin.DContainer')), + ], + ), + migrations.CreateModel( + name='EmailClient', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('smtp_server', models.CharField(max_length=1024)), + ('port', models.IntegerField(default=587)), + ('name', models.CharField(unique=True, max_length=1024)), + ('sender', models.CharField(max_length=1024)), + ('username', models.CharField(max_length=1024)), + ('receiver', models.CharField(max_length=1024)), + ], + ), + migrations.CreateModel( + name='EthernetConnection', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('mac', models.CharField(max_length=64, null=True)), + ('cloned_mac', models.CharField(max_length=64, null=True)), + ('mtu', models.CharField(max_length=64, null=True)), + ], + ), + migrations.CreateModel( + name='Group', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('gid', models.IntegerField(unique=True)), + ('groupname', models.CharField(max_length=1024, null=True)), + ('admin', models.BooleanField(default=False)), + ], + ), + migrations.CreateModel( + name='InstalledPlugin', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('install_date', models.DateTimeField(auto_now=True)), + ], + ), + migrations.CreateModel( + name='IscsiTarget', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('tid', models.IntegerField(unique=True)), + ('tname', models.CharField(unique=True, max_length=128)), + ('dev_name', models.CharField(unique=True, max_length=128)), + ('dev_size', models.IntegerField()), + ], + ), + migrations.CreateModel( + name='NetatalkShare', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('path', models.CharField(unique=True, max_length=4096)), + ('description', models.CharField(default=b'afp on rockstor', max_length=1024)), + ('time_machine', models.CharField(default=b'yes', max_length=3, choices=[(b'yes', b'yes'), (b'no', b'no')])), + ], + ), + migrations.CreateModel( + name='NetworkConnection', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=256, null=True)), + ('uuid', models.CharField(unique=True, max_length=256)), + ('state', models.CharField(max_length=64, null=True)), + ('autoconnect', models.BooleanField(default=True)), + ('ipv4_method', models.CharField(max_length=64, null=True)), + ('ipv4_addresses', models.CharField(max_length=1024, null=True)), + ('ipv4_gw', models.CharField(max_length=64, null=True)), + ('ipv4_dns', models.CharField(max_length=256, null=True)), + ('ipv4_dns_search', models.CharField(max_length=256, null=True)), + ('ipv6_method', models.CharField(max_length=1024, null=True)), + ('ipv6_addresses', models.CharField(max_length=1024, null=True)), + ('ipv6_gw', models.CharField(max_length=64, null=True)), + ('ipv6_dns', models.CharField(max_length=256, null=True)), + ('ipv6_dns_search', models.CharField(max_length=256, null=True)), + ('master', models.ForeignKey(to='storageadmin.NetworkConnection', null=True)), + ], + ), + migrations.CreateModel( + name='NetworkDevice', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=256)), + ('dtype', models.CharField(max_length=100, null=True)), + ('mac', models.CharField(max_length=100, null=True)), + ('state', models.CharField(max_length=64, null=True)), + ('mtu', models.CharField(max_length=64, null=True)), + ('connection', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, to='storageadmin.NetworkConnection', null=True)), + ], + ), + migrations.CreateModel( + name='NFSExport', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('mount', models.CharField(max_length=4096)), + ], + ), + migrations.CreateModel( + name='NFSExportGroup', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('host_str', models.CharField(max_length=4096, validators=[storageadmin.models.validators.validate_nfs_host_str])), + ('editable', models.CharField(default=b'rw', max_length=2, choices=[(b'ro', b'ro'), (b'rw', b'rw')], validators=[storageadmin.models.validators.validate_nfs_modify_str])), + ('syncable', models.CharField(default=b'async', max_length=5, choices=[(b'async', b'async'), (b'sync', b'sync')], validators=[storageadmin.models.validators.validate_nfs_sync_choice])), + ('mount_security', models.CharField(default=b'insecure', max_length=8, choices=[(b'secure', b'secure'), (b'insecure', b'insecure')])), + ('nohide', models.BooleanField(default=False)), + ('enabled', models.BooleanField(default=True)), + ('admin_host', models.CharField(max_length=1024, null=True)), + ], + ), + migrations.CreateModel( + name='OauthApp', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=128)), + ('application', models.OneToOneField(to=settings.OAUTH2_PROVIDER_APPLICATION_MODEL)), + ], + ), + migrations.CreateModel( + name='Pincard', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('user', models.IntegerField()), + ('pin_number', models.IntegerField(validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(24)])), + ('pin_code', models.CharField(max_length=32)), + ], + ), + migrations.CreateModel( + name='Plugin', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=4096)), + ('display_name', models.CharField(default=b'', unique=True, max_length=4096)), + ('description', models.CharField(default=b'', max_length=4096)), + ('css_file_name', models.CharField(max_length=4096)), + ('js_file_name', models.CharField(max_length=4096)), + ('key', models.CharField(unique=True, max_length=4096)), + ], + ), + migrations.CreateModel( + name='Pool', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=4096)), + ('uuid', models.CharField(max_length=100, null=True)), + ('size', models.BigIntegerField(default=0)), + ('raid', models.CharField(max_length=10)), + ('toc', models.DateTimeField(auto_now=True)), + ('compression', models.CharField(max_length=256, null=True)), + ('mnt_options', models.CharField(max_length=4096, null=True)), + ('role', models.CharField(max_length=256, null=True)), + ], + ), + migrations.CreateModel( + name='PoolBalance', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('status', models.CharField(default=b'started', max_length=10)), + ('tid', models.CharField(max_length=36, null=True)), + ('message', models.CharField(max_length=1024, null=True)), + ('start_time', models.DateTimeField(auto_now=True)), + ('end_time', models.DateTimeField(null=True)), + ('percent_done', models.IntegerField(default=0)), + ('pool', models.ForeignKey(to='storageadmin.Pool')), + ], + ), + migrations.CreateModel( + name='PoolScrub', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('status', models.CharField(default=b'started', max_length=10)), + ('pid', models.IntegerField()), + ('start_time', models.DateTimeField(auto_now=True)), + ('end_time', models.DateTimeField(null=True)), + ('kb_scrubbed', models.BigIntegerField(null=True)), + ('data_extents_scrubbed', models.BigIntegerField(default=0)), + ('tree_extents_scrubbed', models.BigIntegerField(default=0)), + ('tree_bytes_scrubbed', models.BigIntegerField(default=0)), + ('read_errors', models.IntegerField(default=0)), + ('csum_errors', models.IntegerField(default=0)), + ('verify_errors', models.IntegerField(default=0)), + ('no_csum', models.IntegerField(default=0)), + ('csum_discards', models.IntegerField(default=0)), + ('super_errors', models.IntegerField(default=0)), + ('malloc_errors', models.IntegerField(default=0)), + ('uncorrectable_errors', models.IntegerField(default=0)), + ('unverified_errors', models.IntegerField(default=0)), + ('corrected_errors', models.IntegerField(default=0)), + ('last_physical', models.BigIntegerField(default=0)), + ('pool', models.ForeignKey(to='storageadmin.Pool')), + ], + ), + migrations.CreateModel( + name='PosixACLs', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('owner', models.CharField(max_length=5, choices=[(b'user', b'user'), (b'group', b'group'), (b'other', b'other')])), + ('perms', models.CharField(max_length=3, choices=[(b'r', b'r'), (b'w', b'w'), (b'x', b'x'), (b'rw', b'rw'), (b'rx', b'rx'), (b'wx', b'wx'), (b'rwx', b'rwx')])), + ], + ), + migrations.CreateModel( + name='RockOn', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=1024)), + ('description', models.CharField(max_length=2048)), + ('version', models.CharField(max_length=2048)), + ('state', models.CharField(max_length=2048)), + ('status', models.CharField(max_length=2048)), + ('link', models.CharField(max_length=1024, null=True)), + ('website', models.CharField(max_length=2048, null=True)), + ('https', models.BooleanField(default=False)), + ('icon', models.URLField(max_length=1024, null=True)), + ('ui', models.BooleanField(default=False)), + ('volume_add_support', models.BooleanField(default=False)), + ('more_info', models.CharField(max_length=4096, null=True)), + ], + ), + migrations.CreateModel( + name='SambaCustomConfig', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('custom_config', models.CharField(max_length=1024, null=True)), + ], + ), + migrations.CreateModel( + name='SambaShare', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('path', models.CharField(unique=True, max_length=4096)), + ('comment', models.CharField(default=b'foo bar', max_length=100)), + ('browsable', models.CharField(default=b'yes', max_length=3, choices=[(b'yes', b'yes'), (b'no', b'no')])), + ('read_only', models.CharField(default=b'no', max_length=3, choices=[(b'yes', b'yes'), (b'no', b'no')])), + ('guest_ok', models.CharField(default=b'no', max_length=3, choices=[(b'yes', b'yes'), (b'no', b'no')])), + ('shadow_copy', models.BooleanField(default=False)), + ('snapshot_prefix', models.CharField(max_length=128, null=True)), + ], + ), + migrations.CreateModel( + name='Setup', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('setup_user', models.BooleanField(default=False)), + ('setup_system', models.BooleanField(default=False)), + ('setup_disks', models.BooleanField(default=False)), + ('setup_network', models.BooleanField(default=False)), + ], + ), + migrations.CreateModel( + name='SFTP', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('editable', models.CharField(default=b'ro', max_length=2, choices=[(b'ro', b'ro'), (b'rw', b'rw')])), + ], + ), + migrations.CreateModel( + name='Share', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('qgroup', models.CharField(max_length=100)), + ('pqgroup', models.CharField(default=b'-1/-1', max_length=32)), + ('name', models.CharField(unique=True, max_length=4096)), + ('uuid', models.CharField(max_length=100, null=True)), + ('size', models.BigIntegerField(default=0)), + ('owner', models.CharField(default=b'root', max_length=4096)), + ('group', models.CharField(default=b'root', max_length=4096)), + ('perms', models.CharField(default=b'755', max_length=9)), + ('toc', models.DateTimeField(auto_now=True)), + ('subvol_name', models.CharField(max_length=4096)), + ('replica', models.BooleanField(default=False)), + ('compression_algo', models.CharField(max_length=1024, null=True)), + ('rusage', models.BigIntegerField(default=0)), + ('eusage', models.BigIntegerField(default=0)), + ('pool', models.ForeignKey(to='storageadmin.Pool')), + ], + ), + migrations.CreateModel( + name='SMARTAttribute', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('aid', models.IntegerField()), + ('name', models.CharField(max_length=256)), + ('flag', models.CharField(max_length=64)), + ('normed_value', models.IntegerField(default=0)), + ('worst', models.IntegerField(default=0)), + ('threshold', models.IntegerField(default=0)), + ('atype', models.CharField(max_length=64)), + ('raw_value', models.CharField(max_length=256)), + ('updated', models.CharField(max_length=64)), + ('failed', models.CharField(max_length=64)), + ], + ), + migrations.CreateModel( + name='SMARTCapability', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=1024)), + ('flag', models.CharField(max_length=64)), + ('capabilities', models.CharField(max_length=2048)), + ], + ), + migrations.CreateModel( + name='SMARTErrorLog', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('line', models.CharField(max_length=128)), + ], + ), + migrations.CreateModel( + name='SMARTErrorLogSummary', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('error_num', models.IntegerField()), + ('lifetime_hours', models.IntegerField()), + ('state', models.CharField(max_length=64)), + ('etype', models.CharField(max_length=256)), + ('details', models.CharField(max_length=1024)), + ], + ), + migrations.CreateModel( + name='SMARTIdentity', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('model_family', models.CharField(max_length=64, verbose_name=b'Model Family')), + ('device_model', models.CharField(max_length=64, verbose_name=b'Device Model')), + ('serial_number', models.CharField(max_length=64, verbose_name=b'Serial Number')), + ('world_wide_name', models.CharField(max_length=64, verbose_name=b'World Wide Name')), + ('firmware_version', models.CharField(max_length=64, verbose_name=b'Firmware Version')), + ('capacity', models.CharField(max_length=64, verbose_name=b'Capacity')), + ('sector_size', models.CharField(max_length=64, verbose_name=b'Sector Size')), + ('rotation_rate', models.CharField(max_length=64, verbose_name=b'Rotation Rate')), + ('in_smartdb', models.CharField(max_length=64, verbose_name=b'In Smartctl Database')), + ('ata_version', models.CharField(max_length=64, verbose_name=b'ATA Version')), + ('sata_version', models.CharField(max_length=64, verbose_name=b'SATA Version')), + ('scanned_on', models.CharField(max_length=64, verbose_name=b'Scanned on')), + ('supported', models.CharField(max_length=64, verbose_name=b'SMART Supported')), + ('enabled', models.CharField(max_length=64, verbose_name=b'SMART Enabled')), + ('version', models.CharField(max_length=64, verbose_name=b'Smartctl Version')), + ('assessment', models.CharField(max_length=64, verbose_name=b'Overall Health Self-Assessment Test')), + ], + ), + migrations.CreateModel( + name='SMARTInfo', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('toc', models.DateTimeField(auto_now=True)), + ('disk', models.ForeignKey(to='storageadmin.Disk')), + ], + ), + migrations.CreateModel( + name='SMARTTestLog', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('test_num', models.IntegerField()), + ('description', models.CharField(max_length=64)), + ('status', models.CharField(max_length=256)), + ('pct_completed', models.IntegerField()), + ('lifetime_hours', models.IntegerField()), + ('lba_of_first_error', models.CharField(max_length=1024)), + ('info', models.ForeignKey(to='storageadmin.SMARTInfo')), + ], + ), + migrations.CreateModel( + name='SMARTTestLogDetail', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('line', models.CharField(max_length=128)), + ('info', models.ForeignKey(to='storageadmin.SMARTInfo')), + ], + ), + migrations.CreateModel( + name='Snapshot', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=4096)), + ('real_name', models.CharField(default=b'unknownsnap', max_length=4096)), + ('writable', models.BooleanField(default=False)), + ('size', models.BigIntegerField(default=0)), + ('toc', models.DateTimeField(auto_now_add=True)), + ('qgroup', models.CharField(max_length=100)), + ('uvisible', models.BooleanField(default=False)), + ('snap_type', models.CharField(default=b'admin', max_length=64)), + ('rusage', models.BigIntegerField(default=0)), + ('eusage', models.BigIntegerField(default=0)), + ('share', models.ForeignKey(to='storageadmin.Share')), + ], + ), + migrations.CreateModel( + name='SupportCase', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('notes', models.TextField()), + ('zipped_log', models.CharField(max_length=128)), + ('status', models.CharField(max_length=9, choices=[(b'created', b'created'), (b'submitted', b'submitted'), (b'resolved', b'resolved')])), + ('case_type', models.CharField(max_length=6, choices=[(b'auto', b'auto'), (b'manual', b'manual')])), + ], + ), + migrations.CreateModel( + name='TeamConnection', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=64, null=True)), + ('config', models.CharField(max_length=2048, null=True)), + ('connection', models.ForeignKey(to='storageadmin.NetworkConnection', null=True)), + ], + ), + migrations.CreateModel( + name='TLSCertificate', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=1024)), + ('certificate', models.CharField(max_length=12288, null=True)), + ('key', models.CharField(max_length=12288, null=True)), + ], + ), + migrations.CreateModel( + name='UpdateSubscription', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=64)), + ('description', models.CharField(max_length=128)), + ('url', models.CharField(max_length=512)), + ('password', models.CharField(max_length=64, null=True)), + ('status', models.CharField(max_length=64)), + ('appliance', models.ForeignKey(to='storageadmin.Appliance')), + ], + ), + migrations.CreateModel( + name='User', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('username', models.CharField(default=b'', unique=True, max_length=4096)), + ('uid', models.IntegerField(default=5000)), + ('gid', models.IntegerField(default=5000)), + ('public_key', models.CharField(max_length=4096, null=True, blank=True)), + ('shell', models.CharField(max_length=1024, null=True)), + ('homedir', models.CharField(max_length=1024, null=True)), + ('email', models.CharField(blank=True, max_length=1024, null=True, validators=[django.core.validators.EmailValidator()])), + ('admin', models.BooleanField(default=True)), + ('group', models.ForeignKey(blank=True, to='storageadmin.Group', null=True)), + ('smb_shares', models.ManyToManyField(related_name='admin_users', null=True, to='storageadmin.SambaShare')), + ('user', models.OneToOneField(related_name='suser', null=True, blank=True, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.AddField( + model_name='smartidentity', + name='info', + field=models.ForeignKey(to='storageadmin.SMARTInfo'), + ), + migrations.AddField( + model_name='smarterrorlogsummary', + name='info', + field=models.ForeignKey(to='storageadmin.SMARTInfo'), + ), + migrations.AddField( + model_name='smarterrorlog', + name='info', + field=models.ForeignKey(to='storageadmin.SMARTInfo'), + ), + migrations.AddField( + model_name='smartcapability', + name='info', + field=models.ForeignKey(to='storageadmin.SMARTInfo'), + ), + migrations.AddField( + model_name='smartattribute', + name='info', + field=models.ForeignKey(to='storageadmin.SMARTInfo'), + ), + migrations.AddField( + model_name='sftp', + name='share', + field=models.OneToOneField(to='storageadmin.Share'), + ), + migrations.AddField( + model_name='sambashare', + name='share', + field=models.OneToOneField(related_name='sambashare', to='storageadmin.Share'), + ), + migrations.AddField( + model_name='sambacustomconfig', + name='smb_share', + field=models.ForeignKey(to='storageadmin.SambaShare'), + ), + migrations.AddField( + model_name='posixacls', + name='smb_share', + field=models.ForeignKey(to='storageadmin.SambaShare'), + ), + migrations.AlterUniqueTogether( + name='pincard', + unique_together=set([('user', 'pin_number')]), + ), + migrations.AddField( + model_name='oauthapp', + name='user', + field=models.ForeignKey(to='storageadmin.User'), + ), + migrations.AddField( + model_name='nfsexport', + name='export_group', + field=models.ForeignKey(to='storageadmin.NFSExportGroup'), + ), + migrations.AddField( + model_name='nfsexport', + name='share', + field=models.ForeignKey(to='storageadmin.Share'), + ), + migrations.AddField( + model_name='netatalkshare', + name='share', + field=models.OneToOneField(related_name='netatalkshare', to='storageadmin.Share'), + ), + migrations.AddField( + model_name='iscsitarget', + name='share', + field=models.ForeignKey(to='storageadmin.Share'), + ), + migrations.AddField( + model_name='installedplugin', + name='plugin_meta', + field=models.ForeignKey(to='storageadmin.Plugin'), + ), + migrations.AddField( + model_name='ethernetconnection', + name='connection', + field=models.ForeignKey(to='storageadmin.NetworkConnection', null=True), + ), + migrations.AddField( + model_name='dvolume', + name='share', + field=models.ForeignKey(to='storageadmin.Share', null=True), + ), + migrations.AddField( + model_name='disk', + name='pool', + field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, to='storageadmin.Pool', null=True), + ), + migrations.AddField( + model_name='dcustomconfig', + name='rockon', + field=models.ForeignKey(to='storageadmin.RockOn'), + ), + migrations.AddField( + model_name='dcontainer', + name='dimage', + field=models.ForeignKey(to='storageadmin.DImage'), + ), + migrations.AddField( + model_name='dcontainer', + name='rockon', + field=models.ForeignKey(to='storageadmin.RockOn'), + ), + migrations.AddField( + model_name='dashboardconfig', + name='user', + field=models.ForeignKey(to=settings.AUTH_USER_MODEL, unique=True), + ), + migrations.AddField( + model_name='containeroption', + name='container', + field=models.ForeignKey(to='storageadmin.DContainer'), + ), + migrations.AddField( + model_name='bondconnection', + name='connection', + field=models.ForeignKey(to='storageadmin.NetworkConnection', null=True), + ), + migrations.AlterUniqueTogether( + name='snapshot', + unique_together=set([('share', 'name')]), + ), + migrations.AlterUniqueTogether( + name='dvolume', + unique_together=set([('container', 'dest_dir')]), + ), + migrations.AlterUniqueTogether( + name='dport', + unique_together=set([('container', 'containerp')]), + ), + migrations.AlterUniqueTogether( + name='dcustomconfig', + unique_together=set([('rockon', 'key')]), + ), + migrations.AlterUniqueTogether( + name='dcontainerlink', + unique_together=set([('destination', 'name')]), + ), + migrations.AlterUniqueTogether( + name='dcontainerenv', + unique_together=set([('container', 'key')]), + ), + ] diff --git a/src/rockstor/storageadmin/south_migrations/0001_initial.py b/src/rockstor/storageadmin/south_migrations/0001_initial.py new file mode 100644 index 000000000..dcf88d692 --- /dev/null +++ b/src/rockstor/storageadmin/south_migrations/0001_initial.py @@ -0,0 +1,565 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'Pool' + db.create_table(u'storageadmin_pool', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), + ('uuid', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), + ('size', self.gf('django.db.models.fields.IntegerField')(default=0)), + ('raid', self.gf('django.db.models.fields.CharField')(max_length=10)), + ('toc', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + )) + db.send_create_signal('storageadmin', ['Pool']) + + # Adding model 'Disk' + db.create_table(u'storageadmin_disk', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('pool', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Pool'], null=True, on_delete=models.SET_NULL)), + ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=10)), + ('size', self.gf('django.db.models.fields.IntegerField')()), + ('offline', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('parted', self.gf('django.db.models.fields.BooleanField')()), + )) + db.send_create_signal('storageadmin', ['Disk']) + + # Adding model 'Share' + db.create_table(u'storageadmin_share', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('pool', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Pool'])), + ('qgroup', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), + ('uuid', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), + ('size', self.gf('django.db.models.fields.IntegerField')()), + ('owner', self.gf('django.db.models.fields.CharField')(default='root', max_length=4096)), + ('group', self.gf('django.db.models.fields.CharField')(default='root', max_length=4096)), + ('perms', self.gf('django.db.models.fields.CharField')(default='755', max_length=9)), + ('toc', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + ('subvol_name', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('replica', self.gf('django.db.models.fields.BooleanField')(default=False)), + )) + db.send_create_signal('storageadmin', ['Share']) + + # Adding model 'Snapshot' + db.create_table(u'storageadmin_snapshot', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('share', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Share'])), + ('name', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('real_name', self.gf('django.db.models.fields.CharField')(default='unknownsnap', max_length=4096)), + ('writable', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('size', self.gf('django.db.models.fields.IntegerField')(default=0)), + ('toc', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + ('qgroup', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('uvisible', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('snap_type', self.gf('django.db.models.fields.CharField')(default='admin', max_length=64)), + )) + db.send_create_signal('storageadmin', ['Snapshot']) + + # Adding unique constraint on 'Snapshot', fields ['share', 'name'] + db.create_unique(u'storageadmin_snapshot', ['share_id', 'name']) + + # Adding model 'PoolStatistic' + db.create_table(u'storageadmin_poolstatistic', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('pool', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Pool'])), + ('total_capacity', self.gf('django.db.models.fields.IntegerField')()), + ('used', self.gf('django.db.models.fields.IntegerField')()), + ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + )) + db.send_create_signal('storageadmin', ['PoolStatistic']) + + # Adding model 'ShareStatistic' + db.create_table(u'storageadmin_sharestatistic', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('share', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Share'])), + ('total_capacity', self.gf('django.db.models.fields.IntegerField')()), + ('used', self.gf('django.db.models.fields.IntegerField')()), + ('ts', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + )) + db.send_create_signal('storageadmin', ['ShareStatistic']) + + # Adding model 'NFSExportGroup' + db.create_table(u'storageadmin_nfsexportgroup', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('host_str', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('editable', self.gf('django.db.models.fields.CharField')(default='ro', max_length=2)), + ('syncable', self.gf('django.db.models.fields.CharField')(default='async', max_length=5)), + ('mount_security', self.gf('django.db.models.fields.CharField')(default='insecure', max_length=8)), + ('nohide', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('enabled', self.gf('django.db.models.fields.BooleanField')(default=True)), + )) + db.send_create_signal('storageadmin', ['NFSExportGroup']) + + # Adding model 'NFSExport' + db.create_table(u'storageadmin_nfsexport', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('export_group', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.NFSExportGroup'])), + ('share', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Share'])), + ('mount', self.gf('django.db.models.fields.CharField')(max_length=4096)), + )) + db.send_create_signal('storageadmin', ['NFSExport']) + + # Adding model 'SambaShare' + db.create_table(u'storageadmin_sambashare', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('share', self.gf('django.db.models.fields.related.OneToOneField')(related_name='sambashare', unique=True, to=orm['storageadmin.Share'])), + ('path', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), + ('comment', self.gf('django.db.models.fields.CharField')(default='foo bar', max_length=100)), + ('browsable', self.gf('django.db.models.fields.CharField')(default='yes', max_length=3)), + ('read_only', self.gf('django.db.models.fields.CharField')(default='no', max_length=3)), + ('guest_ok', self.gf('django.db.models.fields.CharField')(default='no', max_length=3)), + ('create_mask', self.gf('django.db.models.fields.CharField')(default='0755', max_length=4)), + ('admin_users', self.gf('django.db.models.fields.CharField')(default='Administrator', max_length=128)), + )) + db.send_create_signal('storageadmin', ['SambaShare']) + + # Adding model 'IscsiTarget' + db.create_table(u'storageadmin_iscsitarget', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('share', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Share'])), + ('tid', self.gf('django.db.models.fields.IntegerField')(unique=True)), + ('tname', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)), + ('dev_name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)), + ('dev_size', self.gf('django.db.models.fields.IntegerField')()), + )) + db.send_create_signal('storageadmin', ['IscsiTarget']) + + # Adding model 'PosixACLs' + db.create_table(u'storageadmin_posixacls', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('smb_share', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.SambaShare'])), + ('owner', self.gf('django.db.models.fields.CharField')(max_length=5)), + ('perms', self.gf('django.db.models.fields.CharField')(max_length=3)), + )) + db.send_create_signal('storageadmin', ['PosixACLs']) + + # Adding model 'APIKeys' + db.create_table(u'storageadmin_apikeys', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('user', self.gf('django.db.models.fields.CharField')(unique=True, max_length=8)), + ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=10)), + )) + db.send_create_signal('storageadmin', ['APIKeys']) + + # Adding model 'Appliance' + db.create_table(u'storageadmin_appliance', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('uuid', self.gf('django.db.models.fields.CharField')(unique=True, max_length=64)), + ('ip', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), + ('current_appliance', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('hostname', self.gf('django.db.models.fields.CharField')(default='Rockstor', max_length=128)), + ('mgmt_port', self.gf('django.db.models.fields.IntegerField')(default=443)), + )) + db.send_create_signal('storageadmin', ['Appliance']) + + # Adding model 'SupportCase' + db.create_table(u'storageadmin_supportcase', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('notes', self.gf('django.db.models.fields.TextField')()), + ('zipped_log', self.gf('django.db.models.fields.CharField')(max_length=128)), + ('status', self.gf('django.db.models.fields.CharField')(max_length=9)), + ('case_type', self.gf('django.db.models.fields.CharField')(max_length=6)), + )) + db.send_create_signal('storageadmin', ['SupportCase']) + + # Adding model 'DashboardConfig' + db.create_table(u'storageadmin_dashboardconfig', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], unique=True)), + ('widgets', self.gf('django.db.models.fields.CharField')(max_length=4096)), + )) + db.send_create_signal('storageadmin', ['DashboardConfig']) + + # Adding model 'NetworkInterface' + db.create_table(u'storageadmin_networkinterface', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('alias', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), + ('mac', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('boot_proto', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), + ('onboot', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), + ('network', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), + ('netmask', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), + ('ipaddr', self.gf('django.db.models.fields.CharField')(max_length=100, null=True)), + ('itype', self.gf('django.db.models.fields.CharField')(default='io', max_length=100)), + )) + db.send_create_signal('storageadmin', ['NetworkInterface']) + + # Adding model 'User' + db.create_table(u'storageadmin_user', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('user', self.gf('django.db.models.fields.related.OneToOneField')(related_name='suser', unique=True, null=True, to=orm['auth.User'])), + ('username', self.gf('django.db.models.fields.CharField')(default='', unique=True, max_length=4096)), + ('uid', self.gf('django.db.models.fields.IntegerField')(default=5000)), + ('gid', self.gf('django.db.models.fields.IntegerField')(default=5000)), + )) + db.send_create_signal('storageadmin', ['User']) + + # Adding model 'PoolScrub' + db.create_table(u'storageadmin_poolscrub', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('pool', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Pool'])), + ('status', self.gf('django.db.models.fields.CharField')(default='started', max_length=10)), + ('pid', self.gf('django.db.models.fields.IntegerField')()), + ('start_time', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + ('end_time', self.gf('django.db.models.fields.DateTimeField')(null=True)), + ('kb_scrubbed', self.gf('django.db.models.fields.IntegerField')(null=True)), + ('errors', self.gf('django.db.models.fields.IntegerField')(null=True)), + )) + db.send_create_signal('storageadmin', ['PoolScrub']) + + # Adding model 'Setup' + db.create_table(u'storageadmin_setup', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('setup_user', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('setup_system', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('setup_disks', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('setup_network', self.gf('django.db.models.fields.BooleanField')(default=False)), + )) + db.send_create_signal('storageadmin', ['Setup']) + + # Adding model 'SFTP' + db.create_table(u'storageadmin_sftp', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('share', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['storageadmin.Share'], unique=True)), + ('editable', self.gf('django.db.models.fields.CharField')(default='ro', max_length=2)), + )) + db.send_create_signal('storageadmin', ['SFTP']) + + # Adding model 'Plugin' + db.create_table(u'storageadmin_plugin', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), + ('display_name', self.gf('django.db.models.fields.CharField')(default='', unique=True, max_length=4096)), + ('description', self.gf('django.db.models.fields.CharField')(default='', max_length=4096)), + ('css_file_name', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('js_file_name', self.gf('django.db.models.fields.CharField')(max_length=4096)), + ('key', self.gf('django.db.models.fields.CharField')(unique=True, max_length=4096)), + )) + db.send_create_signal('storageadmin', ['Plugin']) + + # Adding model 'InstalledPlugin' + db.create_table(u'storageadmin_installedplugin', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('plugin_meta', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['storageadmin.Plugin'])), + ('install_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + )) + db.send_create_signal('storageadmin', ['InstalledPlugin']) + + + def backwards(self, orm): + # Removing unique constraint on 'Snapshot', fields ['share', 'name'] + db.delete_unique(u'storageadmin_snapshot', ['share_id', 'name']) + + # Deleting model 'Pool' + db.delete_table(u'storageadmin_pool') + + # Deleting model 'Disk' + db.delete_table(u'storageadmin_disk') + + # Deleting model 'Share' + db.delete_table(u'storageadmin_share') + + # Deleting model 'Snapshot' + db.delete_table(u'storageadmin_snapshot') + + # Deleting model 'PoolStatistic' + db.delete_table(u'storageadmin_poolstatistic') + + # Deleting model 'ShareStatistic' + db.delete_table(u'storageadmin_sharestatistic') + + # Deleting model 'NFSExportGroup' + db.delete_table(u'storageadmin_nfsexportgroup') + + # Deleting model 'NFSExport' + db.delete_table(u'storageadmin_nfsexport') + + # Deleting model 'SambaShare' + db.delete_table(u'storageadmin_sambashare') + + # Deleting model 'IscsiTarget' + db.delete_table(u'storageadmin_iscsitarget') + + # Deleting model 'PosixACLs' + db.delete_table(u'storageadmin_posixacls') + + # Deleting model 'APIKeys' + db.delete_table(u'storageadmin_apikeys') + + # Deleting model 'Appliance' + db.delete_table(u'storageadmin_appliance') + + # Deleting model 'SupportCase' + db.delete_table(u'storageadmin_supportcase') + + # Deleting model 'DashboardConfig' + db.delete_table(u'storageadmin_dashboardconfig') + + # Deleting model 'NetworkInterface' + db.delete_table(u'storageadmin_networkinterface') + + # Deleting model 'User' + db.delete_table(u'storageadmin_user') + + # Deleting model 'PoolScrub' + db.delete_table(u'storageadmin_poolscrub') + + # Deleting model 'Setup' + db.delete_table(u'storageadmin_setup') + + # Deleting model 'SFTP' + db.delete_table(u'storageadmin_sftp') + + # Deleting model 'Plugin' + db.delete_table(u'storageadmin_plugin') + + # Deleting model 'InstalledPlugin' + db.delete_table(u'storageadmin_installedplugin') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'storageadmin.apikeys': { + 'Meta': {'object_name': 'APIKeys'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}), + 'user': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '8'}) + }, + 'storageadmin.appliance': { + 'Meta': {'object_name': 'Appliance'}, + 'current_appliance': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'hostname': ('django.db.models.fields.CharField', [], {'default': "'Rockstor'", 'max_length': '128'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ip': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), + 'mgmt_port': ('django.db.models.fields.IntegerField', [], {'default': '443'}), + 'uuid': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'}) + }, + 'storageadmin.dashboardconfig': { + 'Meta': {'object_name': 'DashboardConfig'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'unique': 'True'}), + 'widgets': ('django.db.models.fields.CharField', [], {'max_length': '4096'}) + }, + 'storageadmin.disk': { + 'Meta': {'object_name': 'Disk'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}), + 'offline': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'parted': ('django.db.models.fields.BooleanField', [], {}), + 'pool': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Pool']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), + 'size': ('django.db.models.fields.IntegerField', [], {}) + }, + 'storageadmin.installedplugin': { + 'Meta': {'object_name': 'InstalledPlugin'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'install_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'plugin_meta': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Plugin']"}) + }, + 'storageadmin.iscsitarget': { + 'Meta': {'object_name': 'IscsiTarget'}, + 'dev_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}), + 'dev_size': ('django.db.models.fields.IntegerField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'share': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Share']"}), + 'tid': ('django.db.models.fields.IntegerField', [], {'unique': 'True'}), + 'tname': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}) + }, + 'storageadmin.networkinterface': { + 'Meta': {'object_name': 'NetworkInterface'}, + 'alias': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}), + 'boot_proto': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ipaddr': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}), + 'itype': ('django.db.models.fields.CharField', [], {'default': "'io'", 'max_length': '100'}), + 'mac': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'netmask': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}), + 'network': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}), + 'onboot': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}) + }, + 'storageadmin.nfsexport': { + 'Meta': {'object_name': 'NFSExport'}, + 'export_group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.NFSExportGroup']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mount': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'share': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Share']"}) + }, + 'storageadmin.nfsexportgroup': { + 'Meta': {'object_name': 'NFSExportGroup'}, + 'editable': ('django.db.models.fields.CharField', [], {'default': "'ro'", 'max_length': '2'}), + 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'host_str': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mount_security': ('django.db.models.fields.CharField', [], {'default': "'insecure'", 'max_length': '8'}), + 'nohide': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'syncable': ('django.db.models.fields.CharField', [], {'default': "'async'", 'max_length': '5'}) + }, + 'storageadmin.plugin': { + 'Meta': {'object_name': 'Plugin'}, + 'css_file_name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'description': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '4096'}), + 'display_name': ('django.db.models.fields.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '4096'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'js_file_name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}) + }, + 'storageadmin.pool': { + 'Meta': {'object_name': 'Pool'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), + 'raid': ('django.db.models.fields.CharField', [], {'max_length': '10'}), + 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'toc': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}) + }, + 'storageadmin.poolscrub': { + 'Meta': {'object_name': 'PoolScrub'}, + 'end_time': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), + 'errors': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kb_scrubbed': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), + 'pid': ('django.db.models.fields.IntegerField', [], {}), + 'pool': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Pool']"}), + 'start_time': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'started'", 'max_length': '10'}) + }, + 'storageadmin.poolstatistic': { + 'Meta': {'object_name': 'PoolStatistic'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'pool': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Pool']"}), + 'total_capacity': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'used': ('django.db.models.fields.IntegerField', [], {}) + }, + 'storageadmin.posixacls': { + 'Meta': {'object_name': 'PosixACLs'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'owner': ('django.db.models.fields.CharField', [], {'max_length': '5'}), + 'perms': ('django.db.models.fields.CharField', [], {'max_length': '3'}), + 'smb_share': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.SambaShare']"}) + }, + 'storageadmin.sambashare': { + 'Meta': {'object_name': 'SambaShare'}, + 'admin_users': ('django.db.models.fields.CharField', [], {'default': "'Administrator'", 'max_length': '128'}), + 'browsable': ('django.db.models.fields.CharField', [], {'default': "'yes'", 'max_length': '3'}), + 'comment': ('django.db.models.fields.CharField', [], {'default': "'foo bar'", 'max_length': '100'}), + 'create_mask': ('django.db.models.fields.CharField', [], {'default': "'0755'", 'max_length': '4'}), + 'guest_ok': ('django.db.models.fields.CharField', [], {'default': "'no'", 'max_length': '3'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), + 'read_only': ('django.db.models.fields.CharField', [], {'default': "'no'", 'max_length': '3'}), + 'share': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'sambashare'", 'unique': 'True', 'to': "orm['storageadmin.Share']"}) + }, + 'storageadmin.setup': { + 'Meta': {'object_name': 'Setup'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'setup_disks': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'setup_network': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'setup_system': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'setup_user': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'storageadmin.sftp': { + 'Meta': {'object_name': 'SFTP'}, + 'editable': ('django.db.models.fields.CharField', [], {'default': "'ro'", 'max_length': '2'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'share': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['storageadmin.Share']", 'unique': 'True'}) + }, + 'storageadmin.share': { + 'Meta': {'object_name': 'Share'}, + 'group': ('django.db.models.fields.CharField', [], {'default': "'root'", 'max_length': '4096'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '4096'}), + 'owner': ('django.db.models.fields.CharField', [], {'default': "'root'", 'max_length': '4096'}), + 'perms': ('django.db.models.fields.CharField', [], {'default': "'755'", 'max_length': '9'}), + 'pool': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Pool']"}), + 'qgroup': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'replica': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'size': ('django.db.models.fields.IntegerField', [], {}), + 'subvol_name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'toc': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'uuid': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True'}) + }, + 'storageadmin.sharestatistic': { + 'Meta': {'object_name': 'ShareStatistic'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'share': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Share']"}), + 'total_capacity': ('django.db.models.fields.IntegerField', [], {}), + 'ts': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'used': ('django.db.models.fields.IntegerField', [], {}) + }, + 'storageadmin.snapshot': { + 'Meta': {'unique_together': "(('share', 'name'),)", 'object_name': 'Snapshot'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '4096'}), + 'qgroup': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'real_name': ('django.db.models.fields.CharField', [], {'default': "'unknownsnap'", 'max_length': '4096'}), + 'share': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['storageadmin.Share']"}), + 'size': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'snap_type': ('django.db.models.fields.CharField', [], {'default': "'admin'", 'max_length': '64'}), + 'toc': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'uvisible': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'writable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'storageadmin.supportcase': { + 'Meta': {'object_name': 'SupportCase'}, + 'case_type': ('django.db.models.fields.CharField', [], {'max_length': '6'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('django.db.models.fields.TextField', [], {}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '9'}), + 'zipped_log': ('django.db.models.fields.CharField', [], {'max_length': '128'}) + }, + 'storageadmin.user': { + 'Meta': {'object_name': 'User'}, + 'gid': ('django.db.models.fields.IntegerField', [], {'default': '5000'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'uid': ('django.db.models.fields.IntegerField', [], {'default': '5000'}), + 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'suser'", 'unique': 'True', 'null': 'True', 'to': u"orm['auth.User']"}), + 'username': ('django.db.models.fields.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '4096'}) + } + } + + complete_apps = ['storageadmin'] \ No newline at end of file diff --git a/src/rockstor/storageadmin/migrations/0002_auto__del_poolstatistic__del_sharestatistic__chg_field_disk_size__chg_.py b/src/rockstor/storageadmin/south_migrations/0002_auto__del_poolstatistic__del_sharestatistic__chg_field_disk_size__chg_.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0002_auto__del_poolstatistic__del_sharestatistic__chg_field_disk_size__chg_.py rename to src/rockstor/storageadmin/south_migrations/0002_auto__del_poolstatistic__del_sharestatistic__chg_field_disk_size__chg_.py diff --git a/src/rockstor/storageadmin/migrations/0003_auto__add_field_nfsexportgroup_admin_host.py b/src/rockstor/storageadmin/south_migrations/0003_auto__add_field_nfsexportgroup_admin_host.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0003_auto__add_field_nfsexportgroup_admin_host.py rename to src/rockstor/storageadmin/south_migrations/0003_auto__add_field_nfsexportgroup_admin_host.py diff --git a/src/rockstor/storageadmin/migrations/0004_auto__add_advancednfsexport.py b/src/rockstor/storageadmin/south_migrations/0004_auto__add_advancednfsexport.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0004_auto__add_advancednfsexport.py rename to src/rockstor/storageadmin/south_migrations/0004_auto__add_advancednfsexport.py diff --git a/src/rockstor/storageadmin/migrations/0005_auto__add_field_networkinterface_gateway__add_field_networkinterface_d.py b/src/rockstor/storageadmin/south_migrations/0005_auto__add_field_networkinterface_gateway__add_field_networkinterface_d.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0005_auto__add_field_networkinterface_gateway__add_field_networkinterface_d.py rename to src/rockstor/storageadmin/south_migrations/0005_auto__add_field_networkinterface_gateway__add_field_networkinterface_d.py diff --git a/src/rockstor/storageadmin/migrations/0006_auto__add_oauthapp.py b/src/rockstor/storageadmin/south_migrations/0006_auto__add_oauthapp.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0006_auto__add_oauthapp.py rename to src/rockstor/storageadmin/south_migrations/0006_auto__add_oauthapp.py diff --git a/src/rockstor/storageadmin/migrations/0007_auto__add_field_appliance_client_id__add_field_appliance_client_secret.py b/src/rockstor/storageadmin/south_migrations/0007_auto__add_field_appliance_client_id__add_field_appliance_client_secret.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0007_auto__add_field_appliance_client_id__add_field_appliance_client_secret.py rename to src/rockstor/storageadmin/south_migrations/0007_auto__add_field_appliance_client_id__add_field_appliance_client_secret.py diff --git a/src/rockstor/storageadmin/migrations/0008_auto__add_field_user_public_key.py b/src/rockstor/storageadmin/south_migrations/0008_auto__add_field_user_public_key.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0008_auto__add_field_user_public_key.py rename to src/rockstor/storageadmin/south_migrations/0008_auto__add_field_user_public_key.py diff --git a/src/rockstor/storageadmin/migrations/0009_auto__del_field_sambashare_admin_users.py b/src/rockstor/storageadmin/south_migrations/0009_auto__del_field_sambashare_admin_users.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0009_auto__del_field_sambashare_admin_users.py rename to src/rockstor/storageadmin/south_migrations/0009_auto__del_field_sambashare_admin_users.py diff --git a/src/rockstor/storageadmin/migrations/0010_auto__add_field_disk_btrfs_uuid.py b/src/rockstor/storageadmin/south_migrations/0010_auto__add_field_disk_btrfs_uuid.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0010_auto__add_field_disk_btrfs_uuid.py rename to src/rockstor/storageadmin/south_migrations/0010_auto__add_field_disk_btrfs_uuid.py diff --git a/src/rockstor/storageadmin/migrations/0011_auto__add_netatalkshare.py b/src/rockstor/storageadmin/south_migrations/0011_auto__add_netatalkshare.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0011_auto__add_netatalkshare.py rename to src/rockstor/storageadmin/south_migrations/0011_auto__add_netatalkshare.py diff --git a/src/rockstor/storageadmin/migrations/0012_auto__add_field_disk_model__add_field_disk_serial__add_field_disk_tran.py b/src/rockstor/storageadmin/south_migrations/0012_auto__add_field_disk_model__add_field_disk_serial__add_field_disk_tran.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0012_auto__add_field_disk_model__add_field_disk_serial__add_field_disk_tran.py rename to src/rockstor/storageadmin/south_migrations/0012_auto__add_field_disk_model__add_field_disk_serial__add_field_disk_tran.py diff --git a/src/rockstor/storageadmin/migrations/0013_auto__add_field_user_shell__add_field_user_homedir__add_field_user_ema.py b/src/rockstor/storageadmin/south_migrations/0013_auto__add_field_user_shell__add_field_user_homedir__add_field_user_ema.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0013_auto__add_field_user_shell__add_field_user_homedir__add_field_user_ema.py rename to src/rockstor/storageadmin/south_migrations/0013_auto__add_field_user_shell__add_field_user_homedir__add_field_user_ema.py diff --git a/src/rockstor/storageadmin/migrations/0014_auto__add_group.py b/src/rockstor/storageadmin/south_migrations/0014_auto__add_group.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0014_auto__add_group.py rename to src/rockstor/storageadmin/south_migrations/0014_auto__add_group.py diff --git a/src/rockstor/storageadmin/migrations/0015_auto__add_field_user_group.py b/src/rockstor/storageadmin/south_migrations/0015_auto__add_field_user_group.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0015_auto__add_field_user_group.py rename to src/rockstor/storageadmin/south_migrations/0015_auto__add_field_user_group.py diff --git a/src/rockstor/storageadmin/migrations/0016_auto__del_field_poolscrub_errors__add_field_poolscrub_data_extents_scr.py b/src/rockstor/storageadmin/south_migrations/0016_auto__del_field_poolscrub_errors__add_field_poolscrub_data_extents_scr.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0016_auto__del_field_poolscrub_errors__add_field_poolscrub_data_extents_scr.py rename to src/rockstor/storageadmin/south_migrations/0016_auto__del_field_poolscrub_errors__add_field_poolscrub_data_extents_scr.py diff --git a/src/rockstor/storageadmin/migrations/0017_auto__add_field_pool_compression__add_field_pool_mnt_options.py b/src/rockstor/storageadmin/south_migrations/0017_auto__add_field_pool_compression__add_field_pool_mnt_options.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0017_auto__add_field_pool_compression__add_field_pool_mnt_options.py rename to src/rockstor/storageadmin/south_migrations/0017_auto__add_field_pool_compression__add_field_pool_mnt_options.py diff --git a/src/rockstor/storageadmin/migrations/0018_auto__add_field_share_compression_algo.py b/src/rockstor/storageadmin/south_migrations/0018_auto__add_field_share_compression_algo.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0018_auto__add_field_share_compression_algo.py rename to src/rockstor/storageadmin/south_migrations/0018_auto__add_field_share_compression_algo.py diff --git a/src/rockstor/storageadmin/migrations/0019_auto__add_poolbalance.py b/src/rockstor/storageadmin/south_migrations/0019_auto__add_poolbalance.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0019_auto__add_poolbalance.py rename to src/rockstor/storageadmin/south_migrations/0019_auto__add_poolbalance.py diff --git a/src/rockstor/storageadmin/migrations/0020_auto__add_sambacustomconfig.py b/src/rockstor/storageadmin/south_migrations/0020_auto__add_sambacustomconfig.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0020_auto__add_sambacustomconfig.py rename to src/rockstor/storageadmin/south_migrations/0020_auto__add_sambacustomconfig.py diff --git a/src/rockstor/storageadmin/migrations/0021_auto__del_field_sambashare_create_mask.py b/src/rockstor/storageadmin/south_migrations/0021_auto__del_field_sambashare_create_mask.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0021_auto__del_field_sambashare_create_mask.py rename to src/rockstor/storageadmin/south_migrations/0021_auto__del_field_sambashare_create_mask.py diff --git a/src/rockstor/storageadmin/migrations/0022_auto__add_dvolume__add_unique_dvolume_container_dest_dir__add_containe.py b/src/rockstor/storageadmin/south_migrations/0022_auto__add_dvolume__add_unique_dvolume_container_dest_dir__add_containe.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0022_auto__add_dvolume__add_unique_dvolume_container_dest_dir__add_containe.py rename to src/rockstor/storageadmin/south_migrations/0022_auto__add_dvolume__add_unique_dvolume_container_dest_dir__add_containe.py diff --git a/src/rockstor/storageadmin/migrations/0023_auto__add_tlscertificate.py b/src/rockstor/storageadmin/south_migrations/0023_auto__add_tlscertificate.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0023_auto__add_tlscertificate.py rename to src/rockstor/storageadmin/south_migrations/0023_auto__add_tlscertificate.py diff --git a/src/rockstor/storageadmin/migrations/0024_auto__add_smarttestlogdetail__add_smartinfo__add_smarttestlog__add_sma.py b/src/rockstor/storageadmin/south_migrations/0024_auto__add_smarttestlogdetail__add_smartinfo__add_smarttestlog__add_sma.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0024_auto__add_smarttestlogdetail__add_smartinfo__add_smarttestlog__add_sma.py rename to src/rockstor/storageadmin/south_migrations/0024_auto__add_smarttestlogdetail__add_smartinfo__add_smarttestlog__add_sma.py diff --git a/src/rockstor/storageadmin/migrations/0025_auto__add_field_dport_uiport.py b/src/rockstor/storageadmin/south_migrations/0025_auto__add_field_dport_uiport.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0025_auto__add_field_dport_uiport.py rename to src/rockstor/storageadmin/south_migrations/0025_auto__add_field_dport_uiport.py diff --git a/src/rockstor/storageadmin/migrations/0026_auto__chg_field_rockon_state__chg_field_rockon_version.py b/src/rockstor/storageadmin/south_migrations/0026_auto__chg_field_rockon_state__chg_field_rockon_version.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0026_auto__chg_field_rockon_state__chg_field_rockon_version.py rename to src/rockstor/storageadmin/south_migrations/0026_auto__chg_field_rockon_state__chg_field_rockon_version.py diff --git a/src/rockstor/storageadmin/migrations/0027_auto__chg_field_rockon_status.py b/src/rockstor/storageadmin/south_migrations/0027_auto__chg_field_rockon_status.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0027_auto__chg_field_rockon_status.py rename to src/rockstor/storageadmin/south_migrations/0027_auto__chg_field_rockon_status.py diff --git a/src/rockstor/storageadmin/migrations/0028_auto__add_field_snapshot_rusage__add_field_snapshot_eusage__add_field_.py b/src/rockstor/storageadmin/south_migrations/0028_auto__add_field_snapshot_rusage__add_field_snapshot_eusage__add_field_.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0028_auto__add_field_snapshot_rusage__add_field_snapshot_eusage__add_field_.py rename to src/rockstor/storageadmin/south_migrations/0028_auto__add_field_snapshot_rusage__add_field_snapshot_eusage__add_field_.py diff --git a/src/rockstor/storageadmin/migrations/0029_auto__add_dcontainerlink__add_unique_dcontainerlink_destination_name__.py b/src/rockstor/storageadmin/south_migrations/0029_auto__add_dcontainerlink__add_unique_dcontainerlink_destination_name__.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0029_auto__add_dcontainerlink__add_unique_dcontainerlink_destination_name__.py rename to src/rockstor/storageadmin/south_migrations/0029_auto__add_dcontainerlink__add_unique_dcontainerlink_destination_name__.py diff --git a/src/rockstor/storageadmin/migrations/0030_auto__add_field_share_pqgroup.py b/src/rockstor/storageadmin/south_migrations/0030_auto__add_field_share_pqgroup.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0030_auto__add_field_share_pqgroup.py rename to src/rockstor/storageadmin/south_migrations/0030_auto__add_field_share_pqgroup.py diff --git a/src/rockstor/storageadmin/migrations/0031_auto__add_configbackup.py b/src/rockstor/storageadmin/south_migrations/0031_auto__add_configbackup.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0031_auto__add_configbackup.py rename to src/rockstor/storageadmin/south_migrations/0031_auto__add_configbackup.py diff --git a/src/rockstor/storageadmin/migrations/0032_auto__add_emailclient__chg_field_snapshot_toc__chg_field_configbackup_.py b/src/rockstor/storageadmin/south_migrations/0032_auto__add_emailclient__chg_field_snapshot_toc__chg_field_configbackup_.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0032_auto__add_emailclient__chg_field_snapshot_toc__chg_field_configbackup_.py rename to src/rockstor/storageadmin/south_migrations/0032_auto__add_emailclient__chg_field_snapshot_toc__chg_field_configbackup_.py diff --git a/src/rockstor/storageadmin/migrations/0033_auto__del_field_poolbalance_pid__add_field_poolbalance_tid__add_field_.py b/src/rockstor/storageadmin/south_migrations/0033_auto__del_field_poolbalance_pid__add_field_poolbalance_tid__add_field_.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0033_auto__del_field_poolbalance_pid__add_field_poolbalance_tid__add_field_.py rename to src/rockstor/storageadmin/south_migrations/0033_auto__del_field_poolbalance_pid__add_field_poolbalance_tid__add_field_.py diff --git a/src/rockstor/storageadmin/migrations/0034_auto__chg_field_tlscertificate_name.py b/src/rockstor/storageadmin/south_migrations/0034_auto__chg_field_tlscertificate_name.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0034_auto__chg_field_tlscertificate_name.py rename to src/rockstor/storageadmin/south_migrations/0034_auto__chg_field_tlscertificate_name.py diff --git a/src/rockstor/storageadmin/migrations/0035_auto__del_field_networkinterface_domain__del_field_networkinterface_bo.py b/src/rockstor/storageadmin/south_migrations/0035_auto__del_field_networkinterface_domain__del_field_networkinterface_bo.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0035_auto__del_field_networkinterface_domain__del_field_networkinterface_bo.py rename to src/rockstor/storageadmin/south_migrations/0035_auto__del_field_networkinterface_domain__del_field_networkinterface_bo.py diff --git a/src/rockstor/storageadmin/migrations/0036_auto__add_field_sambashare_shadow_copy__add_field_sambashare_snapshot_.py b/src/rockstor/storageadmin/south_migrations/0036_auto__add_field_sambashare_shadow_copy__add_field_sambashare_snapshot_.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0036_auto__add_field_sambashare_shadow_copy__add_field_sambashare_snapshot_.py rename to src/rockstor/storageadmin/south_migrations/0036_auto__add_field_sambashare_shadow_copy__add_field_sambashare_snapshot_.py diff --git a/src/rockstor/storageadmin/migrations/0037_auto__chg_field_networkinterface_autoconnect__chg_field_networkinterfa.py b/src/rockstor/storageadmin/south_migrations/0037_auto__chg_field_networkinterface_autoconnect__chg_field_networkinterfa.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0037_auto__chg_field_networkinterface_autoconnect__chg_field_networkinterfa.py rename to src/rockstor/storageadmin/south_migrations/0037_auto__chg_field_networkinterface_autoconnect__chg_field_networkinterfa.py diff --git a/src/rockstor/storageadmin/migrations/0038_auto__add_updatesubscription.py b/src/rockstor/storageadmin/south_migrations/0038_auto__add_updatesubscription.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0038_auto__add_updatesubscription.py rename to src/rockstor/storageadmin/south_migrations/0038_auto__add_updatesubscription.py diff --git a/src/rockstor/storageadmin/migrations/0039_auto__chg_field_tlscertificate_certificate__chg_field_tlscertificate_k.py b/src/rockstor/storageadmin/south_migrations/0039_auto__chg_field_tlscertificate_certificate__chg_field_tlscertificate_k.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0039_auto__chg_field_tlscertificate_certificate__chg_field_tlscertificate_k.py rename to src/rockstor/storageadmin/south_migrations/0039_auto__chg_field_tlscertificate_certificate__chg_field_tlscertificate_k.py diff --git a/src/rockstor/storageadmin/migrations/0040_auto__add_dcontainerenv__add_unique_dcontainerenv_container_key__add_f.py b/src/rockstor/storageadmin/south_migrations/0040_auto__add_dcontainerenv__add_unique_dcontainerenv_container_key__add_f.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0040_auto__add_dcontainerenv__add_unique_dcontainerenv_container_key__add_f.py rename to src/rockstor/storageadmin/south_migrations/0040_auto__add_dcontainerenv__add_unique_dcontainerenv_container_key__add_f.py diff --git a/src/rockstor/storageadmin/migrations/0041_auto__add_field_pool_role.py b/src/rockstor/storageadmin/south_migrations/0041_auto__add_field_pool_role.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0041_auto__add_field_pool_role.py rename to src/rockstor/storageadmin/south_migrations/0041_auto__add_field_pool_role.py diff --git a/src/rockstor/storageadmin/migrations/0042_auto__add_field_disk_smart_options__add_field_disk_role.py b/src/rockstor/storageadmin/south_migrations/0042_auto__add_field_disk_smart_options__add_field_disk_role.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0042_auto__add_field_disk_smart_options__add_field_disk_role.py rename to src/rockstor/storageadmin/south_migrations/0042_auto__add_field_disk_smart_options__add_field_disk_role.py diff --git a/src/rockstor/storageadmin/migrations/0043_auto__add_field_emailclient_port.py b/src/rockstor/storageadmin/south_migrations/0043_auto__add_field_emailclient_port.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0043_auto__add_field_emailclient_port.py rename to src/rockstor/storageadmin/south_migrations/0043_auto__add_field_emailclient_port.py diff --git a/src/rockstor/storageadmin/migrations/0044_add_field_EmailClient_username.py b/src/rockstor/storageadmin/south_migrations/0044_add_field_EmailClient_username.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0044_add_field_EmailClient_username.py rename to src/rockstor/storageadmin/south_migrations/0044_add_field_EmailClient_username.py diff --git a/src/rockstor/storageadmin/migrations/0045_auto__del_networkinterface__add_networkdevice__add_ethernetconnection_.py b/src/rockstor/storageadmin/south_migrations/0045_auto__del_networkinterface__add_networkdevice__add_ethernetconnection_.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0045_auto__del_networkinterface__add_networkdevice__add_ethernetconnection_.py rename to src/rockstor/storageadmin/south_migrations/0045_auto__del_networkinterface__add_networkdevice__add_ethernetconnection_.py diff --git a/src/rockstor/storageadmin/migrations/0046_auto__add_pincard__add_unique_pincard_user_pin_number.py b/src/rockstor/storageadmin/south_migrations/0046_auto__add_pincard__add_unique_pincard_user_pin_number.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0046_auto__add_pincard__add_unique_pincard_user_pin_number.py rename to src/rockstor/storageadmin/south_migrations/0046_auto__add_pincard__add_unique_pincard_user_pin_number.py diff --git a/src/rockstor/storageadmin/migrations/0047_auto__chg_field_disk_name.py b/src/rockstor/storageadmin/south_migrations/0047_auto__chg_field_disk_name.py similarity index 100% rename from src/rockstor/storageadmin/migrations/0047_auto__chg_field_disk_name.py rename to src/rockstor/storageadmin/south_migrations/0047_auto__chg_field_disk_name.py diff --git a/src/rockstor/storageadmin/south_migrations/__init__.py b/src/rockstor/storageadmin/south_migrations/__init__.py new file mode 100644 index 000000000..e69de29bb