MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / handleUpgradeCompose

Function handleUpgradeCompose

agent/app/service/app_utils.go:514–570  ·  view source on GitHub ↗
(install model.AppInstall, detail model.AppDetail)

Source from the content-addressed store, hash-verified

512}
513
514func handleUpgradeCompose(install model.AppInstall, detail model.AppDetail) (map[string]interface{}, error) {
515 composeMap := make(map[string]interface{})
516 if err := yaml.Unmarshal([]byte(detail.DockerCompose), &composeMap); err != nil {
517 return nil, err
518 }
519 value, ok := composeMap["services"]
520 if !ok || value == nil {
521 return nil, buserr.New("ErrFileParse")
522 }
523 servicesMap := value.(map[string]interface{})
524 if len(servicesMap) == 1 {
525 index := 0
526 oldServiceName := ""
527 for k := range servicesMap {
528 oldServiceName = k
529 index++
530 if index > 0 {
531 break
532 }
533 }
534 servicesMap[install.ServiceName] = servicesMap[oldServiceName]
535 if install.ServiceName != oldServiceName {
536 delete(servicesMap, oldServiceName)
537 }
538 }
539 serviceValue := servicesMap[install.ServiceName].(map[string]interface{})
540
541 oldComposeMap := make(map[string]interface{})
542 if err := yaml.Unmarshal([]byte(install.DockerCompose), &oldComposeMap); err != nil {
543 return nil, err
544 }
545 oldValue, ok := oldComposeMap["services"]
546 if !ok || oldValue == nil {
547 return nil, buserr.New("ErrFileParse")
548 }
549 oldValueMap, ok := oldValue.(map[string]interface{})
550 if !ok {
551 return nil, buserr.New("ErrFileParse")
552 }
553 oldServiceValueInterface, ok := oldValueMap[install.ServiceName]
554 if !ok || oldServiceValueInterface == nil {
555 return nil, buserr.New("ErrFileParse")
556 }
557 oldServiceValue, ok := oldServiceValueInterface.(map[string]interface{})
558 if !ok {
559 return nil, buserr.New("ErrFileParse")
560 }
561 if oldServiceValue["deploy"] != nil {
562 serviceValue["deploy"] = oldServiceValue["deploy"]
563 }
564 if oldServiceValue["restart"] != nil {
565 serviceValue["restart"] = oldServiceValue["restart"]
566 }
567 servicesMap[install.ServiceName] = serviceValue
568 composeMap["services"] = servicesMap
569 return composeMap, nil
570}
571

Callers 1

getUpgradeComposeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected