dev/provisioning/modules/mysql/manifests/server/mysqltuner.pp
changeset 28 b0b56e0f8c7f
equal deleted inserted replaced
27:a2342f26c9de 28:b0b56e0f8c7f
       
     1 #
       
     2 class mysql::server::mysqltuner(
       
     3   $ensure  = 'present',
       
     4   $version = 'v1.3.0',
       
     5   $source  = undef,
       
     6 ) {
       
     7 
       
     8   if $source {
       
     9     $_version = $source
       
    10     $_source  = $source
       
    11   } else {
       
    12     $_version = $version
       
    13     $_source  = "https://github.com/major/MySQLTuner-perl/raw/${version}/mysqltuner.pl"
       
    14   }
       
    15 
       
    16   if $ensure == 'present' {
       
    17     # $::puppetversion doesn't exist in puppet 4.x so would break strict
       
    18     # variables
       
    19     if ! $::settings::strict_variables {
       
    20       $_puppetversion = $::puppetversion
       
    21     } else {
       
    22       # defined only works with puppet >= 3.5.0, so don't use it unless we're
       
    23       # actually using strict variables
       
    24       $_puppetversion = defined('$puppetversion') ? {
       
    25         true    => $::puppetversion,
       
    26         default => undef,
       
    27       }
       
    28     }
       
    29     # see https://tickets.puppetlabs.com/browse/ENTERPRISE-258
       
    30     if $_puppetversion and $_puppetversion =~ /Puppet Enterprise/ and versioncmp($_puppetversion, '3.8.0') < 0 {
       
    31       class { 'staging':
       
    32         path => '/opt/mysql_staging',
       
    33       }
       
    34     } else {
       
    35       class { 'staging': }
       
    36     }
       
    37 
       
    38     staging::file { "mysqltuner-${_version}":
       
    39       source => $_source,
       
    40     }
       
    41     file { '/usr/local/bin/mysqltuner':
       
    42       ensure  => $ensure,
       
    43       mode    => '0550',
       
    44       source  => "${::staging::path}/mysql/mysqltuner-${_version}",
       
    45       require => Staging::File["mysqltuner-${_version}"],
       
    46     }
       
    47   } else {
       
    48     file { '/usr/local/bin/mysqltuner':
       
    49       ensure => $ensure,
       
    50     }
       
    51   }
       
    52 }