| ... | ... |
@@ -952,11 +952,46 @@ function start_nova_rest {
|
| 952 | 952 |
run_process n-api-meta "$NOVA_BIN_DIR/uwsgi --procname-prefix nova-api-meta --ini $NOVA_METADATA_UWSGI_CONF" |
| 953 | 953 |
fi |
| 954 | 954 |
|
| 955 |
- run_process n-novnc "$NOVA_BIN_DIR/nova-novncproxy --config-file $api_cell_conf --web $NOVNC_WEB_DIR" |
|
| 956 |
- run_process n-xvnc "$NOVA_BIN_DIR/nova-xvpvncproxy --config-file $api_cell_conf" |
|
| 957 |
- run_process n-spice "$NOVA_BIN_DIR/nova-spicehtml5proxy --config-file $api_cell_conf --web $SPICE_WEB_DIR" |
|
| 955 |
+ # nova-consoleauth always runs globally |
|
| 958 | 956 |
run_process n-cauth "$NOVA_BIN_DIR/nova-consoleauth --config-file $api_cell_conf" |
| 959 |
- run_process n-sproxy "$NOVA_BIN_DIR/nova-serialproxy --config-file $api_cell_conf" |
|
| 957 |
+ |
|
| 958 |
+ export PATH=$old_path |
|
| 959 |
+} |
|
| 960 |
+ |
|
| 961 |
+function enable_nova_console_proxies {
|
|
| 962 |
+ for i in $(seq 1 $NOVA_NUM_CELLS); do |
|
| 963 |
+ for srv in n-novnc n-xvnc n-spice n-sproxy; do |
|
| 964 |
+ if is_service_enabled $srv; then |
|
| 965 |
+ enable_service ${srv}-cell${i}
|
|
| 966 |
+ fi |
|
| 967 |
+ done |
|
| 968 |
+ done |
|
| 969 |
+} |
|
| 970 |
+ |
|
| 971 |
+function start_nova_console_proxies {
|
|
| 972 |
+ # Hack to set the path for rootwrap |
|
| 973 |
+ local old_path=$PATH |
|
| 974 |
+ # This is needed to find the nova conf |
|
| 975 |
+ export PATH=$NOVA_BIN_DIR:$PATH |
|
| 976 |
+ |
|
| 977 |
+ local api_cell_conf=$NOVA_CONF |
|
| 978 |
+ # console proxies run globally for singleconductor, else they run per cell |
|
| 979 |
+ if [[ "${CELLSV2_SETUP}" == "singleconductor" ]]; then
|
|
| 980 |
+ run_process n-novnc "$NOVA_BIN_DIR/nova-novncproxy --config-file $api_cell_conf --web $NOVNC_WEB_DIR" |
|
| 981 |
+ run_process n-xvnc "$NOVA_BIN_DIR/nova-xvpvncproxy --config-file $api_cell_conf" |
|
| 982 |
+ run_process n-spice "$NOVA_BIN_DIR/nova-spicehtml5proxy --config-file $api_cell_conf --web $SPICE_WEB_DIR" |
|
| 983 |
+ run_process n-sproxy "$NOVA_BIN_DIR/nova-serialproxy --config-file $api_cell_conf" |
|
| 984 |
+ else |
|
| 985 |
+ enable_nova_console_proxies |
|
| 986 |
+ for i in $(seq 1 $NOVA_NUM_CELLS); do |
|
| 987 |
+ local conf |
|
| 988 |
+ conf=$(conductor_conf $i) |
|
| 989 |
+ run_process n-novnc-cell${i} "$NOVA_BIN_DIR/nova-novncproxy --config-file $conf --web $NOVNC_WEB_DIR"
|
|
| 990 |
+ run_process n-xvnc-cell${i} "$NOVA_BIN_DIR/nova-xvpvncproxy --config-file $conf"
|
|
| 991 |
+ run_process n-spice-cell${i} "$NOVA_BIN_DIR/nova-spicehtml5proxy --config-file $conf --web $SPICE_WEB_DIR"
|
|
| 992 |
+ run_process n-sproxy-cell${i} "$NOVA_BIN_DIR/nova-serialproxy --config-file $conf"
|
|
| 993 |
+ done |
|
| 994 |
+ fi |
|
| 960 | 995 |
|
| 961 | 996 |
export PATH=$old_path |
| 962 | 997 |
} |
| ... | ... |
@@ -1016,6 +1051,7 @@ function start_nova {
|
| 1016 | 1016 |
# this catches the cells v1 case early |
| 1017 | 1017 |
_set_singleconductor |
| 1018 | 1018 |
start_nova_rest |
| 1019 |
+ start_nova_console_proxies |
|
| 1019 | 1020 |
start_nova_conductor |
| 1020 | 1021 |
start_nova_compute |
| 1021 | 1022 |
if is_service_enabled n-api; then |
| ... | ... |
@@ -1041,11 +1077,26 @@ function stop_nova_compute {
|
| 1041 | 1041 |
|
| 1042 | 1042 |
function stop_nova_rest {
|
| 1043 | 1043 |
# Kill the non-compute nova processes |
| 1044 |
- for serv in n-api n-api-meta n-net n-sch n-novnc n-xvnc n-cauth n-spice n-cell n-cell n-sproxy; do |
|
| 1044 |
+ for serv in n-api n-api-meta n-net n-sch n-cauth n-cell n-cell; do |
|
| 1045 | 1045 |
stop_process $serv |
| 1046 | 1046 |
done |
| 1047 | 1047 |
} |
| 1048 | 1048 |
|
| 1049 |
+function stop_nova_console_proxies {
|
|
| 1050 |
+ if [[ "${CELLSV2_SETUP}" == "singleconductor" ]]; then
|
|
| 1051 |
+ for srv in n-novnc n-xvnc n-spice n-sproxy; do |
|
| 1052 |
+ stop_process $srv |
|
| 1053 |
+ done |
|
| 1054 |
+ else |
|
| 1055 |
+ enable_nova_console_proxies |
|
| 1056 |
+ for i in $(seq 1 $NOVA_NUM_CELLS); do |
|
| 1057 |
+ for srv in n-novnc n-xvnc n-spice n-sproxy; do |
|
| 1058 |
+ stop_process ${srv}-cell${i}
|
|
| 1059 |
+ done |
|
| 1060 |
+ done |
|
| 1061 |
+ fi |
|
| 1062 |
+} |
|
| 1063 |
+ |
|
| 1049 | 1064 |
function stop_nova_conductor {
|
| 1050 | 1065 |
if [[ "${CELLSV2_SETUP}" == "singleconductor" ]]; then
|
| 1051 | 1066 |
stop_process n-cond |
| ... | ... |
@@ -1063,6 +1114,7 @@ function stop_nova_conductor {
|
| 1063 | 1063 |
# stop_nova() - Stop running processes |
| 1064 | 1064 |
function stop_nova {
|
| 1065 | 1065 |
stop_nova_rest |
| 1066 |
+ stop_nova_console_proxies |
|
| 1066 | 1067 |
stop_nova_conductor |
| 1067 | 1068 |
stop_nova_compute |
| 1068 | 1069 |
} |
| ... | ... |
@@ -394,7 +394,14 @@ function configure_tempest {
|
| 394 | 394 |
iniset $TEMPEST_CONFIG compute-feature-enabled volume_multiattach True |
| 395 | 395 |
fi |
| 396 | 396 |
|
| 397 |
- if is_service_enabled n-novnc; then |
|
| 397 |
+ # TODO(melwitt): If we're running per-cell console proxies, the novnc tests |
|
| 398 |
+ # won't work until the nova patch series lands that converts from the |
|
| 399 |
+ # nova-consoleauth backend -> cell database backend. So disable them unless |
|
| 400 |
+ # we're running Cells v1. Cells v1 will never support the cell database |
|
| 401 |
+ # backend, so it will always run with a global nova-consoleauth. |
|
| 402 |
+ # Once the patch that converts from the nova-consoleauth backend -> cell |
|
| 403 |
+ # database backend lands, we can re-enable the novnc tests for Cells v2. |
|
| 404 |
+ if is_service_enabled n-novnc && is_service_enabled n-cell; then |
|
| 398 | 405 |
iniset $TEMPEST_CONFIG compute-feature-enabled vnc_console True |
| 399 | 406 |
fi |
| 400 | 407 |
|