Skip to content

Commit c629181

Browse files
committed
Run cloud config plugins in order
The cloud config plugins were configured as a normal Python dictionary, thus executing them in a random order, defined by the Python implementation. We require runcmd plugin to run last so that it is the last configuration stage. In the future, we need the order as the groups plugin is required to run before the users plugin. Change-Id: I754ef7b15d5c7a12d08a12c876cfb52de64a06cc
1 parent ce74218 commit c629181

1 file changed

Lines changed: 18 additions & 16 deletions

File tree

  • cloudbaseinit/plugins/common/userdataplugins/cloudconfigplugins

cloudbaseinit/plugins/common/userdataplugins/cloudconfigplugins/factory.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,29 @@
1212
# License for the specific language governing permissions and limitations
1313
# under the License.
1414

15+
import collections
16+
1517
from cloudbaseinit.utils import classloader
1618

1719

1820
# TODO(cpopa): replace the static list of plugins with something
1921
# discovered at runtime.
20-
PLUGINS = {
21-
'write_files': 'cloudbaseinit.plugins.common.userdataplugins.'
22-
'cloudconfigplugins.write_files.WriteFilesPlugin',
23-
'set_timezone': 'cloudbaseinit.plugins.common.userdataplugins.'
24-
'cloudconfigplugins.set_timezone.SetTimezonePlugin',
25-
'timezone': 'cloudbaseinit.plugins.common.userdataplugins.'
26-
'cloudconfigplugins.set_timezone.SetTimezonePlugin',
27-
'set_hostname': 'cloudbaseinit.plugins.common.userdataplugins.'
28-
'cloudconfigplugins.set_hostname.SetHostnamePlugin',
29-
'hostname': 'cloudbaseinit.plugins.common.userdataplugins.'
30-
'cloudconfigplugins.set_hostname.SetHostnamePlugin',
31-
'ntp': 'cloudbaseinit.plugins.common.userdataplugins.'
32-
'cloudconfigplugins.set_ntp.SetNtpPlugin',
33-
'runcmd': 'cloudbaseinit.plugins.common.userdataplugins.'
34-
'cloudconfigplugins.runcmd.RunCmdPlugin',
35-
}
22+
PLUGINS = collections.OrderedDict([
23+
('write_files', 'cloudbaseinit.plugins.common.userdataplugins.'
24+
'cloudconfigplugins.write_files.WriteFilesPlugin'),
25+
('set_timezone', 'cloudbaseinit.plugins.common.userdataplugins.'
26+
'cloudconfigplugins.set_timezone.SetTimezonePlugin'),
27+
('timezone', 'cloudbaseinit.plugins.common.userdataplugins.'
28+
'cloudconfigplugins.set_timezone.SetTimezonePlugin'),
29+
('set_hostname', 'cloudbaseinit.plugins.common.userdataplugins.'
30+
'cloudconfigplugins.set_hostname.SetHostnamePlugin'),
31+
('hostname', 'cloudbaseinit.plugins.common.userdataplugins.'
32+
'cloudconfigplugins.set_hostname.SetHostnamePlugin'),
33+
('ntp', 'cloudbaseinit.plugins.common.userdataplugins.'
34+
'cloudconfigplugins.set_ntp.SetNtpPlugin'),
35+
('runcmd', 'cloudbaseinit.plugins.common.userdataplugins.'
36+
'cloudconfigplugins.runcmd.RunCmdPlugin'),
37+
])
3638

3739

3840
def load_plugins():

0 commit comments

Comments
 (0)