您的位置:首页 > 其它

Neutron中关于Devstack的源码分析

2017-11-27 19:22 471 查看
最近在配置适配DPDK的Openstack多节点环境,用到networking-ovs-dpdk的plugin,阅读了Neutron中关于Devstack的代码。

Devstack

Settings

L2_AGENT_EXTENSIONS=${L2_AGENT_EXTENSIONS:-}
if is_neutron_legacy_enabled; then
NEUTRON_CORE_PLUGIN=$Q_PLUGIN
NEUTRON_AGENT=$Q_AGENT
# NOTE(ihrachys) those values are defined same way as in #lib/neutron_plugins/ml2:neutron_plugin_configure_common       NEUTRON_CORE_PLUGIN_CONF_PATH=etc/neutron/plugins/ml2    NEUTRON_CORE_PLUGIN_CONF=$NEUTRON_CORE_PLUGIN_CONF_PATH/ml2_conf.ini
fi


此处定义了neutron使用的插件,以及q-agt的名称还有核心插件的配置文件位置。另外q是neutron以前名字quantum的缩写。

Plugin.sh

LIBDIR=$DEST/neutron/devstack/lib

source $LIBDIR/dns
source $LIBDIR/flavors
source $LIBDIR/l2_agent
source $LIBDIR/l2_agent_sriovnicswitch
source $LIBDIR/ml2
source $LIBDIR/qos
source $LIBDIR/ovs
source $LIBDIR/segments
source $LIBDIR/trunk

Q_BUILD_OVS_FROM_GIT=$(trueorfalse False Q_BUILD_OVS_FROM_GIT)

if [ -f $LIBDIR/${NEUTRON_AGENT}_agent ]; then
source $LIBDIR/${NEUTRON_AGENT}_agent
fi

if [[ "$1" == "stack" ]]; then
case "$2" in
install)
if [[ "$NEUTRON_AGENT" == "openvswitch" ]] && \
[[ "$Q_BUILD_OVS_FROM_GIT" == "True" ]]; then
remove_ovs_packages
compile_ovs True /usr /var
start_new_ovs
fi
;;
post-config)
if is_service_enabled q-flavors neutron-flavors; then
configure_flavors
fi
if is_service_enabled q-qos neutron-qos; then
configure_qos
fi
if is_service_enabled q-trunk neutron-trunk; then
configure_trunk_extension
fi
if is_service_enabled q-dns neutron-dns; then
configure_dns_extension
post_config_dns_extension
fi
if is_service_enabled neutron-segments; then
configure_segments_extension
fi
if is_service_enabled q-agt neutron-agent; then
configure_l2_agent
fi
#Note: sriov agent should run with OVS or linux bridge agent
#because they are the mechanisms that bind the DHCP and router ports.
#Currently devstack lacks the option to run two agents on the same node.
#Therefore we create new service, q-sriov-agt, and the
# q-agt/neutron-agent should be OVS or linux bridge.
if is_service_enabled q-sriov-agt neutron-sriov-agent; then
configure_$NEUTRON_CORE_PLUGIN
configure_l2_agent
configure_l2_agent_sriovnicswitch
fi
if [ $NEUTRON_CORE_PLUGIN = ml2 ]; then
configure_ml2_extension_drivers
fi
;;
extra)
if is_service_enabled q-sriov-agt neutron-sriov-agent; then
start_l2_agent_sriov
fi
;;
esac
elif [[ "$1" == "unstack" ]]; then
if is_service_enabled q-sriov-agt neutron-sriov-agent; then
stop_l2_agent_sriov
fi
if [[ "$NEUTRON_AGENT" == "openvswitch" ]] && \
[[ "$Q_BUILD_OVS_FROM_GIT" == "True" ]]; then
stop_new_ovs
fi
fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: