MCPcopy Create free account
hub / github.com/OpenAtomFoundation/SmartIDE / workspaceDataMap

Function workspaceDataMap

cli/internal/dal/worksapce.go:302–419  ·  view source on GitHub ↗

把数据库对象进行转换

(workspaceInfo *workspace.WorkspaceInfo, do workspaceDo)

Source from the content-addressed store, hash-verified

300
301// 把数据库对象进行转换
302func workspaceDataMap(workspaceInfo *workspace.WorkspaceInfo, do workspaceDo) error {
303
304 //1. 基本信息
305 workspaceInfo.ID = strconv.Itoa(do.w_id)
306 workspaceInfo.Name = do.w_name
307 workspaceInfo.WorkingDirectoryPath = do.w_workingdir.String
308 workspaceInfo.ConfigFileRelativePath = do.w_config_file.String
309 workspaceInfo.TempYamlFileAbsolutePath = do.w_docker_compose_file_path.String
310
311 //2. 类型
312 if do.w_mode == string(workspace.WorkingMode_Local) {
313 workspaceInfo.Mode = workspace.WorkingMode_Local
314 } else if do.w_mode == string(workspace.WorkingMode_Remote) {
315 workspaceInfo.Mode = workspace.WorkingMode_Remote
316 } else if do.w_mode == string(workspace.WorkingMode_K8s) {
317 workspaceInfo.Mode = workspace.WorkingMode_K8s
318 } else {
319 panic("w_mode != string(WorkingMode_Local)")
320 }
321 workspaceInfo.CacheEnv = workspace.CacheEnvEnum_Local
322 workspaceInfo.CliRunningEnv = workspace.CliRunningEnvEnum_Client
323
324 //3. 初始化配置文件
325 configYaml, _, _ := config.NewComposeConfigFromContent(do.w_config_content.String, do.w_link_compose_content.String)
326 workspaceInfo.ConfigYaml = *configYaml
327 if do.w_mode == string(workspace.WorkingMode_Remote) {
328
329 //workspaceInfo.ConfigYaml = *configYaml
330
331 } else if do.w_mode == string(workspace.WorkingMode_K8s) {
332 originK8sYaml, err := config.NewK8sConfigFromContent(do.w_config_content.String, do.w_link_compose_content.String)
333 if err != nil {
334 return err
335 }
336 workspaceInfo.K8sInfo.OriginK8sYaml = *originK8sYaml
337
338 } else {
339 //workspaceInfo.ConfigYaml = *config.NewConfig(do.w_workingdir.String, do.w_config_file.String, do.w_config_content.String)
340
341 }
342
343 //4. 关联
344 if !(do.w_mode == string(workspace.WorkingMode_K8s)) {
345 // 连接的docker-compose文件
346 if do.w_link_compose_content.String != "" {
347 err := yaml.Unmarshal([]byte(do.w_link_compose_content.String), &workspaceInfo.ConfigYaml.Workspace.LinkCompose)
348 if err != nil {
349 return err
350 }
351 }
352
353 // 生成的docker-compose文件
354 if do.w_temp_compose_content.String != "" {
355 err := yaml.Unmarshal([]byte(do.w_temp_compose_content.String), &workspaceInfo.TempDockerCompose)
356 if err != nil {
357 return err
358 }
359 }

Callers 3

GetWorkspaceListFunction · 0.85
GetSingleWorkspaceFunction · 0.85

Calls 2

GetRemoteByIdFunction · 0.85
GetK8sInfoByIdFunction · 0.85

Tested by

no test coverage detected