summaryrefslogtreecommitdiffstats
path: root/fuel/build/f_ntp/puppet/modules/opnfv/manifests/ntp.pp
blob: c5dce1be02a524116600314aa661ad783604ea4b (plain)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
# stefan.k.berg@ericsson.com
# jonas.bjurel@ericsson.com
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

# Class: Ntp
#
# Add Ntp content passed through astute.yaml into ntp.conf depending on the role
#
# Suitable yaml content:
# <begin>
# opnfv:
#   ntp:
#     controller: |
#      line 1
#      line 2
#    compute: |
#      line 1
#      line 2
# <end>
#
#
#

class opnfv::ntp(
  $file='/etc/ntp.conf'
) {

  case $::operatingsystem {
        centos, redhat: {
          $service_name = 'ntpd'
        }
        debian, ubuntu: {
          $service_name = 'ntp'
        }
  }

  if $::fuel_settings['role'] {
    if ($::fuel_settings['opnfv'] and
    $::fuel_settings['opnfv']['ntp']) {
      case $::fuel_settings['role'] {
        /controller/: {
          if $::fuel_settings['opnfv']['ntp']['controller'] {
            $template = 'opnfv/ntp.conf.controller.erb'
            $file_content = $::fuel_settings['opnfv']['ntp']['controller']
          }
        }
        /compute/:    {
          if $::fuel_settings['opnfv']['ntp']['compute'] {
            $template = 'opnfv/ntp.conf.compute.erb'
            $file_content = $::fuel_settings['opnfv']['ntp']['compute']
          }
        }
      }
    }
  }

  if $file_content {
    package { 'ntp':
      ensure => installed,
    }

    file { $file:
      content => template($template),
      notify  => Service['ntp'],
    }

    service { 'ntp':
      ensure  => running,
      name    => $service_name,
      enable  => true,
      require => [ Package['ntp'], File[$file]]
    }
  }
}