Skip to content

Commit 22084d0

Browse files
committed
chore: add license for private task
1 parent 11e3f42 commit 22084d0

File tree

9 files changed

+34
-8
lines changed

9 files changed

+34
-8
lines changed

src/common/license/src/license.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ pub enum Feature {
8383
SystemHistory,
8484
#[serde(alias = "vector_index", alias = "VECTOR_INDEX")]
8585
VectorIndex,
86+
#[serde(alias = "private_task", alias = "PRIVATE_TASK")]
87+
PrivateTask,
8688
#[serde(other)]
8789
Unknown,
8890
}
@@ -134,6 +136,7 @@ impl fmt::Display for Feature {
134136
Feature::WorkloadGroup => write!(f, "workload_group"),
135137
Feature::SystemHistory => write!(f, "system_history"),
136138
Feature::VectorIndex => write!(f, "vector_index"),
139+
Feature::PrivateTask => write!(f, "private_task"),
137140
Feature::Unknown => write!(f, "unknown"),
138141
}
139142
}
@@ -372,6 +375,11 @@ mod tests {
372375
serde_json::from_str::<Feature>("\"VectorIndex\"").unwrap()
373376
);
374377

378+
assert_eq!(
379+
Feature::PrivateTask,
380+
serde_json::from_str::<Feature>("\"private_task\"").unwrap()
381+
);
382+
375383
assert_eq!(
376384
Feature::Unknown,
377385
serde_json::from_str::<Feature>("\"ssss\"").unwrap()
@@ -408,6 +416,7 @@ mod tests {
408416
Feature::NgramIndex,
409417
Feature::WorkloadGroup,
410418
Feature::SystemHistory,
419+
Feature::PrivateTask,
411420
]),
412421
};
413422

src/query/service/src/interpreters/interpreter_task_alter.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
use std::sync::Arc;
1616

17+
use databend_common_catalog::table_context::TableContext;
1718
use databend_common_exception::Result;
1819
use databend_common_sql::plans::AlterTaskPlan;
1920

@@ -50,7 +51,7 @@ impl Interpreter for AlterTaskInterpreter {
5051
#[fastrace::trace]
5152
#[async_backtrace::framed]
5253
async fn execute2(&self) -> Result<PipelineBuildResult> {
53-
TaskInterpreterFactory::build()
54+
TaskInterpreterFactory::build(&self.ctx)
5455
.alter_task(&self.ctx, &self.plan)
5556
.await?;
5657

src/query/service/src/interpreters/interpreter_task_create.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ impl Interpreter for CreateTaskInterpreter {
4848
#[fastrace::trace]
4949
#[async_backtrace::framed]
5050
async fn execute2(&self) -> Result<PipelineBuildResult> {
51-
TaskInterpreterFactory::build()
51+
TaskInterpreterFactory::build(&self.ctx)
5252
.create_task(&self.ctx, &self.plan)
5353
.await?;
5454

src/query/service/src/interpreters/interpreter_task_describe.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ impl Interpreter for DescribeTaskInterpreter {
4949
#[fastrace::trace]
5050
#[async_backtrace::framed]
5151
async fn execute2(&self) -> Result<PipelineBuildResult> {
52-
let Some(task) = TaskInterpreterFactory::build()
52+
let Some(task) = TaskInterpreterFactory::build(&self.ctx)
5353
.describe_task(&self.ctx, &self.plan)
5454
.await?
5555
else {

src/query/service/src/interpreters/interpreter_task_drop.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ impl Interpreter for DropTaskInterpreter {
4848
#[fastrace::trace]
4949
#[async_backtrace::framed]
5050
async fn execute2(&self) -> Result<PipelineBuildResult> {
51-
TaskInterpreterFactory::build()
51+
TaskInterpreterFactory::build(&self.ctx)
5252
.drop_task(&self.ctx, &self.plan)
5353
.await?;
5454

src/query/service/src/interpreters/interpreter_task_execute.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ impl Interpreter for ExecuteTaskInterpreter {
4848
#[fastrace::trace]
4949
#[async_backtrace::framed]
5050
async fn execute2(&self) -> Result<PipelineBuildResult> {
51-
TaskInterpreterFactory::build()
51+
TaskInterpreterFactory::build(&self.ctx)
5252
.execute_task(&self.ctx, &self.plan)
5353
.await?;
5454

src/query/service/src/interpreters/interpreter_tasks_show.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ impl Interpreter for ShowTasksInterpreter {
5151
#[fastrace::trace]
5252
#[async_backtrace::framed]
5353
async fn execute2(&self) -> Result<PipelineBuildResult> {
54-
let tasks = TaskInterpreterFactory::build()
54+
let tasks = TaskInterpreterFactory::build(&self.ctx)
5555
.show_tasks(&self.ctx, &self.plan)
5656
.await?;
5757

src/query/service/src/interpreters/task/mod.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@
1414

1515
use std::sync::Arc;
1616

17+
use databend_common_catalog::table_context::TableContext;
1718
use databend_common_cloud_control::task_utils;
1819
use databend_common_config::GlobalConfig;
1920
use databend_common_exception::Result;
21+
use databend_common_license::license::Feature;
22+
use databend_common_license::license_manager::LicenseManagerSwitch;
23+
use databend_common_settings::Settings;
2024
use databend_common_sql::plans::AlterTaskPlan;
2125
use databend_common_sql::plans::CreateTaskPlan;
2226
use databend_common_sql::plans::DescribeTaskPlan;
@@ -34,8 +38,12 @@ mod private;
3438
pub(crate) struct TaskInterpreterFactory;
3539

3640
impl TaskInterpreterFactory {
37-
pub fn build() -> TaskInterpreterImpl {
41+
pub fn build(ctx: &QueryContext) -> TaskInterpreterImpl {
3842
if GlobalConfig::instance().task.on {
43+
LicenseManagerSwitch::instance().check_enterprise_enabled(
44+
ctx.get_settings().get_enterprise_license(),
45+
Feature::PrivateTask,
46+
)?;
3947
return TaskInterpreterImpl::Private(PrivateTaskInterpreter);
4048
}
4149
TaskInterpreterImpl::Cloud(CloudTaskInterpreter)

src/query/service/src/task/service.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,15 @@ impl TaskService {
382382
.ok_or_else(|| {
383383
ErrorCode::UnknownTask(next_task)
384384
})?;
385-
if let Some(_guard) = fn_lock(&TaskService::instance(), &TaskMessageIdent::new(tenant.clone(), format!("check_{}", task_name))).await? {
385+
if let Some(_guard) = fn_lock(
386+
&TaskService::instance(),
387+
&TaskMessageIdent::new(
388+
tenant.clone(),
389+
format!("check_{}", task_name),
390+
),
391+
)
392+
.await?
393+
{
386394
task_mgr
387395
.send(TaskMessage::ExecuteTask(next_task))
388396
.await?;

0 commit comments

Comments
 (0)