2016-08-11 17:04 GMT+02:00 Manlio Perillo <manlio.peri...@gmail.com>: > 2016-08-11 16:47 GMT+02:00 Zanon Samuele <web...@gmail.com>: >> >> Ciao a tutti, >> sto realizzando un pannello per la gestione di alcuni processi interni >> all'ufficio utilizzando django e celery per la gestione della coda dei >> processi. >> Ora il mio problema è collegarmi ai server via SSH, eseguire una sequenza >> di comandi (alcuni anche come root, quindi ho la necessità di poter passare >> la password di root al comando su), catturare l'output di ciascun comando e >> salvare l'output su db. > [...] >> Potete darmi una mano a modificare quella classe per poter ottenere il >> risultato che mi aspetto? Oppure dirmi qualche altra libreria poter >> utilizzare? >> > > Come detto, l'organizzazione del codice è sbagliata. > Innanzitutto non capisco cosa faccia il codice. > Vuoi inviare un comando e ricevere la risposta? In questo caso dovresti > utilizzare una coda (threading.Queue). >
Se intendi gestire un solo comando alla volta, probabilmente non hai bisogno di complicarti la vita con i thread. Non eseguire process in un thread, ed invece aggiungi un metodo send_cmd che: 1) Alloca una shell se non è già stato fatto 2) Invia il comando alla shell 3) Legge la risposta 4) Restituisce la risposta Inoltre ti consiglio anche di evidenziare, nel codice, quali sono i metodi/funzioni pubblici e quali quelli privati. Nel tuo caso il metodo open_shell è privato, quindi rinominalo _open_shell. Ciao Manlio _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python