Add hooks for external install & svc management
This adds defined anchor points for external modules to hook into the software install, config and service dependency chain. This allows external modules to manage software installation (virtualenv, containers, etc) and service management (pacemaker) without needing rely on resources that may change or be renamed. Change-Id: I0b524e354b095f2642fd38a2f88536d15bcdf855
This commit is contained in:
parent
02f5b94ff2
commit
cb77bc295f
@ -217,20 +217,13 @@ class nova::api(
|
||||
$conductor_workers = undef,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::db
|
||||
include ::nova::params
|
||||
include ::nova::policy
|
||||
require ::keystone::python
|
||||
include ::cinder::client
|
||||
|
||||
Package<| title == 'nova-common' |> -> Class['nova::api']
|
||||
Package<| title == 'nova-common' |> -> Class['nova::policy']
|
||||
|
||||
Nova_paste_api_ini<| |> ~> Exec['post-nova_config']
|
||||
|
||||
Nova_paste_api_ini<| |> ~> Service['nova-api']
|
||||
Class['nova::policy'] ~> Service['nova-api']
|
||||
|
||||
if $conductor_workers {
|
||||
warning('The conductor_workers parameter is deprecated and has no effect. Use workers parameter of nova::conductor class instead.')
|
||||
}
|
||||
|
@ -172,6 +172,7 @@ class nova::cells (
|
||||
$weight_scale = '1.0'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
case $cell_type {
|
||||
|
@ -22,6 +22,7 @@ class nova::cert(
|
||||
$ensure_package = 'present'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
nova::generic_service { 'cert':
|
||||
|
@ -11,10 +11,11 @@
|
||||
class nova::client(
|
||||
$ensure = 'present'
|
||||
) {
|
||||
include ::nova::deps
|
||||
|
||||
package { 'python-novaclient':
|
||||
ensure => $ensure,
|
||||
tag => ['openstack'],
|
||||
tag => ['openstack', 'nova-support-package'],
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -150,6 +150,7 @@ class nova::compute (
|
||||
$allow_resize_to_same_host = false,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
nova_config {
|
||||
@ -173,7 +174,7 @@ class nova::compute (
|
||||
# Install bridge-utils if we use nova-network
|
||||
package { 'bridge-utils':
|
||||
ensure => present,
|
||||
before => Nova::Generic_service['compute'],
|
||||
tag => ['openstack', 'nova-support-package'],
|
||||
}
|
||||
}
|
||||
|
||||
@ -221,6 +222,7 @@ class nova::compute (
|
||||
|
||||
package { 'pm-utils':
|
||||
ensure => present,
|
||||
tag => ['openstack', 'nova-support-package'],
|
||||
}
|
||||
|
||||
nova_config {
|
||||
|
@ -46,6 +46,8 @@ class nova::compute::ironic (
|
||||
$compute_driver = 'ironic.IronicDriver'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
if $admin_user {
|
||||
warning('The admin_user parameter is deprecated, use admin_username instead.')
|
||||
}
|
||||
|
@ -106,6 +106,7 @@ class nova::compute::libvirt (
|
||||
$compute_driver = 'libvirt.LibvirtDriver'
|
||||
) inherits nova::params {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
Service['libvirt'] -> Service['nova-compute']
|
||||
@ -126,10 +127,8 @@ class nova::compute::libvirt (
|
||||
|
||||
if($::osfamily == 'Debian') {
|
||||
package { "nova-compute-${libvirt_virt_type}":
|
||||
ensure => present,
|
||||
before => Package['nova-compute'],
|
||||
require => Package['nova-common'],
|
||||
tag => ['openstack'],
|
||||
ensure => present,
|
||||
tag => ['openstack', 'nova-package'],
|
||||
}
|
||||
}
|
||||
|
||||
@ -156,6 +155,7 @@ class nova::compute::libvirt (
|
||||
ensure => present,
|
||||
name => $::nova::params::libvirt_nwfilter_package_name,
|
||||
before => Service['libvirt'],
|
||||
tag => ['openstack', 'nova-support-package'],
|
||||
}
|
||||
case $libvirt_virt_type {
|
||||
'qemu': {
|
||||
@ -172,6 +172,7 @@ class nova::compute::libvirt (
|
||||
package { 'libvirt':
|
||||
ensure => present,
|
||||
name => $libvirt_package_name_real,
|
||||
tag => ['openstack', 'nova-support-package'],
|
||||
}
|
||||
|
||||
service { 'libvirt' :
|
||||
@ -179,7 +180,7 @@ class nova::compute::libvirt (
|
||||
enable => true,
|
||||
name => $libvirt_service_name,
|
||||
provider => $::nova::params::special_service_provider,
|
||||
require => Package['libvirt'],
|
||||
require => Anchor['nova::config::end'],
|
||||
}
|
||||
|
||||
nova_config {
|
||||
|
@ -19,6 +19,7 @@ class nova::compute::neutron (
|
||||
$libvirt_vif_driver = 'nova.virt.libvirt.vif.LibvirtGenericVIFDriver',
|
||||
$force_snat_range = '0.0.0.0/0',
|
||||
) {
|
||||
include ::nova::deps
|
||||
|
||||
if $libvirt_vif_driver == 'nova.virt.libvirt.vif.LibvirtOpenVswitchDriver' {
|
||||
fail('nova.virt.libvirt.vif.LibvirtOpenVswitchDriver as vif_driver is removed from Icehouse')
|
||||
|
@ -65,6 +65,7 @@ class nova::compute::rbd (
|
||||
$ephemeral_storage = true,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
nova_config {
|
||||
@ -78,7 +79,7 @@ class nova::compute::rbd (
|
||||
|
||||
file { '/etc/nova/secret.xml':
|
||||
content => template('nova/secret.xml-compute.erb'),
|
||||
require => Class['::nova']
|
||||
require => Anchor['nova::config::begin'],
|
||||
}
|
||||
|
||||
exec { 'get-or-set virsh secret':
|
||||
@ -95,9 +96,9 @@ class nova::compute::rbd (
|
||||
exec { 'set-secret-value virsh':
|
||||
command => "/usr/bin/virsh secret-set-value --secret ${libvirt_rbd_secret_uuid} --base64 ${libvirt_key}",
|
||||
unless => "/usr/bin/virsh secret-get-value ${libvirt_rbd_secret_uuid}",
|
||||
require => Exec['get-or-set virsh secret']
|
||||
require => Exec['get-or-set virsh secret'],
|
||||
before => Achor['nova::config::end'],
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if $ephemeral_storage {
|
||||
|
@ -28,6 +28,7 @@ class nova::compute::serial(
|
||||
$proxyclient_address = '127.0.0.1',
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
nova_config {
|
||||
'serial_console/enabled': value => true;
|
||||
|
@ -48,6 +48,8 @@ class nova::compute::spice(
|
||||
$proxy_path = '/spice_auto.html'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
if $proxy_host {
|
||||
$html5proxy_base_url = "${proxy_protocol}://${proxy_host}:${proxy_port}${proxy_path}"
|
||||
nova_config {
|
||||
|
@ -60,6 +60,8 @@ class nova::compute::vmware(
|
||||
$compute_driver = 'vmwareapi.VMwareVCDriver'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
nova_config {
|
||||
'DEFAULT/compute_driver': value => $compute_driver;
|
||||
'VMWARE/host_ip': value => $host_ip;
|
||||
@ -79,6 +81,7 @@ class nova::compute::vmware(
|
||||
}
|
||||
|
||||
package { 'python-suds':
|
||||
ensure => present
|
||||
ensure => present,
|
||||
tag => ['openstack', 'nova-support-package'],
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,8 @@ class nova::compute::xenserver(
|
||||
$xenapi_inject_image = undef,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
if $xenapi_inject_image != undef {
|
||||
warning('The xenapi_inject_image parameter is deprecated and has no effect.')
|
||||
}
|
||||
@ -44,7 +46,8 @@ class nova::compute::xenserver(
|
||||
|
||||
package { 'xenapi':
|
||||
ensure => present,
|
||||
provider => pip
|
||||
provider => pip,
|
||||
tag => ['openstack', 'nova-support-package'],
|
||||
}
|
||||
|
||||
Package['python-pip'] -> Package['xenapi']
|
||||
|
@ -32,6 +32,7 @@ class nova::conductor(
|
||||
$use_local = false,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::db
|
||||
include ::nova::params
|
||||
|
||||
|
@ -32,6 +32,8 @@ class nova::config (
|
||||
$nova_paste_api_ini = {},
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
validate_hash($nova_config)
|
||||
validate_hash($nova_paste_api_ini)
|
||||
|
||||
|
@ -25,6 +25,7 @@ class nova::consoleauth(
|
||||
$ensure_package = 'present'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
nova::generic_service { 'consoleauth':
|
||||
@ -33,7 +34,6 @@ class nova::consoleauth(
|
||||
package_name => $::nova::params::consoleauth_package_name,
|
||||
service_name => $::nova::params::consoleauth_service_name,
|
||||
ensure_package => $ensure_package,
|
||||
require => Package['nova-common'],
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -60,6 +60,8 @@ class nova::cron::archive_deleted_rows (
|
||||
$destination = '/var/log/nova/nova-rowsflush.log'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
cron { 'nova-manage db archive_deleted_rows':
|
||||
command => "nova-manage db archive_deleted_rows --max_rows ${max_rows} >>${destination} 2>&1",
|
||||
environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh',
|
||||
@ -69,6 +71,6 @@ class nova::cron::archive_deleted_rows (
|
||||
monthday => $monthday,
|
||||
month => $month,
|
||||
weekday => $weekday,
|
||||
require => Package['nova-common'],
|
||||
require => Anchor['nova::dbsync::end']
|
||||
}
|
||||
}
|
||||
|
@ -65,6 +65,7 @@ class nova::db (
|
||||
$database_max_overflow = $::os_service_default,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
# NOTE(spredzy): In order to keep backward compatibility we rely on the pick function
|
||||
@ -109,7 +110,7 @@ class nova::db (
|
||||
package {'nova-backend-package':
|
||||
ensure => present,
|
||||
name => $backend_package,
|
||||
tag => 'openstack',
|
||||
tag => ['openstack', 'nova-package'],
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,6 +41,8 @@ class nova::db::mysql(
|
||||
$allowed_hosts = undef,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
::openstacklib::db::mysql { 'nova':
|
||||
user => $user,
|
||||
password_hash => mysql_password($password),
|
||||
@ -51,5 +53,7 @@ class nova::db::mysql(
|
||||
allowed_hosts => $allowed_hosts,
|
||||
}
|
||||
|
||||
::Openstacklib::Db::Mysql['nova'] ~> Exec<| title == 'nova-db-sync' |>
|
||||
Anchor['nova::db::begin']
|
||||
~> Class['nova::db::mysql']
|
||||
~> Anchor['nova::db::end']
|
||||
}
|
||||
|
@ -32,6 +32,8 @@ class nova::db::postgresql(
|
||||
$privileges = 'ALL',
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
::openstacklib::db::postgresql { 'nova':
|
||||
password_hash => postgresql_password($user, $password),
|
||||
dbname => $dbname,
|
||||
@ -40,7 +42,7 @@ class nova::db::postgresql(
|
||||
privileges => $privileges,
|
||||
}
|
||||
|
||||
::Openstacklib::Db::Postgresql['nova'] ~> Exec<| title == 'nova-db-sync' |>
|
||||
::Openstacklib::Db::Postgresql['nova'] -> Anchor<| title == 'nova-start' |>
|
||||
|
||||
Anchor['nova::db::begin']
|
||||
~> Class['nova::db::postgresql']
|
||||
~> Anchor['nova::db::end']
|
||||
}
|
||||
|
@ -13,20 +13,18 @@ class nova::db::sync(
|
||||
$extra_params = undef,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
Package<| tag =='nova-package' |> ~> Exec['nova-db-sync']
|
||||
Exec['nova-db-sync'] ~> Service <| tag == 'nova-service' |>
|
||||
|
||||
Nova_config <||> -> Exec['nova-db-sync']
|
||||
Nova_config <| title == 'database/connection' |> ~> Exec['nova-db-sync']
|
||||
|
||||
Exec<| title == 'post-nova_config' |> ~> Exec['nova-db-sync']
|
||||
|
||||
exec { 'nova-db-sync':
|
||||
command => "/usr/bin/nova-manage ${extra_params} db sync",
|
||||
refreshonly => true,
|
||||
logoutput => on_failure,
|
||||
subscribe => [
|
||||
Anchor['nova::install::end'],
|
||||
Anchor['nova::config::end'],
|
||||
Anchor['nova::dbsync::begin']
|
||||
],
|
||||
notify => Anchor['nova::dbsync::end'],
|
||||
}
|
||||
|
||||
}
|
||||
|
63
manifests/deps.pp
Normal file
63
manifests/deps.pp
Normal file
@ -0,0 +1,63 @@
|
||||
# == Class: nova::deps
|
||||
#
|
||||
# Nova anchors and dependency management
|
||||
#
|
||||
class nova::deps {
|
||||
# Setup anchors for install, config and service phases of the module. These
|
||||
# anchors allow external modules to hook the begin and end of any of these
|
||||
# phases. Package or service management can also be replaced by ensuring the
|
||||
# package is absent or turning off service management and having the
|
||||
# replacement depend on the appropriate anchors. When applicable, end tags
|
||||
# should be notified so that subscribers can determine if installation,
|
||||
# config or service state changed and act on that if needed.
|
||||
anchor { 'nova::install::begin': }
|
||||
-> Package<| tag == 'nova-package'|>
|
||||
~> anchor { 'nova::install::end': }
|
||||
-> anchor { 'nova::config::begin': }
|
||||
-> Nova_config<||>
|
||||
~> anchor { 'nova::config::end': }
|
||||
-> anchor { 'nova::db::begin': }
|
||||
-> anchor { 'nova::db::end': }
|
||||
~> anchor { 'nova::dbsync::begin': }
|
||||
-> anchor { 'nova::dbsync::end': }
|
||||
~> anchor { 'nova::service::begin': }
|
||||
~> Service<| tag == 'nova-service' |>
|
||||
~> anchor { 'nova::service::end': }
|
||||
|
||||
# paste-api.ini config shold occur in the config block also.
|
||||
Anchor['nova::config::begin']
|
||||
-> Nova_paste_api_ini<||>
|
||||
~> Anchor['nova::config::end']
|
||||
|
||||
# Support packages need to be installed in the install phase, but we don't
|
||||
# put them in the chain above because we don't want any false dependencies
|
||||
# between packages with the nova-package tag and the nova-support-package
|
||||
# tag. Note: the package resources here will have a 'before' relationshop on
|
||||
# the nova::install::end anchor. The line between nova-support-package and
|
||||
# nova-package should be whether or not Nova services would need to be
|
||||
# restarted if the package state was changed.
|
||||
Anchor['nova::install::begin']
|
||||
-> Package<| tag == 'nova-support-package'|>
|
||||
-> Anchor['nova::install::end']
|
||||
|
||||
# The following resourcs are managed by calling 'nova manage' and so the
|
||||
# database must be provisioned before they can be applied.
|
||||
Anchor['nova::dbsync::end']
|
||||
-> Nova_cells<||>
|
||||
Anchor['nova::dbsync::end']
|
||||
-> Nova_floating<||>
|
||||
Anchor['nova::dbsync::end']
|
||||
-> Nova_network<||>
|
||||
|
||||
# Installation or config changes will always restart services.
|
||||
Anchor['nova::install::end'] ~> Anchor['nova::service::begin']
|
||||
Anchor['nova::config::end'] ~> Anchor['nova::service::begin']
|
||||
|
||||
# This is here for backwards compatability for any external users of the
|
||||
# nova-start anchor. This should be considered deprecated and removed in the
|
||||
# N cycle
|
||||
anchor { 'nova-start':
|
||||
require => Anchor['nova::install::end'],
|
||||
before => Anchor['nova::config::begin'],
|
||||
}
|
||||
}
|
@ -38,16 +38,10 @@ define nova::generic_service(
|
||||
$ensure_package = 'present'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
$nova_title = "nova-${name}"
|
||||
# ensure that the service is only started after
|
||||
# all nova config entries have been set
|
||||
Exec['post-nova_config'] ~> Service<| title == $nova_title |>
|
||||
# ensure that the service has only been started
|
||||
# after the initial db sync
|
||||
Exec<| title == 'nova-db-sync' |> ~> Service<| title == $nova_title |>
|
||||
|
||||
|
||||
# I need to mark that ths package should be
|
||||
# installed before nova_config
|
||||
@ -56,18 +50,9 @@ define nova::generic_service(
|
||||
package { $nova_title:
|
||||
ensure => $ensure_package,
|
||||
name => $package_name,
|
||||
notify => Service[$nova_title],
|
||||
tag => ['openstack', 'nova-package'],
|
||||
}
|
||||
}
|
||||
|
||||
if $service_name {
|
||||
# Do the dependency relationship here in case the package
|
||||
# has been defined elsewhere, either as Package[$nova_title]
|
||||
# or Package[$package_name]
|
||||
Package<| title == $nova_title |> -> Service[$nova_title]
|
||||
Package<| title == $package_name |> -> Service[$nova_title]
|
||||
}
|
||||
}
|
||||
|
||||
if $service_name {
|
||||
@ -84,7 +69,6 @@ define nova::generic_service(
|
||||
name => $service_name,
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
require => [Package['nova-common']],
|
||||
tag => 'nova-service',
|
||||
}
|
||||
}
|
||||
|
@ -409,6 +409,8 @@ class nova(
|
||||
$qpid_tcp_nodelay = undef,
|
||||
) inherits nova::params {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
# maintain backward compatibility
|
||||
include ::nova::db
|
||||
include ::nova::logging
|
||||
@ -446,7 +448,8 @@ class nova(
|
||||
mode => '0700',
|
||||
owner => 'nova',
|
||||
group => 'nova',
|
||||
require => Package['nova-common'],
|
||||
require => Anchor['nova::config::begin'],
|
||||
before => Anchor['nova::config::end'],
|
||||
}
|
||||
|
||||
if $nova_public_key {
|
||||
@ -484,37 +487,27 @@ class nova(
|
||||
mode => '0600',
|
||||
owner => 'nova',
|
||||
group => 'nova',
|
||||
require => [ File['/var/lib/nova/.ssh'], Package['nova-common'] ],
|
||||
require => File['/var/lib/nova/.ssh'],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Nova_config<| |> ~> Exec['post-nova_config']
|
||||
|
||||
if $install_utilities {
|
||||
class { '::nova::utilities': }
|
||||
}
|
||||
|
||||
# this anchor is used to simplify the graph between nova components by
|
||||
# allowing a resource to serve as a point where the configuration of nova begins
|
||||
anchor { 'nova-start': }
|
||||
|
||||
package { 'python-nova':
|
||||
ensure => $ensure_package,
|
||||
tag => ['openstack'],
|
||||
tag => ['openstack', 'nova-package'],
|
||||
}
|
||||
|
||||
package { 'nova-common':
|
||||
ensure => $ensure_package,
|
||||
name => $::nova::params::common_package_name,
|
||||
require => [Package['python-nova'], Anchor['nova-start']],
|
||||
require => Package['python-nova'],
|
||||
tag => ['openstack', 'nova-package'],
|
||||
}
|
||||
|
||||
file { '/etc/nova/nova.conf':
|
||||
require => Package['nova-common'],
|
||||
}
|
||||
|
||||
# used by debian/ubuntu in nova::network_bridge to refresh
|
||||
# interfaces based on /etc/network/interfaces
|
||||
exec { 'networking-refresh':
|
||||
@ -781,10 +774,4 @@ class nova(
|
||||
nova_config {
|
||||
'DEFAULT/os_region_name': ensure => absent;
|
||||
}
|
||||
|
||||
exec { 'post-nova_config':
|
||||
command => '/bin/echo "Nova config has changed"',
|
||||
refreshonly => true,
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -188,6 +188,8 @@ class nova::keystone::auth(
|
||||
$internal_address = undef,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
if $compute_version {
|
||||
warning('The compute_version parameter is deprecated, use public_url, internal_url and admin_url instead.')
|
||||
}
|
||||
|
@ -110,6 +110,8 @@ class nova::logging(
|
||||
$log_date_format = $::os_service_default,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
# NOTE(spredzy): In order to keep backward compatibility we rely on the pick function
|
||||
# to use nova::<myparam> first then nova::logging::<myparam>.
|
||||
$use_syslog_real = pick($::nova::use_syslog,$use_syslog)
|
||||
|
@ -71,8 +71,7 @@ define nova::manage::cells (
|
||||
$weight_scale = '1.0'
|
||||
) {
|
||||
|
||||
File['/etc/nova/nova.conf'] -> Nova_cells[$name]
|
||||
Exec<| title == 'nova-db-sync' |> -> Nova_cells[$name]
|
||||
include ::nova::deps
|
||||
|
||||
nova_cells { $name:
|
||||
ensure => present,
|
||||
|
@ -7,13 +7,11 @@
|
||||
#
|
||||
define nova::manage::floating ( $network ) {
|
||||
|
||||
File['/etc/nova/nova.conf'] -> Nova_floating[$name]
|
||||
Exec<| title == 'nova-db-sync' |> -> Nova_floating[$name]
|
||||
include ::nova::deps
|
||||
|
||||
nova_floating { $name:
|
||||
ensure => present,
|
||||
network => $network,
|
||||
provider => 'nova_manage',
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -52,8 +52,7 @@ define nova::manage::network (
|
||||
$dns2 = undef
|
||||
) {
|
||||
|
||||
File['/etc/nova/nova.conf'] -> Nova_network[$name]
|
||||
Exec<| title == 'nova-db-sync' |> -> Nova_network[$name]
|
||||
include ::nova::deps
|
||||
|
||||
nova_network { $name:
|
||||
ensure => present,
|
||||
|
@ -27,6 +27,9 @@ class nova::migration::libvirt(
|
||||
$live_migration_flag = undef,
|
||||
$block_migration_flag = undef,
|
||||
){
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
if $use_tls {
|
||||
$listen_tls = '1'
|
||||
$listen_tcp = '0'
|
||||
@ -52,89 +55,90 @@ class nova::migration::libvirt(
|
||||
|
||||
validate_re($auth, [ '^sasl$', '^none$' ], 'Valid options for auth are none and sasl.')
|
||||
|
||||
Package['libvirt'] -> File_line<| path == '/etc/libvirt/libvirtd.conf' |>
|
||||
Anchor['nova::config::begin']
|
||||
-> File_line<| tag == 'libvirt-file_line'|>
|
||||
-> Anchor['nova::config::end']
|
||||
|
||||
File_line<| tag == 'libvirt-file_line' |>
|
||||
~> Service['libvirt']
|
||||
|
||||
case $::osfamily {
|
||||
'RedHat': {
|
||||
file_line { '/etc/libvirt/libvirtd.conf listen_tls':
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "listen_tls = ${listen_tls}",
|
||||
match => 'listen_tls =',
|
||||
notify => Service['libvirt'],
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "listen_tls = ${listen_tls}",
|
||||
match => 'listen_tls =',
|
||||
tag => 'libvirt-file_line',
|
||||
}
|
||||
|
||||
file_line { '/etc/libvirt/libvirtd.conf listen_tcp':
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "listen_tcp = ${listen_tcp}",
|
||||
match => 'listen_tcp =',
|
||||
notify => Service['libvirt'],
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "listen_tcp = ${listen_tcp}",
|
||||
match => 'listen_tcp =',
|
||||
tag => 'libvirt-file_line',
|
||||
}
|
||||
|
||||
if $use_tls {
|
||||
file_line { '/etc/libvirt/libvirtd.conf auth_tls':
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "auth_tls = \"${auth}\"",
|
||||
match => 'auth_tls =',
|
||||
notify => Service['libvirt'],
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "auth_tls = \"${auth}\"",
|
||||
match => 'auth_tls =',
|
||||
tag => 'libvirt-file_line',
|
||||
}
|
||||
} else {
|
||||
file_line { '/etc/libvirt/libvirtd.conf auth_tcp':
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "auth_tcp = \"${auth}\"",
|
||||
match => 'auth_tcp =',
|
||||
notify => Service['libvirt'],
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "auth_tcp = \"${auth}\"",
|
||||
match => 'auth_tcp =',
|
||||
tag => 'libvirt-file_line',
|
||||
}
|
||||
}
|
||||
|
||||
file_line { '/etc/sysconfig/libvirtd libvirtd args':
|
||||
path => '/etc/sysconfig/libvirtd',
|
||||
line => 'LIBVIRTD_ARGS="--listen"',
|
||||
match => 'LIBVIRTD_ARGS=',
|
||||
notify => Service['libvirt'],
|
||||
path => '/etc/sysconfig/libvirtd',
|
||||
line => 'LIBVIRTD_ARGS="--listen"',
|
||||
match => 'LIBVIRTD_ARGS=',
|
||||
tag => 'libvirt-file_line',
|
||||
}
|
||||
|
||||
Package['libvirt'] -> File_line<| path == '/etc/sysconfig/libvirtd' |>
|
||||
}
|
||||
|
||||
'Debian': {
|
||||
file_line { '/etc/libvirt/libvirtd.conf listen_tls':
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "listen_tls = ${listen_tls}",
|
||||
match => 'listen_tls =',
|
||||
notify => Service['libvirt'],
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "listen_tls = ${listen_tls}",
|
||||
match => 'listen_tls =',
|
||||
tag => 'libvirt-file_line',
|
||||
}
|
||||
|
||||
file_line { '/etc/libvirt/libvirtd.conf listen_tcp':
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "listen_tcp = ${listen_tcp}",
|
||||
match => 'listen_tcp =',
|
||||
notify => Service['libvirt'],
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "listen_tcp = ${listen_tcp}",
|
||||
match => 'listen_tcp =',
|
||||
tag => 'libvirt-file_line',
|
||||
}
|
||||
|
||||
if $use_tls {
|
||||
file_line { '/etc/libvirt/libvirtd.conf auth_tls':
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "auth_tls = \"${auth}\"",
|
||||
match => 'auth_tls =',
|
||||
notify => Service['libvirt'],
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "auth_tls = \"${auth}\"",
|
||||
match => 'auth_tls =',
|
||||
tag => 'libvirt-file_line',
|
||||
}
|
||||
} else {
|
||||
file_line { '/etc/libvirt/libvirtd.conf auth_tcp':
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "auth_tcp = \"${auth}\"",
|
||||
match => 'auth_tcp =',
|
||||
notify => Service['libvirt'],
|
||||
path => '/etc/libvirt/libvirtd.conf',
|
||||
line => "auth_tcp = \"${auth}\"",
|
||||
match => 'auth_tcp =',
|
||||
tag => 'libvirt-file_line',
|
||||
}
|
||||
}
|
||||
|
||||
file_line { "/etc/default/${::nova::compute::libvirt::libvirt_service_name} libvirtd opts":
|
||||
path => "/etc/default/${::nova::compute::libvirt::libvirt_service_name}",
|
||||
line => 'libvirtd_opts="-d -l"',
|
||||
match => 'libvirtd_opts=',
|
||||
notify => Service['libvirt'],
|
||||
path => "/etc/default/${::nova::compute::libvirt::libvirt_service_name}",
|
||||
line => 'libvirtd_opts="-d -l"',
|
||||
match => 'libvirtd_opts=',
|
||||
tag => 'libvirt-file_line',
|
||||
}
|
||||
|
||||
Package['libvirt'] -> File_line<| path == "/etc/default/${::nova::compute::libvirt::libvirt_service_name}" |>
|
||||
}
|
||||
|
||||
default: {
|
||||
|
@ -105,6 +105,7 @@ class nova::network(
|
||||
$auto_assign_floating_ip = false,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
# forward all ipv4 traffic
|
||||
|
@ -13,6 +13,7 @@ define nova::network::bridge (
|
||||
$ip,
|
||||
$netmask = '255.255.255.0'
|
||||
) {
|
||||
include ::nova::deps
|
||||
|
||||
case $::osfamily {
|
||||
|
||||
|
@ -26,6 +26,8 @@ class nova::network::flat (
|
||||
$flat_network_bridge = 'br100'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
if $public_interface {
|
||||
nova_config { 'DEFAULT/public_interface': value => $public_interface }
|
||||
}
|
||||
|
@ -51,8 +51,13 @@ class nova::network::flatdhcp (
|
||||
$dhcpbridge_flagfile = '/etc/nova/nova.conf'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
if $::osfamily == 'RedHat' and $::operatingsystem != 'Fedora' {
|
||||
package { 'dnsmasq-utils': ensure => present }
|
||||
package { 'dnsmasq-utils':
|
||||
ensure => present,
|
||||
tag => ['openstack', 'nova-support-package'],
|
||||
}
|
||||
}
|
||||
|
||||
if $public_interface {
|
||||
|
@ -112,6 +112,8 @@ class nova::network::neutron (
|
||||
$dhcp_domain = 'novalocal',
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
nova_config {
|
||||
'DEFAULT/dhcp_domain': value => $dhcp_domain;
|
||||
'DEFAULT/firewall_driver': value => $firewall_driver;
|
||||
|
@ -45,8 +45,13 @@ class nova::network::vlan (
|
||||
$dhcpbridge_flagfile = '/etc/nova/nova.conf'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
if $::osfamily == 'RedHat' and $::operatingsystem != 'Fedora' {
|
||||
package { 'dnsmasq-utils': ensure => present }
|
||||
package { 'dnsmasq-utils':
|
||||
ensure => present,
|
||||
tag => ['openstack', 'nova-support-package'],
|
||||
}
|
||||
}
|
||||
|
||||
if $public_interface {
|
||||
|
@ -27,6 +27,7 @@ class nova::objectstore(
|
||||
$bind_address = '0.0.0.0'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
nova::generic_service { 'objectstore':
|
||||
@ -35,7 +36,6 @@ class nova::objectstore(
|
||||
package_name => $::nova::params::objectstore_package_name,
|
||||
service_name => $::nova::params::objectstore_service_name,
|
||||
ensure_package => $ensure_package,
|
||||
require => Package['nova-common'],
|
||||
}
|
||||
|
||||
nova_config {
|
||||
|
@ -30,7 +30,11 @@ class nova::policy (
|
||||
|
||||
validate_hash($policies)
|
||||
|
||||
$policy_defaults = { 'file_path' => $policy_path }
|
||||
$policy_defaults = {
|
||||
'file_path' => $policy_path,
|
||||
'require' => Anchor['nova::config::begin'],
|
||||
'notify' => Anchor['nova::config::end'],
|
||||
}
|
||||
|
||||
create_resources('openstacklib::policy::base', $policies, $policy_defaults)
|
||||
|
||||
|
@ -127,6 +127,7 @@ class nova::quota(
|
||||
$quota_max_injected_file_content_bytes = undef,
|
||||
$quota_max_injected_file_path_bytes = undef
|
||||
) {
|
||||
include ::nova::deps
|
||||
|
||||
if $quota_volumes {
|
||||
warning('The quota_volumes parameter is deprecated and has no effect.')
|
||||
|
@ -43,6 +43,8 @@ class nova::rabbitmq(
|
||||
$port ='5672',
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
if ($enabled) {
|
||||
if $userid == 'guest' {
|
||||
$delete_guest_user = false
|
||||
@ -59,10 +61,13 @@ class nova::rabbitmq(
|
||||
write_permission => '.*',
|
||||
read_permission => '.*',
|
||||
provider => 'rabbitmqctl',
|
||||
}->Anchor<| title == 'nova-start' |>
|
||||
}
|
||||
}
|
||||
rabbitmq_vhost { $virtual_host:
|
||||
provider => 'rabbitmqctl',
|
||||
}
|
||||
}
|
||||
|
||||
# Only start Nova after the queue is up
|
||||
Class['nova::rabbitmq'] -> Anchor['nova::service::end']
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ class nova::scheduler(
|
||||
$scheduler_driver = 'nova.scheduler.filter_scheduler.FilterScheduler',
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::db
|
||||
include ::nova::params
|
||||
|
||||
@ -41,7 +42,4 @@ class nova::scheduler(
|
||||
nova_config {
|
||||
'DEFAULT/scheduler_driver': value => $scheduler_driver;
|
||||
}
|
||||
|
||||
Nova_config['DEFAULT/scheduler_driver'] ~> Service <| title == 'nova-scheduler' |>
|
||||
|
||||
}
|
||||
|
@ -82,6 +82,8 @@ class nova::scheduler::filter (
|
||||
$scheduler_use_baremetal_filters = false,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
nova_config {
|
||||
'DEFAULT/scheduler_host_manager': value => $scheduler_host_manager;
|
||||
'DEFAULT/scheduler_max_attempts': value => $scheduler_max_attempts;
|
||||
|
@ -32,6 +32,7 @@ class nova::serialproxy(
|
||||
$ensure_package = 'present'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
nova_config {
|
||||
|
@ -36,6 +36,7 @@ class nova::spicehtml5proxy(
|
||||
$ensure_package = 'present'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
nova_config {
|
||||
|
@ -43,6 +43,7 @@ class nova::vncproxy(
|
||||
$ensure_package = 'present'
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
include ::nova::params
|
||||
|
||||
# See http://nova.openstack.org/runnova/vncconsole.html for more details.
|
||||
@ -58,6 +59,7 @@ class nova::vncproxy(
|
||||
package { 'python-numpy':
|
||||
ensure => present,
|
||||
name => $::nova::params::numpy_package_name,
|
||||
tag => ['openstack', 'nova-support-package'],
|
||||
}
|
||||
}
|
||||
nova::generic_service { 'vncproxy':
|
||||
|
@ -23,6 +23,8 @@ class nova::vncproxy::common (
|
||||
$vncproxy_path = undef,
|
||||
) {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
$vncproxy_host_real = pick(
|
||||
$vncproxy_host,
|
||||
$::nova::compute::vncproxy_host,
|
||||
|
@ -31,7 +31,8 @@ describe 'nova::api' do
|
||||
:ensure => 'present',
|
||||
:tag => ['openstack', 'nova-package'],
|
||||
)
|
||||
is_expected.to contain_package('nova-api').that_notifies('Service[nova-api]')
|
||||
is_expected.to contain_package('nova-api').that_requires('Anchor[nova::install::begin]')
|
||||
is_expected.to contain_package('nova-api').that_notifies('Anchor[nova::install::end]')
|
||||
is_expected.to_not contain_exec('validate_nova_api')
|
||||
end
|
||||
|
||||
|
@ -6,7 +6,7 @@ describe 'nova::client' do
|
||||
it {
|
||||
is_expected.to contain_package('python-novaclient').with(
|
||||
:ensure => 'present',
|
||||
:tag => ['openstack']
|
||||
:tag => ['openstack', 'nova-support-package']
|
||||
)
|
||||
}
|
||||
end
|
||||
|
@ -10,25 +10,34 @@ describe 'nova::compute::libvirt' do
|
||||
|
||||
it { is_expected.to contain_class('nova::params')}
|
||||
|
||||
it { is_expected.to contain_package('nova-compute-kvm').with(
|
||||
:ensure => 'present',
|
||||
:before => 'Package[nova-compute]',
|
||||
:tag => ['openstack']
|
||||
) }
|
||||
it {
|
||||
is_expected.to contain_package('nova-compute-kvm').with(
|
||||
:ensure => 'present',
|
||||
:tag => ['openstack', 'nova-package']
|
||||
)
|
||||
is_expected.to contain_package('nova-compute-kvm').that_requires('Anchor[nova::install::begin]')
|
||||
is_expected.to contain_package('nova-compute-kvm').that_notifies('Anchor[nova::install::end]')
|
||||
}
|
||||
|
||||
it { is_expected.to contain_package('libvirt').with(
|
||||
:name => 'libvirt-bin',
|
||||
:ensure => 'present'
|
||||
) }
|
||||
it {
|
||||
is_expected.to contain_package('libvirt').with(
|
||||
:name => 'libvirt-bin',
|
||||
:ensure => 'present'
|
||||
)
|
||||
is_expected.to contain_package('libvirt').that_requires('Anchor[nova::install::begin]')
|
||||
is_expected.to contain_package('libvirt').that_comes_before('Anchor[nova::install::end]')
|
||||
}
|
||||
|
||||
it { is_expected.to contain_service('libvirt').with(
|
||||
:name => 'libvirt-bin',
|
||||
:enable => true,
|
||||
:ensure => 'running',
|
||||
:provider => 'upstart',
|
||||
:require => 'Package[libvirt]',
|
||||
:before => ['Service[nova-compute]']
|
||||
)}
|
||||
it {
|
||||
is_expected.to contain_service('libvirt').with(
|
||||
:name => 'libvirt-bin',
|
||||
:enable => true,
|
||||
:ensure => 'running',
|
||||
:provider => 'upstart',
|
||||
)
|
||||
|
||||
is_expected.to contain_service('libvirt').that_requires('Anchor[nova::config::end]')
|
||||
}
|
||||
|
||||
it { is_expected.to contain_nova_config('DEFAULT/compute_driver').with_value('libvirt.LibvirtDriver')}
|
||||
it { is_expected.to contain_nova_config('libvirt/virt_type').with_value('kvm')}
|
||||
@ -71,13 +80,15 @@ describe 'nova::compute::libvirt' do
|
||||
it { is_expected.to contain_nova_config('DEFAULT/remove_unused_original_minimum_age_seconds').with_value(3600)}
|
||||
it { is_expected.to contain_nova_config('libvirt/remove_unused_kernels').with_value(true)}
|
||||
it { is_expected.to contain_nova_config('libvirt/remove_unused_resized_minimum_age_seconds').with_value(3600)}
|
||||
it { is_expected.to contain_service('libvirt').with(
|
||||
:name => 'custom_service',
|
||||
:enable => true,
|
||||
:ensure => 'running',
|
||||
:require => 'Package[libvirt]',
|
||||
:before => ['Service[nova-compute]']
|
||||
)}
|
||||
it {
|
||||
is_expected.to contain_service('libvirt').with(
|
||||
:name => 'custom_service',
|
||||
:enable => true,
|
||||
:ensure => 'running',
|
||||
:before => ['Service[nova-compute]']
|
||||
)
|
||||
is_expected.to contain_service('libvirt').that_requires('Anchor[nova::config::end]')
|
||||
}
|
||||
end
|
||||
|
||||
describe 'with custom cpu_mode' do
|
||||
@ -164,7 +175,7 @@ describe 'nova::compute::libvirt' do
|
||||
it { is_expected.to contain_package('libvirt-nwfilter').with(
|
||||
:name => 'libvirt-daemon-config-nwfilter',
|
||||
:ensure => 'present',
|
||||
:before => 'Service[libvirt]',
|
||||
:before => ['Service[libvirt]', 'Anchor[nova::install::end]'],
|
||||
) }
|
||||
|
||||
it { is_expected.to contain_service('libvirt').with(
|
||||
@ -172,8 +183,8 @@ describe 'nova::compute::libvirt' do
|
||||
:enable => true,
|
||||
:ensure => 'running',
|
||||
:provider => 'init',
|
||||
:require => 'Package[libvirt]',
|
||||
:before => ['Service[nova-compute]']
|
||||
:require => 'Anchor[nova::config::end]',
|
||||
:before => ['Service[nova-compute]'],
|
||||
)}
|
||||
it { is_expected.to contain_service('messagebus').with(
|
||||
:ensure => 'running',
|
||||
@ -294,7 +305,7 @@ describe 'nova::compute::libvirt' do
|
||||
it { is_expected.to contain_package('libvirt-nwfilter').with(
|
||||
:name => 'libvirt-daemon-config-nwfilter',
|
||||
:ensure => 'present',
|
||||
:before => 'Service[libvirt]',
|
||||
:before => ['Service[libvirt]', 'Anchor[nova::install::end]'],
|
||||
) }
|
||||
|
||||
it { is_expected.to contain_service('libvirt').with(
|
||||
@ -302,7 +313,7 @@ describe 'nova::compute::libvirt' do
|
||||
:enable => true,
|
||||
:ensure => 'running',
|
||||
:provider => nil,
|
||||
:require => 'Package[libvirt]',
|
||||
:require => 'Anchor[nova::config::end]',
|
||||
:before => ['Service[nova-compute]']
|
||||
)}
|
||||
|
||||
|
@ -31,7 +31,6 @@ describe 'nova::compute' do
|
||||
|
||||
it { is_expected.to_not contain_package('bridge-utils').with(
|
||||
:ensure => 'present',
|
||||
:before => 'Nova::Generic_service[compute]'
|
||||
) }
|
||||
|
||||
it { is_expected.to contain_package('pm-utils').with(
|
||||
@ -126,8 +125,9 @@ describe 'nova::compute' do
|
||||
it 'installs bridge-utils package for nova-network' do
|
||||
is_expected.to contain_package('bridge-utils').with(
|
||||
:ensure => 'present',
|
||||
:before => 'Nova::Generic_service[compute]'
|
||||
)
|
||||
is_expected.to contain_package('bridge-utils').that_requires('Anchor[nova::install::begin]')
|
||||
is_expected.to contain_package('bridge-utils').that_comes_before('Anchor[nova::install::end]')
|
||||
end
|
||||
|
||||
end
|
||||
@ -140,7 +140,6 @@ describe 'nova::compute' do
|
||||
it 'does not install bridge-utils package for nova-network' do
|
||||
is_expected.to_not contain_package('bridge-utils').with(
|
||||
:ensure => 'present',
|
||||
:before => 'Nova::Generic_service[compute]'
|
||||
)
|
||||
end
|
||||
|
||||
|
@ -27,7 +27,7 @@ describe 'nova::cron::archive_deleted_rows' do
|
||||
:monthday => params[:monthday],
|
||||
:month => params[:month],
|
||||
:weekday => params[:weekday],
|
||||
:require => 'Package[nova-common]',
|
||||
:require => 'Anchor[nova::dbsync::end]',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -89,7 +89,7 @@ describe 'nova::db' do
|
||||
is_expected.to contain_package('nova-backend-package').with(
|
||||
:ensure => 'present',
|
||||
:name => 'python-pymysql',
|
||||
:tag => 'openstack'
|
||||
:tag => ['openstack', 'nova-package'],
|
||||
)
|
||||
end
|
||||
end
|
||||
@ -103,7 +103,7 @@ describe 'nova::db' do
|
||||
is_expected.to contain_package('nova-backend-package').with(
|
||||
:ensure => 'present',
|
||||
:name => 'python-pysqlite2',
|
||||
:tag => 'openstack'
|
||||
:tag => ['openstack', 'nova-package'],
|
||||
)
|
||||
end
|
||||
|
||||
|
@ -13,7 +13,7 @@ describe 'nova' do
|
||||
it 'installs packages' do
|
||||
is_expected.to contain_package('python-nova').with(
|
||||
:ensure => 'present',
|
||||
:tag => ['openstack']
|
||||
:tag => ['openstack', 'nova-package']
|
||||
)
|
||||
is_expected.to contain_package('nova-common').with(
|
||||
:name => platform_params[:nova_common_package],
|
||||
@ -22,12 +22,6 @@ describe 'nova' do
|
||||
)
|
||||
end
|
||||
|
||||
it 'creates various files and folders' do
|
||||
is_expected.to contain_file('/etc/nova/nova.conf').with(
|
||||
:require => 'Package[nova-common]'
|
||||
)
|
||||
end
|
||||
|
||||
it 'configures rootwrap' do
|
||||
is_expected.to contain_nova_config('DEFAULT/rootwrap_config').with_value('/etc/nova/rootwrap.conf')
|
||||
end
|
||||
|
@ -30,7 +30,7 @@ describe 'nova::network' do
|
||||
it { is_expected.to contain_package('nova-network').with(
|
||||
'name' => 'nova-network',
|
||||
'ensure' => 'present',
|
||||
'notify' => 'Service[nova-network]'
|
||||
'notify' => ['Anchor[nova::install::end]'],
|
||||
) }
|
||||
|
||||
describe 'with enabled as true' do
|
||||
|
@ -27,8 +27,11 @@ describe 'nova::generic_service' do
|
||||
'enable' => true
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_service('nova-foo').that_requires(
|
||||
['Package[nova-common]', 'Package[nova-foo]']
|
||||
it { is_expected.to contain_service('nova-foo').that_subscribes_to(
|
||||
'Anchor[nova::service::begin]',
|
||||
)}
|
||||
it { is_expected.to contain_service('nova-foo').that_notifies(
|
||||
'Anchor[nova::service::end]',
|
||||
)}
|
||||
end
|
||||
end
|
||||
|
@ -9,11 +9,12 @@ shared_examples 'generic nova service' do |service|
|
||||
context 'with default parameters' do
|
||||
it 'installs package and service' do
|
||||
is_expected.to contain_package(service[:name]).with({
|
||||
:name => service[:package_name],
|
||||
:ensure => 'present',
|
||||
:notify => "Service[#{service[:name]}]",
|
||||
:tag => ['openstack', 'nova-package'],
|
||||
:name => service[:package_name],
|
||||
:ensure => 'present',
|
||||
:tag => ['openstack', 'nova-package'],
|
||||
})
|
||||
is_expected.to contain_package(service[:name]).that_requires('Anchor[nova::install::begin]')
|
||||
is_expected.to contain_package(service[:name]).that_notifies('Anchor[nova::install::end]')
|
||||
is_expected.to contain_service(service[:name]).with({
|
||||
:name => service[:service_name],
|
||||
:ensure => 'running',
|
||||
@ -21,6 +22,8 @@ shared_examples 'generic nova service' do |service|
|
||||
:enable => true,
|
||||
:tag => 'nova-service',
|
||||
})
|
||||
is_expected.to contain_service(service[:name]).that_subscribes_to('Anchor[nova::service::begin]')
|
||||
is_expected.to contain_service(service[:name]).that_notifies('Anchor[nova::service::end]')
|
||||
end
|
||||
end
|
||||
|
||||
@ -34,9 +37,10 @@ shared_examples 'generic nova service' do |service|
|
||||
is_expected.to contain_package(service[:name]).with({
|
||||
:name => service[:package_name],
|
||||
:ensure => '2012.1-2',
|
||||
:notify => "Service[#{service[:name]}]",
|
||||
:tag => ['openstack', 'nova-package'],
|
||||
})
|
||||
is_expected.to contain_package(service[:name]).that_requires('Anchor[nova::install::begin]')
|
||||
is_expected.to contain_package(service[:name]).that_notifies('Anchor[nova::install::end]')
|
||||
is_expected.to contain_service(service[:name]).with({
|
||||
:name => service[:service_name],
|
||||
:ensure => 'stopped',
|
||||
@ -44,6 +48,8 @@ shared_examples 'generic nova service' do |service|
|
||||
:enable => false,
|
||||
:tag => 'nova-service',
|
||||
})
|
||||
is_expected.to contain_service(service[:name]).that_subscribes_to('Anchor[nova::service::begin]')
|
||||
is_expected.to contain_service(service[:name]).that_notifies('Anchor[nova::service::end]')
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user