asu: add attended sysupgrade server package
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
17835f4b04
commit
31950ff200
3 changed files with 116 additions and 0 deletions
60
devel/asu/Makefile
Normal file
60
devel/asu/Makefile
Normal file
|
@ -0,0 +1,60 @@
|
|||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=asu
|
||||
PKG_VERSION:=0.2.3
|
||||
PKG_RELEASE=1
|
||||
|
||||
PKG_LICENSE:=GPL-3.0
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/a/asu/
|
||||
PKG_HASH:=e60027cd531cc5b9b20d3321acc06fdf0cdd894004919800575b8235343ba8ef
|
||||
|
||||
PKG_BUILD_DEPENDS:=python3
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../../lang/python/python3-package.mk
|
||||
|
||||
IMAGEBUILDER_DEPENDS:= \
|
||||
@x86_64 +bash +bzip2 +coreutils +coreutils-stat +diffutils +file \
|
||||
+gawk +gcc +getopt +git +git-http +libncurses +make +patch +perl \
|
||||
+perlbase-attributes +perlbase-findbin +perlbase-getopt \
|
||||
+perlbase-thread +python-light +tar +unzip +wget +xz +xzdiff \
|
||||
+xzgrep +xzless +xz-utils +zlib-dev
|
||||
|
||||
define Package/asu
|
||||
SECTION:=devel
|
||||
CATEGORY:=Development
|
||||
TITLE:=attended sysupgrade image server
|
||||
MAINTAINER:=Paul Spooren <paul@spooren.de>
|
||||
URL:=http://github.com/aparcar/gsoc17-attended-sysupgrade/
|
||||
DEPENDS:=$(IMAGEBUILDER_DEPENDS) +pgsql-server +psqlodbcw \
|
||||
+python3-ctypes +python3-distutils +python3-flask \
|
||||
+python3-openssl +python3-pyodbc +python3-yaml \
|
||||
+libustream-mbedtls +ca-certificates +gnupg
|
||||
USERID:=asu:asu
|
||||
VARIANT:=python3
|
||||
endef
|
||||
|
||||
define Package/asu/description
|
||||
Build server to deliver OpenWrt/LEDE sysupgrade images
|
||||
endef
|
||||
|
||||
define Py3Package/asu/install
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(INSTALL_BIN) ./files/asu.defaults $(1)/etc/uci-defaults/99-asu
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/asu.init $(1)/etc/init.d/asu
|
||||
$(INSTALL_DIR) $(1)/etc/asu
|
||||
$(INSTALL_CONF) $(PKG_BUILD_DIR)/asu/utils/config.yml.default $(1)/etc/asu/config.yml
|
||||
endef
|
||||
|
||||
$(eval $(call Py3Package,asu))
|
||||
$(eval $(call BuildPackage,asu))
|
15
devel/asu/files/asu.defaults
Normal file
15
devel/asu/files/asu.defaults
Normal file
|
@ -0,0 +1,15 @@
|
|||
#!/bin/sh
|
||||
|
||||
asu_tables="$(ls -1 /usr/lib/*/site-packages/asu/utils/tables.sql | head -n 1)"
|
||||
uci -q batch <<EOF
|
||||
del postgresql.asu
|
||||
set postgresql.asu=postgres-db
|
||||
set postgresql.asu.name=asu
|
||||
set postgresql.asu.user=asu
|
||||
set postgresql.asu.pass=password
|
||||
set postgresql.asu.script='$asu_tables'
|
||||
commit postgresql
|
||||
EOF
|
||||
|
||||
sed -i 's/database_user:.*/database_user: asu/' /etc/asu/config.yml
|
||||
sed -i 's/database_pass:.*/database_pass: asu/' /etc/asu/config.yml
|
41
devel/asu/files/asu.init
Normal file
41
devel/asu/files/asu.init
Normal file
|
@ -0,0 +1,41 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=99
|
||||
STOP=01
|
||||
|
||||
USE_PROCD=1
|
||||
PROG=/usr/bin/flask
|
||||
|
||||
start_service() {
|
||||
. /lib/functions/postgresql.sh
|
||||
|
||||
local pgdata=$(uci get postgresql.config.PGDATA)
|
||||
local i=0
|
||||
|
||||
while ! pg_server_ready "$pgdata"; do
|
||||
sleep 1
|
||||
[ $((i++)) -gt 30 ] && return 1
|
||||
done
|
||||
|
||||
i=0
|
||||
while ! pg_test_db asu asu; do
|
||||
sleep 1
|
||||
[ $((i++)) -gt 30 ] && return 1
|
||||
done
|
||||
|
||||
FLASK_APP=asu $PROG loaddb
|
||||
|
||||
procd_open_instance asu_main
|
||||
# procd_set_param user asu
|
||||
# procd_set_param group asu
|
||||
procd_set_param env FLASK_APP=asu
|
||||
procd_set_param command $PROG run
|
||||
procd_close_instance
|
||||
|
||||
procd_open_instance main_worker
|
||||
# procd_set_param user asu
|
||||
# procd_set_param group asu
|
||||
procd_set_param env FLASK_APP=asu
|
||||
procd_set_param command $PROG run_worker
|
||||
procd_close_instance
|
||||
}
|
Loading…
Reference in a new issue