<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def download_from_host(self, source, output_directory, filename):
 """Download a file from a given host. This method renames the file to the given string. :param source: Dictionary containing information about host. :type source: dict :param output_directory: Directory to place output in. :type output_directory: str :param filename: The filename to rename to. :type filename: str :returns: Dictionary with information about downloaded file. :rtype: dict """

        result = self._run_command(
            ["plowdown", source["url"], "-o",
                output_directory, "--temp-rename"],
            stderr=open("/dev/null", "w")
        )

        result['host_name'] = source['host_name']

        if 'error' in result:
            return result

        temporary_filename = self.parse_output(
            result['host_name'], result['output'])
        result['filename'] = os.path.join(output_directory, filename)
        result.pop('output')

        os.rename(temporary_filename, result['filename'])

        return result