From d2225d630e9992b256b7ebd1ad172f0b7d87670a Mon Sep 17 00:00:00 2001 From: Stanislaw Bogatkin Date: Fri, 18 Mar 2016 12:52:30 +0300 Subject: [PATCH] Implement hardcoded nailgun tasks in library Nailgun implements new serializer for tasks which discarding other ones. It leads us to reimplement previously hardcoded tasks from nailgun in library. * Add generators for upload_configuration and upload_nodes_info. Previously, those tasks have got data from nailgun. Now special hash 'data' in task can have a 'yaql_exp' parameter that recieve a yaql [0] expression. root ('$') value in this expression is a mostly one-to-one settings representation yaml hash, values of which can be accessed via '.'. Typical values is 'configs' and 'nodes' which are according to openstack config and 'nodes.yaml' file data we will have on nodes * Change role regex from '*' to ['/.*/'] for all tasks which needed this. Current implementation of new serializer needs this explicitly and (I believe) thiat will be fixed later. Also, explicit declaration can show that it is a _regexp_, not just a globe * generate_vms task not ran by nailgun implicitly by searching in astute.yaml config. This behavior moved to task itself. * Conditions changes. Main changes done for 'additional_components' section, so now it move from "settings:additional_components.ceilometer.value == true" to "settings:ceilometer.enabled == true" Also there is 'common' section remove, so "settings:common.use_vcenter.value == true" now must be written as "settings:use_vcenter == true" Also there is no need to point any '.value' suffix in condition, so, for example, "settings:public_ssl.horizon.value == true" became a "settings:public_ssl.horizon == true" * New major tasks version added - 2.1.0. Now if serializer fabric found any task with 2.1.0 version or higher, new LCM serializer is used. If there are no such tasks, old serializer are used for backward compatibility [0] https://yaql.readthedocs.org/en/latest/ Change-Id: I387e9fbfad8ca20f643ee43cbe830196d597c415 Related-Blueprint: computable-task-fields-yaql Depends-On: Ie95a58c8cf86eac1a5c3dbd956fafc401e40fed6 --- .../openstack_tasks/examples/aodh/tasks.yaml | 6 +- .../examples/ceilometer/tasks.yaml | 8 +- .../examples/ironic/tasks.yaml | 8 +- .../examples/murano/tasks.yaml | 12 +-- .../examples/openstack-network/tasks.yaml | 4 +- .../openstack_tasks/examples/roles/tasks.yaml | 2 +- .../examples/sahara/tasks.yaml | 6 +- .../openstack_tasks/examples/swift/tasks.yaml | 2 +- .../manifests/generate_vms/generate_vms.pp | 87 ++++++++-------- .../osnailyfacter/modular/astute/tasks.yaml | 53 ++++++---- .../osnailyfacter/modular/ceph/tasks.yaml | 12 +-- .../osnailyfacter/modular/cgroups/tasks.yaml | 2 +- .../modular/openstack-haproxy/tasks.yaml | 2 +- .../osnailyfacter/modular/ssl/tasks.yaml | 6 +- .../osnailyfacter/modular/vmware/tasks.yaml | 6 +- .../hosts/generate_vms/generate_vms_spec.rb | 99 ++++++++++--------- 16 files changed, 166 insertions(+), 149 deletions(-) diff --git a/deployment/puppet/openstack_tasks/examples/aodh/tasks.yaml b/deployment/puppet/openstack_tasks/examples/aodh/tasks.yaml index 3392dc7c9e..e53b37030d 100644 --- a/deployment/puppet/openstack_tasks/examples/aodh/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/aodh/tasks.yaml @@ -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 diff --git a/deployment/puppet/openstack_tasks/examples/ceilometer/tasks.yaml b/deployment/puppet/openstack_tasks/examples/ceilometer/tasks.yaml index 8e8cac4a56..c145cca33a 100644 --- a/deployment/puppet/openstack_tasks/examples/ceilometer/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/ceilometer/tasks.yaml @@ -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 diff --git a/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml b/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml index 3957ecd76e..46170e9ca8 100644 --- a/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml @@ -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] diff --git a/deployment/puppet/openstack_tasks/examples/murano/tasks.yaml b/deployment/puppet/openstack_tasks/examples/murano/tasks.yaml index f41dbe2a39..6bee57fd3a 100644 --- a/deployment/puppet/openstack_tasks/examples/murano/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/murano/tasks.yaml @@ -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: diff --git a/deployment/puppet/openstack_tasks/examples/openstack-network/tasks.yaml b/deployment/puppet/openstack_tasks/examples/openstack-network/tasks.yaml index 9cac58a637..64ca7a7b4d 100644 --- a/deployment/puppet/openstack_tasks/examples/openstack-network/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/openstack-network/tasks.yaml @@ -102,7 +102,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: @@ -116,7 +116,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: diff --git a/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml b/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml index 5f664baf43..4a8365c85d 100644 --- a/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml @@ -105,7 +105,7 @@ - id: allocate_hugepages type: puppet version: 2.0.0 - role: '*' + role: ['/.*/'] requires: [setup_repositories] required_for: [globals] parameters: diff --git a/deployment/puppet/openstack_tasks/examples/sahara/tasks.yaml b/deployment/puppet/openstack_tasks/examples/sahara/tasks.yaml index ea8215b9d3..84cebc49ea 100644 --- a/deployment/puppet/openstack_tasks/examples/sahara/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/sahara/tasks.yaml @@ -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 diff --git a/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml b/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml index b5e32c6da9..b95f9fbad4 100644 --- a/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml @@ -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/ diff --git a/deployment/puppet/osnailyfacter/manifests/generate_vms/generate_vms.pp b/deployment/puppet/osnailyfacter/manifests/generate_vms/generate_vms.pp index 84aee9fb4c..01794b736f 100644 --- a/deployment/puppet/osnailyfacter/manifests/generate_vms/generate_vms.pp +++ b/deployment/puppet/osnailyfacter/manifests/generate_vms/generate_vms.pp @@ -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'] + } + } } diff --git a/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml b/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml index 4975da3b72..ff5b9e2c2f 100644 --- a/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/astute/tasks.yaml @@ -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: diff --git a/deployment/puppet/osnailyfacter/modular/ceph/tasks.yaml b/deployment/puppet/osnailyfacter/modular/ceph/tasks.yaml index 2809e4dadd..bba4a8a750 100644 --- a/deployment/puppet/osnailyfacter/modular/ceph/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/ceph/tasks.yaml @@ -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: diff --git a/deployment/puppet/osnailyfacter/modular/cgroups/tasks.yaml b/deployment/puppet/osnailyfacter/modular/cgroups/tasks.yaml index 78666d3076..9f48b81db3 100644 --- a/deployment/puppet/osnailyfacter/modular/cgroups/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/cgroups/tasks.yaml @@ -1,7 +1,7 @@ - id: cgroups type: puppet version: 2.0.0 - role: '*' + role: ['/.*/'] requires: [post_deployment_start] required_for: [post_deployment_end] parameters: diff --git a/deployment/puppet/osnailyfacter/modular/openstack-haproxy/tasks.yaml b/deployment/puppet/osnailyfacter/modular/openstack-haproxy/tasks.yaml index 22c13aae4d..a3fd0268db 100644 --- a/deployment/puppet/osnailyfacter/modular/openstack-haproxy/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/openstack-haproxy/tasks.yaml @@ -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: diff --git a/deployment/puppet/osnailyfacter/modular/ssl/tasks.yaml b/deployment/puppet/osnailyfacter/modular/ssl/tasks.yaml index abde19f115..b3cf4fbb32 100644 --- a/deployment/puppet/osnailyfacter/modular/ssl/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/ssl/tasks.yaml @@ -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 diff --git a/deployment/puppet/osnailyfacter/modular/vmware/tasks.yaml b/deployment/puppet/osnailyfacter/modular/vmware/tasks.yaml index 215c22aad0..127b8a474c 100644 --- a/deployment/puppet/osnailyfacter/modular/vmware/tasks.yaml +++ b/deployment/puppet/osnailyfacter/modular/vmware/tasks.yaml @@ -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 diff --git a/tests/noop/spec/hosts/generate_vms/generate_vms_spec.rb b/tests/noop/spec/hosts/generate_vms/generate_vms_spec.rb index eaf4b44589..9643529a06 100644 --- a/tests/noop/spec/hosts/generate_vms/generate_vms_spec.rb +++ b/tests/noop/spec/hosts/generate_vms/generate_vms_spec.rb @@ -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