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

Method executeCmd

tools/marvin/marvin/asyncJobMgr.py:76–117  ·  view source on GitHub ↗
(self, job)

Source from the content-addressed store, hash-verified

74 return job
75
76 def executeCmd(self, job):
77 cmd = job.cmd
78
79 jobstatus = jobStatus()
80 jobId = None
81 try:
82 self.lock.acquire()
83
84 if cmd.isAsync == "false":
85 jobstatus.startTime = datetime.datetime.now()
86
87 result = self.connection.marvin_request(cmd)
88 jobstatus.result = result
89 jobstatus.endTime = datetime.datetime.now()
90 jobstatus.duration =\
91 time.mktime(jobstatus.endTime.timetuple()) - time.mktime(
92 jobstatus.startTime.timetuple())
93 else:
94 result = self.connection.marvinRequest(cmd)
95 if result is None:
96 jobstatus.status = False
97 else:
98 jobId = result.jobid
99 jobstatus.jobId = jobId
100 try:
101 responseName =\
102 cmd.__class__.__name__.replace("Cmd", "Response")
103 jobstatus.responsecls =\
104 jsonHelper.getclassFromName(cmd, responseName)
105 except:
106 pass
107 jobstatus.status = True
108 except cloudstackException.CloudstackAPIException as e:
109 jobstatus.result = str(e)
110 jobstatus.status = False
111 except:
112 jobstatus.status = False
113 jobstatus.result = sys.exc_info()
114 finally:
115 self.lock.release()
116
117 return jobstatus
118
119 def run(self):
120 while self.inqueue.qsize() > 0:

Callers 1

runMethod · 0.95

Calls 6

jobStatusClass · 0.85
acquireMethod · 0.80
nowMethod · 0.80
marvinRequestMethod · 0.80
replaceMethod · 0.80
releaseMethod · 0.65

Tested by

no test coverage detected