Optimize number of compute/get calls when creating new kvmvm, step 1
This commit is contained in:
@@ -380,6 +380,9 @@ class decort_kvmvm(DecortController):
|
|||||||
super(decort_kvmvm, self).__init__(arg_amodule)
|
super(decort_kvmvm, self).__init__(arg_amodule)
|
||||||
|
|
||||||
self.comp_should_exist = False
|
self.comp_should_exist = False
|
||||||
|
# This following flag is used to avoid extra (and unnecessary) get of compute details prior to
|
||||||
|
# packaging facts before the module completes. As ""
|
||||||
|
self.skip_final_get = False
|
||||||
self.comp_id = 0
|
self.comp_id = 0
|
||||||
self.comp_info = None
|
self.comp_info = None
|
||||||
self.acc_id = 0
|
self.acc_id = 0
|
||||||
@@ -585,6 +588,8 @@ class decort_kvmvm(DecortController):
|
|||||||
# read in Compute facts once more after all initial setup is complete
|
# read in Compute facts once more after all initial setup is complete
|
||||||
_, self.comp_info, _ = self.compute_find(comp_id=self.comp_id)
|
_, self.comp_info, _ = self.compute_find(comp_id=self.comp_id)
|
||||||
|
|
||||||
|
self.skip_final_get = True
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def destroy(self):
|
def destroy(self):
|
||||||
@@ -872,14 +877,13 @@ def main():
|
|||||||
# prepare Compute facts to be returned as part of decon.result and then call exit_json(...)
|
# prepare Compute facts to be returned as part of decon.result and then call exit_json(...)
|
||||||
rg_facts = None
|
rg_facts = None
|
||||||
if subj.comp_should_exist:
|
if subj.comp_should_exist:
|
||||||
if subj.result['changed']:
|
if subj.result['changed'] and not subj.skip_final_get:
|
||||||
# There were changes to the Compute - refresh Compute facts.
|
# There were changes to the Compute - refresh Compute facts.
|
||||||
_, subj.comp_info, _ = subj.compute_find(comp_id=subj.comp_id)
|
_, subj.comp_info, _ = subj.compute_find(comp_id=subj.comp_id)
|
||||||
#
|
#
|
||||||
# TODO: check if we really need to get RG facts here in view of DNF implementation
|
# We no longer need to re-read RG facts, as all network info is now available inside
|
||||||
# we need to extract RG facts regardless of 'changed' flag, as it is our source of information on
|
# compute structure
|
||||||
# the VDC external IP address
|
# _, rg_facts = subj.rg_find(arg_account_id=0, arg_rg_id=subj.rg_id)
|
||||||
_, rg_facts = subj.rg_find(arg_account_id=0, arg_rg_id=subj.rg_id)
|
|
||||||
subj.result['facts'] = subj.package_facts(amodule.check_mode)
|
subj.result['facts'] = subj.package_facts(amodule.check_mode)
|
||||||
amodule.exit_json(**subj.result)
|
amodule.exit_json(**subj.result)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user