Initial Chef repository
This commit is contained in:
5
cookbooks/mysql2_chef_gem/libraries/matchers.rb
Normal file
5
cookbooks/mysql2_chef_gem/libraries/matchers.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
if defined?(ChefSpec)
|
||||
def install_mysql2_chef_gem(resource_name)
|
||||
ChefSpec::Matchers::ResourceMatcher.new(:mysql2_chef_gem, :install, resource_name)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,37 @@
|
||||
class Chef
|
||||
class Provider
|
||||
class Mysql2ChefGem
|
||||
class Mariadb < Chef::Provider::LWRPBase
|
||||
use_inline_resources if defined?(use_inline_resources)
|
||||
|
||||
def whyrun_supported?
|
||||
true
|
||||
end
|
||||
|
||||
action :install do
|
||||
recipe_eval do
|
||||
run_context.include_recipe 'build-essential::default'
|
||||
end
|
||||
|
||||
# As a recipe: must rely on global node attributes
|
||||
recipe_eval do
|
||||
run_context.include_recipe 'mariadb::client'
|
||||
end
|
||||
|
||||
gem_package 'mysql2' do
|
||||
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
|
||||
version new_resource.gem_version
|
||||
action :install
|
||||
end
|
||||
end
|
||||
|
||||
action :remove do
|
||||
gem_package 'mysql2' do
|
||||
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
|
||||
action :remove
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,37 @@
|
||||
class Chef
|
||||
class Provider
|
||||
class Mysql2ChefGem
|
||||
class Mysql < Chef::Provider::LWRPBase
|
||||
include Chef::DSL::IncludeRecipe
|
||||
use_inline_resources if defined?(use_inline_resources)
|
||||
|
||||
def whyrun_supported?
|
||||
true
|
||||
end
|
||||
|
||||
action :install do
|
||||
include_recipe 'build-essential::default'
|
||||
|
||||
# As a resource: can pass version from calling recipe
|
||||
mysql_client 'default' do
|
||||
version new_resource.client_version
|
||||
action :create
|
||||
end
|
||||
|
||||
gem_package 'mysql2' do
|
||||
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
|
||||
version new_resource.gem_version
|
||||
action :install
|
||||
end
|
||||
end
|
||||
|
||||
action :remove do
|
||||
gem_package 'mysql2' do
|
||||
gem_binary RbConfig::CONFIG['bindir'] + '/gem'
|
||||
action :remove
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,15 @@
|
||||
require 'chef/resource/lwrp_base'
|
||||
|
||||
class Chef
|
||||
class Resource
|
||||
class Mysql2ChefGem < Chef::Resource::LWRPBase
|
||||
self.resource_name = :mysql2_chef_gem
|
||||
actions :install, :remove
|
||||
default_action :install
|
||||
|
||||
attribute :mysql2_chef_gem_name, kind_of: String, name_attribute: true, required: true
|
||||
attribute :gem_version, kind_of: String, default: '0.3.17'
|
||||
attribute :client_version, kind_of: String, default: nil
|
||||
end
|
||||
end
|
||||
end
|
||||
17
cookbooks/mysql2_chef_gem/libraries/z_provider_mapping.rb
Normal file
17
cookbooks/mysql2_chef_gem/libraries/z_provider_mapping.rb
Normal file
@@ -0,0 +1,17 @@
|
||||
#########
|
||||
# mysql2_chef_gem
|
||||
#########
|
||||
Chef::Platform.set platform: :amazon, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :centos, version: '< 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :centos, version: '>= 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :debian, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :fedora, version: '< 19', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :fedora, version: '>= 19', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :omnios, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :redhat, version: '< 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :redhat, version: '>= 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :scientific, version: '< 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :scientific, version: '>= 7.0', resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :smartos, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :suse, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Chef::Platform.set platform: :ubuntu, resource: :mysql2_chef_gem, provider: Chef::Provider::Mysql2ChefGem::Mysql
|
||||
Reference in New Issue
Block a user