From e3f10003e1016f3360cd59c4555d093752673a97 Mon Sep 17 00:00:00 2001 From: Guilhem Lettron Date: Tue, 9 Jul 2013 17:30:34 +0200 Subject: [PATCH] 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 --- recipes/osd.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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 -- 2.47.3