Call VNF workflows concurrently
Change-Id: I798841c1368f45dc242f71fae52ef691c7e29c99
Signed-off-by: Daniel Arndt <daniel.arndt@canonical.com>
diff --git a/osm_lcm/temporal/ns_workflows.py b/osm_lcm/temporal/ns_workflows.py
index f76e31f..9a4e0ee 100644
--- a/osm_lcm/temporal/ns_workflows.py
+++ b/osm_lcm/temporal/ns_workflows.py
@@ -14,6 +14,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+import asyncio
+
from osm_common.dataclasses.temporal_dataclasses import (
GetVnfRecordIdsInput,
GetVnfRecordIdsOutput,
@@ -72,13 +74,18 @@
retry_policy=LcmOperationWorkflow.no_retry_policy,
),
)
-
- for vnfr_uuid in vnf_record_ids_output.vnfr_ids:
- await workflow.execute_child_workflow(
- workflow=WORKFLOW_VNF_INSTANTIATE,
- arg=VnfInstantiateInput(vnfr_uuid=vnfr_uuid, model_name=model_name),
- id=f"{WORKFLOW_VNF_INSTANTIATE}-{vnfr_uuid}",
+ await asyncio.gather(
+ *(
+ workflow.execute_child_workflow(
+ workflow=WORKFLOW_VNF_INSTANTIATE,
+ arg=VnfInstantiateInput(
+ vnfr_uuid=vnfr_uuid, model_name=model_name
+ ),
+ id=f"{WORKFLOW_VNF_INSTANTIATE}-{vnfr_uuid}",
+ )
+ for vnfr_uuid in vnf_record_ids_output.vnfr_ids
)
+ )
except ActivityError as e:
await self.update_ns_state(ns_uuid, NsState.INSTANTIATED, e.cause.message)