[wallaby/f17] updated to wallaby-0.15.1-3
William Christian Benton
willb at fedoraproject.org
Fri Jun 29 20:14:15 UTC 2012
commit b85fb3a7ce4654b89c5dcf42d374064139b244f4
Author: Will Benton <willb at redhat.com>
Date: Fri Jun 29 15:13:58 2012 -0500
updated to wallaby-0.15.1-3
.gitignore | 1 +
0001-Fixes-to-skeleton-group-support.patch | 74 ++++++++++
...mands-will-blank-a-field-if-no-list-is-pr.patch | 149 --------------------
0002-Added-command-to-remove-a-snapshot.patch | 46 ------
0002-updated-spec-for-0.15.1-2.patch | 26 ++++
0003-More-resilient-activation-on-F17.patch | 42 ++++++
...logging-and-failsafe-in-Parameter-default.patch | 35 -----
...ustChangeParams-to-Store-in-config-client.patch | 27 ----
...ious-configuration-removal-off-by-default.patch | 32 ++++
...sue-blanking-non-param-type-relationships.patch | 25 ----
...d-spec-again-in-advance-of-0.15.1-2-build.patch | 25 ++++
...test-case-duplicating-Matt-s-failure-case.patch | 66 +++++++++
...-Added-more-assertions-to-prior-test-case.patch | 74 ++++++++++
...for-artifacts-of-type-sniffing-errors-in-.patch | 44 ++++++
...ed-unused-versioned-config-implementation.patch | 73 ++++++++++
...Removed-oldstyle-versioned-configurations.patch | 111 +++++++++++++++
0011-spec-file-for-v0.15.1-3.patch | 26 ++++
sources | 2 +-
wallaby.spec | 74 +++++++++--
19 files changed, 659 insertions(+), 293 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 7ce12ca..e435748 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/wallaby-0.12.4.tar.gz
/wallaby-0.13.0.tar.gz
/wallaby-0.13.1.tar.gz
+/wallaby-0.15.1.tar.gz
diff --git a/0001-Fixes-to-skeleton-group-support.patch b/0001-Fixes-to-skeleton-group-support.patch
new file mode 100644
index 0000000..6f281f0
--- /dev/null
+++ b/0001-Fixes-to-skeleton-group-support.patch
@@ -0,0 +1,74 @@
+From 2c584644a5fc8e0dd0b1bc0e3919c27a112fd9ff Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Thu, 21 Jun 2012 16:18:07 -0500
+Subject: [PATCH 01/11] Fixes to skeleton group support.
+
+In older versions of Wallaby, the default group configuration
+could take precedence over the skeleton group configuration
+for walk-in nodes. This commit fixes that behavior and adds
+regression tests to identify it in the future.
+---
+ lib/mrg/grid/config/Configuration.rb | 4 ++--
+ spec/skeleton_group_spec.rb | 17 ++++++++++++++++-
+ 2 files changed, 18 insertions(+), 3 deletions(-)
+
+diff --git a/lib/mrg/grid/config/Configuration.rb b/lib/mrg/grid/config/Configuration.rb
+index 4adc725..36629e7 100644
+--- a/lib/mrg/grid/config/Configuration.rb
++++ b/lib/mrg/grid/config/Configuration.rb
+@@ -425,7 +425,7 @@ module Mrg
+
+ return 0 if version == 0
+
+- groups = Store::ENABLE_SKELETON_GROUP ? [skel, default] : [default]
++ groups = Store::ENABLE_SKELETON_GROUP ? [default, skel] : [default]
+ toc, = VersionedNodeConfig.find_freshest(:select_by=>{:node=>VersionedNode[to]}, :group_by=>[:node], :version=>ver)
+
+ unless toc
+@@ -448,7 +448,7 @@ module Mrg
+
+ def internal_set_node_config(node, config)
+ node_obj = VersionedNode[node]
+- vnc = VersionedNodeConfig.create(:version=>self, :node=>node_obj, :config=>config)
++ vnc = VersionedNodeConfig.create(:version=>self, :node=>node_obj, :config=>config)
+ # vnc.send(:update, :created, self.version)
+ end
+ end
+diff --git a/spec/skeleton_group_spec.rb b/spec/skeleton_group_spec.rb
+index b423bcd..838b9a5 100644
+--- a/spec/skeleton_group_spec.rb
++++ b/spec/skeleton_group_spec.rb
+@@ -27,7 +27,7 @@ module Mrg
+ end
+
+ ["when another node exists at activation", "when no other nodes exist at activation"].each do |dowhen|
+- it "should give new #{kind} nodes the last-activated configuration for the skeleton group #{dowhen}" do
++ it "should give new #{kind} nodes the last-activated configuration for the skeleton group #{dowhen} and there is no default group" do
+ @store.addParam("FOO")
+ n_expected = @store.addNode("blah") if dowhen == "when another node exists at activation"
+ g = @store.getGroupByName(Group::SKELETON_GROUP_NAME)
+@@ -38,6 +38,21 @@ module Mrg
+ n = @store.send(msg, "fake")
+ n.getConfig("version"=>::Rhubarb::Util::timestamp)["FOO"].should == "BAR"
+ end
++
++ it "should give new #{kind} nodes the last-activated configuration for the skeleton group #{dowhen} and there is a default group" do
++ @store.addParam("FOO")
++ @store.getDefaultGroup.modifyParams("REPLACE", {"FOO"=>"ARGH"}, {})
++ @store.activateConfiguration
++ n_expected = @store.addNode("blah") if dowhen == "when another node exists at activation"
++ g = @store.getGroupByName(Group::SKELETON_GROUP_NAME)
++ g.modifyParams("REPLACE", {"FOO"=>"BAR"})
++ @store.activateConfiguration
++ g.modifyParams("REPLACE", {"FOO"=>"BLAH"})
++
++ n = @store.send(msg, "fake")
++
++ n.getConfig("version"=>::Rhubarb::Util::timestamp)["FOO"].should == "BAR"
++ end
+ end
+ end
+
+--
+1.7.7.6
+
diff --git a/0002-updated-spec-for-0.15.1-2.patch b/0002-updated-spec-for-0.15.1-2.patch
new file mode 100644
index 0000000..538f602
--- /dev/null
+++ b/0002-updated-spec-for-0.15.1-2.patch
@@ -0,0 +1,26 @@
+From a263c2f088be209adfca853d856667aa7c637ab7 Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Thu, 21 Jun 2012 16:20:08 -0500
+Subject: [PATCH 02/11] updated spec for 0.15.1-2
+
+---
+ wallaby.spec.in | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/wallaby.spec.in b/wallaby.spec.in
+index 8358ead..5683094 100644
+--- a/wallaby.spec.in
++++ b/wallaby.spec.in
+@@ -292,6 +292,9 @@ fi
+
+ %changelog
+
++* Thu Jun 21 2012 willb <willb at redhat> - 0.15.1-2
++- fixes to skeleton group support for walk-in nodes
++
+ * Wed Jun 20 2012 willb <willb at redhat> - 0.15.1-1
+ - fixes bz 834141
+ - packaging improvements
+--
+1.7.7.6
+
diff --git a/0003-More-resilient-activation-on-F17.patch b/0003-More-resilient-activation-on-F17.patch
new file mode 100644
index 0000000..50de843
--- /dev/null
+++ b/0003-More-resilient-activation-on-F17.patch
@@ -0,0 +1,42 @@
+From 4eb89e810d9b174c1d995f070cbf947fac04bdce Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Thu, 21 Jun 2012 22:51:23 -0500
+Subject: [PATCH 03/11] More resilient activation on F17.
+
+This is both a workaround for a problem with QMF on F17 (viz.,
+we can't send events) and a general improvement to configuration
+activation. Specifically, configuration events are a performance
+optimization but are not required for correctness. Before this
+commit, failure to send a configuration event would result in failure
+of the Store#activateConfiguration API method. (It would also leave
+node metadata in an inconsistent state.) Now, failure to send a
+configuration event merely results in a warning.
+---
+ lib/mrg/grid/config/Store.rb | 8 ++++++--
+ 1 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/lib/mrg/grid/config/Store.rb b/lib/mrg/grid/config/Store.rb
+index 279c44a..efe0296 100644
+--- a/lib/mrg/grid/config/Store.rb
++++ b/lib/mrg/grid/config/Store.rb
+@@ -718,11 +718,15 @@ module Mrg
+ unless explicit_nodelist
+ validate_and_activate(false, [Group.DEFAULT_GROUP], this_version) unless ConfigVersion.hasVersionedNodeConfig(Group::DEFAULT_GROUP_NAME, this_version)
+ end
+- DirtyElement.delete_all
+
+ log.debug "in validate_and_activate; just deleted dirty elements; count is #{DirtyElement.count}"
++ DirtyElement.delete_all
+
+- config_events_to(dirty_nodes, this_version, all_nodes) unless explicit_nodelist
++ begin
++ config_events_to(dirty_nodes, this_version, all_nodes) unless explicit_nodelist
++ rescue Exception=>ex
++ warnings << "Couldn't send configuration events: #{ex.inspect}"
++ end
+
+ dirty_nodes.each {|dn| dn.last_updated_version = this_version if dn.respond_to? :last_updated_version }
+
+--
+1.7.7.6
+
diff --git a/0004-Spurious-configuration-removal-off-by-default.patch b/0004-Spurious-configuration-removal-off-by-default.patch
new file mode 100644
index 0000000..f96450b
--- /dev/null
+++ b/0004-Spurious-configuration-removal-off-by-default.patch
@@ -0,0 +1,32 @@
+From 82e6ef71c2fad1d448a34e9458f5d79c6b6e69c8 Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Thu, 21 Jun 2012 22:55:16 -0500
+Subject: [PATCH 04/11] Spurious configuration removal off by default.
+
+The Wallaby agent no longer removes possibly-spurious versioned
+configurations on startup. (This is a cleanup measure from a bug
+in a very old version of Wallaby; it is unlikely necessary any more.)
+To enable this behavior, set WALLABY_REMOVE_SPURIOUS_CONFIGS to yes
+or true in the environment in which wallaby-agent runs.
+---
+ bin/wallaby-agent | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/bin/wallaby-agent b/bin/wallaby-agent
+index 5bef195..f596f8b 100755
+--- a/bin/wallaby-agent
++++ b/bin/wallaby-agent
+@@ -165,7 +165,9 @@ begin
+ $wallaby_log = Mrg::Grid::Config::Store.log
+
+ begin
+- Mrg::Grid::Config::Store.find_by_id(0).storeinit("remove-spurious"=>"yes")
++ options = {}
++ options["remove-spurious"] = "yes" if (ENV["WALLABY_REMOVE_SPURIOUS_CONFIGS"] && ENV["WALLABY_REMOVE_SPURIOUS_CONFIGS"] =~ /^(true|yes)/i)
++ Mrg::Grid::Config::Store.find_by_id(0).storeinit(options)
+ [:default, :snapshot].each do |which|
+ Rhubarb::Persistence::dbs[which].execute("vacuum")
+ end
+--
+1.7.7.6
+
diff --git a/0005-updated-spec-again-in-advance-of-0.15.1-2-build.patch b/0005-updated-spec-again-in-advance-of-0.15.1-2-build.patch
new file mode 100644
index 0000000..3cdb16e
--- /dev/null
+++ b/0005-updated-spec-again-in-advance-of-0.15.1-2-build.patch
@@ -0,0 +1,25 @@
+From 109a79b246858b79344c04ee80950b4d6004d0a4 Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Thu, 21 Jun 2012 23:05:01 -0500
+Subject: [PATCH 05/11] updated spec again in advance of 0.15.1-2 build
+
+---
+ wallaby.spec.in | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/wallaby.spec.in b/wallaby.spec.in
+index 5683094..61cefc8 100644
+--- a/wallaby.spec.in
++++ b/wallaby.spec.in
+@@ -294,6 +294,8 @@ fi
+
+ * Thu Jun 21 2012 willb <willb at redhat> - 0.15.1-2
+ - fixes to skeleton group support for walk-in nodes
++- more resilient Store#activateConfiguration in the face of event failure/workaround for QMF event problems on F17
++- wallaby-agent no longer deletes potentially-spurious configurations by default
+
+ * Wed Jun 20 2012 willb <willb at redhat> - 0.15.1-1
+ - fixes bz 834141
+--
+1.7.7.6
+
diff --git a/0006-Added-test-case-duplicating-Matt-s-failure-case.patch b/0006-Added-test-case-duplicating-Matt-s-failure-case.patch
new file mode 100644
index 0000000..d7e0098
--- /dev/null
+++ b/0006-Added-test-case-duplicating-Matt-s-failure-case.patch
@@ -0,0 +1,66 @@
+From 6b275fe08d44cd86131cfe0bcdc2c91b607c8b03 Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Fri, 22 Jun 2012 19:00:58 -0500
+Subject: [PATCH 06/11] Added test case duplicating Matt's failure case.
+
+---
+ spec/skeleton_group_spec.rb | 43 ++++++++++++++++++++++++++++++++++++++++++-
+ 1 files changed, 42 insertions(+), 1 deletions(-)
+
+diff --git a/spec/skeleton_group_spec.rb b/spec/skeleton_group_spec.rb
+index 838b9a5..839eda6 100644
+--- a/spec/skeleton_group_spec.rb
++++ b/spec/skeleton_group_spec.rb
+@@ -63,7 +63,48 @@ module Mrg
+ n.memberships.should_not include(Group::SKELETON_GROUP_NAME)
+ end
+
+-
++ it "should not exhibit Matt's failure case with walkin nodes not getting the skeleton group config" do
++ default = @store.getDefaultGroup
++ skel = @store.getSkeletonGroup
++
++ # wallaby add-features-to-group +++DEFAULT Master NodeAccess SharedPort
++ default.modifyFeatures("ADD", %w{Master NodeAccess SharedPort}, {})
++
++ # wallaby add-params-to-group +++DEFAULT 'SHARED_PORT_ARGS=-p 9620' 'CONDOR_HOST=$(QMF_BROKER_HOST)' 'ALLOW_WRITE=*' 'ALLOW_READ=*' 'ALLOW_NEGOTIATOR=$(ALLOW_WRITE)' 'ALLOW_NEGOTIATOR_SCHEDD=$(ALLOW_WRITE)' UID_DOMAIN=central-manager
++ default.modifyParams("ADD", {'SHARED_PORT_ARGS'=>'-p 9620', 'CONDOR_HOST'=>'$(QMF_BROKER_HOST)', 'ALLOW_WRITE'=>'*', 'ALLOW_READ'=>'*', 'ALLOW_NEGOTIATOR'=>'$(ALLOW_WRITE)', 'ALLOW_NEGOTIATOR_SCHEDD'=>'$(ALLOW_WRITE)', 'UID_DOMAIN'=>'central-manager'}, {})
++
++ # wallaby add-features-to-group +++SKEL ExecuteNode
++ skel.modifyFeatures("ADD", %w{ExecuteNode}, {})
++
++ # wallaby add-params-to-group +++SKEL START=TRUE SUSPEND=FALSE
++ skel.modifyParams("ADD", {'START'=>'TRUE', 'SUSPEND'=>'FALSE'}, {})
++
++ # wallaby add-node central-manager
++ cm = @store.addNode('central-manager')
++
++ # wallaby add-param COLLECTOR_UPDATE_INTERVAL (needs to go to base DB)
++ @store.addParam('COLLECTOR_UPDATE_INTERVAL')
++
++ # wallaby remove-nodes-from-group +++SKEL central-manager
++ cm.modifyMemberships("REPLACE", cm.memberships - %w{+++SKEL}, {})
++
++ # wallaby add-features-to-node central-manager CentralManager Scheduler (maybe: JobServer)
++ cm.identity_group.modifyFeatures("ADD", %w{CentralManager Scheduler JobServer}, {})
++
++ # wallaby add-params-to-node central-manager COLLECTOR_UPDATE_INTERVAL=15
++ cm.identity_group.modifyParams("ADD", {"COLLECTOR_UPDATE_INTERVAL"=>15})
++
++ # wallaby activate
++ @store.activateConfiguration.should == [{}, []]
++
++ # newly checked-in nodes should get skeleton group configuration
++ wi = @store.getNode("walk-in")
++ wi_config = wi.getConfig("version"=>::Rhubarb::Util::timestamp)
++ daemons = wi_config["DAEMON_LIST"].split(",").map {|s| s.strip}
++ daemons.should include("STARTD")
++ wi_config["START"].should == "TRUE"
++ wi_config["SUSPEND"].should == "FALSE"
++ end
+
+ it "should publish the skeleton group over the API" do
+ @store.getSkeletonGroup.name.should == Group::SKELETON_GROUP_NAME
+--
+1.7.7.6
+
diff --git a/0007-Added-more-assertions-to-prior-test-case.patch b/0007-Added-more-assertions-to-prior-test-case.patch
new file mode 100644
index 0000000..19bcd47
--- /dev/null
+++ b/0007-Added-more-assertions-to-prior-test-case.patch
@@ -0,0 +1,74 @@
+From 031f6d977a1b73e40bb6b583de0fa13705b40e7f Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Fri, 22 Jun 2012 20:34:22 -0500
+Subject: [PATCH 07/11] Added more assertions to prior test case.
+
+---
+ spec/skeleton_group_spec.rb | 37 +++++++++++++++++++++++++++++--------
+ 1 files changed, 29 insertions(+), 8 deletions(-)
+
+diff --git a/spec/skeleton_group_spec.rb b/spec/skeleton_group_spec.rb
+index 839eda6..d6816fc 100644
+--- a/spec/skeleton_group_spec.rb
++++ b/spec/skeleton_group_spec.rb
+@@ -66,6 +66,13 @@ module Mrg
+ it "should not exhibit Matt's failure case with walkin nodes not getting the skeleton group config" do
+ default = @store.getDefaultGroup
+ skel = @store.getSkeletonGroup
++
++ # nodes checked in before the activate should get the updated skeleton group
++ # configuration after activate
++ old_wi = @store.getNode("old-walk-in")
++
++ # wallaby load /var/lib/condor-wallaby-base-db/condor-base-db.snapshot
++ # (handled by the "before" clause above)
+
+ # wallaby add-features-to-group +++DEFAULT Master NodeAccess SharedPort
+ default.modifyFeatures("ADD", %w{Master NodeAccess SharedPort}, {})
+@@ -89,21 +96,35 @@ module Mrg
+ cm.modifyMemberships("REPLACE", cm.memberships - %w{+++SKEL}, {})
+
+ # wallaby add-features-to-node central-manager CentralManager Scheduler (maybe: JobServer)
+- cm.identity_group.modifyFeatures("ADD", %w{CentralManager Scheduler JobServer}, {})
++ cm.identity_group.modifyFeatures("ADD", %w{CentralManager Scheduler}, {})
+
+ # wallaby add-params-to-node central-manager COLLECTOR_UPDATE_INTERVAL=15
+ cm.identity_group.modifyParams("ADD", {"COLLECTOR_UPDATE_INTERVAL"=>15})
+-
++
+ # wallaby activate
+ @store.activateConfiguration.should == [{}, []]
+
+- # newly checked-in nodes should get skeleton group configuration
++ # newly checked-in nodes should get the most recently activated skeleton group configuration
+ wi = @store.getNode("walk-in")
+- wi_config = wi.getConfig("version"=>::Rhubarb::Util::timestamp)
+- daemons = wi_config["DAEMON_LIST"].split(",").map {|s| s.strip}
+- daemons.should include("STARTD")
+- wi_config["START"].should == "TRUE"
+- wi_config["SUSPEND"].should == "FALSE"
++
++ # check nodes created before and after activation
++ [old_wi, wi].each do |wi_node|
++
++ # check activated and current configs for each
++ [wi_node.getConfig("version"=>::Rhubarb::Util::timestamp), wi_node.getConfig].each do |wi_config|
++
++ daemons = wi_config["DAEMON_LIST"].split(",").map {|s| s.strip}
++
++ # checks for ExecuteNode
++ daemons.should include("STARTD")
++
++ # checks for +++SKEL param settings
++ wi_config["START"].should == "TRUE"
++ wi_config["SUSPEND"].should == "FALSE"
++ end
++
++ wi_node.memberships.should include("+++SKEL")
++ end
+ end
+
+ it "should publish the skeleton group over the API" do
+--
+1.7.7.6
+
diff --git a/0008-Workaround-for-artifacts-of-type-sniffing-errors-in-.patch b/0008-Workaround-for-artifacts-of-type-sniffing-errors-in-.patch
new file mode 100644
index 0000000..69cce42
--- /dev/null
+++ b/0008-Workaround-for-artifacts-of-type-sniffing-errors-in-.patch
@@ -0,0 +1,44 @@
+From f3d8b317a29e0c76690e75aca9e5fadaf5ce0766 Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Mon, 25 Jun 2012 17:43:00 -0500
+Subject: [PATCH 08/11] Workaround for artifacts of type-sniffing errors in
+ serialized objects.
+
+---
+ lib/mrg/grid/config/ConfigValidating.rb | 5 ++++-
+ lib/mrg/grid/config/Configuration.rb | 3 ++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/lib/mrg/grid/config/ConfigValidating.rb b/lib/mrg/grid/config/ConfigValidating.rb
+index a01e097..da7f8c4 100644
+--- a/lib/mrg/grid/config/ConfigValidating.rb
++++ b/lib/mrg/grid/config/ConfigValidating.rb
+@@ -133,7 +133,10 @@ module Mrg
+ end
+
+ def getConfig
+- @__my_config ||= original_object.getConfig
++ @__my_config ||= begin
++ cnf = original_object.getConfig
++ cnf.inject({}) {|acc,(k,v)| acc[k]=v.to_s ; acc}
++ end
+ end
+
+ def config=(cfg)
+diff --git a/lib/mrg/grid/config/Configuration.rb b/lib/mrg/grid/config/Configuration.rb
+index 36629e7..fd82cf1 100644
+--- a/lib/mrg/grid/config/Configuration.rb
++++ b/lib/mrg/grid/config/Configuration.rb
+@@ -98,7 +98,8 @@ module Mrg
+ end
+
+ # applies the value supplied to the config, appending if necessary
+- def self.apply!(config, param, value, use_ssp=false)
++ def self.apply!(config, param, supplied_value, use_ssp=false)
++ value = supplied_value.to_s
+ if (value && match = append_match(value))
+ supplied_value = value
+ value = value_string(match)
+--
+1.7.7.6
+
diff --git a/0009-Removed-unused-versioned-config-implementation.patch b/0009-Removed-unused-versioned-config-implementation.patch
new file mode 100644
index 0000000..ab3eb33
--- /dev/null
+++ b/0009-Removed-unused-versioned-config-implementation.patch
@@ -0,0 +1,73 @@
+From d5abc85784581603ac18239b50ee4c48ed73ea64 Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Mon, 25 Jun 2012 21:31:25 -0500
+Subject: [PATCH 09/11] Removed unused versioned-config implementation.
+
+This commit removes the 'normalized' versioned-configuration
+implementation. It was never very fast, never fully tested, and
+only ever available as an experimental alternative to the
+oldstyle serialized versioned-configuration implementation.
+---
+ lib/mrg/grid/config/Configuration.rb | 32 --------------------------------
+ lib/mrg/grid/config/dbmeta.rb | 2 +-
+ 2 files changed, 1 insertions(+), 33 deletions(-)
+
+diff --git a/lib/mrg/grid/config/Configuration.rb b/lib/mrg/grid/config/Configuration.rb
+index fd82cf1..61f1de3 100644
+--- a/lib/mrg/grid/config/Configuration.rb
++++ b/lib/mrg/grid/config/Configuration.rb
+@@ -527,38 +527,6 @@ module Mrg
+ end
+ end
+
+- class VersionedParam
+- include ::Rhubarb::Persisting
+-
+- declare_column :name, :text
+-
+- def self.[](nm)
+- find_first_by_name(nm) || create(:name=>nm)
+- end
+- end
+-
+- # (mostly-)normalized model of versioned config
+- class VersionedNodeParamMapping
+- include ::Rhubarb::Persisting
+-
+- declare_column :version, :integer, references(ConfigVersion, :on_delete=>:cascade)
+- declare_column :node, :integer, references(VersionedNode, :on_delete=>:cascade)
+- declare_column :param, :integer, references(VersionedParam, :on_delete=>:cascade)
+- declare_column :val, :text
+-
+- declare_index_on :node
+- declare_index_on :version
+-
+- alias :rhubarb_initialize :initialize
+-
+- def initialize(tup)
+- rhubarb_initialize(tup)
+- update(:created, self.version.version)
+- self
+- end
+-
+- end
+-
+ # "serialized object" model of versioned config
+ class VersionedNodeConfig
+ include ::Rhubarb::Persisting
+diff --git a/lib/mrg/grid/config/dbmeta.rb b/lib/mrg/grid/config/dbmeta.rb
+index 6e5b7eb..44cba83 100644
+--- a/lib/mrg/grid/config/dbmeta.rb
++++ b/lib/mrg/grid/config/dbmeta.rb
+@@ -18,7 +18,7 @@ module Mrg
+ module Grid
+ module Config
+ MAIN_DB_TABLES=[Mrg::Grid::Config::Feature, Mrg::Grid::Config::Group, Mrg::Grid::Config::Parameter, Mrg::Grid::Config::Subsystem, Mrg::Grid::Config::Node, Mrg::Grid::Config::ArcLabel, Mrg::Grid::Config::ParameterArc, Mrg::Grid::Config::FeatureArc, Mrg::Grid::Config::FeatureParams, Mrg::Grid::Config::NodeMembership, Mrg::Grid::Config::GroupParams, Mrg::Grid::Config::GroupFeatures, Mrg::Grid::Config::SubsystemParams, Mrg::Grid::Config::DirtyElement]
+- SNAP_DB_TABLES=[Mrg::Grid::Config::Snapshot, Mrg::Grid::Config::ConfigVersion, Mrg::Grid::Config::VersionedNode, Mrg::Grid::Config::VersionedParam, Mrg::Grid::Config::VersionedNodeConfig, Mrg::Grid::Config::VersionedNodeParamMapping]
++ SNAP_DB_TABLES=[Mrg::Grid::Config::Snapshot, Mrg::Grid::Config::ConfigVersion, Mrg::Grid::Config::VersionedNode, Mrg::Grid::Config::VersionedNodeConfig]
+ DBVERSION = 6
+ DBMIGRATIONS = []
+
+--
+1.7.7.6
+
diff --git a/0010-Removed-oldstyle-versioned-configurations.patch b/0010-Removed-oldstyle-versioned-configurations.patch
new file mode 100644
index 0000000..7b9f3e8
--- /dev/null
+++ b/0010-Removed-oldstyle-versioned-configurations.patch
@@ -0,0 +1,111 @@
+From 99cc17647e3dea7b4475e53bdfbfe89afc8e7c9c Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Mon, 25 Jun 2012 21:34:19 -0500
+Subject: [PATCH 10/11] Removed oldstyle versioned configurations.
+
+This commit removes the oldstyle versioned-configuration implementation.
+This implementation was vastly slower (~10x on our torture tests)
+than the new lightweight versioned-configuration implementation,
+as well as being much less space-efficient in a number of
+interesting use cases. Note that Wallaby can still read oldstyle
+versioned configurations, but will not generate them any more.
+---
+ bin/wallaby-agent | 4 ++
+ lib/mrg/grid/config/Configuration.rb | 54 +--------------------------------
+ 2 files changed, 6 insertions(+), 52 deletions(-)
+
+diff --git a/bin/wallaby-agent b/bin/wallaby-agent
+index f596f8b..3b92679 100755
+--- a/bin/wallaby-agent
++++ b/bin/wallaby-agent
+@@ -164,6 +164,10 @@ begin
+ app.register Mrg::Grid::Config::Store,Mrg::Grid::Config::Node,Mrg::Grid::Config::ConfigVersion,Mrg::Grid::Config::Feature,Mrg::Grid::Config::Group,Mrg::Grid::Config::Parameter,Mrg::Grid::Config::Subsystem,Mrg::Grid::Config::Snapshot,Mrg::Grid::Config::NodeUpdatedNotice,Mrg::Grid::Config::ConfigVersion
+ $wallaby_log = Mrg::Grid::Config::Store.log
+
++ if ENV['WALLABY_OLDSTYLE_VERSIONED_CONFIGS']
++ Syslog.open {|s| s.warning "You have set WALLABY_OLDSTYLE_VERSIONED_CONFIGS in your environment, but this option is no longer supported. Old versioned configurations will continue to work, but new versioned configurations will be stored in the 'lightweight' style."}
++ end
++
+ begin
+ options = {}
+ options["remove-spurious"] = "yes" if (ENV["WALLABY_REMOVE_SPURIOUS_CONFIGS"] && ENV["WALLABY_REMOVE_SPURIOUS_CONFIGS"] =~ /^(true|yes)/i)
+diff --git a/lib/mrg/grid/config/Configuration.rb b/lib/mrg/grid/config/Configuration.rb
+index 61f1de3..c152c63 100644
+--- a/lib/mrg/grid/config/Configuration.rb
++++ b/lib/mrg/grid/config/Configuration.rb
+@@ -297,59 +297,12 @@ module Mrg
+ include ::Rhubarb::Persisting
+ include ::SPQR::Manageable
+
+- STORAGE_PLAN = ENV['WALLABY_OLDSTYLE_VERSIONED_CONFIGS'] ? :serialized : :lw_serialized
++ STORAGE_PLAN = :lw_serialized
+
+ def self.whatchanged(node, old_version, new_version)
+ ConfigUtils.what_params_changed(getVersionedNodeConfig(node, old_version), getVersionedNodeConfig(node, new_version))
+ end
+
+- module SerializedVersionedConfigLookup
+- module ClassMethods
+- def getVersionedNodeConfig(node, ver=nil)
+- ver ||= ::Rhubarb::Util::timestamp
+- vnc = VersionedNodeConfig.find_freshest(:select_by=>{:node=>VersionedNode[node]}, :group_by=>[:node], :version=>ver)
+- vnc.size == 0 ? {"WALLABY_CONFIG_VERSION"=>"0"} : vnc[0].config
+- end
+-
+- def hasVersionedNodeConfig(node, ver=nil)
+- ver ||= ::Rhubarb::Util::timestamp
+- vnc, = VersionedNodeConfig.find_freshest(:select_by=>{:node=>VersionedNode[node]}, :group_by=>[:node], :version=>ver)
+- vnc && vnc.version.version
+- end
+-
+- # NB: this will refuse to copy over an existing versioned config
+- def dupVersionedNodeConfig(from, to, ver=nil)
+- ver ||= ::Rhubarb::Util::timestamp
+- vnc, = VersionedNodeConfig.find_freshest(:select_by=>{:node=>VersionedNode[from]}, :group_by=>[:node], :version=>ver)
+- return 0 unless vnc
+- toc, = VersionedNodeConfig.find_freshest(:select_by=>{:node=>VersionedNode[to]}, :group_by=>[:node], :version=>ver)
+- toc = VersionedNodeConfig.create(:version=>vnc.version, :node=>VersionedNode[to], :config=>vnc.config.dup) unless toc
+- toc.version.version
+- end
+- end
+-
+- module InstanceMethods
+- def internal_get_node_config(node)
+- node_obj = VersionedNode[node]
+- cnfo = VersionedNodeConfig.find_by(:version=>self, :node=>node_obj)
+- result = (cnfo && cnfo.size == 1 && cnfo[0].config) || {}
+- fixed_result = ConfigUtils.fix_config_values(result)
+- fixed_result
+- end
+-
+- def internal_set_node_config(node, config)
+- node_obj = VersionedNode[node]
+- vnc = VersionedNodeConfig.create(:version=>self, :node=>node_obj, :config=>config)
+- # vnc.send(:update, :created, self.version)
+- end
+- end
+-
+- def self.included(receiver)
+- receiver.extend ClassMethods
+- receiver.send :include, InstanceMethods
+- end
+- end
+-
+ module LWSerializedVersionedConfigLookup
+ module ClassMethods
+ def getVersionedNodeConfig(node, ver=nil)
+@@ -493,10 +446,7 @@ module Mrg
+
+ private
+
+- case STORAGE_PLAN
+- when :serialized then include SerializedVersionedConfigLookup
+- when :lw_serialized then include LWSerializedVersionedConfigLookup
+- end
++ include LWSerializedVersionedConfigLookup
+ end
+
+ class VersionedNode
+--
+1.7.7.6
+
diff --git a/0011-spec-file-for-v0.15.1-3.patch b/0011-spec-file-for-v0.15.1-3.patch
new file mode 100644
index 0000000..1320408
--- /dev/null
+++ b/0011-spec-file-for-v0.15.1-3.patch
@@ -0,0 +1,26 @@
+From 989533bc4e1bb4167dc1d663da57a73b6ae151b3 Mon Sep 17 00:00:00 2001
+From: Will Benton <willb at redhat.com>
+Date: Tue, 26 Jun 2012 23:08:25 -0500
+Subject: [PATCH 11/11] spec file for v0.15.1-3
+
+---
+ wallaby.spec.in | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/wallaby.spec.in b/wallaby.spec.in
+index 61cefc8..9d4f4b4 100644
+--- a/wallaby.spec.in
++++ b/wallaby.spec.in
+@@ -292,6 +292,9 @@ fi
+
+ %changelog
+
++* Tue Jun 26 2012 willb <willb at redhat> - 0.15.1-3
++- fixes for some stealthier serialized-configuration type-sniffing bugs and attendant nasty crashes (BZ 835713)
++
+ * Thu Jun 21 2012 willb <willb at redhat> - 0.15.1-2
+ - fixes to skeleton group support for walk-in nodes
+ - more resilient Store#activateConfiguration in the face of event failure/workaround for QMF event problems on F17
+--
+1.7.7.6
+
diff --git a/sources b/sources
index db464ac..311ce39 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-7e5b7133453c920d8c99944d29d1d22a wallaby-0.13.1.tar.gz
+db77431fccc3ddc201c5186f6fd1487e wallaby-0.15.1.tar.gz
diff --git a/wallaby.spec b/wallaby.spec
index 5e99c66..dcb4109 100644
--- a/wallaby.spec
+++ b/wallaby.spec
@@ -12,6 +12,11 @@
%global building_for_el5 0
%endif
+%if (0%{?fedora} >= 17 && 0%{?rhel} >= 6)
+%global
+%global wallaby_uid -u 181
+%endif
+
%if (0%{?fedora} != 0)
%global has_sinatra 1
%else
@@ -34,19 +39,27 @@
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%endif
+
+
Summary: Condor pool configuration service with QMF interface
Name: wallaby
-Version: 0.13.1
-Release: 2%{?dist}
+Version: 0.15.1
+Release: 3%{?dist}
Group: Applications/System
License: ASL 2.0
URL: http://git.fedorahosted.org/git/grid/wallaby.git
Source0: https://fedorahosted.org/releases/g/r/grid/%{name}-%{version}.tar.gz
-Patch0: 0001-replace-commands-will-blank-a-field-if-no-list-is-pr.patch
-Patch1: 0002-Added-command-to-remove-a-snapshot.patch
-Patch2: 0003-additional-logging-and-failsafe-in-Parameter-default.patch
-Patch3: 0004-Added-getMustChangeParams-to-Store-in-config-client.patch
-Patch4: 0005-Fixed-issue-blanking-non-param-type-relationships.patch
+Patch0: 0001-Fixes-to-skeleton-group-support.patch
+Patch1: 0002-updated-spec-for-0.15.1-2.patch
+Patch2: 0003-More-resilient-activation-on-F17.patch
+Patch3: 0004-Spurious-configuration-removal-off-by-default.patch
+Patch4: 0005-updated-spec-again-in-advance-of-0.15.1-2-build.patch
+Patch5: 0006-Added-test-case-duplicating-Matt-s-failure-case.patch
+Patch6: 0007-Added-more-assertions-to-prior-test-case.patch
+Patch7: 0008-Workaround-for-artifacts-of-type-sniffing-errors-in-.patch
+Patch8: 0009-Removed-unused-versioned-config-implementation.patch
+Patch9: 0010-Removed-oldstyle-versioned-configurations.patch
+Patch10: 0011-spec-file-for-v0.15.1-3.patch
%if %{building_for_el5}
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%endif
@@ -146,6 +159,12 @@ Wallaby.
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
%build
sed 's/^export //' < etc/sysconfig/wallaby-agent > etc/sysconfig/wallaby-agent-env
@@ -216,15 +235,14 @@ rm -rf %{buildroot}
%{_initrddir}/wallaby
%endif
-%pre
+%pre -n ruby-wallaby
getent group wallaby >/dev/null || groupadd -r wallaby
getent group condor >/dev/null || groupadd -r condor
getent passwd wallaby >/dev/null || \
- useradd -r -g condor -d %{_localstatedir}/lib/wallaby -s /sbin/nologin \
+ useradd -r %{?wallaby_uid} -g condor -d %{_localstatedir}/lib/wallaby -s /sbin/nologin \
-c "Owner of Wallaby service" wallaby
exit 0
-
%if %{want_systemd}
%post
if [ $1 -eq 1 ] ; then
@@ -294,6 +312,42 @@ fi
%changelog
+* Tue Jun 26 2012 willb <willb at redhat> - 0.15.1-3
+- fixes for some stealthier serialized-configuration type-sniffing bugs and attendant nasty crashes (BZ 835713)
+
+* Thu Jun 21 2012 willb <willb at redhat> - 0.15.1-2
+- fixes to skeleton group support for walk-in nodes
+- more resilient Store#activateConfiguration in the face of event failure/workaround for QMF event problems on F17
+- wallaby-agent no longer deletes potentially-spurious configurations by default
+
+* Wed Jun 20 2012 willb <willb at redhat> - 0.15.1-1
+- fixes bz 834141
+- packaging improvements
+- base-db documenter improvements from upstream (internal only; not packaged)
+
+* Wed Jun 13 2012 willb <willb at redhat> - 0.15.0-1
+- sensible/unified treatment of skeleton group and default group
+
+* Thu May 31 2012 willb <willb at redhat> - 0.14.3-1
+- fixes bz 748507
+
+* Thu May 10 2012 willb <willb at redhat> - 0.14.2-2
+- fixes a trivial crashing bug that sneaked in to the prior package
+
+* Thu May 10 2012 willb <willb at redhat> - 0.14.2-1
+- packaging improvements: ruby-wallaby now creates the wallaby user, and it does so with a proper UID on F17+ and EL6+
+- base db documentation generator (non-end-user visible)
+- shell support for inspecting node configs (non-end-user visible for now, but used by ruby implementations of ccs/ccp; BZ820419)
+
+* Thu Apr 19 2012 willb <willb at redhat> - 0.14.1-1
+- preliminary tool support for annotations
+- affectedEntities and affectedNodes methods on Store objects
+- API minor version bump; API is now 20101031.5
+
+* Mon Apr 16 2012 willb <willb at redhat> - 0.14.0-1
+- "annotation" property and "setAnnotation" method on snapshots and all configuration entities
+- API minor version bump
+
* Mon Mar 26 2012 willb <willb at redhat> - 0.13.1-2
- F17 fixes
More information about the scm-commits
mailing list