README
SO115 notificator
Obiettivo
Triggerare l'intero flusso di notifica emergenze di ActivePager ad ogni nuova partenza inserita dentro il sistema SO115 della caserma.
Questo permetterà agli operatori di non dover inserire i dati di un intervento in due sistemi (SO115 e ActivePager), ma di inserirli in uno solo (SO115). Questo script leggerà il DB Oracle in una macchina Windows e invierà ad una API di ActivePager le informazioni riguardanti una partenza di un mezzo.
Domande e risposte
Per le risposte, vedi file DomandeRisposte
Requisiti di Sistema
- Docker
- Virtualbox & vagrant (oracle client libraries installed (https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html))
- node.js
Setup development environment
- Start Oracle Database with Docker (in daemon mode)
docker-compose up -d
# docker-compose logs -f # vedere i log del container
- Accendere la virtual-machine
vagrant up
- Entrare nella vagrant in ssh
vagrant ssh
- Run tests
npm t
- Start application
npm start
- Stop Virtual machine (dalla macchina host)
vagrant halt
- Stop Oracle Database
docker-compose down
Gestione del demone
Durante il setup della macchina virtuale di sviluppo viene creato il file /lib/systemd/system/activepager-so115.service
in cui viene definito il demone che verrà riavviato se fallisce.
Start on VM Boot
sudo systemctl enable activepager-so115
Start
sudo systemctl start activepager-so115
Status
sudo systemctl status activepager-so115
Stop
sudo systemctl stop activepager-so115
Logs
sudo journalctl --no-pager -u activepager-so115.service -f
Configurazione da parte del sys-admin una volta installata la virtual machine
Per la configurazione delle connessioni basta modificare quel file in particolare le variabili d'ambiente
...
Environment=SQLITE_DB=/vagrant/database.db
Environment=ORACLE_USERNAME=SALAOPER
Environment=ORACLE_PASSWORD=Password1!
Environment=ORACLE_CONNECTION=10.0.1.1
...
Altro
installare sulla propria macchina le "oracle client libraries"
Oracle Instant Client Zip
To run ODPI-C applications with Oracle Instant Client zip files:
- Download the 11.2 “Basic” or “Basic Light” zip file MacOS from here - Linux from here. Choose either a 64-bit or 32-bit package, matching your application architecture. Most applications use 64-bit.
- follow installation instruction below download links (section:
Installing Instant Client 11.2 on macOS
)
Creazione da 0 di Container Docker OracleDB in locale
Seguendo queste istruzioni ho creato un container oracle 11 xe e pushato su DockerHub con il nome di: alessiocoser/odb
.
Nel caso non fosse più disponibile l'immagine qui sopra è necessario seguire tutti questi passaggi:
- Scaricare pacchetto Oracle DB dal sito Oracle (Oracle Database 11gR2 Express Edition for Linux x64) con un'utenza
- inserirlo nella cartella
./oracle/dockerfiles/
(Copiato i file necessari da qui: Oracle Container Repository) - attenzione che il nome del file deve essere proprio
oracle-xe-11.2.0-1.0.x86_64.rpm.zip
- cd ./oracle/dockerfiles/
- ./buildDockerImage.sh -v 11.2.0.2 -x
- ora nel docker locale abbiamo l'immagine
oracle/database:11.2.0.2-xe
- lancia
docker-compose up
- al primo avvio potrebbe fallire, quindi fai
docker-compose down
e poi di nuovodocker-compose up
- la password al db la si trova come prima riga del log
ORACLE PASSWORD FOR SYS AND SYSTEM: <password>
- Risorsa utile per lanciare post-install scripts su oracledb