class NetworkManager(QObject, nmap.PortScanner):
    appendToLogFile = pyqtSignal(str, str, name='appendToLogFile')
    updateProgressBar = pyqtSignal(str, int, name='updateProgressBar')

    def __init__(self):
        QObject.__init__(self)
        nmap.PortScanner.__init__(self)
        self.server = Server(self)
        self.server.open_connection()

    def get_hosts_list(self, known_list_ip=None):
        list_ip = known_list_ip if known_list_ip else '192.168.0.1-255'
        enable_hosts = self.scan(hosts=list_ip, ports='22')
        ip = enable_hosts['scan'].keys()
        host_names = [enable_hosts['scan'][i]['hostnames'] for i in ip]
        name = [hostname[0]['name'] if len(hostname) else '' for hostname in host_names]
        status = ['up' if i in self.server.connections else 'down' for i in ip]
        return list(zip(name, ip, status))

    def run_installers_on_hosts(self, hosts, installers):
        self.server.send_data(hosts, installers)