Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(controller): fix bug of reverting version - add version_order field for version history #1120

Merged
merged 1 commit into from
Sep 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
import ai.starwhale.mlops.api.protocol.runtime.RuntimeVersionVO;
import ai.starwhale.mlops.common.PageParams;
import ai.starwhale.mlops.common.TagAction;
import ai.starwhale.mlops.domain.runtime.bo.RuntimeQuery;
import ai.starwhale.mlops.domain.runtime.RuntimeService;
import ai.starwhale.mlops.domain.runtime.bo.RuntimeQuery;
import ai.starwhale.mlops.domain.runtime.bo.RuntimeVersion;
import ai.starwhale.mlops.domain.runtime.bo.RuntimeVersionQuery;
import ai.starwhale.mlops.exception.SWProcessException;
Expand All @@ -36,7 +36,6 @@
import ai.starwhale.mlops.exception.SWValidationException.ValidSubject;
import ai.starwhale.mlops.exception.api.StarWhaleApiException;
import com.github.pagehelper.PageInfo;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -353,14 +353,16 @@ public void upload(MultipartFile dsFile, ClientRuntimeRequest uploadRequest){
throw new StarWhaleApiException(new SWProcessException(ErrorType.SYSTEM),
HttpStatus.INTERNAL_SERVER_ERROR);
}
runtimeVersionMapper.addNewVersion(RuntimeVersionEntity.builder()
RuntimeVersionEntity version = RuntimeVersionEntity.builder()
.ownerId(userService.currentUserDetail().getId())
.storagePath(runtimePath)
.runtimeId(entity.getId())
.versionName(uploadRequest.version())
.versionMeta(runtimeManifest)
.image(null == runtimeManifestObj? null : runtimeManifestObj.getBaseImage())
.build());
.build();
runtimeVersionMapper.addNewVersion(version);
runtimeVersionMapper.revertTo(version.getRuntimeId(), version.getId());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@

import ai.starwhale.mlops.domain.swds.po.SWDatasetEntity;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface SWDatasetMapper {

List<SWDatasetEntity> listDatasets(@Param("projectId") Long projectId, @Param("namePrefix")String namePrefix);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@

import ai.starwhale.mlops.domain.swds.po.SWDatasetVersionEntity;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface SWDatasetVersionMapper {

List<SWDatasetVersionEntity> listVersions(@Param("datasetId")Long datasetId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ public String create(String yamlContent,String fileName, UploadRequest uploadReq
//create
swDatasetVersionEntity = from(projectEntity.getProjectName(),swDatasetEntity,manifest);
swdsVersionMapper.addNewVersion(swDatasetVersionEntity);
swdsVersionMapper.revertTo(swDatasetVersionEntity.getDatasetId(), swDatasetVersionEntity.getId());
uploadManifest(swDatasetVersionEntity,fileName,yamlContent.getBytes(StandardCharsets.UTF_8));
}else{
//swds version create dup
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,7 @@ public void upload(MultipartFile dsFile,
.evalJobs(jobContent)
.build();
swmpVersionMapper.addNewVersion(swModelPackageVersionEntity);
swmpVersionMapper.revertTo(swModelPackageVersionEntity.getSwmpId(), swModelPackageVersionEntity.getId());
}

}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
alter table swmp_version
add version_order bigint default 0 null after id;
update swmp_version set version_order = id;
create index idx_version_order
on swmp_version (version_order);

alter table dataset_version
add version_order bigint default 0 not null after id;
update dataset_version set version_order = id;
create index idx_version_order
on dataset_version (version_order);

alter table runtime_version
add version_order bigint default 0 not null after id;
update runtime_version set version_order = id;
create index idx_version_order
on runtime_version (version_order);



Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
<if test="tag != null and tag != ''">
and FIND_IN_SET(#{tag}, version_tag)
</if>
order by rv.id desc
order by rv.version_order desc
</select>

<select id="findVersionById" resultMap="runtimeVersionResultMap" >
Expand All @@ -73,14 +73,13 @@
<select id="getLatestVersion" resultMap="runtimeVersionResultMap" >
<include refid="select_runtime_version" />
and runtime_id = #{runtimeId}
order by rv.id desc
order by rv.version_order desc
limit 1
</select>

<insert id="revertTo">
replace into runtime_version (runtime_id, owner_id, version_name, version_tag, version_meta, storage_path, image)
select runtime_id, owner_id, version_name, version_tag, version_meta, storage_path, image
from runtime_version
update runtime_version
set version_order = (select max(version_order) from runtime_version) + 1
where id = #{rtVersionId}
</insert>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
<if test="tag != null and tag != ''">
and FIND_IN_SET(#{tag}, version_tag)
</if>
order by dsv.id desc
order by dsv.version_order desc
</select>

<select id="findByDSIdAndVersionNameForUpdate" resultMap="dsVersionResultMap" >
Expand Down Expand Up @@ -89,14 +89,13 @@
<select id="getLatestVersion" resultMap="dsVersionResultMap" >
<include refid="select_swds_version" />
and dataset_id = #{datasetId}
order by dsv.id desc
order by dsv.version_order desc
limit 1
</select>

<insert id="revertTo">
replace into dataset_version (dataset_id, owner_id, version_name, size, index_table, version_tag, version_meta, files_uploaded, storage_path, status)
select dataset_id, owner_id, version_name, size, index_table, version_tag, version_meta, files_uploaded, storage_path, status
from dataset_version
update dataset_version
set version_order = (select max(version_order) from dataset_version) + 1
where id = #{dsVersionId}
</insert>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
<if test="tag != null and tag != ''">
and FIND_IN_SET(#{tag}, version_tag)
</if>
order by mv.id desc
order by mv.version_order desc
</select>

<select id="findVersionById" resultMap="swmpVersionResultMap" >
Expand All @@ -66,14 +66,13 @@
<select id="getLatestVersion" resultMap="swmpVersionResultMap" >
<include refid="select_swmp_version" />
and swmp_id = #{swmpId}
order by mv.id desc
order by mv.version_order desc
limit 1
</select>

<insert id="revertTo">
replace into swmp_version (swmp_id, owner_id, version_name, version_tag, version_meta, storage_path, manifest, eval_jobs)
select swmp_id, owner_id, version_name, version_tag, version_meta, storage_path, manifest, eval_jobs
from swmp_version
update swmp_version
set version_order = (select max(version_order) from swmp_version) + 1
where id = #{swmpVersionId}
</insert>

Expand Down