File indexing completed on 2026-04-19 08:00:02
0001 import json
0002 import os
0003 import sys
0004
0005 from pandaharvester.harvestercore import core_utils
0006 from pandaharvester.harvestercore.plugin_factory import PluginFactory
0007
0008
0009 _logger = core_utils.setup_logger("direct_ssh_bot")
0010
0011
0012
0013 class DirectSshBot(object):
0014
0015 def run(self):
0016 tmpLog = _logger
0017 try:
0018
0019 param_dict = json.load(sys.stdin)
0020 plugin_config = param_dict["plugin_config"]
0021 function_name = param_dict["function_name"]
0022 tmpLog = core_utils.make_logger(_logger, f"pid={os.getpid()}", method_name=function_name)
0023 tmpLog.debug("start")
0024 args = core_utils.unpickle_from_text(str(param_dict["args"]))
0025 kwargs = core_utils.unpickle_from_text(str(param_dict["kwargs"]))
0026
0027 pluginFactory = PluginFactory(no_db=True)
0028 core = pluginFactory.get_plugin(plugin_config)
0029
0030 ret = getattr(core, function_name)(*args, **kwargs)
0031
0032 return_dict = {"return": core_utils.pickle_to_text(ret), "args": core_utils.pickle_to_text(args), "kwargs": core_utils.pickle_to_text(kwargs)}
0033 tmpLog.debug("done")
0034 except Exception as e:
0035 errMsg = core_utils.dump_error_message(tmpLog)
0036 return_dict = {"exception": core_utils.pickle_to_text(e), "dialog": core_utils.pickle_to_text(errMsg)}
0037 return json.dumps(return_dict)
0038
0039
0040
0041
0042
0043 def main():
0044
0045 bot = DirectSshBot()
0046 ret = bot.run()
0047
0048 print(ret)
0049
0050
0051 if __name__ == "__main__":
0052 main()