Przeglądaj źródła

Bug fix with actor, @TODO: add orchestrator with appropriate design pattern

steve 8 lat temu
rodzic
commit
45bd19cd66
1 zmienionych plików z 21 dodań i 5 usunięć
  1. 21 5
      src/utils/agents/actor.py

+ 21 - 5
src/utils/agents/actor.py

@@ -32,6 +32,8 @@ class Actor(Thread):
 	def execute(self,cmd):
 		stream = None
 		try:
+                        print self.getIdentifier()
+                        print cmd
 			handler = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
 			stream = handler.communicate()[0]
 		except Exception,e:
@@ -42,7 +44,15 @@ class Actor(Thread):
                 message = json.loads(stream)
                 content = message['content']
                 sender = message['from']
-                self.post(to=sender,content=content)
+                if content.lower() == 'quit' :
+                    channel.close()
+                    print " *** ",self.getIdentifier()
+                elif content.lower() == 'ping':
+                    self.post(to=sender,content="1")
+                else:
+                    self.process(content)
+                    self.post(to=sender,content=content)
+                
                 #message = None
                 #try:
                     #message = json.loads(stream)
@@ -62,10 +72,10 @@ class Actor(Thread):
                 host	= self.config['api']
                 uid	= self.config['key']
                 qid	= to#self.config['id']
-                print [host,uid,qid]
+                
                 qwriter = QueueWriter(host=host,uid=uid,qid=qid)
                 qwriter.init(qid)
-                qwriter.write(label=qid,row="got it")
+                qwriter.write(label=qid,row=content)
                 #qwriter.close()
                 pass
 	def run(self):
@@ -82,7 +92,7 @@ class Kill(Actor):
 	def __init__(self,config):
 		Actor.__init__(self,config)
 	def process(self,item):
-		cmd = "".join(["ps -eo pid,command|grep ",item,'|grep -E"^ {0,1}[0-9]+" -o|xargs kill -9'])
+		cmd = "".join(["ps -eo pid,command|grep ",item,'|grep -E "^ {0,1}[0-9]+" -o|xargs kill -9'])
 		self.execute(cmd)
 		#
 		# We need to make sure we can get assess the process on this server
@@ -96,9 +106,15 @@ class Start(Actor):
 		cmd = " ".join([path,args])
 		self.execute(cmd)
 	
+"""
+    This class is designed to send a message to a given AMQP enpoint
+    The AMQP endpoint is implemented by QueueWriter class
+"""
 class Alert(Actor):
-	pass
+        def process(self,item):
+                pass
 
+            
 config = {"id":"demo","key":"[0v8]-247&7!v3","api":"localhost"}
 actor = Kill(config)
 actor.start()