Edited methods restCall, publishArtifactoryHelmChart, deleteArtifactoryHelmChart and added restPut2 for Artifactory.groovy
Related-prod: https://mirantis.jira.com/browse/PROD-31522
Change-Id: I8182477bb3a8296c4981e8631e0f1791152a2d0d
diff --git a/src/com/mirantis/mk/Artifactory.groovy b/src/com/mirantis/mk/Artifactory.groovy
index 73ed80f..a840956 100644
--- a/src/com/mirantis/mk/Artifactory.groovy
+++ b/src/com/mirantis/mk/Artifactory.groovy
@@ -9,14 +9,15 @@
/**
* Make generic call using Artifactory REST API and return parsed JSON
*
- * @param art Artifactory connection object
- * @param uri URI which will be appended to artifactory server base URL
+ * @param art Artifactory connection object
+ * @param uri URI which will be appended to artifactory server base URL
* @param method HTTP method to use (default GET)
* @param data JSON data to POST or PUT
* @param headers Map of additional request headers
+ * @param prefix Default prefix "/api"
*/
-def restCall(art, uri, method = 'GET', data = null, headers = [:]) {
- def connection = new URL("${art.url}/api${uri}").openConnection()
+def restCall(art, uri, method = 'GET', data = null, headers = [:], prefix = '/api') {
+ def connection = new URL("${art.url}${prefix}${uri}").openConnection()
if (method != 'GET') {
connection.setRequestMethod(method)
}
@@ -84,6 +85,18 @@
}
/**
+ * Make PUT request using Artifactory REST API for helm charts
+ *
+ * @param art Artifactory connection object
+ * @param uri URI which will be appended to artifactory server base URL
+ * @param data JSON Data to PUT
+ * @param prefix Default prefix "/api" (empty values should be for this way)
+ */
+def restPut2(art, uri, prefix, data = null) {
+ return restCall(art, uri, 'PUT', data, ['Accept': '*/*'], prefix)
+}
+
+/**
* Make DELETE request using Artifactory REST API
*
* @param art Artifactory connection object
@@ -107,9 +120,9 @@
/**
* Query artifacts by properties
*
- * @param art Artifactory connection object
+ * @param art Artifactory connection object
* @param properties String or list of properties in key=value format
- * @param repo Optional repository to search in
+ * @param repo Optional repository to search in
*/
def findArtifactByProperties(art, properties, repo) {
query = parseProperties(properties)
@@ -444,7 +457,7 @@
* @param chartName Chart name
*/
def publishArtifactoryHelmChart(art, repoName, chartName){
- return restPut(art, "/repositories/${repoName}", "${chartName}")
+ return restPut2(art, "/${repoName}", "${chartName}")
}
/**