top of page
  • Twitter Social Icon
  • LinkedIn Social Icon
  • Facebook Social Icon
Search

How to connect Vmware Horizon 8.0 using REST API

Writer's picture: Nikhil VermaNikhil Verma

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


  • Grey Twitter Icon
  • Grey LinkedIn Icon
  • Grey Facebook Icon
bottom of page