From: Guilhem Lettron Date: Tue, 9 Jul 2013 15:30:34 +0000 (+0200) Subject: refactor osd_device status saving X-Git-Tag: v0.2.0~24^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F44%2Fhead;p=ceph-cookbooks.git refactor osd_device status saving Currently, chef set status at compile time and no at run-time. So you can have a problem and a status set --- diff --git a/recipes/osd.rb b/recipes/osd.rb index cbc11f4..3fce68c 100644 --- a/recipes/osd.rb +++ b/recipes/osd.rb @@ -106,7 +106,7 @@ else # - The --dmcrypt option will be available starting w/ Cuttlefish unless node["ceph"]["osd_devices"].nil? node["ceph"]["osd_devices"].each_with_index do |osd_device,index| - if not osd_device["status"].nil? + unless osd_device["status"] next end dmcrypt = "" @@ -116,13 +116,19 @@ else execute "Creating Ceph OSD on #{osd_device['device']}" do command "ceph-disk-prepare #{dmcrypt} #{osd_device['device']} #{osd_device['journal']}" action :run + notifies :create, "ruby_block[save osd_device status]" end # we add this status to the node env # so that we can implement recreate # and/or delete functionalities in the # future. - node.normal["ceph"]["osd_devices"][index]["status"] = "deployed" - node.save + ruby_block "save osd_device status" do + block do + node.normal["ceph"]["osd_devices"][index]["status"] = "deployed" + node.save + end + action :nothing + end end service "ceph_osd" do case service_type