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

Method finalize

tools/marvin/marvin/codegenerator.py:196–278  ·  view source on GitHub ↗

generate an api call

(self)

Source from the content-addressed store, hash-verified

194 self.subclass = []
195
196 def finalize(self):
197 '''generate an api call'''
198
199 header = '"""Test Client for CloudStack API"""\n'
200 imports = "import copy\n"
201 initCmdsList = '__all__ = ['
202 body = ''
203 body += "class CloudStackAPIClient(object):\n"
204 body += self.space + 'def __init__(self, connection):\n'
205 body += self.space + self.space + 'self.connection = connection\n'
206 body += self.space + self.space + 'self._id = None\n'
207 body += self.newline
208
209 body += self.space + 'def __copy__(self):\n'
210 body += self.space + self.space
211 body += 'return CloudStackAPIClient(copy.copy(self.connection))\n'
212 body += self.newline
213
214 # The `id` property will be used to link the test with the cloud
215 # resource being created
216 # @property
217 # def id(self):
218 # return self._id
219 #
220 # @id.setter
221 # def id(self, identifier):
222 # self._id = identifier
223
224 body += self.space + '@property' + self.newline
225 body += self.space + 'def id(self):' + self.newline
226 body += self.space * 2 + 'return self._id' + self.newline
227 body += self.newline
228
229 body += self.space + '@id.setter' + self.newline
230 body += self.space + 'def id(self, identifier):' + self.newline
231 body += self.space * 2 + 'self._id = identifier' + self.newline
232 body += self.newline
233
234 for cmdName in self.cmdsName:
235 body += self.space
236 if cmdName in ["login", "logout"]:
237 body += 'def %s(self, command, method="POST"):\n' % cmdName
238 else:
239 body += 'def %s(self, command, method="GET"):\n' % cmdName
240 body += self.space + self.space
241 body += 'response = %sResponse()\n' % cmdName
242 body += self.space + self.space
243 body += 'response = self.connection.marvinRequest(command,'
244 body += ' response_type=response, method=method)\n'
245 body += self.space + self.space + 'return response\n'
246 body += self.newline
247
248 imports += 'from .%s import %sResponse\n' % (cmdName, cmdName)
249 initCmdsList += '"%s",' % cmdName
250
251 fp = open(self.outputFolder + '/cloudstackAPI/cloudstackAPIClient.py',
252 'w')
253 fp.write(self.license)

Callers 2

generateCodeFromXMLMethod · 0.95
generateCodeFromJSONMethod · 0.95

Calls 2

writeMethod · 0.65
closeMethod · 0.65

Tested by

no test coverage detected