From Horizon 7.10 we are seeing Horizon REST API which is very useful in automation and reporting.
Purpose of this Blog :
=> How to generate token in Horizon REST API
=> How to get information with the help of token's , this would helpful for reporting.
=> How to make changes using restful API's.
Generate Horizon REST token:
import requests
requests.packages.urllib3.disable_warnings()
import json
url = "https://horzionserver/rest/login"
data1 = {
"username": "username",
"password": "password",
"domain": "domain"
}
headers = {'Content-type': 'application/json'}
auth_response =
requests.post(url,verify=False,headers=headers,data=json.dumps(data1))
auth_response.json()
auth_response_json = auth_response.json()
auth_token = auth_response_json["access_token"]
refresh_token = auth_response_json["refresh_token"]

Get Info about Environment properties using REST API
url2 = "https://horizonserver/rest/config/v1/environment-properties"
env_settings = requests.get(url2,verify=False,headers={"Authorization":"Bearer " + auth_token})
print(env_settings.json())

Get General settings info :
url3 = "https://horizonserver/rest/config/v1/settings/general"
headtest = {
'Content-type': 'application/json',
'Authorization':'Bearer ' + auth_token
}
gen_settings = requests.get(url3,verify=False,headers=headtest)
print(gen_settings.json(),"\n")

Now we will change General settings "Hide domain list in client" :
url3 = "https://horizonserver/rest/config/v1/settings/general"
headtest = {
'Content-type': 'application/json',
'Authorization':'Bearer ' + auth_token
}
payload ={
"client_max_session_timeout_policy": "NEVER",
"client_idle_session_timeout_policy": "NEVER",
"client_session_timeout_minutes": 1200,
"display_pre_login_message": False,
"enable_server_in_single_user_mode": False,
"console_session_timeout_minutes": 480,
"enable_automatic_status_updates": False,
"enable_sending_domain_list": False,
"enable_credential_cleanup_for_htmlaccess": True,
"hide_server_information_in_client": False,
"hide_domain_list_in_client": True,
"display_warning_before_forced_logoff": True,
"forced_logoff_timeout_minutes": 5,
"forced_logoff_message": "Your desktop is scheduled for an important update and will shut down in 5 minutes. Please save any unsaved work now",
"enable_multi_factor_re_authentication": False,
"block_restricted_clients": True,
"restricted_client_data": [
{
"type": "WINDOWS",
"version": "xxx"
}
],
"machine_sso_timeout_policy": "DISABLED_AFTER",
"machine_sso_timeout_minutes": 15,
"application_sso_timeout_policy": "ENABLED",
"store_cal_on_connection_server": True,
"store_cal_on_client": True
}
r = requests.put(url3,verify=False,data= json.dumps(payload),headers=headtest)
gen_settings = requests.get(url3,verify=False,headers=headtest)
print(gen_settings.json())

Comments