示例#1
0
class Exporter(models.Model):
    job = models.CharField(max_length=128,
                           help_text="Exporter name. Example node, jmx, app")
    port = models.IntegerField(help_text="Port Exporter is running on")
    path = models.CharField(max_length=128,
                            blank=True,
                            help_text="Exporter path. Defaults to /metrics")
    scheme = models.CharField(max_length=5,
                              choices=(("http", "http"), ("https", "https")),
                              default="http",
                              help_text="Scrape exporter over http or https")

    project = models.ForeignKey("Project", on_delete=models.CASCADE)
    enabled = models.BooleanField(default=True)

    class Meta:
        ordering = ['job', 'port']
        unique_together = ((
            'job',
            'port',
            'project',
        ), )

    def __str__(self):
        return '{}:{}:{} ({})'.format(self.job, self.port, self.path,
                                      self.project)

    def get_absolute_url(self):
        return reverse('project-detail', kwargs={'pk': self.project.pk})
示例#2
0
class DefaultExporter(models.Model):
    job = models.CharField(max_length=128)
    port = models.IntegerField()
    path = models.CharField(max_length=128, blank=True)

    class Meta:
        ordering = ['job', 'port']
        unique_together = (('job', 'port', 'path'), )

    def __str__(self):
        return '{}:{}{}'.format(self.job, self.port, self.path or '/metrics')
示例#3
0
class DefaultExporter(models.Model):
    job = models.CharField(max_length=128)
    port = models.IntegerField()
    path = models.CharField(max_length=128, blank=True)

    class Meta:
        ordering = ["job", "port"]
        unique_together = (("job", "port", "path"), )

    def __str__(self):
        return "{}:{}{}".format(self.job, self.port, self.path or "/metrics")
示例#4
0
class Prometheus(models.Model):
    shard = models.ForeignKey('Shard', on_delete=models.CASCADE)
    host = models.CharField(max_length=128)
    port = models.IntegerField()

    def __str__(self):
        return '{}:{}'.format(self.host, self.port)

    class Meta:
        ordering = ['shard', 'host']
        unique_together = (('host', 'port',),)
        verbose_name_plural = 'prometheis'
示例#5
0
class Exporter(models.Model):
    job = models.CharField(max_length=128)
    port = models.IntegerField()
    path = models.CharField(max_length=128, blank=True)
    project = models.ForeignKey('Project', on_delete=models.CASCADE)
    enabled = models.BooleanField(default=True)

    class Meta:
        ordering = ['job', 'port']
        unique_together = (('job', 'port', 'project',),)

    def __str__(self):
        return '{}:{}:{} ({})'.format(self.job, self.port, self.path, self.project)

    def get_absolute_url(self):
        return reverse('project-detail', kwargs={'pk': self.project.pk})
示例#6
0
class BaseExporter(models.Model):
    job = models.CharField(max_length=128,
                           help_text="Exporter name. Example node, jmx, app")
    port = models.IntegerField(help_text="Port Exporter is running on")
    path = models.CharField(max_length=128,
                            blank=True,
                            help_text="Exporter path. Defaults to /metrics")
    scheme = models.CharField(
        max_length=5,
        choices=(("http", "http"), ("https", "https")),
        default="http",
        help_text="Scrape exporter over http or https",
    )

    class Meta:
        abstract = True
示例#7
0
class Migration(migrations.Migration):

    replaces = [('promgen', '0001_initial'), ('promgen', '0002_audit'),
                ('promgen', '0003_setting'),
                ('promgen', '0004_auto_20161019_0755'),
                ('promgen', '0005_sender'),
                ('promgen', '0006_auto_20161019_1214'),
                ('promgen', '0007_auto_20161020_0253'),
                ('promgen', '0008_auto_20161020_0528'),
                ('promgen', '0009_auto_20161021_0640'),
                ('promgen', '0010_auto_20161025_0034'),
                ('promgen', '0011_auto_20161025_0737'),
                ('promgen', '0012_auto_20161027_0306'),
                ('promgen', '0013_auto_20161027_0307'),
                ('promgen', '0014_stat'), ('promgen', '0015_delete_stat'),
                ('promgen', '0016_auto_20161121_0714'),
                ('promgen', '0017_auto_20161215_2352'),
                ('promgen', '0018_rule_enabled'), ('promgen', '0019_url'),
                ('promgen', '0020_auto_20161226_0337'),
                ('promgen', '0021_auto_20161228_0049'),
                ('promgen', '0022_auto_20170116_0824'),
                ('promgen', '0023_shard'),
                ('promgen', '0024_auto_20170220_0324'),
                ('promgen', '0025_shard_url'),
                ('promgen', '0026_auto_20170315_0344'),
                ('promgen', '0027_prometheus_server'),
                ('promgen', '0028_url_sort_fields'),
                ('promgen', '0029_auto_20170406_0236'),
                ('promgen', '0030_exporter_enabled'),
                ('promgen', '0031_sender_to_notification'),
                ('promgen', '0032_audit_diff'), ('promgen', '0033_diff_old'),
                ('promgen', '0034_auto_20170622_0518'),
                ('promgen', '0035_rule_parent'),
                ('promgen', '0036_auto_20170626_0231'),
                ('promgen', '0037_shard_proxy'),
                ('promgen', '0038_audit_user'),
                ('promgen', '0039_auto_20170725_0257'),
                ('promgen', '0040_default_farm'),
                ('promgen', '0041_sender_owner'),
                ('promgen', '0042_description_field'),
                ('promgen', '0043_rule_description'),
                ('promgen', '0044_common-rules')]

    initial = True

    dependencies = [
        ('sites', '0002_alter_domain_unique'),
        ('contenttypes', '0002_remove_content_type_name'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Audit',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('body', models.TextField()),
                ('created', models.DateTimeField()),
                ('data', models.TextField(blank=True)),
                ('old', models.TextField(blank=True)),
                ('object_id', models.PositiveIntegerField(default=0)),
                ('content_type',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to='contenttypes.ContentType')),
                ('user',
                 models.ForeignKey(
                     default=None,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Exporter',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('job', models.CharField(max_length=128)),
                ('port', models.IntegerField()),
                ('path', models.CharField(blank=True, max_length=128)),
                ('enabled', models.BooleanField(default=True)),
            ],
            options={
                'ordering': ['job', 'port'],
            },
        ),
        migrations.CreateModel(
            name='Farm',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128)),
                ('source', models.CharField(max_length=128)),
            ],
            options={
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='Host',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128)),
                ('farm',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='promgen.Farm')),
            ],
            options={
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='Project',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128, unique=True)),
                ('description', models.TextField(blank=True)),
                ('farm',
                 models.ForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     to='promgen.Farm')),
            ],
            options={
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='Prometheus',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('host', models.CharField(max_length=128)),
                ('port', models.IntegerField()),
            ],
            options={
                'verbose_name_plural': 'prometheis',
                'ordering': ['shard', 'host'],
            },
        ),
        migrations.CreateModel(
            name='Rule',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(
                     max_length=128,
                     unique=True,
                     validators=[
                         django.core.validators.RegexValidator(
                             '^[0-9a-zA-Z_]*$',
                             'Only alphanumeric characters are allowed.')
                     ])),
                ('clause', models.TextField(help_text='Prometheus query')),
                ('duration',
                 models.CharField(
                     help_text=
                     'Duration field with postfix. Example 30s, 5m, 1d',
                     max_length=128,
                     validators=[promgen.validators.prometheusduration])),
                ('enabled', models.BooleanField(default=True)),
                ('object_id', models.PositiveIntegerField()),
                ('description', models.TextField(blank=True)),
                ('content_type',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='contenttypes.ContentType')),
                ('parent',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='overrides',
                     to='promgen.Rule')),
            ],
            options={
                'ordering': ['content_type', 'object_id', 'name'],
            },
        ),
        migrations.CreateModel(
            name='RuleAnnotation',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128)),
                ('value', models.TextField()),
                ('rule',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='promgen.Rule')),
            ],
        ),
        migrations.CreateModel(
            name='RuleLabel',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128)),
                ('value', models.CharField(max_length=128)),
                ('rule',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='promgen.Rule')),
            ],
        ),
        migrations.CreateModel(
            name='Sender',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('sender', models.CharField(max_length=128)),
                ('value', models.CharField(max_length=128)),
                ('alias', models.CharField(blank=True, max_length=128)),
                ('object_id', models.PositiveIntegerField()),
                ('content_type',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='contenttypes.ContentType')),
                ('owner',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Service',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128, unique=True)),
                ('description', models.TextField(blank=True)),
            ],
            options={
                'ordering': ['shard', 'name'],
            },
        ),
        migrations.CreateModel(
            name='Shard',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=128, unique=True)),
                ('url', models.URLField(max_length=256)),
                ('proxy', models.BooleanField(default=False)),
            ],
            options={
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='URL',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('url', models.URLField(max_length=256)),
                ('project',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='promgen.Project')),
            ],
            options={
                'ordering': ['project__service', 'project', 'url'],
            },
        ),
        migrations.CreateModel(
            name='Site',
            fields=[],
            options={
                'indexes': [],
                'proxy': True,
            },
            bases=('sites.site', ),
            managers=[
                ('objects', django.contrib.sites.models.SiteManager()),
            ],
        ),
        migrations.AddField(
            model_name='service',
            name='shard',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='promgen.Shard'),
        ),
        migrations.AddField(
            model_name='prometheus',
            name='shard',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='promgen.Shard'),
        ),
        migrations.AddField(
            model_name='project',
            name='service',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='promgen.Service'),
        ),
        migrations.AlterUniqueTogether(
            name='farm',
            unique_together=set([('name', 'source')]),
        ),
        migrations.AddField(
            model_name='exporter',
            name='project',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='promgen.Project'),
        ),
        migrations.AlterUniqueTogether(
            name='prometheus',
            unique_together=set([('host', 'port')]),
        ),
        migrations.AlterUniqueTogether(
            name='host',
            unique_together=set([('name', 'farm')]),
        ),
        migrations.AlterUniqueTogether(
            name='exporter',
            unique_together=set([('job', 'port', 'project')]),
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('sites', '0002_alter_domain_unique'),
    ]

    operations = [
        migrations.CreateModel(
            name='SiteCustomization',
            fields=[
                ('site', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='sites.site', verbose_name='site')),
                ('is_open_for_signup', models.BooleanField(default=True, verbose_name='is open for signup')),
                ('tagline', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, verbose_name='tagline')),
                ('tagline_fr', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_en', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_de', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_pt', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_es', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_ja', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_ar', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_ar_dz', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_zh_hans', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_br', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('description', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, verbose_name='description')),
                ('description_fr', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_en', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_de', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_pt', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_es', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_ja', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_ar', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_ar_dz', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_zh_hans', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_br', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
            ],
            options={
                'verbose_name': 'site customization',
                'verbose_name_plural': 'site customizations',
                'ordering': ['site'],
            },
        ),
        migrations.CreateModel(
            name='HistoricalSiteCustomization',
            fields=[
                ('is_open_for_signup', models.BooleanField(default=True, verbose_name='is open for signup')),
                ('tagline', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, verbose_name='tagline')),
                ('tagline_fr', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_en', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_de', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_pt', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_es', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_ja', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_ar', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_ar_dz', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_zh_hans', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('tagline_br', models.CharField(blank=True, default='A few words to describe this very website.', help_text='A few words to describe this very website.', max_length=255, null=True, verbose_name='tagline')),
                ('description', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, verbose_name='description')),
                ('description_fr', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_en', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_de', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_pt', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_es', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_ja', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_ar', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_ar_dz', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_zh_hans', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('description_br', models.TextField(blank=True, default='A short text to describe this very website.', help_text='A short text to describe this very website.', max_length=2048, null=True, verbose_name='description')),
                ('history_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('history_date', models.DateTimeField()),
                ('history_change_reason', models.CharField(max_length=100, null=True)),
                ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
                ('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
                ('site', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='sites.site', verbose_name='site')),
            ],
            options={
                'verbose_name': 'historical site customization',
                'ordering': ('-history_date', '-history_id'),
                'get_latest_by': 'history_date',
            },
            bases=(simple_history.models.HistoricalChanges, models.Model),
        ),
        migrations.CreateModel(
            name='HistoricalSite',
            fields=[
                ('id', models.IntegerField(auto_created=True, blank=True, db_index=True, verbose_name='ID')),
                ('domain', models.CharField(db_index=True, max_length=100, validators=[django.contrib.sites.models._simple_domain_name_validator], verbose_name='domain name')),
                ('name', models.CharField(max_length=50, verbose_name='display name')),
                ('history_id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('history_date', models.DateTimeField()),
                ('history_change_reason', models.CharField(max_length=100, null=True)),
                ('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
                ('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'historical site',
                'ordering': ('-history_date', '-history_id'),
                'get_latest_by': 'history_date',
            },
            bases=(simple_history.models.HistoricalChanges, models.Model),
        ),
    ]
示例#9
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('sites', '0002_alter_domain_unique'),
        ('pulse', '0005_auto_20180422_1602'),
    ]

    operations = [
        migrations.CreateModel(
            name='MenuItem',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('icon', models.SlugField(blank=True, choices=[('fa fa-home', 'Home'), ('fa fa-pencil-square-o', 'Posts'), ('fa fa-book', 'Notes'), ('fa fa-tags', 'Topics'), ('fa fa-code-fork', 'Channels'), ('fa fa-file-image-o', 'Media'), ('fa fa-cogs', 'Gears')], max_length=510)),
                ('title', models.CharField(default='Untitled', max_length=510)),
                ('description', models.CharField(blank=True, help_text='Optional subtitle', max_length=510)),
                ('slug', models.SlugField(blank=True, max_length=510)),
                ('url', models.CharField(blank=True, max_length=510)),
                ('weight', models.IntegerField(default=0)),
                ('date_created', models.DateTimeField(auto_now_add=True)),
                ('date_updated', models.DateTimeField(auto_now=True)),
                ('page', models.ForeignKey(blank=True, default=replica.pulse.models.DefaultEntry, null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='pulse.Entry')),
            ],
            options={
                'verbose_name': 'Menu Item',
                'verbose_name_plural': 'Menu Items',
                'db_table': 'r_MenuItem',
                'ordering': ('weight',),
            },
        ),
        migrations.CreateModel(
            name='MenuPosition',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('title', models.CharField(default='Untitled', max_length=510)),
                ('slug', models.SlugField(max_length=510)),
                ('date_created', models.DateTimeField(auto_now_add=True)),
                ('date_updated', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Menu',
                'verbose_name_plural': 'Menus',
                'db_table': 'r_MenuPosition',
                'ordering': ('-title',),
            },
        ),
        migrations.CreateModel(
            name='Plugin',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('name', models.CharField(blank=True, max_length=510)),
                ('slug', models.SlugField(max_length=510)),
                ('author', models.CharField(blank=True, max_length=510)),
                ('is_enabled', models.BooleanField(choices=[(True, 'Enabled'), (False, 'Disabled')], default=True, help_text='Check to enable plugin')),
                ('date_created', models.DateTimeField(auto_now_add=True)),
                ('date_updated', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Plugin',
                'verbose_name_plural': 'Plugins',
                'db_table': 'r_Plugin',
                'ordering': ('slug', 'date_updated'),
            },
        ),
        migrations.CreateModel(
            name='SiteSettings',
            fields=[
                ('site_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='sites.Site')),
                ('is_enabled', models.BooleanField(choices=[(True, 'Enabled'), (False, 'Disabled')], default=True, help_text='Is site enabled?')),
                ('password', models.CharField(blank=True, max_length=128)),
                ('secret_token', models.CharField(blank=True, max_length=12)),
                ('view_settings', models.TextField(default='{}')),
                ('author', models.CharField(blank=True, max_length=510)),
                ('description', models.TextField(blank=True, help_text='Site Description', null=True)),
                ('summary', models.TextField(blank=True, help_text='Summary')),
                ('summary_html', models.TextField(blank=True, editable=False)),
                ('date_created', models.DateTimeField(auto_now_add=True)),
                ('date_updated', models.DateTimeField(auto_now=True)),
                ('featured', models.ForeignKey(blank=True, help_text='Featured Image', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='featured', to='pulse.Media')),
                ('logo', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='logo', to='pulse.Media')),
            ],
            options={
                'verbose_name': 'Site Settings',
                'verbose_name_plural': 'Site Settings',
                'db_table': 'r_SiteSettings',
            },
            bases=('sites.site',),
            managers=[
                ('objects', django.contrib.sites.models.SiteManager()),
            ],
        ),
        migrations.AddField(
            model_name='menuitem',
            name='position',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cms.MenuPosition'),
        ),
    ]