0001-general-move-logging-parameters-to-its-own-model-271.patch
passerelle/apps/actesweb/migrations/0002_remove_actesweb_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('actesweb', '0001_initial'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='actesweb', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/airquality/migrations/0003_remove_airquality_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('airquality', '0002_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='airquality', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/api_particulier/migrations/0002_auto_20181118_0807.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('api_particulier', '0001_initial'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='apiparticulier', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/arcgis/migrations/0004_remove_arcgis_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('arcgis', '0003_auto_20181102_1550'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='arcgis', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/arpege_ecp/migrations/0002_remove_arpegeecp_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('arpege_ecp', '0001_initial'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='arpegeecp', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/atos_genesys/migrations/0002_remove_resource_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('atos_genesys', '0001_initial'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='resource', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/base_adresse/migrations/0013_remove_baseadresse_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('base_adresse', '0012_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='baseadresse', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/bdp/migrations/0006_remove_bdp_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('bdp', '0005_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='bdp', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/choosit/migrations/0008_auto_20181118_0807.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('choosit', '0007_auto_20180814_1048'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='choositsmsgateway', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/cityweb/migrations/0003_remove_cityweb_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('cityweb', '0002_auto_20170920_1002'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='cityweb', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/clicrdv/migrations/0002_remove_clicrdv_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('clicrdv', '0001_squashed_0006_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='clicrdv', |
|
17 |
name=b'log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/cmis/migrations/0003_auto_20181118_0807.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('cmis', '0002_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='cmisconnector', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/csvdatasource/migrations/0013_auto_20181118_0807.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('csvdatasource', '0012_auto_20180912_0215'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='csvdatasource', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/family/migrations/0009_remove_genericfamily_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('family', '0008_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='genericfamily', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/feeds/migrations/0003_remove_feed_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('feeds', '0002_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='feed', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/gdc/migrations/0006_remove_gdc_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('gdc', '0005_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='gdc', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/jsondatastore/migrations/0005_remove_jsondatastore_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('jsondatastore', '0004_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='jsondatastore', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/mobyt/migrations/0007_auto_20181118_0807.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('mobyt', '0006_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='mobytsmsgateway', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/okina/migrations/0003_remove_okina_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('okina', '0002_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='okina', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/opengis/migrations/0006_auto_20181118_0807.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('opengis', '0005_auto_20180227_1531'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='opengis', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/orange/migrations/0006_remove_orangesmsgateway_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('orange', '0005_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='orangesmsgateway', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/ovh/migrations/0007_auto_20181118_0807.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('ovh', '0006_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='ovhsmsgateway', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/oxyd/migrations/0007_auto_20181118_0807.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('oxyd', '0006_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='oxydsmsgateway', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/pastell/migrations/0006_remove_pastell_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('pastell', '0005_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='pastell', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/apps/solis/migrations/0005_remove_solis_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('solis', '0004_auto_20171220_1058'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='solis', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/base/migrations/0007_loggingparameters.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 13:16 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations, models |
|
6 |
import django.db.models.deletion |
|
7 | ||
8 | ||
9 |
class Migration(migrations.Migration): |
|
10 | ||
11 |
dependencies = [ |
|
12 |
('contenttypes', '0002_remove_content_type_name'), |
|
13 |
('base', '0006_resourcestatus'), |
|
14 |
] |
|
15 | ||
16 |
operations = [ |
|
17 |
migrations.CreateModel( |
|
18 |
name='LoggingParameters', |
|
19 |
fields=[ |
|
20 |
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
21 |
('resource_pk', models.PositiveIntegerField()), |
|
22 |
('log_level', models.CharField(verbose_name='Log Level', choices=[(b'DEBUG', b'DEBUG'), (b'INFO', b'INFO'), (b'WARNING', b'WARNING'), (b'ERROR', b'ERROR'), (b'CRITICAL', b'CRITICAL')], default=b'INFO', max_length=10, verbose_name='Log Level')), |
|
23 |
('resource_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')), |
|
24 |
], |
|
25 |
), |
|
26 |
] |
passerelle/base/migrations/0008_auto_20181118_0717.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 13:17 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
def set_logging_parameters(apps, schema_editor): |
|
9 |
LoggingParameters = apps.get_model('base', 'LoggingParameters') |
|
10 |
ContentType = apps.get_model('contenttypes', 'ContentType') |
|
11 |
for model in apps.get_models(): |
|
12 |
if not hasattr(model, 'log_level'): |
|
13 |
continue |
|
14 |
content_type = ContentType.objects.get_for_model(model) |
|
15 |
for instance in model.objects.all(): |
|
16 |
parameters, created = LoggingParameters.objects.get_or_create( |
|
17 |
resource_type=content_type, |
|
18 |
resource_pk=instance.id) |
|
19 |
parameters.log_level = instance.log_level |
|
20 |
if parameters.log_level == 'NOTSET': |
|
21 |
parameters.log_level = 'INFO' |
|
22 |
parameters.save() |
|
23 | ||
24 | ||
25 |
class Migration(migrations.Migration): |
|
26 | ||
27 |
dependencies = [ |
|
28 |
('base', '0007_loggingparameters'), |
|
29 |
] |
|
30 | ||
31 |
operations = [ |
|
32 |
migrations.RunPython(set_logging_parameters, migrations.RunPython.noop), |
|
33 |
] |
passerelle/base/migrations/0009_auto_20181118_0807.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('contenttypes', '0002_remove_content_type_name'), |
|
12 |
('base', '0008_auto_20181118_0717'), |
|
13 |
] |
|
14 | ||
15 |
operations = [ |
|
16 |
migrations.AlterUniqueTogether( |
|
17 |
name='loggingparameters', |
|
18 |
unique_together=set([('resource_type', 'resource_pk')]), |
|
19 |
), |
|
20 |
] |
passerelle/base/models.py | ||
---|---|---|
117 | 117 |
description = models.TextField(verbose_name=_('Description')) |
118 | 118 |
slug = models.SlugField(unique=True) |
119 | 119 |
users = models.ManyToManyField(ApiUser, blank=True) |
120 |
log_level = models.CharField( |
|
121 |
_('Log Level'), max_length=10, |
|
122 |
choices = ( |
|
123 |
('NOTSET','NOTSET'), |
|
124 |
('DEBUG','DEBUG'), |
|
125 |
('INFO','INFO'), |
|
126 |
('WARNING','WARNING'), |
|
127 |
('ERROR','ERROR'), |
|
128 |
('CRITICAL','CRITICAL'), |
|
129 |
), |
|
130 |
default='INFO' |
|
131 |
) |
|
132 | ||
133 | 120 |
objects = InheritanceManager() |
134 | 121 | |
135 | 122 |
parameters = None |
... | ... | |
166 | 153 |
def requests(self): |
167 | 154 |
return passerelle.utils.Request(resource=self, logger=self.logger) |
168 | 155 | |
156 |
@property |
|
157 |
def log_level(self): |
|
158 |
resource_type = ContentType.objects.get_for_model(self) |
|
159 |
try: |
|
160 |
return LoggingParameters.objects.get( |
|
161 |
resource_type=resource_type, |
|
162 |
resource_pk=self.id).log_level |
|
163 |
except LoggingParameters.DoesNotExist: |
|
164 |
return 'INFO' |
|
165 | ||
166 |
def set_log_level(self, value): |
|
167 |
resource_type = ContentType.objects.get_for_model(self) |
|
168 |
parameters, created = LoggingParameters.objects.get_or_create( |
|
169 |
resource_type=resource_type, resource_pk=self.pk) |
|
170 |
parameters.log_level = value |
|
171 |
parameters.save() |
|
172 | ||
169 | 173 |
def soap_client(self, **kwargs): |
170 | 174 |
return passerelle.utils.SOAPClient(resource=self, **kwargs) |
171 | 175 | |
... | ... | |
328 | 332 |
'title': d['title'], |
329 | 333 |
'slug': d['slug'], |
330 | 334 |
'description': d['description'], |
331 |
'log_level': d['log_level'], |
|
332 | 335 |
} |
333 | 336 |
init_kwargs.update(kwargs) |
334 | 337 |
if instance: |
... | ... | |
362 | 365 |
else: |
363 | 366 |
raise Exception('import_json_real: field %s of ressource class ' |
364 | 367 |
'%s is unsupported' % (field, cls)) |
365 | ||
366 | 368 |
instance.save() |
369 |
if 'log_level' in d: |
|
370 |
instance.set_log_level(d['log_level']) |
|
367 | 371 |
return instance |
368 | 372 | |
369 | 373 |
def clean_logs(self): |
... | ... | |
441 | 445 |
return '%s (on %s <%s>) (for %s)' % (self.codename, self.resource_type, self.resource_pk, self.apiuser) |
442 | 446 | |
443 | 447 | |
448 |
class LoggingParameters(models.Model): |
|
449 |
resource_type = models.ForeignKey(ContentType) |
|
450 |
resource_pk = models.PositiveIntegerField() |
|
451 |
resource = fields.GenericForeignKey('resource_type', 'resource_pk') |
|
452 |
log_level = models.CharField( |
|
453 |
verbose_name_('Log Level'), |
|
454 |
max_length=10, |
|
455 |
choices = ( |
|
456 |
('DEBUG', 'DEBUG'), |
|
457 |
('INFO', 'INFO'), |
|
458 |
('WARNING', 'WARNING'), |
|
459 |
('ERROR', 'ERROR'), |
|
460 |
('CRITICAL', 'CRITICAL'), |
|
461 |
), |
|
462 |
default='INFO' |
|
463 |
) |
|
464 | ||
465 |
class Meta: |
|
466 |
unique_together = (('resource_type', 'resource_pk')) |
|
467 | ||
468 | ||
469 | ||
444 | 470 |
class ResourceLog(models.Model): |
445 | 471 |
timestamp = models.DateTimeField(auto_now_add=True) |
446 | 472 |
appname = models.CharField(max_length=128, verbose_name='appname', null=True) |
passerelle/base/templatetags/passerelle.py | ||
---|---|---|
25 | 25 |
context['trusted_services'] = get_trusted_services() |
26 | 26 |
return context |
27 | 27 | |
28 |
@register.filter(name='resource_type') |
|
29 |
def as_resource_type(resource): |
|
30 |
return ContentType.objects.get_for_model(resource).id |
|
28 | 31 | |
29 | 32 |
@register.inclusion_tag('passerelle/includes/resource-logs-table.html', takes_context=True) |
30 | 33 |
def resource_logs_table(context, resource): |
passerelle/base/urls.py | ||
---|---|---|
1 | 1 |
from django.conf.urls import url |
2 | 2 | |
3 | 3 |
from .views import ApiUserCreateView, ApiUserUpdateView, ApiUserDeleteView, \ |
4 |
ApiUserListView, AccessRightDeleteView, AccessRightCreateView |
|
4 |
ApiUserListView, AccessRightDeleteView, AccessRightCreateView, \ |
|
5 |
LoggingParametersUpdateView |
|
5 | 6 | |
6 | 7 |
access_urlpatterns = [ |
7 | 8 |
url(r'^$', ApiUserListView.as_view(), name='apiuser-list'), |
... | ... | |
12 | 13 |
url(r'^(?P<pk>[\w,-]+)/remove$', AccessRightDeleteView.as_view(), |
13 | 14 |
name='access-right-remove'), |
14 | 15 |
url(r'^accessright/add/(?P<resource_type>[\w,-]+)/(?P<resource_pk>[\w,-]+)/(?P<codename>[\w,-]+)/', |
15 |
AccessRightCreateView.as_view(), name='access-right-add') |
|
16 |
AccessRightCreateView.as_view(), name='access-right-add'), |
|
17 |
url(r'logging/parameters/(?P<resource_type>[\w,-]+)/(?P<resource_pk>[\w,-]+)/$', |
|
18 |
LoggingParametersUpdateView.as_view(), name='logging-parameters') |
|
16 | 19 |
] |
passerelle/base/views.py | ||
---|---|---|
1 |
from django.contrib.contenttypes.models import ContentType |
|
1 | 2 |
from django.core.urlresolvers import reverse |
2 | 3 |
from django.core.exceptions import ObjectDoesNotExist, PermissionDenied |
4 |
from django.forms import models as model_forms |
|
3 | 5 |
from django.views.generic import * |
4 | 6 |
from django.http import Http404 |
5 | 7 | |
6 |
from .models import ApiUser, AccessRight |
|
8 |
from .models import ApiUser, AccessRight, LoggingParameters
|
|
7 | 9 |
from .forms import ApiUserForm, AccessRightForm |
8 | 10 |
from ..utils import get_trusted_services |
9 | 11 | |
... | ... | |
95 | 97 | |
96 | 98 |
def get_success_url(self): |
97 | 99 |
return self.object.resource.get_absolute_url() |
100 | ||
101 | ||
102 |
class LoggingParametersUpdateView(FormView): |
|
103 |
template_name = 'passerelle/manage/logging_parameters_form.html' |
|
104 | ||
105 |
def get_context_data(self, **kwargs): |
|
106 |
context = super(LoggingParametersUpdateView, self).get_context_data(**kwargs) |
|
107 |
context['connector'] = self.get_resource() |
|
108 |
return context |
|
109 | ||
110 |
def get_form_class(self): |
|
111 |
return model_forms.modelform_factory( |
|
112 |
LoggingParameters, |
|
113 |
fields=['log_level']) |
|
114 | ||
115 |
def get_initial(self): |
|
116 |
d = self.initial.copy() |
|
117 |
d['resource_type'] = self.kwargs['resource_type'] |
|
118 |
d['resource_pk'] = self.kwargs['resource_pk'] |
|
119 |
d['log_level'] = self.get_resource().log_level |
|
120 |
return d |
|
121 | ||
122 |
def get_resource(self): |
|
123 |
content_type = ContentType.objects.get_for_id(self.kwargs['resource_type']) |
|
124 |
return content_type.model_class().objects.get(pk=self.kwargs['resource_pk']) |
|
125 | ||
126 |
def get_success_url(self): |
|
127 |
return self.get_resource().get_absolute_url() |
|
128 | ||
129 |
def form_valid(self, form): |
|
130 |
self.get_resource().set_log_level(form.cleaned_data['log_level']) |
|
131 |
return super(LoggingParametersUpdateView, self).form_valid(form) |
passerelle/contrib/tlmcom/migrations/0005_remove_tlmcom_log_level.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
# Generated by Django 1.11.12 on 2018-11-18 14:07 |
|
3 |
from __future__ import unicode_literals |
|
4 | ||
5 |
from django.db import migrations |
|
6 | ||
7 | ||
8 |
class Migration(migrations.Migration): |
|
9 | ||
10 |
dependencies = [ |
|
11 |
('tlmcom', '0004_auto_20170920_0951'), |
|
12 |
] |
|
13 | ||
14 |
operations = [ |
|
15 |
migrations.RemoveField( |
|
16 |
model_name='tlmcom', |
|
17 |
name='log_level', |
|
18 |
), |
|
19 |
] |
passerelle/templates/passerelle/manage/logging_parameters_form.html | ||
---|---|---|
1 |
{% extends "passerelle/manage.html" %} |
|
2 |
{% load i18n %} |
|
3 | ||
4 |
{% block appbar %} |
|
5 |
<h2>{% trans 'Logging Parameters' %}</h2> |
|
6 |
{% endblock %} |
|
7 | ||
8 |
{% block content %} |
|
9 |
<form method="post"> |
|
10 |
{% csrf_token %} |
|
11 |
{{ form.as_p }} |
|
12 |
<div class="buttons"> |
|
13 |
<button class="submit-button">{% trans 'Update' %}</button> |
|
14 |
<a href="{{ connector.get_absolute_url }}" class="cancel">{% trans 'Cancel' %}</a> |
|
15 |
</div> |
|
16 |
</form> |
|
17 |
{% endblock %} |
passerelle/templates/passerelle/manage/service_view.html | ||
---|---|---|
16 | 16 |
</h2> |
17 | 17 |
<span class="actions"> |
18 | 18 |
{% if object|can_edit:request.user %} |
19 |
<a rel="popup" href="{% url 'logging-parameters' resource_type=object|resource_type resource_pk=object.id %}">{% trans 'logging parameters' %}</a> |
|
20 |
{% endif %} |
|
21 |
{% if object|can_edit:request.user %} |
|
19 | 22 |
<a rel="popup" href="{{ object.get_edit_url }}">{% trans 'edit' %}</a> |
20 | 23 |
{% endif %} |
21 | 24 |
{% if object|can_delete:request.user %} |
tests/test_generic_endpoint.py | ||
---|---|---|
40 | 40 | |
41 | 41 |
@pytest.fixture |
42 | 42 |
def arcgis(db): |
43 |
return utils.setup_access_rights(ArcGIS.objects.create(slug='test', log_level='DEBUG')) |
|
43 |
instance = utils.setup_access_rights(ArcGIS.objects.create(slug='test')) |
|
44 |
instance.set_log_level('DEBUG') |
|
45 |
return instance |
|
44 | 46 | |
45 | 47 | |
46 | 48 |
DEMAND_STATUS = { |
... | ... | |
126 | 128 | |
127 | 129 |
# when changing log level |
128 | 130 |
ResourceLog.objects.all().delete() |
129 |
arcgis.log_level = 'INFO'
|
|
131 |
arcgis.set_log_level('INFO')
|
|
130 | 132 |
arcgis.save() |
131 | 133 |
app.get('/arcgis/test/district', params={'lon': 6.172122, 'lat': 48.673836}, status=200) |
132 | 134 |
assert ResourceLog.objects.count() == 1 |
tests/test_import_export.py | ||
---|---|---|
181 | 181 |
assert Bdp.objects.count() == 0 |
182 | 182 |
import_site(json.load(open(f.name)), overwrite=True) |
183 | 183 |
assert Bdp.objects.count() == 1 |
184 | ||
185 |
def test_export_log_level(app, setup): |
|
186 |
bdp = Bdp.objects.create(service_url='https://bdp.example.com/') |
|
187 |
bdp.set_log_level('DEBUG') |
|
188 | ||
189 |
first = export_site() |
|
190 |
Bdp.objects.all().delete() |
|
191 |
import_site(first) |
|
192 |
second = export_site() |
|
193 |
assert first == second |
|
194 |
assert Bdp.objects.all().first().log_level == 'DEBUG' |
tests/test_manager.py | ||
---|---|---|
170 | 170 |
base_url = re.findall(r'data-log-base-url="(.*)"', resp.text)[0] |
171 | 171 |
resp = app.get(base_url + log_pk + '/') |
172 | 172 |
resp = app.get(base_url + '12345' + '/', status=404) |
173 | ||
174 |
def test_logging_parameters(app, admin_user): |
|
175 |
data = StringIO('1;Foo\n2;Bar\n3;Baz') |
|
176 |
csv = CsvDataSource.objects.create(csv_file=File(data, 't.csv'), |
|
177 |
columns_keynames='id, text', slug='test', title='a title', description='a description') |
|
178 |
app = login(app) |
|
179 |
resp = app.get(csv.get_absolute_url()) |
|
180 |
resp = resp.click('logging parameters') |
|
181 |
resp.form['log_level'] = 'ERROR' |
|
182 |
resp = resp.form.submit() |
|
183 |
assert CsvDataSource.objects.get(id=csv.id).log_level == 'ERROR' |
|
184 | ||
185 |
resp = app.get(csv.get_absolute_url()) |
|
186 |
resp = resp.click('logging parameters') |
|
187 |
resp.form['log_level'] = 'DEBUG' |
|
188 |
resp = resp.form.submit() |
|
189 |
assert CsvDataSource.objects.get(id=csv.id).log_level == 'DEBUG' |
tests/test_proxylogger.py | ||
---|---|---|
14 | 14 |
@pytest.fixture |
15 | 15 |
def connector(): |
16 | 16 |
connector, created = Feed.objects.get_or_create(slug='some-slug') |
17 |
connector.log_level = 'DEBUG'
|
|
17 |
connector.set_log_level('DEBUG')
|
|
18 | 18 |
connector.url = 'http://example.net/' |
19 | 19 |
connector.save() |
20 | 20 |
return connector |
... | ... | |
52 | 52 | |
53 | 53 |
def test_proxy_logger_ignore(db, connector): |
54 | 54 |
ResourceLog.objects.all().delete() |
55 |
connector.log_level = 'INFO'
|
|
55 |
connector.set_log_level('INFO')
|
|
56 | 56 |
pr = ProxyLogger(connector) |
57 | 57 |
pr.debug(u'some message') |
58 | 58 |
assert len(ResourceLog.objects.all()) == 0 |
59 |
- |