mirror of
https://github.com/m8tin/cis.git
synced 2026-08-01 11:47:31 +02:00
Used REGEX for composition sync
This commit is contained in:
@@ -130,14 +130,14 @@ function send() {
|
||||
# Parameter 3: Only alphanumeric characters allowed and [.-] if not leading (due to: -oProxyCommand=...).
|
||||
# Parameter 4: Only alphanumeric characters allowed and [._:-] if not leading (due to: -oProxyCommand=...), but can be empty.
|
||||
# Parameter 5: Only alphanumeric characters allowed and [._:-] if not leading (due to: -oProxyCommand=...), but can be empty.
|
||||
base.set RECEIVERHOST "${1}" '^[a-zA-Z0-9][a-zA-Z0-9._-]*$'
|
||||
base.set ZFS_BRANCH "${2}" '^[a-zA-Z][a-zA-Z0-9/_-]*[a-zA-Z0-9]$'
|
||||
base.set COMPOSITION "${3}" '^[a-zA-Z0-9][a-zA-Z0-9.-]*$'
|
||||
base.set RECEIVERS_SNAPSHOT "${4}" '^[a-zA-Z0-9][a-zA-Z0-9._:-]*$' optional
|
||||
base.set RECEIVERHOST "${1}" "${REGEX[HOST]}"
|
||||
base.set ZFS_BRANCH "${2}" "${REGEX[ZFS]}"
|
||||
base.set COMPOSITION "${3}" "${REGEX[COMPOSITION]}"
|
||||
base.set RECEIVERS_SNAPSHOT "${4}" "${REGEX[SNAPSHOT]}" optional
|
||||
base.set RESUME_TOKEN "${5}" '^[a-zA-Z0-9][a-zA-Z0-9._:-]*$' optional
|
||||
|
||||
# Resume mode
|
||||
if [ "${RECEIVERS_SNAPSHOT}" == "RESUME" ]; then
|
||||
if [ "${RECEIVERS_SNAPSHOT}" == "@RESUME" ] && [ -n "${RESUME_TOKEN}" ]; then
|
||||
sendResume "${RESUME_TOKEN}"
|
||||
|
||||
# Exit preserving the code
|
||||
|
||||
@@ -108,7 +108,7 @@ function receive() {
|
||||
_RESUME_TOKEN=$(zfs get -H -o value receive_resume_token "${_ZFS}" 2> /dev/null)
|
||||
if [ -n "${_RESUME_TOKEN}" ] && [ "${_RESUME_TOKEN}" != "-" ]; then
|
||||
echo "Resume token present trying to resume at ${_RESUME_TOKEN}"
|
||||
_COMMON_SNAPSHOT="RESUME"
|
||||
_COMMON_SNAPSHOT="@RESUME"
|
||||
else
|
||||
_RESUME_TOKEN=""
|
||||
_COMMON_SNAPSHOT=$(zfs list -H -o name -S creation -t snapshot "${_ZFS}" 2> /dev/null | head -n 1)
|
||||
@@ -118,13 +118,14 @@ function receive() {
|
||||
fi
|
||||
|
||||
# Add "-s" for resumable streams in the next line at zfs receive. Not done yet because of: cannot receive resume stream: kernel modules must be upgraded to receive this stream.
|
||||
${_SSH_COMMAND} "sudo ${_SEND_SCRIPT:?"Missing SEND_SCRIPT"} \"${_RECEIVERHOST}\" \"${_ZFS_BRANCH}\" \"${_COMPOSITION}\" \"${_COMMON_SNAPSHOT#${_ZFS}@}\" \"${_RESUME_TOKEN}\"" | zfs receive -v "${_ZFS}"
|
||||
${_SSH_COMMAND} "sudo ${_SEND_SCRIPT:?"Missing SEND_SCRIPT"} \"${_RECEIVERHOST}\" \"${_ZFS_BRANCH}\" \"${_COMPOSITION}\" \"@${_COMMON_SNAPSHOT#*@}\" \"${_RESUME_TOKEN}\"" | zfs receive -v "${_ZFS}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Unable to receive stream using these settings:"
|
||||
echo " - Sending host: ${_SOURCEHOST}:${_SSH_PORT}"
|
||||
echo " - Receiving host: ${_RECEIVERHOST}"
|
||||
echo " - ZFS Branch: ${_ZFS_BRANCH}"
|
||||
echo " - Composition: ${_COMPOSITION}"
|
||||
echo " - Offered snapshot: ${_ZFS}@${_COMMON_SNAPSHOT#${_ZFS}@}"
|
||||
echo " - Offered snapshot: @${_COMMON_SNAPSHOT#*@}"
|
||||
echo " - Resume token: ${_RESUME_TOKEN}"
|
||||
echo "Current state of snapshots:"
|
||||
zfs list -t snapshot "${_ZFS}" 2> /dev/null | tail
|
||||
|
||||
Reference in New Issue
Block a user