Adding configs as a first-class-citizen of the zamboni file-space... not as a dirty submodule... see ya remora.
This commit is contained in:
Родитель
f8276b6feb
Коммит
c223b31689
|
@ -0,0 +1,99 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# chkconfig: 35 68 38
|
||||
# description: Starts celeryd
|
||||
#
|
||||
# @author Jeremy Orem <oremj@mozilla.com>
|
||||
# @author Dave Dash <dd@mozilla.com>
|
||||
#
|
||||
|
||||
DJANGO_PROJECT_DIR=/data/amo_python/www/preview/zamboni
|
||||
VIRTUAL_ENV="/data/virtualenvs/zamboni"
|
||||
CELERYD_PID_FILE="/var/run/celeryd-preview.pid"
|
||||
CELERYD_LOG_FILE="/var/log/celeryd-preview.log"
|
||||
CELERYD_LOG_LEVEL="INFO"
|
||||
|
||||
CELERYD="$DJANGO_PROJECT_DIR/manage.py"
|
||||
CELERYD_OPTS="-f $CELERYD_LOG_FILE"
|
||||
PROG_NAME="celeryd"
|
||||
|
||||
|
||||
# I'm running this as apache. No reason.
|
||||
user="apache"
|
||||
|
||||
CELERYD_OPTS="-f $CELERYD_LOG_FILE -l $CELERYD_LOG_LEVEL"
|
||||
|
||||
# Source function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
start() {
|
||||
if [ -r $CELERYD_PID_FILE ]; then
|
||||
oldpid=`cat $CELERYD_PID_FILE`
|
||||
checkpid $oldpid
|
||||
if [ "$?" -eq "0" ]; then
|
||||
echo "$PROG_NAME: Already running in $oldpid"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -n $"Starting $PROG_NAME: "
|
||||
|
||||
sudo -u $user $VIRTUAL_ENV/bin/python $CELERYD $PROG_NAME $CELERYD_OPTS &
|
||||
|
||||
echo $! > $CELERYD_PID_FILE
|
||||
|
||||
RETVAL=$?
|
||||
|
||||
if [ "$RETVAL" -eq "0" ]; then
|
||||
echo_success
|
||||
else
|
||||
echo_failure
|
||||
fi
|
||||
|
||||
return $RETVAL
|
||||
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n $"Stopping $PROG_NAME: "
|
||||
|
||||
killproc -p $CELERYD_PID_FILE
|
||||
|
||||
RETVAL=$?
|
||||
|
||||
rm -f $CELERYD_PID_FILE
|
||||
|
||||
if [ "$RETVAL" -eq "0" ]; then
|
||||
echo_success
|
||||
else
|
||||
echo_failure
|
||||
fi
|
||||
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
status)
|
||||
status -p $CELERYD_PID_FILE
|
||||
exit $?
|
||||
;;
|
||||
restart)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: celeryd {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
echo ""
|
||||
|
||||
exit 0
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
SETTINGS_DIR = os.path.realpath(os.path.join(os.path.dirname(__file__), \
|
||||
os.path.pardir, os.path.pardir, "site/app/config/migrations"))
|
||||
|
||||
sys.path.append(SETTINGS_DIR)
|
||||
|
||||
import settings
|
||||
|
||||
s = settings.params
|
||||
|
||||
### IT Change this to connect to the slave that sphinx reads from
|
||||
MYSQL_PASS = s['password']
|
||||
MYSQL_USER = s['user']
|
||||
MYSQL_HOST = s['host']
|
||||
MYSQL_NAME = s['database']
|
||||
### /IT
|
||||
|
||||
CATALOG_PATH = '/opt/local/data/sphinx'
|
||||
LOG_PATH = '/opt/local/log/searchd'
|
||||
ETC_PATH = '/opt/local/etc'
|
||||
LISTEN_PORT = 3312
|
||||
MYSQL_LISTEN_PORT = 3307
|
||||
MYSQL_LISTEN_HOST = 'localhost'
|
|
@ -0,0 +1,31 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
SETTINGS_DIR = os.path.realpath(
|
||||
os.path.join(os.path.dirname(__file__), os.path.sep.join(('..',)*2)))
|
||||
|
||||
sys.path.append(SETTINGS_DIR)
|
||||
sys.path.append(os.path.join(SETTINGS_DIR,'lib'))
|
||||
|
||||
import settings_local as settings
|
||||
|
||||
s = settings.DATABASES['default']
|
||||
MYSQL_PASS = s['PASSWORD']
|
||||
MYSQL_USER = s['USER']
|
||||
MYSQL_HOST = s.get('HOST', 'localhost')
|
||||
MYSQL_NAME = s['NAME']
|
||||
|
||||
if MYSQL_HOST.endswith('.sock'):
|
||||
MYSQL_HOST = 'localhost'
|
||||
|
||||
if os.environ.get('DJANGO_ENVIRONMENT') == 'test':
|
||||
MYSQL_NAME = 'test_' + MYSQL_NAME
|
||||
|
||||
|
||||
BASE_PATH = '/tmp'
|
||||
CATALOG_PATH = BASE_PATH + '/data/sphinx'
|
||||
LOG_PATH = BASE_PATH + '/log/searchd'
|
||||
ETC_PATH = BASE_PATH + '/etc'
|
||||
LISTEN_PORT = 3312
|
||||
MYSQL_LISTEN_PORT = 3307
|
||||
MYSQL_LISTEN_HOST = 'localhost'
|
|
@ -0,0 +1,249 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
try:
|
||||
from localsettings import *
|
||||
except ImportError:
|
||||
from localsettings_django import *
|
||||
|
||||
config = """
|
||||
source addons
|
||||
{
|
||||
type = mysql
|
||||
sql_host = %s
|
||||
sql_user = %s
|
||||
sql_pass = %s
|
||||
sql_db = %s
|
||||
|
||||
sql_query_pre = SET NAMES utf8
|
||||
sql_query_pre = SET SESSION query_cache_type=OFF
|
||||
|
||||
sql_query = \
|
||||
SELECT \
|
||||
id, app, addon_id, type, status as addon_status, locale, \
|
||||
locale_ord, averagerating, weeklydownloads, totaldownloads, \
|
||||
inactive, guid_ord,\
|
||||
name, name AS name_ord, \
|
||||
homepage, description, developercomments, \
|
||||
( \
|
||||
SELECT 1 FROM features f \
|
||||
WHERE f.addon_id=t.addon_id \
|
||||
AND f.start <= NOW() \
|
||||
AND f.end > NOW() \
|
||||
AND (f.locale IS NULL OR t.locale = f.locale) \
|
||||
AND t.app = f.application_id \
|
||||
AND t.type != 9 \
|
||||
LIMIT 1 \
|
||||
) AS recommended, \
|
||||
IF (status=6, 1, \
|
||||
( \
|
||||
SELECT count(*) \
|
||||
FROM versions v, files f \
|
||||
WHERE f.version_id=v.id AND addon_id=t.addon_id AND f.status>0\
|
||||
) \
|
||||
) AS num_files, \
|
||||
(\
|
||||
SELECT count(DISTINCT av.application_id) \
|
||||
FROM addons a, versions v, applications_versions av \
|
||||
WHERE a.id=t.addon_id AND v.addon_id=a.id AND av.version_id=v.id \
|
||||
) AS num_apps, \
|
||||
( \
|
||||
SELECT GROUP_CONCAT(version) \
|
||||
FROM versions WHERE addon_id = t.addon_id \
|
||||
) AS addon_versions, \
|
||||
( \
|
||||
SELECT GROUP_CONCAT(nickname) \
|
||||
FROM addons_users au, users u \
|
||||
WHERE addon_id=t.addon_id AND au.user_id = u.id AND listed = 1 \
|
||||
) AS authors, \
|
||||
( \
|
||||
SELECT GROUP_CONCAT(tag_text) \
|
||||
FROM users_tags_addons, tags \
|
||||
WHERE tags.id = tag_id \
|
||||
AND addon_id = t.addon_id \
|
||||
) AS tags, \
|
||||
( \
|
||||
SELECT IF(type=4,9999999999999, max(version_int)) \
|
||||
FROM versions s_v, applications_versions s_av, appversions max \
|
||||
WHERE s_v.addon_id = t.addon_id \
|
||||
AND s_av.application_id = t.app \
|
||||
AND s_av.version_id = s_v.id AND s_av.max = max.id \
|
||||
) AS max_ver, \
|
||||
( \
|
||||
SELECT IF(type=4,0, min(version_int)) \
|
||||
FROM versions s_v, applications_versions s_av, appversions min \
|
||||
WHERE s_v.addon_id = t.addon_id \
|
||||
AND s_av.application_id = t.app \
|
||||
AND s_av.version_id = s_v.id \
|
||||
AND s_av.min = min.id \
|
||||
) AS min_ver, \
|
||||
created, \
|
||||
modified \
|
||||
FROM \
|
||||
( \
|
||||
SELECT DISTINCT \
|
||||
(name.autoid*100+IFNULL(av.application_id,0)) AS id, \
|
||||
IF(a.addontype_id IN (4,9), 99, av.application_id) AS app, \
|
||||
a.id AS addon_id, \
|
||||
a.addontype_id AS type, \
|
||||
a.status, \
|
||||
CRC32(a.guid) AS guid_ord, \
|
||||
name.locale, \
|
||||
CRC32(name.locale) AS locale_ord, \
|
||||
a.bayesianrating AS averagerating, \
|
||||
a.weeklydownloads, \
|
||||
a.totaldownloads, \
|
||||
a.inactive, \
|
||||
LTRIM(name.localized_string) AS name, \
|
||||
homepage.localized_string AS homepage, \
|
||||
description.localized_string AS description, \
|
||||
summary.localized_string AS summary, \
|
||||
developercomments.localized_string AS developercomments, \
|
||||
UNIX_TIMESTAMP(a.created) AS created, \
|
||||
UNIX_TIMESTAMP(a.last_updated) AS modified \
|
||||
FROM \
|
||||
( \
|
||||
translations name, \
|
||||
addons a \
|
||||
LEFT JOIN versions v ON v.addon_id = a.id \
|
||||
LEFT JOIN applications_versions av ON av.version_id = v.id \
|
||||
) \
|
||||
LEFT JOIN translations homepage \
|
||||
ON a.homepage = homepage.id \
|
||||
AND homepage.locale = name.locale \
|
||||
LEFT JOIN translations description \
|
||||
ON a.description = description.id \
|
||||
AND description.locale = name.locale \
|
||||
LEFT JOIN translations summary \
|
||||
ON a.summary = summary.id \
|
||||
AND summary.locale = name.locale \
|
||||
LEFT JOIN translations developercomments \
|
||||
ON a.developercomments = developercomments.id \
|
||||
AND developercomments.locale = name.locale \
|
||||
WHERE \
|
||||
a.name = name.id \
|
||||
AND name.localized_string IS NOT NULL \
|
||||
AND \
|
||||
( \
|
||||
description.localized_string IS NOT NULL \
|
||||
OR summary.localized_string IS NOT NULL \
|
||||
OR defaultlocale = name.locale \
|
||||
) \
|
||||
) t
|
||||
|
||||
sql_attr_uint = addon_id
|
||||
sql_attr_uint = app
|
||||
sql_attr_uint = num_files
|
||||
sql_attr_uint = num_apps
|
||||
sql_attr_str2ordinal = name_ord
|
||||
sql_attr_uint = guid_ord
|
||||
sql_attr_uint = type
|
||||
sql_attr_uint = addon_status
|
||||
sql_attr_uint = weeklydownloads
|
||||
sql_attr_uint = totaldownloads
|
||||
sql_attr_uint = locale_ord
|
||||
sql_attr_bigint = max_ver
|
||||
sql_attr_bigint = min_ver
|
||||
sql_attr_str2ordinal = locale
|
||||
sql_attr_float = averagerating
|
||||
sql_attr_bool = inactive
|
||||
sql_attr_bool = recommended
|
||||
sql_attr_str2ordinal = homepage
|
||||
sql_attr_timestamp = created
|
||||
sql_attr_timestamp = modified
|
||||
|
||||
sql_attr_multi = uint category from query; \
|
||||
SELECT \
|
||||
(name.autoid*100+IFNULL(av.application_id,0)) id, \
|
||||
ac.category_id AS category \
|
||||
FROM \
|
||||
(translations name, addons a, addons_categories ac) \
|
||||
LEFT JOIN versions v ON v.addon_id = a.id \
|
||||
LEFT JOIN applications_versions av ON av.version_id = v.id \
|
||||
WHERE \
|
||||
a.name = name.id AND \
|
||||
a.id = ac.addon_id
|
||||
|
||||
sql_attr_multi = uint category_featured from query; \
|
||||
SELECT \
|
||||
(name.autoid*100+IFNULL(av.application_id,0)) id, \
|
||||
ac.category_id AS category \
|
||||
FROM \
|
||||
(translations name, addons a, addons_categories ac) \
|
||||
LEFT JOIN versions v ON v.addon_id = a.id \
|
||||
LEFT JOIN applications_versions av ON av.version_id = v.id \
|
||||
WHERE \
|
||||
ac.feature = 1 AND \
|
||||
a.name = name.id AND \
|
||||
a.id = ac.addon_id
|
||||
|
||||
sql_attr_multi = uint tag from query; \
|
||||
SELECT DISTINCT\
|
||||
(name.autoid*100+IFNULL(av.application_id,0)) id, \
|
||||
t.tag_id AS tag \
|
||||
FROM \
|
||||
(translations name, addons a, users_tags_addons t) \
|
||||
LEFT JOIN versions v ON v.addon_id = a.id \
|
||||
LEFT JOIN applications_versions av ON av.version_id = v.id \
|
||||
WHERE \
|
||||
a.name = name.id AND \
|
||||
a.id = t.addon_id
|
||||
|
||||
sql_attr_multi = uint platform from query; \
|
||||
SELECT \
|
||||
(name.autoid*100+IFNULL(av.application_id,0)) id, \
|
||||
IFNULL(platform_id,1) AS platform \
|
||||
FROM \
|
||||
(translations name, addons a) \
|
||||
LEFT JOIN versions v ON v.addon_id = a.id \
|
||||
LEFT JOIN applications_versions av ON av.version_id = v.id \
|
||||
LEFT JOIN files f ON f.version_id = v.id \
|
||||
WHERE \
|
||||
a.name = name.id
|
||||
|
||||
|
||||
sql_query_info = SELECT a.* \
|
||||
FROM \
|
||||
translations name,\
|
||||
addons a\
|
||||
LEFT JOIN versions v ON v.addon_id = a.id\
|
||||
LEFT JOIN applications_versions av ON av.version_id = v.id\
|
||||
WHERE \
|
||||
a.name = name.id AND \
|
||||
(name.autoid*100+IFNULL(av.application_id,0)) = $id
|
||||
}
|
||||
|
||||
""" % (MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_NAME,)
|
||||
|
||||
config = config + """
|
||||
index addons
|
||||
{
|
||||
source = addons
|
||||
path = %s/catalog
|
||||
# morphology = stem_en
|
||||
# symlink sphinx-wordforms.txt to this location:
|
||||
wordforms = %s/sphinx-wordforms.txt
|
||||
|
||||
# Firebug will get indexed as Firebug, Firebu, Fireb, Fire, Fir - equally
|
||||
# We can enable star if necessary.
|
||||
min_infix_len = 3
|
||||
infix_fields = name
|
||||
charset_type = utf-8
|
||||
charset_table = 0..9,U+41..U+5a->U+61..U+7a, U+61..U+7a, U+aa, U+b5, U+ba, U+c0..U+d6->U+e0..U+f6, U+d8..U+de->U+f8..U+fe, U+df..U+f6, U+f8..U+ff, U+100..U+12f/2, U+130->U+69, U+131, U+132..U+137/2, U+138, U+139..U+148/2, U+149, U+14a..U+177/2, U+178->U+ff, U+179..U+17e/2, U+17f..U+180, U+181->U+253, U+182..U+185/2, U+186->U+254, U+187..U+188/2, U+189..U+18a->U+256..U+257, U+18b..U+18c/2, U+18d, U+18e->U+1dd, U+18f->U+259, U+190->U+25b, U+191..U+192/2, U+193->U+260, U+194->U+263, U+195, U+196->U+269, U+197->U+268, U+198..U+199/2, U+19a..U+19b, U+19c->U+26f, U+19d->U+272, U+19e, U+19f->U+275, U+1a0..U+1a5/2, U+1a6->U+280, U+1a7..U+1a8/2, U+1a9->U+283, U+1aa..U+1ab, U+1ac..U+1ad/2, U+1ae->U+288, U+1af..U+1b0/2, U+1b1..U+1b2->U+28a..U+28b, U+1b3..U+1b6/2, U+1b7->U+292, U+1b8..U+1b9/2, U+1ba..U+1bb, U+1bc..U+1bd/2, U+1be..U+1c3, U+1c4->U+1c6, U+1c5..U+1c6/2, U+1c7->U+1c9, U+1c8..U+1c9/2, U+1ca->U+1cc, U+1cb..U+1dc/2, U+1dd, U+1de..U+1ef/2, U+1f0, U+1f1->U+1f3, U+1f2..U+1f5/2, U+1f6->U+195, U+1f7->U+1bf, U+1f8..U+21f/2, U+220->U+19e, U+221, U+222..U+233/2, U+234..U+23a, U+23b..U+23c/2, U+23d->U+19a, U+23e..U+240, U+241->U+294, U+250..U+2c1, U+2c6..U+2d1, U+2e0..U+2e4, U+2ee, U+37a, U+386..U+389->U+3ac..U+3af, U+38c..U+38e->U+3cc..U+3ce, U+390, U+391..U+3a1->U+3b1..U+3c1, U+3a3..U+3ab->U+3c3..U+3cb, U+3ac..U+3ce, U+3d0..U+3d7, U+3d8..U+3ef/2, U+3f0..U+3f3, U+3f4->U+3b8, U+3f5, U+3f7..U+3f8/2, U+3f9->U+3f2, U+3fa..U+3fb/2, U+3fc..U+3ff, U+400..U+40f->U+450..U+45f, U+410..U+42f->U+430..U+44f, U+430..U+45f, U+460..U+481/2, U+48a..U+4bf/2, U+4c0, U+4c1..U+4ce/2, U+4d0..U+4f9/2, U+500..U+50f/2, U+531..U+556->U+561..U+586, U+559, U+561..U+587, U+5d0..U+5ea, U+5f0..U+5f2, U+621..U+63a, U+640..U+64a, U+66e..U+66f, U+671..U+6d3, U+6d5, U+6e5..U+6e6, U+6ee..U+6ef, U+6fa..U+6fc, U+6ff, U+e01..U+e30, U+e32..U+e33, U+e40..U+e46, U+e81..U+e82, U+e84, U+e87..U+e88, U+e8a, U+e8d, U+e94..U+e97, U+e99..U+e9f, U+ea1..U+ea3, U+ea5, U+ea7, U+eaa..U+eab, U+ead..U+eb0, U+eb2..U+eb3, U+ebd, U+ec0..U+ec4, U+ec6, U+edc..U+edd, U+1000..U+1021, U+1023..U+1027, U+1029..U+102a, U+1050..U+1055, U+10a0..U+10c5->U+2d00..U+2d25, U+10d0..U+10fa, U+10fc, U+2d00..U+2d25, U+1d00..U+1dbf, U+1e00..U+1e95/2, U+1e96..U+1e9b, U+1ea0..U+1ef9/2, U+3005..U+3006, U+3031..U+3035, U+303b..U+303c, U+3041..U+3096, U+309d..U+309f, U+30a1..U+30fa, U+30fc..U+30ff, U+31f0..U+31ff
|
||||
ngram_chars = U+3400..U+4DB5, U+4E00..U+9FA5, U+20000..U+2A6D6
|
||||
ngram_len = 1
|
||||
}
|
||||
""" % (CATALOG_PATH, ETC_PATH)
|
||||
|
||||
|
||||
config = config + """
|
||||
searchd
|
||||
{
|
||||
listen = %d
|
||||
listen = %s:%d:mysql41
|
||||
log = %s/searchd.log
|
||||
query_log = %s/query.log
|
||||
pid_file = %s/searchd.pid
|
||||
}
|
||||
""" % ((LISTEN_PORT, MYSQL_LISTEN_HOST, MYSQL_LISTEN_PORT) + (LOG_PATH,)*3)
|
||||
|
||||
print config
|
|
@ -0,0 +1,6 @@
|
|||
fire bug > firebug
|
||||
stumble upon > stumbleupon
|
||||
stumbleupons > stumbleupon
|
||||
ad block > adblock
|
||||
fire fox > firefox
|
||||
|
Загрузка…
Ссылка в новой задаче