Annotation of /mcore-src/trunk/mcore-tools/src/modules/citrix/storefront-cron.in
Parent Directory | Revision Log
Revision 2641 -
(hide annotations)
(download)
Thu Oct 8 10:23:23 2015 UTC (8 years, 7 months ago) by niro
File size: 3386 byte(s)
Thu Oct 8 10:23:23 2015 UTC (8 years, 7 months ago) by niro
File size: 3386 byte(s)
-added store information
1 | niro | 2511 | #!/bin/bash |
2 | |||
3 | MCORE_LIBDIR="@@MCORE_LIBDIR@@" | ||
4 | source @@SYSCONFDIR@@/mcore/mcore.conf | ||
5 | niro | 2514 | source @@SYSCONFDIR@@/mcore/citrix.conf |
6 | niro | 2524 | source @@SYSCONFDIR@@/mcore/citrix-enumerate.conf |
7 | niro | 2521 | source @@SYSCONFDIR@@/mcore/control.conf |
8 | niro | 2511 | source ${MCORE_LIBDIR}/include/common.global.class |
9 | niro | 2515 | source ${MCORE_LIBDIR}/include/daemon.global.class |
10 | niro | 2514 | source ${MCORE_LIBDIR}/include/mysqlfunctions.global.class |
11 | niro | 2511 | |
12 | niro | 2514 | : ${STOREFRONT_STORE=""} |
13 | : ${STOREFRONT_USER=""} | ||
14 | : ${STOREFRONT_PASS=""} | ||
15 | : ${STOREFRONT_DOMAIN=""} | ||
16 | niro | 2511 | |
17 | niro | 2522 | 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 | niro | 2524 | # 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 | niro | 2511 | |
41 | niro | 2517 | if ! storebrowse &> /dev/null |
42 | niro | 2511 | then |
43 | niro | 2514 | if [ -d ~/.ICAClient ] |
44 | niro | 2511 | then |
45 | niro | 2516 | rm -r ~/.ICAClient |
46 | niro | 2511 | fi |
47 | |||
48 | niro | 2514 | install -d ~/.ICAClient |
49 | touch ~/.ICAClient/.eula_accepted | ||
50 | |||
51 | niro | 2511 | # kill running instances |
52 | niro | 2517 | pidof AuthManagerDaemon > /dev/null && killall AuthManagerDaemon |
53 | niro | 2511 | pidof ServiceRecord > /dev/null && killall ServiceRecord |
54 | pidof storebrowse > /dev/null && killall storebrowse | ||
55 | |||
56 | niro | 2514 | # register eula and add default store |
57 | niro | 2522 | xvfb-run -a -s "-extension RANDR" storebrowse -a "${STOREFRONT_STORE}" > /dev/null |
58 | niro | 2511 | fi |
59 | |||
60 | niro | 2514 | # 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 | niro | 2517 | [[ -n ${STOREFRONT_USER} ]] && OPT+=" -U ${STOREFRONT_USER}" |
67 | [[ -n ${STOREFRONT_PASS} ]] && OPT+=" -P ${STOREFRONT_PASS}" | ||
68 | [[ -n ${STOREFRONT_DOMAIN} ]] && OPT+=" -D ${STOREFRONT_DOMAIN}" | ||
69 | niro | 2522 | SESSION_LIST=$(storebrowse -E ${OPT} ${STOREFRONT_STORE} 2> /dev/null) |
70 | niro | 2521 | if [[ $? != 0 ]] |
71 | then | ||
72 | echo "could not retrieve session list" | ||
73 | exit 1 | ||
74 | fi | ||
75 | niro | 2518 | |
76 | # exclude the desktop session, which is always the first | ||
77 | declare -i counter=0 | ||
78 | niro | 2522 | while read line |
79 | niro | 2518 | 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 | niro | 2525 | decho "Session: '${session}' -> Description '${description}'" |
85 | niro | 2521 | |
86 | # import or update db entry | ||
87 | niro | 2522 | id=$(mysqldo "select id from values_storefront_session where session='${session}';") |
88 | if [[ -z ${id} ]] | ||
89 | then | ||
90 | niro | 2641 | mysqldo "insert into values_storefront_session (session,description,store,enabled) values('${session}','${description}','${STOREFRONT_STORE}','1');" |
91 | niro | 2522 | else |
92 | niro | 2641 | mysqldo "update values_storefront_session set session='${session}',description='${description}',store='${STOREFRONT_STORE}',enabled='1' where id='${id}';" |
93 | niro | 2522 | fi |
94 | niro | 2521 | |
95 | # get and save id | ||
96 | id=$(mysqldo "select id from values_storefront_session where session='${session}';") | ||
97 | niro | 2522 | export IMPORTED_IDS+=" ${id}" |
98 | niro | 2518 | fi |
99 | (( counter++ )) | ||
100 | niro | 2522 | done << EOF |
101 | $(echo "${SESSION_LIST}") | ||
102 | EOF | ||
103 | niro | 2521 | |
104 | # now disable all other ids in the database | ||
105 | niro | 2522 | 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 | niro | 2514 | fi |