File: //var/packages/ActiveInsight/scripts/postinst
#!/bin/bash
# Copyright (c) 2019 Synology Inc. All rights reserved.
. /var/packages/"${SYNOPKG_PKGNAME}"/scripts/pkg_utils
MIB_CONF_PATH_IN_DSM_6_2="/usr/syno/etc/synomibmode.conf"
CreateMachineInfoForMigration()
{
${MIB_PKG_TOOL} --create-machine-info-for-migration
}
CreateAndUpdateConfigFile()
{
local old_version="$(/bin/echo ${SYNOPKG_OLD_PKGVER} | /bin/cut -d'-' -f2)"
if [ -f "${MIB_CONF_PATH_IN_DSM_6_2}" ]; then
# Even if upgrading from DSM7.0, regard it as DSM6.2 if the settings from DSM6.2 exist
${MIB_PKG_TOOL} --update-config-file "0"
elif [ "${SYNOPKG_PKG_STATUS}" = "UPGRADE" ] && [ "" != "${old_version}" ]; then
${MIB_PKG_TOOL} --update-config-file "${old_version}"
fi
${MIB_PKG_TOOL} --create-config-file
}
CreateStatusJson()
{
/bin/jq -nc --arg status disabled '{$status}' > "${PKG_VAR_STATUS_JSON}"
}
CreatePythonEnv()
{
if ! python3 -m venv /var/packages/ActiveInsight/tmp/venv; then
echo 'failed to create python venv' >&2
return 1
fi
if ! /var/packages/ActiveInsight/tmp/venv/bin/pip install /var/packages/ActiveInsight/target/synomibexecutor; then
echo 'failed to install synomibexecutor' >&2
return 1
fi
if ! /var/packages/ActiveInsight/tmp/venv/bin/pip uninstall -y pip; then
echo 'failed to uninstall pip' >&2
return 1
fi
}
IsMemoryLimitedModels()
{
local BlockedModels=("DS220j" "DS120j" "DS419slim" "DS218j" "RS217" "DS416j" "DS416slim" "DS216" "DS216j" "DS215j" "DS115" "RS214" "DS414j" "DS414slim" "DS214" "DS114" "DS213j" "DS115j" "DS119j" "DS214se" "DS216se")
local model=$(/usr/syno/bin/synowebapi --exec api=SYNO.Core.System method=info version=3 2>/dev/null | /bin/jq -r .data.model)
for blockModel in "${BlockedModels[@]}"; do
if [[ "$blockModel" == "$model" ]]; then
return 0
fi
done
return 1
}
IsInstall()
{
if [[ "$SYNOPKG_PKG_STATUS" == "INSTALL" ]]; then
return 0
fi
return 1
}
IsUpgradeFromVersionOneOrTwo()
{
if [[ "$SYNOPKG_PKG_STATUS" != "UPGRADE" ]]; then
return 1
fi
local old_major_version="$(/bin/cat ${OLD_PKG_VER_FOR_UPGRADE_PATH} | /bin/cut -d'.' -f1)"
[[ "$old_major_version" == "1" ]] && return 0
[[ "$old_major_version" == "2" ]] && return 0
return 1
}
IsUpgradeFromOldVersionThree()
{
if [[ "$SYNOPKG_PKG_STATUS" != "UPGRADE" ]]; then
return 1
fi
local old_feature_version="$(/bin/cat ${OLD_PKG_VER_FOR_UPGRADE_PATH} | /bin/cut -d'-' -f1)"
[[ "$old_feature_version" == "3.0.0" ]] && return 0
[[ "$old_feature_version" == "3.0.1" ]] && return 0
[[ "$old_feature_version" == "3.0.2" ]] && return 0
return 1
}
Mkdir -m 700 -p "${PKG_ZZZ_DIR}"
CreateMachineInfoForMigration
CreateAndUpdateConfigFile
if [ ! -f "${PKG_VAR_STATUS_JSON}" ]; then
CreateStatusJson
fi
UpdateCollectors
if ! CreatePythonEnv; then
echo 'failed to create python env, abort' >&2
exit 1
fi
if IsInstall || IsUpgradeFromVersionOneOrTwo; then
# make sure all settings are new
ResetAllDisableFeatures
fi
if IsMemoryLimitedModels; then
DisableFileActivity "WITHOUT_ENOUGH_MEMORY"
elif IsUpgradeFromOldVersionThree; then
EnableFileActivity
if [ -d /var/packages/ActiveInsight/var/file_activity ] || [ -L /var/packages/ActiveInsight/var/file_activity ]; then
${SYNOMIB_RESOURCE_MONITOR} set-need-migrate-storage
else
${SYNOMIB_RESOURCE_MONITOR} remove-need-migrate-storage
fi
else
${SYNOMIB_RESOURCE_MONITOR} remove-need-migrate-storage
fi
exit 0