Use new pepper option --json-file to fix escaping problems

Change-Id: I94dabcffb6ce236d37dbcbb9e9942c2fcfd9df7e
diff --git a/src/com/mirantis/mk/Python.groovy b/src/com/mirantis/mk/Python.groovy
index 0d2287c..c746ef2 100644
--- a/src/com/mirantis/mk/Python.groovy
+++ b/src/com/mirantis/mk/Python.groovy
@@ -302,8 +302,11 @@
     def common = new com.mirantis.mk.Common()
 
     // virtualenv setup
-    requirements = ['salt-pepper']
+    // TODO: once pepper changes are in pypi, reenable these lines
+    // requirements = ['salt-pepper']
+    requirements = []
     setupVirtualenv(path, 'python2', requirements, null, false, true)
+    runVirtualenvCommand(path, "pip install git+https://github.com/chnyda/pepper.git")
 
     // pepperrc creation
     rcFile = "${path}/pepperrc"
diff --git a/src/com/mirantis/mk/Salt.groovy b/src/com/mirantis/mk/Salt.groovy
index 6cc9a23..dc9bd6f 100644
--- a/src/com/mirantis/mk/Salt.groovy
+++ b/src/com/mirantis/mk/Salt.groovy
@@ -663,8 +663,10 @@
 def runPepperCommand(data, venv)   {
     def python = new com.mirantis.mk.Python()
     def dataStr = new groovy.json.JsonBuilder(data).toString()
-    dataStr = dataStr.replaceAll('"', '\\\\\"').replaceAll('\\$','\\\\\\$');
-    def pepperCmd = "pepper -c ${venv}/pepperrc --make-token -x ${venv}/.peppercache --json \"" + dataStr + "\""
+
+    pepperCmdFile = "${venv}/pepper-cmd.json"
+    writeFile file: pepperCmdFile, text: dataStr
+    def pepperCmd = "pepper -c ${venv}/pepperrc --make-token -x ${venv}/.peppercache --json-file ${pepperCmdFile}"
 
     if (venv) {
         output = python.runVirtualenvCommand(venv, pepperCmd)