aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docker/services/nova-api.yaml32
1 files changed, 22 insertions, 10 deletions
diff --git a/docker/services/nova-api.yaml b/docker/services/nova-api.yaml
index ee73f704..d4816ba4 100644
--- a/docker/services/nova-api.yaml
+++ b/docker/services/nova-api.yaml
@@ -165,6 +165,18 @@ outputs:
done
echo "(cellv2) Running host discovery..."
su nova -s /bin/bash -c "/usr/bin/nova-manage cell_v2 discover_hosts --verbose"
+ nova_api_ensure_default_cell.sh:
+ mode: "0700"
+ content: |
+ #!/bin/bash
+ DEFID=$(nova-manage cell_v2 list_cells | sed -e '1,3d' -e '$d' | awk -F ' *| *' '$2 == "default" {print $4}')
+ if [ "$DEFID" ]; then
+ echo "(cellv2) Updating default cell_v2 cell $DEFID"
+ su nova -s /bin/bash -c "/usr/bin/nova-manage cell_v2 update_cell --cell_uuid $DEFID --name=default"
+ else
+ echo "(cellv2) Creating default cell_v2 cell"
+ su nova -s /bin/bash -c "/usr/bin/nova-manage cell_v2 create_cell --name=default"
+ fi
docker_config:
# db sync runs before permissions set by kolla_config
step_2:
@@ -192,9 +204,6 @@ outputs:
- /var/log/containers/nova:/var/log/nova
- /var/log/containers/httpd/nova-api:/var/log/httpd
command: "/usr/bin/bootstrap_host_exec nova_api su nova -s /bin/bash -c '/usr/bin/nova-manage api_db sync'"
- # FIXME: we probably want to wait on the 'cell_v2 update' in order for this
- # to be capable of upgrading a baremetal setup. This is to ensure the name
- # of the cell is 'default'
nova_api_map_cell0:
start_order: 1
image: *nova_api_image
@@ -203,18 +212,21 @@ outputs:
user: root
volumes: *nova_api_bootstrap_volumes
command: "/usr/bin/bootstrap_host_exec nova_api su nova -s /bin/bash -c '/usr/bin/nova-manage cell_v2 map_cell0'"
- nova_api_create_default_cell:
+ nova_api_ensure_default_cell:
start_order: 2
image: *nova_api_image
net: host
detach: false
- volumes: *nova_api_bootstrap_volumes
- # NOTE: allowing the exit code 2 is a dirty way of making
- # this idempotent (if the resource already exists a conflict
- # is raised)
- exit_codes: [0,2]
+ volumes:
+ list_concat:
+ - *nova_api_bootstrap_volumes
+ -
+ - /var/lib/config-data/nova/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro
+ - /var/lib/config-data/nova/etc/nova/:/etc/nova/:ro
+ - /var/log/containers/nova:/var/log/nova
+ - /var/lib/docker-config-scripts/nova_api_ensure_default_cell.sh:/nova_api_ensure_default_cell.sh:ro
user: root
- command: "/usr/bin/bootstrap_host_exec nova_api su nova -s /bin/bash -c '/usr/bin/nova-manage cell_v2 create_cell --name=default'"
+ command: "/usr/bin/bootstrap_host_exec nova_api /nova_api_ensure_default_cell.sh"
nova_db_sync:
start_order: 3
image: *nova_api_image