Skip to content

Commit ced6517

Browse files
author
Dean Troyer
committed
Create nova.conf in INI format (rather than flagfile)
* Rename EXTRA_FLAGS to EXTRA_OPTS * Is dependant on https://review.openstack.org/4946 (MERGED) Fixes bug 938924 Change-Id: Idee4f86e7846cff3529e173526d3ccb2289472f0
1 parent ee4ac37 commit ced6517

File tree

1 file changed

+82
-70
lines changed

1 file changed

+82
-70
lines changed

stack.sh

Lines changed: 82 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -829,11 +829,11 @@ fi
829829
# ----
830830

831831
# Put config files in /etc/nova for everyone to find
832-
NOVA_CONF=/etc/nova
833-
if [[ ! -d $NOVA_CONF ]]; then
834-
sudo mkdir -p $NOVA_CONF
832+
NOVA_CONF_DIR=/etc/nova
833+
if [[ ! -d $NOVA_CONF_DIR ]]; then
834+
sudo mkdir -p $NOVA_CONF_DIR
835835
fi
836-
sudo chown `whoami` $NOVA_CONF
836+
sudo chown `whoami` $NOVA_CONF_DIR
837837

838838
if is_service_enabled n-api; then
839839
# We are going to use a sample http middleware configuration based on the
@@ -844,7 +844,7 @@ if is_service_enabled n-api; then
844844
rm -f $NOVA_DIR/bin/nova-api-paste.ini
845845

846846
# First we add a some extra data to the default paste config from nova
847-
cp $NOVA_DIR/etc/nova/api-paste.ini $NOVA_CONF
847+
cp $NOVA_DIR/etc/nova/api-paste.ini $NOVA_CONF_DIR
848848

849849
# Then we add our own service token to the configuration
850850
sed -e "
@@ -854,11 +854,11 @@ if is_service_enabled n-api; then
854854
/admin_password/s/^.*$/admin_password = $SERVICE_PASSWORD/;
855855
s,%SERVICE_TENANT_NAME%,$SERVICE_TENANT_NAME,g;
856856
s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g;
857-
" -i $NOVA_CONF/api-paste.ini
857+
" -i $NOVA_CONF_DIR/api-paste.ini
858858

859859
# Finally, we change the pipelines in nova to use keystone
860860
function replace_pipeline() {
861-
sed "/\[pipeline:$1\]/,/\[/s/^pipeline = .*/pipeline = $2/" -i $NOVA_CONF/api-paste.ini
861+
sed "/\[pipeline:$1\]/,/\[/s/^pipeline = .*/pipeline = $2/" -i $NOVA_CONF_DIR/api-paste.ini
862862
}
863863
replace_pipeline "ec2cloud" "ec2faultwrap logrequest totoken authtoken keystonecontext cloudrequest authorizer validator ec2executor"
864864
replace_pipeline "ec2admin" "ec2faultwrap logrequest totoken authtoken keystonecontext adminrequest authorizer ec2executor"
@@ -1178,68 +1178,69 @@ if is_service_enabled n-vol; then
11781178
sudo start tgt
11791179
fi
11801180

1181-
function add_nova_flag {
1182-
echo "$1" >> $NOVA_CONF/nova.conf
1181+
NOVA_CONF=nova.conf
1182+
function add_nova_opt {
1183+
echo "$1" >> $NOVA_CONF_DIR/$NOVA_CONF
11831184
}
11841185

11851186
# remove legacy nova.conf
11861187
rm -f $NOVA_DIR/bin/nova.conf
11871188

11881189
# (re)create nova.conf
1189-
rm -f $NOVA_CONF/nova.conf
1190-
add_nova_flag "--verbose"
1191-
add_nova_flag "--allow_admin_api"
1192-
add_nova_flag "--allow_resize_to_same_host"
1193-
add_nova_flag "--scheduler_driver=$SCHEDULER"
1194-
add_nova_flag "--dhcpbridge_flagfile=$NOVA_CONF/nova.conf"
1195-
add_nova_flag "--fixed_range=$FIXED_RANGE"
1190+
rm -f $NOVA_CONF_DIR/$NOVA_CONF
1191+
add_nova_opt "[DEFAULT]"
1192+
add_nova_opt "verbose=True"
1193+
add_nova_opt "allow_resize_to_same_host=True"
1194+
add_nova_opt "scheduler_driver=$SCHEDULER"
1195+
add_nova_opt "dhcpbridge_flagfile=$NOVA_CONF_DIR/$NOVA_CONF"
1196+
add_nova_opt "fixed_range=$FIXED_RANGE"
11961197
if is_service_enabled n-obj; then
1197-
add_nova_flag "--s3_host=$SERVICE_HOST"
1198+
add_nova_opt "s3_host=$SERVICE_HOST"
11981199
fi
11991200
if is_service_enabled quantum; then
1200-
add_nova_flag "--network_manager=nova.network.quantum.manager.QuantumManager"
1201-
add_nova_flag "--quantum_connection_host=$Q_HOST"
1202-
add_nova_flag "--quantum_connection_port=$Q_PORT"
1201+
add_nova_opt "network_manager=nova.network.quantum.manager.QuantumManager"
1202+
add_nova_opt "quantum_connection_host=$Q_HOST"
1203+
add_nova_opt "quantum_connection_port=$Q_PORT"
12031204

12041205
if is_service_enabled melange; then
1205-
add_nova_flag "--quantum_ipam_lib=nova.network.quantum.melange_ipam_lib"
1206-
add_nova_flag "--use_melange_mac_generation"
1207-
add_nova_flag "--melange_host=$M_HOST"
1208-
add_nova_flag "--melange_port=$M_PORT"
1206+
add_nova_opt "quantum_ipam_lib=nova.network.quantum.melange_ipam_lib"
1207+
add_nova_opt "use_melange_mac_generation=True"
1208+
add_nova_opt "melange_host=$M_HOST"
1209+
add_nova_opt "melange_port=$M_PORT"
12091210
fi
12101211
if is_service_enabled q-svc && [[ "$Q_PLUGIN" = "openvswitch" ]]; then
1211-
add_nova_flag "--libvirt_vif_type=ethernet"
1212-
add_nova_flag "--libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver"
1213-
add_nova_flag "--linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver"
1214-
add_nova_flag "--quantum_use_dhcp"
1212+
add_nova_opt "libvirt_vif_type=ethernet"
1213+
add_nova_opt "libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver"
1214+
add_nova_opt "linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver"
1215+
add_nova_opt "quantum_use_dhcp=True"
12151216
fi
12161217
else
1217-
add_nova_flag "--network_manager=nova.network.manager.$NET_MAN"
1218+
add_nova_opt "network_manager=nova.network.manager.$NET_MAN"
12181219
fi
12191220
if is_service_enabled n-vol; then
1220-
add_nova_flag "--volume_group=$VOLUME_GROUP"
1221-
add_nova_flag "--volume_name_template=${VOLUME_NAME_PREFIX}%08x"
1221+
add_nova_opt "volume_group=$VOLUME_GROUP"
1222+
add_nova_opt "volume_name_template=${VOLUME_NAME_PREFIX}%08x"
12221223
# oneiric no longer supports ietadm
1223-
add_nova_flag "--iscsi_helper=tgtadm"
1224+
add_nova_opt "iscsi_helper=tgtadm"
12241225
fi
1225-
add_nova_flag "--osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions"
1226-
add_nova_flag "--my_ip=$HOST_IP"
1227-
add_nova_flag "--public_interface=$PUBLIC_INTERFACE"
1228-
add_nova_flag "--vlan_interface=$VLAN_INTERFACE"
1229-
add_nova_flag "--flat_network_bridge=$FLAT_NETWORK_BRIDGE"
1226+
add_nova_opt "osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions"
1227+
add_nova_opt "my_ip=$HOST_IP"
1228+
add_nova_opt "public_interface=$PUBLIC_INTERFACE"
1229+
add_nova_opt "vlan_interface=$VLAN_INTERFACE"
1230+
add_nova_opt "flat_network_bridge=$FLAT_NETWORK_BRIDGE"
12301231
if [ -n "$FLAT_INTERFACE" ]; then
1231-
add_nova_flag "--flat_interface=$FLAT_INTERFACE"
1232+
add_nova_opt "flat_interface=$FLAT_INTERFACE"
12321233
fi
1233-
add_nova_flag "--sql_connection=$BASE_SQL_CONN/nova"
1234-
add_nova_flag "--libvirt_type=$LIBVIRT_TYPE"
1235-
add_nova_flag "--instance_name_template=${INSTANCE_NAME_PREFIX}%08x"
1234+
add_nova_opt "sql_connection=$BASE_SQL_CONN/nova"
1235+
add_nova_opt "libvirt_type=$LIBVIRT_TYPE"
1236+
add_nova_opt "instance_name_template=${INSTANCE_NAME_PREFIX}%08x"
12361237
# All nova-compute workers need to know the vnc configuration options
12371238
# These settings don't hurt anything if n-xvnc and n-novnc are disabled
12381239
if is_service_enabled n-cpu; then
12391240
NOVNCPROXY_URL=${NOVNCPROXY_URL:-"http://$SERVICE_HOST:6080/vnc_auto.html"}
1240-
add_nova_flag "--novncproxy_base_url=$NOVNCPROXY_URL"
1241+
add_nova_opt "novncproxy_base_url=$NOVNCPROXY_URL"
12411242
XVPVNCPROXY_URL=${XVPVNCPROXY_URL:-"http://$SERVICE_HOST:6081/console"}
1242-
add_nova_flag "--xvpvncproxy_base_url=$XVPVNCPROXY_URL"
1243+
add_nova_opt "xvpvncproxy_base_url=$XVPVNCPROXY_URL"
12431244
fi
12441245
if [ "$VIRT_DRIVER" = 'xenserver' ]; then
12451246
VNCSERVER_PROXYCLIENT_ADDRESS=${VNCSERVER_PROXYCLIENT_ADDRESS=169.254.0.1}
@@ -1249,50 +1250,56 @@ fi
12491250
# Address on which instance vncservers will listen on compute hosts.
12501251
# For multi-host, this should be the management ip of the compute host.
12511252
VNCSERVER_LISTEN=${VNCSERVER_LISTEN=127.0.0.1}
1252-
add_nova_flag "--vncserver_listen=$VNCSERVER_LISTEN"
1253-
add_nova_flag "--vncserver_proxyclient_address=$VNCSERVER_PROXYCLIENT_ADDRESS"
1254-
add_nova_flag "--api_paste_config=$NOVA_CONF/api-paste.ini"
1255-
add_nova_flag "--image_service=nova.image.glance.GlanceImageService"
1256-
add_nova_flag "--ec2_dmz_host=$EC2_DMZ_HOST"
1257-
add_nova_flag "--rabbit_host=$RABBIT_HOST"
1258-
add_nova_flag "--rabbit_password=$RABBIT_PASSWORD"
1259-
add_nova_flag "--glance_api_servers=$GLANCE_HOSTPORT"
1260-
add_nova_flag "--force_dhcp_release"
1253+
add_nova_opt "vncserver_listen=$VNCSERVER_LISTEN"
1254+
add_nova_opt "vncserver_proxyclient_address=$VNCSERVER_PROXYCLIENT_ADDRESS"
1255+
add_nova_opt "api_paste_config=$NOVA_CONF_DIR/api-paste.ini"
1256+
add_nova_opt "image_service=nova.image.glance.GlanceImageService"
1257+
add_nova_opt "ec2_dmz_host=$EC2_DMZ_HOST"
1258+
add_nova_opt "rabbit_host=$RABBIT_HOST"
1259+
add_nova_opt "rabbit_password=$RABBIT_PASSWORD"
1260+
add_nova_opt "glance_api_servers=$GLANCE_HOSTPORT"
1261+
add_nova_opt "force_dhcp_release=True"
12611262
if [ -n "$INSTANCES_PATH" ]; then
1262-
add_nova_flag "--instances_path=$INSTANCES_PATH"
1263+
add_nova_opt "instances_path=$INSTANCES_PATH"
12631264
fi
12641265
if [ "$MULTI_HOST" != "False" ]; then
1265-
add_nova_flag "--multi_host"
1266-
add_nova_flag "--send_arp_for_ha"
1266+
add_nova_opt "multi_host=True"
1267+
add_nova_opt "send_arp_for_ha=True"
12671268
fi
12681269
if [ "$SYSLOG" != "False" ]; then
1269-
add_nova_flag "--use_syslog"
1270+
add_nova_opt "use_syslog=True"
12701271
fi
12711272

1272-
# You can define extra nova conf flags by defining the array EXTRA_FLAGS,
1273-
# For Example: EXTRA_FLAGS=(--foo --bar=2)
1274-
for I in "${EXTRA_FLAGS[@]}"; do
1275-
add_nova_flag $I
1273+
# Provide some transition from EXTRA_FLAGS to EXTRA_OPTS
1274+
if [[ -z "$EXTRA_OPTS" && -n "$EXTRA_FLAGS" ]]; then
1275+
EXTRA_OPTS=$EXTRA_FLAGS
1276+
fi
1277+
1278+
# You can define extra nova conf flags by defining the array EXTRA_OPTS,
1279+
# For Example: EXTRA_OPTS=(foo=true bar=2)
1280+
for I in "${EXTRA_OPTS[@]}"; do
1281+
# Attempt to convert flags to options
1282+
add_nova_opt ${I//-}
12761283
done
12771284

12781285
# XenServer
12791286
# ---------
12801287

12811288
if [ "$VIRT_DRIVER" = 'xenserver' ]; then
12821289
read_password XENAPI_PASSWORD "ENTER A PASSWORD TO USE FOR XEN."
1283-
add_nova_flag "--connection_type=xenapi"
1290+
add_nova_opt "connection_type=xenapi"
12841291
XENAPI_CONNECTION_URL=${XENAPI_CONNECTION_URL:-"http://169.254.0.1"}
1285-
add_nova_flag "--xenapi_connection_url=$XENAPI_CONNECTION_URL"
1286-
add_nova_flag "--xenapi_connection_username=root"
1287-
add_nova_flag "--xenapi_connection_password=$XENAPI_PASSWORD"
1288-
add_nova_flag "--noflat_injected"
1292+
add_nova_opt "xenapi_connection_url=$XENAPI_CONNECTION_URL"
1293+
add_nova_opt "xenapi_connection_username=root"
1294+
add_nova_opt "xenapi_connection_password=$XENAPI_PASSWORD"
1295+
add_nova_opt "flat_injected=False"
12891296
# Need to avoid crash due to new firewall support
12901297
XEN_FIREWALL_DRIVER=${XEN_FIREWALL_DRIVER:-"nova.virt.firewall.IptablesFirewallDriver"}
1291-
add_nova_flag "--firewall_driver=$XEN_FIREWALL_DRIVER"
1298+
add_nova_opt "firewall_driver=$XEN_FIREWALL_DRIVER"
12921299
else
1293-
add_nova_flag "--connection_type=libvirt"
1300+
add_nova_opt "connection_type=libvirt"
12941301
LIBVIRT_FIREWALL_DRIVER=${LIBVIRT_FIREWALL_DRIVER:-"nova.virt.libvirt.firewall.IptablesFirewallDriver"}
1295-
add_nova_flag "--firewall_driver=$LIBVIRT_FIREWALL_DRIVER"
1302+
add_nova_opt "firewall_driver=$LIBVIRT_FIREWALL_DRIVER"
12961303
fi
12971304

12981305
# Nova Database
@@ -1539,10 +1546,10 @@ screen_it n-vol "cd $NOVA_DIR && $NOVA_DIR/bin/nova-volume"
15391546
screen_it n-net "cd $NOVA_DIR && $NOVA_DIR/bin/nova-network"
15401547
screen_it n-sch "cd $NOVA_DIR && $NOVA_DIR/bin/nova-scheduler"
15411548
if is_service_enabled n-novnc; then
1542-
screen_it n-novnc "cd $NOVNC_DIR && ./utils/nova-novncproxy --flagfile $NOVA_CONF/nova.conf --web ."
1549+
screen_it n-novnc "cd $NOVNC_DIR && ./utils/nova-novncproxy --config-file $NOVA_CONF_DIR/$NOVA_CONF --web ."
15431550
fi
15441551
if is_service_enabled n-xvnc; then
1545-
screen_it n-xvnc "cd $NOVA_DIR && ./bin/nova-xvpvncproxy --flagfile $NOVA_CONF/nova.conf"
1552+
screen_it n-xvnc "cd $NOVA_DIR && ./bin/nova-xvpvncproxy --config-file $NOVA_CONF_DIR/$NOVA_CONF"
15461553
fi
15471554
if is_service_enabled n-cauth; then
15481555
screen_it n-cauth "cd $NOVA_DIR && ./bin/nova-consoleauth"
@@ -1673,5 +1680,10 @@ fi
16731680
# Echo HOST_IP - useful for build_uec.sh, which uses dhcp to give the instance an address
16741681
echo "This is your host ip: $HOST_IP"
16751682

1683+
# Warn that EXTRA_FLAGS needs to be converted to EXTRA_OPTS
1684+
if [[ -n "$EXTRA_FLAGS" ]]; then
1685+
echo "WARNING: EXTRA_FLAGS is defined and may need to be converted to EXTRA_OPTS"
1686+
fi
1687+
16761688
# Indicate how long this took to run (bash maintained variable 'SECONDS')
16771689
echo "stack.sh completed in $SECONDS seconds."

0 commit comments

Comments
 (0)