Merge lp:~michael.nelson/ubuntu-webcatalog/rt-61147-nagios-sca-import-dict-config into lp:ubuntu-webcatalog

Proposed by Michael Nelson
Status: Merged
Approved by: Michael Nelson
Approved revision: 190
Merged at revision: 186
Proposed branch: lp:~michael.nelson/ubuntu-webcatalog/rt-61147-nagios-sca-import-dict-config
Merge into: lp:ubuntu-webcatalog
Diff against target: 216 lines (+46/-33)
7 files modified
.bzrignore (+1/-0)
django_project/config/main.cfg (+33/-7)
src/webcatalog/management/commands/import_exhibits.py (+1/-1)
src/webcatalog/management/commands/import_sca_apps.py (+9/-12)
src/webcatalog/schema.py (+0/-3)
src/webcatalog/templatetags/webcatalog.py (+2/-2)
src/webcatalog/wsgi.py (+0/-8)
To merge this branch: bzr merge lp:~michael.nelson/ubuntu-webcatalog/rt-61147-nagios-sca-import-dict-config
Reviewer Review Type Date Requested Status
James Westby (community) Approve
Review via email: mp+182386@code.launchpad.net

Commit message

Update logging dictConfig for use in deployments and add a specific logger for import_sca_apps.

Description of the change

This is to fix RT 61147 - just to verify the new config (well, ensure that the dev env uses the same setup) which is used in the separate config branch at:

https://code.launchpad.net/~michael.nelson/ca-configs/uwc-add-sca-import-logging-dict-config/+merge/182429

To post a comment you must log in.
Revision history for this message
James Westby (james-w) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '.bzrignore'
--- .bzrignore 2013-02-28 16:23:58 +0000
+++ .bzrignore 2013-08-27 15:27:42 +0000
@@ -16,3 +16,4 @@
16django_project/local.cfg16django_project/local.cfg
17django_project/sreclient.py17django_project/sreclient.py
18oopses/18oopses/
19tmp/*
1920
=== modified file 'django_project/config/main.cfg'
--- django_project/config/main.cfg 2013-04-26 14:24:42 +0000
+++ django_project/config/main.cfg 2013-08-27 15:27:42 +0000
@@ -79,23 +79,49 @@
79handlers = django_logging_handlers79handlers = django_logging_handlers
80loggers = django_logging_loggers80loggers = django_logging_loggers
81root = django_logging_root81root = django_logging_root
82formatters = django_logging_formatters
8283
83[django_logging_root]84[django_logging_root]
84level = WARNING85level = WARNING
8586
86[django_logging_loggers]87[django_logging_loggers]
87django = django_logger88django = django_logger
89webcatalog.management.commands.import_sca_apps = import_sca_logger
8890
89[django_logger]91[django_logger]
90handlers = null92handlers = webapp
91level = WARNING93level = INFO
9294
93[django_logging_handlers]95[django_logging_handlers]
94null = django_null_logging_handler96webapp = webapp_logging_handler
9597importer = import_sca_apps_handler
96[django_null_logging_handler]98
97level = WARNING99[webapp_logging_handler]
98class = django.utils.log.NullHandler100class = logging.handlers.WatchedFileHandler
101level = INFO
102formatter = simple
103filename = ./tmp/webapp.log
104
105[import_sca_apps_handler]
106class = logging.handlers.WatchedFileHandler
107level = INFO
108formatter = simple_no_name
109filename = ./tmp/import_sca_apps.log
110
111[import_sca_logger]
112handlers = importer
113propagate = false
114level = INFO
115
116[django_logging_formatters]
117simple = django_logging_simple_format
118simple_no_name = django_logging_simple_no_name_format
119
120[django_logging_simple_format]
121format = %%(asctime)s - %%(name)s - %%(levelname)s - %%(message)s
122
123[django_logging_simple_no_name_format]
124format = %%(asctime)s - %%(levelname)s - %%(message)s
99125
100[openid]126[openid]
101openid_sso_server_url = https://login.staging.ubuntu.com127openid_sso_server_url = https://login.staging.ubuntu.com
102128
=== modified file 'src/webcatalog/management/commands/import_exhibits.py'
--- src/webcatalog/management/commands/import_exhibits.py 2012-08-20 15:34:18 +0000
+++ src/webcatalog/management/commands/import_exhibits.py 2013-08-27 15:27:42 +0000
@@ -81,4 +81,4 @@
81 # Unpublish other exhibits81 # Unpublish other exhibits
82 Exhibit.objects.filter(published=True).exclude(82 Exhibit.objects.filter(published=True).exclude(
83 sca_id__in=[xibit['id'] for xibit in exhibits]).update(83 sca_id__in=[xibit['id'] for xibit in exhibits]).update(
84 published=False)84 published=False)
8585
=== modified file 'src/webcatalog/management/commands/import_sca_apps.py'
--- src/webcatalog/management/commands/import_sca_apps.py 2012-08-21 13:57:11 +0000
+++ src/webcatalog/management/commands/import_sca_apps.py 2013-08-27 15:27:42 +0000
@@ -22,6 +22,7 @@
22from __future__ import absolute_import22from __future__ import absolute_import
2323
24import json24import json
25import logging
25import os26import os
26import urllib27import urllib
27from collections import defaultdict28from collections import defaultdict
@@ -42,12 +43,15 @@
42__all__ = []43__all__ = []
4344
4445
46logger = logging.getLogger(__name__)
47
48
45class Command(BaseCommand):49class Command(BaseCommand):
46 help = "Import for-purchase applications from Software Center."50 help = "Import for-purchase applications from Software Center."
47 verbosity = 0
4851
49 def handle(self, *args, **options):52 def handle(self, *args, **options):
50 url = '%sapplications/any/ubuntu/any/any/' % settings.SCA_API_URL53 url = '%sapplications/any/ubuntu/any/any/' % settings.SCA_API_URL
54 logger.info("Starting import of sca apps at {0}".format(url))
51 # call api and get apps for purchase55 # call api and get apps for purchase
52 response = urllib.urlopen(url)56 response = urllib.urlopen(url)
53 if response.code != 200:57 if response.code != 200:
@@ -55,8 +59,8 @@
55 app_list = json.loads(response.read())59 app_list = json.loads(response.read())
56 imported_apps = Application.objects.filter(60 imported_apps = Application.objects.filter(
57 imported_from_sca=True).values_list(61 imported_from_sca=True).values_list(
58 'package_name',62 'package_name',
59 'distroseries__code_name')63 'distroseries__code_name')
60 existing_apps = defaultdict(list)64 existing_apps = defaultdict(list)
61 for package_name, code_name in imported_apps:65 for package_name, code_name in imported_apps:
62 existing_apps[package_name].append(code_name)66 existing_apps[package_name].append(code_name)
@@ -71,7 +75,7 @@
71 distroseries, created = DistroSeries.objects.get_or_create(75 distroseries, created = DistroSeries.objects.get_or_create(
72 code_name=series_name)76 code_name=series_name)
73 if created:77 if created:
74 self.output(78 logger.info(
75 "Created a DistroSeries record called '{0}'.\n".format(79 "Created a DistroSeries record called '{0}'.\n".format(
76 series_name), 1)80 series_name), 1)
77 package_name = self.import_app_from_data(81 package_name = self.import_app_from_data(
@@ -91,6 +95,7 @@
91 Application.objects.filter(95 Application.objects.filter(
92 package_name=package_name,96 package_name=package_name,
93 distroseries__code_name__in=series).delete()97 distroseries__code_name__in=series).delete()
98 logger.info("Finished import of {0} sca apps.".format(len(app_list)))
9499
95 def import_app_from_data(self, app_data, icon_data, distroseries):100 def import_app_from_data(self, app_data, icon_data, distroseries):
96 form = SCAApplicationForm.from_api_data(101 form = SCAApplicationForm.from_api_data(
@@ -100,7 +105,6 @@
100 department_names = app_data.get('department', [])105 department_names = app_data.get('department', [])
101 app.update_departments(department_names)106 app.update_departments(department_names)
102 self.add_icon_to_app(app, data=icon_data)107 self.add_icon_to_app(app, data=icon_data)
103 self.output(u"{0} created.\n".format(app.name).encode('utf-8'), 1)
104 return app.package_name108 return app.package_name
105109
106 def get_icon_data(self, app_data):110 def get_icon_data(self, app_data):
@@ -125,10 +129,3 @@
125 finally:129 finally:
126 if os.path.exists(filename):130 if os.path.exists(filename):
127 os.unlink(filename)131 os.unlink(filename)
128
129 def output(self, message, level=None, flush=False):
130 if hasattr(self, 'stdout'):
131 if level is None or self.verbosity >= level:
132 self.stdout.write(message)
133 if flush:
134 self.stdout.flush()
135132
=== modified file 'src/webcatalog/schema.py'
--- src/webcatalog/schema.py 2013-04-09 13:26:31 +0000
+++ src/webcatalog/schema.py 2013-08-27 15:27:42 +0000
@@ -80,9 +80,6 @@
80 google_analytics_id = schema.StringOption()80 google_analytics_id = schema.StringOption()
81 secondary_google_analytics_id = schema.StringOption()81 secondary_google_analytics_id = schema.StringOption()
8282
83 class logging(schema.Section):
84 webapp_logging_config = schema.StringOption()
85
86 class preflight(schema.Section):83 class preflight(schema.Section):
87 preflight_base_template = schema.StringOption(84 preflight_base_template = schema.StringOption(
88 default="webcatalog/base.html")85 default="webcatalog/base.html")
8986
=== modified file 'src/webcatalog/templatetags/webcatalog.py'
--- src/webcatalog/templatetags/webcatalog.py 2013-02-22 21:02:05 +0000
+++ src/webcatalog/templatetags/webcatalog.py 2013-08-27 15:27:42 +0000
@@ -79,8 +79,8 @@
79 '{application_name} is also available for '79 '{application_name} is also available for '
80 '<a href="{app_in_series_url}">your version of '80 '<a href="{app_in_series_url}">your version of '
81 'Ubuntu</a>.').format(81 'Ubuntu</a>.').format(
82 application_name=escape(application.name),82 application_name=escape(application.name),
83 app_in_series_url=app_in_series_url)83 app_in_series_url=app_in_series_url)
84 context['message_text'] = mark_safe(84 context['message_text'] = mark_safe(
85 context['message_text'])85 context['message_text'])
86 return context86 return context
8787
=== modified file 'src/webcatalog/wsgi.py'
--- src/webcatalog/wsgi.py 2013-02-28 16:23:58 +0000
+++ src/webcatalog/wsgi.py 2013-08-27 15:27:42 +0000
@@ -17,12 +17,10 @@
1717
18"""wsgi stack for the Apps Directory."""18"""wsgi stack for the Apps Directory."""
1919
20import logging.config
21import oops_dictconfig20import oops_dictconfig
22import oops_wsgi21import oops_wsgi
23import oops_wsgi.django22import oops_wsgi.django
24import os23import os
25import platform
26import uuid24import uuid
2725
28from django.conf import settings26from django.conf import settings
@@ -64,12 +62,6 @@
64 if settings.SHOULD_SERVE_HTTPS:62 if settings.SHOULD_SERVE_HTTPS:
65 os.environ['HTTPS'] = 'on'63 os.environ['HTTPS'] = 'on'
6664
67 default_id = ''.join(x for x in platform.node() if x.isalpha())
68 appserver_id = getattr(settings, 'APPSERVER_ID', default_id)
69 logging_config = settings.WEBAPP_LOGGING_CONFIG
70 if logging_config:
71 logging.config.fileConfig(logging_config)
72
73 non_oops_app = EagerOOPSWSGIHandler()65 non_oops_app = EagerOOPSWSGIHandler()
7466
75 config = oops_dictconfig.config_from_dict(settings.OOPSES)67 config = oops_dictconfig.config_from_dict(settings.OOPSES)
7668
=== added directory 'tmp'

Subscribers

People subscribed via source and target branches