Skip to content

Commit 5c9b318

Browse files
authored
Merge pull request #112 from devsapp/fix-remove
fix: model remove path
2 parents 6dfbf27 + cd4213d commit 5c9b318

File tree

5 files changed

+34
-33
lines changed

5 files changed

+34
-33
lines changed

__tests__/e2e/model/s_file.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ resources:
2020
gpuMemorySize: 16384
2121
gpuType: fc.gpu.tesla.1
2222
nasConfig: auto
23+
ossMountConfig: auto
24+
role: acs:ram::${config('AccountID')}:role/aliyunfcdefaultrole
2325
runtime: custom-container
2426
description: test model download files
2527
cpu: 8
@@ -72,4 +74,5 @@ resources:
7274
path: >-
7375
function-art/comfyui/models/checkpoints/v1-5-pruned-emaonly-fp16.safetensors
7476
target:
77+
uri: oss://auto
7578
path: models/checkpoints/v1-5-pruned-emaonly-fp16.safetensors

__tests__/ut/commands/modelService_test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ jest.mock('../../../src/subCommands/model/utils', () => {
3333
checkModelStatus: mockCheckModelStatus,
3434
_displayProgress: jest.fn(),
3535
_displayProgressComplete: jest.fn(),
36+
extractOssMountDir: jest.fn(),
3637
};
3738
});
3839

src/subCommands/model/fileManager.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import logger from '../../logger';
33
import DevClient, * as $Dev20230714 from '@alicloud/devs20230714';
44
import { IInputs } from '../../interface';
55
import _ from 'lodash';
6-
import { checkModelStatus, initClient } from './utils';
6+
import { checkModelStatus, extractOssMountDir, initClient } from './utils';
77

88
export class ArtModelService {
99
logger = logger;
@@ -42,6 +42,8 @@ export class ArtModelService {
4242
return;
4343
}
4444

45+
const processedOssMountPoints = extractOssMountDir(ossMountPoints);
46+
4547
let existingTasks = null;
4648
if (modelConfig.mode === 'once') {
4749
// 先统一获取已有的任务列表
@@ -59,7 +61,7 @@ export class ArtModelService {
5961
modelConfig.source.uri,
6062
file,
6163
nasMountPoints,
62-
ossMountPoints,
64+
processedOssMountPoints,
6365
modelConfig.target.uri,
6466
);
6567

@@ -112,7 +114,7 @@ export class ArtModelService {
112114
this._downloadSingleFile.bind(this, devClient, file, {
113115
name,
114116
nasMountPoints,
115-
ossMountPoints,
117+
ossMountPoints: processedOssMountPoints,
116118
role,
117119
region,
118120
vpcConfig,
@@ -188,13 +190,14 @@ export class ArtModelService {
188190
logger.info('[Remove-model] No files specified for removal.');
189191
return;
190192
}
193+
const processedOssMountPoints = extractOssMountDir(ossMountPoints);
191194

192195
// 将异步操作重构为并行处理
193196
const removePromises = files.map((file) =>
194197
this._removeSingleFile(devClient, file, {
195198
name,
196199
nasMountPoints,
197-
ossMountPoints,
200+
ossMountPoints: processedOssMountPoints,
198201
role,
199202
vpcConfig,
200203
modelConfig,

src/subCommands/model/model.ts

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
import logger from '../../logger';
33
import * as $Dev20230714 from '@alicloud/devs20230714';
44
import { IInputs } from '../../interface';
5-
import { checkModelStatus, initClient } from './utils';
6-
import { isEmpty } from 'lodash';
5+
import { checkModelStatus, extractOssMountDir, initClient } from './utils';
76

87
export class ModelService {
98
logger = logger;
@@ -41,15 +40,14 @@ export class ModelService {
4140
);
4241
return;
4342
}
43+
44+
const processedOssMountPoints = extractOssMountDir(ossMountPoints);
45+
4446
// mode 是 once 时候,判断是否已经下载过
4547
const destination =
4648
storage === 'nas'
4749
? `file:/${nasMountPoints[0].mountDir}`
48-
: `file:/${
49-
ossMountPoints[0].mountDir.length > 48
50-
? ossMountPoints[0].mountDir.substring(0, 48)
51-
: ossMountPoints[0].mountDir
52-
}`;
50+
: `file:/${processedOssMountPoints[0].mountDir}`;
5351
if (modelConfig.mode === 'once') {
5452
const ListFileManagerTasksRequest = new $Dev20230714.ListFileManagerTasksRequest({
5553
name,
@@ -71,17 +69,6 @@ export class ModelService {
7169
}
7270
}
7371

74-
let processedOssMountPoints;
75-
if (!isEmpty(ossMountPoints)) {
76-
processedOssMountPoints = ossMountPoints.map((ossMountPoint) => ({
77-
...ossMountPoint,
78-
mountDir:
79-
ossMountPoint.mountDir.length > 48
80-
? ossMountPoint.mountDir.substring(0, 48)
81-
: ossMountPoint.mountDir,
82-
}));
83-
}
84-
8572
const fileManagerRsyncRequest = new $Dev20230714.FileManagerRsyncRequest({
8673
mountConfig: new $Dev20230714.FileManagerMountConfig({
8774
name,
@@ -112,19 +99,11 @@ export class ModelService {
11299
const { nasMountPoints, ossMountPoints, role, region, vpcConfig, storage } = params;
113100
const devClient = await initClient(this.inputs, this.region, logger, 'fun-model');
114101

115-
let processedOssMountPoints;
116-
if (!isEmpty(ossMountPoints)) {
117-
processedOssMountPoints = ossMountPoints.map((ossMountPoint) => ({
118-
...ossMountPoint,
119-
mountDir:
120-
ossMountPoint.mountDir.length > 48
121-
? ossMountPoint.mountDir.substring(0, 48)
122-
: ossMountPoint.mountDir,
123-
}));
124-
}
102+
const processedOssMountPoints = extractOssMountDir(ossMountPoints);
125103

126104
const fileManagerRmRequest = new $Dev20230714.FileManagerRmRequest({
127-
filepath: storage === 'nas' ? nasMountPoints[0]?.mountDir : ossMountPoints[0]?.mountDir,
105+
filepath:
106+
storage === 'nas' ? nasMountPoints[0]?.mountDir : processedOssMountPoints[0]?.mountDir,
128107
mountConfig: new $Dev20230714.FileManagerMountConfig({
129108
name,
130109
nasMountPoints,

src/subCommands/model/utils/index.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
import * as $OpenApi from '@alicloud/openapi-client';
77
import DevClient from '@alicloud/devs20230714';
88
import { sleep } from '../../../utils';
9+
import { isEmpty } from 'lodash';
910

1011
export const _getEndpoint = (region): string => {
1112
if (process.env.ARTIFACT_ENDPOINT) {
@@ -147,3 +148,17 @@ export async function checkModelStatus(
147148
await sleep(sleepTime);
148149
}
149150
}
151+
152+
export function extractOssMountDir(ossMountPoints) {
153+
let processedOssMountPoints;
154+
if (!isEmpty(ossMountPoints)) {
155+
processedOssMountPoints = ossMountPoints.map((ossMountPoint) => ({
156+
...ossMountPoint,
157+
mountDir:
158+
ossMountPoint.mountDir.length > 48
159+
? ossMountPoint.mountDir.substring(0, 48)
160+
: ossMountPoint.mountDir,
161+
}));
162+
}
163+
return processedOssMountPoints;
164+
}

0 commit comments

Comments
 (0)