File: api.pp

package info (click to toggle)
puppet-module-vmms 1.0.2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 172 kB
  • sloc: ruby: 89; makefile: 11; sh: 10; python: 5
file content (61 lines) | stat: -rw-r--r-- 1,617 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# == Class: vmms::api
#
# Installs & configure the VMMS API service
#
# === Parameters
#
# [*enabled*]
#   (optional) Should the service be enabled.
#   Defaults to 'true'.
#
# [*manage_service*]
#   (optional) Whether the service should be managed by Puppet.
#   Defaults to 'true'.
#
# [*package_ensure*]
#    (Optional) Ensure state for package.
#    Defaults to present
#
# [*service_name*]
#   (optional) Name of the service that will be providing the
#   server functionality of vmms-api.
#   Defaults to '$::vmms::params::api_service_name'
#
class vmms::api (
  Boolean $enabled                 = true,
  Boolean $manage_service          = true,
  $package_ensure                  = present,
  $service_name                    = $::vmms::params::api_service_name,
) inherits vmms::params {

  include vmms::deps
  include vmms::params

  package { 'vmms-api':
    ensure => $package_ensure,
    name   => $::vmms::params::api_package_name,
    tag    => ['openstack', 'vmms-package'],
  }

  if $manage_service {
    if $enabled {
      $service_ensure = 'running'
    } else {
      $service_ensure = 'stopped'
    }

    if $service_name == $::vmms::params::api_service_name {
      service { 'vmms-api':
        ensure     => $service_ensure,
        name       => $::vmms::params::api_service_name,
        enable     => $enabled,
        hasstatus  => true,
        hasrestart => true,
        tag        => 'vmms-service',
      }
    } else {
      fail("Invalid service_name. Either vmms/openstack-vmms-api for running \
 as a standalone service, or httpd for being run by a httpd server")
    }
  }
}