Search
  • Nikhil Verma

How to connect Vmware Horizon 8.0 using REST API

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())




16 views0 comments

Recent Posts

See All