hapi-fhir/vagrant/chef/cookbooks/mysql/libraries/resource_mysql_service.rb

137 lines
4.0 KiB
Ruby

require 'chef/resource/lwrp_base'
require_relative 'helpers'
class Chef
class Resource
class MysqlService < Chef::Resource::LWRPBase
self.resource_name = :mysql_service
actions :create, :restart, :reload
default_action :create
attribute :allow_remote_root, :kind_of => [TrueClass, FalseClass], :default => false
attribute :data_dir, :kind_of => String, :default => nil
attribute :package_name, :kind_of => String, :default => nil
attribute :port, :kind_of => String, :default => '3306'
attribute :remove_anonymous_users, :kind_of => [TrueClass, FalseClass], :default => true
attribute :remove_test_database, :kind_of => [TrueClass, FalseClass], :default => true
attribute :root_network_acl, :kind_of => Array, :default => []
attribute :server_debian_password, :kind_of => String, :default => 'gnuslashlinux4ev4r'
attribute :server_repl_password, :kind_of => String, :default => nil
attribute :server_root_password, :kind_of => String, :default => 'ilikerandompasswords'
attribute :service_name, :kind_of => String, :name_attribute => true
attribute :template_source, :kind_of => String, :default => nil
attribute :version, :kind_of => String, :default => nil
attribute :package_version, :kind_of => String, :default => nil
attribute :package_action, :kind_of => String, :default => nil
end
include Opscode::Mysql::Helpers
def parsed_allow_remote_root
return allow_remote_root unless allow_remote_root.nil?
end
def parsed_data_dir
return data_dir if data_dir
case node['platform_family']
when 'rhel', 'fedora', 'suse', 'debian', 'omnios'
data_dir = '/var/lib/mysql'
when 'smartos'
data_dir = '/opt/local/lib/mysql'
when 'freebsd'
data_dir = '/var/db/mysql'
end
data_dir
end
def parsed_package_name
return package_name if package_name
package_name_for(
node['platform'],
node['platform_family'],
node['platform_version'],
parsed_version
)
end
def parsed_package_version
return package_version if package_version
end
def parsed_package_action
return package_action if package_action
end
def parsed_port
return port if port
end
def parsed_remove_anonymous_users
return remove_anonymous_users unless remove_anonymous_users.nil?
end
def parsed_remove_test_database
return remove_test_database unless remove_test_database.nil?
end
def parsed_root_network_acl
return root_network_acl if root_network_acl
end
def parsed_server_debian_password
return server_debian_password if server_debian_password
end
def parsed_server_repl_password
return server_repl_password if server_repl_password
end
def parsed_server_root_password
return server_root_password if server_root_password
end
def parsed_service_name
return service_name if service_name
end
def parsed_template_source
return template_source if template_source
end
def parsed_version
return version if version
case node['platform_family']
when 'rhel'
case node['platform_version'].to_i
when 5
default_version = '5.0'
when 2013, 6
default_version = '5.1'
when 2014, 7
default_version = '5.5'
end
when 'fedora'
default_version = '5.5'
when 'suse'
default_version = '5.5'
when 'debian'
return '5.1' if node['platform_version'].to_i == 6
return '5.5' if node['platform_version'].to_i == 7
case node['platform_version']
when 'jessie/sid', '12.04', '13.04', '13.10', '14.04'
default_version = '5.5'
when '10.04'
default_version = '5.1'
end
when 'smartos'
default_version = '5.5'
when 'omnios'
default_version = '5.5'
when 'freebsd'
default_version = '5.5'
end
default_version
end
end
end