Merge "Implement hardcoded nailgun tasks in library"

This commit is contained in:
Jenkins 2016-03-31 10:27:07 +00:00 committed by Gerrit Code Review
commit 264e422386
16 changed files with 166 additions and 149 deletions

View File

@ -7,7 +7,7 @@
cross-depends:
- name: aodh-db
- name: aodh-keystone
condition: "settings:additional_components.ceilometer.value == true"
condition: "settings:ceilometer.enabled == true"
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/aodh/aodh.pp
puppet_modules: /etc/puppet/modules
@ -25,7 +25,7 @@
requires: [primary-keystone, keystone]
cross-depends:
- name: keystone
condition: "settings:additional_components.ceilometer.value == true"
condition: "settings:ceilometer.enabled == true"
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/aodh/keystone.pp
puppet_modules: /etc/puppet/modules
@ -38,7 +38,7 @@
cross-depends:
- name: /(primary-)?database/
required_for: [aodh]
condition: "settings:additional_components.ceilometer.value == true"
condition: "settings:ceilometer.enabled == true"
requires: [primary-database, database]
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/aodh/db.pp

View File

@ -7,7 +7,7 @@
groups: [primary-controller, controller]
required_for: [primary-openstack-controller, openstack-controller]
requires: [openstack-haproxy]
condition: "settings:additional_components.ceilometer.value == true"
condition: "settings:ceilometer.enabled == true"
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/ceilometer/controller.pp
puppet_modules: /etc/puppet/modules
@ -25,7 +25,7 @@
requires: [ceilometer-controller, top-role-compute]
cross-depends:
- name: ceilometer-controller
condition: "settings:additional_components.ceilometer.value == true"
condition: "settings:ceilometer.enabled == true"
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/ceilometer/compute.pp
puppet_modules: /etc/puppet/modules
@ -40,7 +40,7 @@
version: 2.0.0
groups: [primary-controller]
required_for: [ceilometer-controller]
condition: "settings:additional_components.ceilometer.value == true"
condition: "settings:ceilometer.enabled == true"
requires: [primary-keystone, keystone]
cross-depends:
- name: /(primary-)?keystone/
@ -55,7 +55,7 @@
role: [primary-controller, controller]
requires: [post_deployment_start, enable_rados]
required_for: [post_deployment_end]
condition: "settings:additional_components.ceilometer.value == true and settings:storage.objects_ceph.value == true"
condition: "settings:ceilometer.enabled == true and settings:storage.objects_ceph == true"
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/ceilometer/radosgw_user.pp
puppet_modules: /etc/puppet/modules

View File

@ -2,7 +2,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller, controller]
condition: "settings:additional_components.ironic.value == true"
condition: "settings:ironic.enabled == true"
cross-depends:
- name: ironic-db
- name: ironic-keystone
@ -19,7 +19,7 @@
groups: [primary-controller]
cross-depends:
- name: /(primary-)?database/
condition: "settings:additional_components.ironic.value == true"
condition: "settings:ironic.enabled == true"
required_for: [ironic-api]
requires: [primary-database, database]
parameters:
@ -31,7 +31,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller]
condition: "settings:additional_components.ironic.value == true"
condition: "settings:ironic.enabled == true"
required_for: [ironic-api]
requires: [primary-keystone, keystone]
cross-depends:
@ -45,7 +45,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller, controller]
condition: "settings:additional_components.ironic.value == true"
condition: "settings:ironic.enabled == true"
required_for: [deploy_end]
requires: [primary-openstack-controller, openstack-controller, ironic-api]
refresh_on: [nova_config, nova_paste_api_ini]

View File

@ -2,7 +2,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller, controller]
condition: "settings:additional_components.murano.value == true"
condition: "settings:murano.enabled == true"
required_for: [deploy_end, controller_remaining_tasks]
requires: [primary-heat, heat, horizon, primary-rabbitmq, rabbitmq]
cross-depends:
@ -23,7 +23,7 @@
groups: [primary-controller]
cross-depends:
- name: /(primary-)?database/
condition: "settings:additional_components.murano.value == true"
condition: "settings:murano.enabled == true"
required_for: [murano]
requires: [primary-database, database]
parameters:
@ -35,7 +35,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller]
condition: "settings:additional_components.murano.value == true"
condition: "settings:murano.enabled == true"
required_for: [murano]
requires: [primary-keystone, keystone]
cross-depends:
@ -49,7 +49,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller, controller]
condition: "settings:additional_components.murano.value == true"
condition: "settings:murano.enabled == true"
required_for: [murano]
cross-depends:
- name: /(primary-)?rabbitmq/
@ -64,7 +64,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller, controller]
condition: "settings:additional_components.murano-cfapi.value == true"
condition: "settings:murano-cfapi.enabled == true"
requires: [murano]
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/murano/cfapi.pp
@ -75,7 +75,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller]
condition: "settings:additional_components.murano-cfapi.value == true"
condition: "settings:murano-cfapi.enabled == true"
required_for: [murano-cfapi]
requires: [primary-keystone, keystone]
cross-depends:

View File

@ -103,7 +103,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller]
condition: "settings:neutron_advanced_configuration.neutron_l3_ha.value == false"
condition: "settings:neutron_advanced_configuration.neutron_l3_ha == false"
required_for: [openstack-network-end]
requires: [openstack-network-start, openstack-network-networks]
parameters:
@ -117,7 +117,7 @@
type: puppet
version: 2.0.0
role: [primary-controller]
condition: "settings:neutron_advanced_configuration.neutron_l3_ha.value == true"
condition: "settings:neutron_advanced_configuration.neutron_l3_ha == true"
required_for: [post_deployment_end]
requires: [post_deployment_start]
parameters:

View File

@ -105,7 +105,7 @@
- id: allocate_hugepages
type: puppet
version: 2.0.0
role: '*'
role: ['/.*/']
requires: [setup_repositories]
required_for: [globals]
parameters:

View File

@ -2,7 +2,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller, controller]
condition: "settings:additional_components.sahara.value == true"
condition: "settings:sahara.enabled == true"
required_for: [deploy_end, controller_remaining_tasks]
requires: [openstack-network-end, horizon]
cross-depends:
@ -24,7 +24,7 @@
cross-depends:
- name: /(primary-)?database/
required_for: [sahara]
condition: "settings:additional_components.sahara.value == true"
condition: "settings:sahara.enabled == true"
requires: [primary-database, database]
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/sahara/db.pp
@ -39,7 +39,7 @@
requires: [primary-keystone, keystone]
cross-depends:
- name: keystone
condition: "settings:additional_components.sahara.value == true"
condition: "settings:sahara.enabled == true"
parameters:
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/sahara/keystone.pp
puppet_modules: /etc/puppet/modules

View File

@ -4,7 +4,7 @@
groups: [primary-controller, controller]
required_for: [deploy_end, controller_remaining_tasks]
requires: [openstack-controller]
condition: &swift_enabled "( settings:storage.objects_ceph.value == false or settings:storage.images_ceph.value == false ) and settings:storage.images_vcenter.value == false"
condition: &swift_enabled "( settings:storage.objects_ceph == false or settings:storage.images_ceph == false ) and settings:storage.images_vcenter == false"
cross-depends:
- name: /(primary-)?rabbitmq/
- name: /glance/

View File

@ -2,54 +2,57 @@ class osnailyfacter::generate_vms::generate_vms {
notice('MODULAR: generate_vms/generate_vms.pp')
$libvirt_dir = '/etc/libvirt/qemu'
$template_dir = '/var/lib/nova'
$packages = ['qemu-utils', 'qemu-kvm', 'libvirt-bin', 'xmlstarlet']
$vms = hiera_array('vms_conf')
$enabled = str2bool(inline_template('<%= @vms.collect{|x| x["created"]}.compact.any? %>'))
include ::nova::params
if $enabled {
$libvirt_dir = '/etc/libvirt/qemu'
$template_dir = '/var/lib/nova'
$packages = ['qemu-utils', 'qemu-kvm', 'libvirt-bin', 'xmlstarlet']
package { $packages:
ensure => 'installed',
}
service { $::nova::params::libvirt_service_name:
ensure => 'running',
require => Package[$packages],
before => Exec['generate_vms'],
}
include ::nova::params
file { "${libvirt_dir}/autostart":
ensure => 'directory',
require => Package[$packages],
}
file { $template_dir:
ensure => 'directory',
}
::osnailyfacter::generate_vms::vm_config { $vms:
before => Exec['generate_vms'],
require => File[$template_dir],
}
exec { 'generate_vms':
command => "/usr/bin/generate_vms.sh ${libvirt_dir} ${template_dir}",
path => ['/usr/sbin', '/usr/bin' , '/sbin', '/bin'],
require => [File[$template_dir], File["${libvirt_dir}/autostart"]],
}
if $::operatingsystem == 'Ubuntu' {
# TODO(mpolenchuk): Remove when LP#1057024 has been resolved.
# https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/1057024
file { '/dev/kvm':
ensure => present,
group => 'kvm',
mode => '0660',
package { $packages:
ensure => 'installed',
}
Package<||> ~> File['/dev/kvm'] -> Exec['generate_vms']
}
service { $::nova::params::libvirt_service_name:
ensure => 'running',
require => Package[$packages],
before => Exec['generate_vms'],
}
file { "${libvirt_dir}/autostart":
ensure => 'directory',
require => Package[$packages],
}
file { $template_dir:
ensure => 'directory',
}
::osnailyfacter::generate_vms::vm_config { $vms:
before => Exec['generate_vms'],
require => File[$template_dir],
}
exec { 'generate_vms':
command => "/usr/bin/generate_vms.sh ${libvirt_dir} ${template_dir}",
path => ['/usr/sbin', '/usr/bin' , '/sbin', '/bin'],
require => [File[$template_dir], File["${libvirt_dir}/autostart"]],
}
if $::operatingsystem == 'Ubuntu' {
# TODO(mpolenchuk): Remove when LP#1057024 has been resolved.
# https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/1057024
file { '/dev/kvm':
ensure => present,
group => 'kvm',
mode => '0660',
}
Package<||> ~> File['/dev/kvm'] -> Exec['generate_vms']
}
}
}

View File

@ -28,27 +28,38 @@
timeout: 180
- id: upload_nodes_info
type: upload_file
version: 2.0.0
role: '*'
type: skipped
version: 2.1.0
role: ['/.*/']
requires: [post_deployment_start]
parameters:
path: /etc/hiera/nodes.yaml
- id: upload_configuration
type: upload_file
version: 2.0.0
role: '*'
version: 2.1.0
role: ['/.*/']
requires: [override_configuration]
required_for: [pre_deployment_end]
refresh_on: ['*']
parameters:
path: /etc/fuel/cluster/{CLUSTER_ID}/astute.yaml
timeout: 180
data:
yaql_exp: '$.toYaml()'
- id: configuration_symlink
type: shell
version: 2.1.0
role: ['/.*/']
requires: [upload_configuration]
required_for: [pre_deployment_end]
parameters:
cmd: ln -sf /etc/fuel/cluster/{CLUSTER_ID}/astute.yaml /etc/astute.yaml
timeout: 180
- id: update_hosts
type: puppet
version: 2.0.0
role: '*'
role: ['/.*/']
required_for: [post_deployment_end]
requires: [upload_nodes_info]
parameters:
@ -63,7 +74,7 @@
role: [primary-controller, compute-vmware]
requires: [post_deployment_start, enable_nova_compute_service]
required_for: [post_deployment_end]
condition: "settings:common.use_vcenter.value == true"
condition: "settings:use_vcenter == true"
parameters:
cmd: /usr/bin/python /etc/puppet/modules/osnailyfacter/modular/astute/vcenter_hooks.py --create_zones
timeout: 180
@ -110,7 +121,7 @@
- id: rsync_core_puppet
type: sync
version: 2.0.0
role: '*'
role: ['/.*/']
requires: [pre_deployment_start]
required_for: [pre_deployment_end]
parameters:
@ -122,7 +133,7 @@
- id: clear_nodes_info
type: shell
version: 2.0.0
role: '*'
role: ['/.*/']
requires: [pre_deployment_start]
required_for: [pre_deployment_end]
parameters:
@ -132,7 +143,7 @@
- id: copy_keys
type: copy_files
version: 2.0.0
role: '*'
role: ['/.*/']
required_for: [pre_deployment_end]
requires: [generate_keys]
cross-depends:
@ -176,7 +187,7 @@
version: 2.0.0
role: master
requires: [pre_deployment_start]
condition: "(settings:public_ssl.horizon.value == true or settings:public_ssl.services.value == true) and settings:public_ssl.cert_source.value == 'self_signed'"
condition: "(settings:public_ssl.horizon == true or settings:public_ssl.services == true) and settings:public_ssl.cert_source == 'self_signed'"
required_for: [copy_haproxy_keys]
parameters:
cmd: sh /etc/puppet/modules/osnailyfacter/modular/astute/generate_haproxy_keys.sh -i {CLUSTER_ID} -h {CN_HOSTNAME} -o 'haproxy' -p /var/lib/fuel/keys/
@ -185,13 +196,13 @@
- id: copy_haproxy_keys
type: copy_files
version: 2.0.0
role: '*'
role: ['/.*/']
required_for: [pre_deployment_end]
requires: [generate_haproxy_keys]
cross-depends:
- name: generate_haproxy_keys
role: master
condition: "(settings:public_ssl.horizon.value == true or settings:public_ssl.services.value == true) and settings:public_ssl.cert_source.value == 'self_signed'"
condition: "(settings:public_ssl.horizon == true or settings:public_ssl.services == true) and settings:public_ssl.cert_source == 'self_signed'"
parameters:
files:
- src: /var/lib/fuel/keys/{CLUSTER_ID}/haproxy/public_haproxy.pem
@ -204,7 +215,7 @@
- id: sync_time
type: shell
version: 2.0.0
role: '*'
role: ['/.*/']
requires: [pre_deployment_start]
required_for: [pre_deployment_end]
parameters:
@ -216,7 +227,7 @@
- id: pre_hiera_config
type: puppet
version: 2.0.0
role: '*'
role: ['/.*/']
requires: [pre_deployment_start, rsync_core_puppet]
required_for: [pre_deployment_end]
parameters:
@ -228,7 +239,7 @@
- id: override_configuration
type: puppet
version: 2.0.0
role: '*'
role: ['/.*/']
requires: [pre_hiera_config]
required_for: [pre_deployment_end]
parameters:
@ -253,7 +264,7 @@
type: shell
version: 2.0.0
role: [primary-controller]
condition: "settings:additional_components.ironic.value == true"
condition: "settings:ironic.enabled == true"
requires: [enable_quorum, enable_rados]
required_for: [post_deployment_end]
parameters:
@ -266,7 +277,7 @@
type: shell
version: 2.0.0
role: [primary-controller]
condition: "settings:additional_components.ironic.value == true"
condition: "settings:ironic.enabled == true"
required_for: [post_deployment_end]
requires: [enable_quorum, enable_rados]
parameters:
@ -279,7 +290,7 @@
type: copy_files
version: 2.0.0
role: [ironic]
condition: "settings:additional_components.ironic.value == true"
condition: "settings:ironic.enabled == true"
required_for: [pre_deployment_end]
requires: [pre_deployment_start]
parameters:

View File

@ -4,7 +4,7 @@
- id: copy_keys_ceph
type: copy_files
version: 2.0.0
role: '*'
role: ['/.*/']
required_for: [pre_deployment_end]
requires: [generate_keys_ceph]
cross-depends:
@ -129,7 +129,7 @@
- name: ceph_create_pools
requires: [ceph_create_pools]
required_for: [post_deployment_end]
condition: "settings:storage.objects_ceph.value == true or settings:storage.images_ceph.value == true or settings:storage.volumes_ceph.value == true or settings:storage.ephemeral_ceph.value == true"
condition: "settings:storage.objects_ceph == true or settings:storage.images_ceph == true or settings:storage.volumes_ceph == true or settings:storage.ephemeral_ceph == true"
parameters:
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ceph/ceph_compute.pp
puppet_modules: /etc/puppet/modules
@ -146,7 +146,7 @@
required_for: [ceph_ready_check]
cross-depended-by:
- name: ceph_ready_check
condition: "settings:storage.objects_ceph.value == true or settings:storage.images_ceph.value == true or settings:storage.volumes_ceph.value == true or settings:storage.ephemeral_ceph.value == true"
condition: "settings:storage.objects_ceph == true or settings:storage.images_ceph == true or settings:storage.volumes_ceph == true or settings:storage.ephemeral_ceph == true"
parameters:
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ceph/ceph_pools.pp
puppet_modules: /etc/puppet/modules
@ -157,7 +157,7 @@
type: shell
version: 2.0.0
role: [primary-controller]
condition: "settings:storage.objects_ceph.value == true or settings:storage.images_ceph.value == true or settings:storage.volumes_ceph.value == true or settings:storage.ephemeral_ceph.value == true"
condition: "settings:storage.objects_ceph == true or settings:storage.images_ceph == true or settings:storage.volumes_ceph == true or settings:storage.ephemeral_ceph == true"
requires: [post_deployment_start]
required_for: [enable_rados, upload_cirros]
parameters:
@ -168,7 +168,7 @@
type: puppet
version: 2.0.0
role: [primary-controller, controller]
condition: "settings:storage.objects_ceph.value == true"
condition: "settings:storage.objects_ceph == true"
requires: [post_deployment_start]
required_for: [upload_cirros, post_deployment_end]
cross-depended-by:
@ -183,7 +183,7 @@
type: puppet
version: 2.0.0
role: [primary-controller, controller, ceph-osd]
condition: "settings:storage.objects_ceph.value == true or settings:storage.images_ceph.value == true or settings:storage.volumes_ceph.value == true or settings:storage.ephemeral_ceph.value == true"
condition: "settings:storage.objects_ceph == true or settings:storage.images_ceph == true or settings:storage.volumes_ceph == true or settings:storage.ephemeral_ceph == true"
requires: [post_deployment_start]
required_for: [post_deployment_end]
parameters:

View File

@ -1,7 +1,7 @@
- id: cgroups
type: puppet
version: 2.0.0
role: '*'
role: ['/.*/']
requires: [post_deployment_start]
required_for: [post_deployment_end]
parameters:

View File

@ -283,7 +283,7 @@
type: puppet
version: 2.0.0
groups: [primary-controller, controller]
condition: "settings:additional_components.ironic.value == true"
condition: "settings:ironic.enabled == true"
required_for: [deploy_end]
requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy]
cross-depends:

View File

@ -3,7 +3,7 @@
version: 2.0.0
groups: [primary-controller, controller, compute, compute-vmware, cinder, cinder-vmware, primary-mongo, mongo, ceph-osd, virt]
requires: [firewall]
condition: "(settings:public_ssl.horizon.value == true or settings:public_ssl.services.value == true) and settings:public_ssl.cert_source.value == 'user_uploaded'"
condition: "(settings:public_ssl.horizon == true or settings:public_ssl.services == true) and settings:public_ssl.cert_source == 'user_uploaded'"
required_for: [deploy_end]
parameters:
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ssl/ssl_keys_saving.pp
@ -17,7 +17,7 @@
version: 2.0.0
groups: [primary-controller, controller, compute, compute-vmware, cinder, cinder-vmware, primary-mongo, mongo, ceph-osd, virt]
requires: [firewall, ssl-keys-saving]
condition: "settings:public_ssl.horizon.value == true or settings:public_ssl.services.value == true"
condition: "settings:public_ssl.horizon == true or settings:public_ssl.services == true"
required_for: [hosts]
parameters:
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ssl/ssl_add_trust_chain.pp
@ -31,7 +31,7 @@
version: 2.0.0
groups: [primary-controller, controller]
requires: [firewall, ssl-add-trust-chain]
condition: "settings:public_ssl.horizon.value == true or settings:public_ssl.services.value == true"
condition: "settings:public_ssl.horizon == true or settings:public_ssl.services == true"
required_for: [hosts]
parameters:
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/ssl/ssl_dns_setup.pp

View File

@ -4,7 +4,7 @@
groups: [primary-controller, controller]
required_for: [deploy_end]
requires: [controller_remaining_tasks]
condition: "settings:common.use_vcenter.value == true"
condition: "settings:use_vcenter == true"
parameters:
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/vmware/vcenter.pp
puppet_modules: /etc/puppet/modules
@ -16,7 +16,7 @@
groups: [cinder-vmware]
required_for: [deploy_end]
requires: [top-role-cinder]
condition: "settings:common.use_vcenter.value == true"
condition: "settings:use_vcenter == true"
parameters:
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/vmware/cinder-vmware.pp
puppet_modules: /etc/puppet/modules
@ -32,7 +32,7 @@
groups: [compute-vmware]
required_for: [enable_nova_compute_service]
requires: [top-role-compute, ceilometer-compute, ceilometer-keystone]
condition: "settings:common.use_vcenter.value == true"
condition: "settings:use_vcenter == true"
parameters:
puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/vmware/compute-vmware.pp
puppet_modules: /etc/puppet/modules

View File

@ -6,65 +6,68 @@ manifest = 'generate_vms/generate_vms.pp'
describe manifest do
shared_examples 'catalog' do
libvirt_dir = '/etc/libvirt/qemu'
template_dir = '/var/lib/nova'
libvirt_service = 'libvirtd'
packages = ['qemu-utils', 'qemu-kvm', 'libvirt-bin', 'xmlstarlet']
vms = Noop.hiera 'vms_conf'
enabled = vms.collect{|x| x['created']}.compact.any?
it 'should exec generate_vms' do
should contain_exec('generate_vms').with(
'command' => "/usr/bin/generate_vms.sh #{libvirt_dir} #{template_dir}",
)
end
if enabled
libvirt_dir = '/etc/libvirt/qemu'
template_dir = '/var/lib/nova'
libvirt_service = 'libvirtd'
packages = ['qemu-utils', 'qemu-kvm', 'libvirt-bin', 'xmlstarlet']
vms.each do | vm |
it "should define osnailyfacter::generate_vms::vm_config #{vm}" do
should contain_osnailyfacter__generate_vms__vm_config(vm).with(
vms.each do | vm |
it "should define osnailyfacter::generate_vms::vm_config #{vm}" do
should contain_osnailyfacter__generate_vms__vm_config(vm).with(
'before' => 'Exec[generate_vms]',
'require' => "File[#{template_dir}]",
)
end
end
it 'should exec generate_vms' do
should contain_exec('generate_vms').with(
'command' => "/usr/bin/generate_vms.sh #{libvirt_dir} #{template_dir}",
)
end
it "should create #{template_dir} directory" do
should contain_file(template_dir).with(
'ensure' => 'directory',
)
end
it "should create #{libvirt_dir}/autostart directory" do
should contain_file("#{libvirt_dir}/autostart").with(
'ensure' => 'directory',
)
end
it "should start #{libvirt_service} service" do
should contain_service(libvirt_service).with(
'ensure' => 'running',
'before' => 'Exec[generate_vms]',
'require' => "File[#{template_dir}]",
)
end
end
it "should create #{template_dir} directory" do
should contain_file(template_dir).with(
'ensure' => 'directory',
)
end
packages.each do | package |
it "should install #{package} package" do
should contain_package(package).with(
'ensure' => 'installed',
)
end
end
it "should create #{libvirt_dir}/autostart directory" do
should contain_file("#{libvirt_dir}/autostart").with(
'ensure' => 'directory',
)
end
it "should start #{libvirt_service} service" do
should contain_service(libvirt_service).with(
'ensure' => 'running',
'before' => 'Exec[generate_vms]',
)
end
packages.each do | package |
it "should install #{package} package" do
should contain_package(package).with(
'ensure' => 'installed',
)
it 'should set permissions for /dev/kvm under Ubuntu' do
if facts[:operatingsystem] == 'Ubuntu'
should contain_file('/dev/kvm').with(
:ensure => 'present',
:group => 'kvm',
:mode => '0660',
).that_comes_before('Exec[generate_vms]')
end
end
end
it 'should set permissions for /dev/kvm under Ubuntu' do
if facts[:operatingsystem] == 'Ubuntu'
should contain_file('/dev/kvm').with(
:ensure => 'present',
:group => 'kvm',
:mode => '0660',
).that_comes_before('Exec[generate_vms]')
end
end
end
test_ubuntu_and_centos manifest
end