From 8c530a4a5210f02fecaf600b3a9014c7feb75cf2 Mon Sep 17 00:00:00 2001 From: Jack Lucas Date: Tue, 15 Sep 2020 11:47:42 -0400 Subject: Fix race condition for plugin uploads Issue-ID: DCAEGEN2-2430 Signed-off-by: Jack Lucas Change-Id: Id8809d7773d8e18d7106186a5772cb2709225fbb --- cm-container/pom.xml | 2 +- cm-container/scripts/load-plugins.sh | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/cm-container/pom.xml b/cm-container/pom.xml index 3adc2bf..ee28287 100644 --- a/cm-container/pom.xml +++ b/cm-container/pom.xml @@ -27,7 +27,7 @@ limitations under the License. org.onap.dcaegen2.deployments cm-container dcaegen2-deployments-cm-container - 3.3.0 + 3.3.1 http://maven.apache.org UTF-8 diff --git a/cm-container/scripts/load-plugins.sh b/cm-container/scripts/load-plugins.sh index 5a342dd..c93f3d9 100755 --- a/cm-container/scripts/load-plugins.sh +++ b/cm-container/scripts/load-plugins.sh @@ -99,6 +99,22 @@ then install_plugin ${wagons[0]} ${types[0]} done + # The cfy plugin upload commands issued above will return + # before all of the processing is complete. The processing + # occurs in what Cloudify calls "system workflows", and if a + # system workflow is pending or running, other operations such + # as uploading a blueprint will fail. So we wait for any + # system workflows to finish before we create the PLUGINS_LOADED + # file and exit the script. That way, the bootstrap container + # (which waits for k8s to declare the CM container to be ready) + # will not try to upload blueprints while a system execution is + # underway. (See Jira DCAEGEN2-2430.) + while cm_hasany "executions?is_system_workflow=true&status=pending&status=started&status=queued&status=scheduled" + do + echo "Waiting for running system workflows to complete" + sleep 15 + done + touch ${PLUGINS_LOADED} else echo "Plugins already loaded" -- cgit 1.2.3-korg