SAP / arp142-hana

Project "Arp 142" - Linux OS checks for HANA environments - SLES,RHEL for Intel x64 and IBM Power
Apache License 2.0
3 stars 2 forks source link

Lib: HANA detection function #116

Closed PeterPitterling closed 2 months ago

PeterPitterling commented 5 months ago

determine

PeterPitterling commented 5 months ago
for manifest in $(ls /usr/sap/[A-Z][A-Z0-9][A-Z0-9]/HDB[0-9][0-9]/exe/manifest 2>/dev/null)
    do
        local SID=$(echo "$manifest" | cut -d'/' -f4)
        hana_release=$(grep "^release:" $manifest | cut -d':' -f2 | sed 's/^ *//g' | sed 's/\.//g')
        declare -i hana_rev=$((10#$(grep "^rev-number:" $manifest | cut -d':' -f2 | sed 's/^ *//g')))
        declare -i hana_patchlevel=$((10#$(grep "^rev-patchlevel:" $manifest | cut -d':' -f2 | sed 's/^ *//g')))
        local hdbstr=$(echo $manifest | cut -d'/' -f5)
        local host_short=$(echo $lib_cfg_exthostname | cut -d'.' -f1)
        local def_inipath=/usr/sap/$SID/$hdbstr/exe/config/
        local sys_inipath=/usr/sap/$SID/SYS/global/hdb/custom/config/
        local host_inipath=/usr/sap/$SID/$hdbstr/$host_short/
PeterPitterling commented 5 months ago

discover.mod.sh --> modDiscoverHanaInstances

modDiscoverHanaInstances(){
    local argInstanceName="${1}"
    local locResult
    local -a locAllResults
    local locInstallPath locProcess locInstanceName locInstanceNumber locManifestFile locVersion locOwner locVhostname

    ### by File Systems
    [[ -e /usr/sap ]] && for locInstallPath in $(stat -c %n /usr/sap/???/HDB?? 2>/dev/null); do
        [[ -z "${locInstallPath}" ]] && continue
        [[ -e "${locInstallPath}" ]] || continue
        locInstanceName="$(echo "${locInstallPath}" | cut -d/ -f4)"
        locInstanceNumber="${locInstallPath##*HDB}"
        [[ -e "/usr/sap/${locInstanceName}/SYS/global/hdb/custom/config/global.ini" ]] || continue
        locManifestFile="/usr/sap/${locInstanceName}/HDB${locInstanceNumber}/exe/manifest"
        [[ -e "${locManifestFile}" ]] || continue
        locVersion="$(awk '/^fullversion/ {sub(/-.*/,""); print $2"."$4}' ${locManifestFile})"
        locVersion="${locVersion#* }"
        locOwner="$(baseStrToLower "${locInstanceName}")adm"
        locVhostname="$(sed -n "s,^[^#].*profile/${locInstanceName}_HDB[0-9][0-9]_\([^ ]*\).*,\1,p" /usr/sap/sapservices 2>/dev/null|head -n1)"
        locResult="${locOwner},${locInstanceName},${locVersion},${locInstanceNumber},${locVhostname}"
        locAllResults+=("${locResult}")
    done
...
    # finally remove duplicates and echo results
    modDiscoverReturnResults "${argInstanceName}" "${locAllResults[@]}"
}
PeterPitterling commented 5 months ago

some information could also be found in /hana/shared/SID/global/hdb/install/support/cfg

hostname:/hana/shared # grep . -r */global/hdb/install/support/cfg
MOD/global/hdb/install/support/cfg:{'installation_path': '/hana/shared',
MOD/global/hdb/install/support/cfg: 'sapsys_groupid': 79,
MOD/global/hdb/install/support/cfg: 'sidadm_comment': 'SAP HANA Database System Administrator',
MOD/global/hdb/install/support/cfg: 'sidadm_home': '/usr/sap/MOD/home',
MOD/global/hdb/install/support/cfg: 'sidadm_id': 1001,
MOD/global/hdb/install/support/cfg: 'sidadm_shell': '/bin/sh'}
PQL/global/hdb/install/support/cfg:{'installation_path': '/hana/shared',
PQL/global/hdb/install/support/cfg: 'sapsys_groupid': 79,
PQL/global/hdb/install/support/cfg: 'sidadm_comment': 'SAP HANA Database System Administrator',
PQL/global/hdb/install/support/cfg: 'sidadm_home': '/usr/sap/PQL/home',
PQL/global/hdb/install/support/cfg: 'sidadm_id': 1000,
PQL/global/hdb/install/support/cfg: 'sidadm_shell': '/bin/sh'}