Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2634 - (hide 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 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 2627 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 niro 2634 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 niro 2627 else
52 niro 2634 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 niro 2627 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 niro 2634 local serverlist
68 niro 2627
69     values=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}';")
70     for id in ${values}
71 niro 2051 do
72 niro 2627 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 niro 2634 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 niro 2627 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 niro 2051 done
100     }
101    
102 niro 2627 set_citrix_serverlist()
103 niro 2051 {
104 niro 2305 local serial="${CLASS_ARGV[0]}"
105 niro 2627 local action="${CLASS_ARGV[1]}"
106     local host="${CLASS_ARGV[2]}"
107     local id
108     local enabled
109 niro 2051
110 niro 2627 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 niro 2051 }
133 niro 2627
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     }