MCPcopy Create free account
hub / github.com/apache/cloudstack / loadCmdFromXML

Method loadCmdFromXML

tools/marvin/marvin/codegenerator.py:298–349  ·  view source on GitHub ↗
(self, dom)

Source from the content-addressed store, hash-verified

296 return paramProperty
297
298 def loadCmdFromXML(self, dom):
299 cmds = []
300 for cmd in dom.getElementsByTagName("command"):
301 csCmd = cloudStackCmd()
302 csCmd.name = getText(cmd.getElementsByTagName('name'))
303 assert csCmd.name
304
305 desc = getText(cmd.getElementsByTagName('description'))
306 if desc:
307 csCmd.desc = desc
308
309 asyncmethod = getText(cmd.getElementsByTagName('isAsync'))
310 if asyncmethod:
311 csCmd.asyncmethod = asyncmethod
312
313 argList = cmd.getElementsByTagName("request")[0].\
314 getElementsByTagName("arg")
315 for param in argList:
316 paramProperty = cmdParameterProperty()
317
318 paramProperty.name =\
319 getText(param.getElementsByTagName('name'))
320 assert paramProperty.name
321
322 required = param.getElementsByTagName('required')
323 if required:
324 paramProperty.required = getText(required)
325
326 requestDescription = param.getElementsByTagName('description')
327 if requestDescription:
328 paramProperty.desc = getText(requestDescription)
329
330 type = param.getElementsByTagName("type")
331 if type:
332 paramProperty.type = getText(type)
333
334 dataType = param.getElementsByTagName('dataType')
335 if dataType:
336 paramProperty.dataType = getText(dataType)
337
338 csCmd.request.append(paramProperty)
339
340 responseEle = cmd.getElementsByTagName("response")[0]
341 for response in responseEle.getElementsByTagName("arg"):
342 if response.parentNode != responseEle:
343 continue
344
345 paramProperty = self.constructResponseFromXML(response)
346 csCmd.response.append(paramProperty)
347
348 cmds.append(csCmd)
349 return cmds
350
351 def generateCodeFromXML(self, apiSpecFile):
352 dom = xml.dom.minidom.parse(apiSpecFile)

Callers 1

generateCodeFromXMLMethod · 0.95

Calls 5

cloudStackCmdClass · 0.85
getTextFunction · 0.70
appendMethod · 0.45

Tested by

no test coverage detected