HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/cloudinit/sources/helpers/__pycache__/upcloud.cpython-38.pyc
U

Ӈg��@sdddlZddlZddlmZddlmZddlmZe�e�Z	dd�Z
dd�Zddd�Zd
d�Z
dS)�N)�dmi)�net)�
url_helperc
Csdd�}g}t��}t�d|�|�d�D]�}t�d|�|�d�}||kr\td||f��|�d�}|�|�}t�d	||||�d
��d||d�}g}	|�d
�D]}
||
|�d��}|	�|�q�|	|d<|�|�q*|�d��r
t�d|�d��|�d|�d�d��d|d�S)aC

    Convert the UpCloud network metadata description into
    Cloud-init's version 1 netconfig format.

    Example JSON:
    {
      "interfaces": [
        {
          "index": 1,
          "ip_addresses": [
            {
              "address": "94.237.105.53",
              "dhcp": true,
              "dns": [
                "94.237.127.9",
                "94.237.40.9"
              ],
              "family": "IPv4",
              "floating": false,
              "gateway": "94.237.104.1",
              "network": "94.237.104.0/22"
            },
            {
              "address": "94.237.105.50",
              "dhcp": false,
              "dns": [],
              "family": "IPv4",
              "floating": true,
              "gateway": "",
              "network": "94.237.105.50/32"
            }
          ],
          "mac": "32:d5:ba:4a:36:e7",
          "network_id": "031457f4-0f8c-483c-96f2-eccede02909c",
          "type": "public"
        },
        {
          "index": 2,
          "ip_addresses": [
            {
              "address": "10.6.3.27",
              "dhcp": true,
              "dns": [],
              "family": "IPv4",
              "floating": false,
              "gateway": "10.6.0.1",
              "network": "10.6.0.0/22"
            }
          ],
          "mac": "32:d5:ba:4a:84:cc",
          "network_id": "03d82553-5bea-4132-b29a-e1cf67ec2dd1",
          "type": "utility"
        },
        {
          "index": 3,
          "ip_addresses": [
            {
              "address": "2a04:3545:1000:720:38d6:baff:fe4a:63e7",
              "dhcp": true,
              "dns": [
                "2a04:3540:53::1",
                "2a04:3544:53::1"
              ],
              "family": "IPv6",
              "floating": false,
              "gateway": "2a04:3545:1000:720::1",
              "network": "2a04:3545:1000:720::/64"
            }
          ],
          "mac": "32:d5:ba:4a:63:e7",
          "network_id": "03000000-0000-4000-8046-000000000000",
          "type": "public"
        },
        {
          "index": 4,
          "ip_addresses": [
            {
              "address": "172.30.1.10",
              "dhcp": true,
              "dns": [],
              "family": "IPv4",
              "floating": false,
              "gateway": "172.30.1.1",
              "network": "172.30.1.0/24"
            }
          ],
          "mac": "32:d5:ba:4a:8a:e1",
          "network_id": "035a0a4a-77b4-4de5-820d-189fc8135714",
          "type": "private"
        }
      ],
      "dns": [
        "94.237.127.9",
        "94.237.40.9"
      ]
    }
    cSs�|�d�r(d}|�d�dkr d}d|iSd}|�d�dkr>d}|d|�d	�d
�}|�d�rh|�d�|d<d|�d
�kr�|�d
��d�d|d<||�d�kr�|�d�r�|�d�|d<|S)NZdhcpZfamilyZIPv6zipv6_dhcpv6-stateless�typeZstaticZstatic6�auto�address)rZcontrolrZgateway�/Znetwork�Znetmask�dnsZdns_nameservers)�get�split)Zip_addrr
Z	dhcp_typeZstatic_typeZsubpart�r
�C/usr/lib/python3/dist-packages/cloudinit/sources/helpers/upcloud.py�_get_subnet_configrs&
�
z8convert_to_network_config_v1.<locals>._get_subnet_configzNIC mapping: %sZ
interfaceszConsidering %sZmaczVDid not find network interface on system with mac '%s'. Cannot apply configuration: %srz4Found %s interface '%s' with address '%s' (index %d)�indexZphysical)r�name�mac_addressZip_addressesr
�subnetszSetting DNS nameservers to %sZ
nameserver)rrr	)�version�config)�cloudnetZget_interfaces_by_mac�LOG�debugr�RuntimeError�append)rrZnic_configsZmacs_to_interfacesZ	raw_ifacerZ
iface_typeZ
sysfs_nameZ	interfacerZ
ip_addressZsub_partr
r
r�convert_to_network_config_v1sLc
��

�	��rcCst|�S)N)r)rr
r
r�convert_network_config�sr��cCs6tj||||d�}|��s&td|��t�|j���S)N)�timeout�sec_between�retrieszunable to read metadata at %s)rZreadurl�okr�json�loads�contents�decode)Zurlrr r!Zresponser
r
r�
read_metadata�s�r'cCsPt�d�}|dkrdSt�d�}|r2t�d|�nd}t�|�t|��d|fS)Nzsystem-manufacturerZUpCloud)FNzsystem-uuidz2system identified via SMBIOS as UpCloud server: %sz�system identified via SMBIOS as a UpCloud server, but did not provide an ID. Please contact support viahttps://hub.upcloud.com or via email with support@upcloud.comT)rZ
read_dmi_datarrZcriticalr)Zvendor_nameZserver_uuid�msgr
r
r�read_sysinfo�s

��
r))rrr)r#ZloggingZ	cloudinitrrrrZ	getLogger�__name__rrrr'r)r
r
r
r�<module>s
2