diff --git a/files/apts/ryu b/files/apts/ryu index 1e8f2d2ba9..4a4fc523b5 100644 --- a/files/apts/ryu +++ b/files/apts/ryu @@ -1,4 +1,5 @@ python-setuptools python-gevent python-gflags +python-netifaces python-sphinx diff --git a/files/rpms/ryu b/files/rpms/ryu index 1e8f2d2ba9..4a4fc523b5 100644 --- a/files/rpms/ryu +++ b/files/rpms/ryu @@ -1,4 +1,5 @@ python-setuptools python-gevent python-gflags +python-netifaces python-sphinx diff --git a/lib/quantum_plugins/ryu b/lib/quantum_plugins/ryu index f44f4ae37b..2dfd4f705a 100644 --- a/lib/quantum_plugins/ryu +++ b/lib/quantum_plugins/ryu @@ -15,6 +15,9 @@ function quantum_plugin_create_nova_conf() { function quantum_plugin_install_agent_packages() { _quantum_ovs_base_install_agent_packages + + # quantum_ryu_agent requires ryu module + install_ryu } function quantum_plugin_configure_common() { diff --git a/lib/quantum_thirdparty/ryu b/lib/quantum_thirdparty/ryu index de8e086195..7a01923cbf 100644 --- a/lib/quantum_thirdparty/ryu +++ b/lib/quantum_thirdparty/ryu @@ -49,8 +49,16 @@ function init_ryu() { echo "${RYU_CONF_CONTENTS}" > $RYU_CONF } +# install_ryu can be called multiple times as quantum_pluing/ryu may call +# this function for quantum-ryu-agent +# Make this function idempotent and avoid cloning same repo many times +# with RECLONE=yes +_RYU_INSTALLED=${_RYU_INSTALLED:-False} function install_ryu() { - git_clone $RYU_REPO $RYU_DIR $RYU_BRANCH + if [[ "$_RYU_INSTALLED" == "False" ]]; then + git_clone $RYU_REPO $RYU_DIR $RYU_BRANCH + _RYU_INSTALLED=True + fi } function start_ryu() {