Magellan Linux

Contents of /mcore-src/trunk/mcore-tools/src/modules/citrix/storefront-cron.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2525 - (show annotations) (download)
Mon Sep 14 13:49:29 2015 UTC (8 years, 7 months ago) by niro
File size: 3330 byte(s)
-do not always print debug messages
1 #!/bin/bash
2
3 MCORE_LIBDIR="@@MCORE_LIBDIR@@"
4 source @@SYSCONFDIR@@/mcore/mcore.conf
5 source @@SYSCONFDIR@@/mcore/citrix.conf
6 source @@SYSCONFDIR@@/mcore/citrix-enumerate.conf
7 source @@SYSCONFDIR@@/mcore/control.conf
8 source ${MCORE_LIBDIR}/include/common.global.class
9 source ${MCORE_LIBDIR}/include/daemon.global.class
10 source ${MCORE_LIBDIR}/include/mysqlfunctions.global.class
11
12 : ${STOREFRONT_STORE=""}
13 : ${STOREFRONT_USER=""}
14 : ${STOREFRONT_PASS=""}
15 : ${STOREFRONT_DOMAIN=""}
16
17 export IMPORTED_IDS=""
18
19 is_not_an_import_id()
20 {
21 local id="$1"
22 local entry
23
24 for entry in ${IMPORTED_IDS}
25 do
26 if [[ ${entry} = ${id} ]]
27 then
28 return 1
29 fi
30 done
31
32 return 0
33 }
34
35 # get default settings from configs
36 [[ -z ${STOREFRONT_STORE} ]] && export STOREFRONT_STORE="${DEFAULT_STOREFRONT_STORE}"
37 [[ -z ${STOREFRONT_USER} ]] && export STOREFRONT_USER="${MCORE_STOREFRONT_USER}"
38 [[ -z ${STOREFRONT_PASS} ]] && export STOREFRONT_PASS="${MCORE_STOREFRONT_PASS}"
39 [[ -z ${STOREFRONT_DOMAIN} ]] && export STOREFRONT_DOMAIN="${MCORE_STOREFRONT_DOMAIN}"
40
41 if ! storebrowse &> /dev/null
42 then
43 if [ -d ~/.ICAClient ]
44 then
45 rm -r ~/.ICAClient
46 fi
47
48 install -d ~/.ICAClient
49 touch ~/.ICAClient/.eula_accepted
50
51 # kill running instances
52 pidof AuthManagerDaemon > /dev/null && killall AuthManagerDaemon
53 pidof ServiceRecord > /dev/null && killall ServiceRecord
54 pidof storebrowse > /dev/null && killall storebrowse
55
56 # register eula and add default store
57 xvfb-run -a -s "-extension RANDR" storebrowse -a "${STOREFRONT_STORE}" > /dev/null
58 fi
59
60 # get all sessions
61 if [[ -z $(storebrowse -l | grep -i ${STOREFRONT_STORE}) ]]
62 then
63 echo "Store ${STOREFRONT_STORE} unknown, perhaps not added. Run 'rm -r ~/.ICAClient'."
64 else
65 OPT=""
66 [[ -n ${STOREFRONT_USER} ]] && OPT+=" -U ${STOREFRONT_USER}"
67 [[ -n ${STOREFRONT_PASS} ]] && OPT+=" -P ${STOREFRONT_PASS}"
68 [[ -n ${STOREFRONT_DOMAIN} ]] && OPT+=" -D ${STOREFRONT_DOMAIN}"
69 SESSION_LIST=$(storebrowse -E ${OPT} ${STOREFRONT_STORE} 2> /dev/null)
70 if [[ $? != 0 ]]
71 then
72 echo "could not retrieve session list"
73 exit 1
74 fi
75
76 # exclude the desktop session, which is always the first
77 declare -i counter=0
78 while read line
79 do
80 if [[ ${counter} -gt 0 ]]
81 then
82 session=$(echo ${line} | cut -d"'" -f 2)
83 description=$(echo ${line} | cut -d"'" -f 4)
84 decho "Session: '${session}' -> Description '${description}'"
85
86 # import or update db entry
87 id=$(mysqldo "select id from values_storefront_session where session='${session}';")
88 if [[ -z ${id} ]]
89 then
90 mysqldo "insert into values_storefront_session (session,description,enabled) values('${session}','${description}','1');"
91 else
92 mysqldo "update values_storefront_session set session='${session}',description='${description}',enabled='1' where id='${id}';"
93 fi
94
95 # get and save id
96 id=$(mysqldo "select id from values_storefront_session where session='${session}';")
97 export IMPORTED_IDS+=" ${id}"
98 fi
99 (( counter++ ))
100 done << EOF
101 $(echo "${SESSION_LIST}")
102 EOF
103
104 # now disable all other ids in the database
105 DATABASE_IDS=$(mysqldo "select id from values_storefront_session")
106 for id in ${DATABASE_IDS}
107 do
108 if is_not_an_import_id "${id}"
109 then
110 # disable this one, not imported=not existing on the storefront-server in the moment
111 mysqldo "update values_storefront_session set enabled='0' where id='${id}';"
112 fi
113 done
114 fi