diff options
author | Andrey Mekin <anmekin@gmail.com> | 2016-08-26 13:00:56 +0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-26 13:00:56 +0500 |
commit | 3f593ff92382f7a4221f7521329e4674024977fc (patch) | |
tree | 4e86b2baa77da3d6cf8910bbd07bd5e2bb6b9d62 | |
parent | 4ac66b5ebff8794c90ddd2de1a14aa841282379b (diff) | |
parent | b0fc38abc3dd70679875e95fcc226b3c5d11e796 (diff) | |
download | omaha-server-3f593ff92382f7a4221f7521329e4674024977fc.zip omaha-server-3f593ff92382f7a4221f7521329e4674024977fc.tar.gz omaha-server-3f593ff92382f7a4221f7521329e4674024977fc.tar.bz2 |
Merge pull request #214 from anmekin/feature/ap_tag
Add compatibility with ap tag
-rw-r--r-- | omaha_server/omaha/builder.py | 4 | ||||
-rw-r--r-- | omaha_server/omaha/parser.py | 6 | ||||
-rw-r--r-- | omaha_server/omaha/request.xsd | 1 | ||||
-rw-r--r-- | omaha_server/omaha/statistics.py | 4 |
4 files changed, 10 insertions, 5 deletions
diff --git a/omaha_server/omaha/builder.py b/omaha_server/omaha/builder.py index 323898b..8e26a91 100644 --- a/omaha_server/omaha/builder.py +++ b/omaha_server/omaha/builder.py @@ -31,8 +31,8 @@ from cacheops import cached_as from omaha import tasks from omaha.models import Version from omaha.parser import parse_request +from omaha import parser from omaha.statistics import is_user_active -from omaha.settings import DEFAULT_CHANNEL from omaha.core import (Response, App, Updatecheck_negative, Manifest, Updatecheck_positive, Packages, Package, Actions, Action, Event, Data) @@ -133,7 +133,7 @@ def on_app(apps_list, app, os, userid): app_id = app.get('appid') version = app.get('version') platform = os.get('platform') - channel = app.get('tag') or DEFAULT_CHANNEL + channel = parser.get_channel(app) ping = bool(app.findall('ping')) events = reduce(on_event, app.findall('event'), []) build_app = partial(App, app_id, status='ok', ping=ping, events=events) diff --git a/omaha_server/omaha/parser.py b/omaha_server/omaha/parser.py index f2a8436..625423b 100644 --- a/omaha_server/omaha/parser.py +++ b/omaha_server/omaha/parser.py @@ -21,7 +21,7 @@ the License. import os from lxml import etree, objectify - +from omaha.settings import DEFAULT_CHANNEL __all__ = ['parser', 'parse_request'] @@ -79,3 +79,7 @@ def parse_request(request): '{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}' """ return objectify.fromstring(request, parser) + + +def get_channel(app): + return app.get('tag') or app.get('ap') or DEFAULT_CHANNEL diff --git a/omaha_server/omaha/request.xsd b/omaha_server/omaha/request.xsd index 5d999fb..d4b9375 100644 --- a/omaha_server/omaha/request.xsd +++ b/omaha_server/omaha/request.xsd @@ -98,6 +98,7 @@ <xs:attribute name='cohort' use='optional' type='xs:string'/> <xs:attribute name='cohorthint' use='optional' type='xs:string'/> <xs:attribute name='cohortname' use='optional' type='xs:string'/> + <xs:anyAttribute namespace="##any" processContents="skip"/> </xs:complexType> </xs:element> <xs:element name='updatecheck'> diff --git a/omaha_server/omaha/statistics.py b/omaha_server/omaha/statistics.py index cd20e4c..bb730de 100644 --- a/omaha_server/omaha/statistics.py +++ b/omaha_server/omaha/statistics.py @@ -30,7 +30,7 @@ from bitmapist import setup_redis, mark_event, unmark_event, WeekEvents, MonthEv import pytz from omaha.utils import get_id, is_new_install, valuedispatch, redis -from omaha.settings import DEFAULT_CHANNEL +from omaha import parser from omaha.models import ACTIVE_USERS_DICT_CHOICES, Request, AppRequest, Os, Hw, Event, Version, Channel from sparkle.models import SparkleVersion @@ -52,7 +52,7 @@ def add_app_statistics(userid, platform, app, now=None): now = timezone.now() appid = app.get('appid') version = app.get('version') - channel = app.get('tag') or DEFAULT_CHANNEL + channel = parser.get_channel(app) events = app.findall('event') err_events = filter(lambda x: x.get('eventresult') not in ['1', '2', '3'], events) if err_events: |