def to_dict(self):
        dict_info = self.machine.to_dict()
        dict_info.update(super(Host, self).to_dict())
        state_dict = self.state_dict()
        ip = None
        for host_network in self.host_networks:
            if host_network.is_mgmt:
                ip = host_network.ip
        dict_info.update({
            'machine_id': self.machine.id,
            'os_installed': self.os_installed,
            'hostname': self.hostname,
            'ip': ip,
            'networks': [
                host_network.to_dict()
                for host_network in self.host_networks
            ],
            'os_id': self.os_id,
            'clusters': [cluster.to_dict() for cluster in self.clusters],
            'state': state_dict['state']
        })
        return dict_info
Host dict contains its underlying machine dict.
dataset/ETHPy150Open openstack/compass-core/compass/db/models.py/Host.to_dict