The actual logic of launching a singleconductor didn't get all the way
to the launch of the conductor itself, so we were still launching 2
conductors in the Ironic case. This attempts to fix that.
Change-Id: I7ddb123dbdf3e1ec9a991e474a9990d2ccbc30d3
... | ... |
@@ -51,6 +51,7 @@ NOVA_AUTH_CACHE_DIR=${NOVA_AUTH_CACHE_DIR:-/var/cache/nova} |
51 | 51 |
NOVA_CONF_DIR=/etc/nova |
52 | 52 |
NOVA_CONF=$NOVA_CONF_DIR/nova.conf |
53 | 53 |
NOVA_CELLS_CONF=$NOVA_CONF_DIR/nova-cells.conf |
54 |
+NOVA_COND_CONF=$NOVA_CONF_DIR/nova.conf |
|
54 | 55 |
NOVA_CPU_CONF=$NOVA_CONF_DIR/nova-cpu.conf |
55 | 56 |
NOVA_FAKE_CONF=$NOVA_CONF_DIR/nova-fake.conf |
56 | 57 |
NOVA_CELLS_DB=${NOVA_CELLS_DB:-nova_cell} |
... | ... |
@@ -588,8 +589,13 @@ function create_nova_conf { |
588 | 588 |
iniset $conf database connection `database_connection_url nova_cell${i}` |
589 | 589 |
iniset $conf conductor workers "$API_WORKERS" |
590 | 590 |
iniset $conf DEFAULT debug "$ENABLE_DEBUG_LOG_LEVEL" |
591 |
- rpc_backend_add_vhost $vhost |
|
592 |
- iniset_rpc_backend nova $conf DEFAULT $vhost |
|
591 |
+ # if we have a singleconductor, we don't have per host message queues. |
|
592 |
+ if [[ "${CELLSV2_SETUP}" == "singleconductor" ]]; then |
|
593 |
+ iniset_rpc_backend nova $conf DEFAULT |
|
594 |
+ else |
|
595 |
+ rpc_backend_add_vhost $vhost |
|
596 |
+ iniset_rpc_backend nova $conf DEFAULT $vhost |
|
597 |
+ fi |
|
593 | 598 |
done |
594 | 599 |
fi |
595 | 600 |
} |
... | ... |
@@ -632,6 +638,9 @@ function init_nova_cells { |
632 | 632 |
iniset $NOVA_CELLS_CONF DEFAULT enabled_apis metadata |
633 | 633 |
fi |
634 | 634 |
|
635 |
+ # Cells v1 conductor should be the nova-cells.conf |
|
636 |
+ NOVA_COND_CONF=$NOVA_CELLS_CONF |
|
637 |
+ |
|
635 | 638 |
time_start "dbsync" |
636 | 639 |
$NOVA_BIN_DIR/nova-manage --config-file $NOVA_CELLS_CONF db sync |
637 | 640 |
time_stop "dbsync" |
... | ... |
@@ -802,6 +811,16 @@ function start_nova_api { |
802 | 802 |
export PATH=$old_path |
803 | 803 |
} |
804 | 804 |
|
805 |
+# Detect and setup conditions under which singleconductor setup is |
|
806 |
+# needed. Notably cellsv1. |
|
807 |
+function _set_singleconductor { |
|
808 |
+ # NOTE(danms): Don't setup conductor fleet for cellsv1 |
|
809 |
+ if is_service_enabled n-cell; then |
|
810 |
+ CELLSV2_SETUP="singleconductor" |
|
811 |
+ fi |
|
812 |
+} |
|
813 |
+ |
|
814 |
+ |
|
805 | 815 |
# start_nova_compute() - Start the compute process |
806 | 816 |
function start_nova_compute { |
807 | 817 |
# Hack to set the path for rootwrap |
... | ... |
@@ -810,8 +829,6 @@ function start_nova_compute { |
810 | 810 |
|
811 | 811 |
if is_service_enabled n-cell; then |
812 | 812 |
local compute_cell_conf=$NOVA_CELLS_CONF |
813 |
- # NOTE(danms): Don't setup conductor fleet for cellsv1 |
|
814 |
- CELLSV2_SETUP="singleconductor" |
|
815 | 813 |
else |
816 | 814 |
local compute_cell_conf=$NOVA_CONF |
817 | 815 |
fi |
... | ... |
@@ -908,15 +925,15 @@ function enable_nova_fleet { |
908 | 908 |
} |
909 | 909 |
|
910 | 910 |
function start_nova_conductor { |
911 |
- if is_service_enabled n-cell; then |
|
911 |
+ if [[ "${CELLSV2_SETUP}" == "singleconductor" ]]; then |
|
912 | 912 |
echo "Starting nova-conductor in a cellsv1-compatible way" |
913 |
- run_process n-cond "$NOVA_BIN_DIR/nova-conductor --config-file $NOVA_CELLS_CONF" |
|
913 |
+ run_process n-cond "$NOVA_BIN_DIR/nova-conductor --config-file $NOVA_COND_CONF" |
|
914 | 914 |
return |
915 | 915 |
fi |
916 | 916 |
|
917 | 917 |
enable_nova_fleet |
918 | 918 |
if is_service_enabled n-super-cond; then |
919 |
- run_process n-super-cond "$NOVA_BIN_DIR/nova-conductor --config-file $NOVA_CONF" |
|
919 |
+ run_process n-super-cond "$NOVA_BIN_DIR/nova-conductor --config-file $NOVA_COND_CONF" |
|
920 | 920 |
fi |
921 | 921 |
for i in $(seq 1 $NOVA_NUM_CELLS); do |
922 | 922 |
if is_service_enabled n-cond-cell${i}; then |
... | ... |
@@ -928,9 +945,16 @@ function start_nova_conductor { |
928 | 928 |
} |
929 | 929 |
|
930 | 930 |
function start_nova { |
931 |
+ # this catches the cells v1 case early |
|
932 |
+ _set_singleconductor |
|
931 | 933 |
start_nova_rest |
932 | 934 |
start_nova_conductor |
933 | 935 |
start_nova_compute |
936 |
+ if is_service_enabled n-api; then |
|
937 |
+ # dump the cell mapping to ensure life is good |
|
938 |
+ echo "Dumping cells_v2 mapping" |
|
939 |
+ nova-manage cell_v2 list_cells --verbose |
|
940 |
+ fi |
|
934 | 941 |
} |
935 | 942 |
|
936 | 943 |
function stop_nova_compute { |