Browse Source

HUE-8530 [organizations] Add migrations and patch Desktop prometheus Mixin base class

Updated:
  vim desktop/core/src/desktop/migrations/0001_initial.py
  -->
  bases=(models.Model, django_prometheus.models.ExportModelOperationsMixin('Document2')),

Skipped for now:
./build/env/bin/hue makemigrations jobsub
./build/env/bin/hue makemigrations oozie
./build/env/bin/hue makemigrations pig
./build/env/bin/hue makemigrations search
Romain 5 years ago
parent
commit
e3349fe89e

+ 106 - 0
apps/beeswax/src/beeswax/org_migrations/0001_initial.py

@@ -0,0 +1,106 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2020-01-02 06:10
+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),
+    ]
+
+    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='', 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='', help_text='Name of the query server.', max_length=128)),
+                ('server_type', models.CharField(choices=[('beeswax', 'Beeswax'), ('hiveserver2', 'Hive Server 2'), ('mysql', 'MySQL'), ('postgresql', 'PostgreSQL'), ('sqlite', 'sqlite'), ('oracle', 'oracle')], default='beeswax', help_text='Type of the query server.', max_length=128)),
+                ('query_type', models.SmallIntegerField(choices=[(0, 'HQL'), (1, 'IMPALA')], default=0, help_text='Type of the query.')),
+                ('notify', models.BooleanField(default=False)),
+                ('is_redacted', models.BooleanField(default=False)),
+                ('extra', models.TextField(default='{}')),
+                ('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)),
+                ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+            ],
+            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='100')),
+                ('guid', models.TextField(max_length='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='beeswax', help_text='Application we communicate with.', max_length=128)),
+                ('properties', models.TextField(default='{}')),
+                ('owner', 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',),
+        ),
+    ]

+ 0 - 0
apps/beeswax/src/beeswax/org_migrations/__init__.py


+ 146 - 0
apps/useradmin/src/useradmin/org_migrations/0001_initial.py

@@ -0,0 +1,146 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2020-01-02 06:08
+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.models2
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        ('auth', '0008_alter_user_username_max_length'),
+    ]
+
+    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')),
+                ('is_admin', models.BooleanField(default=False)),
+            ],
+            options={
+                'verbose_name': 'user',
+                'verbose_name_plural': 'users',
+                'abstract': False,
+            },
+            managers=[
+                ('objects', useradmin.models2.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, unique=True)),
+                ('uuid', models.CharField(default=useradmin.models2.uuid_default, max_length=36, unique=True)),
+                ('domain', models.CharField(help_text='The domain name of the organization, e.g. gethue.com', max_length=200, unique=True)),
+                ('customer_id', models.CharField(default=None, max_length=128, null=True, verbose_name='Customer id')),
+                ('is_active', models.BooleanField(default=True)),
+                ('is_multi_user', models.BooleanField(default=True)),
+            ],
+            managers=[
+                ('objects', useradmin.models2.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='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)),
+                ('json_data', models.TextField(default='{}')),
+                ('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='groups',
+            field=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='useradmin.OrganizationGroup', verbose_name='groups'),
+        ),
+        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')]),
+        ),
+    ]

+ 0 - 0
apps/useradmin/src/useradmin/org_migrations/__init__.py


+ 157 - 0
desktop/core/src/desktop/org_migrations/0001_initial.py

@@ -0,0 +1,157 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.20 on 2020-01-02 05:57
+from __future__ import unicode_literals
+
+import desktop.models
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+import django_prometheus.models
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+        ('contenttypes', '0002_remove_content_type_name'),
+        ('useradmin', '__first__'),
+    ]
+
+    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='[]', help_text='JSON-formatted default properties values.')),
+                ('is_default', models.BooleanField(db_index=True, default=False)),
+                ('groups', models.ManyToManyField(db_index=True, db_table='defaultconfiguration_groups', to='useradmin.OrganizationGroup')),
+                ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+            ],
+            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='', max_length=255)),
+                ('description', models.TextField(default='')),
+                ('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='')),
+                ('object_id', models.PositiveIntegerField()),
+                ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')),
+                ('owner', 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.CreateModel(
+            name='Document2',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('name', models.CharField(default='', max_length=255)),
+                ('description', models.TextField(default='')),
+                ('uuid', models.CharField(db_index=True, default=desktop.models.uuid_default, max_length=36)),
+                ('type', models.CharField(db_index=True, default='', help_text='Type of document, e.g. Hive query, Oozie workflow, Search Dashboard...', max_length=32)),
+                ('data', models.TextField(default='{}')),
+                ('extra', models.TextField(default='')),
+                ('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')),
+                ('dependencies', models.ManyToManyField(db_index=True, related_name='dependents', to='desktop.Document2')),
+                ('owner', models.ForeignKey(help_text='Creator.', on_delete=django.db.models.deletion.CASCADE, related_name='doc2_owner', to=settings.AUTH_USER_MODEL, verbose_name='Owner')),
+                ('parent_directory', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='desktop.Document2')),
+            ],
+            options={
+                'ordering': ['-last_modified', 'name'],
+            },
+            bases=(models.Model, django_prometheus.models.ExportModelOperationsMixin('Document2')),
+        ),
+        migrations.CreateModel(
+            name='Document2Permission',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('perms', models.CharField(choices=[('read', 'read'), ('write', 'write'), ('comment', 'comment'), ('link_read', 'link read'), ('link_write', 'link write')], db_index=True, default='read', max_length=10)),
+                ('is_link_on', models.BooleanField(default=False)),
+                ('doc', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='desktop.Document2')),
+                ('groups', models.ManyToManyField(db_index=True, db_table='documentpermission2_groups', to='useradmin.OrganizationGroup')),
+                ('users', models.ManyToManyField(db_index=True, db_table='documentpermission2_users', to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='DocumentPermission',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('perms', models.CharField(choices=[('read', 'read'), ('write', 'write')], default='read', max_length=10)),
+                ('doc', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='desktop.Document')),
+                ('groups', models.ManyToManyField(db_index=True, db_table='documentpermission_groups', to='useradmin.OrganizationGroup')),
+                ('users', models.ManyToManyField(db_index=True, db_table='documentpermission_users', to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+        migrations.CreateModel(
+            name='DocumentTag',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('tag', models.SlugField()),
+                ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+        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)),
+                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+        migrations.AddField(
+            model_name='document',
+            name='tags',
+            field=models.ManyToManyField(db_index=True, to='desktop.DocumentTag'),
+        ),
+        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')]),
+        ),
+    ]

+ 0 - 0
desktop/core/src/desktop/org_migrations/__init__.py