a 'Dg @sUdZddlZddlZddlmZmZmZddlmZddl m Z ddl m Z ddl mZddlmZmZdd lmZdd lmZd egegd Ze ed <eeZdZdZee edddZee ee ddddZ!dS)z3Install hotplug udev rules if supported and enabledN)stagessubputil)Cloud)Config) MetaSchema) ALL_DISTROS) EventScope EventType) PER_INSTANCE) DataSourceZcc_install_hotplug)idZdistrosZ frequencyZactivate_by_schema_keysmetaz2/etc/udev/rules.d/90-cloud-init-hook-hotplug.rulesz# Installed by cloud-init due to network hotplug userdata ACTION!="add|remove", GOTO="cloudinit_end"{extra_rules} LABEL="cloudinit_hook" SUBSYSTEM=="net", RUN+="{libexecdir}/hook-hotplug" LABEL="cloudinit_end" ) datasourcecfgnetwork_hotplug_enabledcCs tj|tjgtjtv}tj||tjtjd}|r>|st j t rnt dtt tgdn|r~t dn t ddStdst ddS|jdur|jnd}|rd |}d }t j |sd }t d tjt tj||d dtgddS)N)rrZevent_source_typeZscopez!Uninstalling hotplug, not enabled)udevadmZcontrolz--reload-ruleszOHotplug is unsupported by current datasource. Udev rules will NOT be installed.z%Skipping hotplug install, not enabledrz+Skipping hotplug install, udevadm not found z/usr/libexec/cloud-initz/usr/lib/cloud-initzInstalling hotplug.) extra_rules libexecdir)filenameZcontent)r ZHOTPLUGZget_supported_eventsgetr ZNETWORKsetrZupdate_event_enabledospathexistsHOTPLUG_UDEV_PATHLOGdebugrZdel_filerZwarningwhichZextra_hotplug_udev_rulesinfoZ write_fileHOTPLUG_UDEV_RULES_TEMPLATEformat)rrrZhotplug_supportedZhotplug_enabledrrr$G/usr/lib/python3.9/site-packages/cloudinit/config/cc_install_hotplug.pyinstall_hotplug%sT        r&)namercloudargsreturncCsJd|vo6d|dvo6d|ddvo6d|dddv}t|j||dS)NZupdatesnetworkZwhenZhotplug)r&r)r'rr(r)rr$r$r%handle[s r,)"__doc__ZloggingrZ cloudinitrrrZcloudinit.cloudrZcloudinit.configrZcloudinit.config.schemarZcloudinit.distrosrZcloudinit.eventr r Zcloudinit.settingsr Zcloudinit.sourcesr r__annotations__Z getLogger__name__rrr"boolr&strlistr,r$r$r$r%s.         6