{stdenv, writeShellApplication, git, gnumake, mysql, python27, django, django-environ, django-session-csrf, django-mozilla-product-details, dockerflow, django-csp, django-aesfield, django-extensions, raven, django-rest-framework, django-waffle, jingo-minify, django-jinja, puente, django-statsd-mozilla, django-cache-machine, python-memcached, django-multidb-router, mysqlclient, bleach, easy-thumbnails, amo-validator, flufl-lock, signing-clients, mozilla-logger, pyOpenSSL, django-rest-framework-jwt, celery, nobot, pyquery, schematic, django-cors-headers-multi, elasticsearch-dsl, email-reply-parser, django-tables2, redis, drf-nested-routers, nodejs_20, elasticsearch-service}: writeShellApplication rec { name = "service2"; #propagatedBuildInputs = [python26Packages.setuptools]; #nativeBuildInputs = [ jinja2 ]; #buildInputs = [ jinja2 ]; runtimeInputs = [git gnumake mysql nodejs_20 elasticsearch-service (python27.withPackages(ps: [django django-environ django-session-csrf django-mozilla-product-details dockerflow django-csp django-aesfield django-extensions raven django-rest-framework django-waffle jingo-minify django-jinja puente django-statsd-mozilla django-cache-machine python-memcached django-multidb-router mysqlclient bleach easy-thumbnails amo-validator flufl-lock signing-clients mozilla-logger pyOpenSSL django-rest-framework-jwt celery nobot pyquery schematic django-cors-headers-multi elasticsearch-dsl email-reply-parser django-tables2 redis drf-nested-routers]))]; #env = { # NIX_CFLAGS_COMPILE="-Wno-incompatible-pointer-types"; #}; text = '' if [ ! -d "amo" ]; then mkdir amo cd amo git clone https://github.com/mozilla/addons-server.git --progress cd addons-server git switch 8b4423547f932b2d9fa2b5a9c81d399bdc29bd6e --detach --progress content="from settings import * ALLOWED_HOSTS = [\"127.0.0.1\"]" echo "$content" > settings_local.py content="diff --git a/src/olympia/api/serializers.py b/src/olympia/api/serializers.py index 35e4a37c8c..3586bff1eb 100644 --- a/src/olympia/api/serializers.py +++ b/src/olympia/api/serializers.py @@ -1,6 +1,5 @@ from datetime import datetime -from elasticsearch_dsl.result import Result from elasticsearch_dsl.response.hit import Hit from rest_framework.serializers import ModelSerializer @@ -45,7 +44,7 @@ class BaseESSerializer(ModelSerializer): def to_representation(self, data): # Support \`Result\` instances to allow passing in ElasticSearch # results directly into the serializer. - if isinstance(data, (Result, Hit)): + if isinstance(data, Hit): data = data.to_dict() obj = self.fake_object(data) " echo "$content" > elasticsearch.diff git apply elasticsearch.diff cd ../.. fi cd amo dbDir="$(pwd)/db" cd addons-server PYTHONPATH="$(pwd)/src" export PYTHONPATH trap 'kill $dbServer && sleep 6' EXIT if [ ! -d "$dbDir" ]; then mkdir "$dbDir" mysql_install_db --datadir="$dbDir" mysqld --datadir="$dbDir" & dbServer="$!" sleep 3 echo "CREATE DATABASE olympia CHARACTER SET utf8 COLLATE utf8_unicode_ci;" | mysql -u root echo "set global net_buffer_length=1000000;" | mysql -u root echo "set global max_allowed_packet=1000000000;" | mysql -u root make -f Makefile-docker initialize_db npm install make -f Makefile-docker copy_node_js make -f Makefile-docker populate_data kill "$dbServer" sleep 6 fi mysqld --datadir="$dbDir" & dbServer="$!" sleep 3 make -f Makefile-docker populate_data python ./manage.py runserver ''; }