response message format fixed

This commit is contained in:
Volkan Şahin 2016-04-12 17:30:53 +03:00
parent 9cc063f2bc
commit aabb6c51c6

View file

@ -1,13 +1,12 @@
#!/usr/bin/python3 #!/usr/bin/python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Author: İsmail BAŞARAN <ismail.basaran@tubitak.gov.tr> <basaran.ismaill@gmail.com> # Author: İsmail BAŞARAN <ismail.basaran@tubitak.gov.tr> <basaran.ismaill@gmail.com>
import threading
import subprocess import subprocess
import threading
from base.Scope import Scope from base.Scope import Scope
from base.model.Response import Response
from base.model.MessageType import MessageType from base.model.MessageType import MessageType
from base.model.MessageCode import MessageCode from base.model.Response import Response
from base.messaging.Messaging import Messaging
class Context(object): class Context(object):
@ -35,7 +34,6 @@ class Plugin(threading.Thread):
def __init__(self, name, InQueue): def __init__(self, name, InQueue):
threading.Thread.__init__(self) threading.Thread.__init__(self)
print('name:'+name)
self.name = name self.name = name
self.InQueue = InQueue self.InQueue = InQueue
@ -43,7 +41,8 @@ class Plugin(threading.Thread):
self.logger = scope.getLogger() self.logger = scope.getLogger()
self.response_queue = scope.getResponseQueue() self.response_queue = scope.getResponseQueue()
self.messaging = scope.getMessageManager() self.messaging = scope.getMessageManager()
self.messager =None self.db_service = scope.getDbService()
self.messager = None
self.keep_run = True self.keep_run = True
self.context = Context() self.context = Context()
@ -54,16 +53,14 @@ class Plugin(threading.Thread):
try: try:
item_obj = self.InQueue.get(block=True) item_obj = self.InQueue.get(block=True)
obj_name = item_obj.obj_name obj_name = item_obj.obj_name
print(obj_name)
if obj_name == "TASK": if obj_name == "TASK":
command = Scope.getInstance().getPluginManager().findCommand(self.getName(), item_obj.get_command_cls_id().lower()) command = Scope.getInstance().getPluginManager().findCommand(self.getName(), item_obj.get_command_cls_id().lower())
command.handle_task(item_obj, self.context) command.handle_task(item_obj, self.context)
# TODO create response message from context and item_obj. item_obj is task # TODO create response message from context and item_obj. item_obj is task
#TODO Message Code keep response = Response(type=MessageType.TASK_STATUS.value, id=item_obj.get_id(), code=self.context.get('responseCode'), message=self.context.get('responseMessage'), data=self.context.get('responseData'), content_type=self.context.get('contentType'))
response = Response(type=self.context.get('type'), id=self.context.get('taskId'), code=self.context.get('responseCode'), message=self.context.get('responseMessage'), data=self.context.get('responseData'), content_type=self.context.get('contentType')) # self.response_queue.put(self.messaging.response_msg(response)) #TODO DEBUG
#self.response_queue.put(self.messaging.response_msg(response)) #TODO DEBUG Scope.getInstance().getMessager().send_direct_message(self.messaging.task_status_msg(response)) # TODO REMOVE
Scope.getInstance().getMessager().send_direct_message(self.messaging.response_msg(response)) #TODO REMOVE
# Empty context for next use # Empty context for next use
self.context.empty_data() self.context.empty_data()
@ -73,10 +70,13 @@ class Plugin(threading.Thread):
policy_module = Scope.getInstance().getPluginManager().findPolicyModule(item_obj.get_plugin().get_name()) policy_module = Scope.getInstance().getPluginManager().findPolicyModule(item_obj.get_plugin().get_name())
self.context.put('username', item_obj.get_username()) self.context.put('username', item_obj.get_username())
policy_module.handle_policy(profile_data, self.context) policy_module.handle_policy(profile_data, self.context)
#TODO Message Code keep Set default message if not exist
response = Response(type=self.context.get('message_type'), id=item_obj.id, code=self.context.get('message_code'), message=self.context.get('message'), data=self.context.get('data'), content_type=self.context.get('content_type'), execution_id='get_execution_id') execution_id = self.get_execution_id(item_obj.get_id())
#self.response_queue.put(self.messaging.response_msg(response)) #TODO DEBUG policy_ver = self.get_policy_version(item_obj.get_id())
Scope.getInstance().getMessager().send_direct_message(self.messaging.response_msg(response))#TODO REMOVE
response = Response(type=MessageType.POLICY_STATUS.value, id=item_obj.get_id(), code=self.context.get('responseCode'), message=self.context.get('responseMessage'), data=self.context.get('responseData'), content_type=self.context.get('contentType'), execution_id=execution_id, policy_version=policy_ver)
# self.response_queue.put(self.messaging.response_msg(response)) #TODO DEBUG
Scope.getInstance().getMessager().send_direct_message(self.messaging.policy_status_msg(response)) # TODO REMOVE
# Empty context for next use # Empty context for next use
self.context.empty_data() self.context.empty_data()
@ -90,5 +90,19 @@ class Plugin(threading.Thread):
# TODO error log here # TODO error log here
self.logger.error("[Plugin] Plugin running exception " + str(e)) self.logger.error("[Plugin] Plugin running exception " + str(e))
def get_execution_id(self, profile_id):
try:
return self.db_service.select_one_result('policy', 'execution_id', ' id={}'.format(profile_id))
except Exception as e:
print(str(e))
return None
def get_policy_version(self, profile_id):
try:
return self.db_service.select_one_result('policy', 'version', ' id={}'.format(profile_id))
except Exception as e:
print(str(e))
return None
def getName(self): def getName(self):
return self.name return self.name