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 2642 - (hide annotations) (download)
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     }