summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander.sulfrian@fu-berlin.de>2015-09-21 19:11:25 +0200
committerAlexander Sulfrian <alexander.sulfrian@fu-berlin.de>2015-09-23 19:29:00 +0200
commitc3f00276aba871f7809f202d5fff95564a9e7309 (patch)
treef4232c5246e99ff4915a9bd1bceb47606c839436
parent2d10367098b1e7424a48de670c6a936f2b4dbb0f (diff)
downloadbcfg2-c3f00276aba871f7809f202d5fff95564a9e7309.tar.gz
bcfg2-c3f00276aba871f7809f202d5fff95564a9e7309.tar.bz2
bcfg2-c3f00276aba871f7809f202d5fff95564a9e7309.zip
Add matching django migrations for south
-rw-r--r--src/lib/Bcfg2/Reporting/migrations/0001_initial.py280
-rw-r--r--src/lib/Bcfg2/Reporting/migrations/0002_convert_perms_to_mode.py23
-rw-r--r--src/lib/Bcfg2/Reporting/migrations/0003_expand_hash_key.py44
-rw-r--r--src/lib/Bcfg2/Reporting/migrations/0004_profile_can_be_null.py20
-rw-r--r--src/lib/Bcfg2/Reporting/migrations/0005_add_selinux_entry_support.py222
-rw-r--r--src/lib/Bcfg2/Reporting/migrations/0006_add_user_group_entry_support.py68
-rw-r--r--src/lib/Bcfg2/Reporting/migrations/0007_add_flag_fields_interaction.py26
7 files changed, 411 insertions, 272 deletions
diff --git a/src/lib/Bcfg2/Reporting/migrations/0001_initial.py b/src/lib/Bcfg2/Reporting/migrations/0001_initial.py
index 0e23397ff..6a52a8b2d 100644
--- a/src/lib/Bcfg2/Reporting/migrations/0001_initial.py
+++ b/src/lib/Bcfg2/Reporting/migrations/0001_initial.py
@@ -15,7 +15,7 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('hash_key', models.IntegerField(editable=False, db_index=True)),
('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
('exists', models.BooleanField(default=True)),
('status', models.CharField(default=b'check', max_length=128)),
@@ -55,7 +55,7 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('hash_key', models.IntegerField(editable=False, db_index=True)),
('entry_type', models.CharField(max_length=128)),
('message', models.TextField()),
],
@@ -80,7 +80,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('owner', models.CharField(max_length=128)),
('group', models.CharField(max_length=128)),
- ('mode', models.CharField(max_length=128)),
+ ('perms', models.CharField(max_length=128)),
],
options={
},
@@ -116,8 +116,6 @@ class Migration(migrations.Migration):
('bad_count', models.IntegerField(default=0)),
('modified_count', models.IntegerField(default=0)),
('extra_count', models.IntegerField(default=0)),
- ('dry_run', models.BooleanField(default=False)),
- ('only_important', models.BooleanField(default=False)),
('actions', models.ManyToManyField(to='Reporting.ActionEntry')),
('bundles', models.ManyToManyField(to='Reporting.Bundle')),
('client', models.ForeignKey(related_name='interactions', to='Reporting.Client')),
@@ -135,7 +133,7 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('hash_key', models.IntegerField(editable=False, db_index=True)),
('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
('exists', models.BooleanField(default=True)),
('target_version', models.CharField(default=b'', max_length=1024)),
@@ -153,7 +151,7 @@ class Migration(migrations.Migration):
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('hash_key', models.IntegerField(editable=False, db_index=True)),
('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
('exists', models.BooleanField(default=True)),
('path_type', models.CharField(max_length=128, choices=[(b'device', b'Device'), (b'directory', b'Directory'), (b'hardlink', b'Hard Link'), (b'nonexistent', b'Non Existent'), (b'permissions', b'Permissions'), (b'symlink', b'Symlink')])),
@@ -208,188 +206,11 @@ class Migration(migrations.Migration):
bases=(models.Model,),
),
migrations.CreateModel(
- name='POSIXGroupEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ('gid', models.IntegerField(null=True)),
- ('current_gid', models.IntegerField(null=True)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name='POSIXUserEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ('uid', models.IntegerField(null=True)),
- ('current_uid', models.IntegerField(null=True)),
- ('group', models.CharField(max_length=64)),
- ('current_group', models.CharField(max_length=64, null=True)),
- ('gecos', models.CharField(max_length=1024)),
- ('current_gecos', models.CharField(max_length=1024, null=True)),
- ('home', models.CharField(max_length=1024)),
- ('current_home', models.CharField(max_length=1024, null=True)),
- ('shell', models.CharField(default=b'/bin/bash', max_length=1024)),
- ('current_shell', models.CharField(max_length=1024, null=True)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name='SEBooleanEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ('value', models.BooleanField(default=True)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name='SEFcontextEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ('selinuxtype', models.CharField(max_length=128)),
- ('current_selinuxtype', models.CharField(max_length=128, null=True)),
- ('filetype', models.CharField(max_length=16)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name='SEInterfaceEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ('selinuxtype', models.CharField(max_length=128)),
- ('current_selinuxtype', models.CharField(max_length=128, null=True)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name='SELoginEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ('selinuxuser', models.CharField(max_length=128)),
- ('current_selinuxuser', models.CharField(max_length=128, null=True)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name='SEModuleEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ('disabled', models.BooleanField(default=False)),
- ('current_disabled', models.BooleanField(default=False)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name='SENodeEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ('selinuxtype', models.CharField(max_length=128)),
- ('current_selinuxtype', models.CharField(max_length=128, null=True)),
- ('proto', models.CharField(max_length=4)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name='SEPermissiveEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name='SEPortEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ('selinuxtype', models.CharField(max_length=128)),
- ('current_selinuxtype', models.CharField(max_length=128, null=True)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
- migrations.CreateModel(
name='ServiceEntry',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('hash_key', models.IntegerField(editable=False, db_index=True)),
('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
('exists', models.BooleanField(default=True)),
('target_status', models.CharField(default=b'', max_length=128)),
@@ -401,25 +222,6 @@ class Migration(migrations.Migration):
},
bases=(models.Model,),
),
- migrations.CreateModel(
- name='SEUserEntry',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=128, db_index=True)),
- ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
- ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
- ('exists', models.BooleanField(default=True)),
- ('roles', models.CharField(max_length=128)),
- ('current_roles', models.CharField(max_length=128, null=True)),
- ('prefix', models.CharField(max_length=128)),
- ('current_prefix', models.CharField(max_length=128, null=True)),
- ],
- options={
- 'ordering': ('state', 'name'),
- 'abstract': False,
- },
- bases=(models.Model,),
- ),
migrations.AddField(
model_name='pathentry',
name='acls',
@@ -452,68 +254,8 @@ class Migration(migrations.Migration):
),
migrations.AddField(
model_name='interaction',
- name='posixgroups',
- field=models.ManyToManyField(to='Reporting.POSIXGroupEntry'),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name='interaction',
- name='posixusers',
- field=models.ManyToManyField(to='Reporting.POSIXUserEntry'),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name='interaction',
name='profile',
- field=models.ForeignKey(related_name='+', to='Reporting.Group', null=True),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name='interaction',
- name='sebooleans',
- field=models.ManyToManyField(to='Reporting.SEBooleanEntry'),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name='interaction',
- name='sefcontexts',
- field=models.ManyToManyField(to='Reporting.SEFcontextEntry'),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name='interaction',
- name='seinterfaces',
- field=models.ManyToManyField(to='Reporting.SEInterfaceEntry'),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name='interaction',
- name='selogins',
- field=models.ManyToManyField(to='Reporting.SELoginEntry'),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name='interaction',
- name='semodules',
- field=models.ManyToManyField(to='Reporting.SEModuleEntry'),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name='interaction',
- name='senodes',
- field=models.ManyToManyField(to='Reporting.SENodeEntry'),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name='interaction',
- name='sepermissives',
- field=models.ManyToManyField(to='Reporting.SEPermissiveEntry'),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name='interaction',
- name='seports',
- field=models.ManyToManyField(to='Reporting.SEPortEntry'),
+ field=models.ForeignKey(related_name='+', to='Reporting.Group'),
preserve_default=True,
),
migrations.AddField(
@@ -522,19 +264,13 @@ class Migration(migrations.Migration):
field=models.ManyToManyField(to='Reporting.ServiceEntry'),
preserve_default=True,
),
- migrations.AddField(
- model_name='interaction',
- name='seusers',
- field=models.ManyToManyField(to='Reporting.SEUserEntry'),
- preserve_default=True,
- ),
migrations.AlterUniqueTogether(
name='interaction',
unique_together=set([('client', 'timestamp')]),
),
migrations.AlterUniqueTogether(
name='fileperms',
- unique_together=set([('owner', 'group', 'mode')]),
+ unique_together=set([('owner', 'group', 'perms')]),
),
migrations.AddField(
model_name='client',
diff --git a/src/lib/Bcfg2/Reporting/migrations/0002_convert_perms_to_mode.py b/src/lib/Bcfg2/Reporting/migrations/0002_convert_perms_to_mode.py
new file mode 100644
index 000000000..48bfd6412
--- /dev/null
+++ b/src/lib/Bcfg2/Reporting/migrations/0002_convert_perms_to_mode.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('Reporting', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.RenameField(
+ model_name='fileperms',
+ old_name='perms',
+ new_name='mode',
+ ),
+ migrations.AlterUniqueTogether(
+ name='fileperms',
+ unique_together=set([('owner', 'group', 'mode')]),
+ ),
+ ]
diff --git a/src/lib/Bcfg2/Reporting/migrations/0003_expand_hash_key.py b/src/lib/Bcfg2/Reporting/migrations/0003_expand_hash_key.py
new file mode 100644
index 000000000..b9ae207dd
--- /dev/null
+++ b/src/lib/Bcfg2/Reporting/migrations/0003_expand_hash_key.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('Reporting', '0002_convert_perms_to_mode'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='actionentry',
+ name='hash_key',
+ field=models.BigIntegerField(editable=False, db_index=True),
+ preserve_default=True,
+ ),
+ migrations.AlterField(
+ model_name='failureentry',
+ name='hash_key',
+ field=models.BigIntegerField(editable=False, db_index=True),
+ preserve_default=True,
+ ),
+ migrations.AlterField(
+ model_name='packageentry',
+ name='hash_key',
+ field=models.BigIntegerField(editable=False, db_index=True),
+ preserve_default=True,
+ ),
+ migrations.AlterField(
+ model_name='pathentry',
+ name='hash_key',
+ field=models.BigIntegerField(editable=False, db_index=True),
+ preserve_default=True,
+ ),
+ migrations.AlterField(
+ model_name='serviceentry',
+ name='hash_key',
+ field=models.BigIntegerField(editable=False, db_index=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
new file mode 100644
index 000000000..d0b2de417
--- /dev/null
+++ b/src/lib/Bcfg2/Reporting/migrations/0004_profile_can_be_null.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('Reporting', '0003_expand_hash_key'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='interaction',
+ name='profile',
+ field=models.ForeignKey(related_name='+', to='Reporting.Group', null=True),
+ preserve_default=True,
+ ),
+ ]
diff --git a/src/lib/Bcfg2/Reporting/migrations/0005_add_selinux_entry_support.py b/src/lib/Bcfg2/Reporting/migrations/0005_add_selinux_entry_support.py
new file mode 100644
index 000000000..0c6934b10
--- /dev/null
+++ b/src/lib/Bcfg2/Reporting/migrations/0005_add_selinux_entry_support.py
@@ -0,0 +1,222 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('Reporting', '0004_profile_can_be_null'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='SEBooleanEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ('value', models.BooleanField(default=True)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.CreateModel(
+ name='SEFcontextEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ('selinuxtype', models.CharField(max_length=128)),
+ ('current_selinuxtype', models.CharField(max_length=128, null=True)),
+ ('filetype', models.CharField(max_length=16)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.CreateModel(
+ name='SEInterfaceEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ('selinuxtype', models.CharField(max_length=128)),
+ ('current_selinuxtype', models.CharField(max_length=128, null=True)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.CreateModel(
+ name='SELoginEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ('selinuxuser', models.CharField(max_length=128)),
+ ('current_selinuxuser', models.CharField(max_length=128, null=True)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.CreateModel(
+ name='SEModuleEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ('disabled', models.BooleanField(default=False)),
+ ('current_disabled', models.BooleanField(default=False)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.CreateModel(
+ name='SENodeEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ('selinuxtype', models.CharField(max_length=128)),
+ ('current_selinuxtype', models.CharField(max_length=128, null=True)),
+ ('proto', models.CharField(max_length=4)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.CreateModel(
+ name='SEPermissiveEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.CreateModel(
+ name='SEPortEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ('selinuxtype', models.CharField(max_length=128)),
+ ('current_selinuxtype', models.CharField(max_length=128, null=True)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.CreateModel(
+ name='SEUserEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ('roles', models.CharField(max_length=128)),
+ ('current_roles', models.CharField(max_length=128, null=True)),
+ ('prefix', models.CharField(max_length=128)),
+ ('current_prefix', models.CharField(max_length=128, null=True)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='sebooleans',
+ field=models.ManyToManyField(to='Reporting.SEBooleanEntry'),
+ preserve_default=True,
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='sefcontexts',
+ field=models.ManyToManyField(to='Reporting.SEFcontextEntry'),
+ preserve_default=True,
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='seinterfaces',
+ field=models.ManyToManyField(to='Reporting.SEInterfaceEntry'),
+ preserve_default=True,
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='selogins',
+ field=models.ManyToManyField(to='Reporting.SELoginEntry'),
+ preserve_default=True,
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='semodules',
+ field=models.ManyToManyField(to='Reporting.SEModuleEntry'),
+ preserve_default=True,
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='senodes',
+ field=models.ManyToManyField(to='Reporting.SENodeEntry'),
+ preserve_default=True,
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='sepermissives',
+ field=models.ManyToManyField(to='Reporting.SEPermissiveEntry'),
+ preserve_default=True,
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='seports',
+ field=models.ManyToManyField(to='Reporting.SEPortEntry'),
+ preserve_default=True,
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='seusers',
+ field=models.ManyToManyField(to='Reporting.SEUserEntry'),
+ preserve_default=True,
+ ),
+ ]
diff --git a/src/lib/Bcfg2/Reporting/migrations/0006_add_user_group_entry_support.py b/src/lib/Bcfg2/Reporting/migrations/0006_add_user_group_entry_support.py
new file mode 100644
index 000000000..4853faaf3
--- /dev/null
+++ b/src/lib/Bcfg2/Reporting/migrations/0006_add_user_group_entry_support.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('Reporting', '0005_add_selinux_entry_support'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='POSIXGroupEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ('gid', models.IntegerField(null=True)),
+ ('current_gid', models.IntegerField(null=True)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.CreateModel(
+ name='POSIXUserEntry',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=128, db_index=True)),
+ ('hash_key', models.BigIntegerField(editable=False, db_index=True)),
+ ('state', models.IntegerField(choices=[(0, b'Good'), (1, b'Bad'), (2, b'Modified'), (3, b'Extra')])),
+ ('exists', models.BooleanField(default=True)),
+ ('uid', models.IntegerField(null=True)),
+ ('current_uid', models.IntegerField(null=True)),
+ ('group', models.CharField(max_length=64)),
+ ('current_group', models.CharField(max_length=64, null=True)),
+ ('gecos', models.CharField(max_length=1024)),
+ ('current_gecos', models.CharField(max_length=1024, null=True)),
+ ('home', models.CharField(max_length=1024)),
+ ('current_home', models.CharField(max_length=1024, null=True)),
+ ('shell', models.CharField(default=b'/bin/bash', max_length=1024)),
+ ('current_shell', models.CharField(max_length=1024, null=True)),
+ ],
+ options={
+ 'ordering': ('state', 'name'),
+ 'abstract': False,
+ },
+ bases=(models.Model,),
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='posixgroups',
+ field=models.ManyToManyField(to='Reporting.POSIXGroupEntry'),
+ preserve_default=True,
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='posixusers',
+ field=models.ManyToManyField(to='Reporting.POSIXUserEntry'),
+ preserve_default=True,
+ ),
+ ]
diff --git a/src/lib/Bcfg2/Reporting/migrations/0007_add_flag_fields_interaction.py b/src/lib/Bcfg2/Reporting/migrations/0007_add_flag_fields_interaction.py
new file mode 100644
index 000000000..1d1274288
--- /dev/null
+++ b/src/lib/Bcfg2/Reporting/migrations/0007_add_flag_fields_interaction.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('Reporting', '0006_add_user_group_entry_support'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='interaction',
+ name='dry_run',
+ field=models.BooleanField(default=False),
+ preserve_default=True,
+ ),
+ migrations.AddField(
+ model_name='interaction',
+ name='only_important',
+ field=models.BooleanField(default=False),
+ preserve_default=True,
+ ),
+ ]