Просмотр исходного кода

HUE-8530 [organization] Add new migrations with tweaks to models

Romain 6 лет назад
Родитель
Сommit
da5f3d028d

+ 81 - 0
apps/beeswax/src/beeswax/migrations/0001_initial.py

@@ -0,0 +1,81 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='MetaInstall',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('installed_example', models.BooleanField(default=False)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='QueryHistory',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('query', models.TextField()),
+                ('last_state', models.IntegerField(db_index=True)),
+                ('has_results', models.BooleanField(default=False)),
+                ('submission_date', models.DateTimeField(auto_now_add=True)),
+                ('server_id', models.CharField(max_length=1024, null=True)),
+                ('server_guid', models.CharField(default=None, max_length=1024, null=True)),
+                ('statement_number', models.SmallIntegerField(default=0)),
+                ('operation_type', models.SmallIntegerField(null=True)),
+                ('modified_row_count', models.FloatField(null=True)),
+                ('log_context', models.CharField(max_length=1024, null=True)),
+                ('server_host', models.CharField(default=b'', help_text='Host of the query server.', max_length=128)),
+                ('server_port', models.PositiveIntegerField(default=10000, help_text='Port of the query server.')),
+                ('server_name', models.CharField(default=b'', help_text='Name of the query server.', max_length=128)),
+                ('server_type', models.CharField(choices=[(b'beeswax', b'Beeswax'), (b'hiveserver2', b'Hive Server 2'), (b'mysql', b'MySQL'), (b'postgresql', b'PostgreSQL'), (b'sqlite', b'sqlite'), (b'oracle', b'oracle')], default=b'beeswax', help_text='Type of the query server.', max_length=128)),
+                ('query_type', models.SmallIntegerField(choices=[(0, b'HQL'), (1, b'IMPALA')], default=0, help_text='Type of the query.')),
+                ('notify', models.BooleanField(default=False)),
+                ('is_redacted', models.BooleanField(default=False)),
+                ('extra', models.TextField(default=b'{}')),
+                ('is_cleared', models.BooleanField(default=False)),
+            ],
+            options={
+                'ordering': ['-submission_date'],
+            },
+        ),
+        migrations.CreateModel(
+            name='SavedQuery',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('type', models.IntegerField()),
+                ('data', models.TextField(max_length=65536)),
+                ('name', models.CharField(max_length=80)),
+                ('desc', models.TextField(max_length=1024)),
+                ('mtime', models.DateTimeField(auto_now=True)),
+                ('is_auto', models.BooleanField(db_index=True, default=False)),
+                ('is_trashed', models.BooleanField(db_index=True, default=False, help_text='If this query is trashed.', verbose_name='Is trashed')),
+                ('is_redacted', models.BooleanField(default=False)),
+            ],
+            options={
+                'ordering': ['-mtime'],
+            },
+        ),
+        migrations.CreateModel(
+            name='Session',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('status_code', models.PositiveSmallIntegerField()),
+                ('secret', models.TextField(max_length=b'100')),
+                ('guid', models.TextField(max_length=b'100')),
+                ('server_protocol_version', models.SmallIntegerField(default=0)),
+                ('last_used', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Last used')),
+                ('application', models.CharField(default=b'beeswax', help_text='Application we communicate with.', max_length=128)),
+                ('properties', models.TextField(default=b'{}')),
+            ],
+        ),
+    ]

+ 50 - 0
apps/beeswax/src/beeswax/migrations/0002_auto_20190713_1747.py

@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        ('beeswax', '0001_initial'),
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='session',
+            name='owner',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AddField(
+            model_name='savedquery',
+            name='owner',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AddField(
+            model_name='queryhistory',
+            name='design',
+            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='beeswax.SavedQuery'),
+        ),
+        migrations.AddField(
+            model_name='queryhistory',
+            name='owner',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.CreateModel(
+            name='HiveServerQueryHistory',
+            fields=[
+            ],
+            options={
+                'proxy': True,
+                'indexes': [],
+            },
+            bases=('beeswax.queryhistory',),
+        ),
+    ]

+ 97 - 0
apps/jobsub/src/jobsub/migrations/0001_initial.py

@@ -0,0 +1,97 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='CheckForSetup',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('setup_run', models.BooleanField(default=False)),
+                ('setup_level', models.IntegerField(default=0)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='JobDesign',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(max_length=40)),
+                ('description', models.CharField(max_length=1024)),
+                ('last_modified', models.DateTimeField(auto_now=True)),
+                ('type', models.CharField(max_length=128)),
+                ('data', models.TextField()),
+            ],
+        ),
+        migrations.CreateModel(
+            name='JobHistory',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('submission_date', models.DateTimeField(auto_now=True)),
+                ('job_id', models.CharField(max_length=128)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='OozieAction',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('action_type', models.CharField(max_length=64)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='OozieDesign',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(help_text='Name of the design, which must be unique per user.', max_length=64)),
+                ('description', models.CharField(blank=True, max_length=1024)),
+                ('last_modified', models.DateTimeField(auto_now=True)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='OozieJavaAction',
+            fields=[
+                ('oozieaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='jobsub.OozieAction')),
+                ('files', models.CharField(default=b'[]', help_text='List of paths to files to be added to the distributed cache.', max_length=512)),
+                ('archives', models.CharField(default=b'[]', help_text='List of paths to archives to be added to the distributed cache.', max_length=512)),
+                ('jar_path', models.CharField(max_length=512)),
+                ('main_class', models.CharField(max_length=256)),
+                ('args', models.TextField(blank=True)),
+                ('java_opts', models.CharField(blank=True, max_length=256)),
+                ('job_properties', models.TextField(default=b'[]')),
+            ],
+            bases=('jobsub.oozieaction',),
+        ),
+        migrations.CreateModel(
+            name='OozieMapreduceAction',
+            fields=[
+                ('oozieaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='jobsub.OozieAction')),
+                ('files', models.CharField(default=b'[]', help_text='List of paths to files to be added to the distributed cache.', max_length=512)),
+                ('archives', models.CharField(default=b'[]', help_text='List of paths to archives to be added to the distributed cache.', max_length=512)),
+                ('job_properties', models.TextField(default=b'[]')),
+                ('jar_path', models.CharField(help_text='Path to jar files on HDFS.', max_length=512)),
+            ],
+            bases=('jobsub.oozieaction',),
+        ),
+        migrations.CreateModel(
+            name='OozieStreamingAction',
+            fields=[
+                ('oozieaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='jobsub.OozieAction')),
+                ('files', models.CharField(default=b'[]', max_length=512)),
+                ('archives', models.CharField(default=b'[]', max_length=512)),
+                ('job_properties', models.TextField(default=b'[]')),
+                ('mapper', models.CharField(max_length=512)),
+                ('reducer', models.CharField(max_length=512)),
+            ],
+            bases=('jobsub.oozieaction',),
+        ),
+    ]

+ 45 - 0
apps/jobsub/src/jobsub/migrations/0002_auto_20190713_1747.py

@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        ('jobsub', '0001_initial'),
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='ooziedesign',
+            name='owner',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AddField(
+            model_name='ooziedesign',
+            name='root_action',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jobsub.OozieAction'),
+        ),
+        migrations.AddField(
+            model_name='jobhistory',
+            name='design',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='jobsub.OozieDesign'),
+        ),
+        migrations.AddField(
+            model_name='jobhistory',
+            name='owner',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AddField(
+            model_name='jobdesign',
+            name='owner',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+    ]

Разница между файлами не показана из-за своего большого размера
+ 48 - 0
apps/oozie/src/oozie/migrations/0001_initial.py


+ 100 - 0
apps/oozie/src/oozie/migrations/0002_auto_20190713_1747.py

@@ -0,0 +1,100 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ('oozie', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='job',
+            name='owner',
+            field=models.ForeignKey(help_text='Person who can modify the job.', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Owner'),
+        ),
+        migrations.AddField(
+            model_name='history',
+            name='job',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='oozie.Job'),
+        ),
+        migrations.AddField(
+            model_name='history',
+            name='submitter',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AddField(
+            model_name='dataoutput',
+            name='dataset',
+            field=models.OneToOneField(help_text='The pattern of the output data we want to generate.', on_delete=django.db.models.deletion.CASCADE, to='oozie.Dataset', verbose_name='The dataset representing the format of the data output.'),
+        ),
+        migrations.AddField(
+            model_name='datainput',
+            name='dataset',
+            field=models.OneToOneField(help_text='The pattern of the input data we want to process.', on_delete=django.db.models.deletion.CASCADE, to='oozie.Dataset', verbose_name='The dataset representing format of the data input.'),
+        ),
+        migrations.AddField(
+            model_name='workflow',
+            name='end',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='end_workflow', to='oozie.End'),
+        ),
+        migrations.AddField(
+            model_name='workflow',
+            name='start',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='start_workflow', to='oozie.Start'),
+        ),
+        migrations.AddField(
+            model_name='subworkflow',
+            name='sub_workflow',
+            field=models.ForeignKey(blank=True, default=None, help_text='The sub-workflow application to include. You must own all the sub-workflows.', null=True, on_delete=django.db.models.deletion.CASCADE, to='oozie.Workflow', verbose_name='Sub-workflow'),
+        ),
+        migrations.AddField(
+            model_name='node',
+            name='workflow',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='oozie.Workflow'),
+        ),
+        migrations.AddField(
+            model_name='dataset',
+            name='coordinator',
+            field=models.ForeignKey(help_text='The coordinator associated with this data.', on_delete=django.db.models.deletion.CASCADE, to='oozie.Coordinator', verbose_name='Coordinator'),
+        ),
+        migrations.AddField(
+            model_name='dataoutput',
+            name='coordinator',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='oozie.Coordinator'),
+        ),
+        migrations.AddField(
+            model_name='datainput',
+            name='coordinator',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='oozie.Coordinator'),
+        ),
+        migrations.AddField(
+            model_name='coordinator',
+            name='coordinatorworkflow',
+            field=models.ForeignKey(help_text='The workflow to schedule repeatedly.', null=True, on_delete=django.db.models.deletion.CASCADE, to='oozie.Workflow', verbose_name='Workflow'),
+        ),
+        migrations.AddField(
+            model_name='bundledcoordinator',
+            name='bundle',
+            field=models.ForeignKey(help_text='The bundle regrouping all the coordinators.', on_delete=django.db.models.deletion.CASCADE, to='oozie.Bundle', verbose_name='Bundle'),
+        ),
+        migrations.AddField(
+            model_name='bundledcoordinator',
+            name='coordinator',
+            field=models.ForeignKey(help_text='The coordinator to batch with other coordinators.', on_delete=django.db.models.deletion.CASCADE, to='oozie.Coordinator', verbose_name='Coordinator'),
+        ),
+        migrations.AddField(
+            model_name='bundle',
+            name='coordinators',
+            field=models.ManyToManyField(through='oozie.BundledCoordinator', to='oozie.Coordinator'),
+        ),
+    ]

+ 32 - 0
apps/pig/src/pig/migrations/0001_initial.py

@@ -0,0 +1,32 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Document',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('is_design', models.BooleanField(db_index=True, default=True, help_text='If the document is not a submitted job but a real query, script, workflow.', verbose_name='Is a user document, not a document submission.')),
+            ],
+        ),
+        migrations.CreateModel(
+            name='PigScript',
+            fields=[
+                ('document_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='pig.Document')),
+                ('data', models.TextField(default=b'{"name": "", "parameters": [], "script": "", "hadoopProperties": [], "properties": [], "resources": [], "job_id": null}')),
+            ],
+            bases=('pig.document',),
+        ),
+    ]

+ 25 - 0
apps/pig/src/pig/migrations/0002_document_owner.py

@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ('pig', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='document',
+            name='owner',
+            field=models.ForeignKey(help_text='User who can modify the job.', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Owner'),
+        ),
+    ]

+ 56 - 0
apps/search/src/search/migrations/0001_initial.py

@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Collection',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('enabled', models.BooleanField(default=False)),
+                ('name', models.CharField(max_length=40, verbose_name='Solr index name pointing to')),
+                ('label', models.CharField(max_length=100, verbose_name='Friendlier name in UI')),
+                ('is_core_only', models.BooleanField(default=False)),
+                ('cores', models.TextField(default=b'{}', help_text='Solr json', verbose_name='Collection with cores data')),
+                ('properties', models.TextField(default=b'{}', help_text='Hue properties (e.g. results by pages number)', verbose_name='Properties')),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Facet',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('enabled', models.BooleanField(default=True)),
+                ('data', models.TextField()),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Result',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('data', models.TextField()),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Sorting',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('data', models.TextField()),
+            ],
+        ),
+        migrations.AddField(
+            model_name='collection',
+            name='facets',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='search.Facet'),
+        ),
+    ]

+ 35 - 0
apps/search/src/search/migrations/0002_auto_20190713_1747.py

@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        ('search', '0001_initial'),
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='collection',
+            name='owner',
+            field=models.ForeignKey(default=None, help_text='User who created the job.', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Owner'),
+        ),
+        migrations.AddField(
+            model_name='collection',
+            name='result',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='search.Result'),
+        ),
+        migrations.AddField(
+            model_name='collection',
+            name='sorting',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='search.Sorting'),
+        ),
+    ]

+ 137 - 0
apps/useradmin/src/useradmin/migrations/0001_initial.py

@@ -0,0 +1,137 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+import useradmin.models
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        ('auth', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='OrganizationUser',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('password', models.CharField(max_length=128, verbose_name='password')),
+                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
+                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
+                ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
+                ('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')),
+                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
+                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
+                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
+                ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')),
+                ('token', models.CharField(default=None, max_length=128, null=True, verbose_name='token')),
+                ('customer_id', models.CharField(default=None, max_length=128, null=True, verbose_name='Customer id')),
+                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
+            ],
+            options={
+                'abstract': False,
+                'verbose_name': 'user',
+                'verbose_name_plural': 'users',
+            },
+            managers=[
+                ('objects', useradmin.models.UserManager()),
+            ],
+        ),
+        migrations.CreateModel(
+            name='GroupPermission',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+            ],
+        ),
+        migrations.CreateModel(
+            name='HuePermission',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('app', models.CharField(max_length=30)),
+                ('action', models.CharField(max_length=100)),
+                ('description', models.CharField(max_length=255)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='LdapGroup',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Organization',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(help_text='The name of the organization', max_length=200)),
+                ('is_active', models.BooleanField(default=True)),
+            ],
+            managers=[
+                ('objects', useradmin.models.OrganizationManager()),
+            ],
+        ),
+        migrations.CreateModel(
+            name='OrganizationGroup',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(max_length=80, verbose_name='name')),
+                ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='useradmin.Organization')),
+                ('permissions', models.ManyToManyField(blank=True, to='useradmin.HuePermission', verbose_name='permissions')),
+            ],
+            options={
+                'verbose_name': 'organization group',
+                'verbose_name_plural': 'organization groups',
+            },
+        ),
+        migrations.CreateModel(
+            name='UserProfile',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('home_directory', models.CharField(max_length=1024, null=True)),
+                ('creation_method', models.CharField(default=b'HUE', max_length=64)),
+                ('first_login', models.BooleanField(default=True, help_text='If this is users first login.', verbose_name='First Login')),
+                ('last_activity', models.DateTimeField(auto_now=True, db_index=True)),
+                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+        migrations.AddField(
+            model_name='ldapgroup',
+            name='group',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='group', to='useradmin.OrganizationGroup'),
+        ),
+        migrations.AddField(
+            model_name='huepermission',
+            name='groups',
+            field=models.ManyToManyField(through='useradmin.GroupPermission', to='useradmin.OrganizationGroup'),
+        ),
+        migrations.AddField(
+            model_name='grouppermission',
+            name='group',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='useradmin.OrganizationGroup'),
+        ),
+        migrations.AddField(
+            model_name='grouppermission',
+            name='hue_permission',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='useradmin.HuePermission'),
+        ),
+        migrations.AddField(
+            model_name='organizationuser',
+            name='organization',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='useradmin.Organization'),
+        ),
+        migrations.AddField(
+            model_name='organizationuser',
+            name='user_permissions',
+            field=models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions'),
+        ),
+        migrations.AlterUniqueTogether(
+            name='organizationgroup',
+            unique_together=set([('name', 'organization')]),
+        ),
+    ]

+ 7 - 3
apps/useradmin/src/useradmin/models.py

@@ -153,7 +153,7 @@ if ENABLE_ORGANIZATIONS.get():
       email = models.EmailField(_t('email address'), unique=True)
       token = models.CharField(_t('token'), max_length=128, default=None, null=True)
       customer_id = models.CharField(_t('Customer id'), max_length=128, default=None, null=True)
-      organization = models.ForeignKey(Organization, on_delete=models.CASCADE, default=None)
+      organization = models.ForeignKey(Organization, on_delete=models.CASCADE)
 
       USERNAME_FIELD = 'email'
       REQUIRED_FIELDS = []
@@ -315,7 +315,11 @@ def get_default_user_group(**kwargs):
   if default_user_group is None:
     return None
 
-  group, created = Group.objects.get_or_create(name=default_user_group)
+  if ENABLE_ORGANIZATIONS.get():
+    group, created = Group.objects.get_or_create(name=default_user_group, organization=default_organization())
+  else:
+    group, created = Group.objects.get_or_create(name=default_user_group)
+
   if created:
     group.save()
 
@@ -352,7 +356,7 @@ def update_app_permissions(**kwargs):
 
     updated = 0
     uptodate = 0
-    added = [ ]
+    added = []
 
     for app_obj in appmanager.DESKTOP_APPS:
       app = app_obj.name

+ 99 - 0
desktop/core/src/desktop/migrations/0001_initial.py

@@ -0,0 +1,99 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+import desktop.models
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='DefaultConfiguration',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('app', models.CharField(db_index=True, help_text='App that this configuration belongs to.', max_length=32)),
+                ('properties', models.TextField(default=b'[]', help_text='JSON-formatted default properties values.')),
+                ('is_default', models.BooleanField(db_index=True, default=False)),
+            ],
+            options={
+                'ordering': ['app', '-is_default', 'user'],
+            },
+        ),
+        migrations.CreateModel(
+            name='Document',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(default=b'', max_length=255)),
+                ('description', models.TextField(default=b'')),
+                ('last_modified', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Last modified')),
+                ('version', models.SmallIntegerField(default=1, verbose_name='Schema version')),
+                ('extra', models.TextField(default=b'')),
+                ('object_id', models.PositiveIntegerField()),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Document2',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(default=b'', max_length=255)),
+                ('description', models.TextField(default=b'')),
+                ('uuid', models.CharField(db_index=True, default=desktop.models.uuid_default, max_length=36)),
+                ('type', models.CharField(db_index=True, default=b'', help_text='Type of document, e.g. Hive query, Oozie workflow, Search Dashboard...', max_length=32)),
+                ('data', models.TextField(default=b'{}')),
+                ('extra', models.TextField(default=b'')),
+                ('search', models.TextField(blank=True, help_text='Searchable text for the document.', null=True)),
+                ('last_modified', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Time last modified')),
+                ('version', models.SmallIntegerField(db_index=True, default=1, verbose_name='Document version')),
+                ('is_history', models.BooleanField(db_index=True, default=False)),
+                ('is_managed', models.BooleanField(db_index=True, default=False, verbose_name='If managed under the cover by Hue and never by the user')),
+                ('is_trashed', models.NullBooleanField(db_index=True, default=False, verbose_name='True if trashed')),
+            ],
+            options={
+                'ordering': ['-last_modified', 'name'],
+            },
+        ),
+        migrations.CreateModel(
+            name='Document2Permission',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('perms', models.CharField(choices=[(b'read', b'read'), (b'write', b'write'), (b'comment', b'comment')], db_index=True, default=b'read', max_length=10)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='DocumentPermission',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('perms', models.CharField(choices=[(b'read', b'read'), (b'write', b'write')], default=b'read', max_length=10)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='DocumentTag',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('tag', models.SlugField()),
+            ],
+        ),
+        migrations.CreateModel(
+            name='Settings',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('collect_usage', models.BooleanField(db_index=True, default=True)),
+                ('tours_and_tutorials', models.BooleanField(db_index=True, default=True)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='UserPreferences',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('key', models.CharField(max_length=20)),
+                ('value', models.TextField(max_length=4096)),
+            ],
+        ),
+    ]

+ 132 - 0
desktop/core/src/desktop/migrations/0002_auto_20190713_1747.py

@@ -0,0 +1,132 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2019-07-13 17:47
+from __future__ import unicode_literals
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        ('desktop', '0001_initial'),
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ('useradmin', '0001_initial'),
+        ('contenttypes', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='userpreferences',
+            name='user',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AddField(
+            model_name='documenttag',
+            name='owner',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AddField(
+            model_name='documentpermission',
+            name='doc',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='desktop.Document'),
+        ),
+        migrations.AddField(
+            model_name='documentpermission',
+            name='groups',
+            field=models.ManyToManyField(db_index=True, db_table=b'documentpermission_groups', to='useradmin.OrganizationGroup'),
+        ),
+        migrations.AddField(
+            model_name='documentpermission',
+            name='users',
+            field=models.ManyToManyField(db_index=True, db_table=b'documentpermission_users', to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AddField(
+            model_name='document2permission',
+            name='doc',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='desktop.Document2'),
+        ),
+        migrations.AddField(
+            model_name='document2permission',
+            name='groups',
+            field=models.ManyToManyField(db_index=True, db_table=b'documentpermission2_groups', to='useradmin.OrganizationGroup'),
+        ),
+        migrations.AddField(
+            model_name='document2permission',
+            name='users',
+            field=models.ManyToManyField(db_index=True, db_table=b'documentpermission2_users', to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.AddField(
+            model_name='document2',
+            name='dependencies',
+            field=models.ManyToManyField(db_index=True, related_name='dependents', to='desktop.Document2'),
+        ),
+        migrations.AddField(
+            model_name='document2',
+            name='owner',
+            field=models.ForeignKey(help_text='Creator.', on_delete=django.db.models.deletion.CASCADE, related_name='doc2_owner', to=settings.AUTH_USER_MODEL, verbose_name='Owner'),
+        ),
+        migrations.AddField(
+            model_name='document2',
+            name='parent_directory',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='desktop.Document2'),
+        ),
+        migrations.AddField(
+            model_name='document',
+            name='content_type',
+            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType'),
+        ),
+        migrations.AddField(
+            model_name='document',
+            name='owner',
+            field=models.ForeignKey(help_text='User who can own the job.', on_delete=django.db.models.deletion.CASCADE, related_name='doc_owner', to=settings.AUTH_USER_MODEL, verbose_name='Owner'),
+        ),
+        migrations.AddField(
+            model_name='document',
+            name='tags',
+            field=models.ManyToManyField(db_index=True, to='desktop.DocumentTag'),
+        ),
+        migrations.AddField(
+            model_name='defaultconfiguration',
+            name='groups',
+            field=models.ManyToManyField(db_index=True, db_table=b'defaultconfiguration_groups', to='useradmin.OrganizationGroup'),
+        ),
+        migrations.AddField(
+            model_name='defaultconfiguration',
+            name='user',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
+        ),
+        migrations.CreateModel(
+            name='Directory',
+            fields=[
+            ],
+            options={
+                'proxy': True,
+                'indexes': [],
+            },
+            bases=('desktop.document2',),
+        ),
+        migrations.AlterUniqueTogether(
+            name='documenttag',
+            unique_together=set([('owner', 'tag')]),
+        ),
+        migrations.AlterUniqueTogether(
+            name='documentpermission',
+            unique_together=set([('doc', 'perms')]),
+        ),
+        migrations.AlterUniqueTogether(
+            name='document2permission',
+            unique_together=set([('doc', 'perms')]),
+        ),
+        migrations.AlterUniqueTogether(
+            name='document2',
+            unique_together=set([('uuid', 'version', 'is_history')]),
+        ),
+        migrations.AlterUniqueTogether(
+            name='document',
+            unique_together=set([('content_type', 'object_id')]),
+        ),
+    ]

Некоторые файлы не были показаны из-за большого количества измененных файлов