File: //lib/python3/dist-packages/compose/__pycache__/network.cpython-310.pyc
o
    S�`�-  �                   @   s  d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d dlm
Z
 d	d
lmZ d	dlmZ d	dlmZ d	d
lmZ d	dlmZ e �e�Zg d�ZG dd� d�Zdd� ZG dd� de�Zdd� Zdd� Zdd� ZG dd� d�Z dd� Z!d d!� Z"d"d#� Z#dS )$�    N)�OrderedDict)�
itemgetter)�NotFound)�
IPAMConfig)�IPAMPool)�version_gte)�
version_lt�   )�__version__)�ConfigurationError)�
LABEL_NETWORK)�
LABEL_PROJECT)�
LABEL_VERSION)z.com.docker.network.driver.overlay.vxlanid_listz$com.docker.network.windowsshim.hnsidz*com.docker.network.windowsshim.networknamec                   @   sn   e Zd Z			ddd�Zdd� Zdd� Zdd	d
�Zedd� �Zed
d� �Z	edd� �Z
edd� �Zdd� ZdS )�NetworkNFc                 C   sP   || _ || _|| _|| _|| _t|�| _|| _|| _|	| _	|
| _
|| _d | _d S �N)
�client�project�name�driver�driver_opts�create_ipam_config_from_dict�ipam�external�internal�enable_ipv6�labels�custom_name�legacy)�selfr   r   r   r   r   r   r   r   r   r   r   � r   �1/usr/lib/python3/dist-packages/compose/network.py�__init__   s   
zNetwork.__init__c                 C   s�   | j r,| jdkr
d S z| ��  t�d�| j�� W d S  ty+   tdj| j	dd���w | �
�  z| j| jd�}t|| � W d S  ty{   d}| jrQd�| j�}t�
d	�| j	|�� | jj| j	| j| j| j| j| j| jt| jjd
�ptd dd�	 Y d S w )
N�overlayz@Network {} declared as external. No new network will be created.z�Network {name} declared as external, but could not be found. Please create the network manually using `{command} {name}` and try again.zdocker network create)r   �command�r   zthe default driverzdriver "{}"zCreating network "{}" with {}z1.24T)	r   r   �optionsr   r   r   r   �
attachable�check_duplicate)r   r   �inspect�log�debug�formatr   r   r   �	full_name�_set_legacy_flagr   �check_remote_network_config�infor   �create_networkr   r   r   r   �_labelsr   �_version)r   �data�driver_namer   r   r    �ensure-   sT   
�
�������zNetwork.ensurec                 C   s<