98 lines
3.6 KiB
Nix
98 lines
3.6 KiB
Nix
{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
|
|
'';
|
|
}
|