Normalizing this cookbook

This cookbook needed to be brought up to the standard of the other
cookbooks in the repo.

* Adding .gitreview
* Normalizing .rubocop.yml
* Normalizing Gemfile
* Normalizing metadata.rb
* Normalizing .gitignore
* Adding specs/ directory and spec_helper.rb
* Fixed all rubocop errors

Change-Id: Ica7c525aae5fbd5c441ce50cff36046c678046d6
Partial-Bug: 1348243
This commit is contained in:
galstrom21 2014-07-24 11:27:28 -05:00
parent 44e536f752
commit 899ec191c9
30 changed files with 378 additions and 83 deletions

21
.gitignore vendored
View File

@ -1,17 +1,8 @@
.vagrant .bundle/
Berksfile.lock .cookbooks/
*~
*#
.#*
\#*#
.*.sw[a-z]
*.un~
/cookbooks
# Bundler
Gemfile.lock
bin/*
.bundle/*
.kitchen/ .kitchen/
.kitchen.local.yml .kitchen.local.yml
.vagrant/
.coverage/
Berksfile.lock
Vagrantfile

4
.gitreview Normal file
View File

@ -0,0 +1,4 @@
[gerrit]
host=review.openstack.org
port=29418
project=stackforge/cookbook-ceph.git

View File

@ -1,28 +1,24 @@
AllCops: AllCops:
Includes: Includes:
- Berksfile - metadata.rb
- Gemfile - Gemfile
- Rakefile - attributes/**
- Thorfile - libraries/**
- Guardfile - providers/**
Excludes: - recipes/**
- vendor/** - resources/**
- spec/**
ClassLength:
Enabled: false
Documentation:
Enabled: false
Encoding: Encoding:
Exclude:
- metadata.rb
- Gemfile
NumericLiterals:
Enabled: false Enabled: false
HashSyntax:
Enabled: false
LineLength: LineLength:
Enabled: false Enabled: False
MethodLength:
Enabled: false
SignalException:
Enabled: false
TrailingComma:
Enabled: false
WordArray: WordArray:
Enabled: false MinSize: 3

14
Gemfile
View File

@ -1,12 +1,12 @@
source 'https://rubygems.org' source 'https://rubygems.org'
gem 'chef', '~> 11' gem 'chef', '~> 11.8'
gem 'berkshelf', '~> 2.0.10' gem 'berkshelf', '~> 2.0.18'
gem 'chefspec', '~> 3.4.0'
group :test do gem 'rspec', '~> 2.14.1'
gem 'foodcritic', '~> 3.0' gem 'foodcritic', '~> 3.0.3'
gem 'rubocop' gem 'strainer'
end gem 'rubocop', '~> 0.18.1'
group :integration do group :integration do
gem 'test-kitchen', '~> 1.1.1' gem 'test-kitchen', '~> 1.1.1'

245
Gemfile.lock Normal file
View File

@ -0,0 +1,245 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (3.2.19)
i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0)
addressable (2.3.6)
akami (1.2.2)
gyoku (>= 0.4.0)
nokogiri
ast (2.0.0)
berkshelf (2.0.18)
activesupport (~> 3.2.0)
addressable (~> 2.3.4)
buff-shell_out (~> 0.1)
chozo (>= 0.6.1)
faraday (~> 0.8.5)
hashie (~> 2.0)
minitar (~> 0.5.4)
rbzip2 (~> 0.2.0)
retryable (~> 1.3.3)
ridley (~> 1.7.0)
solve (~> 0.8.2)
thor (~> 0.18.0)
buff-config (0.4.0)
buff-extensions (~> 0.3)
varia_model (~> 0.1)
buff-extensions (0.5.0)
buff-ignore (1.1.1)
buff-platform (0.1.0)
buff-ruby_engine (0.1.0)
buff-shell_out (0.1.1)
buff-ruby_engine (~> 0.1.0)
builder (3.2.2)
celluloid (0.15.2)
timers (~> 1.1.0)
celluloid-io (0.15.0)
celluloid (>= 0.15.0)
nio4r (>= 0.5.0)
chef (11.12.8)
chef-zero (>= 2.0.2, < 2.1)
diff-lcs (~> 1.2, >= 1.2.4)
erubis (~> 2.7)
highline (~> 1.6, >= 1.6.9)
json (>= 1.4.4, <= 1.8.1)
mime-types (~> 1.16)
mixlib-authentication (~> 1.3)
mixlib-cli (~> 1.4)
mixlib-config (~> 2.0)
mixlib-log (~> 1.3)
mixlib-shellout (~> 1.4)
net-ssh (~> 2.6)
net-ssh-multi (~> 1.1)
ohai (~> 7.0.4)
pry (~> 0.9)
rest-client (>= 1.0.4, < 1.7.0)
yajl-ruby (~> 1.1)
chef-zero (2.0.2)
hashie (~> 2.0)
json
mixlib-log (~> 1.3)
rack
chefspec (3.4.0)
chef (~> 11.0)
fauxhai (~> 2.0)
rspec (~> 2.14)
chozo (0.6.1)
activesupport (>= 3.2.0)
hashie (>= 2.0.2)
multi_json (>= 1.3.0)
coderay (1.1.0)
diff-lcs (1.2.5)
erubis (2.7.0)
faraday (0.8.9)
multipart-post (~> 1.2.0)
fauxhai (2.2.0)
net-ssh
ohai
ffi (1.9.3)
foodcritic (3.0.3)
erubis
gherkin (~> 2.11.7)
nokogiri (~> 1.5.4)
rake
treetop (~> 1.4.10)
yajl-ruby (~> 1.1.0)
gherkin (2.11.8)
multi_json (~> 1.3)
gssapi (1.0.3)
ffi (>= 1.0.1)
gyoku (1.1.1)
builder (>= 2.1.2)
hashie (2.1.2)
highline (1.6.21)
httpclient (2.4.0)
httpi (0.9.7)
rack
i18n (0.6.11)
ipaddress (0.8.0)
json (1.8.1)
kitchen-vagrant (0.15.0)
test-kitchen (~> 1.0)
little-plugger (1.1.3)
logging (1.8.2)
little-plugger (>= 1.1.3)
multi_json (>= 1.8.4)
method_source (0.8.2)
mime-types (1.25.1)
minitar (0.5.4)
mixlib-authentication (1.3.0)
mixlib-log
mixlib-cli (1.5.0)
mixlib-config (2.1.0)
mixlib-log (1.6.0)
mixlib-shellout (1.4.0)
multi_json (1.10.1)
multipart-post (1.2.0)
net-http-persistent (2.9.4)
net-scp (1.2.1)
net-ssh (>= 2.6.5)
net-ssh (2.9.1)
net-ssh-gateway (1.2.0)
net-ssh (>= 2.6.5)
net-ssh-multi (1.2.0)
net-ssh (>= 2.6.5)
net-ssh-gateway (>= 1.2.0)
nio4r (1.0.0)
nokogiri (1.5.11)
nori (1.1.5)
ohai (7.0.4)
ipaddress
mime-types (~> 1.16)
mixlib-cli
mixlib-config (~> 2.0)
mixlib-log
mixlib-shellout (~> 1.2)
systemu (~> 2.5.2)
yajl-ruby
parser (2.1.9)
ast (>= 1.1, < 3.0)
slop (~> 3.4, >= 3.4.5)
polyglot (0.3.5)
powerpack (0.0.9)
pry (0.10.0)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
rack (1.5.2)
rainbow (2.0.0)
rake (10.3.2)
rbzip2 (0.2.0)
rdoc (4.1.1)
json (~> 1.4)
rest-client (1.6.8)
mime-types (~> 1.16)
rdoc (>= 2.4.2)
retryable (1.3.5)
ridley (1.7.1)
addressable
buff-config (~> 0.2)
buff-extensions (~> 0.3)
buff-ignore (~> 1.1)
buff-shell_out (~> 0.1)
celluloid (~> 0.15)
celluloid-io (~> 0.15)
erubis
faraday (>= 0.8.4)
hashie (>= 2.0.2)
json (>= 1.7.7)
mixlib-authentication (>= 1.3.0)
net-http-persistent (>= 2.8)
net-ssh
retryable
solve (>= 0.4.4)
varia_model (~> 0.1)
winrm (~> 1.1.0)
rspec (2.14.1)
rspec-core (~> 2.14.0)
rspec-expectations (~> 2.14.0)
rspec-mocks (~> 2.14.0)
rspec-core (2.14.8)
rspec-expectations (2.14.5)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.14.6)
rubocop (0.18.1)
json (>= 1.7.7, < 2)
parser (~> 2.1.3)
powerpack (~> 0.0.6)
rainbow (>= 1.99.1, < 3.0)
rubyntlm (0.1.1)
safe_yaml (0.9.7)
savon (0.9.5)
akami (~> 1.0)
builder (>= 2.1.2)
gyoku (>= 0.4.0)
httpi (~> 0.9)
nokogiri (>= 1.4.0)
nori (~> 1.0)
wasabi (~> 1.0)
slop (3.6.0)
solve (0.8.2)
strainer (3.4.0)
berkshelf (>= 2.0, < 4.0)
buff-platform (~> 0.1)
systemu (2.5.2)
test-kitchen (1.1.1)
mixlib-shellout (~> 1.2)
net-scp (~> 1.1)
net-ssh (~> 2.7)
safe_yaml (~> 0.9)
thor (~> 0.18)
thor (0.18.1)
timers (1.1.0)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
uuidtools (2.1.4)
varia_model (0.3.2)
buff-extensions (~> 0.2)
hashie (>= 2.0.2)
wasabi (1.0.0)
nokogiri (>= 1.4.0)
winrm (1.1.3)
gssapi (~> 1.0.0)
httpclient (~> 2.2, >= 2.2.0.2)
logging (~> 1.6, >= 1.6.1)
nokogiri (~> 1.5)
rubyntlm (~> 0.1.1)
savon (= 0.9.5)
uuidtools (~> 2.1.2)
yajl-ruby (1.1.0)
PLATFORMS
ruby
DEPENDENCIES
berkshelf (~> 2.0.18)
chef (~> 11.8)
chefspec (~> 3.4.0)
foodcritic (~> 3.0.3)
kitchen-vagrant (~> 0.14)
rspec (~> 2.14.1)
rubocop (~> 0.18.1)
strainer
test-kitchen (~> 1.1.1)

View File

@ -1 +1,3 @@
# encoding: UTF-8
default['ceph']['cephfs_mount'] = '/ceph' default['ceph']['cephfs_mount'] = '/ceph'

View File

@ -1,2 +1,4 @@
# encoding: UTF-8
default['ceph']['config'] = {} default['ceph']['config'] = {}
default['ceph']['config-sections'] = {} default['ceph']['config-sections'] = {}

View File

@ -1,2 +1,4 @@
# encoding: UTF-8
default['ceph']['install_debug'] = true default['ceph']['install_debug'] = true
default['ceph']['encrypted_data_bags'] = false default['ceph']['encrypted_data_bags'] = false

View File

@ -1,3 +1,5 @@
# encoding: UTF-8
case node['platform'] case node['platform']
when 'ubuntu' when 'ubuntu'
default['ceph']['mds']['init_style'] = 'upstart' default['ceph']['mds']['init_style'] = 'upstart'

View File

@ -1,3 +1,5 @@
# encoding: UTF-8
case node['platform'] case node['platform']
when 'ubuntu' when 'ubuntu'
default['ceph']['mon']['init_style'] = 'upstart' default['ceph']['mon']['init_style'] = 'upstart'

View File

@ -1,3 +1,5 @@
# encoding: UTF-8
case node['platform'] case node['platform']
when 'ubuntu' when 'ubuntu'
default['ceph']['osd']['init_style'] = 'upstart' default['ceph']['osd']['init_style'] = 'upstart'

View File

@ -1,3 +1,4 @@
# encoding: UTF-8
# #
# Cookbook Name:: ceph # Cookbook Name:: ceph
# Attributes:: radosgw # Attributes:: radosgw

View File

@ -1,3 +1,5 @@
# encoding: UTF-8
default['ceph']['branch'] = 'stable' # Can be stable, testing or dev. default['ceph']['branch'] = 'stable' # Can be stable, testing or dev.
# Major release version to install or gitbuilder branch # Major release version to install or gitbuilder branch
default['ceph']['version'] = 'dumpling' default['ceph']['version'] = 'dumpling'

View File

@ -1,3 +1,5 @@
# encoding: UTF-8
require 'ipaddr' require 'ipaddr'
require 'json' require 'json'
@ -5,7 +7,7 @@ def crowbar?
!defined?(Chef::Recipe::Barclamp).nil? !defined?(Chef::Recipe::Barclamp).nil?
end end
def get_mon_nodes(extra_search = nil) def get_mon_nodes(extra_search = nil) # rubocop:disable MethodLength
if crowbar? if crowbar?
mon_roles = search(:role, 'name:crowbar-* AND run_list:role\[ceph-mon\]') mon_roles = search(:role, 'name:crowbar-* AND run_list:role\[ceph-mon\]')
unless mon_roles.empty? unless mon_roles.empty?
@ -28,7 +30,7 @@ end
# 1. We look if the network is IPv6 or IPv4 # 1. We look if the network is IPv6 or IPv4
# 2. We look for a route matching the network # 2. We look for a route matching the network
# 3. We grab the IP and return it with the port # 3. We grab the IP and return it with the port
def find_node_ip_in_network(network, nodeish = nil) def find_node_ip_in_network(network, nodeish = nil) # rubocop:disable MethodLength
nodeish = node unless nodeish nodeish = node unless nodeish
net = IPAddr.new(network) net = IPAddr.new(network)
nodeish['network']['interfaces'].each do |iface, addrs| nodeish['network']['interfaces'].each do |iface, addrs|
@ -43,7 +45,7 @@ def find_node_ip_in_network(network, nodeish = nil)
nil nil
end end
def mon_addresses def mon_addresses # rubocop:disable MethodLength
mon_ips = [] mon_ips = []
if File.exist?("/var/run/ceph/ceph-mon.#{node['hostname']}.asok") if File.exist?("/var/run/ceph/ceph-mon.#{node['hostname']}.asok")

View File

@ -1,12 +1,12 @@
name 'ceph' name 'ceph'
maintainer 'Kyle Bader' maintainer 'Kyle Bader'
maintainer_email 'kyle.bader@dreamhost.com' maintainer_email 'kyle.bader@dreamhost.com'
license 'Apache 2.0' license 'Apache 2.0'
description 'Installs/Configures the Ceph distributed filesystem' description 'Installs/Configures the Ceph distributed filesystem'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '0.2.1' version '0.2.1'
depends 'apache2', '>= 1.1.12' depends 'apache2', '>= 1.1.12'
depends 'apt' depends 'apt'
depends 'yum', '>= 3.0' depends 'yum', '>= 3.0'
depends 'yum-epel' depends 'yum-epel'

View File

@ -1,3 +1,5 @@
# encoding: UTF-8
use_inline_resources use_inline_resources
def whyrun_supported? def whyrun_supported?
@ -28,7 +30,7 @@ def load_current_resource
@current_resource.as_keyring(@new_resource.as_keyring) @current_resource.as_keyring(@new_resource.as_keyring)
@current_resource.keyname(@new_resource.keyname || "client.#{current_resource.name}.#{node['hostname']}") @current_resource.keyname(@new_resource.keyname || "client.#{current_resource.name}.#{node['hostname']}")
@current_resource.caps(get_caps(@current_resource.keyname)) @current_resource.caps(get_caps(@current_resource.keyname))
default_filename = "/etc/ceph/ceph.client.#{@new_resource.name}.#{node['hostname']}.#{@new_resource.as_keyring ? "keyring" : "secret"}" default_filename = "/etc/ceph/ceph.client.#{@new_resource.name}.#{node['hostname']}.#{@new_resource.as_keyring ? 'keyring' : 'secret'}"
@current_resource.filename(@new_resource.filename || default_filename) @current_resource.filename(@new_resource.filename || default_filename)
@current_resource.key(get_new_key(@current_resource.keyname)) @current_resource.key(get_new_key(@current_resource.keyname))
@current_resource.caps_match = true if @current_resource.caps == @new_resource.caps @current_resource.caps_match = true if @current_resource.caps == @new_resource.caps
@ -51,7 +53,7 @@ def get_caps(keyname)
caps caps
end end
def auth_set_key(keyname, caps) def auth_set_key(keyname, caps) # rubocop:disable MethodLength
# find the monitor secret # find the monitor secret
mon_secret = '' mon_secret = ''
mons = get_mon_nodes mons = get_mon_nodes

View File

@ -1,3 +1,4 @@
# encoding: UTF-8
include_recipe 'apt' include_recipe 'apt'

View File

@ -1,3 +1,4 @@
# encoding: UTF-8
# #
# Author:: Kyle Bader <kyle.bader@dreamhost.com> # Author:: Kyle Bader <kyle.bader@dreamhost.com>
# Cookbook Name:: ceph # Cookbook Name:: ceph

View File

@ -1,3 +1,5 @@
# encoding: UTF-8
fail 'fsid must be set in config' if node['ceph']['config']['fsid'].nil? fail 'fsid must be set in config' if node['ceph']['config']['fsid'].nil?
fail 'mon_initial_members must be set in config' if node['ceph']['config']['mon_initial_members'].nil? fail 'mon_initial_members must be set in config' if node['ceph']['config']['mon_initial_members'].nil?
@ -11,8 +13,8 @@ end
template '/etc/ceph/ceph.conf' do template '/etc/ceph/ceph.conf' do
source 'ceph.conf.erb' source 'ceph.conf.erb'
variables( variables(
:mon_addresses => mon_addresses, mon_addresses: mon_addresses,
:is_rgw => node['ceph']['is_radosgw'] is_rgw: node['ceph']['is_radosgw']
) )
mode '0644' mode '0644'
end end

View File

@ -1,3 +1,4 @@
# encoding: UTF-8
# #
# Author:: Kyle Bader <kyle.bader@dreamhost.com> # Author:: Kyle Bader <kyle.bader@dreamhost.com>
# Cookbook Name:: ceph # Cookbook Name:: ceph

View File

@ -1,3 +1,4 @@
# encoding: UTF-8
# #
# Author:: Kyle Bader <kyle.bader@dreamhost.com> # Author:: Kyle Bader <kyle.bader@dreamhost.com>
# Cookbook Name:: ceph # Cookbook Name:: ceph
@ -22,7 +23,7 @@ include_recipe 'ceph::conf'
cluster = 'ceph' cluster = 'ceph'
directory "/var/lib/ceph/mds/#{cluster}-#{node["hostname"]}" do directory "/var/lib/ceph/mds/#{cluster}-#{node['hostname']}" do
owner 'root' owner 'root'
group 'root' group 'root'
mode 00755 mode 00755
@ -32,7 +33,7 @@ end
ruby_block 'create mds client key' do ruby_block 'create mds client key' do
block do block do
cmd = "ceph auth get-or-create mds.#{node['hostname']} osd 'allow *' mon 'allow rwx' --name mon. --key='#{node["ceph"]["monitor-secret"]}'" cmd = "ceph auth get-or-create mds.#{node['hostname']} osd 'allow *' mon 'allow rwx' --name mon. --key='#{node['ceph']['monitor-secret']}'"
keyring = Mixlib::ShellOut.new(cmd).run_command.stdout keyring = Mixlib::ShellOut.new(cmd).run_command.stdout
keyfile = File.new("/var/lib/ceph/mds/#{cluster}-#{node['hostname']}/keyring", 'w') keyfile = File.new("/var/lib/ceph/mds/#{cluster}-#{node['hostname']}/keyring", 'w')
@ -41,7 +42,7 @@ ruby_block 'create mds client key' do
end end
end end
file "/var/lib/ceph/mds/#{cluster}-#{node["hostname"]}/done" do file "/var/lib/ceph/mds/#{cluster}-#{node['hostname']}/done" do
owner 'root' owner 'root'
group 'root' group 'root'
mode 00644 mode 00644
@ -55,7 +56,7 @@ when 'upstart'
else else
filename = 'sysvinit' filename = 'sysvinit'
end end
file "/var/lib/ceph/mds/#{cluster}-#{node["hostname"]}/#{filename}" do file "/var/lib/ceph/mds/#{cluster}-#{node['hostname']}/#{filename}" do
owner 'root' owner 'root'
group 'root' group 'root'
mode 00644 mode 00644
@ -70,5 +71,5 @@ service 'ceph_mds' do
service_name 'ceph' service_name 'ceph'
end end
action [:enable, :start] action [:enable, :start]
supports :restart => true supports restart: true
end end

View File

@ -1,3 +1,5 @@
# encoding: UTF-8
#
# This recipe creates a monitor cluster # This recipe creates a monitor cluster
# #
# You should never change the mon default path or # You should never change the mon default path or
@ -29,7 +31,7 @@ directory '/var/run/ceph' do
action :create action :create
end end
directory "/var/lib/ceph/mon/ceph-#{node["hostname"]}" do directory "/var/lib/ceph/mon/ceph-#{node['hostname']}" do
owner 'root' owner 'root'
group 'root' group 'root'
mode 00755 mode 00755
@ -40,7 +42,7 @@ end
# TODO: cluster name # TODO: cluster name
cluster = 'ceph' cluster = 'ceph'
unless File.exist?("/var/lib/ceph/mon/ceph-#{node["hostname"]}/done") unless File.exist?("/var/lib/ceph/mon/ceph-#{node['hostname']}/done")
keyring = "#{Chef::Config[:file_cache_path]}/#{cluster}-#{node['hostname']}.mon.keyring" keyring = "#{Chef::Config[:file_cache_path]}/#{cluster}-#{node['hostname']}.mon.keyring"
if node['ceph']['encrypted_data_bags'] if node['ceph']['encrypted_data_bags']
@ -62,7 +64,7 @@ unless File.exist?("/var/lib/ceph/mon/ceph-#{node["hostname"]}/done")
ruby_block 'finalise' do ruby_block 'finalise' do
block do block do
['done', service_type].each do |ack| ['done', service_type].each do |ack|
::File.open("/var/lib/ceph/mon/ceph-#{node["hostname"]}/#{ack}", 'w').close ::File.open("/var/lib/ceph/mon/ceph-#{node['hostname']}/#{ack}", 'w').close
end end
end end
end end
@ -75,7 +77,7 @@ if service_type == 'upstart'
end end
service 'ceph-mon-all' do service 'ceph-mon-all' do
provider Chef::Provider::Service::Upstart provider Chef::Provider::Service::Upstart
supports :status => true supports status: true
action [:enable, :start] action [:enable, :start]
end end
end end
@ -88,7 +90,7 @@ service 'ceph_mon' do
else else
service_name 'ceph' service_name 'ceph'
end end
supports :restart => true, :status => true supports restart: true, status: true
action [:enable, :start] action [:enable, :start]
end end

View File

@ -1,3 +1,4 @@
# encoding: UTF-8
# #
# Author:: Kyle Bader <kyle.bader@dreamhost.com> # Author:: Kyle Bader <kyle.bader@dreamhost.com>
# Cookbook Name:: ceph # Cookbook Name:: ceph
@ -70,7 +71,7 @@ execute 'format as keyring' do
end end
if crowbar? if crowbar?
node['crowbar']['disks'].each do |disk, data| node['crowbar']['disks'].each do |disk, _data|
execute "ceph-disk-prepare #{disk}" do execute "ceph-disk-prepare #{disk}" do
command "ceph-disk-prepare /dev/#{disk}" command "ceph-disk-prepare /dev/#{disk}"
only_if { node['crowbar']['disks'][disk]['usage'] == 'Storage' } only_if { node['crowbar']['disks'][disk]['usage'] == 'Storage' }
@ -102,7 +103,7 @@ else
if !node['ceph']['osd_devices'].nil? if !node['ceph']['osd_devices'].nil?
devices = node['ceph']['osd_devices'] devices = node['ceph']['osd_devices']
devices = Hash[(0...devices.size).zip devices] unless devices.kind_of? Hash devices = Hash[(0...devices.size).zip devices] unless devices.is_a? Hash
devices.each do |index, osd_device| devices.each do |index, osd_device|
unless osd_device['status'].nil? unless osd_device['status'].nil?
@ -150,7 +151,7 @@ else
service_name 'ceph' service_name 'ceph'
end end
action [:enable, :start] action [:enable, :start]
supports :restart => true supports restart: true
end end
else else
Log.info('node["ceph"]["osd_devices"] empty') Log.info('node["ceph"]["osd_devices"] empty')

View File

@ -1,3 +1,4 @@
# encoding: UTF-8
# #
# Author:: Kyle Bader <kyle.bader@dreamhost.com> # Author:: Kyle Bader <kyle.bader@dreamhost.com>
# Cookbook Name:: ceph # Cookbook Name:: ceph
@ -45,9 +46,9 @@ end
include_recipe 'ceph::conf' include_recipe 'ceph::conf'
if !::File.exists?("/var/lib/ceph/radosgw/ceph-radosgw.#{node['hostname']}/done") if !::File.exist?("/var/lib/ceph/radosgw/ceph-radosgw.#{node['hostname']}/done")
if node['ceph']['radosgw']['webserver_companion'] if node['ceph']['radosgw']['webserver_companion']
include_recipe "ceph::radosgw_#{node["ceph"]["radosgw"]["webserver_companion"]}" include_recipe "ceph::radosgw_#{node['ceph']['radosgw']['webserver_companion']}"
end end
ceph_client 'radosgw' do ceph_client 'radosgw' do
@ -70,7 +71,7 @@ if !::File.exists?("/var/lib/ceph/radosgw/ceph-radosgw.#{node['hostname']}/done"
service_name 'ceph-radosgw' service_name 'ceph-radosgw'
end end
end end
supports :restart => true supports restart: true
action [:enable, :start] action [:enable, :start]
end end
else else

View File

@ -1,3 +1,4 @@
# encoding: UTF-8
# #
# Author:: Kyle Bader <kyle.bader@dreamhost.com> # Author:: Kyle Bader <kyle.bader@dreamhost.com>
# Cookbook Name:: ceph # Cookbook Name:: ceph
@ -94,6 +95,6 @@ template '/var/www/s3gw.fcgi' do
group 'root' group 'root'
mode '0755' mode '0755'
variables( variables(
:ceph_rgw_client => "client.radosgw.#{node['hostname']}" ceph_rgw_client: "client.radosgw.#{node['hostname']}"
) )
end end

View File

@ -1,3 +1,5 @@
# encoding: UTF-8
case node['platform_family'] case node['platform_family']
when 'debian' when 'debian'
include_recipe 'ceph::apt' include_recipe 'ceph::apt'

View File

@ -1,3 +1,5 @@
# encoding: UTF-8
platform_family = node['platform_family'] platform_family = node['platform_family']
case platform_family case platform_family

View File

@ -1,3 +1,4 @@
# encoding: UTF-8
# #
# Author:: Kyle Bader <kyle.bader@dreamhost.com> # Author:: Kyle Bader <kyle.bader@dreamhost.com>
# Cookbook Name:: ceph # Cookbook Name:: ceph
@ -46,6 +47,6 @@ service 'tgt' do
else else
service_name 'tgt' service_name 'tgt'
end end
supports :restart => true supports restart: true
action [:enable, :start] action [:enable, :start]
end end

View File

@ -1,19 +1,21 @@
# encoding: UTF-8
actions :add actions :add
default_action :add default_action :add
attribute :name, :kind_of => String, :name_attribute => true attribute :name, kind_of: String, name_attribute: true
attribute :caps, :kind_of => Hash, :default => { 'mon' => 'allow r', 'osd' => 'allow r' } attribute :caps, kind_of: Hash, default: { 'mon' => 'allow r', 'osd' => 'allow r' }
# Whether to store the secret in a keyring file or a plain secret file # Whether to store the secret in a keyring file or a plain secret file
attribute :as_keyring, :kind_of => [TrueClass, FalseClass], :default => true attribute :as_keyring, kind_of: [TrueClass, FalseClass], default: true
# what the key should be called in the ceph cluster # what the key should be called in the ceph cluster
# defaults to client.#{name}.#{hostname} # defaults to client.#{name}.#{hostname}
attribute :keyname, :kind_of => String attribute :keyname, kind_of: String
# where the key should be saved # where the key should be saved
# defaults to /etc/ceph/ceph.client.#{name}.#{hostname}.keyring if as_keyring # defaults to /etc/ceph/ceph.client.#{name}.#{hostname}.keyring if as_keyring
# defaults to /etc/ceph/ceph.client.#{name}.#{hostname}.secret if not as_keyring # defaults to /etc/ceph/ceph.client.#{name}.#{hostname}.secret if not as_keyring
attribute :filename, :kind_of => String attribute :filename, kind_of: String
attr_accessor :key, :caps_match attr_accessor :key, :caps_match

22
spec/spec_helper.rb Normal file
View File

@ -0,0 +1,22 @@
# encoding: UTF-8
require 'chefspec'
require 'chefspec/berkshelf'
ChefSpec::Coverage.start! { add_filter 'ceph' }
LOG_LEVEL = :fatal
SUSE_OPTS = {
platform: 'suse',
version: '11.3',
log_level: LOG_LEVEL
}
REDHAT_OPTS = {
platform: 'redhat',
version: '6.5',
log_level: LOG_LEVEL
}
UBUNTU_OPTS = {
platform: 'ubuntu',
version: '12.04',
log_level: LOG_LEVEL
}