summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEnbo Wang <wangenbo@huawei.com>2020-03-02 20:56:11 +0800
committerEnbo Wang <wangenbo@huawei.com>2020-03-02 20:56:11 +0800
commit83e79104f3012f11dde94aa22ba2d6c286473c65 (patch)
treeb84bebc115a6295ef75191f9f73c41cbe292c53a
parent5e5cc2b2ace3a5fe4b1b2394bfa5a32f4664e52b (diff)
Fix parameter convertion for JSON array or object in LCM API payload
This patch for Ansible server can dump the JSON array or object in LCM API payload to a correct format of string, and the string can be reloaded to array or object. Change-Id: Ia5a5844ecaa3869acaeabd695afd41c113e63690 Issue-ID: CCSDK-2144 Signed-off-by: Enbo Wang <wangenbo@huawei.com>
-rwxr-xr-xansible-server/src/main/ansible-server/RestServer.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/ansible-server/src/main/ansible-server/RestServer.py b/ansible-server/src/main/ansible-server/RestServer.py
index 483b8322..3f42bfe4 100755
--- a/ansible-server/src/main/ansible-server/RestServer.py
+++ b/ansible-server/src/main/ansible-server/RestServer.py
@@ -329,6 +329,13 @@ def process_pnf_playbook(input_json, Id, EnvParameters, time_now):
cherrypy.log("Request Decode: EnvParameters " + json.dumps(EnvParameters))
cherrypy.log("Request Decode: PlaybookName " + PlaybookName)
+ for key in EnvParameters:
+ value = EnvParameters[key]
+ if isinstance(value, (list, dict)):
+ valueStr = json.dumps(value)
+ # Need to dump two times to keep the backslash and double quotes, add backslash and single quotes for spaces
+ EnvParameters[key] = "\\'" + json.dumps(valueStr)[1:-1] + "\\'"
+
str_uuid = str(uuid.uuid4())
HomeDir = os.path.dirname(os.path.realpath("~/"))