top of page
Search
  • Writer's pictureNikhil 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())





538 views0 comments

Comments


bottom of page