# $Id$ push_config 70_citrix_serverlist push_config 80_citrix_session help_citrix_serverlist() { local serial="${CLASS_ARGV[0]}" control_client "${serial}" help citrix.serverlist mecho "get citrix.serverlist [action]" mecho " Shows all hosts added on the serverlist." mecho " [actions]:" mecho " print - prints local configured serverlist" mecho " query - get serverlist of the farm from given [server]" mecho mecho "set citrix.serverlist [action] [host]" mecho " Adds or deletes a server from the ica serverlist." mecho " [actions]:" mecho " add - adds a server" mecho " del - deletes a server" mecho " auto - queries given [server] for the serverlist and adds all of them" mecho mecho " host - dns hostname or ip of the server" mecho mecho " If no [host] was given, all entries are deleted." } help_citrix_session() { local serial="${CLASS_ARGV[0]}" control_client "${serial}" help citrix.session mecho "get citrix.session" mecho " Shows all configured ICA sessions" mecho " print - prints all local configured sessions" mecho " query - get sessionlist of the farm from given [server]" mecho mecho "set citrix.session [action] [name] [session] [mode] [user] [domain] [password]" mecho " Adds or delets a ICA session." mecho " Available actions:" mecho " add - adds a new ica session" mecho " del - deletes ica session with name [name]" mecho " if no [name] given, all sessions will be deleted" mecho mecho " Available modes:" mecho " fullscreen - fullscreen session" mecho " seamless - seamless windows session" mecho " *x* - windowed session with given resolution" mecho " any resonable resolution is fine like:" mecho " 1024x768, 1280x1024, 1440x900 etc" mecho mecho " session - name of the Citrix session" mecho " user - user inside the session - optional" mecho " domain - logon domain of the user - optional" mecho " password - password of the user - optional" } set_citrix_session() { local serial="${CLASS_ARGV[0]}" local action="${CLASS_ARGV[1]}" local name="${CLASS_ARGV[2]}" local session="${CLASS_ARGV[3]}" local mode="${CLASS_ARGV[4]}" local user="${CLASS_ARGV[5]}" local domain="${CLASS_ARGV[6]}" local password="${CLASS_ARGV[7]}" local id local enabled case "${action}" in add) enabled=1 ;; del) enabled=0 ;; *) eecho "Unknown action '${action}'" return 1 ;; esac if [[ -z ${name} ]] then eecho "No name given" return 1 fi id=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}' and name='${name}';") if [[ -n ${id} ]] then mysqldo "update cfg_sessions_citrix set name='${name}', session='${session}', filename='${filename}', username='${username}', domain='${domain}', password='${password}', browseradrs='${browseradrs}', enabled='${enabled}' where id=${id};" else mysqldo "insert into cfg_sessions_citrix(serial, name, session, filename, username, domain, password, browseradrs, enabled) values('${serial}', '${name}', '${session}', ${store}', '${filename}', '${domain}', '${password}', '${browseradrs}', '${enabled}');" fi } control_citrix_session() { local serial="${CLASS_ARGV[0]}" push_config_80_citrix_session "${serial}" } push_config_80_citrix_session() { local serial="$1" local values local id values=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}';") for id in ${values} do evaluate_table_xml cfg_sessions_citrix "where serial='${serial}'" if [[ -z ${cfg_sessions_citrix_session} ]] then eecho "Session must not be empty id->'${id}'" continue fi if [[ -z ${cfg_sessions_citrix_enabled} ]] then eecho "Enabled must not be empty id->'${id}'" continue fi if [[ ${cfg_sessions_citrix_enabled} = 1 ]] then control_client "${serial}" set citrix.session add "${cfg_sessions_citrix_name}" "${cfg_sessions_citrix_session}" "${cfg_sessions_citrix_store}" "${cfg_sessions_citrix_username}" "${cfg_sessions_citrix_domain} ${cfg_sessions_citrix_password}" elif [[ ${cfg_sessions_citrix_enabled} = 0 ]] then control_client "${serial}" set citrix.session del "${cfg_sessions_citrix_name}" # remove from database too mysqldo "delete from cfg_sessions_citrix where id='${id}';" else eecho "unknown enabled value id->'${id}', cfg_sessions_citrix_enabled -> '${cfg_sessions_citrix_enabled}'" return 1 fi done } set_citrix_serverlist() { local serial="${CLASS_ARGV[0]}" local action="${CLASS_ARGV[1]}" local host="${CLASS_ARGV[2]}" local id local enabled case "${action}" in add) enabled=1 ;; del) enabled=0 ;; *) eecho "Unknown action '${action}'" return 1 ;; esac if [[ -z ${store} ]] then eecho "No store given" return 1 fi id=$(mysqldo "select id from cfg_citrix_serverlist where serial='${serial}' and host='${host}';") if [[ -n ${id} ]] then mysqldo "update cfg_citrix_serverlist set host='${host}', enabled='${enabled}' where id=${id};" else mysqldo "insert into cfg_citrx_serverlist(serial, store, enabled) values('${serial}', '${store}', '${enabled}');" fi } control_citrix_serverlist() { local serial="${CLASS_ARGV[0]}" push_config_70_citrix_serverlist "${serial}" } push_config_70_citrix_serverlist() { local serial="$1" local values local id values=$(mysqldo "select id from cfg_citrix_serverlist where serial='${serial}';") for id in ${values} do evaluate_table_xml cfg_citrix_serverlist "where serial='${serial}'" if [[ -z ${cfg_citrix_serverlist_host} ]] then eecho "Host must not be empty id->'${id}'" continue fi if [[ -z ${cfg_citrix_serverlist_enabled} ]] then eecho "Enabled must not be empty id->'${id}'" continue fi if [[ ${cfg_citrix_serverlist_enabled} = 1 ]] then control_client "${serial}" set citrix.serverlist add "${cfg_citrix_serverlist_host}" elif [[ ${cfg_citrix_serverlist_enabled} = 0 ]] then control_client "${serial}" set citrix.serverlist del "${cfg_citrix_serverlist_host}" # remove from database too mysqldo "delete from cfg_citrix_serverlist where id='${id}';" else eecho "unknown enabled value id->'${id}', cfg_citrix_serverlist_enabled -> '${cfg_citrix_serverlist_enabled}'" return 1 fi done }