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, time
  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/group/' + group, 'r'):
  20. client = client.strip()
  21. if client.strip != '' and client[0] != '#':
  22. clients.append (client)
  23. return clients
  24.  
  25. def IsAlive(client):
  26. """
  27. Ritorna True se il client è acceso e risponde ai ping
  28. """
  29. alive = subprocess.call(["fping", client])
  30. return (alive == 0)
  31.  
  32. def LoadClientData(client):
  33. """
  34. Carica i dati relativi a quel determinato client. Questi
  35. sono nella forma di un dizionario con gli oggetti time e
  36. Valori True o False
  37. """
  38. data = {}
  39. try:
  40. f = open(database_directory + client, 'r')
  41. except IOError:
  42. return data
  43. for line in f:
  44. (time, alive) = line.split(":")
  45. data[time] = alive
  46. f.close()
  47. return data
  48.  
  49. def DumpClientData(client, data):
  50. """
  51. Salva i dati relativi ad un client, eliminando quelli troppo
  52. vecchi
  53. """
  54. data = dict (filter(lambda i: (i[0] > time.time() - max_time),
  55. data.items()))
  56. f = open(database_directory + client, 'w')
  57. for stat in data.items():
  58. f.write (":".join(map(str, stat)))
  59. f.close()
  60.  
  61. def UpdateClientsData(client, alive):
  62. """
  63. Aggiorna i dati relativi al client inserendo l'informazione
  64. che in questo momento è acceso.
  65. """
  66. data = LoadClientData(client)
  67. data[time.time()] = alive
  68. DumpClientData(client, data)
  69.  
  70.  
  71.  
  72. if __name__ == "__main__":
  73. for client in LoadClients():
  74. UpdateClientsData(client, IsAlive(client))