[Global] #debuglevel debug() [Database] -> Global #connected #filename #__sql_con #__sql_cur __init__(filename) __del__() - Call close() __create() - Erstellt eine neue DB _exec() - Execute SQP statement _fetchall() - Call fetchall() connect() - If not -e DB, _create() close() - sync and close DB insert_pkg() - Insert new Package information. !!!Check existing!!! ??? delete_pkg() - remove Package information search_pkg() - Show Package _pkgversion_installed() - Print installed packages with version [ParseStatusfile] -> Global __init__() getall(filename) [Download] -> Global __init__() get_packages(source, destination) [ParsePackages] -> ParseStatusfile -> DownloadPackages __init__() file(filename) - parse local Packages file http(url, filename) - parse http located Packages file [TransportClient] -> Global #hostname #slaveid #__cli # __init__() register(slaveid, hostname, password=0) - Register slave to DSM unregister() - Unregister client transmit() - Transmit local Pkg Informations ?last_upd() - Query the date of last transmission ?mark_inactive() - Mark this slave (temp.) as inactive [TransportServer] -> Database __init__() __create_slave() - Add slave to DB __delete_slave() - Remove slave from DB register(slaveid, hostname, password) - Register slaves to DSM unregister() - Unregister client run() - Run our services transmit() - Receive slave Pkg Informations ?last_upd() - Query the date and IP of last transmission ?mark_inactive() - Mark slave (temp.) as inactive delete_slave(slaveid) - Remove all Pkg Info and slaveid in DebMan DB [HTTPServer] -> Global [ClientWorker] -> ParseStatusfile -> Database -> TransportClient __init__() run() Start parsing & transmit package informations to DebMan [ServerWorker] -> Database -> TransportServer -> HTTPServer Ablauf ---------- TransportClient.register() - TransportServer.register() prüft, ob slaveid existiert und mit hostname/kennwort übereinstimmt. Wenn slaveid nicht existiert, übergibt der Client als Kennwort und slaveid "0". Der Server legt den slave an und übergibt die slaveid und ein neu generiertes Kennwort. Ab jetzt nimmt der Server für SLAVETIME sekunden neue Daten an.