Questa non è una funzionalità disponibile nel prodotto con strumenti preconfezionati ma fortunatamente Connections mette a disposizione tutte le informazioni per poterci riuscire.
Analizzate le varie possibilità , per semplicità ho deciso di procedere con 2 script separati, uno sul server database ed uno su connections, dove il primo si occupa di estrarre gli utenti e di preparare in output uno script che viene eseguito su Connectons che rimuove le foto.
Come detto questa è una delle possibili soluzioni a questa richiesta e può essere risolta in modi alternativi.
Script Database server (nel mio caso Db2)
Le informazioni sono tutte disponibili nel db dei profili il PEOPLEDB
La parte fondamentale dello script da eseguire è questa select
select EMPINST.EMPLOYEE.PROF_GUID FROM EMPINST.EMPLOYEE
INNER JOIN EMPINST.PHOTO ON EMPINST.PHOTO.PROF_KEY = EMPINST.EMPLOYEE.PROF_KEY INNER JOIN EMPINST.PROFILE_LAST_LOGIN ON EMPINST.PROFILE_LAST_LOGIN.PROF_KEY = EMPINST.EMPLOYEE.PROF_KEY
WHERE EMPINST.EMPLOYEE.PROF_STATE='1' and timestampdiff (64, CURRENT TIMESTAMP -EMPINST.PROFILE_LAST_LOGIN.PROF_LAST_LOGIN) > X"
dove X è il numero di mesi in cui l'utente disabilitato che ha una foto non si collega al suo profilo di connections.
se aggiungete dopo la query un | con awk simile al seguente
awk "{print \"ProfilesService.deletePhotoByUserId('\"\$1\"')\" }" >> clearphotos.py
ecco che ottenete un elenco di UID pronto per essere dato in pasto ad un wsadmin
con un utente per riga
...
ProfilesService.deletePhotoByUserId('11111111-222A-AA22-1122-11B222B11B22')
...
In testa a questo script se aggiungete 2 echo il file è pronto per essere eseguito
echo "batchMode = 1" > clearphotos.py
echo "execfile('profilesAdmin.py')" >> clearphotos.py
batchMode =1 è necessario se avete un connections con più nodi, qui i dettagli,
Per completezza ho condiviso lo script , in questo repo di GitHub.
Script su DMGR di Connections
Qui non c'è nulla di particolare , quindi lo lascio alla vostra interpretazione, i passi da fare sono 3
- copia clearphotos,py in locale
- esecuzione dello script tramite wsadmin ( wsadmin.sh -lang jython -user connAdmin -password password -f clearphotos.py )
- log delle operazioni eseguite
In conclusione ho schedulato 2 crontab per eseguire i 2 script , partendo ovviamente dallo script per eseguire estrazione dati db,
Nessun commento:
Posta un commento