#!/bin/bash

#
# Script per la definizione delle utilities di interesse generale
#

#
# Restituisce una stringa con la data e l'ora correnti
# nel formato dd/mm/yyyy hh:mm:ss
#
# Parametri
#
# nessuno
#
function dateTime {
   date +%d\/%m\/%Y\ %H:%M:%S
}

#
# Controlla il numero dei parametri a linea comando
#
# Parametri
#
# noOfProvidedParameters:  numero dei parametri forniti nella chiamata
# noORequiredParameters:   numero dei parametri richiesta nella chiamata
# errorMsg:                messaggio specificato in caso di errore
#
function checkParams {
   # inizializza le variabili mnemoniche per i parametri
   noOfProvidedParameters=$1
   noOfRequiredParameters=$2
   errorMsg="$3"
   
   if test $noOfProvidedParameters -ne $noOfRequiredParameters
   then
      echo -e $errorMsg
      exit 1
   fi
}

#
# aggiorna il contenuto del file di log
#
# Parametri
#
# msg:           msg da aggiunger in coda al contenuto corrente del file
#                di log
# logFilePath:   path del file di log
#
function appendToLog {
	msg=$1
	logFilePath=$2
	
	echo -e $msg | tee -a $logFilePath
}

#
# Restituisce lo stato di un container: "RUNNING" se in esecuzione,
#                                       "STOPPED" altrimenti
# Parametri
#
# container: identificatore del container
#                                       
function containerStatus {
   # acquisisce le informazioni relative allo stato del container
   containerInfo=$(lxc-info key=state -n $1)
   
   # forma l'informazione in uscita ("RUNNING"/"STOPPED")
   echo $containerInfo | awk -F "State: " '{print $2}'| cut -d " " -f1
}

#
# Restituisce lo stato di una vm: "running" se in esecuzione,
#                                       "stopped" altrimenti
# Parametri
#
# vm: identificatore della vm
#                                       
function vmStatus {
   # acquisisce le informazioni relative allo stato della vm
   vmInfo=$(qm status $1)
   
   # forma l'informazione in uscita ("running"/"stopped")
   echo $vmInfo | cut -d " " -f2
}
