Merge "rsync repo only for same sw-version"
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2023 Wind River Systems, Inc.
|
# Copyright (c) 2023-2025 Wind River Systems, Inc.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
@@ -52,10 +52,17 @@ function do_setup {
|
|||||||
grep -xq "gpg-verify=false" $FEED_OSTREE_CONFIG || sed -i '$a gpg-verify=false' $FEED_OSTREE_CONFIG
|
grep -xq "gpg-verify=false" $FEED_OSTREE_CONFIG || sed -i '$a gpg-verify=false' $FEED_OSTREE_CONFIG
|
||||||
grep -xq "gpg-verify=false" $SYSROOT_OSTREE_CONFIG || sed -i '$a gpg-verify=false' $SYSROOT_OSTREE_CONFIG
|
grep -xq "gpg-verify=false" $SYSROOT_OSTREE_CONFIG || sed -i '$a gpg-verify=false' $SYSROOT_OSTREE_CONFIG
|
||||||
|
|
||||||
|
LOG "apt-ostree repo init --feed $REPO_DIR --release $RELEASE --origin $REPO_ID ..."
|
||||||
apt-ostree repo init \
|
apt-ostree repo init \
|
||||||
--feed $REPO_DIR \
|
--feed $REPO_DIR \
|
||||||
--release $RELEASE \
|
--release $RELEASE \
|
||||||
--origin $REPO_ID
|
--origin $REPO_ID
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
LOG "... done"
|
||||||
|
else
|
||||||
|
LOG "... failed"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d $PATCHING_DIR ]; then
|
if [ ! -d $PATCHING_DIR ]; then
|
||||||
@@ -76,13 +83,27 @@ function do_setup {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# TODO(bqian) review this rsync below, it could break the atomic data sync mechanism
|
||||||
# Sync the software dir
|
# Sync the software dir
|
||||||
LOG_TO_FILE "rsync -acv --delete rsync://controller/software/ ${PATCHING_DIR}/"
|
LOG_TO_FILE "rsync -acv --delete rsync://controller/software/ ${PATCHING_DIR}/"
|
||||||
rsync -acv --delete rsync://controller/software/ ${PATCHING_DIR}/ >> $logfile 2>&1
|
rsync -acv --delete rsync://controller/software/ ${PATCHING_DIR}/ >> $logfile 2>&1
|
||||||
|
|
||||||
# Sync the repo dir
|
# sync the repo from peer controller if both are running the same sw_version
|
||||||
LOG_TO_FILE "rsync -acv --delete rsync://controller/repo/ ${REPO_ROOT}/"
|
tmp_dir=$(mktemp -d)
|
||||||
rsync -acv --delete rsync://controller/repo/ ${REPO_ROOT}/ >> $logfile 2>&1
|
rsync -acv rsync://controller/platform/platform.conf ${tmp_dir}
|
||||||
|
my_tag="^sw_version=${SW_VERSION}$"
|
||||||
|
grep ${my_tag} ${tmp_dir}/platform.conf
|
||||||
|
rc=$?
|
||||||
|
rm ${tmp_dir}/platform.conf
|
||||||
|
rmdir ${tmp_dir}
|
||||||
|
|
||||||
|
if [ ${rc} -eq 0 ]; then
|
||||||
|
# Sync the repo dir
|
||||||
|
LOG_TO_FILE "rsync -acv --delete rsync://controller/repo/ ${REPO_ROOT}/"
|
||||||
|
rsync -acv --delete rsync://controller/repo/ ${REPO_ROOT}/ >> $logfile 2>&1
|
||||||
|
else
|
||||||
|
LOG "Skip rsync. Peer is not running the same software version"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# Copyright (c) 2014 Wind River Systems, Inc.
|
# Copyright (c) 2014-2025 Wind River Systems, Inc.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
@@ -66,9 +66,22 @@ function do_setup {
|
|||||||
LOG_TO_FILE "rsync -acv --delete rsync://controller/patching/ ${PATCHING_DIR}/"
|
LOG_TO_FILE "rsync -acv --delete rsync://controller/patching/ ${PATCHING_DIR}/"
|
||||||
rsync -acv --delete rsync://controller/patching/ ${PATCHING_DIR}/ >> $logfile 2>&1
|
rsync -acv --delete rsync://controller/patching/ ${PATCHING_DIR}/ >> $logfile 2>&1
|
||||||
|
|
||||||
# Sync the patching dir
|
# sync the repo from peer controller if both are running the same sw_version
|
||||||
LOG_TO_FILE "rsync -acv --delete rsync://controller/repo/ ${REPO_ROOT}/"
|
tmp_dir=$(mktemp -d)
|
||||||
rsync -acv --delete rsync://controller/repo/ ${REPO_ROOT}/ >> $logfile 2>&1
|
rsync -acv rsync://controller/platform/platform.conf ${tmp_dir}
|
||||||
|
my_tag="^sw_version=${SW_VERSION}$"
|
||||||
|
grep ${my_tag} ${tmp_dir}/platform.conf
|
||||||
|
rc=$?
|
||||||
|
rm ${tmp_dir}/platform.conf
|
||||||
|
rmdir ${tmp_dir}
|
||||||
|
|
||||||
|
if [ ${rc} -eq 0 ]; then
|
||||||
|
# Sync the repo dir
|
||||||
|
LOG_TO_FILE "rsync -acv --delete rsync://controller/repo/ ${REPO_ROOT}/"
|
||||||
|
rsync -acv --delete rsync://controller/repo/ ${REPO_ROOT}/ >> $logfile 2>&1
|
||||||
|
else
|
||||||
|
LOG "Skip rsync. Peer is not running the same software version"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
Reference in New Issue
Block a user