... | ... |
@@ -54,6 +54,31 @@ directory. Inside this directory there can be 3 files. |
54 | 54 |
default value only if the variable is unset or empty; e.g. in bash |
55 | 55 |
syntax ``FOO=${FOO:-default}``. |
56 | 56 |
|
57 |
+ The file should include a ``define_plugin`` line to indicate the |
|
58 |
+ plugin's name, which is the name that should be used by users on |
|
59 |
+ "enable_plugin" lines. It should generally be the last component of |
|
60 |
+ the git repo path (e.g., if the plugin's repo is |
|
61 |
+ openstack/devstack-foo, then the name here should be "foo") :: |
|
62 |
+ |
|
63 |
+ define_plugin <YOUR PLUGIN> |
|
64 |
+ |
|
65 |
+ If your plugin depends on another plugin, indicate it in this file |
|
66 |
+ with one or more lines like the following:: |
|
67 |
+ |
|
68 |
+ plugin_requires <YOUR PLUGIN> <OTHER PLUGIN> |
|
69 |
+ |
|
70 |
+ For a complete example, if the plugin "foo" depends on "bar", the |
|
71 |
+ ``settings`` file should include:: |
|
72 |
+ |
|
73 |
+ define_plugin foo |
|
74 |
+ plugin_requires foo bar |
|
75 |
+ |
|
76 |
+ Devstack does not currently use this dependency information, so it's |
|
77 |
+ important that users continue to add enable_plugin lines in the |
|
78 |
+ correct order in ``local.conf``, however adding this information |
|
79 |
+ allows other tools to consider dependency information when |
|
80 |
+ automatically generating ``local.conf`` files. |
|
81 |
+ |
|
57 | 82 |
- ``plugin.sh`` - the actual plugin. It is executed by devstack at |
58 | 83 |
well defined points during a ``stack.sh`` run. The plugin.sh |
59 | 84 |
internal structure is discussed below. |
... | ... |
@@ -1703,6 +1703,35 @@ function run_phase { |
1703 | 1703 |
fi |
1704 | 1704 |
} |
1705 | 1705 |
|
1706 |
+# define_plugin <name> |
|
1707 |
+# |
|
1708 |
+# This function is a no-op. It allows a plugin to define its name So |
|
1709 |
+# that other plugins may reference it by name. It should generally be |
|
1710 |
+# the last component of the canonical git repo name. E.g., |
|
1711 |
+# openstack/devstack-foo should use "devstack-foo" as the name here. |
|
1712 |
+# |
|
1713 |
+# This function is currently a noop, but the value may still be used |
|
1714 |
+# by external tools (as in plugin_requires) and may be used by |
|
1715 |
+# devstack in the future. |
|
1716 |
+# |
|
1717 |
+# ``name`` is an arbitrary name - (aka: glusterfs, nova-docker, zaqar) |
|
1718 |
+function define_plugin { |
|
1719 |
+ : |
|
1720 |
+} |
|
1721 |
+ |
|
1722 |
+# plugin_requires <name> <other> |
|
1723 |
+# |
|
1724 |
+# This function is a no-op. It is currently used by external tools |
|
1725 |
+# (such as the devstack module for Ansible) to automatically generate |
|
1726 |
+# local.conf files. It is not currently used by devstack itself to |
|
1727 |
+# resolve dependencies. |
|
1728 |
+# |
|
1729 |
+# ``name`` is an arbitrary name - (aka: glusterfs, nova-docker, zaqar) |
|
1730 |
+# ``other`` is the name of another plugin |
|
1731 |
+function plugin_requires { |
|
1732 |
+ : |
|
1733 |
+} |
|
1734 |
+ |
|
1706 | 1735 |
|
1707 | 1736 |
# Service Functions |
1708 | 1737 |
# ================= |