mirror of
https://github.com/Pardus-LiderAhenk/ahenk
synced 2025-01-11 07:32:15 +03:00
response message create-send
This commit is contained in:
parent
a282695c10
commit
dca5a2d720
5 changed files with 47 additions and 23 deletions
|
@ -29,11 +29,12 @@ class ExecutionManager(object):
|
||||||
self.logger = scope.getLogger()
|
self.logger = scope.getLogger()
|
||||||
self.db_service = scope.getDbService()
|
self.db_service = scope.getDbService()
|
||||||
|
|
||||||
self.event_manager.register_event(MessageType.EXECUTE_SCRIPT, self.execute_script)
|
#TODO DEBUG
|
||||||
self.event_manager.register_event(MessageType.REQUEST_FILE, self.request_file)
|
self.event_manager.register_event(str(MessageType.EXECUTE_SCRIPT), self.execute_script)
|
||||||
self.event_manager.register_event(MessageType.MOVE_FILE, self.move_file)
|
self.event_manager.register_event(str(MessageType.REQUEST_FILE), self.request_file)
|
||||||
self.event_manager.register_event(MessageType.EXECUTE_TASK, self.execute_task)
|
self.event_manager.register_event(str(MessageType.MOVE_FILE), self.move_file)
|
||||||
self.event_manager.register_event(MessageType.EXECUTE_POLICY, self.execute_policy)
|
self.event_manager.register_event(str(MessageType.EXECUTE_TASK), self.execute_task)
|
||||||
|
self.event_manager.register_event('EXECUTE_POLICY', self.execute_policy)
|
||||||
|
|
||||||
def execute_policy(self, arg):
|
def execute_policy(self, arg):
|
||||||
self.logger.debug('[ExecutionManager] Updating policies...')
|
self.logger.debug('[ExecutionManager] Updating policies...')
|
||||||
|
|
|
@ -112,7 +112,6 @@ class Messager(slixmpp.ClientXMPP):
|
||||||
print('----->'+str(msg['body']))
|
print('----->'+str(msg['body']))
|
||||||
self.event_manger.fireEvent(message_type, str(msg['body']))
|
self.event_manger.fireEvent(message_type, str(msg['body']))
|
||||||
|
|
||||||
|
|
||||||
def connect_to_server(self): # Connect to the XMPP server and start processing XMPP stanzas.
|
def connect_to_server(self): # Connect to the XMPP server and start processing XMPP stanzas.
|
||||||
try:
|
try:
|
||||||
self.logger.debug('[Messager] Connecting to server as thread')
|
self.logger.debug('[Messager] Connecting to server as thread')
|
||||||
|
|
|
@ -4,16 +4,17 @@
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
class Result(object):
|
|
||||||
|
class Response(object):
|
||||||
"""docstring for Plugin"""
|
"""docstring for Plugin"""
|
||||||
|
|
||||||
def __init__(self, type, id, code=None, message=None, context=None):
|
def __init__(self, type, id, code=None, message=None, data=None, content_type=None):
|
||||||
self.type = type
|
self.type = type
|
||||||
self.id = id
|
self.id = id
|
||||||
self.code = code
|
self.code = code
|
||||||
self.message = message
|
self.message = message
|
||||||
self.context = context.data
|
self.data = data
|
||||||
self.content_type = context.content_type
|
self.content_type = content_type
|
||||||
self.timestamp = str(datetime.datetime.now().strftime("%d-%m-%Y %I:%M"))
|
self.timestamp = str(datetime.datetime.now().strftime("%d-%m-%Y %I:%M"))
|
||||||
|
|
||||||
def get_type(self):
|
def get_type(self):
|
||||||
|
@ -41,21 +42,17 @@ class Result(object):
|
||||||
self.message = message
|
self.message = message
|
||||||
|
|
||||||
def get_data(self):
|
def get_data(self):
|
||||||
return self.context.data
|
return self.data
|
||||||
|
|
||||||
def set_data(self, data):
|
def set_data(self, data):
|
||||||
self.context.data = data
|
self.data = data
|
||||||
|
|
||||||
def get_content_type(self):
|
def get_content_type(self):
|
||||||
return self.context.content_type
|
return self.content_type
|
||||||
|
|
||||||
def set_content_type(self, content_type):
|
def set_content_type(self, content_type):
|
||||||
self.context.content_type = content_type
|
self.content_type = content_type
|
||||||
|
|
||||||
def get_timestamp(self):
|
def get_timestamp(self):
|
||||||
return self.timestamp
|
return self.timestamp
|
||||||
|
|
||||||
class Context():
|
|
||||||
def __init__(self, data=None, content_type=None):
|
|
||||||
self.data = type
|
|
||||||
self.content_type = id
|
|
|
@ -4,17 +4,26 @@
|
||||||
import threading
|
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.MessageCode import MessageCode
|
||||||
|
from base.messaging.Messaging import Messaging
|
||||||
|
|
||||||
|
|
||||||
class Context(object):
|
class Context(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.data = {}
|
self.data = {}
|
||||||
|
|
||||||
def put(self,var_name,data):
|
def put(self, var_name, data):
|
||||||
self.data[var_name] = data
|
self.data[var_name] = data
|
||||||
|
|
||||||
|
def get(self, var_name):
|
||||||
|
return self.data[var_name]
|
||||||
|
|
||||||
def empty_data(self):
|
def empty_data(self):
|
||||||
self.data = {}
|
self.data = {}
|
||||||
|
|
||||||
|
|
||||||
class Plugin(threading.Thread):
|
class Plugin(threading.Thread):
|
||||||
"""
|
"""
|
||||||
This is a thread inherit class and have a queue.
|
This is a thread inherit class and have a queue.
|
||||||
|
@ -25,12 +34,18 @@ class Plugin(threading.Thread):
|
||||||
threading.Thread.__init__(self)
|
threading.Thread.__init__(self)
|
||||||
self.name = name
|
self.name = name
|
||||||
self.InQueue = InQueue
|
self.InQueue = InQueue
|
||||||
|
|
||||||
scope = Scope.getInstance()
|
scope = Scope.getInstance()
|
||||||
self.logger = scope.getLogger()
|
self.logger = scope.getLogger()
|
||||||
|
self.response_queue = scope.getResponseQueue()
|
||||||
|
self.messaging = scope.getMessageManager()
|
||||||
|
self.messager =None
|
||||||
|
|
||||||
self.keep_run = True
|
self.keep_run = True
|
||||||
self.context = Context()
|
self.context = Context()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
|
||||||
while self.keep_run:
|
while self.keep_run:
|
||||||
try:
|
try:
|
||||||
item_obj = self.InQueue.get(block=True)
|
item_obj = self.InQueue.get(block=True)
|
||||||
|
@ -38,26 +53,36 @@ class Plugin(threading.Thread):
|
||||||
print(obj_name)
|
print(obj_name)
|
||||||
if obj_name == "TASK":
|
if obj_name == "TASK":
|
||||||
command = Scope.getInstance().getPluginManager().findCommand(self.getName(), item_obj.command_cls_id)
|
command = Scope.getInstance().getPluginManager().findCommand(self.getName(), item_obj.command_cls_id)
|
||||||
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
|
||||||
|
#item_obj.id ??
|
||||||
|
response = Response(type=MessageType.TASK_STATUS, id='id', code=MessageCode.TASK_PROCESSED, message='__message__', data=self.context.get('data'), content_type=self.context.get('content_type'))
|
||||||
|
#self.response_queue.put(self.messaging.response_msg(response)) #TODO DEBUG
|
||||||
|
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()
|
||||||
|
|
||||||
# TODO add result to response queue
|
|
||||||
elif obj_name == "PROFILE":
|
elif obj_name == "PROFILE":
|
||||||
plugin = item_obj.plugin
|
plugin = item_obj.plugin
|
||||||
plugin_name = plugin.name
|
plugin_name = plugin.name
|
||||||
profile_data = item_obj.profile_data
|
profile_data = item_obj.profile_data
|
||||||
policy_module = Scope.getInstance().getPluginManager().findPolicyModule(plugin_name)
|
policy_module = Scope.getInstance().getPluginManager().findPolicyModule(plugin_name)
|
||||||
|
|
||||||
policy_module.handle_policy(profile_data,self.context)
|
policy_module.handle_policy(profile_data, self.context)
|
||||||
# TODO create response message from context and item_obj. item_obj is profile
|
|
||||||
|
#TODO Message Code keep
|
||||||
|
#item_obj.id ??
|
||||||
|
response = Response(type=MessageType.POLICY_STATUS, id='id', code=MessageCode.POLICY_PROCESSED, message='__message__', data=self.context.get('data'), content_type=self.context.get('content_type'))
|
||||||
|
#self.response_queue.put(self.messaging.response_msg(response)) #TODO DEBUG
|
||||||
|
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()
|
||||||
|
|
||||||
|
|
||||||
elif obj_name == "KILL_SIGNAL":
|
elif obj_name == "KILL_SIGNAL":
|
||||||
self.keep_run = False
|
self.keep_run = False
|
||||||
self.logger.debug('[Plugin] Killing queue ! Plugin Name : ' + str(self.name))
|
self.logger.debug('[Plugin] Killing queue ! Plugin Name : ' + str(self.name))
|
||||||
|
|
|
@ -4,4 +4,6 @@
|
||||||
|
|
||||||
|
|
||||||
def handle_policy(profile_data,context):
|
def handle_policy(profile_data,context):
|
||||||
|
context.put('data','dataa')
|
||||||
|
context.put('content_type','type')
|
||||||
print("This is policy file - plugin 1")
|
print("This is policy file - plugin 1")
|
||||||
|
|
Loading…
Reference in a new issue