bugfix in child processes management - review initscript install
[nodemanager.git] / accounts.py
index ffb9d52..4357b8b 100644 (file)
@@ -3,9 +3,9 @@
 
 """Functionality common to all account classes.
 
-Each subclass of Account must provide five methods: 
-  (*) create() and destroy(), which are static; 
-  (*) configure(), start(), and stop(), which are not.  
+Each subclass of Account must provide five methods:
+  (*) create() and destroy(), which are static;
+  (*) configure(), start(), and stop(), which are not.
 
 configure(), which takes a record as its only argument, does
 things like set up ssh keys. In addition, an Account subclass must
@@ -77,7 +77,6 @@ class Account:
         logger.verbose('accounts: Initing account %s'%rec['name'])
         self.name = rec['name']
         self.keys = ''
-        self.initscriptchanged = False
         self.configure(rec)
 
     @staticmethod
@@ -132,7 +131,7 @@ class Worker:
         self._acct = None  # the account object currently associated with this worker
 
     def ensure_created(self, rec, startingup = Startingup):
-        """Check account type is still valid.  If not, recreate sliver.  
+        """Check account type is still valid.  If not, recreate sliver.
 If still valid, check if running and configure/start if not."""
         logger.log_data_in_file(rec,"/var/lib/nodemanager/%s.rec.txt"%rec['name'],
                                 'raw rec captured in ensure_created',logger.LOG_VERBOSE)
@@ -144,22 +143,19 @@ If still valid, check if running and configure/start if not."""
             try: next_class.create(self.name, rec['vref'])
             finally: create_sem.release()
         if not isinstance(self._acct, next_class): self._acct = next_class(rec)
-        if startingup or \
-          not self.is_running() or \
-          next_class != curr_class or \
-          self._acct.initscriptchanged:
+        if not self.is_running() or startingup or next_class != curr_class:
             self.start(rec)
         else: self._acct.configure(rec)
 
     def ensure_destroyed(self): self._destroy(self._get_class())
 
-    def start(self, rec, d = 0): 
+    def start(self, rec, d = 0):
         self._acct.configure(rec)
         self._acct.start(delay=d)
 
     def stop(self): self._acct.stop()
 
-    def is_running(self): 
+    def is_running(self):
         if (self._acct != None) and self._acct.is_running():
             status = True
         else: