Esempio n. 1
0
class unittest_Igniter(unittest.TestCase):
   
  def setUp(self):
    self.igniter = Igniter('ping localhost', '/tmp/')
    self.process = subprocess.Popen(['ping', 'localhost'], shell=False, stdout=subprocess.PIPE)
    #file = open('/tmp/.lock','w')
    #file.write(str(self.process.pid))   
    #file.close()
    #self.igniter.lock = '/tmp/.lock'
    #self.igniter.lockpid = self.process.pid    
    
  def test_Igniter(self):      
    self.assertEqual(self.igniter.makeLock(),None)
    self.igniter.lock = '/tmp/.lock'
    self.igniter.lockpid = self.process.pid    
    file = open('/tmp/.lock','w')
    file.write(str(self.process.pid))   
    file.close()    
    print '\n'
    self.assertEqual(self.igniter.isLocked(),self.process.pid)
    try:      
      self.igniter.start()
      self.igniter.lockpid =''
    except:
      self.assertEqual(self.igniter.lockpid,self.process.pid)
    try:      
      self.igniter.status()
      self.igniter.lockpid =''
    except:
      self.assertEqual(self.igniter.lockpid,self.process.pid)
    try:      
      self.igniter.stop()
      self.igniter.lockpid =''
    except:
      self.assertEqual(self.igniter.lockpid,self.process.pid)    
    try:      
      self.igniter.status()
      self.igniter.lockpid =''
    except:
      self.assertEqual(self.igniter.lockpid,self.process.pid)      
    #try:      
      #self.igniter.start()
      #self.igniter.lockpid =''
    #except:
      #self.assertEqual(self.igniter.lockpid,self.process.pid)        
    try:
      self.process.terminate()
    except:
      pass
Esempio n. 2
0
   def reload(self):
      """
      If the process is locked (presence of a .lock file) and running (ps), send a SIGHUP
      signal to it. The function _reload will be called because SIGHUP signal is assigned 
      to it.
      """
      # Verify user is not root
      if os.getuid() == 0:
         print "FATAL: Do not reload as root. It will be a mess."
         sys.exit(2)
         
      if Igniter.isLocked(self) and not commands.getstatusoutput('ps -p ' + str(self.lockpid))[0]:
         # SIGHUP is sent to initiate the reload
         os.kill(self.lockpid, signal.SIGHUP) 
      else:
         print "No process to reload for %s (%s %s)!" % (self.flowName, self.direction, self.type)

      # In any case, we exit!!
      sys.exit(2)