| Linux server27.hostingraja.org 2.6.32-954.3.5.lve1.4.93.el6.x86_64 #1 SMP Wed Oct 4 17:04:29 UTC 2023 x86_64 Path : /opt/imunify360/venv/share/imunify360/scripts/ |
| Current File : //opt/imunify360/venv/share/imunify360/scripts/remote_iplist.py |
#!/opt/imunify360/venv/bin/python3
"""
Usage: /opt/imunify360/venv/bin/python3 remote_iplist.py
"""
import argparse
import asyncio
import json
import sys
from defence360agent.contracts.config import Model
from defence360agent.internals import logger
from defence360agent.model import instance, tls_check
from defence360agent.utils.benchmark import Benchmark
from im360.files import WHITELISTS, Index
from im360.internals.core import ip_versions
from im360.plugins.resident.remote_iplist import RemoteIPListPlugin
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser()
parser.add_argument(
"-j",
"--json",
action="store_true",
help="output more information in JSON format",
)
return parser.parse_args()
def setup_environment():
logger.reconfigure()
ip_versions.init()
instance.db.init(Model.PATH)
instance.db.execute_sql(
"ATTACH '{}' AS resident".format(Model.RESIDENT_PATH)
)
Index.add_type(WHITELISTS, "whitelist/v2", 0o770, 0o660, all_zip=True)
async def run(args: argparse.Namespace) -> None:
try:
plugin = RemoteIPListPlugin()
with Benchmark() as bench:
(
total_blocked_count,
total_unblocked_count,
sync_point,
delay_s,
) = await plugin.do_single_update()
if args.json:
print(
json.dumps(
{
"unblocked": total_unblocked_count,
"blocked": total_blocked_count,
"sync_point": sync_point,
"elapsed": bench.elapsed_time_ms,
"delay": delay_s,
},
indent=True,
)
)
else:
print(delay_s)
except Exception as ex:
print(ex, file=sys.stderr)
def main():
args = parse_args()
loop = asyncio.get_event_loop()
tls_check.reset()
setup_environment()
loop.run_until_complete(run(args))
if __name__ == "__main__":
main()