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 2634 - (show annotations) (download)
Tue Sep 29 11:43:12 2015 UTC (8 years, 7 months ago) by niro
File size: 4750 byte(s)
-allow serverlist override per session
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
12 help_citrix_session()
13 {
14 local serial="${CLASS_ARGV[0]}"
15 control_client "${serial}" help citrix.session
16 }
17
18 set_citrix_session()
19 {
20 local serial="${CLASS_ARGV[0]}"
21 local action="${CLASS_ARGV[1]}"
22 local name="${CLASS_ARGV[2]}"
23 local session="${CLASS_ARGV[3]}"
24 local mode="${CLASS_ARGV[4]}"
25 local user="${CLASS_ARGV[5]}"
26 local domain="${CLASS_ARGV[6]}"
27 local password="${CLASS_ARGV[7]}"
28 local serverlist="${CLASS_ARGV[8]}"
29 local id
30 local enabled
31
32 case "${action}" in
33 add) enabled=1 ;;
34 del) enabled=0 ;;
35 *)
36 eecho "Unknown action '${action}'"
37 return 1
38 ;;
39 esac
40
41 if [[ -z ${name} ]]
42 then
43 eecho "No name given"
44 return 1
45 fi
46
47 id=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}' and name='${name}';")
48 if [[ -n ${id} ]]
49 then
50 mysqldo "update cfg_sessions_citrix set name='${name}', session='${session}', filename='${filename}', username='${username}', domain='${domain}', password='${password}', serverlist='${serverlist}', enabled='${enabled}' where id=${id};"
51 else
52 mysqldo "insert into cfg_sessions_citrix(serial, name, session, filename, username, domain, password, serverlist, enabled) values('${serial}', '${name}', '${session}', ${store}', '${filename}', '${domain}', '${password}', '${serverlist}', '${enabled}');"
53 fi
54 }
55
56 control_citrix_session()
57 {
58 local serial="${CLASS_ARGV[0]}"
59 push_config_80_citrix_session "${serial}"
60 }
61
62 push_config_80_citrix_session()
63 {
64 local serial="$1"
65 local values
66 local id
67 local serverlist
68
69 values=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}';")
70 for id in ${values}
71 do
72 evaluate_table_xml cfg_sessions_citrix "where serial='${serial}'"
73 if [[ -z ${cfg_sessions_citrix_session} ]]
74 then
75 eecho "Session must not be empty id->'${id}'"
76 continue
77 fi
78 if [[ -z ${cfg_sessions_citrix_enabled} ]]
79 then
80 eecho "Enabled must not be empty id->'${id}'"
81 continue
82 fi
83 if [[ ${cfg_sessions_citrix_enabled} = 1 ]]
84 then
85 if [[ ! -z ${cfg_sessions_citrix_serverlist} ]] || [[ ${cfg_sessions_citrix_serverlist} != NULL ]]
86 then
87 serverlist="${cfg_sessions_citrix_serverlist}"
88 fi
89 control_client "${serial}" set citrix.session add "${cfg_sessions_citrix_name}" "${cfg_sessions_citrix_session}" "fullscreen" "${cfg_sessions_citrix_username}" "${cfg_sessions_citrix_domain} ${cfg_sessions_citrix_password}" "${serverlist}"
90 elif [[ ${cfg_sessions_citrix_enabled} = 0 ]]
91 then
92 control_client "${serial}" set citrix.session del "${cfg_sessions_citrix_name}"
93 # remove from database too
94 mysqldo "delete from cfg_sessions_citrix where id='${id}';"
95 else
96 eecho "unknown enabled value id->'${id}', cfg_sessions_citrix_enabled -> '${cfg_sessions_citrix_enabled}'"
97 return 1
98 fi
99 done
100 }
101
102 set_citrix_serverlist()
103 {
104 local serial="${CLASS_ARGV[0]}"
105 local action="${CLASS_ARGV[1]}"
106 local host="${CLASS_ARGV[2]}"
107 local id
108 local enabled
109
110 case "${action}" in
111 add) enabled=1 ;;
112 del) enabled=0 ;;
113 *)
114 eecho "Unknown action '${action}'"
115 return 1
116 ;;
117 esac
118
119 if [[ -z ${store} ]]
120 then
121 eecho "No store given"
122 return 1
123 fi
124
125 id=$(mysqldo "select id from cfg_citrix_serverlist where serial='${serial}' and host='${host}';")
126 if [[ -n ${id} ]]
127 then
128 mysqldo "update cfg_citrix_serverlist set host='${host}', enabled='${enabled}' where id=${id};"
129 else
130 mysqldo "insert into cfg_citrx_serverlist(serial, store, enabled) values('${serial}', '${store}', '${enabled}');"
131 fi
132 }
133
134 control_citrix_serverlist()
135 {
136 local serial="${CLASS_ARGV[0]}"
137 push_config_70_citrix_serverlist "${serial}"
138 }
139
140 push_config_70_citrix_serverlist()
141 {
142 local serial="$1"
143 local values
144 local id
145
146 values=$(mysqldo "select id from cfg_citrix_serverlist where serial='${serial}';")
147 for id in ${values}
148 do
149 evaluate_table_xml cfg_citrix_serverlist "where serial='${serial}'"
150 if [[ -z ${cfg_citrix_serverlist_host} ]]
151 then
152 eecho "Host must not be empty id->'${id}'"
153 continue
154 fi
155 if [[ -z ${cfg_citrix_serverlist_enabled} ]]
156 then
157 eecho "Enabled must not be empty id->'${id}'"
158 continue
159 fi
160 if [[ ${cfg_citrix_serverlist_enabled} = 1 ]]
161 then
162 control_client "${serial}" set citrix.serverlist add "${cfg_citrix_serverlist_host}"
163 elif [[ ${cfg_citrix_serverlist_enabled} = 0 ]]
164 then
165 control_client "${serial}" set citrix.serverlist del "${cfg_citrix_serverlist_host}"
166 # remove from database too
167 mysqldo "delete from cfg_citrix_serverlist where id='${id}';"
168 else
169 eecho "unknown enabled value id->'${id}', cfg_citrix_serverlist_enabled -> '${cfg_citrix_serverlist_enabled}'"
170 return 1
171 fi
172 done
173 }