Skip to content

Commit 91fda61

Browse files
Merge corrections
1 parent 32ab9e9 commit 91fda61

File tree

4 files changed

+23
-16
lines changed

4 files changed

+23
-16
lines changed

src/adapter/graphql/tests/tests/test_gql_metadata_chain.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ async fn test_metadata_chain_events() {
2929

3030
let base_catalog = dill::CatalogBuilder::new()
3131
.add_builder(
32-
dill::builder_for::<DatasetRepositoryLocalFs>()
32+
DatasetRepositoryLocalFs::builder()
3333
.with_root(tempdir.path().join("datasets"))
3434
.with_multi_tenant(false),
3535
)

src/domain/core/src/repos/dataset_repository.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use std::pin::Pin;
1212
use std::sync::Arc;
1313

1414
use async_trait::async_trait;
15+
use chrono::Utc;
1516
use internal_error::InternalError;
1617
use opendatafabric::*;
1718
use thiserror::Error;

src/infra/core/src/repos/dataset_repository_helpers.rs

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@ pub async fn create_dataset_from_snapshot_impl(
5454
// Validate / resolve events
5555
for event in snapshot.metadata.iter_mut() {
5656
match event {
57-
MetadataEvent::Seed(_) => Err(InvalidSnapshotError {
58-
reason: "Seed event is generated and cannot be specified explicitly".to_owned(),
59-
}
57+
MetadataEvent::Seed(_) => Err(InvalidSnapshotError::new(
58+
"Seed event is generated and cannot be specified explicitly",
59+
)
6060
.into()),
61-
MetadataEvent::SetPollingSource(_) => {
61+
MetadataEvent::SetPollingSource(_) | MetadataEvent::AddPushSource(_) => {
6262
if snapshot.kind != DatasetKind::Root {
6363
Err(InvalidSnapshotError {
64-
reason: "SetPollingSource is only allowed on root datasets".to_owned(),
64+
reason: format!("Event is only allowed on root datasets: {:?}", event),
6565
}
6666
.into())
6767
} else {
@@ -70,26 +70,32 @@ pub async fn create_dataset_from_snapshot_impl(
7070
}
7171
MetadataEvent::SetTransform(e) => {
7272
if snapshot.kind != DatasetKind::Derivative {
73-
Err(InvalidSnapshotError {
74-
reason: "SetTransform is only allowed on derivative datasets".to_owned(),
75-
}
73+
Err(InvalidSnapshotError::new(
74+
"SetTransform is only allowed on derivative datasets",
75+
)
7676
.into())
7777
} else {
7878
resolve_transform_inputs(dataset_repo, &snapshot.name, &mut e.inputs).await
7979
}
8080
}
81+
MetadataEvent::SetDataSchema(_) => {
82+
// It shouldn't be common to provide schema as part of the snapshot. In most
83+
// cases it will inferred upon first ingest/transform. But no reason not to
84+
// allow it.
85+
Ok(())
86+
}
8187
MetadataEvent::SetAttachments(_)
8288
| MetadataEvent::SetInfo(_)
8389
| MetadataEvent::SetLicense(_)
8490
| MetadataEvent::SetVocab(_) => Ok(()),
8591
MetadataEvent::AddData(_)
8692
| MetadataEvent::ExecuteQuery(_)
87-
| MetadataEvent::SetWatermark(_) => Err(InvalidSnapshotError {
88-
reason: format!(
89-
"Event is not allowed to appear in a DatasetSnapshot: {:?}",
90-
event
91-
),
92-
}
93+
| MetadataEvent::SetWatermark(_)
94+
| MetadataEvent::DisablePollingSource(_)
95+
| MetadataEvent::DisablePushSource(_) => Err(InvalidSnapshotError::new(format!(
96+
"Event is not allowed to appear in a DatasetSnapshot: {:?}",
97+
event
98+
))
9399
.into()),
94100
}?;
95101
}

src/infra/core/tests/tests/engine/test_engine_transform.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,6 @@ async fn test_transform_common(transform: Transform) {
243243
.with_data_format_registry(Arc::new(DataFormatRegistryImpl::new())),
244244
)
245245
.bind::<dyn PollingIngestService, PollingIngestServiceImpl>()
246-
.add::<SystemTimeSourceDefault>()
247246
.add::<TransformServiceImpl>()
248247
.add_value(SystemTimeSourceStub::new_set(
249248
Utc.with_ymd_and_hms(2050, 1, 1, 12, 0, 0).unwrap(),
@@ -341,6 +340,7 @@ async fn test_transform_common(transform: Transform) {
341340
let deriv_helper = DatasetHelper::new(dataset.clone(), tempdir.path());
342341
let deriv_data_helper = DatasetDataHelper::new(dataset);
343342

343+
let time_source = catalog.get_one::<SystemTimeSourceStub>().unwrap();
344344
time_source.set(Utc.with_ymd_and_hms(2050, 1, 2, 12, 0, 0).unwrap());
345345

346346
let res = transform_svc

0 commit comments

Comments
 (0)