diff options
Diffstat (limited to 'windriver/titanium_cloud/vesagent/tasks.py')
-rw-r--r-- | windriver/titanium_cloud/vesagent/tasks.py | 60 |
1 files changed, 56 insertions, 4 deletions
diff --git a/windriver/titanium_cloud/vesagent/tasks.py b/windriver/titanium_cloud/vesagent/tasks.py index 09591b45..e46ed8a7 100644 --- a/windriver/titanium_cloud/vesagent/tasks.py +++ b/windriver/titanium_cloud/vesagent/tasks.py @@ -44,13 +44,65 @@ def scheduleBacklogs(self, vimid): def processBacklogs(): # find out count of valid backlog and the next time slot - backlog_count = 2 #debug the timer sleep + backlog_count = 0 next_time_slot = 10 + try: + #get the whole list of backlog + VesAgentBacklogsVimListStr = cache.get("VesAgentBacklogs.vimlist") + if VesAgentBacklogsVimListStr is None: + logger.warn("VesAgentBacklogs.vimlist cannot be found in cache") + return 0,next_time_slot - logger.debug("process backlogs starts") + logger.debug("VesAgentBacklogs.vimlist: %s" % (VesAgentBacklogsVimListStr)) - #TBD + backlogsAllVims = json.loads(VesAgentBacklogsVimListStr) + if backlogsAllVims is None: + logger.warn("VesAgentBacklogs.vimlist is empty") + return 0,next_time_slot + + for vimid in backlogsAllVims: + #iterate each backlogs + backlog_count_tmp,next_time_slot_tmp = processBacklogsOfOneVIM(vimid) + logger.debug("vimid:%s, backlog_count,next_time_slot:%s,%s" + %( vimid,backlog_count_tmp,next_time_slot_tmp )) + backlog_count += backlog_count_tmp + next_time_slot = next_time_slot_tmp if next_time_slot > next_time_slot_tmp else next_time_slot + pass + + except Exception as e: + logger.error("exception:%s" % str(e)) + + return backlog_count, next_time_slot + + pass + + +def processBacklogsOfOneVIM(vimid): + ''' + process all backlogs for a VIM, return count of valid backlogs + :param vimid: + :return: + ''' + backlog_count = 3 + next_time_slot = 10 + + try: + vesAgentConfigStr = cache.get("VesAgentBacklogs.config.%s" % (vimid)) + if vesAgentConfigStr is None: + logger.warn("VesAgentBacklogs.config.%s cannot be found in cache" % (vimid)) + return 0,next_time_slot + + logger.debug("VesAgentBacklogs.config.%s: %s" % (vimid, vesAgentConfigStr)) + + vesAgentConfig = json.loads(vesAgentConfigStr) + if vesAgentConfig is None: + logger.warn("VesAgentBacklogs.config.%s corrupts" % (vimid)) + return 0,next_time_slot + + + + except Exception as e: + logger.error("exception:%s" % str(e)) - logger.debug("return with %s" %(backlog_count, next_time_slot)) return backlog_count, next_time_slot |