Changing the time zone of the Cognos Analytics service instance

Change the time zone of the Cognos Analytics service instance to a time zone that is different from that of the Cloud Pak for Data cluster.

You can set the time zone of the Cognos Analytics service instance to the time zone for your local time zone. For example, the cluster time zone is Pacific Standard Time (PST) and you need the Cognos Analytics service to run scheduled activities in Eastern Standard Time (EST).

Synopsis

set_server_timezone.sh [-h] -t tethered_namespace -z time_zone

Options

-z server_time_zone_id
The time zone of the Cognos Analytics service instance. The server_time_zone_id follows the Java format. For example, America/Toronto.
-t tethered_namespace
Tethered namespace or project to change the time zone.
-h
Prints help to the console and exits.

Example

The following example sets the time of your Cognos Analytics service instance to the time zone of Toronto, Ontario, Canada:

./set_server_timezone.sh -t NAMESPACE -z America/Toronto

Script file

The set_server_timezone.sh script is a file with the following content:

#!/usr/bin/env bash
#
# -----------------------------------------------------------------------------
#         Licensed Materials - Property of IBM
#
#         IBM Cognos Products: ca
#
#         (C) Copyright IBM Corp. 2024
#
#         US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule
# -----------------------------------------------------------------------------
#
#

#set -e
#set -x

check_status=""

function usage {
    echo $0: usage: $0 [-h] -t tethered namespace -z server_time_zone_id
}

function help {
    usage
    echo "-h                    prints help to the console"
    echo "-t tethered namespace namespace to change cognos time zone id (required)"
    echo "-z time zone          server time zone id e.g. America/Toronto (required)"
    echo ""
    exit 0
}

function isValidTZ {

arraytz=("Africa/Abidjan" \
  "Africa/Accra" \
  "Africa/Addis_Ababa" \
  "Africa/Algiers" \
  "Africa/Asmera" \
  "Africa/Bangui" \
  "Africa/Banjul" \
  "Africa/Bissau" \
  "Africa/Blantyre" \
  "Africa/Bujumbura" \
  "Africa/Cairo" \
  "Africa/Casablanca" \
  "Africa/Conakry" \
  "Africa/Dakar" \
  "Africa/Dar_es_Salaam" \
  "Africa/Djibouti" \
  "Africa/Douala" \
  "Africa/Freetown" \
  "Africa/Gaborone" \
  "Africa/Harare" \
  "Africa/Johannesburg" \
  "Africa/Kampala" \
  "Africa/Khartoum" \
  "Africa/Kigali" \
  "Africa/Kinshasa" \
  "Africa/Lagos" \
  "Africa/Libreville" \
  "Africa/Lome" \
  "Africa/Luanda" \
  "Africa/Lubumbashi" \
  "Africa/Lusaka" \
  "Africa/Malabo" \
  "Africa/Maputo" \
  "Africa/Maseru" \
  "Africa/Mbabane" \
  "Africa/Mogadishu" \
  "Africa/Monrovia" \
  "Africa/Nairobi" \
  "Africa/Ndjamena" \
  "Africa/Niamey" \
  "Africa/Nouakchott" \
  "Africa/Ouagadougou" \
  "Africa/Porto-Novo" \
  "Africa/Sao_Tome" \
  "Africa/Timbuktu" \
  "Africa/Tripoli" \
  "Africa/Tunis" \
  "Africa/Windhoek" \
  "America/Adak" \
  "America/Anchorage" \
  "America/Anguilla" \
  "America/Antigua" \
  "America/Argentina/Buenos_Aires" \
  "America/Argentina/Catamarca" \
  "America/Argentina/Cordoba" \
  "America/Argentina/Jujuy" \
  "America/Argentina/La_Rioja" \
  "America/Argentina/Mendoza" \
  "America/Argentina/Rio_Gallegos" \
  "America/Argentina/Salta" \
  "America/Argentina/San_Juan" \
  "America/Argentina/San_Luis" \
  "America/Argentina/Tucuman" \
  "America/Argentina/Ushuaia" \
  "America/Aruba" \
  "America/Asuncion" \
  "America/Atikokan" \
  "America/Barbados" \
  "America/Belize" \
  "America/Bogota" \
  "America/Buenos_Aires" \
  "America/Cancun" \
  "America/Caracas" \
  "America/Cayenne" \
  "America/Cayman" \
  "America/Chicago" \
  "America/Costa_Rica" \
  "America/Cuiaba" \
  "America/Curacao" \
  "America/Dawson_Creek" \
  "America/Denver" \
  "America/Dominica" \
  "America/Edmonton" \
  "America/El_Salvador" \
  "America/Fortaleza" \
  "America/Godthab" \
  "America/Grand_Turk" \
  "America/Grenada" \
  "America/Guadeloupe" \
  "America/Guatemala" \
  "America/Guayaquil" \
  "America/Guyana" \
  "America/Halifax" \
  "America/Havana" \
  "America/Indiana/Indianapolis" \
  "America/Indiana/Knox" \
  "America/Indianapolis" \
  "America/Jamaica" \
  "America/Kentucky/Louisville" \
  "America/Kentucky/Monticello" \
  "America/La_Paz" \
  "America/Lima" \
  "America/Los_Angeles" \
  "America/Managua" \
  "America/Manaus" \
  "America/Martinique" \
  "America/Mazatlan" \
  "America/Mexico_City" \
  "America/Miquelon" \
  "America/Moncton" \
  "America/Montevideo" \
  "America/Montreal" \
  "America/Montserrat" \
  "America/Nassau" \
  "America/New_York" \
  "America/Noronha" \
  "America/Panama" \
  "America/Paramaribo" \
  "America/Phoenix" \
  "America/Port-au-Prince" \
  "America/Port_of_Spain" \
  "America/Puerto_Rico" \
  "America/Regina" \
  "America/Rio_Branco" \
  "America/Santiago" \
  "America/Santo_Domingo" \
  "America/Sao_Paulo" \
  "America/Scoresbysund" \
  "America/St_Johns" \
  "America/St_Kitts" \
  "America/St_Lucia" \
  "America/St_Thomas" \
  "America/St_Vincent" \
  "America/Tegucigalpa" \
  "America/Thule" \
  "America/Tijuana" \
  "America/Toronto" \
  "America/Tortola" \
  "America/Vancouver" \
  "America/Whitehorse" \
  "America/Winnipeg" \
  "Antarctica/Casey" \
  "Antarctica/DumontDUrville" \
  "Antarctica/Mawson" \
  "Antarctica/McMurdo" \
  "Antarctica/Palmer" \
  "Asia/Aden" \
  "Asia/Almaty" \
  "Asia/Amman" \
  "Asia/Anadyr" \
  "Asia/Aqtau" \
  "Asia/Aqtobe" \
  "Asia/Ashkhabad" \
  "Asia/Baghdad" \
  "Asia/Bahrain" \
  "Asia/Baku" \
  "Asia/Bangkok" \
  "Asia/Beirut" \
  "Asia/Bishkek" \
  "Asia/Brunei" \
  "Asia/Calcutta" \
  "Asia/Colombo" \
  "Asia/Dacca" \
  "Asia/Damascus" \
  "Asia/Dhaka" \
  "Asia/Dubai" \
  "Asia/Dushanbe" \
  "Asia/Ho_Chi_Minh" \
  "Asia/Hong_Kong" \
  "Asia/Irkutsk" \
  "Asia/Jakarta" \
  "Asia/Jayapura" \
  "Asia/Jerusalem" \
  "Asia/Kabul" \
  "Asia/Kamchatka" \
  "Asia/Karachi" \
  "Asia/Katmandu" \
  "Asia/Kolkata" \
  "Asia/Krasnoyarsk" \
  "Asia/Kuala_Lumpur" \
  "Asia/Kuwait" \
  "Asia/Macao" \
  "Asia/Magadan" \
  "Asia/Manila" \
  "Asia/Muscat" \
  "Asia/Nicosia" \
  "Asia/Novosibirsk" \
  "Asia/Phnom_Penh" \
  "Asia/Pyongyang" \
  "Asia/Qatar" \
  "Asia/Rangoon" \
  "Asia/Riyadh" \
  "Asia/Riyadh87" \
  "Asia/Riyadh88" \
  "Asia/Riyadh89" \
  "Asia/Seoul" \
  "Asia/Shanghai" \
  "Asia/Singapore" \
  "Asia/Taipei" \
  "Asia/Tashkent" \
  "Asia/Tbilisi" \
  "Asia/Tehran" \
  "Asia/Tel_Aviv" \
  "Asia/Thimbu" \
  "Asia/Tokyo" \
  "Asia/Ujung_Pandang" \
  "Asia/Ulaanbaatar" \
  "Asia/Vientiane" \
  "Asia/Vladivostok" \
  "Asia/Yakutsk" \
  "Asia/Yekaterinburg" \
  "Asia/Yerevan" \
  "Atlantic/Azores" \
  "Atlantic/Bermuda" \
  "Atlantic/Canary" \
  "Atlantic/Cape_Verde" \
  "Atlantic/Faeroe" \
  "Atlantic/Jan_Mayen" \
  "Atlantic/Reykjavik" \
  "Atlantic/South_Georgia" \
  "Atlantic/St_Helena" \
  "Atlantic/Stanley" \
  "Australia/Adelaide" \
  "Australia/Brisbane" \
  "Australia/Broken_Hill" \
  "Australia/Darwin" \
  "Australia/Hobart" \
  "Australia/Lord_Howe" \
  "Australia/Melbourne" \
  "Australia/Perth" \
  "Australia/Sydney" \
  "Europe/Amsterdam" \
  "Europe/Andorra" \
  "Europe/Athens" \
  "Europe/Belgrade" \
  "Europe/Berlin" \
  "Europe/Brussels" \
  "Europe/Bucharest" \
  "Europe/Budapest" \
  "Europe/Chisinau" \
  "Europe/Copenhagen" \
  "Europe/Dublin" \
  "Europe/Gibraltar" \
  "Europe/Helsinki" \
  "Europe/Istanbul" \
  "Europe/Kaliningrad" \
  "Europe/Kiev" \
  "Europe/Lisbon" \
  "Europe/London" \
  "Europe/Luxembourg" \
  "Europe/Madrid" \
  "Europe/Malta" \
  "Europe/Minsk" \
  "Europe/Monaco" \
  "Europe/Moscow" \
  "Europe/Oslo" \
  "Europe/Paris" \
  "Europe/Prague" \
  "Europe/Riga" \
  "Europe/Rome" \
  "Europe/Samara" \
  "Europe/Simferopol" \
  "Europe/Sofia" \
  "Europe/Stockholm" \
  "Europe/Tallinn" \
  "Europe/Tirane" \
  "Europe/Vaduz" \
  "Europe/Vienna" \
  "Europe/Vilnius" \
  "Europe/Warsaw" \
  "Europe/Zurich" \
  "GMT" \
  "Indian/Antananarivo" \
  "Indian/Chagos" \
  "Indian/Christmas" \
  "Indian/Cocos" \
  "Indian/Comoro" \
  "Indian/Kerguelen" \
  "Indian/Mahe" \
  "Indian/Maldives" \
  "Indian/Mauritius" \
  "Indian/Mayotte" \
  "Indian/Reunion" \
  "Pacific/Apia" \
  "Pacific/Auckland" \
  "Pacific/Chatham" \
  "Pacific/Easter" \
  "Pacific/Efate" \
  "Pacific/Enderbury" \
  "Pacific/Fakaofo" \
  "Pacific/Fiji" \
  "Pacific/Funafuti" \
  "Pacific/Galapagos" \
  "Pacific/Gambier" \
  "Pacific/Guadalcanal" \
  "Pacific/Guam" \
  "Pacific/Honolulu" \
  "Pacific/Kiritimati" \
  "Pacific/Kosrae" \
  "Pacific/Kwajalein" \
  "Pacific/Majuro" \
  "Pacific/Marquesas" \
  "Pacific/Nauru" \
  "Pacific/Niue" \
  "Pacific/Norfolk" \
  "Pacific/Noumea" \
  "Pacific/Pago_Pago" \
  "Pacific/Palau" \
  "Pacific/Pitcairn" \
  "Pacific/Ponape" \
  "Pacific/Port_Moresby" \
  "Pacific/Rarotonga" \
  "Pacific/Saipan" \
  "Pacific/Tahiti" \
  "Pacific/Tarawa" \
  "Pacific/Tongatapu" \
  "Pacific/Truk" \
  "Pacific/Wake" \
  "Pacific/Wallis" \
  "UTC")

  for i in ${arraytz[@]}; do
	if [[ "${i}" == "${1}" ]]; then
		return 0;
	fi
  done
  echo "Invalid Time Zone Id specified:  $1."
  help
}


while getopts ":ht:z:" opt; do
     case ${opt} in
     h)
        help
        ;;
     t)
        namespace=$OPTARG
        ;;
     z)
        server_timezone_id=$OPTARG
        ;;
     \?)
        usage
        exit 0
        ;;
     esac
done

if [ -z $namespace ]; then
    echo "A tethered namespace must be provided"
    help
fi

if [ -z $server_timezone_id ]; then
    echo "A server time zone id must be provided"
    help
fi

isValidTZ $server_timezone_id

cr_name=$(oc -n ${namespace} get caserviceinstance --no-headers -o custom-columns=NAME:.metadata.name)

if [ -z $cr_name ]; then
    echo "Unable to find CAServiceInstance CR for namespace: ${namespace}"
    help
fi

echo "Setting cognos server time zone: ${cr_name} ..."
oc patch caserviceinstance ${cr_name} --type merge -p "{\"spec\":{\"cogServerTimeZoneId\":\"${server_timezone_id}\"}}" -n ${namespace}
check_status="Completed"

sleep 20

# Checking status of ca shutdown action
for i in {1..240};do
    caStatus=$(oc get caserviceinstance ${cr_name} -o jsonpath="{.status.caStatus}" -n ${namespace})

    if [[ ${caStatus} == ${check_status} ]];then
        echo "ca ${check_status} Successfully"
        break
    elif [[ ${caStatus} == "Failed" ]];then
        echo "ca ${caStatus}!"
        exit 1
    fi
    echo "ca Status: ${caStatus}"
    sleep 30
done