X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=RO-SDN-arista_cloudvision%2Fosm_rosdn_arista_cloudvision%2FaristaTask.py;h=12f3920c0b46f9f3e75f031b3efa7f42d5c820d3;hb=98740c03567ff8c5a22f06fd3f049248a9e5f98d;hp=a338afd48fdde7be67e45bfe5209478e5321e784;hpb=667d158c0d3ee7b4c176ad0b27ac428c81b0ddbc;p=osm%2FRO.git diff --git a/RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/aristaTask.py b/RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/aristaTask.py index a338afd4..12f3920c 100644 --- a/RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/aristaTask.py +++ b/RO-SDN-arista_cloudvision/osm_rosdn_arista_cloudvision/aristaTask.py @@ -48,6 +48,7 @@ class AristaCVPTask: def __apply_state(self, task, state): t_id = self.__get_id(task) self.cvpClientApi.add_note_to_task(t_id, "Executed by OSM") + if state == "executed": return self.__execute_task(t_id) elif state == "cancelled": @@ -64,34 +65,12 @@ class AristaCVPTask: def update_all_tasks(self, data): new_data = dict() + for task_id in data.keys(): res = self.cvpClientApi.get_task_by_id(task_id) new_data[task_id] = res - return new_data - def get_pending_tasks(self): - return self.cvpClientApi.get_tasks_by_status('Pending') - - def get_pending_tasks_old(self): - taskList = [] - tasksField = {'workOrderId': 'workOrderId', - 'workOrderState': 'workOrderState', - 'currentTaskName': 'currentTaskName', - 'description': 'description', - 'workOrderUserDefinedStatus': - 'workOrderUserDefinedStatus', - 'note': 'note', - 'taskStatus': 'taskStatus', - 'workOrderDetails': 'workOrderDetails'} - tasks = self.cvpClientApi.get_tasks_by_status('Pending') - # Reduce task data to required fields - for task in tasks: - taskFacts = {} - for field in task.keys(): - if field in tasksField: - taskFacts[tasksField[field]] = task[field] - taskList.append(taskFacts) - return taskList + return new_data def task_action(self, tasks, wait, state): changed = False @@ -118,15 +97,18 @@ class AristaCVPTask: now = time.time() while (now - start) < wait: data = self.update_all_tasks(data) + if all([self.__terminal(self.__get_state(t)) for t in data.values()]): break + time.sleep(1) now = time.time() if wait: for i, task in data.items(): if not self.__terminal(self.__get_state(task)): - warnings.append("Task {} has not completed in {} seconds". - format(i, wait)) + warnings.append( + "Task {} has not completed in {} seconds".format(i, wait) + ) return changed, data, warnings