Add helper reset internals function.
Use a little helper function to reset the internal state of the flow when needed instead of duplicating code that does this. Change-Id: I51d83538a2920c7d387ffd1756e8d99413f4077e
This commit is contained in:
		| @@ -49,8 +49,7 @@ class Flow(linear_flow.Flow): | ||||
|         assert isinstance(task, collections.Callable) | ||||
|         r = utils.Runner(task) | ||||
|         self._graph.add_node(r, uuid=r.uuid) | ||||
|         self._runners = [] | ||||
|         self._leftoff_at = None | ||||
|         self._reset_internals() | ||||
|         return r.uuid | ||||
|  | ||||
|     def _add_dependency(self, provider, requirer): | ||||
| @@ -64,6 +63,10 @@ class Flow(linear_flow.Flow): | ||||
|         lines.append("%s" % (self.state)) | ||||
|         return "; ".join(lines) | ||||
|  | ||||
|     def _reset_internals(self): | ||||
|         super(Flow, self)._reset_internals() | ||||
|         self._runners = [] | ||||
|  | ||||
|     @decorators.locked | ||||
|     def remove(self, uuid): | ||||
|         runner = None | ||||
| @@ -74,10 +77,8 @@ class Flow(linear_flow.Flow): | ||||
|         if not runner: | ||||
|             raise ValueError("No runner found with uuid %s" % (uuid)) | ||||
|         else: | ||||
|             # Ensure that we reset out internal state after said removal | ||||
|             self._graph.remove_node(runner) | ||||
|             self._runners = [] | ||||
|             self._leftoff_at = None | ||||
|             self._reset_internals() | ||||
|  | ||||
|     def _ordering(self): | ||||
|         try: | ||||
| @@ -94,7 +95,7 @@ class Flow(linear_flow.Flow): | ||||
|         create said dependency.""" | ||||
|         if len(self._graph) == 0: | ||||
|             return [] | ||||
|         if self._runners: | ||||
|         if self._connected: | ||||
|             return self._runners | ||||
|  | ||||
|         # Clear out all edges (since we want to do a fresh connection) | ||||
| @@ -137,4 +138,5 @@ class Flow(linear_flow.Flow): | ||||
|             r.runs_before = list(reversed(run_stack)) | ||||
|             run_stack.append(r) | ||||
|         self._runners = run_order | ||||
|         self._connected = True | ||||
|         return run_order | ||||
|   | ||||
| @@ -70,10 +70,13 @@ class Flow(base.Flow): | ||||
|         assert isinstance(task, collections.Callable) | ||||
|         r = utils.Runner(task) | ||||
|         r.runs_before = list(reversed(self._runners)) | ||||
|         self._runners.append(r) | ||||
|         self._reset_internals() | ||||
|         return r.uuid | ||||
|  | ||||
|     def _reset_internals(self): | ||||
|         self._connected = False | ||||
|         self._leftoff_at = None | ||||
|         self._runners.append(r) | ||||
|         return r.uuid | ||||
|  | ||||
|     def _associate_providers(self, runner): | ||||
|         # Ensure that some previous task provides this input. | ||||
| @@ -112,10 +115,8 @@ class Flow(base.Flow): | ||||
|         if index_removed == -1: | ||||
|             raise ValueError("No runner found with uuid %s" % (uuid)) | ||||
|         else: | ||||
|             # Ensure that we reset out internal state after said removal. | ||||
|             removed = self._runners.pop(index_removed) | ||||
|             self._connected = False | ||||
|             self._leftoff_at = None | ||||
|             self._reset_internals() | ||||
|             # Go and remove it from any runner after the removed runner since | ||||
|             # those runners may have had an attachment to it. | ||||
|             for r in self._runners[index_removed:]: | ||||
| @@ -257,8 +258,7 @@ class Flow(base.Flow): | ||||
|         self.results = {} | ||||
|         self.resumer = None | ||||
|         self._accumulator.reset() | ||||
|         self._leftoff_at = None | ||||
|         self._connected = False | ||||
|         self._reset_internals() | ||||
|  | ||||
|     @decorators.locked | ||||
|     def rollback(self, context, cause): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Joshua Harlow
					Joshua Harlow