def test_identity_plugin_get_info_fails_when_attributes_from_config_are_missing(self, identity_config): request = Mock() context = Mock() identity_config.side_effect = ["name", Exception(), Exception(), "0.9.0"] res = self.servicer.GetPluginInfo(request, context) context.set_code.assert_called_once_with(grpc.StatusCode.INTERNAL) self.assertEqual(res, csi_pb2.GetPluginInfoResponse()) res = self.servicer.GetPluginInfo(request, context) self.assertEqual(res, csi_pb2.GetPluginInfoResponse()) context.set_code.assert_called_with(grpc.StatusCode.INTERNAL)
def test_identity_plugin_get_info_fails_when_name_or_value_are_empty(self, identity_config): request = Mock() context = Mock() identity_config.side_effect = ["", "0.9.0", "name", ""] res = self.servicer.GetPluginInfo(request, context) context.set_code.assert_called_once_with(grpc.StatusCode.INTERNAL) self.assertEqual(res, csi_pb2.GetPluginInfoResponse()) res = self.servicer.GetPluginInfo(request, context) self.assertEqual(res, csi_pb2.GetPluginInfoResponse()) self.assertEqual(context.set_code.call_args_list, [call(grpc.StatusCode.INTERNAL), call(grpc.StatusCode.INTERNAL)])
def test_identity_plugin_get_info_succeeds(self, identity_config): plugin_name = "plugin-name" version = "0.9.0" identity_config.side_effect = [plugin_name, version] request = Mock() context = Mock() request.volume_capabilities = [] res = self.servicer.GetPluginInfo(request, context) self.assertEqual(res, csi_pb2.GetPluginInfoResponse(name=plugin_name, vendor_version=version))
def GetPluginInfo(self, request, context): logger.info("GetPluginInfo") try: name = self.__get_identity_config("name") version = self.__get_identity_config("version") except Exception as ex: logger.exception(ex) context.set_code(grpc.StatusCode.INTERNAL) context.set_details('an error occured while trying to get plugin name or version') return csi_pb2.GetPluginInfoResponse() if not name or not version: logger.error("plugin name or version cannot be empty") context.set_code(grpc.StatusCode.INTERNAL) context.set_details("plugin name or version cannot be empty") return csi_pb2.GetPluginInfoResponse() logger.info("finished GetPluginInfo") return csi_pb2.GetPluginInfoResponse(name=name, vendor_version=version)
def GetPluginInfo(self, _, context): logger.info("GetPluginInfo") name = self.get_identity_config("name") version = self.get_identity_config("version") if not name or not version: message = "plugin name or version cannot be empty" return build_error_response(message, context, grpc.StatusCode.INTERNAL, csi_pb2.GetPluginInfoResponse) logger.info("finished GetPluginInfo") return csi_pb2.GetPluginInfoResponse(name=name, vendor_version=version)