From 4f144955eeebcffa40863c0de92de604e6678827 Mon Sep 17 00:00:00 2001 From: Adam Spiers Date: Tue, 4 Feb 2014 18:13:50 +0000 Subject: [PATCH] fix primitive definition strings with fewer parameters --- libraries/pacemaker/resource/primitive.rb | 19 ++++++++++++------- spec/fixtures/keystone_primitive.rb | 2 +- .../pacemaker/resource/primitive_spec.rb | 11 +++++++++++ 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/libraries/pacemaker/resource/primitive.rb b/libraries/pacemaker/resource/primitive.rb index 53fe5bd..36dcc63 100644 --- a/libraries/pacemaker/resource/primitive.rb +++ b/libraries/pacemaker/resource/primitive.rb @@ -34,7 +34,8 @@ class Pacemaker::Resource::Primitive < Pacemaker::Resource self.op = {} %w(start stop monitor).each do |op| - self.op[op] = self.class.extract_hash(definition, "op #{op}") + h = self.class.extract_hash(definition, "op #{op}") + self.op[op] = h unless h.empty? end end @@ -51,12 +52,16 @@ class Pacemaker::Resource::Primitive < Pacemaker::Resource end def definition_string - return < "60", "interval" => "10s" } ], [ "start", { "timeout" => "240", "interval" => "10s" } ] ] - KEYSTONE_PRIMITIVE_DEFINITION = <<'EOF' + KEYSTONE_PRIMITIVE_DEFINITION = <<'EOF'.chomp primitive keystone ocf:openstack:keystone \ params os_auth_url="http://node1:5000/v2.0" os_password="adminpw" os_tenant_name="openstack" os_username="admin" user="openstack-keystone" \ meta is-managed="true" target-role="Started" \ diff --git a/spec/libraries/pacemaker/resource/primitive_spec.rb b/spec/libraries/pacemaker/resource/primitive_spec.rb index bbb2e7e..eeb01a8 100644 --- a/spec/libraries/pacemaker/resource/primitive_spec.rb +++ b/spec/libraries/pacemaker/resource/primitive_spec.rb @@ -110,6 +110,17 @@ describe Pacemaker::Resource::Primitive do it "should return the definition string" do expect(fixture.definition_string).to eq(fixture_definition) end + + it "should return a short definition string" do + primitive = Pacemaker::Resource::Primitive.new('foo') + primitive.definition = \ + %!primitive foo ocf:heartbeat:IPaddr2 params foo="bar"! + primitive.parse_definition + expect(primitive.definition_string).to eq(<<'EOF'.chomp) +primitive foo ocf:heartbeat:IPaddr2 \ + params foo="bar" +EOF + end end describe "#parse_definition" do