def status(self, *args, **kwargs):
resp = {}<EOL>available = True<EOL>fail_count = <NUM_LIT:0><EOL>for component_name, checker in self._component_checkers.items():<EOL><INDENT>status_data = self._check_status(checker, self.read_exception, *args, **kwargs)<EOL>status_data['<STR_LIT:status>'] = self._status_english(status_data['<STR_LIT>'])<EOL>available = available and status_data['<STR_LIT>']<EOL>if not status_data['<STR_LIT>']:<EOL><INDENT>fail_count += <NUM_LIT:1><EOL><DEDENT>resp[component_name] = status_data<EOL><DEDENT>return dict(status=self._status_english(available),<EOL>available=available,<EOL>components=resp,<EOL>failure_count=fail_count)<EOL>
Call this method to get a dictionary that will
describe the status of all components.  The `*args`
and `**kwargs` will be passed to the function

:param list args: args to pass to all of the component checkers
:param dict kwargs: keyword arguments to pass to
    all of the component checkers
:return: A dictionary including the
:rtype: dict