#!/bin/bash # # Example API call script for Die Mobiliar # v0.3 - James Pattinson - June 2022 # # Set the backup settings for a given Oracle DB # # usage: oracle_set_config.sh # # Log backup of 0 disables log backup # host retention of -1 disables host log retention MYDIR="$(dirname "$(realpath "$0")")" # source $MYDIR/rbk_api.conf source $MYDIR/oracle_funcs_new.sh usage() { echo "Usage: $0 -s -f -r -h " 1>&2; echo ""; exit 1; } dg=0 while getopts "s:f:r:h:" o; do case "${o}" in s) RBK_SLA=${OPTARG} ;; f) log_freq=${OPTARG} ;; r) log_retn=${OPTARG} ;; h) host_retn=${OPTARG} ;; *) usage ;; esac done shift $((OPTIND-1)) #RBK_SLA=$1 if [ -z "${RBK_SLA}" ] || [ -z "${log_freq}" ] || [ -z "${log_retn}" ] || [ -z "${host_retn}" ]; then echo "" usage echo "" fi #log_freq=$2 #log_retn=$3 #host_retn=$4 echo Connecting to Rubrik with IP $RUBRIK_IP # Encode the SLA name for curl RBK_SLA_SAFE=$(printf %s "${RBK_SLA}" |jq -sRr @uri) # API call to list SLAs ENDPOINT=https://$RUBRIK_IP/api/v1/sla_domain?name=$RBK_SLA_SAFE rest_api_get total=$(cat /tmp/rbkresponse.$$ | jq -r '.total') if [ $total -ne 1 ]; then echo SLA not found, or more than one SLA matches input of \"$RBK_SLA\" echo Please run again and specify one of: cat /tmp/rbkresponse.$$ | jq -r '.data[].name' exit_with_error fi sla_id=$(cat /tmp/rbkresponse.$$ | jq -r '.data[0].id') # API call to set configuration #PAYLOAD={\"logBackupFrequencyInMinutes\":$log_freq,\"logRetentionHours\":$log_retn,\"hostLogRetentionHours\":$host_retn,\"numChannels\":$channels} #PAYLOAD={\"numChannels\":$channels,\"hasLogConfigFromSla\":true} ((logrtn_min = $log_retn * 60 * 24)) if [ $host_retn -gt 0 ]; then ((hostrtn_min = $host_retn * 60)) else hostrtn_min=$host_retn fi echo "titi" ENDPOINT=https://$RUBRIK_IP/api/v2/sla_domain/${sla_id}?should_apply_to_existing_snapshots=false&should_apply_to_non_policy_snapshots=false echo "titi" PAYLOAD="{\"logConfig\":{},\"logConfigs\":{\"OracleDatabase\":{\"slaLogFrequencyConfig\":{\"logFrequencyType\":\"Minute\",\"retention\":$logrtn_min,\"freqency\":$log_freq},\"hostLogRetentionInMinutes\":$hostrtn_min}}}" echo "titi" rest_api_patch echo "titi" echo New configuration for $RBK_SID on $RBK_HOST is set cleanup