Author: jure
Date: Wed Apr 3 07:47:31 2013
New Revision: 1463852
URL: http://svn.apache.org/r1463852
Log:
Make sure MultiProductSystem is always first in global setup participant list
(upgrade related)
Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/env.py
Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/env.py
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/env.py?rev=1463852&r1=1463851&r2=1463852&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/env.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/env.py Wed Apr 3
07:47:31 2013
@@ -95,8 +95,19 @@ class Environment(trac.env.Environment):
self.verify()
self.setup_config()
- self._global_setup_participants =
set.intersection(set(self.setup_participants),
-
set(self.multi_product_support_components))
+ self._global_setup_participants =
list(set.intersection(set(self.setup_participants),
+
set(self.multi_product_support_components)))
+ # make sure MultiProductSystem is always the first in the global setup
+ # participant list
+ for idx, participant in zip(range(0,
len(self._global_setup_participants)),
+ self._global_setup_participants):
+ if isinstance(participant, MultiProductSystem):
+ if not idx:
+ break
+ self._global_setup_participants.insert(0,
+
self._global_setup_participants.pop(idx))
+ break
+
self._product_setup_participants = [participant for participant in
self.setup_participants
if not participant in
self._global_setup_participants]
@@ -181,10 +192,7 @@ class Environment(trac.env.Environment):
self.log.info("%s.%s needs upgrade in
environment %s...",
participant.__module__,
participant.__class__.__name__,
env)
- if isinstance(participant, MultiProductSystem):
- upgraders = [(env, participant), ] +
upgraders
- else:
- upgraders.append((env, participant))
+ upgraders.append((env, participant))
return upgraders
def upgraders_for_product_envs():