hackedteam/test-av

View on GitHub
modules/reporting/hpfclient.py

Summary

Maintainability
A
0 mins
Test Coverage
# Copyright (C) 2010-2012 Cuckoo Sandbox Developers.
# This file is part of Cuckoo Sandbox - http://www.cuckoosandbox.org
# See the file 'docs/LICENSE' for copying permission.

import json

from lib.cuckoo.common.abstracts import Report
from lib.cuckoo.common.exceptions import CuckooDependencyError, CuckooReportError

try:
    import lib.hpfeeds as hpfeeds
except:
    raise CuckooDependencyError("Unable to import HPFeeds library")

class HPFClient(Report):
    """Publishes the results on an HPFeeds broker channel."""

    def run(self, results):
        """Sends JSON report to HPFeeds channel.
        @param results: Cuckoo results dict.
        @raise CuckooReportError: if fails to write report.
        """
        try:
            hpc = hpfeeds.HPC(self.options["host"], self.options["port"], self.options["ident"], self.options["secret"], timeout=60)
            hpc.publish(self.options["channel"], json.dumps(results, sort_keys=False, indent=4))
            hpc.close()
        except hpfeeds.FeedException as e:
            raise CuckooReportError("Failed to publish on HPFeeds channel: %s" % e)