Skip to content

Commit

Permalink
chore(controller): change shared type to boolean (#2044)
Browse files Browse the repository at this point in the history
* change shared type to boolean

* swagger description

* fix unit test

* fix unit test

* Update RuntimeService.java
  • Loading branch information
dreamlandliu authored Apr 13, 2023
1 parent c76bffe commit 0d0b7eb
Show file tree
Hide file tree
Showing 20 changed files with 72 additions and 78 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -334,9 +334,9 @@ ResponseEntity<ResponseMessage<String>> shareDatasetVersion(
@Parameter(
in = ParameterIn.QUERY,
required = true,
description = "1 - shared, 0 - unshared",
description = "1 or true - shared, 0 or false - unshared",
schema = @Schema())
@RequestParam(value = "shared") Integer shared
@RequestParam(value = "shared") Boolean shared
);

@Operation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ public ResponseEntity<ResponseMessage<Map>> signLinks(String project, String dat

@Override
public ResponseEntity<ResponseMessage<String>> shareDatasetVersion(String projectUrl, String datasetUrl,
String versionUrl, Integer shared) {
String versionUrl, Boolean shared) {
datasetService.shareDatasetVersion(projectUrl, datasetUrl, versionUrl, shared);
return ResponseEntity.ok(Code.success.asResponse("success"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,9 +187,9 @@ ResponseEntity<ResponseMessage<String>> shareRuntimeVersion(
@Parameter(
in = ParameterIn.QUERY,
required = true,
description = "1 - shared, 0 - unshared",
description = "1 or true - shared, 0 or false - unshared",
schema = @Schema())
@RequestParam(value = "shared") Integer shared
@RequestParam(value = "shared") Boolean shared
);

@Operation(summary = "Manage tag of the runtime version")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ public ResponseEntity<ResponseMessage<String>> modifyRuntime(String projectUrl,

@Override
public ResponseEntity<ResponseMessage<String>> shareRuntimeVersion(String projectUrl, String runtimeUrl,
String runtimeVersionUrl, Integer shared) {
String runtimeVersionUrl, Boolean shared) {
runtimeService.shareRuntimeVersion(projectUrl, runtimeUrl, runtimeVersionUrl, shared);
return ResponseEntity.ok(Code.success.asResponse("success"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

package ai.starwhale.mlops.domain.dataset;

import static cn.hutool.core.util.BooleanUtil.toInt;

import ai.starwhale.mlops.api.protocol.dataset.DatasetInfoVo;
import ai.starwhale.mlops.api.protocol.dataset.DatasetVersionViewVo;
import ai.starwhale.mlops.api.protocol.dataset.DatasetVersionVo;
Expand Down Expand Up @@ -149,12 +151,12 @@ public List<DatasetViewVo> listDatasetVersionView(String projectUrl) {
Long projectId = projectService.getProjectId(projectUrl);
var versions = datasetVersionMapper.listDatasetVersionViewByProject(projectId);
var shared = datasetVersionMapper.listDatasetVersionViewByShared(projectId);
var list = new ArrayList<>(viewEntityToVo(versions, 0));
list.addAll(viewEntityToVo(shared, 1));
var list = new ArrayList<>(viewEntityToVo(versions, false));
list.addAll(viewEntityToVo(shared, true));
return list;
}

private Collection<DatasetViewVo> viewEntityToVo(List<DatasetVersionViewEntity> list, Integer shared) {
private Collection<DatasetViewVo> viewEntityToVo(List<DatasetVersionViewEntity> list, Boolean shared) {
Map<Long, DatasetViewVo> map = new LinkedHashMap<>();
for (DatasetVersionViewEntity entity : list) {
if (!map.containsKey(entity.getDatasetId())) {
Expand All @@ -164,7 +166,7 @@ private Collection<DatasetViewVo> viewEntityToVo(List<DatasetVersionViewEntity>
.projectName(entity.getProjectName())
.datasetId(idConvertor.convert(entity.getDatasetId()))
.datasetName(entity.getDatasetName())
.shared(shared)
.shared(toInt(shared))
.versions(new ArrayList<>())
.build());
}
Expand All @@ -176,7 +178,7 @@ private Collection<DatasetViewVo> viewEntityToVo(List<DatasetVersionViewEntity>
.versionName(entity.getVersionName())
.alias(versionAliasConvertor.convert(entity.getVersionOrder(), latest, entity))
.createdTime(entity.getCreatedTime().getTime())
.shared(entity.getShared())
.shared(toInt(entity.getShared()))
.build());
}
return map.values();
Expand Down Expand Up @@ -242,7 +244,7 @@ private DatasetInfoVo toDatasetInfoVo(DatasetEntity ds, DatasetVersionEntity ver
.versionMeta(versionEntity.getVersionMeta())
.createdTime(versionEntity.getCreatedTime().getTime())
.indexTable(versionEntity.getIndexTable())
.shared(versionEntity.getShared())
.shared(toInt(versionEntity.getShared()))
.files(collect)
.build();

Expand All @@ -254,17 +256,10 @@ private DatasetInfoVo toDatasetInfoVo(DatasetEntity ds, DatasetVersionEntity ver
}

public void shareDatasetVersion(String projectUrl, String datasetUrl, String versionUrl,
Integer shared) {
Boolean shared) {
Long versionId = bundleManager.getBundleVersionId(BundleVersionUrl
.create(projectUrl, datasetUrl, versionUrl));
switch (shared) {
case 0:
case 1:
datasetVersionMapper.updateShared(versionId, shared);
break;
default:
throw new SwValidationException(ValidSubject.DATASET, "Invalid shared value: " + shared);
}
datasetVersionMapper.updateShared(versionId, shared);
}

public Boolean manageVersionTag(String projectUrl, String datasetUrl, String versionUrl,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

package ai.starwhale.mlops.domain.dataset.converter;

import static cn.hutool.core.util.BooleanUtil.toInt;

import ai.starwhale.mlops.api.protocol.dataset.DatasetVersionVo;
import ai.starwhale.mlops.common.IdConverter;
import ai.starwhale.mlops.common.VersionAliasConverter;
Expand Down Expand Up @@ -50,7 +52,7 @@ public DatasetVersionVo convert(DatasetVersionEntity entity, DatasetVersionEntit
.name(entity.getVersionName())
.tag(entity.getVersionTag())
.meta(entity.getVersionMeta())
.shared(entity.getShared())
.shared(toInt(entity.getShared()))
.createdTime(entity.getCreatedTime().getTime())
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ DatasetVersionEntity findByVersionOrder(@Param("versionOrder") Long versionOrder
int updateTag(@Param("id") Long id, @Param("tag") String tag);

@Update("update dataset_version set shared = #{shared} where id = #{id}")
int updateShared(@Param("id") Long id, @Param("shared") Integer shared);
int updateShared(@Param("id") Long id, @Param("shared") Boolean shared);

//int updateFilesUploaded(@Param("version") DatasetVersionEntity version);
@Update("update dataset_version set files_uploaded = #{filesUploaded} where id = #{id}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public class DatasetVersionEntity extends BaseEntity implements BundleVersionEnt
private String storagePath;
private Long size;
private String indexTable;
private Integer shared;
private Boolean shared;

private Integer status = DatasetVersion.STATUS_UN_AVAILABLE;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,5 @@ public class DatasetVersionViewEntity extends BaseEntity implements HasId {

private String versionName;

private Integer shared;
private Boolean shared;
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

package ai.starwhale.mlops.domain.runtime;

import static cn.hutool.core.util.BooleanUtil.toInt;

import ai.starwhale.mlops.api.protocol.runtime.BuildImageResult;
import ai.starwhale.mlops.api.protocol.runtime.ClientRuntimeRequest;
import ai.starwhale.mlops.api.protocol.runtime.RuntimeInfoVo;
Expand Down Expand Up @@ -198,12 +200,12 @@ public List<RuntimeViewVo> listRuntimeVersionView(String projectUrl) {
Long projectId = projectService.getProjectId(projectUrl);
var versions = runtimeVersionMapper.listRuntimeVersionViewByProject(projectId);
var shared = runtimeVersionMapper.listRuntimeVersionViewByShared(projectId);
var list = new ArrayList<>(viewEntityToVo(versions, 0));
list.addAll(viewEntityToVo(shared, 1));
var list = new ArrayList<>(viewEntityToVo(versions, false));
list.addAll(viewEntityToVo(shared, true));
return list;
}

private Collection<RuntimeViewVo> viewEntityToVo(List<RuntimeVersionViewEntity> list, Integer shared) {
private Collection<RuntimeViewVo> viewEntityToVo(List<RuntimeVersionViewEntity> list, Boolean shared) {
Map<Long, RuntimeViewVo> map = new LinkedHashMap<>();
for (RuntimeVersionViewEntity entity : list) {
if (!map.containsKey(entity.getRuntimeId())) {
Expand All @@ -213,7 +215,7 @@ private Collection<RuntimeViewVo> viewEntityToVo(List<RuntimeVersionViewEntity>
.projectName(entity.getProjectName())
.runtimeId(idConvertor.convert(entity.getRuntimeId()))
.runtimeName(entity.getRuntimeName())
.shared(shared)
.shared(toInt(shared))
.versions(new ArrayList<>())
.build());
}
Expand All @@ -225,7 +227,7 @@ private Collection<RuntimeViewVo> viewEntityToVo(List<RuntimeVersionViewEntity>
.versionName(entity.getVersionName())
.alias(versionAliasConvertor.convert(entity.getVersionOrder(), latest, entity))
.createdTime(entity.getCreatedTime().getTime())
.shared(entity.getShared())
.shared(toInt(entity.getShared()))
.build());
}
return map.values();
Expand Down Expand Up @@ -297,7 +299,7 @@ private RuntimeInfoVo toRuntimeInfoVo(RuntimeEntity rt, RuntimeVersionEntity ver
.versionName(versionEntity.getVersionName())
.versionTag(versionEntity.getVersionTag())
.versionMeta(versionEntity.getVersionMeta())
.shared(versionEntity.getShared())
.shared(toInt(versionEntity.getShared()))
.createdTime(versionEntity.getCreatedTime().getTime())
.files(collect)
.build();
Expand All @@ -323,17 +325,10 @@ public Boolean modifyRuntimeVersion(String projectUrl, String runtimeUrl, String
return update > 0;
}

public void shareRuntimeVersion(String projectUrl, String runtimeUrl, String runtimeVersionUrl, Integer shared) {
public void shareRuntimeVersion(String projectUrl, String runtimeUrl, String runtimeVersionUrl, Boolean shared) {
Long versionId = bundleManager.getBundleVersionId(BundleVersionUrl
.create(projectUrl, runtimeUrl, runtimeVersionUrl));
switch (shared) {
case 0:
case 1:
runtimeVersionMapper.updateShared(versionId, shared);
break;
default:
throw new SwValidationException(ValidSubject.RUNTIME, "Invalid shared value: " + shared);
}
runtimeVersionMapper.updateShared(versionId, shared);
}

public Boolean manageVersionTag(String projectUrl, String runtimeUrl, String versionUrl,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

package ai.starwhale.mlops.domain.runtime.converter;

import static cn.hutool.core.util.BooleanUtil.toInt;

import ai.starwhale.mlops.api.protocol.runtime.RuntimeVersionVo;
import ai.starwhale.mlops.common.IdConverter;
import ai.starwhale.mlops.common.VersionAliasConverter;
Expand Down Expand Up @@ -49,7 +51,7 @@ public RuntimeVersionVo convert(RuntimeVersionEntity entity, RuntimeVersionEntit
.tag(entity.getVersionTag())
.meta(entity.getVersionMeta())
.image(entity.getImage())
.shared(entity.getShared())
.shared(toInt(entity.getShared()))
.createdTime(entity.getCreatedTime().getTime())
.runtimeId(idConvertor.convert(entity.getRuntimeId()))
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ List<RuntimeVersionEntity> list(@Param("runtimeId") Long runtimeId,
int updateTag(@Param("id") Long id, @Param("tag") String tag);

@Update("update runtime_version set shared = #{shared} where id = #{id}")
int updateShared(@Param("id") Long id, @Param("shared") Integer shared);
int updateShared(@Param("id") Long id, @Param("shared") Boolean shared);

@SelectProvider(value = RuntimeVersionProvider.class, method = "findByNameAndRuntimeIdSql")
RuntimeVersionEntity findByNameAndRuntimeId(@Param("versionName") String versionName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public class RuntimeVersionEntity extends BaseEntity implements BundleVersionEnt

private String builtImage;

private Integer shared;
private Boolean shared;

@Override
public String getName() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,5 @@ public class RuntimeVersionViewEntity extends BaseEntity implements HasId {

private String versionName;

private Integer shared;
private Boolean shared;
}
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ public void testListRuntimeTree() {

@Test
public void testShareRuntimeVersion() {
var resp = controller.shareDatasetVersion("1", "1", "1", 1);
var resp = controller.shareDatasetVersion("1", "1", "1", true);
assertThat(resp.getStatusCode(), is(HttpStatus.OK));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ public void testListRuntimeTree() {

@Test
public void testShareRuntimeVersion() {
var resp = controller.shareRuntimeVersion("1", "1", "1", 1);
var resp = controller.shareRuntimeVersion("1", "1", "1", true);
assertThat(resp.getStatusCode(), is(HttpStatus.OK));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -238,10 +238,10 @@ public void testGetDatasetInfo() {
() -> service.getDatasetInfo(DatasetQuery.builder().projectUrl("1").datasetUrl("d3").build()));

given(datasetVersionMapper.find(same(1L)))
.willReturn(DatasetVersionEntity.builder().id(1L).versionOrder(2L).build());
.willReturn(DatasetVersionEntity.builder().id(1L).versionOrder(2L).shared(false).build());

given(datasetVersionMapper.findByLatest(same(1L)))
.willReturn(DatasetVersionEntity.builder().id(1L).versionOrder(2L).build());
.willReturn(DatasetVersionEntity.builder().id(1L).versionOrder(2L).shared(false).build());

var res = service.getDatasetInfo(DatasetQuery.builder()
.projectUrl("1")
Expand All @@ -255,7 +255,7 @@ public void testGetDatasetInfo() {
));

given(datasetVersionMapper.findByLatest(same(1L)))
.willReturn(DatasetVersionEntity.builder().id(1L).versionOrder(2L).build());
.willReturn(DatasetVersionEntity.builder().id(1L).versionOrder(2L).shared(false).build());

res = service.getDatasetInfo(DatasetQuery.builder()
.projectUrl("1")
Expand Down Expand Up @@ -332,7 +332,7 @@ public void testListDatasetInfo() {
given(datasetMapper.findByName(same("d1"), same(1L), any()))
.willReturn(DatasetEntity.builder().id(1L).build());
given(datasetVersionMapper.list(same(1L), any(), any()))
.willReturn(List.of(DatasetVersionEntity.builder().versionOrder(2L).build()));
.willReturn(List.of(DatasetVersionEntity.builder().versionOrder(2L).shared(false).build()));

var res = service.listDs("1", "d1");
assertThat(res, hasItem(allOf(
Expand Down Expand Up @@ -403,10 +403,8 @@ public void testLinksOf() {

@Test
public void testShareDatasetVersion() {
service.shareDatasetVersion("1", "d1", "v1", 1);
service.shareDatasetVersion("1", "d1", "v1", 0);
assertThrows(SwValidationException.class, () ->
service.shareDatasetVersion("1", "d1", "v1", 2));
service.shareDatasetVersion("1", "d1", "v1", true);
service.shareDatasetVersion("1", "d1", "v1", false);
}

@Test
Expand All @@ -418,25 +416,25 @@ public void testListDatasetVersionView() {
given(datasetVersionMapper.listDatasetVersionViewByProject(same(1L)))
.willReturn(List.of(
DatasetVersionViewEntity.builder().id(5L).datasetId(1L).versionOrder(4L).projectName("sw")
.userName("sw").shared(0).datasetName("ds1").build(),
.userName("sw").shared(false).datasetName("ds1").build(),
DatasetVersionViewEntity.builder().id(4L).datasetId(1L).versionOrder(2L).projectName("sw")
.userName("sw").shared(0).datasetName("ds1").build(),
.userName("sw").shared(false).datasetName("ds1").build(),
DatasetVersionViewEntity.builder().id(3L).datasetId(1L).versionOrder(3L).projectName("sw")
.userName("sw").shared(0).datasetName("ds1").build(),
.userName("sw").shared(false).datasetName("ds1").build(),
DatasetVersionViewEntity.builder().id(2L).datasetId(3L).versionOrder(2L).projectName("sw")
.userName("sw").shared(0).datasetName("ds3").build(),
.userName("sw").shared(false).datasetName("ds3").build(),
DatasetVersionViewEntity.builder().id(1L).datasetId(3L).versionOrder(1L).projectName("sw")
.userName("sw").shared(0).datasetName("ds3").build()
.userName("sw").shared(false).datasetName("ds3").build()
));

given(datasetVersionMapper.listDatasetVersionViewByShared(same(1L)))
.willReturn(List.of(
DatasetVersionViewEntity.builder().id(8L).datasetId(2L).versionOrder(3L).projectName("sw2")
.userName("sw2").shared(1).datasetName("ds2").build(),
.userName("sw2").shared(true).datasetName("ds2").build(),
DatasetVersionViewEntity.builder().id(7L).datasetId(2L).versionOrder(2L).projectName("sw2")
.userName("sw2").shared(1).datasetName("ds2").build(),
.userName("sw2").shared(true).datasetName("ds2").build(),
DatasetVersionViewEntity.builder().id(6L).datasetId(4L).versionOrder(3L).projectName("sw2")
.userName("sw2").shared(1).datasetName("ds4").build()
.userName("sw2").shared(true).datasetName("ds4").build()
));

var res = service.listDatasetVersionView("1");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public void setUp() {
public void testConvert() {
var res = datasetVersionVoConverter.convert(DatasetVersionEntity.builder()
.id(1L)
.shared(true)
.versionName("name1")
.versionOrder(2L)
.versionTag("tag1")
Expand All @@ -52,6 +53,7 @@ public void testConvert() {
assertThat(res, allOf(
notNullValue(),
hasProperty("name", is("name1")),
hasProperty("shared", is(1)),
hasProperty("alias", is("v2")),
hasProperty("tag", is("tag1")),
hasProperty("meta", is("meta1"))
Expand Down
Loading

0 comments on commit 0d0b7eb

Please sign in to comment.