1
# Generated by Django 2.0.3 on 2018-11-18 11:22
2

3 6
import cyborgbackup.main.fields
4 6
import cyborgbackup.main.managers
5 6
import cyborgbackup.main.models.jobs
6 6
from django.conf import settings
7 6
from django.db import migrations, models
8 6
import django.db.models.deletion
9 6
import uuid
10

11

12 6
class Migration(migrations.Migration):
13

14 6
    initial = True
15

16 6
    dependencies = [
17
        ('auth', '0009_alter_user_last_name_max_length'),
18
    ]
19

20 6
    operations = [
21
        migrations.CreateModel(
22
            name='JobDeprecatedStdout',
23
            fields=[
24
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
25
                ('result_stdout_text', models.TextField(editable=False, null=True)),
26
            ],
27
            options={
28
                'db_table': 'main_job',
29
                'managed': False,
30
            },
31
        ),
32
        migrations.CreateModel(
33
            name='User',
34
            fields=[
35
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
36
                ('password', models.CharField(max_length=128, verbose_name='password')),
37
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
38
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
39
                ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')),
40
                ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
41
                ('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')),
42
                ('date_joined', models.DateTimeField(auto_now_add=True, verbose_name='date joined')),
43
                ('is_active', models.BooleanField(default=True, verbose_name='active')),
44
                ('is_agent', models.BooleanField(default=False)),
45
                ('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')),
46
                ('user_permissions', 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')),
47
            ],
48
            options={
49
                'verbose_name': 'user',
50
                'verbose_name_plural': 'users',
51
            },
52
            managers=[
53
                ('objects', cyborgbackup.main.managers.UserManager()),
54
            ],
55
        ),
56
        migrations.CreateModel(
57
            name='ActivityStream',
58
            fields=[
59
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
60
                ('operation', models.CharField(choices=[('create', 'Entity Created'), ('update', 'Entity Updated'), ('delete', 'Entity Deleted'), ('associate', 'Entity Associated with another Entity'), ('disassociate', 'Entity was Disassociated with another Entity')], max_length=13)),
61
                ('timestamp', models.DateTimeField(auto_now_add=True)),
62
                ('changes', models.TextField(blank=True)),
63
                ('object_relationship_type', models.TextField(blank=True)),
64
                ('object1', models.TextField()),
65
                ('object2', models.TextField()),
66
                ('setting', cyborgbackup.main.fields.JSONField(blank=True, default=dict)),
67
                ('actor', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='activity_stream', to=settings.AUTH_USER_MODEL)),
68
            ],
69
            options={
70
                'ordering': ('pk',),
71
            },
72
        ),
73
        migrations.CreateModel(
74
            name='Catalog',
75
            fields=[
76
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
77
                ('created', models.DateTimeField(default=None, editable=False)),
78
                ('modified', models.DateTimeField(default=None, editable=False)),
79
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
80
                ('archive_name', models.CharField(max_length=1024)),
81
                ('mode', models.CharField(max_length=10)),
82
                ('path', models.CharField(max_length=2048)),
83
                ('owner', models.CharField(max_length=1024)),
84
                ('group', models.CharField(max_length=1024)),
85
                ('type', models.CharField(max_length=1)),
86
                ('healthy', models.BooleanField()),
87
                ('size', models.PositiveIntegerField()),
88
                ('mtime', models.DateTimeField()),
89
                ('created_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'catalog', 'model_name': 'catalog', 'app_label': 'main'}(class)s_created+", to=settings.AUTH_USER_MODEL)),
90
            ],
91
            options={
92
                'abstract': False,
93
            },
94
        ),
95
        migrations.CreateModel(
96
            name='ChannelGroup',
97
            fields=[
98
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
99
                ('group', models.CharField(max_length=200, unique=True)),
100
                ('channels', models.TextField()),
101
            ],
102
        ),
103
        migrations.CreateModel(
104
            name='Client',
105
            fields=[
106
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
107
                ('created', models.DateTimeField(default=None, editable=False)),
108
                ('modified', models.DateTimeField(default=None, editable=False)),
109
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
110
                ('hostname', models.CharField(max_length=1024)),
111
                ('enabled', models.BooleanField(default=True)),
112
                ('ip', models.TextField(blank=True, default='')),
113
                ('version', models.CharField(blank=True, default='', max_length=50)),
114
                ('ready', models.BooleanField(default=False)),
115
                ('latest_prepare', models.DateTimeField(default=None, editable=False, null=True)),
116
                ('created_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'client', 'model_name': 'client', 'app_label': 'main'}(class)s_created+", to=settings.AUTH_USER_MODEL)),
117
                ('modified_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'client', 'model_name': 'client', 'app_label': 'main'}(class)s_modified+", to=settings.AUTH_USER_MODEL)),
118
            ],
119
            options={
120
                'abstract': False,
121
            },
122
        ),
123
        migrations.CreateModel(
124
            name='Credential',
125
            fields=[
126
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
127
                ('created', models.DateTimeField(default=None, editable=False)),
128
                ('modified', models.DateTimeField(default=None, editable=False)),
129
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
130
                ('name', models.CharField(max_length=512)),
131
                ('inputs', cyborgbackup.main.fields.CredentialInputField(blank=True, default={}, help_text='Enter inputs using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax.')),
132
                ('created_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'credential', 'model_name': 'credential', 'app_label': 'main'}(class)s_created+", to=settings.AUTH_USER_MODEL)),
133
            ],
134
            options={
135
                'ordering': ('name',),
136
            },
137
        ),
138
        migrations.CreateModel(
139
            name='CredentialType',
140
            fields=[
141
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
142
                ('created', models.DateTimeField(default=None, editable=False)),
143
                ('modified', models.DateTimeField(default=None, editable=False)),
144
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
145
                ('name', models.CharField(max_length=512)),
146
                ('kind', models.CharField(choices=[('ssh', 'Machine'), ('net', 'Network'), ('scm', 'Source Control'), ('cloud', 'Cloud'), ('insights', 'Insights')], max_length=32)),
147
                ('inputs', cyborgbackup.main.fields.CredentialTypeInputField(blank=True, default={}, help_text='Enter inputs using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax.')),
148
                ('injectors', cyborgbackup.main.fields.CredentialTypeInjectorField(blank=True, default={}, help_text='Enter injectors using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax.')),
149
                ('created_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'credentialtype', 'model_name': 'credentialtype', 'app_label': 'main'}(class)s_created+", to=settings.AUTH_USER_MODEL)),
150
                ('modified_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'credentialtype', 'model_name': 'credentialtype', 'app_label': 'main'}(class)s_modified+", to=settings.AUTH_USER_MODEL)),
151
            ],
152
            options={
153
                'ordering': ('kind', 'name'),
154
            },
155
        ),
156
        migrations.CreateModel(
157
            name='CyborgBackupScheduleState',
158
            fields=[
159
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
160
                ('schedule_last_run', models.DateTimeField(auto_now_add=True)),
161
            ],
162
        ),
163
        migrations.CreateModel(
164
            name='Job',
165
            fields=[
166
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
167
                ('created', models.DateTimeField(default=None, editable=False)),
168
                ('modified', models.DateTimeField(default=None, editable=False)),
169
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
170
                ('name', models.CharField(max_length=512)),
171
                ('job_type', models.CharField(choices=[('provision', 'Provision VM'), ('dns', 'Update DNS'), ('monit_observium', 'Monitoring Observium'), ('monit_status', 'Monitoring Status')], default='job', max_length=64)),
172
                ('old_pk', models.PositiveIntegerField(default=None, editable=False, null=True)),
173
                ('verbosity', models.PositiveIntegerField(blank=True, choices=[(0, '0 (Normal)'), (1, '1 (Verbose)'), (2, '2 (More Verbose)'), (3, '3 (Debug)'), (4, '4 (Connection Debug)')], default=0)),
174
                ('extra_vars', models.TextField(blank=True, default='')),
175
                ('timeout', models.IntegerField(blank=True, default=0, help_text='The amount of time (in seconds) to run before the task is canceled.')),
176
                ('emitted_events', models.PositiveIntegerField(default=0, editable=False)),
177
                ('launch_type', models.CharField(choices=[('manual', 'Manual'), ('relaunch', 'Relaunch'), ('callback', 'Callback'), ('scheduled', 'Scheduled'), ('dependency', 'Dependency'), ('workflow', 'Workflow'), ('sync', 'Sync'), ('scm', 'SCM Update')], default='manual', editable=False, max_length=20)),
178
                ('cancel_flag', models.BooleanField(default=False, editable=False)),
179
                ('status', models.CharField(choices=[('new', 'New'), ('pending', 'Pending'), ('waiting', 'Waiting'), ('running', 'Running'), ('successful', 'Successful'), ('failed', 'Failed'), ('error', 'Error'), ('canceled', 'Canceled')], default='new', editable=False, max_length=20)),
180
                ('failed', models.BooleanField(default=False, editable=False)),
181
                ('started', models.DateTimeField(default=None, editable=False, help_text='The date and time the job was queued for starting.', null=True)),
182
                ('finished', models.DateTimeField(default=None, editable=False, help_text='The date and time the job finished execution.', null=True)),
183
                ('elapsed', models.DecimalField(decimal_places=3, editable=False, help_text='Elapsed time in seconds that the job ran.', max_digits=12)),
184
                ('job_args', models.TextField(blank=True, default='', editable=False)),
185
                ('job_cwd', models.CharField(blank=True, default='', editable=False, max_length=1024)),
186
                ('job_env', cyborgbackup.main.fields.JSONField(blank=True, default={}, editable=False)),
187
                ('job_explanation', models.TextField(blank=True, default='', editable=False, help_text="A status field to indicate the state of the job if it wasn't able to run and capture stdout")),
188
                ('start_args', models.TextField(blank=True, default='', editable=False)),
189
                ('result_traceback', models.TextField(blank=True, default='', editable=False)),
190
                ('celery_task_id', models.CharField(blank=True, default='', editable=False, max_length=100)),
191
                ('job_pool', models.IntegerField(blank=True, default=0)),
192
                ('original_size', models.BigIntegerField(default=0)),
193
                ('compressed_size', models.BigIntegerField(default=0)),
194
                ('deduplicated_size', models.BigIntegerField(default=0)),
195
                ('client', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='jobs_client', to='main.Client')),
196
                ('created_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'job', 'model_name': 'job', 'app_label': 'main'}(class)s_created+", to=settings.AUTH_USER_MODEL)),
197
                ('dependent_jobs', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='job_blocked_jobs+', to='main.Job')),
198
                ('modified_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'job', 'model_name': 'job', 'app_label': 'main'}(class)s_modified+", to=settings.AUTH_USER_MODEL)),
199
            ],
200
            bases=(cyborgbackup.main.models.jobs.JobTypeStringMixin, models.Model),
201
        ),
202
        migrations.CreateModel(
203
            name='JobEvent',
204
            fields=[
205
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
206
                ('created', models.DateTimeField(default=None, editable=False)),
207
                ('modified', models.DateTimeField(default=None, editable=False)),
208
                ('uuid', models.CharField(default='', editable=False, max_length=1024)),
209
                ('parent_uuid', models.CharField(default='', editable=False, max_length=1024)),
210
                ('event', models.CharField(choices=[('debug', 'Debug'), ('verbose', 'Verbose'), ('deprecated', 'Deprecated'), ('warning', 'Warning'), ('system_warning', 'System Warning'), ('error', 'Error')], max_length=100)),
211
                ('event_data', cyborgbackup.main.fields.JSONField(blank=True, default={})),
212
                ('failed', models.BooleanField(default=False, editable=False)),
213
                ('changed', models.BooleanField(default=False, editable=False)),
214
                ('task', models.CharField(default='', editable=False, max_length=1024)),
215
                ('counter', models.PositiveIntegerField(default=0, editable=False)),
216
                ('stdout', models.TextField(default='', editable=False)),
217
                ('verbosity', models.PositiveIntegerField(default=0, editable=False)),
218
                ('start_line', models.PositiveIntegerField(default=0, editable=False)),
219
                ('end_line', models.PositiveIntegerField(default=0, editable=False)),
220
                ('job', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, related_name='job_events', to='main.Job')),
221
            ],
222
            options={
223
                'ordering': ('pk',),
224
            },
225
        ),
226
        migrations.CreateModel(
227
            name='Policy',
228
            fields=[
229
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
230
                ('created', models.DateTimeField(default=None, editable=False)),
231
                ('modified', models.DateTimeField(default=None, editable=False)),
232
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
233
                ('name', models.CharField(max_length=1024)),
234
                ('policy_type', models.CharField(choices=[('rootfs', 'Root FileSystem'), ('vm', 'Virtual Machine'), ('mysql', 'MySQL'), ('postgresql', 'PostgreSQL'), ('piped', 'Piped Backup'), ('config', 'Only /etc'), ('mail', 'Only mail directory')], default='rootfs', max_length=20)),
235
                ('enabled', models.BooleanField(default=True)),
236
                ('extra_vars', models.TextField(blank=True, default='')),
237
                ('mode_pull', models.BooleanField(default=False)),
238
                ('keep_hourly', models.IntegerField(default=None, null=True)),
239
                ('keep_daily', models.IntegerField(default=None, null=True)),
240
                ('keep_weekly', models.IntegerField(default=None, null=True)),
241
                ('keep_monthly', models.IntegerField(default=None, null=True)),
242
                ('keep_yearly', models.IntegerField(default=None, null=True)),
243
                ('next_run', models.DateTimeField(default=None, editable=False, help_text='The next time that the scheduled action will run.', null=True)),
244
                ('clients', models.ManyToManyField(to='main.Client')),
245
                ('created_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'policy', 'model_name': 'policy', 'app_label': 'main'}(class)s_created+", to=settings.AUTH_USER_MODEL)),
246
                ('modified_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'policy', 'model_name': 'policy', 'app_label': 'main'}(class)s_modified+", to=settings.AUTH_USER_MODEL)),
247
            ],
248
            options={
249
                'abstract': False,
250
            },
251
        ),
252
        migrations.CreateModel(
253
            name='Repository',
254
            fields=[
255
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
256
                ('created', models.DateTimeField(default=None, editable=False)),
257
                ('modified', models.DateTimeField(default=None, editable=False)),
258
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
259
                ('name', models.CharField(max_length=1024)),
260
                ('path', models.CharField(max_length=1024)),
261
                ('enabled', models.BooleanField(default=True)),
262
                ('repository_key', models.CharField(max_length=1024)),
263
                ('ready', models.BooleanField(default=False)),
264
                ('original_size', models.BigIntegerField(default=0)),
265
                ('compressed_size', models.BigIntegerField(default=0)),
266
                ('deduplicated_size', models.BigIntegerField(default=0)),
267
                ('latest_prepare', models.DateTimeField(default=None, editable=False, null=True)),
268
                ('created_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'repository', 'model_name': 'repository', 'app_label': 'main'}(class)s_created+", to=settings.AUTH_USER_MODEL)),
269
                ('modified_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'repository', 'model_name': 'repository', 'app_label': 'main'}(class)s_modified+", to=settings.AUTH_USER_MODEL)),
270
            ],
271
            options={
272
                'abstract': False,
273
            },
274
        ),
275
        migrations.CreateModel(
276
            name='Schedule',
277
            fields=[
278
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
279
                ('created', models.DateTimeField(default=None, editable=False)),
280
                ('modified', models.DateTimeField(default=None, editable=False)),
281
                ('uuid', models.UUIDField(default=uuid.uuid4, editable=False)),
282
                ('name', models.CharField(max_length=1024)),
283
                ('crontab', models.CharField(max_length=1024)),
284
                ('enabled', models.BooleanField(default=True)),
285
                ('created_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'schedule', 'model_name': 'schedule', 'app_label': 'main'}(class)s_created+", to=settings.AUTH_USER_MODEL)),
286
                ('modified_by', models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'schedule', 'model_name': 'schedule', 'app_label': 'main'}(class)s_modified+", to=settings.AUTH_USER_MODEL)),
287
            ],
288
            options={
289
                'abstract': False,
290
            },
291
        ),
292
        migrations.CreateModel(
293
            name='Setting',
294
            fields=[
295
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
296
                ('created', models.DateTimeField(default=None, editable=False)),
297
                ('modified', models.DateTimeField(default=None, editable=False)),
298
                ('key', models.CharField(max_length=255)),
299
                ('value', models.TextField(null=True)),
300
                ('setting_type', models.CharField(choices=[('boolean', 'Boolean'), ('integer', 'Integer'), ('string', 'String'), ('privatekey', 'Scheduled'), ('password', 'Dependency'), ('workflow', 'Workflow')], default='manual', editable=False, max_length=20)),
301
            ],
302
            options={
303
                'abstract': False,
304
            },
305
        ),
306
        migrations.AddField(
307
            model_name='policy',
308
            name='repository',
309
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='policies', to='main.Repository'),
310
        ),
311
        migrations.AddField(
312
            model_name='policy',
313
            name='schedule',
314
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='policies', to='main.Schedule'),
315
        ),
316
        migrations.AddField(
317
            model_name='job',
318
            name='policy',
319
            field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='jobs', to='main.Policy'),
320
        ),
321
        migrations.AddField(
322
            model_name='job',
323
            name='repository',
324
            field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='jobs_repository', to='main.Repository'),
325
        ),
326
        migrations.AddField(
327
            model_name='credential',
328
            name='credential_type',
329
            field=models.ForeignKey(help_text='Specify the type of credential you want to create. Refer to the Ansible Tower documentation for details on each type.', on_delete=django.db.models.deletion.CASCADE, related_name='credentials', to='main.CredentialType'),
330
        ),
331
        migrations.AddField(
332
            model_name='credential',
333
            name='modified_by',
334
            field=models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'credential', 'model_name': 'credential', 'app_label': 'main'}(class)s_modified+", to=settings.AUTH_USER_MODEL),
335
        ),
336
        migrations.AddField(
337
            model_name='catalog',
338
            name='job',
339
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='catalogs', to='main.Job'),
340
        ),
341
        migrations.AddField(
342
            model_name='catalog',
343
            name='modified_by',
344
            field=models.ForeignKey(default=None, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="{'class': 'catalog', 'model_name': 'catalog', 'app_label': 'main'}(class)s_modified+", to=settings.AUTH_USER_MODEL),
345
        ),
346
        migrations.AddField(
347
            model_name='activitystream',
348
            name='client',
349
            field=models.ManyToManyField(blank=True, to='main.Client'),
350
        ),
351
        migrations.AddField(
352
            model_name='activitystream',
353
            name='job',
354
            field=models.ManyToManyField(blank=True, to='main.Job'),
355
        ),
356
        migrations.AddField(
357
            model_name='activitystream',
358
            name='policy',
359
            field=models.ManyToManyField(blank=True, to='main.Policy'),
360
        ),
361
        migrations.AddField(
362
            model_name='activitystream',
363
            name='repository',
364
            field=models.ManyToManyField(blank=True, to='main.Repository'),
365
        ),
366
        migrations.AddField(
367
            model_name='activitystream',
368
            name='schedule',
369
            field=models.ManyToManyField(blank=True, to='main.Schedule'),
370
        ),
371
        migrations.AddField(
372
            model_name='activitystream',
373
            name='user',
374
            field=models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL),
375
        ),
376
        migrations.AlterIndexTogether(
377
            name='jobevent',
378
            index_together={('job', 'end_line'), ('job', 'event'), ('job', 'start_line'), ('job', 'uuid'), ('job', 'parent_uuid')},
379
        ),
380
        migrations.AlterUniqueTogether(
381
            name='credentialtype',
382
            unique_together={('name', 'kind')},
383
        ),
384
        migrations.AlterUniqueTogether(
385
            name='credential',
386
            unique_together={('name', 'credential_type')},
387
        ),
388
    ]

Read our documentation on viewing source code .

Loading