from grpc_gen.assessment_pb2_grpc import AssessmentStub
import grpc
import os

CLOUDITOR_HOST = os.environ.get("clouditor_host")
CLOUDITOR_PORT = int(os.environ.get("clouditor_port"))

class ForwardEvidence(object):

    def __init__(self, logger):
        self.channel = grpc.insecure_channel('{}:{}'.format(CLOUDITOR_HOST, CLOUDITOR_PORT))
        self.stub = AssessmentStub(self.channel)
        self.logger = logger

    def send_evidence(self, assessevidencerequest, token):
        try:
            if token is not None:
                metadata = [('authorization', 'Bearer ' + token)]
            else:
                metadata = None

            response = self.stub.AssessEvidence(assessevidencerequest, metadata=metadata)
            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))