def _msg_create_ask_me(self):
     a_msg = claude_msgs_pb2.Msg()
     a_msg.type = 2
     (msg, msg_type_name) = form_message(a_msg)
     
     msg_bytes = a_msg.SerializeToString()
     self.producer_app_monitor.put(msg_bytes)
 def _msg_create_job_exists(self, jid, returnqueue, returnip):
     a_msg = claude_msgs_pb2.Msg()
     a_msg.type = 11
     (msg, msg_type_name) = form_message(a_msg)
     
     msg.jid = jid
     
     msg_bytes = a_msg.SerializeToString()
     producer = Producer(returnqueue, host=returnip)
     producer.put(msg_bytes)
 def _msg_create_job_finished(self, job):
     a_msg = claude_msgs_pb2.Msg()
     a_msg.type = 10
     (msg, msg_type_name) = form_message(a_msg)
     
     msg.jid = job.jid
     if job.state == job_states.FAILED:
         msg.errorcode = 1
         
     if job.systemoutput:
         msg.systemoutput = job.systemoutput
         
     if job.durationoutput:
         msg.durationoutput = job.durationoutput
     
     msg_bytes = a_msg.SerializeToString()
     producer = Producer(job.returnqueue, host=job.returnip)
     producer.put(msg_bytes)
Exemple #4
0
    def _playApp(self, app):
        if app.interface_bits == AppState.bits['NEW']:
            a_msg = claude_msgs_pb2.Msg()
            a_msg.type = 4
            (msg, msg_type_name) = form_message(a_msg)
            
            msg.jid = app.app_id
            msg.rresources.ram = 1
            msg.rresources.cpu = 1
            msg.rresources.disk = 1
            msg.script = 'grokhgs'
            msg.returnip = 'localhost'
            msg.returnqueue = settings.WEB_INTERFACE_QUEUE
            msg.s3cfg = True
            msg.keepworkingdir = True
            
            param = msg.params.add()
            param.key = 'app_input'
            param.value = ''
            param = msg.params.add()
            param.key = 'app_output'
            param.value = ''
            
            #msg_bytes = a_msg.SerializeToString()
            #producer = Producer(returnqueue, host=returnip)
            #producer.put(msg_bytes)
            
            '''message = messaging.createMessage(
                                    'create_app', 
                                    return_queue=settings.WEB_INTERFACE_QUEUE,
                                    web_interface_id=app.app_id,
                                    app_type=app.app_type,
                                    app_params=json.loads(app.app_params),
                                    )

            producerAppManager.publish(message)
            
            app.interface_bits = AppState.bits['STARTING']
            app.save()'''
            
            '''message = messaging.createMessage(
 def _check_queue(self):
     ret = False
     
     msg_bytes = self.consumer.get()
     if msg_bytes:
         ret = True
         a_msg = claude_msgs_pb2.Msg()
         a_msg.ParseFromString(msg_bytes)
         (msg, msg_type_name) = form_message(a_msg)
         
         if a_msg.type == 3:
             self._msg_handler_add_resource(msg)
         elif a_msg.type == 4:
             self._msg_handler_add_job(msg)
         elif a_msg.type == 6:
             self._msg_handler_req_apps_to_monitor(msg)
         elif a_msg.type == 8:
             self._msg_handler_finished_apps(msg)
         elif a_msg.type == 9:
             self._msg_handler_kill_job(msg)
     
     return ret
 def _msg_handler_req_apps_to_monitor(self, msg):
     running_jobs = self.job_manager.get_jobs_in_state(job_states.RUNNING)
     
     if len(running_jobs) > 0:
         a_msg = claude_msgs_pb2.Msg()
         a_msg.type = 7
         (msg, msg_type_name) = form_message(a_msg)
         
         for running_job in running_jobs:
             try:
                 resource = self.res_manager.get_resource_by_rid(running_job.rid)
                 
                 job = msg.jobs.add()
                 job.jid = running_job.jid
                 job.host = resource.host
                 job.credentials.username = resource.credentials.username
                 job.credentials.password = resource.credentials.password
                 job.credentials.proxy_host = resource.credentials.proxy_host
                 job.credentials.proxy_username = resource.credentials.proxy_username
                 job.pid = running_job.pid
             except CLAUDEResourceDoesNotExist:
                 logger.error('Something is terribly wrong with the system...', exc_info=True)
         msg_bytes = a_msg.SerializeToString()
         self.producer_app_monitor.put(msg_bytes)