
Remove the rpm imports from debian patching code. The dnf imports will be removed in a later commit. The patch code had methods, variables and subprocesses that reference 'rpm'. Most of these have been removed or renamed. The remaining 'rpm' references will be removed as functionality related to those calls is implemented for debian ostree. The code is being converted to ostree, so these changes are not currently runnable, nor were the rpm calls on debian. The createrepo calls are also removed, ostree equivalent calls may (or may not) be added in a followup commit. The subprocess exceptions are made more generic, as any uncaight exception in API handling could make the patch controller non-responsive. Robustness improvements may be investigated in a followup commit. Test Plan: Verify build/install/bootstrap/unlock on Debian. Verify sw-patch upload /delete do not report failures using a signed patch. (Note: used an rpm patch for centos) Story: 2009969 Task: 45192 Signed-off-by: Al Bailey <al.bailey@windriver.com> Change-Id: I0590950868805b89dd1e302397d83f1a6f5e244a
93 lines
2.2 KiB
Bash
93 lines
2.2 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Copyright (c) 2014 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# StarlingX Patching Controller setup
|
|
# chkconfig: 345 20 24
|
|
# description: CGCS Patching Controller init script
|
|
|
|
### BEGIN INIT INFO
|
|
# Provides: sw-patch-controller
|
|
# Required-Start: $syslog
|
|
# Required-Stop: $syslog
|
|
# Default-Start: 2 3 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: sw-patch-controller
|
|
# Description: Provides the StarlingX Patch Controller Daemon
|
|
### END INIT INFO
|
|
|
|
. /usr/bin/tsconfig
|
|
|
|
NAME=$(basename $0)
|
|
|
|
REPO_ID=updates
|
|
REPO_ROOT=/var/www/pages/${REPO_ID}
|
|
REPO_DIR=${REPO_ROOT}/rel-${SW_VERSION}
|
|
GROUPS_FILE=$REPO_DIR/comps.xml
|
|
PATCHING_DIR=/opt/patching
|
|
|
|
logfile=/var/log/patching.log
|
|
|
|
function LOG {
|
|
logger "$NAME: $*"
|
|
echo "`date "+%FT%T.%3N"`: $NAME: $*" >> $logfile
|
|
}
|
|
|
|
function LOG_TO_FILE {
|
|
echo "`date "+%FT%T.%3N"`: $NAME: $*" >> $logfile
|
|
}
|
|
|
|
function do_setup {
|
|
# Does the repo exist?
|
|
if [ ! -d $REPO_DIR ]; then
|
|
LOG "Creating repo. UNDER CONSTRUCTION for OSTREE"
|
|
mkdir -p $REPO_DIR
|
|
|
|
# The original Centos code would create the groups and call createrepo
|
|
# todo(jcasteli): determine if the ostree code needs a setup also
|
|
fi
|
|
|
|
if [ ! -d $PATCHING_DIR ]; then
|
|
LOG "Creating $PATCHING_DIR"
|
|
mkdir -p $PATCHING_DIR
|
|
fi
|
|
|
|
# If we can ping the active controller, sync the repos
|
|
LOG_TO_FILE "ping -c 1 -w 1 controller"
|
|
ping -c 1 -w 1 controller >> $logfile 2>&1 || ping6 -c 1 -w 1 controller >> $logfile 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
LOG "Cannot ping controller. Nothing to do"
|
|
return 0
|
|
fi
|
|
|
|
# Sync the patching dir
|
|
LOG_TO_FILE "rsync -acv --delete rsync://controller/patching/ ${PATCHING_DIR}/"
|
|
rsync -acv --delete rsync://controller/patching/ ${PATCHING_DIR}/ >> $logfile 2>&1
|
|
|
|
# Sync the patching dir
|
|
LOG_TO_FILE "rsync -acv --delete rsync://controller/repo/ ${REPO_ROOT}/"
|
|
rsync -acv --delete rsync://controller/repo/ ${REPO_ROOT}/ >> $logfile 2>&1
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
do_setup
|
|
;;
|
|
status)
|
|
;;
|
|
stop)
|
|
# Nothing to do here
|
|
;;
|
|
restart)
|
|
do_setup
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {status|start|stop|restart}"
|
|
exit 1
|
|
esac
|
|
|
|
exit 0
|
|
|