+++ /dev/null
-#!/bin/bash
-#
-# Copyright (C) 2012, Red Hat, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-# The script supports the plugins below
-declare -a SUPPORTED_PLUGINS=(linuxbridge openvswitch)
-
-#
-# Print --help output and exit.
-#
-usage() {
-
-cat << EOF
-The helper script will install the necessary support for the DHCP agent.
-
-Usage: neutron-dhcp-setup [options]
-Options:
- --help | -h
- Print usage information.
- --plugin | -p
- The neutron plugin. Supported plugins:-
- ${SUPPORTED_PLUGINS[*]}
- --qhost | -q
- The Neutron hostname (assumes that this is also the QPID host).
-EOF
-
- exit 0
-}
-
-is_valid_plugin() {
- local i=
- for i in "${SUPPORTED_PLUGINS[@]}"; do
- if [ "$i" == "$1" ]; then
- return 0
- fi
- done
- return 1
-}
-
-DHCP_CONF=/etc/neutron/dhcp_agent.ini
-
-while [ $# -gt 0 ]
-do
- case "$1" in
- -h|--help)
- usage
- ;;
- -p|--plugin)
- shift
- NEUTRON_PLUGIN=${1}
- ;;
- -q|--qhost)
- shift
- Q_HOST=${1}
- ;;
- *)
- # ignore
- shift
- ;;
- esac
- shift
-done
-
-# if the plugin is not defined
-if [ -z ${NEUTRON_PLUGIN} ] ; then
- echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
- echo "Choice:"
- read NEUTRON_PLUGIN
-fi
-
-# check that the plugin is valid
-is_valid_plugin ${NEUTRON_PLUGIN}
-if [ $? -ne 0 ]; then
- echo "Plugin '${NEUTRON_PLUGIN}' not supported. Supported plugins:-"
- echo " ${SUPPORTED_PLUGINS[*]}"
- exit 0
-fi
-
-echo "Neutron plugin: ${NEUTRON_PLUGIN}"
-
-if [ -z ${Q_HOST} ] ; then
- echo "Please enter the Neutron hostname:"
- read Q_HOST
-fi
-
-Q_PORT=9696
-Q_CONF=/etc/neutron/neutron.conf
-# QPID
-openstack-config --set ${Q_CONF} DEFAULT rpc_backend neutron.openstack.common.rpc.impl_qpid
-openstack-config --set ${Q_CONF} DEFAULT qpid_hostname ${Q_HOST}
-
-case "${NEUTRON_PLUGIN}" in
-"linuxbridge")
- LINUX_INTERFACE_DRIVER=neutron.agent.linux.interface.BridgeInterfaceDriver
-;;
-
-"openvswitch")
- if ! rpm -q openvswitch > /dev/null
- then
- echo "Please install openvswitch"
- exit 0
- fi
- LINUX_INTERFACE_DRIVER=neutron.agent.linux.interface.OVSInterfaceDriver
-;;
-
-esac
-
-# Keystone specific
-OS_USERNAME=${OS_USERNAME:-neutron}
-OS_PASSWORD=${OS_PASSWORD:-servicepass}
-OS_AUTH_URL=${OS_AUTH_URL:-http://localhost:35357/v2.0/}
-OS_TENANT_NAME=${OS_TENANT_NAME:-service}
-
-# Update Keystone
-openstack-config --set ${DHCP_CONF} DEFAULT auth_url ${OS_AUTH_URL}
-openstack-config --set ${DHCP_CONF} DEFAULT admin_username ${OS_USERNAME}
-openstack-config --set ${DHCP_CONF} DEFAULT admin_password ${OS_PASSWORD}
-openstack-config --set ${DHCP_CONF} DEFAULT admin_tenant_name ${OS_TENANT_NAME}
-
-# Update interface driver
-openstack-config --set ${DHCP_CONF} DEFAULT interface_driver ${LINUX_INTERFACE_DRIVER}
-
-echo "Configuration updates complete!"