def test_update_hosts_dockers_status(self, session, _session): _dockers_status = [ { "Container ID": "4c01db0b339c", "Image": "ubuntu:12.04", "Command": "bash", "Created": "17 seconds ago", "Status": "Up 16 seconds", "Ports": "3300-3310/tcp", "Names": "webapp" } ] _commit = mock.Mock() _session.commit = _commit _insert_data = HostMeta(hostname="Marvin", ip="123.456.78.9") session.add(_insert_data) with mock.patch.object( HostMeta, "query", session.query_property() ) as _query: HostMeta.update_host_dockers_status( ip="123.456.78.9", dockers_status=_dockers_status ) _commit.called_once_with() _query_data = session.query(HostMeta).filter_by( hostname="Marvin" ).first() self.assertEqual( _query_data.dockers_status, json.dumps(_dockers_status) )
def cron_get_host_docker_status(): hosts_status = HostMeta.get_all_hosts_status() for host_id in hosts_status: host_ip = hosts_status[host_id]["IP"] dockers_status = get_host_docker_status(host_ip) for docker_status in dockers_status: docker_status.update({ "IP": hosts_status[host_id]["IP"], "Hostname": hosts_status[host_id]["Hostname"], }) HostMeta.update_host_dockers_status(ip=host_ip, dockers_status=dockers_status)