From fe8dae24a8bb59cf2a8808ba438cc69336c14819 Mon Sep 17 00:00:00 2001 From: Vincent Llorens Date: Thu, 2 Jun 2016 16:32:30 +0200 Subject: [PATCH] fixed command.Execute() and changed the logging level of service.executeCommand() Change-Id: I8cc853c99fedb6517f9820036c41d450c26e3bf8 --- synergy/client/command.py | 6 ++++- synergy/service.py | 53 +++------------------------------------ 2 files changed, 9 insertions(+), 50 deletions(-) diff --git a/synergy/client/command.py b/synergy/client/command.py index f295caf..a4a7d44 100644 --- a/synergy/client/command.py +++ b/synergy/client/command.py @@ -1,3 +1,4 @@ +import json import requests __author__ = "Lisa Zangrando" @@ -211,9 +212,12 @@ class Execute(HTTPCommand): super(Execute, self).__init__(name) def sendRequest(self, synergy_url, manager, command, args=None): + if args is None: + args = {} + payload = {"manager": manager, "command": command, - "args": args} + "args": json.dumps(args)} super(Execute, self).sendRequest(synergy_url + "/synergy/execute", payload) diff --git a/synergy/service.py b/synergy/service.py index 05bc820..dc5360a 100644 --- a/synergy/service.py +++ b/synergy/service.py @@ -13,7 +13,6 @@ except ImportError: from oslo.config import cfg from synergy.common import config -from synergy.common import serializer from synergy.common import service from synergy.common import wsgi @@ -242,7 +241,8 @@ class Synergy(service.Service): if query: parameters = parse_qs(query) - LOG.info(parameters) + LOG.debug("execute command: parameters=%s" % parameters) + if "manager" in parameters: manager_name = escape(parameters['manager'][0]) @@ -271,57 +271,12 @@ class Synergy(service.Service): except Exception: result = result.__dict__ - LOG.info("command result %s" % result) + LOG.debug("execute command: result=%s" % result) start_response("200 OK", [("Content-Type", "text/html")]) return ["%s" % json.dumps(result)] except Exception as ex: - LOG.info("executeCommand error: %s" % ex) - start_response("404 NOT FOUND", - [("Content-Type", "text/plain")]) - return ["error: %s" % ex] - else: - start_response("404 NOT FOUND", [("Content-Type", "text/plain")]) - return ["manager %r not found!" % manager_name] - - def executeCommand2(self, environ, start_response): - manager_name = None - command = None - - synergySerializer = serializer.SynergySerializer() - query = environ.get("QUERY_STRING", None) - # LOG.info("QUERY_STRING %s" % query) - if query: - parameters = parse_qs(query) - - if "manager" in parameters: - manager_name = escape(parameters['manager'][0]) - - if "command" in parameters: - command_string = escape(parameters['command'][0]) - command_string = command_string.replace("'", "\"") - entity = json.loads(command_string) - command = synergySerializer.deserialize_entity(context=None, - entity=entity) - - if not query or not manager_name or not command: - start_response("404 NOT FOUND", [("Content-Type", "text/plain")]) - return ["wrong query"] - - if manager_name in self.managers: - manager = self.managers[manager_name] - try: - cmd_result = manager.execute(command=command.getName(), - **command.getParameters()) - command.addResult("result", cmd_result) - result = synergySerializer.serialize_entity(context=None, - entity=command) - # LOG.info("command result %s" % result) - - start_response("200 OK", [("Content-Type", "text/html")]) - return ["%s" % json.dumps(result)] - except Exception as ex: - LOG.info("executeCommand error: %s" % ex) + LOG.debug("execute command: error=%s" % ex) start_response("404 NOT FOUND", [("Content-Type", "text/plain")]) return ["error: %s" % ex]