/opt/imunify360/venv/lib/python3.11/site-packages/im360/plugins/__pycache__
� �B���$�� � � d Z ddlZddlZddlZddlmZ ddlmZ ddlm Z m Z ddlmZ ddl mZ ej e� � Z G d� d e j � � ZdS ) zDPlugin that detects whether IDS has set on non-resident agent start.� N)�utils)�safe_cancel_task)�plugins�messages��strategy)�configc �l � � e Zd ZdZ� fd�Zd� Zd� Z ej e � � d� � � Z d� Zd� Z� xZ S )�StrategyGetterz8Send StrategyChange message on non-resident agent start.c �H �� t � � j di |�� d | _ d S )N� )�super�__init__�_StrategyGetter__task)�self�kwargs� __class__s ��R/opt/imunify360/venv/lib/python3.11/site-packages/im360/plugins/strategy_getter.pyr zStrategyGetter.__init__ s+ �� ������"�"�6�"�"�"������ c � �~ K � || _ || _ |� | � � � � � | _ d S �N)�_loop�_sink�create_task�_detect_strategy_changer )r �loop�sinks r � create_sourcezStrategyGetter.create_source s9 � � � ��� ��� ��&�&�t�'C�'C�'E�'E�F�F����r c � � K � | j �| j � � � rd S t | j � � � d {V �� d S r )r �doner �r s r �shutdownzStrategyGetter.shutdown sN � � � ��;��$�+�"2�"2�"4�"4���F��t�{�+�+�+�+�+�+�+�+�+�+�+r c � �� K � t j t j � � 5 | � � � � d{V �� t j t j j � � � d{V �� �D# 1 swxY w Y dS )z+Check whether IDS has changed periodically.TN) � contextlib�suppress�asyncio�CancelledError�_refresh_strategy�sleepr �Subsys�THIRD_PARTY_IDS_CHECK_TIMEOUTr! s r r z&StrategyGetter._detect_strategy_change! s� � � � � � ��!7� 8� 8� � � ��,�,�.�.�.�.�.�.�.�.�.��m��M�?�� � � � � � � � � � � � � ���� � � � � � s �AA'�'A+�.A+c � �4 K � t j � � � }|t j j k r| � |� � � d {V �� d S d S # t j $ r Y d S t $ r&}t � d|� � Y d }~d S d }~ww xY w)NzFailed to get strategy, %s) r �Strategy�get�current�_on_strategy_changedr&