dev/provisioning/modules/mysql/manifests/server/mysqltuner.pp
author ymh <ymh.work@gmail.com>
Fri, 15 Jan 2016 15:35:00 +0100
changeset 28 b0b56e0f8c7f
permissions -rw-r--r--
Add contributor edition - added viaf resolver - improve contributors list display - add update of document objects - propagate update to back office - update back office - add bo-client to back office - setup language initializer - add options mechanism - add language information in language list - add lexvo resolver service + api - add language and lexvo resolver to js app - correct env template - refresh bootstrap - download google font - add version information - update dev virtual machine to centos7 - add a readme + clean folders - add local .env file to start commands

#
class mysql::server::mysqltuner(
  $ensure  = 'present',
  $version = 'v1.3.0',
  $source  = undef,
) {

  if $source {
    $_version = $source
    $_source  = $source
  } else {
    $_version = $version
    $_source  = "https://github.com/major/MySQLTuner-perl/raw/${version}/mysqltuner.pl"
  }

  if $ensure == 'present' {
    # $::puppetversion doesn't exist in puppet 4.x so would break strict
    # variables
    if ! $::settings::strict_variables {
      $_puppetversion = $::puppetversion
    } else {
      # defined only works with puppet >= 3.5.0, so don't use it unless we're
      # actually using strict variables
      $_puppetversion = defined('$puppetversion') ? {
        true    => $::puppetversion,
        default => undef,
      }
    }
    # see https://tickets.puppetlabs.com/browse/ENTERPRISE-258
    if $_puppetversion and $_puppetversion =~ /Puppet Enterprise/ and versioncmp($_puppetversion, '3.8.0') < 0 {
      class { 'staging':
        path => '/opt/mysql_staging',
      }
    } else {
      class { 'staging': }
    }

    staging::file { "mysqltuner-${_version}":
      source => $_source,
    }
    file { '/usr/local/bin/mysqltuner':
      ensure  => $ensure,
      mode    => '0550',
      source  => "${::staging::path}/mysql/mysqltuner-${_version}",
      require => Staging::File["mysqltuner-${_version}"],
    }
  } else {
    file { '/usr/local/bin/mysqltuner':
      ensure => $ensure,
    }
  }
}