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 2642 - (show annotations) (download)
Thu Oct 8 10:23:56 2015 UTC (8 years, 6 months ago) by niro
File size: 4915 byte(s)
-added autostart option
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 autostart="${CLASS_ARGV[9]}"
30 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 [[ -z ${autostart} ]] && autostart=0
49
50 id=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}' and name='${name}';")
51 if [[ -n ${id} ]]
52 then
53 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 else
55 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 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 local serverlist
71
72 values=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}';")
73 for id in ${values}
74 do
75 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 if [[ ! -z ${cfg_sessions_citrix_serverlist} ]] || [[ ${cfg_sessions_citrix_serverlist} != NULL ]]
89 then
90 serverlist="${cfg_sessions_citrix_serverlist}"
91 fi
92 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 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 done
103 }
104
105 set_citrix_serverlist()
106 {
107 local serial="${CLASS_ARGV[0]}"
108 local action="${CLASS_ARGV[1]}"
109 local host="${CLASS_ARGV[2]}"
110 local id
111 local enabled
112
113 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 }
136
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 }