# Paired with cloud-init-hotplugd.socket to read from the FIFO
# hook-hotplug-cmd which is created during a udev network
# add or remove event as processed by 90-cloud-init-hook-hotplug.rules.

# On start, read args from the FIFO, process and provide structured arguments
# to `cloud-init devel hotplug-hook` which will setup or teardown network
# devices as configured by user-data.

# Known bug with an enforcing SELinux policy: LP: #1936229
# cloud-init-hotplud.service will read args from file descriptor 3

[Unit]
Description=Cloud-init: Hotplug Hook
After=cloud-init-hotplugd.socket
After=cloud-init.target
Requires=cloud-init-hotplugd.socket
ConditionPathExists=!/etc/cloud/cloud-init.disabled
ConditionKernelCommandLine=!cloud-init=disabled
ConditionEnvironment=!KERNEL_CMDLINE=cloud-init=disabled

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'read args <&3; echo "args=$args"; \
                        exec /usr/bin/cloud-init devel hotplug-hook $args; \
                        exit 0'
SyslogIdentifier=cloud-init-hotplugd
TimeoutStopSec=5
