]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/nova/manifests/params.pp
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / nova / manifests / params.pp
diff --git a/3rdparty/modules/nova/manifests/params.pp b/3rdparty/modules/nova/manifests/params.pp
new file mode 100644 (file)
index 0000000..647a2d9
--- /dev/null
@@ -0,0 +1,120 @@
+# == Class: nova::params
+#
+# These parameters need to be accessed from several locations and
+# should be considered to be constant
+class nova::params {
+
+  case $::osfamily {
+    'RedHat': {
+      # package names
+      $api_package_name             = 'openstack-nova-api'
+      $cells_package_name           = 'openstack-nova-cells'
+      $cert_package_name            = 'openstack-nova-cert'
+      $common_package_name          = 'openstack-nova-common'
+      $compute_package_name         = 'openstack-nova-compute'
+      $conductor_package_name       = 'openstack-nova-conductor'
+      $consoleauth_package_name     = 'openstack-nova-console'
+      $doc_package_name             = 'openstack-nova-doc'
+      $libvirt_package_name         = 'libvirt'
+      $network_package_name         = 'openstack-nova-network'
+      $numpy_package_name           = 'numpy'
+      $objectstore_package_name     = 'openstack-nova-objectstore'
+      $scheduler_package_name       = 'openstack-nova-scheduler'
+      $tgt_package_name             = 'scsi-target-utils'
+      $vncproxy_package_name        = 'openstack-nova-novncproxy'
+      $serialproxy_package_name     = 'openstack-nova-serialproxy'
+      $spicehtml5proxy_package_name = 'openstack-nova-console'
+      # service names
+      $api_service_name             = 'openstack-nova-api'
+      $cells_service_name           = 'openstack-nova-cells'
+      $cert_service_name            = 'openstack-nova-cert'
+      $compute_service_name         = 'openstack-nova-compute'
+      $conductor_service_name       = 'openstack-nova-conductor'
+      $consoleauth_service_name     = 'openstack-nova-consoleauth'
+      $libvirt_service_name         = 'libvirtd'
+      $network_service_name         = 'openstack-nova-network'
+      $objectstore_service_name     = 'openstack-nova-objectstore'
+      $scheduler_service_name       = 'openstack-nova-scheduler'
+      $tgt_service_name             = 'tgtd'
+      $vncproxy_service_name        = 'openstack-nova-novncproxy'
+      $serialproxy_service_name     = 'openstack-nova-serialproxy'
+      $spicehtml5proxy_service_name = 'openstack-nova-spicehtml5proxy'
+      # redhat specific config defaults
+      $root_helper                  = 'sudo nova-rootwrap'
+      $lock_path                    = '/var/lib/nova/tmp'
+      $nova_log_group               = 'nova'
+      case $::operatingsystem {
+        'Fedora': {
+          $special_service_provider = undef
+        }
+        'RedHat', 'CentOS', 'Scientific': {
+          if ($::operatingsystemmajrelease < 7) {
+            $special_service_provider = 'init'
+          } else {
+            $special_service_provider = undef
+          }
+        }
+        default: {
+          $special_service_provider = 'init'
+        }
+      }
+    }
+    'Debian': {
+      # package names
+      $api_package_name             = 'nova-api'
+      $cells_package_name           = 'nova-cells'
+      $cert_package_name            = 'nova-cert'
+      $common_package_name          = 'nova-common'
+      $compute_package_name         = 'nova-compute'
+      $conductor_package_name       = 'nova-conductor'
+      $consoleauth_package_name     = 'nova-consoleauth'
+      $doc_package_name             = 'nova-doc'
+      $libvirt_package_name         = 'libvirt-bin'
+      $network_package_name         = 'nova-network'
+      $numpy_package_name           = 'python-numpy'
+      $objectstore_package_name     = 'nova-objectstore'
+      $scheduler_package_name       = 'nova-scheduler'
+      $tgt_package_name             = 'tgt'
+      $serialproxy_package_name     = 'nova-serialproxy'
+      # service names
+      $api_service_name             = 'nova-api'
+      $cells_service_name           = 'nova-cells'
+      $cert_service_name            = 'nova-cert'
+      $compute_service_name         = 'nova-compute'
+      $conductor_service_name       = 'nova-conductor'
+      $consoleauth_service_name     = 'nova-consoleauth'
+      $libvirt_service_name         = 'libvirt-bin'
+      $network_service_name         = 'nova-network'
+      $objectstore_service_name     = 'nova-objectstore'
+      $scheduler_service_name       = 'nova-scheduler'
+      $vncproxy_service_name        = 'nova-novncproxy'
+      $serialproxy_service_name     = 'nova-serialproxy'
+      $tgt_service_name             = 'tgt'
+      # debian specific nova config
+      $root_helper                  = 'sudo nova-rootwrap'
+      $lock_path                    = '/var/lock/nova'
+      case $::operatingsystem {
+        'Debian': {
+          $spicehtml5proxy_package_name = 'nova-consoleproxy'
+          $spicehtml5proxy_service_name = 'nova-spicehtml5proxy'
+          $vncproxy_package_name    = 'nova-consoleproxy'
+          # Use default provider on Debian
+          $special_service_provider = undef
+          $nova_log_group               = 'nova'
+        }
+        default: {
+          $spicehtml5proxy_package_name = 'nova-spiceproxy'
+          $spicehtml5proxy_service_name = 'nova-spiceproxy'
+          $vncproxy_package_name    = 'nova-novncproxy'
+          # some of the services need to be started form the special upstart provider
+          $special_service_provider = 'upstart'
+          $nova_log_group               = 'adm'
+        }
+      }
+    }
+    default: {
+      fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat and Debian")
+    }
+  }
+
+}