summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin L. Metlov <metlov@fti.dn.ua>2022-12-21 21:16:18 +0300
committerJonah BrĂ¼chert <jbb@kaidan.im>2024-04-20 02:36:56 +0200
commitdcf7343332ae929d59bc8bc4331109e54ab9ec9a (patch)
tree3165d17df32d57579f372bccd351f64f554b42f7
parent57f980db6c2e19c7ac2f031e658cebe253c6d048 (diff)
downloadbcfg2-dcf7343332ae929d59bc8bc4331109e54ab9ec9a.tar.gz
bcfg2-dcf7343332ae929d59bc8bc4331109e54ab9ec9a.tar.bz2
bcfg2-dcf7343332ae929d59bc8bc4331109e54ab9ec9a.zip
added on_delete=models.CASCADE to all ForeignKey invocations
Signed-off-by: Konstantin L. Metlov <metlov@fti.dn.ua>
-rw-r--r--src/lib/Bcfg2/Reporting/migrations/0001_initial.py12
-rw-r--r--src/lib/Bcfg2/Reporting/migrations/0004_profile_can_be_null.py2
-rw-r--r--src/lib/Bcfg2/Reporting/models.py14
-rw-r--r--src/lib/Bcfg2/Reporting/south_migrations/0001_initial.py64
-rw-r--r--src/lib/Bcfg2/Reporting/south_migrations/0002_convert_perms_to_mode.py12
-rw-r--r--src/lib/Bcfg2/Reporting/south_migrations/0003_expand_hash_key.py12
-rw-r--r--src/lib/Bcfg2/Reporting/south_migrations/0004_profile_can_be_null.py14
-rw-r--r--src/lib/Bcfg2/Reporting/south_migrations/0005_add_selinux_entry_support.py48
-rw-r--r--src/lib/Bcfg2/Reporting/south_migrations/0006_add_user_group_entry_support.py20
-rw-r--r--src/lib/Bcfg2/Reporting/south_migrations/0007_add_flag_fields_interaction.py12
-rw-r--r--src/lib/Bcfg2/Server/Reports/reports/models.py14
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)