File: //usr/lib/fm-agent/library/__pycache__/forticlient_helper.cpython-39.pyc
a
��i� � @ s@ d dl Z d dlmZ d dlZeeed�dd�ZG dd� d�ZdS )� N)�path)�
ems_serial�environment�returnc C s: t �d�}|�| �� � |�|�� � |�� dd� }|S )zO
Calculate a new customer key based on the ems_serial and environment.
�sha256r � )�hashlib�new�update�encode� hexdigest)r r Zhasher�customer_key� r �//usr/lib/fm-agent/library/forticlient_helper.py�calculate_customer_key s
r c @ s4 e Zd ZdZdZdd� Zdd� Zdd� Zd d
� ZdS )�ForticlientHelperz7/Library/Application Support/Fortinet/FortiClient/data/z@/Library/Application Support/Fortinet/FortiClient/conf/vpn.plistc C s ddd�| _ t�� | _d S )NZforticlient_serialr )zfct_uid.confzEMS_sn.conf)�data_files_map�logging� getLogger�log)�selfr r r �__init__ s �zForticlientHelper.__init__c C s� z�dd l m} |�|�}|jdkr0|�d| �}|j}z|�d�}|d|� }W n Y n0 |�� �d�}t|�dk r~W d S |d }|d }|d } t|�d
kr�|d }
n|d }
|d
kr�|dkr�|
dkr�| W S W d S Y d S 0 d S )Nr � zhttp://�:�.� ���������� ������ZcomZ fortisase�edge) �urllib.parse�parse�urlparse�scheme�netloc�index�lower�split�len)r �urlr% Zparsed�host�idxZ
host_partsZ top_level�domainr r"