dev/provisioning/modules/mysql/manifests/server/service.pp
author ymh <ymh.work@gmail.com>
Tue, 20 Mar 2018 15:02:40 +0100
changeset 573 25f3d28f51b2
parent 146 dc4d1cdc47e0
permissions -rw-r--r--
Added tag 0.0.25 for changeset 190ae1dee68d

#
class mysql::server::service {
  $options = $mysql::server::options

  if $mysql::server::real_service_manage {
    if $mysql::server::real_service_enabled {
      $service_ensure = 'running'
    } else {
      $service_ensure = 'stopped'
    }
  } else {
    $service_ensure = undef
  }

  if $mysql::server::override_options and $mysql::server::override_options['mysqld'] and $mysql::server::override_options['mysqld']['user'] {
    $mysqluser = $mysql::server::override_options['mysqld']['user']
  } else {
    $mysqluser = $options['mysqld']['user']
  }

  if $options['mysqld']['log-error'] {
    file { $options['mysqld']['log-error']:
      ensure => present,
      owner  => $mysqluser,
      group  => $::mysql::server::mysql_group,
    }
  }

  if $mysql::server::real_service_manage {
    service { 'mysqld':
      ensure   => $service_ensure,
      name     => $mysql::server::service_name,
      enable   => $mysql::server::real_service_enabled,
      provider => $mysql::server::service_provider,
    }

    # only establish ordering between service and package if
    # we're managing the package.
    if $mysql::server::package_manage {
      Service['mysqld'] {
        require  => Package['mysql-server'],
      }
    }

    # only establish ordering between config file and service if
    # we're managing the config file.
    if $mysql::server::manage_config_file {
      File['mysql-config-file'] -> Service['mysqld']
    }

    if $mysql::server::override_options and $mysql::server::override_options['mysqld'] and $mysql::server::override_options['mysqld']['socket'] {
      $mysqlsocket = $mysql::server::override_options['mysqld']['socket']
    } else {
      $mysqlsocket = $options['mysqld']['socket']
    }

    exec { 'wait_for_mysql_socket_to_open':
      command   => "test -S ${mysqlsocket}",
      unless    => "test -S ${mysqlsocket}",
      tries     => '3',
      try_sleep => '10',
      require   => Service['mysqld'],
      path      => '/bin:/usr/bin',
    }
  }
}