func Clean()

in internal/client/integrations/clean.go [23:66]


func Clean(name string, reportOnly bool, keepList []string) (err error) {
	var listOfVersions []basicIntegrationVersion
	var nextPage string

	apiclient.ClientPrintHttpResponse.Set(false)
	defer apiclient.ClientPrintHttpResponse.Set(apiclient.GetCmdPrintHttpResponseSetting())
	for {
		respBody, err := ListVersions(name, -1, nextPage, "", "", false, false, true)
		if err != nil {
			return err
		}
		iversions := listbasicIntegrationVersions{}
		err = json.Unmarshal(respBody, &iversions)
		if err != nil {
			return err
		}

		listOfVersions = append(listOfVersions, iversions.BasicIntegrationVersions...)
		if iversions.NextPageToken == "" {
			break
		}
		nextPage = iversions.NextPageToken
	}

	if len(listOfVersions) == 0 {
		clilog.Warning.Println("no integration versions where found")
		return nil
	}

	for _, iversion := range listOfVersions {
		if iversion.State != "ACTIVE" {
			if reportOnly {
				clilog.Info.Println("[REPORT]: Integration '" + name + "' Version: " + iversion.Version + " and Snapshot " + iversion.SnapshotNumber + " can be cleaned")
			} else {
				_, err = DeleteVersion(name, iversion.Version)
				if err != nil {
					return err
				}
			}
		}
	}

	return nil
}