puppet-nova/manifests/cell_v2/cell.pp
Oliver Walsh dc2f3a3586 Implement a proper cell_v2 setup
Rather than use simple_cell_setup which expects that there are already
existing computes, this change uses map_cell0 & create_cell to setup
cell_v2. Once the computes are configured, the cell_v2 discover_hosts
should be used to finalized the installation.

In addition, the db syncs need to be reordered as the api db sync
should run before the the cell_v2 setup. The main db sync should run
after.

map_cell0/simple_cell_setup now uses main nova DB connection instead
of the api DB connection.

Change-Id: I591b451197dc3bd0783978f5e3d2b1c830afe54e
Closes-Bug: #1656276
Related-Bug: #1656673
Co-Authored-By: Alex Schultz <aschultz@redhat.com>
2017-01-24 16:21:07 -07:00

52 lines
1.4 KiB
Puppet

# == Type: nova::cell_v2::cell
#
# Resource for managing cell_v2 cells.
#
# === Parameters
#
# [*extra_params*]
# (String) Extra parameters to pass to the nova-manage commands.
# Defaults to ''.
#
# [*transport_url*]
# (String) AMQP transport url for the cell.
# If not defined, the [DEFAULT]/transport_url is used from the nova
# configuration file.
# Defaults to undef.
#
# [*database_connection*]
# (String) Database connection url for the cell.
# If not defined, the [DEFAULT]/database_connection is used from the nova
# configuration file.
# Defaults to undef.
#
define nova::cell_v2::cell (
$extra_params = '',
$transport_url = undef,
$database_connection = undef
) {
include ::nova::deps
if $transport_url {
$transport_url_real = "--transport-url=${transport_url}"
} else {
$transport_url_real = ''
}
if $database_connection {
$database_connection_real = "--database_connection=${database_connection}"
} else {
$database_connection_real = ''
}
exec { "nova-cell_v2-cell-${title}":
path => [ '/bin', '/usr/bin' ],
command => "nova-manage ${extra_params} cell_v2 create_cell --name=${title} ${transport_url_real} ${database_connection_real}",
unless => "nova-manage ${extra_params} cell_v2 list_cells | grep -q ${title}",
logoutput => on_failure,
subscribe => Anchor['nova::cell_v2::begin'],
notify => Anchor['nova::cell_v2::end'],
}
}