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

202 lines
5.4 KiB
Ruby

module Opscode
module Mysql
module Helpers
def package_name_for(platform, platform_family, platform_version, version)
keyname = keyname_for(platform, platform_family, platform_version)
PlatformInfo.mysql_info[platform_family][keyname][version]['package_name']
rescue NoMethodError
nil
end
def keyname_for(platform, platform_family, platform_version)
case
when platform_family == 'rhel'
platform == 'amazon' ? platform_version : platform_version.to_i.to_s
when platform_family == 'suse'
platform_version
when platform_family == 'fedora'
platform_version
when platform_family == 'debian'
if platform == 'ubuntu'
platform_version
elsif platform_version =~ /sid$/
platform_version
else
platform_version.to_i.to_s
end
when platform_family == 'smartos'
platform_version
when platform_family == 'omnios'
platform_version
when platform_family == 'freebsd'
platform_version.to_i.to_s
end
rescue NoMethodError
nil
end
end
class PlatformInfo
def self.mysql_info
@mysql_info ||= {
'rhel' => {
'5' => {
'5.0' => {
'package_name' => 'mysql-server'
},
'5.1' => {
'package_name' => 'mysql51-mysql-server'
},
'5.5' => {
'package_name' => 'mysql55-mysql-server'
}
},
'6' => {
'5.1' => {
'package_name' => 'mysql-server'
},
'5.5' => {
'package_name' => 'mysql-community-server'
},
'5.6' => {
'package_name' => 'mysql-community-server'
}
},
'7' => {
'5.5' => {
'package_name' => 'mysql-community-server'
},
'5.6' => {
'package_name' => 'mysql-community-server'
}
},
'2013.03' => {
'5.5' => {
'package_name' => 'mysql-server'
}
},
'2013.09' => {
'5.1' => {
'package_name' => 'mysql-server'
},
'5.5' => {
'package_name' => 'mysql-community-server'
},
'5.6' => {
'package_name' => 'mysql-community-server'
}
},
'2014.03' => {
'5.1' => {
'package_name' => 'mysql51-server'
},
'5.5' => {
'package_name' => 'mysql-community-server'
},
'5.6' => {
'package_name' => 'mysql-community-server'
}
}
},
'fedora' => {
'19' => {
'5.5' => {
'package_name' => 'community-mysql-server'
}
},
'20' => {
'5.5' => {
'package_name' => 'community-mysql-server'
}
}
},
'suse' => {
'11.3' => {
'5.5' => {
'package_name' => 'mysql'
}
}
},
'debian' => {
'6' => {
'5.1' => {
'package_name' => 'mysql-server-5.1'
}
},
'7' => {
'5.5' => {
'package_name' => 'mysql-server-5.5'
}
},
'jessie/sid' => {
'5.5' => {
'package_name' => 'mysql-server-5.5'
}
},
'10.04' => {
'5.1' => {
'package_name' => 'mysql-server-5.1'
}
},
'12.04' => {
'5.5' => {
'package_name' => 'mysql-server-5.5'
}
},
'13.04' => {
'5.5' => {
'package_name' => 'mysql-server-5.5'
}
},
'13.10' => {
'5.5' => {
'package_name' => 'mysql-server-5.5'
}
},
'14.04' => {
'5.5' => {
'package_name' => 'mysql-server-5.5'
},
'5.6' => {
'package_name' => 'mysql-server-5.6'
}
}
},
'smartos' => {
'5.11' => {
'5.5' => {
'package_name' => 'mysql-server'
},
'5.6' => {
'package_name' => 'mysql-server'
}
}
},
'omnios' => {
'151006' => {
'5.5' => {
'package_name' => 'database/mysql-55'
},
'5.6' => {
'package_name' => 'database/mysql-56'
}
}
},
'freebsd' => {
'9' => {
'5.5' => {
'package_name' => 'mysql55-server'
}
},
'10' => {
'5.5' => {
'package_name' => 'mysql55-server'
}
}
}
}
end
end
end
end