viewgit/index.php:465 Only variables should be passed by reference [2048]

viewgit/index.php:466 Non-static method GeSHi::get_language_name_from_extension() should not be called statically [2048]

  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Monitora se i computer dell'aula studenti sono accesi
  5. # e restituisce delle statistiche a proposito.
  6.  
  7. import subprocess
  8.  
  9. # Qualche variabile globale
  10. database_directory = '/home/robol/client_stats/' # Il traling slash ci serve
  11. max_time = 86400 * 10 # 10 giorni
  12.  
  13. def LoadClients(group = 'all'):
  14. """
  15. Ritorna una lista con tutti i client all'interno del
  16. gruppo group di dsh. Il default è 'all'
  17. """
  18. clients = []
  19. for client in open('/etc/dsh/groups/' + group, 'r'):
  20. clients.append (client)
  21. return clients
  22.  
  23. def IsAlive(client):
  24. """
  25. Ritorna True se il client è acceso e risponde ai ping
  26. """
  27. alive = subprocess.call(["fping", client])
  28. return (alive == 0)
  29.  
  30. def LoadClientData(client):
  31. """
  32. Carica i dati relativi a quel determinato client. Questi
  33. sono nella forma di un dizionario con gli oggetti time e
  34. Valori True o False
  35. """
  36. data = {}
  37. try:
  38. f = open(database_directory + client, 'r')
  39. except IOError:
  40. return data
  41. for line in f:
  42. (time, alive) = line.split(":")
  43. data[time] = alive
  44. f.close()
  45. return data
  46.  
  47. def DumpClientData(client, data):
  48. """
  49. Salva i dati relativi ad un client, eliminando quelli troppo
  50. vecchi
  51. """
  52. data = dict (filter(lambda i: (i[0] > time.time() - max_time),
  53. data.items()))
  54. f = open(database_directory + client, 'w')
  55. for stat in data.items():
  56. f.write (":".join(stat))
  57. f.close()
  58.  
  59. def UpdateClientsData(client, alive):
  60. """
  61. Aggiorna i dati relativi al client inserendo l'informazione
  62. che in questo momento è acceso.
  63. """
  64. data = LoadClientData(client)
  65. data[time.time()] = alive
  66. DumpClientData(client, data)
  67.  
  68.  
  69.  
  70. if __name__ == "__main__":
  71. for client in LoadClients():
  72. UpdateClientsData(client, IsAlive(client))