+
    i                     z    ^ RI t ^ RIt^ RIHt ^ RIHt ^ RIHt ]P                  ! ]4      t	R t
R tR	R ltR tR# )
    N)dmi)net)
url_helperc           
     0   R p. p\         P                  ! 4       p\        P                  RV4       V P	                  R4       F  p\        P                  RV4       VP	                  R4      pWS9  d   \        RV: RV: 24      hVP	                  R4      pVP	                  V4      p\        P                  R	VVVVP	                  R
4      4       RRRVRV/p. p	VP	                  R4       F+  p
V! WP	                  R4      4      pV	P                  V4       K-  	  WR&   VP                  V4       K  	  V P	                  R4      '       dJ   \        P                  RV P	                  R4      4       VP                  RRRV P	                  R4      /4       R^RV/# )a  
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"
  ]
}
c                 (   V P                  R 4      '       d   R pV P                  R4      R8X  d   RpRV/# RpV P                  R4      R8X  d   RpRVRRR	V P                  R	4      /pV P                  R
4      '       d   V P                  R
4      VR
&   RV P                  R4      9   d+   V P                  R4      P                  R4      ^,          VR&   WP                  R4      8w  d,   V P                  R4      '       d   V P                  R4      VR&   V# )dhcpfamilyIPv6zipv6_dhcpv6-statelesstypestaticstatic6controlautoaddressgateway/networknetmaskdnsdns_nameservers)getsplit)ip_addrr   	dhcp_typestatic_typesubparts   &&   C/usr/lib/python3/dist-packages/cloudinit/sources/helpers/upcloud.py_get_subnet_config8convert_to_network_config_v1.<locals>._get_subnet_configr   s   ;;vI{{8$. 4	I&&;;x F*#KKvw{{9-
 ;;y!!!(Y!7GI'++i((!(Y!7!=!=c!B1!EGI++e$$U););)0U);G%&    zNIC mapping: %s
interfaceszConsidering %smacz3Did not find network interface on system with mac 'z'. Cannot apply configuration: r   z4Found %s interface '%s' with address '%s' (index %d)indexphysicalnamemac_addressip_addressesr   subnetszSetting DNS nameservers to %s
nameserverr   versionconfig)cloudnetget_interfaces_by_macLOGdebugr   RuntimeErrorappend)r+   r   nic_configsmacs_to_interfaces	raw_ifacer&   
iface_type
sysfs_name	interfacer(   
ip_addresssub_parts   &           r   convert_to_network_config_v1r:      s   F: K!779II!34ZZ-			"I.mmE*0 	+  ]]6*
'++K8
		BMM'"	
 JJ;
	 #--7J)*jj6GHHNN8$ 8  ')9%E .H zz%		16::e3DE\9fjj.?@	
 q(K00r    c                     \        V 4      # )N)r:   )r+   s   &r   convert_network_configr<      s    '//r    c                     \         P                  ! WW#R 7      pVP                  4       '       g   \        RV ,          4      h\        P
                  ! VP                  P                  4       4      # ))timeoutsec_betweenretrieszunable to read metadata at %s)r   readurlokr0   jsonloadscontentsdecode)urlr>   r?   r@   responses   &&&& r   read_metadatarI      sS    !!+H ;;==:S@AA::h''..011r    c                      \         P                  ! R 4      p V R8w  d   R# \         P                  ! R4      pV'       d   \        P                  RV4       RV3# Rp\        P	                  V4       \        V4      h)zsystem-manufacturerUpCloudzsystem-uuidz2system identified via SMBIOS as UpCloud server: %szsystem 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)FN)r   read_dmi_datar.   r/   criticalr0   )vendor_nameserver_uuidmsgs      r   read_sysinforQ      sx     ##$9:Ki##M2K		@+	
 L 	
 	S3r    )   rR      )rC   logging	cloudinitr   r   r,   r   	getLogger__name__r.   r:   r<   rI   rQ    r    r   <module>rY      s<   
    %  !n1b02r    