10 from Commands
import ResponseItem
11 from Commands
import Session, Limits
12 from Commands
import TaskExecuteRequest
13 from Commands
import TaskResponse, DRCECover
23 Exception.__init__(self, msg)
33 if isinstance(obj, DRCECover):
46 if isinstance(obj, TaskExecuteRequest):
49 if isinstance(obj, Session):
52 if isinstance(obj, Limits):
67 def decode(self, json_string, _w=json.decoder.WHITESPACE.match):
68 default_obj = super(TaskResponseDecoder, self).
decode(json_string, _w)
71 for response_item
in default_obj:
73 response.error_code = response_item[
"error_code"]
74 response.error_message = response_item[
"error_message"]
75 response.id = response_item[
"id"]
76 response.type = response_item[
"type"]
77 response.host = response_item[
"host"]
78 response.port = response_item[
"port"]
79 response.state = response_item[
"state"]
80 response.pid = response_item[
"pid"]
81 response.stdout = response_item[
"stdout"]
82 response.stderror = response_item[
"stderror"]
83 response.exit_status = response_item[
"exit_status"]
85 response.node = response_item[
"node"]
86 response.time = response_item[
"time"]
87 response.fields = response_item[
"fields"]
89 items.append(response)
101 for item
in files_list:
102 files.append({
"name":item[
"name"],
104 "action":item[
"action"]})
114 Convert Request to json and restore Response from json 124 if isinstance(command, TaskExecuteRequest):
125 cmd_json = json.loads(json.dumps(command, cls=TaskExecuteRequestEncoder))
127 cmd_json = json.loads(json.dumps(command.__dict__))
129 data = cmd_json[
"data"]
130 data_json = json.dumps(data)
132 cmd_json[
"data"] = base64.b64encode(data_json)
133 cmd_json = json.dumps(cmd_json)
137 except (TypeError, ValueError)
as err:
147 drceResponseObj = json.loads(json_string, cls=TaskResponseDecoder)
148 for item
in drceResponseObj.items:
150 item.stderror = base64.b64decode(item.stderror)
151 item.stdout = base64.b64decode(item.stdout)
152 return drceResponseObj
153 except (ValueError, KeyError, TypeError)
as err:
163 Convert Request to json and restore Response from json 173 cmd_json = taskRequestObj.toJSON()
175 log.debug(
"!!! cmd_json: %s", cmd_json)
177 cmd_json = json.loads(cmd_json)
179 if "data" in cmd_json:
180 data_json = json.dumps(cmd_json[
"data"])
184 cmd_json[
"data"] = base64.b64encode(data_json)
185 cmd_json = json.dumps(cmd_json)
189 except (TypeError, ValueError)
as err:
190 raise CommandConvertorError(
"convert to json error : " + str(err) +
"\n" + Utils.varDump(taskRequestObj) +
'\n' + Utils.getTracebackInfo() + \
191 "\ncmd_json: " + Utils.varDump(cmd_json) +
"\ntaskRequestObj: " + Utils.varDump(taskRequestObj))
200 drceResponseObj = json.loads(json_string, cls=TaskResponseDecoder)
201 for item
in drceResponseObj.items:
203 item.stderror = base64.b64decode(item.stderror)
204 item.stdout = base64.b64decode(item.stdout)
205 return drceResponseObj
206 except (ValueError, KeyError, TypeError)
as err:
wrapper for task response item
def __process_files(self, files_list)
parse result_item files files
def decode(self, json_string, _w=json.decoder.WHITESPACE.match)
decoding function
def from_json(self, json_string)
convert from json string to TaskResponse
Helper class is used for correct encoding in json format from TaskExecuteStruct object.
Helper class is used for correct encoding in json format from Task*Request object.
Convertor which used to convert Task*Reques to json and TaskResponse from json.
Exception which inform about errors which appeared during parsing procedure of drce message protocol...
Helper class is used for correct decoding data from json format in TaskResponse.
wrapper for task response
def to_json(self, taskRequestObj, log=None)
convert from Task*Reques object to json string
def from_json(self, json_string)
convert from json string to TaskResponse
Convertor which used to convert Task*Reques to json and TaskResponse from json.
def to_json(self, command)
convert from Task*Reques object to json string