def get_monitored_hosting_devices_info(self, hd_state_filter=None):
wait_time = datetime.timedelta(<EOL>seconds=cfg.CONF.cfg_agent.hosting_device_dead_timeout)<EOL>resp = []<EOL>for hd_id in self.hosting_devices_backlog:<EOL><INDENT>hd = self.hosting_devices_backlog[hd_id]['<STR_LIT>']<EOL>display_hd = True<EOL>if hd_state_filter is not None:<EOL><INDENT>if hd['<STR_LIT>'] == hd_state_filter:<EOL><INDENT>display_hd = True<EOL><DEDENT>else:<EOL><INDENT>display_hd = False<EOL><DEDENT><DEDENT>if display_hd:<EOL><INDENT>created_time = hd['<STR_LIT>']<EOL>boottime = datetime.timedelta(seconds=hd['<STR_LIT>'])<EOL>backlogged_at = hd['<STR_LIT>']<EOL>booted_at = created_time + boottime<EOL>dead_at = backlogged_at + wait_time<EOL>resp.append({'<STR_LIT>': hd['<STR_LIT:id>'],<EOL>'<STR_LIT>': hd['<STR_LIT>'],<EOL>'<STR_LIT>': str(created_time),<EOL>'<STR_LIT>': str(backlogged_at),<EOL>'<STR_LIT>': str(booted_at),<EOL>'<STR_LIT>': str(dead_at)})<EOL><DEDENT>else:<EOL><INDENT>continue<EOL><DEDENT><DEDENT>return resp<EOL>
This function returns a list of all hosting devices monitored
by this agent