feat: introduce the PluginOptions (#4835)

* feat: introduce the `PluginOptions`

* chore: apply suggestions from CR
This commit is contained in:
Weny Xu
2024-10-24 20:02:10 +08:00
committed by GitHub
parent ff38abde2e
commit 8b307e4548
12 changed files with 50 additions and 7 deletions

View File

@@ -13,4 +13,5 @@ common-base.workspace = true
datanode.workspace = true
frontend.workspace = true
meta-srv.workspace = true
serde.workspace = true
snafu.workspace = true

View File

@@ -16,10 +16,13 @@ use common_base::Plugins;
use datanode::config::DatanodeOptions;
use datanode::error::Result;
use crate::options::PluginOptions;
#[allow(unused_variables)]
#[allow(unused_mut)]
pub async fn setup_datanode_plugins(
plugins: &mut Plugins,
plugin_options: &[PluginOptions],
dn_opts: &DatanodeOptions,
) -> Result<()> {
Ok(())

View File

@@ -18,9 +18,12 @@ use frontend::error::{IllegalAuthConfigSnafu, Result};
use frontend::frontend::FrontendOptions;
use snafu::ResultExt;
use crate::options::PluginOptions;
#[allow(unused_mut)]
pub async fn setup_frontend_plugins(
plugins: &mut Plugins,
_plugin_options: &[PluginOptions],
fe_opts: &FrontendOptions,
) -> Result<()> {
if let Some(user_provider) = fe_opts.user_provider.as_ref() {

View File

@@ -15,7 +15,9 @@
mod datanode;
mod frontend;
mod meta_srv;
mod options;
pub use datanode::{setup_datanode_plugins, start_datanode_plugins};
pub use frontend::{setup_frontend_plugins, start_frontend_plugins};
pub use meta_srv::{setup_metasrv_plugins, start_metasrv_plugins};
pub use options::PluginOptions;

View File

@@ -16,9 +16,12 @@ use common_base::Plugins;
use meta_srv::error::Result;
use meta_srv::metasrv::MetasrvOptions;
use crate::options::PluginOptions;
#[allow(unused_variables)]
pub async fn setup_metasrv_plugins(
_plugins: &mut Plugins,
plugin_options: &[PluginOptions],
metasrv_opts: &MetasrvOptions,
) -> Result<()> {
Ok(())

View File

@@ -0,0 +1,23 @@
// Copyright 2023 Greptime Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DummyOptions;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum PluginOptions {
Dummy(DummyOptions),
}