Mercurial > kallithea
annotate init.d/kallithea-daemon-redhat @ 8163:24e1099e4f29
py3: make get_current_authuser handle missing tg context consistently and explicitly
tg context handling ends up using
tg.support.registry.StackedObjectProxy._current_obj for attribute access ...
which if no context has been pushed will end up in:
raise TypeError(
'No object (name: %s) has been registered for this '
'thread' % self.____name__)
utils2.get_current_authuser used code like:
if hasattr(tg.tmpl_context, 'authuser'):
Python 2 hasattr will call __getattr__ and return False if it throws any
exception. (It would thus catch the TypeError and silently fall through to use
the default user None.) This hasattr behavior is confusing and hard to use
correctly. Here, it was used incorrectly. It has been common practice to work
around by using something like:
getattr(x, y, None) is not None
Python 3 hasattr fixed this flaw and only catches AttributeError. The TypeError
would thus (rightfully) be propagated. That is a change that must be handled
when introducing py3 support.
The get_current_authuser code could more clearly and simple and py3-compatible
be written as:
return getattr(tmpl_context, 'authuser', None)
- but then we also have to handle the TypeError explicitly ... which we are
happy to do.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Fri, 31 Jan 2020 18:48:15 +0100 |
parents | 2c3d30095d5e |
children | 71bdbf129190 |
rev | line source |
---|---|
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
1 #!/bin/sh |
1545
a7bee2a5de67
Added header for redhat init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1542
diff
changeset
|
2 ######################################## |
a7bee2a5de67
Added header for redhat init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1542
diff
changeset
|
3 #### THIS IS A REDHAT INIT.D SCRIPT #### |
a7bee2a5de67
Added header for redhat init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1542
diff
changeset
|
4 ######################################## |
a7bee2a5de67
Added header for redhat init.d script
Marcin Kuzminski <marcin@python-works.com>
parents:
1542
diff
changeset
|
5 |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
6 ################################################## |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
7 # |
4212
24c0d584ba86
General renaming to Kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4190
diff
changeset
|
8 # Kallithea server startup script |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
9 # Recommended default-startup: 2 3 4 5 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
10 # Recommended default-stop: 0 1 6 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
11 # |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
12 ################################################## |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
13 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
14 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
15 APP_NAME="kallithea" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
16 # the location of your app |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
17 # since this is a web app, it should go in /var/www |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
18 APP_PATH="/var/www/$APP_NAME" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
19 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
20 CONF_NAME="production.ini" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
21 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
22 # write to wherever the PID should be stored, just ensure |
6554
2c3d30095d5e
gearbox: replace paster with something TurboGears2-ish that still works with the Pylons stack
Mads Kiilerich <madski@unity3d.com>
parents:
6370
diff
changeset
|
23 # that the user you run gearbox as has the appropriate permissions |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
24 # same goes for the log file |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
25 PID_PATH="/var/run/kallithea/pid" |
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
26 LOG_PATH="/var/log/kallithea/kallithea.log" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
27 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
28 # replace this with the path to the virtual environment you |
4212
24c0d584ba86
General renaming to Kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4190
diff
changeset
|
29 # made for Kallithea |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
30 PYTHON_PATH="/opt/python_virtualenvironments/kallithea-venv" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
31 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
32 RUN_AS="kallithea" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
33 |
6554
2c3d30095d5e
gearbox: replace paster with something TurboGears2-ish that still works with the Pylons stack
Mads Kiilerich <madski@unity3d.com>
parents:
6370
diff
changeset
|
34 DAEMON="$PYTHON_PATH/bin/gearbox" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
35 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
36 DAEMON_OPTS="serve --daemon \ |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
37 --user=$RUN_AS \ |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
38 --group=$RUN_AS \ |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
39 --pid-file=$PID_PATH \ |
6554
2c3d30095d5e
gearbox: replace paster with something TurboGears2-ish that still works with the Pylons stack
Mads Kiilerich <madski@unity3d.com>
parents:
6370
diff
changeset
|
40 --log-file=$LOG_PATH -c $APP_PATH/$CONF_NAME" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
41 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
42 DESC="kallithea-server" |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
43 LOCK_FILE="/var/lock/subsys/$APP_NAME" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
44 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
45 # source CentOS init functions |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
46 . /etc/init.d/functions |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
47 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
48 RETVAL=0 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
49 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
50 remove_pid () { |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
51 rm -f ${PID_PATH} |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
52 rmdir `dirname ${PID_PATH}` |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
53 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
54 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
55 ensure_pid_dir () { |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
56 PID_DIR=`dirname ${PID_PATH}` |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
57 if [ ! -d ${PID_DIR} ] ; then |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
58 mkdir -p ${PID_DIR} |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
59 chown -R ${RUN_AS}:${RUN_AS} ${PID_DIR} |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
60 chmod 755 ${PID_DIR} |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
61 fi |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
62 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
63 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
64 start_kallithea () { |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
65 ensure_pid_dir |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
66 PYTHON_EGG_CACHE="/tmp" daemon --pidfile $PID_PATH \ |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
67 --user $RUN_AS "$DAEMON $DAEMON_OPTS" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
68 RETVAL=$? |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
69 [ $RETVAL -eq 0 ] && touch $LOCK_FILE |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
70 return $RETVAL |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
71 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
72 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
73 stop_kallithea () { |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
74 if [ -e $LOCK_FILE ]; then |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
75 killproc -p $PID_PATH |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
76 RETVAL=$? |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
77 rm -f $LOCK_FILE |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
78 rm -f $PID_PATH |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
79 else |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
80 RETVAL=1 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
81 fi |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
82 return $RETVAL |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
83 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
84 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
85 status_kallithea() { |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
86 if [ -e $LOCK_FILE ]; then |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
87 # exit with non-zero to indicate failure |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
88 RETVAL=1 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
89 else |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
90 RETVAL=0 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
91 fi |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
92 return $RETVAL |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
93 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
94 |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
95 restart_kallithea () { |
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
96 stop_kallithea |
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
97 start_kallithea |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
98 RETVAL=$? |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
99 } |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
100 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
101 case "$1" in |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
102 start) |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
103 echo -n $"Starting $DESC: " |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
104 start_kallithea |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
105 echo |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
106 ;; |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
107 stop) |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
108 echo -n $"Stopping $DESC: " |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
109 stop_kallithea |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
110 echo |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
111 ;; |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
112 status) |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
113 status_kallithea |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
114 RETVAL=$? |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
115 if [ ! $RETVAL -eq 0 ]; then |
4212
24c0d584ba86
General renaming to Kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4190
diff
changeset
|
116 echo "Kallithea server is running..." |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
117 else |
4212
24c0d584ba86
General renaming to Kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4190
diff
changeset
|
118 echo "Kallithea server is stopped." |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
119 fi |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
120 ;; |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
121 restart) |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
122 echo -n $"Restarting $DESC: " |
4190
99ad9d0af1a3
Rename init scripts and fix references inside them
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
1545
diff
changeset
|
123 restart_kallithea |
1542
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
124 echo |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
125 ;; |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
126 *) |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
127 echo $"Usage: $0 {start|stop|restart|status}" |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
128 RETVAL=1 |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
129 ;; |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
130 esac |
238b2805851f
added a RedHat-based init.d startup script
Les Peabody <lpeabody@gmail.com>
parents:
diff
changeset
|
131 |
6370
e285bb7abb28
scripts: apply whitespace cleanup to more files - opt out instead of opt in
Mads Kiilerich <mads@kiilerich.com>
parents:
4212
diff
changeset
|
132 exit $RETVAL |