a '¡Dgê,ã@sðddlZddlZddlmZmZmZmZddlmZm Z ddl m Z ddl m Z ddlmZe e¡ZdZdeiZd Zd Zd Zed d „eDƒƒZGdd„dejejƒZdd„Zdd„Zddd„Zdd„Z ddd„Z!eZ"eej#ffgZ$dd„Z%dS)éN)Ú lifecycleÚsourcesÚsubpÚutil)Ú EventScopeÚ EventType)Úeni)Úget_ibm_platform)Ú openstackziid-dsconfigdriveú instance-id)ZvfatZiso9660)zconfig-2zCONFIG-2)ÚsrZcdccs(|] }tdƒD]}d||fVqqdS)éz /dev/%s%sN)Úrange)Ú.0ÚzÚi©rúK/usr/lib/python3.9/site-packages/cloudinit/sources/DataSourceConfigDrive.pyÚ órcsreZdZdZejejejej ej hiZ ‡fdd„Z dd„Z dd„Zdd „Zed d „ƒZed d „ƒZdd„Z‡ZS)ÚDataSourceConfigDriveZ ConfigDrivecs\tt|ƒ |||¡d|_tj |jd¡|_d|_d|_ d|_ t j |_ d|_d|_i|_dS)NZ config_drive)ÚsuperrÚ__init__ÚsourceÚosÚpathÚjoinÚseed_dirÚversionÚ ec2_metadataÚ_network_configrÚUNSETÚ network_jsonÚ network_eniÚ known_macsÚfiles)ÚselfÚsys_cfgÚdistroÚpaths©Ú __class__rrr.szDataSourceConfigDrive.__init__cCs0tj |¡}d||j|jf}|d|j7}|S)Nz%s [%s,ver=%s]z [source=%s])rÚ DataSourceÚ__str__Údsmoderr)r&ÚrootZmstrrrrr-:s zDataSourceConfigDrive.__str__c CsÐd}i}i}|jdfD]L}tj |¡s(qzt|ƒ}|}WqdWqtjy`t t d|¡Yq0q|�s |j   d¡}t |d�D]ˆ}d}t  ¡rž| d¡ržd}ztj|t|d�}|}WnFtjyÊYn4tjyÜYn"tjyüt t d|¡Yn0|r€�q q€|�sd S|  d i¡}t |tg¡}| |  d ¡|j  d ¡|d d k�rXtjndg¡|_|jtjk�rtd St|jƒ}|d} || k�r¨t||j|jtjkd�|jtjk�rÊt  d||j¡d S||_||_ |  d¡|_!|  d¡|_"|d |_#|j$ %|  di¡¡|  d¡} zt &| ¡|_'Wn8t(�y^} zt  )d| ¡d|_'WYd} ~ n d} ~ 00|  d¡} zt &| ¡|_*Wn8t(�y²} zt  )d| ¡d|_*WYd} ~ n d} ~ 00|  d¡|_+|  d¡|_,dS)Nz /config-drivez#Failed reading config drive from %sZdatasource_list)Údslistz/dev/cdZcd9660)ÚmtypezBroken config drive: %sFÚmetadatar.rér )r(Únetworkz&%s: not claiming datasource, dsmode=%sz ec2-metadataZuserdatar%Z vendordataz"Invalid content in vendor-data: %sZ vendordata2z#Invalid content in vendor-data2: %sÚnetwork_configZ networkdataT)-rrrÚisdirÚread_config_driver Ú NonReadablerÚlogexcÚLOGr'ÚgetÚfind_candidate_devsZis_BSDÚ startswithZmount_cbZMountFailedErrorZBrokenMetadataZ mergemanydictÚDEFAULT_METADATAZ_determine_dsmodeZds_cfgrZ DSMODE_PASSr.ZDSMODE_DISABLEDÚget_previous_iidr)Ú on_first_bootr(Údebugrr2rZ userdata_rawrr%ÚupdateZconvert_vendordataZvendordata_rawÚ ValueErrorÚwarningZvendordata2_rawr#r") r&ÚfoundZmdÚresultsZsdirr0Údevr1Zprev_iidZcur_iidZvdÚeZvd2rrrÚ _get_data@sœ    ÿ  ýÿ   ýÿ         zDataSourceConfigDrive._get_datacCst | ¡¡S©N)rZinstance_id_matches_system_uuidZget_instance_id)r&r'rrrÚcheck_instance_id¤sz'DataSourceConfigDrive.check_instance_idcCs~|jdurx|jdtjfvr:t d¡tj|j|jd�|_n>|j durnt   |j ¡|_t d¡t j dddd�n t d¡|jS) Nz(network config provided via network_json)r$z.network config provided via converted eni dataz(Eni network configuration in ConfigDrivez24.3z*rz'find_candidate_devs..cs"g|]}|ˆvst |¡s|‘qSr)rZ is_partitionrkrmrrrn.szdevices=%s dslist=%sZIBMCloudz5IBMCloud device '%s' (%s) removed from candidate list) ÚOPTICAL_DEVICESrZfind_devs_withrZProcessExecutionErrorÚFS_TYPESÚextendÚ LABEL_TYPESÚsortr:rAr Úremove) Z probe_opticalr0ZdeviceZ by_fstypeZfs_typeZlabelZ candidatesZdevicesZ ibm_platformZibm_pathrrmrr<s>   ÿ   ýr<cCs t |t¡SrJ)rZlist_from_dependsÚ datasources)ZdependsrrrÚget_datasource_listKsrv)NT)TN)&ZloggingrZ cloudinitrrrrZcloudinit.eventrrZ cloudinit.netrZ$cloudinit.sources.DataSourceIBMCloudr Zcloudinit.sources.helpersr Z getLoggerrPr:Z DEFAULT_IIDr>rprrZPOSSIBLE_MOUNTSÚtupleroZ SourceMixinr,rr7r?r@rdr<ZDataSourceConfigDriveNetZDEP_FILESYSTEMrurvrrrrÚ s6    ÿ ÿ,  B ÿ