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