fix: handle scaling properly when there is no procfile
This commit is contained in:
@@ -223,9 +223,13 @@ func updateScalefile(appName string, processTuples []string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
processTypes, err := processesInProcfile(procfilePath)
|
||||
if err != nil {
|
||||
return err
|
||||
processTypes := make(map[string]bool)
|
||||
hasProcfile := common.FileExists(procfilePath)
|
||||
if hasProcfile {
|
||||
processTypes, err = processesInProcfile(procfilePath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
newLines := []string{}
|
||||
@@ -257,10 +261,8 @@ func updateScalefile(appName string, processTuples []string) error {
|
||||
return fmt.Errorf("Invalid count for process type %s", s[0])
|
||||
}
|
||||
|
||||
if _, ok := processTypes[processType]; !ok {
|
||||
if count != 0 && len(processTypes) == 0 {
|
||||
return fmt.Errorf("%s is not a valid process name to scale up", processType)
|
||||
}
|
||||
if _, ok := processTypes[processType]; !ok && hasProcfile && count != 0 {
|
||||
return fmt.Errorf("%s is not a valid process name to scale up", processType)
|
||||
}
|
||||
|
||||
scale = append(scale, fmt.Sprintf("%s=%d", processType, count))
|
||||
@@ -288,5 +290,5 @@ func updateScalefile(appName string, processTuples []string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
return err
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -104,7 +104,10 @@ func CommandScale(appName string, processTuples []string) error {
|
||||
scalefilePath := getScalefilePath(appName)
|
||||
if !common.FileExists(procfilePath) {
|
||||
image := common.GetAppImageRepo(appName)
|
||||
extractProcfile(appName, image, procfilePath)
|
||||
common.SuppressOutput(func() error {
|
||||
extractProcfile(appName, image, procfilePath)
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
if !common.FileExists(scalefilePath) {
|
||||
@@ -152,10 +155,15 @@ func CommandScale(appName string, processTuples []string) error {
|
||||
return fmt.Errorf("App %s contains DOKKU_SCALE file and cannot be manually scaled", appName)
|
||||
}
|
||||
|
||||
common.LogInfo1(fmt.Sprintf("Scaling %s processes: %s", appName, strings.Join(processTuples, " ")))
|
||||
if err := updateScalefile(appName, processTuples); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !common.IsDeployed(appName) {
|
||||
return nil
|
||||
}
|
||||
|
||||
imageTag, err := common.GetRunningImageTag(appName)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user