Merge "Add require ifenslave before start configuring bonding interfaces."
diff --git a/linux/network/interface.sls b/linux/network/interface.sls
index 6086957..65e7bb8 100644
--- a/linux/network/interface.sls
+++ b/linux/network/interface.sls
@@ -1,6 +1,9 @@
 {%- from "linux/map.jinja" import network with context %}
 {%- from "linux/map.jinja" import system with context %}
 {%- if network.enabled %}
+linux_network_packages:
+  pkg.installed:
+  - pkgs: {{ network.pkgs }}
 
 {%- set dpdk_enabled = network.get('dpdk', {}).get('enabled', False) %}
 {%- if dpdk_enabled %}
@@ -305,6 +308,8 @@
     {%- endfor %}
   {%- endif %}
   {%- if interface.type == 'bond' %}
+  - require:
+    - pkg: linux_network_packages
   - slaves: {{ interface.slaves }}
   - mode: {{ interface.mode }}
   {%- endif %}
@@ -318,6 +323,7 @@
   cmd.run:
   - name: ifenslave {{ interface_name }} {{ interface.slaves }}
   - require:
+    - pkg: linux_network_packages
     - network: linux_interface_{{ interface_name }}
   - onchanges:
     - network: linux_interface_{{ interface_name }}
@@ -367,10 +373,6 @@
 
 {%- if grains.os_family == 'Arch' %}
 
-linux_network_packages:
-  pkg.installed:
-  - pkgs: {{ network.pkgs }}
-
 /etc/netctl/network_{{ interface.wireless.essid }}:
   file.managed:
   - source: salt://linux/files/wireless