def review(self, assets): """Review existing data in Config Validator (Audit in parallel per policy). Args: assets (list): A list of assets to review. Returns: list: List of violations. Raises: ConfigValidatorAuditError: Config Validator Audit Error. ConfigValidatorServerUnavailableError: Config Validator Server Unavailable Error. """ try: review_request = validator_pb2.ReviewRequest() # pylint: disable=no-member review_request.assets.extend(assets) # pylint: enable=no-member LOGGER.info(f'Config Validator - reviewing {len(assets)} assets') return self.stub.Review(review_request).violations except grpc.RpcError as e: # pylint: disable=no-member if e.code() == grpc.StatusCode.UNAVAILABLE: raise errors.ConfigValidatorServerUnavailableError(e) else: LOGGER.exception('ConfigValidatorAuditError: %s', e) raise errors.ConfigValidatorAuditError(e)
def reset(self): """Clears previously added data from Config Validator. Raises: ConfigValidatorResetError: Config Validator Reset Error. ConfigValidatorServerUnavailableError: Config Validator Server Unavailable Error.""" try: self.stub.Reset(validator_pb2.ResetRequest()) except grpc.RpcError as e: # pylint: disable=no-member if e.code() == grpc.StatusCode.UNAVAILABLE: raise errors.ConfigValidatorServerUnavailableError(e.message) else: LOGGER.exception('ConfigValidatorResetError: %s', e.message) raise errors.ConfigValidatorResetError(e.message)
def audit(self): """Audit existing data in Config Validator. Returns: list: List of violations. Raises: ConfigValidatorAuditError: Config Validator Audit Error. ConfigValidatorServerUnavailableError: Config Validator Server Unavailable Error. """ try: return self.stub.Audit(validator_pb2.AuditRequest()).violations except grpc.RpcError as e: # pylint: disable=no-member if e.code() == grpc.StatusCode.UNAVAILABLE: raise errors.ConfigValidatorServerUnavailableError(e.message) else: LOGGER.exception('ConfigValidatorAuditError: %s', e.message) raise errors.ConfigValidatorAuditError(e.message)
def add_data(self, assets): """Add asset data. Args: assets (list): A list of asset data. Raises: ConfigValidatorAddDataError: Config Validator Add Data Error. ConfigValidatorServerUnavailableError: Config Validator Server Unavailable Error. """ try: request = validator_pb2.AddDataRequest() request.assets.extend(assets) # pylint: disable=no-member self.stub.AddData(request) except grpc.RpcError as e: # pylint: disable=no-member if e.code() == grpc.StatusCode.UNAVAILABLE: raise errors.ConfigValidatorServerUnavailableError(e.message) else: LOGGER.exception('Failed to add data: %s', assets[0]) # LOGGER.exception('ConfigValidatorAddDataError: %s', e.message) # raise errors.ConfigValidatorAddDataError(e.message) return