#!/opt/imunify360/venv/bin/python3 """ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. Copyright © 2019 Cloud Linux Software Inc. This software is also available under ImunifyAV commercial license, see <https://www.imunify360.com/legal/eula> """ from imav import rpc_handlers from imav.application.settings import configure from imav.internals.lazy_load import AVSource from imav.internals.im360 import deploy_im360 from imav.malwarelib.utils import reset_malware_schedule from imav.server import start from defence360agent.run import CORE_PLUGINS_PACKAGES from defence360agent.contracts.plugins import BasePlugin from defence360agent.internals.cln import subscribe_to_license_changes from defence360agent.internals.iaid import IndependentAgentIDAPI from defence360agent.internals.lazy_load import CoreSource from defence360agent.utils import make_coro, importer, Scope AV_PLUGINS_PACKAGES = CORE_PLUGINS_PACKAGES + ( "imav.plugins", "imav.malwarelib.plugins", "imav.feature_management.plugins", ) def get_plugins() -> set: """Return plugins in unspecified order.""" importer.load_packages(CoreSource.MESSAGES + AVSource.MESSAGES) importer.load_packages(AV_PLUGINS_PACKAGES) # use lexicographical order (but don't rely on it in code) return sorted( [ plugin for plugin in BasePlugin.get_active_plugins() if plugin.SCOPE is not Scope.IM360 ], key=lambda item: f"{item.__module__}.{item.__name__}", ) async def init_actions(): subscribe_to_license_changes(make_coro(reset_malware_schedule)) subscribe_to_license_changes(deploy_im360) subscribe_to_license_changes(IndependentAgentIDAPI.reactivate) IndependentAgentIDAPI.add_initial_task() rpc_handlers.init() def run(): configure() plugins = get_plugins() start(plugins, init_actions) if __name__ == "__main__": run()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
application | Folder | 0755 |
|
|
contracts | Folder | 0755 |
|
|
feature_management | Folder | 0755 |
|
|
internals | Folder | 0755 |
|
|
malwarelib | Folder | 0755 |
|
|
migration_utils | Folder | 0755 |
|
|
migrations | Folder | 0755 |
|
|
model | Folder | 0755 |
|
|
plugins | Folder | 0755 |
|
|
rpc_tools | Folder | 0755 |
|
|
simple_rpc | Folder | 0755 |
|
|
subsys | Folder | 0755 |
|
|
__init__.py | File | 0 B | 0644 |
|
__main__.py | File | 828 B | 0644 |
|
_version.py | File | 868 B | 0644 |
|
cli.py | File | 1.83 KB | 0644 |
|
migrate.py | File | 1.61 KB | 0644 |
|
rpc_handlers.py | File | 1.31 KB | 0644 |
|
run.py | File | 2.42 KB | 0644 |
|
server.py | File | 15.63 KB | 0644 |
|