Skip to content

Commit

Permalink
fix(dataset): correct dataset image id after migration to v1.0.0 (#2842)
Browse files Browse the repository at this point in the history
  • Loading branch information
m-alisafaee committed Apr 14, 2022
1 parent 1ddc16e commit c2e08c8
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
4 changes: 2 additions & 2 deletions renku/core/dataset/request_model.py
Expand Up @@ -64,7 +64,7 @@ def to_image_object(self, dataset: Dataset, client_dispatcher: IClientDispatcher
return ImageObject(
content_url=self.content_url,
position=self.position,
id=ImageObject.generate_id(dataset, self.position),
id=ImageObject.generate_id(dataset_id=dataset.id, position=self.position),
)

# NOTE: mirror the image locally
Expand Down Expand Up @@ -105,5 +105,5 @@ def to_image_object(self, dataset: Dataset, client_dispatcher: IClientDispatcher
return ImageObject(
content_url=str(img_path.relative_to(client.path)),
position=self.position,
id=ImageObject.generate_id(dataset=dataset, position=self.position),
id=ImageObject.generate_id(dataset_id=dataset.id, position=self.position),
)
14 changes: 9 additions & 5 deletions renku/core/migration/utils/conversion.py
Expand Up @@ -60,11 +60,12 @@ def _convert_language(language: Optional[old_datasets.Language]) -> Optional[Lan
return Language(name=language.name, alternate_name=language.alternate_name)


def _convert_image_object(image_object: Optional[old_datasets.ImageObject]) -> Optional[ImageObject]:
def _convert_image_object(image_object: Optional[old_datasets.ImageObject], dataset_id: str) -> Optional[ImageObject]:
"""Create from old ImageObject instance."""
if not image_object:
return
return ImageObject(content_url=image_object.content_url, position=image_object.position, id=image_object.id)
id = ImageObject.generate_id(dataset_id=dataset_id, position=image_object.position)
return ImageObject(content_url=image_object.content_url, position=image_object.position, id=id)


def _create_remote_entity(dataset_file: Optional[old_datasets.DatasetFile]) -> Optional[RemoteEntity]:
Expand Down Expand Up @@ -182,6 +183,9 @@ def convert_license(license):
tags = [_convert_dataset_tag(tag) for tag in (dataset.tags or [])]
name = get_slug(dataset.name) if not is_dataset_name_valid(dataset.name) else dataset.name

identifier = _convert_dataset_identifier(dataset.identifier)
id = Dataset.generate_id(identifier=identifier)

return (
Dataset(
creators=[_convert_agent(creator) for creator in dataset.creators],
Expand All @@ -191,9 +195,9 @@ def convert_license(license):
date_removed=None,
derived_from=convert_derived_from(dataset.derived_from, dataset.same_as),
description=dataset.description,
id=None,
identifier=_convert_dataset_identifier(dataset.identifier),
images=[_convert_image_object(image) for image in (dataset.images or [])],
id=id,
identifier=identifier,
images=[_convert_image_object(image, dataset_id=id) for image in (dataset.images or [])],
in_language=_convert_language(dataset.in_language),
keywords=dataset.keywords,
license=convert_license(dataset.license),
Expand Down
4 changes: 2 additions & 2 deletions renku/domain_model/dataset.py
Expand Up @@ -185,9 +185,9 @@ def __init__(self, *, content_url: str, id: str, position: int):
super().__init__(content_url=content_url, position=position, id=id)

@staticmethod
def generate_id(dataset: "Dataset", position: int) -> str:
def generate_id(dataset_id: str, position: int) -> str:
"""Generate @id field."""
return f"{dataset.id}/images/{position}"
return f"{dataset_id}/images/{position}"

@property
def is_absolute(self):
Expand Down

0 comments on commit c2e08c8

Please sign in to comment.