void deleteRedashResource()

in src/com/epam/digital/data/platform/pipelines/registrycomponents/regular/Redash.groovy [147:179]


    void deleteRedashResource(String url, String apiKey) {
        def content = getContent(url, apiKey)
        def parsedJson = new JsonSlurperClassic().parseText(content)
        if (url.contains("api/dashboards")) {
            removeDashboards(parsedJson, url, apiKey)
            def defaultPageSize = parsedJson.results.size()
            def countLeftToDelete = parsedJson.count - defaultPageSize
            def numberOfIterations = countLeftToDelete > 0 ? Math.ceil(countLeftToDelete / defaultPageSize) : 0
            numberOfIterations.times {
                content = getContent(url, apiKey)
                parsedJson = new JsonSlurperClassic().parseText(content)
                removeDashboards(parsedJson, url, apiKey)
            }
        } else {
            int resourcesCount = parsedJson.size()
            resourcesCount.times {
                String nameValue
                String id
                nameValue = parsedJson[it]["name"]
                if (!nameValue.matches("(.*)audit(.*)") && !nameValue.matches("admin") &&
                        !nameValue.matches("default")) {
                    id = parsedJson[it]["id"]
                    context.logger.info("Removing not audit resource: " + nameValue)
                    context.script.httpRequest url: "${url}/${id}",
                            httpMode: "DELETE",
                            customHeaders: [[name: "authorization", value: apiKey, maskValue: true]],
                            consoleLogResponseBody: context.logLevel == "DEBUG",
                            quiet: context.logLevel != "DEBUG",
                            validResponseCodes: "200,204"
                }
            }
        }
    }