diff --git a/libraries/pacemaker/resource/primitive.rb b/libraries/pacemaker/resource/primitive.rb index fbd955d..41b8ad5 100644 --- a/libraries/pacemaker/resource/primitive.rb +++ b/libraries/pacemaker/resource/primitive.rb @@ -32,7 +32,10 @@ class Pacemaker::Resource::Primitive < Pacemaker::Resource send(writer, hash) end - # FIXME: deal with op + self.op = {} + %w(start stop monitor).each do |op| + self.op[op] = self.class.extract_hash(definition, "op #{op}") + end end def params_string @@ -50,9 +53,9 @@ class Pacemaker::Resource::Primitive < Pacemaker::Resource def definition_string return < "bar", "baz" => "qux", } - expect(@primitive.params_string).to eq(%' params baz="qux" foo="bar"') + expect(@primitive.params_string).to eq(%'params baz="qux" foo="bar"') end end @@ -69,7 +77,7 @@ describe Pacemaker::Resource::Primitive do "foo" => "bar", "baz" => "qux", } - expect(@primitive.meta_string).to eq(%' meta baz="qux" foo="bar"') + expect(@primitive.meta_string).to eq(%'meta baz="qux" foo="bar"') end end @@ -91,15 +99,25 @@ describe Pacemaker::Resource::Primitive do "baz" => "qux", } } - expect(@primitive.op_string).to eq(%' op monitor baz="qux" foo="bar"') + expect(@primitive.op_string).to eq(%'op monitor baz="qux" foo="bar"') end end describe "::extract_hash" do - it "should extract a hash from config" do + it "should extract a params hash from config" do expect(@primitive.class.extract_hash(@primitive.definition_string, "params")).to \ eq(Hash[@primitive.params]) end + + it "should extract an op start hash from config" do + expect(@primitive.class.extract_hash(@primitive.definition_string, 'op start')).to \ + eq(Hash[@primitive.op]['start']) + end + + it "should extract an op monitor hash from config" do + expect(@primitive.class.extract_hash(@primitive.definition_string, 'op monitor')).to \ + eq(Hash[@primitive.op]['monitor']) + end end describe "#definition_string" do