fixed command.Execute() and changed the logging level of service.executeCommand()

Change-Id: I8cc853c99fedb6517f9820036c41d450c26e3bf8
This commit is contained in:
Vincent Llorens 2016-06-02 16:32:30 +02:00
parent 89d379e5e7
commit fe8dae24a8
2 changed files with 9 additions and 50 deletions

View File

@ -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)

View File

@ -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]