Magellan Linux

Contents of /mcore-src/trunk/mcore-tools/src/modules/citrix/citrix.control.class.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2627 - (show annotations) (download)
Tue Sep 29 10:03:39 2015 UTC (8 years, 7 months ago) by niro
File size: 6288 byte(s)
-reworked citrix control class and install it
1 # $Id$
2
3 push_config 70_citrix_serverlist
4 push_config 80_citrix_session
5
6 help_citrix_serverlist()
7 {
8 local serial="${CLASS_ARGV[0]}"
9 control_client "${serial}" help citrix.serverlist
10
11 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 help_citrix_session()
30 {
31 local serial="${CLASS_ARGV[0]}"
32 control_client "${serial}" help citrix.session
33
34 mecho "get citrix.session"
35 mecho " Shows all configured ICA sessions"
36 mecho " print - prints all local configured sessions"
37 mecho " query - get sessionlist of the farm from given [server]"
38 mecho
39 mecho "set citrix.session [action] [name] [session] [mode] [user] [domain] [password]"
40 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 set_citrix_session()
60 {
61 local serial="${CLASS_ARGV[0]}"
62 local action="${CLASS_ARGV[1]}"
63 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 values=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}';")
109 for id in ${values}
110 do
111 evaluate_table_xml cfg_sessions_citrix "where serial='${serial}'"
112 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
135 }
136
137 set_citrix_serverlist()
138 {
139 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 control_citrix_serverlist()
170 {
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 }