mirror of
https://github.com/ansible/awx.git
synced 2024-10-27 00:55:06 +03:00
Alternative code reloader for dev env
I verified what Seth found in https://github.com/ansible/awx/pull/12052, but would really hate to lose this functionality. Curious if folks on the API team can try this and see if it works for them.
This commit is contained in:
parent
868e811b3f
commit
89c2a4c6ed
9
Makefile
9
Makefile
@ -177,7 +177,7 @@ collectstatic:
|
||||
fi; \
|
||||
mkdir -p awx/public/static && $(PYTHON) manage.py collectstatic --clear --noinput > /dev/null 2>&1
|
||||
|
||||
UWSGI_DEV_RELOAD_COMMAND ?= supervisorctl restart tower-processes:awx-dispatcher tower-processes:awx-receiver
|
||||
DEV_RELOAD_COMMAND ?= supervisorctl restart tower-processes:*
|
||||
|
||||
uwsgi: collectstatic
|
||||
@if [ "$(VENV_BASE)" ]; then \
|
||||
@ -192,12 +192,13 @@ uwsgi: collectstatic
|
||||
--processes=5 \
|
||||
--harakiri=120 --master \
|
||||
--no-orphans \
|
||||
--py-autoreload 1 \
|
||||
--max-requests=1000 \
|
||||
--stats /tmp/stats.socket \
|
||||
--lazy-apps \
|
||||
--logformat "%(addr) %(method) %(uri) - %(proto) %(status)" \
|
||||
--hook-accepting1="exec: $(UWSGI_DEV_RELOAD_COMMAND)"
|
||||
--logformat "%(addr) %(method) %(uri) - %(proto) %(status)"
|
||||
|
||||
awx-autoreload:
|
||||
@/awx_devel/tools/docker-compose/awx-autoreload /awx_devel "$(DEV_RELOAD_COMMAND)"
|
||||
|
||||
daphne:
|
||||
@if [ "$(VENV_BASE)" ]; then \
|
||||
|
@ -158,6 +158,8 @@ RUN pip3 install black git+https://github.com/coderanger/supervisor-stdout
|
||||
# It is nice to have in the dev env, but not necessary.
|
||||
# Add it back to the list above if the repo ever straighten up.
|
||||
RUN dnf --enablerepo=baseos-debug -y install python3-debuginfo || :
|
||||
|
||||
RUN dnf install -y epel-next-release && dnf install -y inotify-tools && dnf remove -y epel-next-release
|
||||
{% endif %}
|
||||
|
||||
# Copy app from builder
|
||||
|
@ -27,7 +27,7 @@ stderr_logfile_maxbytes=0
|
||||
command = make uwsgi
|
||||
directory = /awx_devel
|
||||
environment =
|
||||
UWSGI_DEV_RELOAD_COMMAND='supervisorctl -c /etc/supervisord_task.conf restart all; supervisorctl restart tower-processes:daphne tower-processes:wsbroadcast'
|
||||
DEV_RELOAD_COMMAND='supervisorctl -c /etc/supervisord_task.conf restart all; supervisorctl restart tower-processes:daphne tower-processes:wsbroadcast'
|
||||
{% else %}
|
||||
command = /var/lib/awx/venv/awx/bin/uwsgi /etc/tower/uwsgi.ini
|
||||
directory = /var/lib/awx
|
||||
|
15
tools/docker-compose/awx-autoreload
Executable file
15
tools/docker-compose/awx-autoreload
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/env bash
|
||||
|
||||
if [ $# -lt 2 ]; then
|
||||
echo "Usage:"
|
||||
echo " autoreload directory command"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
inotifywait -mrq -e create,delete,attrib,close_write,move --exclude '/awx_devel/awx/ui' $1 | while read directory action file; do
|
||||
if [[ "$file" =~ .*py$ ]]; then
|
||||
echo "File changed: $file"
|
||||
echo "Running command: $2"
|
||||
eval $2
|
||||
fi
|
||||
done
|
@ -95,6 +95,20 @@ stderr_logfile_maxbytes=0
|
||||
programs=awx-dispatcher,awx-receiver,awx-uwsgi,awx-daphne,awx-nginx,awx-wsbroadcast,awx-rsyslogd
|
||||
priority=5
|
||||
|
||||
[program:awx-autoreload]
|
||||
command = make awx-autoreload
|
||||
autostart = true
|
||||
autorestart = true
|
||||
startsecs = 30
|
||||
stopasgroup=true
|
||||
killasgroup=true
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
stdout_events_enabled = true
|
||||
stderr_events_enabled = true
|
||||
|
||||
[eventlistener:superwatcher]
|
||||
command=stop-supervisor
|
||||
events=PROCESS_STATE_FATAL
|
||||
|
Loading…
Reference in New Issue
Block a user