from evidence.evidence_store_pb2_grpc import EvidenceStoreStub
from evidence.evidence_pb2 import Evidence
import grpc

class ForwardEvidence(object):

    def __init__(self, constants, logger):
        self.channel = grpc.insecure_channel('{}:{}'.format(constants['clouditor']['host'], constants['clouditor']['port']))
        self.stub = EvidenceStoreStub(self.channel)
        self.logger = logger

    def send_evidence(self, evidence):
        try:
            response = self.stub.StoreEvidence(evidence)  
            self.logger.info('gRPC evidence forwarded: ' + str(response))
        except grpc.RpcError as err:
            self.logger.error(err)
            self.logger.error(err.details())
            self.logger.error('{}, {}'.format(err.code().name, err.code().value))