# SPDX-License-Identifier: Apache-2.0 from grpc_gen.assessment_pb2_grpc import AssessmentStub import grpc import os LOCAL_CLOUDITOR_DEPLOY = os.environ.get("local_clouditor_deploy").lower() in ('true', '1', 't') CLOUDITOR_HOST = os.environ.get("clouditor_host") CLOUDITOR_PORT = int(os.environ.get("clouditor_port")) class ForwardEvidence(object): def __init__(self, logger): if LOCAL_CLOUDITOR_DEPLOY: self.channel = grpc.insecure_channel('{}:{}'.format(CLOUDITOR_HOST, CLOUDITOR_PORT)) else: ssl_metadata = grpc.ssl_channel_credentials() self.channel = grpc.secure_channel('{}:{}'.format(CLOUDITOR_HOST, CLOUDITOR_PORT), ssl_metadata) 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))