From dcf7343332ae929d59bc8bc4331109e54ab9ec9a Mon Sep 17 00:00:00 2001 From: "Konstantin L. Metlov" Date: Wed, 21 Dec 2022 21:16:18 +0300 Subject: added on_delete=models.CASCADE to all ForeignKey invocations Signed-off-by: Konstantin L. Metlov --- src/lib/Bcfg2/Reporting/migrations/0001_initial.py | 12 ++-- .../migrations/0004_profile_can_be_null.py | 2 +- src/lib/Bcfg2/Reporting/models.py | 14 +++-- .../Reporting/south_migrations/0001_initial.py | 64 +++++++++++----------- .../south_migrations/0002_convert_perms_to_mode.py | 12 ++-- .../south_migrations/0003_expand_hash_key.py | 12 ++-- .../south_migrations/0004_profile_can_be_null.py | 14 ++--- .../0005_add_selinux_entry_support.py | 48 ++++++++-------- .../0006_add_user_group_entry_support.py | 20 +++---- .../0007_add_flag_fields_interaction.py | 12 ++-- src/lib/Bcfg2/Server/Reports/reports/models.py | 14 +++-- 11 files changed, 115 insertions(+), 109 deletions(-) diff --git a/src/lib/Bcfg2/Reporting/migrations/0001_initial.py b/src/lib/Bcfg2/Reporting/migrations/0001_initial.py index 22d0e9862..8956dc0c6 100644 --- a/src/lib/Bcfg2/Reporting/migrations/0001_initial.py +++ b/src/lib/Bcfg2/Reporting/migrations/0001_initial.py @@ -118,7 +118,7 @@ class Migration(migrations.Migration): ('extra_count', models.IntegerField(default=0)), ('actions', models.ManyToManyField(to='Reporting.ActionEntry')), ('bundles', models.ManyToManyField(to='Reporting.Bundle')), - ('client', models.ForeignKey(related_name='interactions', to='Reporting.Client')), + ('client', models.ForeignKey(on_delete=models.CASCADE, related_name='interactions', to='Reporting.Client')), ('failures', models.ManyToManyField(to='Reporting.FailureEntry')), ('groups', models.ManyToManyField(to='Reporting.Group')), ], @@ -199,7 +199,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('metric', models.CharField(max_length=128)), ('value', models.DecimalField(max_digits=32, decimal_places=16)), - ('interaction', models.ForeignKey(related_name='performance_items', to='Reporting.Interaction')), + ('interaction', models.ForeignKey(on_delete=models.CASCADE, related_name='performance_items', to='Reporting.Interaction')), ], options={ }, @@ -231,13 +231,13 @@ class Migration(migrations.Migration): migrations.AddField( model_name='pathentry', name='current_perms', - field=models.ForeignKey(related_name='+', to='Reporting.FilePerms'), + field=models.ForeignKey(on_delete=models.CASCADE, related_name='+', to='Reporting.FilePerms'), preserve_default=True, ), migrations.AddField( model_name='pathentry', name='target_perms', - field=models.ForeignKey(related_name='+', to='Reporting.FilePerms'), + field=models.ForeignKey(on_delete=models.CASCADE, related_name='+', to='Reporting.FilePerms'), preserve_default=True, ), migrations.AddField( @@ -255,7 +255,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='interaction', name='profile', - field=models.ForeignKey(related_name='+', to='Reporting.Group'), + field=models.ForeignKey(on_delete=models.CASCADE, related_name='+', to='Reporting.Group'), preserve_default=True, ), migrations.AddField( @@ -275,7 +275,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='client', name='current_interaction', - field=models.ForeignKey(related_name='parent_client', blank=True, to='Reporting.Interaction', null=True), + field=models.ForeignKey(on_delete=models.CASCADE, related_name='parent_client', blank=True, to='Reporting.Interaction', null=True), preserve_default=True, ), ] diff --git a/src/lib/Bcfg2/Reporting/migrations/0004_profile_can_be_null.py b/src/lib/Bcfg2/Reporting/migrations/0004_profile_can_be_null.py index 5ff11037e..fa66a2815 100644 --- a/src/lib/Bcfg2/Reporting/migrations/0004_profile_can_be_null.py +++ b/src/lib/Bcfg2/Reporting/migrations/0004_profile_can_be_null.py @@ -14,7 +14,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='interaction', name='profile', - field=models.ForeignKey(related_name='+', to='Reporting.Group', null=True), + field=models.ForeignKey(on_delete=models.CASCADE, related_name='+', to='Reporting.Group', null=True), preserve_default=True, ), ] diff --git a/src/lib/Bcfg2/Reporting/models.py b/src/lib/Bcfg2/Reporting/models.py index ef157806b..345dd1bc3 100644 --- a/src/lib/Bcfg2/Reporting/models.py +++ b/src/lib/Bcfg2/Reporting/models.py @@ -140,7 +140,8 @@ class InteractionManager(models.Manager): class Interaction(models.Model): """ Models each reconfiguration operation interaction between client and server. """ - client = models.ForeignKey(Client, related_name="interactions") + client = models.ForeignKey(Client, on_delete=models.CASCADE, + related_name="interactions") timestamp = models.DateTimeField(db_index=True) # Timestamp for this record state = models.CharField(max_length=32) # good/bad/modified/etc repo_rev_code = models.CharField(max_length=64) # repo revision at time of interaction @@ -179,7 +180,8 @@ class Interaction(models.Model): 'posixgroups', 'confs') # Formerly InteractionMetadata - profile = models.ForeignKey("Group", related_name="+", null=True) + profile = models.ForeignKey("Group", on_delete=models.CASCADE, + related_name="+", null=True) groups = models.ManyToManyField("Group") bundles = models.ManyToManyField("Bundle") @@ -275,7 +277,7 @@ class Interaction(models.Model): class Performance(models.Model): """Object representing performance data for any interaction.""" - interaction = models.ForeignKey(Interaction, + interaction = models.ForeignKey(Interaction, on_delete=models.CASCADE, related_name="performance_items") metric = models.CharField(max_length=128) value = models.DecimalField(max_digits=32, decimal_places=16) @@ -734,8 +736,10 @@ class PathEntry(SuccessEntry): path_type = models.CharField(max_length=128, choices=PATH_TYPES) - target_perms = models.ForeignKey(FilePerms, related_name="+") - current_perms = models.ForeignKey(FilePerms, related_name="+") + target_perms = models.ForeignKey(FilePerms, on_delete=models.CASCADE, + related_name="+") + current_perms = models.ForeignKey(FilePerms, on_delete=models.CASCADE, + related_name="+") acls = models.ManyToManyField(FileAcl) diff --git a/src/lib/Bcfg2/Reporting/south_migrations/0001_initial.py b/src/lib/Bcfg2/Reporting/south_migrations/0001_initial.py index 609290edb..7b2e10ee7 100644 --- a/src/lib/Bcfg2/Reporting/south_migrations/0001_initial.py +++ b/src/lib/Bcfg2/Reporting/south_migrations/0001_initial.py @@ -13,7 +13,7 @@ class Migration(SchemaMigration): ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), ('creation', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), ('name', self.gf('django.db.models.fields.CharField')(max_length=128)), - ('current_interaction', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='parent_client', null=True, to=orm['Reporting.Interaction'])), + ('current_interaction', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='parent_client', on_delete=models.CASCADE, null=True, to=orm['Reporting.Interaction'])), ('expiration', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), )) db.send_create_signal('Reporting', ['Client']) @@ -21,7 +21,7 @@ class Migration(SchemaMigration): # Adding model 'Interaction' db.create_table('Reporting_interaction', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('client', self.gf('django.db.models.fields.related.ForeignKey')(related_name='interactions', to=orm['Reporting.Client'])), + ('client', self.gf('django.db.models.fields.related.ForeignKey')(related_name='interactions', on_delete=models.CASCADE, to=orm['Reporting.Client'])), ('timestamp', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), ('state', self.gf('django.db.models.fields.CharField')(max_length=32)), ('repo_rev_code', self.gf('django.db.models.fields.CharField')(max_length=64)), @@ -31,7 +31,7 @@ class Migration(SchemaMigration): ('bad_count', self.gf('django.db.models.fields.IntegerField')(default=0)), ('modified_count', self.gf('django.db.models.fields.IntegerField')(default=0)), ('extra_count', self.gf('django.db.models.fields.IntegerField')(default=0)), - ('profile', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['Reporting.Group'])), + ('profile', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', on_delete=models.CASCADE, to=orm['Reporting.Group'])), )) db.send_create_signal('Reporting', ['Interaction']) @@ -41,63 +41,63 @@ class Migration(SchemaMigration): # Adding M2M table for field actions on 'Interaction' db.create_table('Reporting_interaction_actions', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('actionentry', models.ForeignKey(orm['Reporting.actionentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('actionentry', models.ForeignKey(orm['Reporting.actionentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_actions', ['interaction_id', 'actionentry_id']) # Adding M2M table for field packages on 'Interaction' db.create_table('Reporting_interaction_packages', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('packageentry', models.ForeignKey(orm['Reporting.packageentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('packageentry', models.ForeignKey(orm['Reporting.packageentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_packages', ['interaction_id', 'packageentry_id']) # Adding M2M table for field paths on 'Interaction' db.create_table('Reporting_interaction_paths', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('pathentry', models.ForeignKey(orm['Reporting.pathentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('pathentry', models.ForeignKey(orm['Reporting.pathentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_paths', ['interaction_id', 'pathentry_id']) # Adding M2M table for field services on 'Interaction' db.create_table('Reporting_interaction_services', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('serviceentry', models.ForeignKey(orm['Reporting.serviceentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('serviceentry', models.ForeignKey(orm['Reporting.serviceentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_services', ['interaction_id', 'serviceentry_id']) # Adding M2M table for field failures on 'Interaction' db.create_table('Reporting_interaction_failures', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('failureentry', models.ForeignKey(orm['Reporting.failureentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('failureentry', models.ForeignKey(orm['Reporting.failureentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_failures', ['interaction_id', 'failureentry_id']) # Adding M2M table for field groups on 'Interaction' db.create_table('Reporting_interaction_groups', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('group', models.ForeignKey(orm['Reporting.group'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('group', models.ForeignKey(orm['Reporting.group'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_groups', ['interaction_id', 'group_id']) # Adding M2M table for field bundles on 'Interaction' db.create_table('Reporting_interaction_bundles', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('bundle', models.ForeignKey(orm['Reporting.bundle'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('bundle', models.ForeignKey(orm['Reporting.bundle'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_bundles', ['interaction_id', 'bundle_id']) # Adding model 'Performance' db.create_table('Reporting_performance', ( ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('interaction', self.gf('django.db.models.fields.related.ForeignKey')(related_name='performance_items', to=orm['Reporting.Interaction'])), + ('interaction', self.gf('django.db.models.fields.related.ForeignKey')(related_name='performance_items', on_delete=models.CASCADE, to=orm['Reporting.Interaction'])), ('metric', self.gf('django.db.models.fields.CharField')(max_length=128)), ('value', self.gf('django.db.models.fields.DecimalField')(max_digits=32, decimal_places=16)), )) @@ -117,16 +117,16 @@ class Migration(SchemaMigration): # Adding M2M table for field groups on 'Group' db.create_table('Reporting_group_groups', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('from_group', models.ForeignKey(orm['Reporting.group'], null=False)), - ('to_group', models.ForeignKey(orm['Reporting.group'], null=False)) + ('from_group', models.ForeignKey(orm['Reporting.group'], null=False, on_delete=models.CASCADE)), + ('to_group', models.ForeignKey(orm['Reporting.group'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_group_groups', ['from_group_id', 'to_group_id']) # Adding M2M table for field bundles on 'Group' db.create_table('Reporting_group_bundles', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('group', models.ForeignKey(orm['Reporting.group'], null=False)), - ('bundle', models.ForeignKey(orm['Reporting.bundle'], null=False)) + ('group', models.ForeignKey(orm['Reporting.group'], null=False, on_delete=models.CASCADE)), + ('bundle', models.ForeignKey(orm['Reporting.bundle'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_group_bundles', ['group_id', 'bundle_id']) @@ -199,8 +199,8 @@ class Migration(SchemaMigration): ('state', self.gf('django.db.models.fields.IntegerField')()), ('exists', self.gf('django.db.models.fields.BooleanField')(default=True)), ('path_type', self.gf('django.db.models.fields.CharField')(max_length=128)), - ('target_perms', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['Reporting.FilePerms'])), - ('current_perms', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to=orm['Reporting.FilePerms'])), + ('target_perms', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', on_delete=models.CASCADE, to=orm['Reporting.FilePerms'])), + ('current_perms', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', on_delete=models.CASCADE, to=orm['Reporting.FilePerms'])), ('detail_type', self.gf('django.db.models.fields.IntegerField')(default=0)), ('details', self.gf('django.db.models.fields.TextField')(default='')), )) @@ -209,8 +209,8 @@ class Migration(SchemaMigration): # Adding M2M table for field acls on 'PathEntry' db.create_table('Reporting_pathentry_acls', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('pathentry', models.ForeignKey(orm['Reporting.pathentry'], null=False)), - ('fileacl', models.ForeignKey(orm['Reporting.fileacl'], null=False)) + ('pathentry', models.ForeignKey(orm['Reporting.pathentry'], null=False, on_delete=models.CASCADE)), + ('fileacl', models.ForeignKey(orm['Reporting.fileacl'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_pathentry_acls', ['pathentry_id', 'fileacl_id']) @@ -345,7 +345,7 @@ class Migration(SchemaMigration): 'Reporting.client': { 'Meta': {'object_name': 'Client'}, 'creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'null': 'True', 'to': "orm['Reporting.Interaction']"}), + 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'on_delete': 'models.CASCADE', 'null': 'True', 'to': "orm['Reporting.Interaction']"}), 'expiration': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}) @@ -395,7 +395,7 @@ class Migration(SchemaMigration): 'actions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ActionEntry']", 'symmetrical': 'False'}), 'bad_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'bundles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.Bundle']", 'symmetrical': 'False'}), - 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'to': "orm['Reporting.Client']"}), + 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Client']"}), 'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'failures': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FailureEntry']", 'symmetrical': 'False'}), 'good_count': ('django.db.models.fields.IntegerField', [], {}), @@ -404,7 +404,7 @@ class Migration(SchemaMigration): 'modified_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PackageEntry']", 'symmetrical': 'False'}), 'paths': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PathEntry']", 'symmetrical': 'False'}), - 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.Group']"}), + 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Group']"}), 'repo_rev_code': ('django.db.models.fields.CharField', [], {'max_length': '64'}), 'server': ('django.db.models.fields.CharField', [], {'max_length': '256'}), 'services': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ServiceEntry']", 'symmetrical': 'False'}), @@ -432,7 +432,7 @@ class Migration(SchemaMigration): 'Reporting.pathentry': { 'Meta': {'ordering': "('state', 'name')", 'object_name': 'PathEntry'}, 'acls': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FileAcl']", 'symmetrical': 'False'}), - 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}), + 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}), 'detail_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'details': ('django.db.models.fields.TextField', [], {'default': "''"}), 'exists': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), @@ -441,12 +441,12 @@ class Migration(SchemaMigration): 'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}), 'path_type': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'state': ('django.db.models.fields.IntegerField', [], {}), - 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}) + 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}) }, 'Reporting.performance': { 'Meta': {'object_name': 'Performance'}, 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'to': "orm['Reporting.Interaction']"}), + 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Interaction']"}), 'metric': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'value': ('django.db.models.fields.DecimalField', [], {'max_digits': '32', 'decimal_places': '16'}) }, diff --git a/src/lib/Bcfg2/Reporting/south_migrations/0002_convert_perms_to_mode.py b/src/lib/Bcfg2/Reporting/south_migrations/0002_convert_perms_to_mode.py index 37cdd146c..268e9fcee 100644 --- a/src/lib/Bcfg2/Reporting/south_migrations/0002_convert_perms_to_mode.py +++ b/src/lib/Bcfg2/Reporting/south_migrations/0002_convert_perms_to_mode.py @@ -50,7 +50,7 @@ class Migration(SchemaMigration): 'Reporting.client': { 'Meta': {'object_name': 'Client'}, 'creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'null': 'True', 'to': "orm['Reporting.Interaction']"}), + 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'on_delete': 'models.CASCADE', 'related_name': "'parent_client'", 'null': 'True', 'to': "orm['Reporting.Interaction']"}), 'expiration': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}) @@ -100,7 +100,7 @@ class Migration(SchemaMigration): 'actions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ActionEntry']", 'symmetrical': 'False'}), 'bad_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'bundles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.Bundle']", 'symmetrical': 'False'}), - 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'to': "orm['Reporting.Client']"}), + 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Client']"}), 'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'failures': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FailureEntry']", 'symmetrical': 'False'}), 'good_count': ('django.db.models.fields.IntegerField', [], {}), @@ -109,7 +109,7 @@ class Migration(SchemaMigration): 'modified_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PackageEntry']", 'symmetrical': 'False'}), 'paths': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PathEntry']", 'symmetrical': 'False'}), - 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.Group']"}), + 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Group']"}), 'repo_rev_code': ('django.db.models.fields.CharField', [], {'max_length': '64'}), 'server': ('django.db.models.fields.CharField', [], {'max_length': '256'}), 'services': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ServiceEntry']", 'symmetrical': 'False'}), @@ -137,7 +137,7 @@ class Migration(SchemaMigration): 'Reporting.pathentry': { 'Meta': {'ordering': "('state', 'name')", 'object_name': 'PathEntry'}, 'acls': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FileAcl']", 'symmetrical': 'False'}), - 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}), + 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}), 'detail_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'details': ('django.db.models.fields.TextField', [], {'default': "''"}), 'exists': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), @@ -146,12 +146,12 @@ class Migration(SchemaMigration): 'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}), 'path_type': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'state': ('django.db.models.fields.IntegerField', [], {}), - 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}) + 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}) }, 'Reporting.performance': { 'Meta': {'object_name': 'Performance'}, 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'to': "orm['Reporting.Interaction']"}), + 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Interaction']"}), 'metric': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'value': ('django.db.models.fields.DecimalField', [], {'max_digits': '32', 'decimal_places': '16'}) }, diff --git a/src/lib/Bcfg2/Reporting/south_migrations/0003_expand_hash_key.py b/src/lib/Bcfg2/Reporting/south_migrations/0003_expand_hash_key.py index 2da1fa722..8f65939be 100644 --- a/src/lib/Bcfg2/Reporting/south_migrations/0003_expand_hash_key.py +++ b/src/lib/Bcfg2/Reporting/south_migrations/0003_expand_hash_key.py @@ -60,7 +60,7 @@ class Migration(SchemaMigration): 'Reporting.client': { 'Meta': {'object_name': 'Client'}, 'creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'null': 'True', 'to': "orm['Reporting.Interaction']"}), + 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'on_delete': 'models.CASCADE', 'null': 'True', 'to': "orm['Reporting.Interaction']"}), 'expiration': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}) @@ -110,7 +110,7 @@ class Migration(SchemaMigration): 'actions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ActionEntry']", 'symmetrical': 'False'}), 'bad_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'bundles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.Bundle']", 'symmetrical': 'False'}), - 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'to': "orm['Reporting.Client']"}), + 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Client']"}), 'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'failures': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FailureEntry']", 'symmetrical': 'False'}), 'good_count': ('django.db.models.fields.IntegerField', [], {}), @@ -119,7 +119,7 @@ class Migration(SchemaMigration): 'modified_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PackageEntry']", 'symmetrical': 'False'}), 'paths': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PathEntry']", 'symmetrical': 'False'}), - 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.Group']"}), + 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Group']"}), 'repo_rev_code': ('django.db.models.fields.CharField', [], {'max_length': '64'}), 'server': ('django.db.models.fields.CharField', [], {'max_length': '256'}), 'services': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ServiceEntry']", 'symmetrical': 'False'}), @@ -147,7 +147,7 @@ class Migration(SchemaMigration): 'Reporting.pathentry': { 'Meta': {'ordering': "('state', 'name')", 'object_name': 'PathEntry'}, 'acls': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FileAcl']", 'symmetrical': 'False'}), - 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}), + 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}), 'detail_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'details': ('django.db.models.fields.TextField', [], {'default': "''"}), 'exists': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), @@ -156,12 +156,12 @@ class Migration(SchemaMigration): 'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}), 'path_type': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'state': ('django.db.models.fields.IntegerField', [], {}), - 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}) + 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}) }, 'Reporting.performance': { 'Meta': {'object_name': 'Performance'}, 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'to': "orm['Reporting.Interaction']"}), + 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Interaction']"}), 'metric': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'value': ('django.db.models.fields.DecimalField', [], {'max_digits': '32', 'decimal_places': '16'}) }, diff --git a/src/lib/Bcfg2/Reporting/south_migrations/0004_profile_can_be_null.py b/src/lib/Bcfg2/Reporting/south_migrations/0004_profile_can_be_null.py index 26a053b67..da98386a9 100644 --- a/src/lib/Bcfg2/Reporting/south_migrations/0004_profile_can_be_null.py +++ b/src/lib/Bcfg2/Reporting/south_migrations/0004_profile_can_be_null.py @@ -10,7 +10,7 @@ class Migration(SchemaMigration): def forwards(self, orm): # Changing field 'Interaction.profile' - db.alter_column('Reporting_interaction', 'profile_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['Reporting.Group'])) + db.alter_column('Reporting_interaction', 'profile_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.CASCADE, to=orm['Reporting.Group'])) def backwards(self, orm): @@ -36,7 +36,7 @@ class Migration(SchemaMigration): 'Reporting.client': { 'Meta': {'object_name': 'Client'}, 'creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'null': 'True', 'to': "orm['Reporting.Interaction']"}), + 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'on_delete': 'models.CASCADE', 'null': 'True', 'to': "orm['Reporting.Interaction']"}), 'expiration': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}) @@ -86,7 +86,7 @@ class Migration(SchemaMigration): 'actions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ActionEntry']", 'symmetrical': 'False'}), 'bad_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'bundles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.Bundle']", 'symmetrical': 'False'}), - 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'to': "orm['Reporting.Client']"}), + 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Client']"}), 'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'failures': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FailureEntry']", 'symmetrical': 'False'}), 'good_count': ('django.db.models.fields.IntegerField', [], {}), @@ -95,7 +95,7 @@ class Migration(SchemaMigration): 'modified_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PackageEntry']", 'symmetrical': 'False'}), 'paths': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PathEntry']", 'symmetrical': 'False'}), - 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['Reporting.Group']"}), + 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'null': 'True', 'to': "orm['Reporting.Group']"}), 'repo_rev_code': ('django.db.models.fields.CharField', [], {'max_length': '64'}), 'server': ('django.db.models.fields.CharField', [], {'max_length': '256'}), 'services': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ServiceEntry']", 'symmetrical': 'False'}), @@ -123,7 +123,7 @@ class Migration(SchemaMigration): 'Reporting.pathentry': { 'Meta': {'ordering': "('state', 'name')", 'object_name': 'PathEntry'}, 'acls': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FileAcl']", 'symmetrical': 'False'}), - 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}), + 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}), 'detail_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'details': ('django.db.models.fields.TextField', [], {'default': "''"}), 'exists': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), @@ -132,12 +132,12 @@ class Migration(SchemaMigration): 'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}), 'path_type': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'state': ('django.db.models.fields.IntegerField', [], {}), - 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}) + 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}) }, 'Reporting.performance': { 'Meta': {'object_name': 'Performance'}, 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'to': "orm['Reporting.Interaction']"}), + 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Interaction']"}), 'metric': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'value': ('django.db.models.fields.DecimalField', [], {'max_digits': '32', 'decimal_places': '16'}) }, diff --git a/src/lib/Bcfg2/Reporting/south_migrations/0005_add_selinux_entry_support.py b/src/lib/Bcfg2/Reporting/south_migrations/0005_add_selinux_entry_support.py index d5f5d801a..38cc9d4e1 100644 --- a/src/lib/Bcfg2/Reporting/south_migrations/0005_add_selinux_entry_support.py +++ b/src/lib/Bcfg2/Reporting/south_migrations/0005_add_selinux_entry_support.py @@ -120,72 +120,72 @@ class Migration(SchemaMigration): # Adding M2M table for field sebooleans on 'Interaction' db.create_table('Reporting_interaction_sebooleans', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('sebooleanentry', models.ForeignKey(orm['Reporting.sebooleanentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('sebooleanentry', models.ForeignKey(orm['Reporting.sebooleanentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_sebooleans', ['interaction_id', 'sebooleanentry_id']) # Adding M2M table for field seports on 'Interaction' db.create_table('Reporting_interaction_seports', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('seportentry', models.ForeignKey(orm['Reporting.seportentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('seportentry', models.ForeignKey(orm['Reporting.seportentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_seports', ['interaction_id', 'seportentry_id']) # Adding M2M table for field sefcontexts on 'Interaction' db.create_table('Reporting_interaction_sefcontexts', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('sefcontextentry', models.ForeignKey(orm['Reporting.sefcontextentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('sefcontextentry', models.ForeignKey(orm['Reporting.sefcontextentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_sefcontexts', ['interaction_id', 'sefcontextentry_id']) # Adding M2M table for field senodes on 'Interaction' db.create_table('Reporting_interaction_senodes', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('senodeentry', models.ForeignKey(orm['Reporting.senodeentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('senodeentry', models.ForeignKey(orm['Reporting.senodeentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_senodes', ['interaction_id', 'senodeentry_id']) # Adding M2M table for field selogins on 'Interaction' db.create_table('Reporting_interaction_selogins', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('seloginentry', models.ForeignKey(orm['Reporting.seloginentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('seloginentry', models.ForeignKey(orm['Reporting.seloginentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_selogins', ['interaction_id', 'seloginentry_id']) # Adding M2M table for field seusers on 'Interaction' db.create_table('Reporting_interaction_seusers', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('seuserentry', models.ForeignKey(orm['Reporting.seuserentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('seuserentry', models.ForeignKey(orm['Reporting.seuserentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_seusers', ['interaction_id', 'seuserentry_id']) # Adding M2M table for field seinterfaces on 'Interaction' db.create_table('Reporting_interaction_seinterfaces', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('seinterfaceentry', models.ForeignKey(orm['Reporting.seinterfaceentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('seinterfaceentry', models.ForeignKey(orm['Reporting.seinterfaceentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_seinterfaces', ['interaction_id', 'seinterfaceentry_id']) # Adding M2M table for field sepermissives on 'Interaction' db.create_table('Reporting_interaction_sepermissives', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('sepermissiveentry', models.ForeignKey(orm['Reporting.sepermissiveentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('sepermissiveentry', models.ForeignKey(orm['Reporting.sepermissiveentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_sepermissives', ['interaction_id', 'sepermissiveentry_id']) # Adding M2M table for field semodules on 'Interaction' db.create_table('Reporting_interaction_semodules', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('semoduleentry', models.ForeignKey(orm['Reporting.semoduleentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('semoduleentry', models.ForeignKey(orm['Reporting.semoduleentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_semodules', ['interaction_id', 'semoduleentry_id']) @@ -265,7 +265,7 @@ class Migration(SchemaMigration): 'Reporting.client': { 'Meta': {'object_name': 'Client'}, 'creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'null': 'True', 'to': "orm['Reporting.Interaction']"}), + 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'on_delete': 'models.CASCADE', 'null': 'True', 'to': "orm['Reporting.Interaction']"}), 'expiration': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}) @@ -315,7 +315,7 @@ class Migration(SchemaMigration): 'actions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ActionEntry']", 'symmetrical': 'False'}), 'bad_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'bundles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.Bundle']", 'symmetrical': 'False'}), - 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'to': "orm['Reporting.Client']"}), + 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Client']"}), 'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'failures': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FailureEntry']", 'symmetrical': 'False'}), 'good_count': ('django.db.models.fields.IntegerField', [], {}), @@ -324,7 +324,7 @@ class Migration(SchemaMigration): 'modified_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'packages': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PackageEntry']", 'symmetrical': 'False'}), 'paths': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PathEntry']", 'symmetrical': 'False'}), - 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['Reporting.Group']"}), + 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'null': 'True', 'to': "orm['Reporting.Group']"}), 'repo_rev_code': ('django.db.models.fields.CharField', [], {'max_length': '64'}), 'sebooleans': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.SEBooleanEntry']", 'symmetrical': 'False'}), 'sefcontexts': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.SEFcontextEntry']", 'symmetrical': 'False'}), @@ -361,7 +361,7 @@ class Migration(SchemaMigration): 'Reporting.pathentry': { 'Meta': {'ordering': "('state', 'name')", 'object_name': 'PathEntry'}, 'acls': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FileAcl']", 'symmetrical': 'False'}), - 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}), + 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}), 'detail_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'details': ('django.db.models.fields.TextField', [], {'default': "''"}), 'exists': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), @@ -370,12 +370,12 @@ class Migration(SchemaMigration): 'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}), 'path_type': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'state': ('django.db.models.fields.IntegerField', [], {}), - 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}) + 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}) }, 'Reporting.performance': { 'Meta': {'object_name': 'Performance'}, 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'to': "orm['Reporting.Interaction']"}), + 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Interaction']"}), 'metric': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'value': ('django.db.models.fields.DecimalField', [], {'max_digits': '32', 'decimal_places': '16'}) }, diff --git a/src/lib/Bcfg2/Reporting/south_migrations/0006_add_user_group_entry_support.py b/src/lib/Bcfg2/Reporting/south_migrations/0006_add_user_group_entry_support.py index d86e663d5..ea4fbd939 100644 --- a/src/lib/Bcfg2/Reporting/south_migrations/0006_add_user_group_entry_support.py +++ b/src/lib/Bcfg2/Reporting/south_migrations/0006_add_user_group_entry_support.py @@ -43,16 +43,16 @@ class Migration(SchemaMigration): # Adding M2M table for field posixusers on 'Interaction' db.create_table('Reporting_interaction_posixusers', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('posixuserentry', models.ForeignKey(orm['Reporting.posixuserentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('posixuserentry', models.ForeignKey(orm['Reporting.posixuserentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_posixusers', ['interaction_id', 'posixuserentry_id']) # Adding M2M table for field posixgroups on 'Interaction' db.create_table('Reporting_interaction_posixgroups', ( ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False)), - ('posixgroupentry', models.ForeignKey(orm['Reporting.posixgroupentry'], null=False)) + ('interaction', models.ForeignKey(orm['Reporting.interaction'], null=False, on_delete=models.CASCADE)), + ('posixgroupentry', models.ForeignKey(orm['Reporting.posixgroupentry'], null=False, on_delete=models.CASCADE)) )) db.create_unique('Reporting_interaction_posixgroups', ['interaction_id', 'posixgroupentry_id']) @@ -90,7 +90,7 @@ class Migration(SchemaMigration): 'Reporting.client': { 'Meta': {'object_name': 'Client'}, 'creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'null': 'True', 'to': "orm['Reporting.Interaction']"}), + 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'on_delete': 'models.CASCADE', 'null': 'True', 'to': "orm['Reporting.Interaction']"}), 'expiration': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}) @@ -140,7 +140,7 @@ class Migration(SchemaMigration): 'actions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ActionEntry']", 'symmetrical': 'False'}), 'bad_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'bundles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.Bundle']", 'symmetrical': 'False'}), - 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'to': "orm['Reporting.Client']"}), + 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Client']"}), 'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'failures': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FailureEntry']", 'symmetrical': 'False'}), 'good_count': ('django.db.models.fields.IntegerField', [], {}), @@ -151,7 +151,7 @@ class Migration(SchemaMigration): 'paths': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PathEntry']", 'symmetrical': 'False'}), 'posixgroups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.POSIXGroupEntry']", 'symmetrical': 'False'}), 'posixusers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.POSIXUserEntry']", 'symmetrical': 'False'}), - 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['Reporting.Group']"}), + 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'null': 'True', 'to': "orm['Reporting.Group']"}), 'repo_rev_code': ('django.db.models.fields.CharField', [], {'max_length': '64'}), 'sebooleans': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.SEBooleanEntry']", 'symmetrical': 'False'}), 'sefcontexts': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.SEFcontextEntry']", 'symmetrical': 'False'}), @@ -188,7 +188,7 @@ class Migration(SchemaMigration): 'Reporting.pathentry': { 'Meta': {'ordering': "('state', 'name')", 'object_name': 'PathEntry'}, 'acls': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FileAcl']", 'symmetrical': 'False'}), - 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}), + 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}), 'detail_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'details': ('django.db.models.fields.TextField', [], {'default': "''"}), 'exists': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), @@ -197,12 +197,12 @@ class Migration(SchemaMigration): 'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}), 'path_type': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'state': ('django.db.models.fields.IntegerField', [], {}), - 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}) + 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}) }, 'Reporting.performance': { 'Meta': {'object_name': 'Performance'}, 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'to': "orm['Reporting.Interaction']"}), + 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Interaction']"}), 'metric': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'value': ('django.db.models.fields.DecimalField', [], {'max_digits': '32', 'decimal_places': '16'}) }, diff --git a/src/lib/Bcfg2/Reporting/south_migrations/0007_add_flag_fields_interaction.py b/src/lib/Bcfg2/Reporting/south_migrations/0007_add_flag_fields_interaction.py index 491ecb845..75ff30798 100644 --- a/src/lib/Bcfg2/Reporting/south_migrations/0007_add_flag_fields_interaction.py +++ b/src/lib/Bcfg2/Reporting/south_migrations/0007_add_flag_fields_interaction.py @@ -46,7 +46,7 @@ class Migration(SchemaMigration): 'Reporting.client': { 'Meta': {'object_name': 'Client'}, 'creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'null': 'True', 'to': "orm['Reporting.Interaction']"}), + 'current_interaction': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parent_client'", 'on_delete': 'models.CASCADE', 'null': 'True', 'to': "orm['Reporting.Interaction']"}), 'expiration': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'name': ('django.db.models.fields.CharField', [], {'max_length': '128'}) @@ -96,7 +96,7 @@ class Migration(SchemaMigration): 'actions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.ActionEntry']", 'symmetrical': 'False'}), 'bad_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'bundles': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.Bundle']", 'symmetrical': 'False'}), - 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'to': "orm['Reporting.Client']"}), + 'client': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'interactions'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Client']"}), 'dry_run': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'failures': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FailureEntry']", 'symmetrical': 'False'}), @@ -109,7 +109,7 @@ class Migration(SchemaMigration): 'paths': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.PathEntry']", 'symmetrical': 'False'}), 'posixgroups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.POSIXGroupEntry']", 'symmetrical': 'False'}), 'posixusers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.POSIXUserEntry']", 'symmetrical': 'False'}), - 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['Reporting.Group']"}), + 'profile': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'null': 'True', 'to': "orm['Reporting.Group']"}), 'repo_rev_code': ('django.db.models.fields.CharField', [], {'max_length': '64'}), 'sebooleans': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.SEBooleanEntry']", 'symmetrical': 'False'}), 'sefcontexts': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.SEFcontextEntry']", 'symmetrical': 'False'}), @@ -146,7 +146,7 @@ class Migration(SchemaMigration): 'Reporting.pathentry': { 'Meta': {'ordering': "('state', 'name')", 'object_name': 'PathEntry'}, 'acls': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['Reporting.FileAcl']", 'symmetrical': 'False'}), - 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}), + 'current_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}), 'detail_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}), 'details': ('django.db.models.fields.TextField', [], {'default': "''"}), 'exists': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), @@ -155,12 +155,12 @@ class Migration(SchemaMigration): 'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'db_index': 'True'}), 'path_type': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'state': ('django.db.models.fields.IntegerField', [], {}), - 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['Reporting.FilePerms']"}) + 'target_perms': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.FilePerms']"}) }, 'Reporting.performance': { 'Meta': {'object_name': 'Performance'}, 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'to': "orm['Reporting.Interaction']"}), + 'interaction': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'performance_items'", 'on_delete': 'models.CASCADE', 'to': "orm['Reporting.Interaction']"}), 'metric': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 'value': ('django.db.models.fields.DecimalField', [], {'max_digits': '32', 'decimal_places': '16'}) }, diff --git a/src/lib/Bcfg2/Server/Reports/reports/models.py b/src/lib/Bcfg2/Server/Reports/reports/models.py index d7da08381..b915fbf4d 100644 --- a/src/lib/Bcfg2/Server/Reports/reports/models.py +++ b/src/lib/Bcfg2/Server/Reports/reports/models.py @@ -73,7 +73,8 @@ class Client(models.Model): """Object representing every client we have seen stats for.""" creation = models.DateTimeField(auto_now_add=True) name = models.CharField(max_length=128,) - current_interaction = models.ForeignKey('Interaction', + current_interaction = models.ForeignKey('Interaction', + on_delete=models.CASCADE, null=True, blank=True, related_name="parent_client") expiration = models.DateTimeField(blank=True, null=True) @@ -144,7 +145,8 @@ class InteractiveManager(models.Manager): class Interaction(models.Model): """Models each reconfiguration operation interaction between client and server.""" - client = models.ForeignKey(Client, related_name="interactions") + client = models.ForeignKey(Client, on_delete=models.CASCADE, + related_name="interactions") timestamp = models.DateTimeField(db_index=True) # record timestamp state = models.CharField(max_length=32) # good/bad/modified/etc # repository revision at the time of the latest interaction @@ -326,9 +328,9 @@ class Entries(models.Model): class Entries_interactions(models.Model): """Define the relation between the reason, the interaction and the entry.""" - entry = models.ForeignKey(Entries) - reason = models.ForeignKey(Reason) - interaction = models.ForeignKey(Interaction) + entry = models.ForeignKey(Entries, on_delete=models.CASCADE) + reason = models.ForeignKey(Reason, on_delete=models.CASCADE) + interaction = models.ForeignKey(Interaction, on_delete=models.CASCADE) type = models.IntegerField(choices=TYPE_CHOICES) @@ -394,6 +396,6 @@ class InteractionMetadata(models.Model): """ interaction = models.OneToOneField(Interaction, primary_key=True, related_name='metadata') - profile = models.ForeignKey(Group, related_name="+") + profile = models.ForeignKey(Group, related_name="+", on_delete=models.CASCADE) groups = models.ManyToManyField(Group) bundles = models.ManyToManyField(Bundle) -- cgit v1.2.3-1-g7c22