class Chef class Provider class MysqlService class Sysvinit < Chef::Provider::MysqlService action :start do template "#{new_resource.name} :start /etc/init.d/#{mysql_name}" do path "/etc/init.d/#{mysql_name}" source 'sysvinit/mysqld.erb' owner 'root' group 'root' mode '0755' variables( config: new_resource, defaults_file: defaults_file, error_log: error_log, mysql_name: mysql_name, mysqladmin_bin: mysqladmin_bin, mysqld_safe_bin: mysqld_safe_bin, pid_file: pid_file, scl_name: scl_name ) cookbook 'mysql' action :create end service "#{new_resource.name} :start #{mysql_name}" do service_name mysql_name provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat' provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian' supports restart: true, status: true action [:enable, :start] end end action :stop do service "#{new_resource.name} :stop #{mysql_name}" do service_name mysql_name provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat' provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian' supports restart: true, status: true action [:stop] end end action :restart do service "#{new_resource.name} :restart #{mysql_name}" do service_name mysql_name provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat' provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian' supports restart: true action :restart end end action :reload do service "#{new_resource.name} :reload #{mysql_name}" do service_name mysql_name provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat' provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian' action :reload end end def create_stop_system_service service "#{new_resource.name} :create #{system_service_name}" do service_name system_service_name provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat' provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian' supports status: true action [:stop, :disable] end end def delete_stop_service service "#{new_resource.name} :delete #{mysql_name}" do service_name mysql_name provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat' provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian' supports status: true action [:disable, :stop] only_if { ::File.exist?("#{etc_dir}/init.d/#{mysql_name}") } end end end end end end