1 |
#!/bin/sh |
# $Id$ |
2 |
|
|
3 |
# set_session_addmenuitem $name $exec $workdir $icon |
push_config 70_citrix_serverlist |
4 |
set_session_addmenuitem() |
push_config 80_citrix_session |
5 |
|
|
6 |
|
help_citrix_serverlist() |
7 |
{ |
{ |
8 |
local serial="${CLASS_ARGV[0]}" |
local serial="${CLASS_ARGV[0]}" |
9 |
local name="${CLASS_ARGV[1]}" |
control_client "${serial}" help citrix.serverlist |
|
local exec="${CLASS_ARGV[2]}" |
|
|
local workdir="${CLASS_ARGV[3]}" |
|
|
local icon="${CLASS_ARGV[4]}" |
|
10 |
|
|
11 |
mysql_insert cfg_other_menuitems,serial="${serial}",name="${name}",exec="${exec}",workdir="${workdir}",icon="${workdir}" |
mecho "get citrix.serverlist [action]" |
12 |
|
mecho " Shows all hosts added on the serverlist." |
13 |
|
mecho " [actions]:" |
14 |
|
mecho " print - prints local configured serverlist" |
15 |
|
mecho " query - get serverlist of the farm from given [server]" |
16 |
|
mecho |
17 |
|
mecho "set citrix.serverlist [action] [host]" |
18 |
|
mecho " Adds or deletes a server from the ica serverlist." |
19 |
|
mecho " [actions]:" |
20 |
|
mecho " add - adds a server" |
21 |
|
mecho " del - deletes a server" |
22 |
|
mecho " auto - queries given [server] for the serverlist and adds all of them" |
23 |
|
mecho |
24 |
|
mecho " host - dns hostname or ip of the server" |
25 |
|
mecho |
26 |
|
mecho " If no [host] was given, all entries are deleted." |
27 |
} |
} |
28 |
|
|
29 |
# control_session_addmenuitem $serial |
help_citrix_session() |
|
control_session_addmenuitem() |
|
30 |
{ |
{ |
31 |
local serial="${CLASS_ARGV[0]}" |
local serial="${CLASS_ARGV[0]}" |
32 |
local all |
control_client "${serial}" help citrix.session |
|
local item |
|
33 |
|
|
34 |
# retvals of evaluate_table_xml |
mecho "get citrix.session" |
35 |
local cfg_other_menuitems_serial |
mecho " Shows all configured ICA sessions" |
36 |
local cfg_other_menuitems_id |
mecho " print - prints all local configured sessions" |
37 |
local cfg_other_menuitems_name |
mecho " query - get sessionlist of the farm from given [server]" |
38 |
local cfg_other_menuitems_exec |
mecho |
39 |
local cfg_other_menuitems_workdir |
mecho "set citrix.session [action] [name] [session] [mode] [user] [domain] [password]" |
40 |
local cfg_other_menuitems_icon |
mecho " Adds or delets a ICA session." |
41 |
|
mecho " Available actions:" |
42 |
|
mecho " add - adds a new ica session" |
43 |
|
mecho " del - deletes ica session with name [name]" |
44 |
|
mecho " if no [name] given, all sessions will be deleted" |
45 |
|
mecho |
46 |
|
mecho " Available modes:" |
47 |
|
mecho " fullscreen - fullscreen session" |
48 |
|
mecho " seamless - seamless windows session" |
49 |
|
mecho " *x* - windowed session with given resolution" |
50 |
|
mecho " any resonable resolution is fine like:" |
51 |
|
mecho " 1024x768, 1280x1024, 1440x900 etc" |
52 |
|
mecho |
53 |
|
mecho " session - name of the Citrix session" |
54 |
|
mecho " user - user inside the session - optional" |
55 |
|
mecho " domain - logon domain of the user - optional" |
56 |
|
mecho " password - password of the user - optional" |
57 |
|
} |
58 |
|
|
59 |
all=$(mysqldo "select name from cfg_other_menuitems where serial='${serial}'") |
set_citrix_session() |
60 |
for item in ${all} |
{ |
61 |
do |
local serial="${CLASS_ARGV[0]}" |
62 |
# first of all get the vars |
local action="${CLASS_ARGV[1]}" |
63 |
evaluate_table_xml cfg_other_menuitems "where serial='${serial}' and name='${item}'" |
local name="${CLASS_ARGV[2]}" |
64 |
|
local session="${CLASS_ARGV[3]}" |
65 |
|
local mode="${CLASS_ARGV[4]}" |
66 |
|
local user="${CLASS_ARGV[5]}" |
67 |
|
local domain="${CLASS_ARGV[6]}" |
68 |
|
local password="${CLASS_ARGV[7]}" |
69 |
|
local id |
70 |
|
local enabled |
71 |
|
|
72 |
|
case "${action}" in |
73 |
|
add) enabled=1 ;; |
74 |
|
del) enabled=0 ;; |
75 |
|
*) |
76 |
|
eecho "Unknown action '${action}'" |
77 |
|
return 1 |
78 |
|
;; |
79 |
|
esac |
80 |
|
|
81 |
|
if [[ -z ${name} ]] |
82 |
|
then |
83 |
|
eecho "No name given" |
84 |
|
return 1 |
85 |
|
fi |
86 |
|
|
87 |
|
id=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}' and name='${name}';") |
88 |
|
if [[ -n ${id} ]] |
89 |
|
then |
90 |
|
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};" |
91 |
|
else |
92 |
|
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}');" |
93 |
|
fi |
94 |
|
} |
95 |
|
|
96 |
|
control_citrix_session() |
97 |
|
{ |
98 |
|
local serial="${CLASS_ARGV[0]}" |
99 |
|
push_config_80_citrix_session "${serial}" |
100 |
|
} |
101 |
|
|
102 |
|
push_config_80_citrix_session() |
103 |
|
{ |
104 |
|
local serial="$1" |
105 |
|
local values |
106 |
|
local id |
107 |
|
|
108 |
control_client "${serial}" set session.addmenuitem \ |
values=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}';") |
109 |
"${cfg_other_menuitems_name}" \ |
for id in ${values} |
110 |
"${cfg_other_menuitems_exec}" \ |
do |
111 |
"${cfg_other_menuitems_workdir}" \ |
evaluate_table_xml cfg_sessions_citrix "where serial='${serial}'" |
112 |
"${cfg_other_menuitems_icon}" |
if [[ -z ${cfg_sessions_citrix_session} ]] |
113 |
|
then |
114 |
|
eecho "Session must not be empty id->'${id}'" |
115 |
|
continue |
116 |
|
fi |
117 |
|
if [[ -z ${cfg_sessions_citrix_enabled} ]] |
118 |
|
then |
119 |
|
eecho "Enabled must not be empty id->'${id}'" |
120 |
|
continue |
121 |
|
fi |
122 |
|
if [[ ${cfg_sessions_citrix_enabled} = 1 ]] |
123 |
|
then |
124 |
|
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}" |
125 |
|
elif [[ ${cfg_sessions_citrix_enabled} = 0 ]] |
126 |
|
then |
127 |
|
control_client "${serial}" set citrix.session del "${cfg_sessions_citrix_name}" |
128 |
|
# remove from database too |
129 |
|
mysqldo "delete from cfg_sessions_citrix where id='${id}';" |
130 |
|
else |
131 |
|
eecho "unknown enabled value id->'${id}', cfg_sessions_citrix_enabled -> '${cfg_sessions_citrix_enabled}'" |
132 |
|
return 1 |
133 |
|
fi |
134 |
done |
done |
135 |
} |
} |
136 |
|
|
137 |
# set_session_delmenuitem |
set_citrix_serverlist() |
|
control_session_delmenuitem() |
|
138 |
{ |
{ |
139 |
local serial="${CLASS_ARGV[0]}" |
local serial="${CLASS_ARGV[0]}" |
140 |
|
local action="${CLASS_ARGV[1]}" |
141 |
|
local host="${CLASS_ARGV[2]}" |
142 |
|
local id |
143 |
|
local enabled |
144 |
|
|
145 |
|
case "${action}" in |
146 |
|
add) enabled=1 ;; |
147 |
|
del) enabled=0 ;; |
148 |
|
*) |
149 |
|
eecho "Unknown action '${action}'" |
150 |
|
return 1 |
151 |
|
;; |
152 |
|
esac |
153 |
|
|
154 |
|
if [[ -z ${store} ]] |
155 |
|
then |
156 |
|
eecho "No store given" |
157 |
|
return 1 |
158 |
|
fi |
159 |
|
|
160 |
|
id=$(mysqldo "select id from cfg_citrix_serverlist where serial='${serial}' and host='${host}';") |
161 |
|
if [[ -n ${id} ]] |
162 |
|
then |
163 |
|
mysqldo "update cfg_citrix_serverlist set host='${host}', enabled='${enabled}' where id=${id};" |
164 |
|
else |
165 |
|
mysqldo "insert into cfg_citrx_serverlist(serial, store, enabled) values('${serial}', '${store}', '${enabled}');" |
166 |
|
fi |
167 |
|
} |
168 |
|
|
169 |
# no arguments given to del all items! |
control_citrix_serverlist() |
170 |
control_client "${serial}" set session.delmenuitem |
{ |
171 |
|
local serial="${CLASS_ARGV[0]}" |
172 |
|
push_config_70_citrix_serverlist "${serial}" |
173 |
|
} |
174 |
|
|
175 |
|
push_config_70_citrix_serverlist() |
176 |
|
{ |
177 |
|
local serial="$1" |
178 |
|
local values |
179 |
|
local id |
180 |
|
|
181 |
|
values=$(mysqldo "select id from cfg_citrix_serverlist where serial='${serial}';") |
182 |
|
for id in ${values} |
183 |
|
do |
184 |
|
evaluate_table_xml cfg_citrix_serverlist "where serial='${serial}'" |
185 |
|
if [[ -z ${cfg_citrix_serverlist_host} ]] |
186 |
|
then |
187 |
|
eecho "Host must not be empty id->'${id}'" |
188 |
|
continue |
189 |
|
fi |
190 |
|
if [[ -z ${cfg_citrix_serverlist_enabled} ]] |
191 |
|
then |
192 |
|
eecho "Enabled must not be empty id->'${id}'" |
193 |
|
continue |
194 |
|
fi |
195 |
|
if [[ ${cfg_citrix_serverlist_enabled} = 1 ]] |
196 |
|
then |
197 |
|
control_client "${serial}" set citrix.serverlist add "${cfg_citrix_serverlist_host}" |
198 |
|
elif [[ ${cfg_citrix_serverlist_enabled} = 0 ]] |
199 |
|
then |
200 |
|
control_client "${serial}" set citrix.serverlist del "${cfg_citrix_serverlist_host}" |
201 |
|
# remove from database too |
202 |
|
mysqldo "delete from cfg_citrix_serverlist where id='${id}';" |
203 |
|
else |
204 |
|
eecho "unknown enabled value id->'${id}', cfg_citrix_serverlist_enabled -> '${cfg_citrix_serverlist_enabled}'" |
205 |
|
return 1 |
206 |
|
fi |
207 |
|
done |
208 |
} |
} |