Base ready
This commit is contained in:
105
ops/cookbooks/vendor/mysql/libraries/mysql_service.rb
vendored
Normal file
105
ops/cookbooks/vendor/mysql/libraries/mysql_service.rb
vendored
Normal file
@ -0,0 +1,105 @@
|
||||
module MysqlCookbook
|
||||
require_relative 'mysql_service_base'
|
||||
class MysqlService < MysqlServiceBase
|
||||
resource_name :mysql_service
|
||||
|
||||
# installation type and service_manager
|
||||
property :install_method, %w(package auto), default: 'auto', desired_state: false
|
||||
property :service_manager, %w(sysvinit upstart systemd auto), default: 'auto', desired_state: false
|
||||
|
||||
# mysql_server_installation
|
||||
property :version, String, default: lazy { default_major_version }, desired_state: false
|
||||
property :major_version, String, default: lazy { major_from_full(version) }, desired_state: false
|
||||
property :package_name, String, default: lazy { default_package_name }, desired_state: false
|
||||
property :package_options, [String, nil], desired_state: false
|
||||
property :package_version, [String, nil], default: nil, desired_state: false
|
||||
|
||||
################
|
||||
# Helper Methods
|
||||
################
|
||||
|
||||
def copy_properties_to(to, *properties)
|
||||
properties = self.class.properties.keys if properties.empty?
|
||||
properties.each do |p|
|
||||
# If the property is set on from, and exists on to, set the
|
||||
# property on to
|
||||
if to.class.properties.include?(p) && property_is_set?(p)
|
||||
to.send(p, send(p))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
action_class do
|
||||
def installation(&block)
|
||||
case new_resource.install_method
|
||||
when 'auto'
|
||||
install = mysql_server_installation(new_resource.name, &block)
|
||||
when 'package'
|
||||
install = mysql_server_installation_package(new_resource.name, &block)
|
||||
when 'none'
|
||||
Chef::Log.info('Skipping MySQL installation. Assuming it was handled previously.')
|
||||
return
|
||||
end
|
||||
copy_properties_to(install)
|
||||
install
|
||||
end
|
||||
|
||||
def svc_manager(&block)
|
||||
case new_resource.service_manager
|
||||
when 'auto'
|
||||
svc = mysql_service_manager(new_resource.name, &block)
|
||||
when 'sysvinit'
|
||||
svc = mysql_service_manager_sysvinit(new_resource.name, &block)
|
||||
when 'upstart'
|
||||
svc = mysql_service_manager_upstart(new_resource.name, &block)
|
||||
when 'systemd'
|
||||
svc = mysql_service_manager_systemd(new_resource.name, &block)
|
||||
end
|
||||
copy_properties_to(svc)
|
||||
svc
|
||||
end
|
||||
end
|
||||
|
||||
#########
|
||||
# Actions
|
||||
#########
|
||||
|
||||
action :create do
|
||||
installation do
|
||||
action :install
|
||||
end
|
||||
|
||||
svc_manager do
|
||||
action :create
|
||||
end
|
||||
end
|
||||
|
||||
action :start do
|
||||
svc_manager do
|
||||
action :start
|
||||
end
|
||||
end
|
||||
|
||||
action :delete do
|
||||
svc_manager do
|
||||
action :delete
|
||||
end
|
||||
|
||||
installation do
|
||||
action :delete
|
||||
end
|
||||
end
|
||||
|
||||
action :restart do
|
||||
svc_manager do
|
||||
action :restart
|
||||
end
|
||||
end
|
||||
|
||||
action :stop do
|
||||
svc_manager do
|
||||
action :stop
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user