fix: check for deployment of app before removing
continuous-integration/drone/push Build is passing Details

Closes coop-cloud/go-abra#61.

Fix thanks to @knoflook!
This commit is contained in:
decentral1se 2021-09-05 21:54:52 +02:00
parent 273db078b0
commit cc249e8187
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
1 changed files with 22 additions and 12 deletions

View File

@ -49,7 +49,7 @@ var appRemoveCommand = &cli.Command{
logrus.Fatal(err)
}
if !response {
return errors.New("User aborted app removal")
logrus.Fatal("User aborted app removal")
}
}
@ -65,6 +65,16 @@ var appRemoveCommand = &cli.Command{
if err != nil {
logrus.Fatal(err)
}
if !internal.Force {
// get app status and check if it's deployed
statuses, err := config.GetAppStatuses(appFiles)
if err != nil {
logrus.Fatal(err)
}
if statuses[appName] == "deployed" {
logrus.Fatalf("'%s' is still deployed. Run \"abra app %s undeploy\" or pass --force", appName, appName)
}
}
fs := filters.NewArgs()
fs.Add("name", appName)
@ -74,14 +84,14 @@ var appRemoveCommand = &cli.Command{
}
secrets := make(map[string]string)
var secretNames []string
for _, cont := range secretList {
secrets[cont.Spec.Annotations.Name] = cont.ID // we have to map the names to ID's
secretNames = append(secretNames, cont.Spec.Annotations.Name)
}
if len(secrets) > 0 {
var secretNames []string
for _, cont := range secretList {
secrets[cont.Spec.Annotations.Name] = cont.ID // we have to map the names to ID's
secretNames = append(secretNames, cont.Spec.Annotations.Name)
}
var secretNamesToRemove []string
if !internal.Force {
secretsPrompt := &survey.MultiSelect{
@ -112,11 +122,11 @@ var appRemoveCommand = &cli.Command{
}
var vols []string
if len(vols) > 0 {
for _, vol := range volumeList {
vols = append(vols, vol.Name)
}
for _, vol := range volumeList {
vols = append(vols, vol.Name)
}
if len(vols) > 0 {
if Volumes {
var removeVols []string
if !internal.Force {