diff --git a/src/com/mirantis/mk/Http.groovy b/src/com/mirantis/mk/Http.groovy
index 69b0ef3..8881fff 100644
--- a/src/com/mirantis/mk/Http.groovy
+++ b/src/com/mirantis/mk/Http.groovy
@@ -15,7 +15,7 @@
  */
 @NonCPS
 def sendHttpRequest(url, method = 'GET', data = null, headers = [:]) {
-    def common = new com.mirantis.mk.Common()
+    //def common = new com.mirantis.mk.Common()
     def connection = new URL(url).openConnection()
     if (method != 'GET') {
         connection.setRequestMethod(method)
@@ -39,8 +39,8 @@
         } else {
             dataStr = new groovy.json.JsonBuilder(data).toString()
         }
+        //common.debugMsg("[HTTP] Request URL: ${url}, method: ${method}, headers: ${headers}, content: ${dataStr}")
         def output = new OutputStreamWriter(connection.outputStream)
-        common.debugMsg("[HTTP] Request URL: ${url}, method: ${method}, headers: ${headers}, content: ${dataStr}")
         output.write(dataStr)
         output.close()
     }
@@ -52,13 +52,12 @@
         } catch (groovy.json.JsonException e) {
             response_content = response
         }
-        common.debugMsg("[HTTP] Response: code ${connection.responseCode}")
+        //common.debugMsg("[HTTP] Response: code ${connection.responseCode}")
         return response_content
     } else {
-        common.debugMsg("[HTTP] Response: code ${connection.responseCode}")
+        //common.debugMsg("[HTTP] Response: code ${connection.responseCode}")
         throw new Exception(connection.responseCode + ": " + connection.inputStream.text)
     }
-
 }
 
 /**
