)]}'
{"doc/source/plugins.rst":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f10cde633c6bd8415efc5a90d3c459063a3258ad","unresolved":false,"context_lines":[{"line_number":104,"context_line":"directory. Inside this directory there can be 2 files."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- ``settings`` - a file containing global variables that will be"},{"line_number":107,"context_line":"  sourced very early in the process. This is helpful if other plugins"},{"line_number":108,"context_line":"  might depend on this one, and need access to global variables to do"},{"line_number":109,"context_line":"  their work."},{"line_number":110,"context_line":"- ``plugin.sh`` - the actual plugin. It will be copied into the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_20df96d7","line":107,"updated":"2014-12-19 20:13:20.000000000","message":"(just after the built-in layer 1 services)\n\nAlso maybe a note about what can be assumed available, ie, database, rpc, ldap, etc will all have had their settings already configured.","commit_id":"6ad35085aabab70780e248c6813ddde6b7d24ea8"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f10cde633c6bd8415efc5a90d3c459063a3258ad","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  priority (see later). The plugin.sh looks like the extras.d"},{"line_number":113,"context_line":"  dispatcher above **except** it should not include the"},{"line_number":114,"context_line":"  is_service_enabled conditional. All external plugins are always"},{"line_number":115,"context_line":"  assumed to be enabled."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Plugins are registered by adding the following to localrc (or the"},{"line_number":118,"context_line":"LOCAL) section of ``local.conf``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_004b7ab1","line":115,"updated":"2014-12-19 20:13:20.000000000","message":"We should note that to disable a plugin the extras.d file must manually be removed in addition to removing the enable_plugin() call from local.conf.\n\nI prefer keeping the is_service_enabled() check.  It needs to be supported (the is_XXX_enabled() function must exist in the plugin) for other parts of DevStack anyway, especially if we migrate the existing plugins to this form.","commit_id":"6ad35085aabab70780e248c6813ddde6b7d24ea8"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"309bda32cc578ab7382e61ecba05446675f31dbd","unresolved":false,"context_lines":[{"line_number":116,"context_line":"  always assumed to be enabled."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Plugins are registered by adding the following to localrc (or the"},{"line_number":119,"context_line":"LOCAL) section of ``local.conf``."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"They are added in the following format::"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_09a9e57b","line":119,"updated":"2015-01-06 16:54:21.000000000","message":"The localrc reference should be \u0027localrc section of local.conf\u0027.","commit_id":"e87a9698cd85091187b089285fe167e8a1e675e1"}],"functions-common":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"bf1e6e5273d599ca501098489c744b538ef2b3cf","unresolved":false,"context_lines":[{"line_number":1765,"context_line":"        if [[ -f $dir/devstack/settings ]]; then"},{"line_number":1766,"context_line":"            source $dir/devstack/settings"},{"line_number":1767,"context_line":"        fi"},{"line_number":1768,"context_line":"        install -m 0755 $dir/devstack/*.sh $TOP_DIR/extras.d"},{"line_number":1769,"context_line":"        echo \"Installed devstack plugin: $name\""},{"line_number":1770,"context_line":"    done"},{"line_number":1771,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"3a961159_a2964aee","line":1768,"updated":"2014-12-18 21:49:47.000000000","message":"I am really not a fan of copying files into devstack, particularly extras.d as *.sh gets sourced 4+ times per stack.sh run.  Also, it would be possible for projects to semi-silently stomp on each other.\n\nHow about only $dir/devstack/dispatch.sh gets copied to $TOP_DIR/extras.d/$XX-$name.sh  where $XX is a number derived out of settings or something that allows the project to try to set the execution order.  Default it to 90?\n\nAlso we should check that the file exists before installing it.","commit_id":"cb1060511dee631c41c8f1549565f7451322f726"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"d36c865de0131aa67e75b813aa8d65b4e73b7977","unresolved":false,"context_lines":[{"line_number":1765,"context_line":"        if [[ -f $dir/devstack/settings ]]; then"},{"line_number":1766,"context_line":"            source $dir/devstack/settings"},{"line_number":1767,"context_line":"        fi"},{"line_number":1768,"context_line":"        install -m 0755 $dir/devstack/*.sh $TOP_DIR/extras.d"},{"line_number":1769,"context_line":"        echo \"Installed devstack plugin: $name\""},{"line_number":1770,"context_line":"    done"},{"line_number":1771,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"3a961159_05b728f6","line":1768,"in_reply_to":"3a961159_a2964aee","updated":"2014-12-18 21:58:55.000000000","message":"So, it is all bash, and executed as the same user. So people could just cat \u003e\u003e extra files if they wanted to.\n\nIt seemed like letting people pick their numbers and scripts in extras.d made a bit more sense, so they aren\u0027t working around our system.","commit_id":"cb1060511dee631c41c8f1549565f7451322f726"}],"stack.sh":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"309bda32cc578ab7382e61ecba05446675f31dbd","unresolved":false,"context_lines":[{"line_number":575,"context_line":"fi"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"# Load all the plugins"},{"line_number":578,"context_line":"load_plugin_settings"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"# Interactive Configuration"},{"line_number":581,"context_line":"# -------------------------"}],"source_content_type":"text/x-sh","patch_set":6,"id":"3a961159_e9d9f983","line":578,"updated":"2015-01-06 16:54:21.000000000","message":"I\u0027d like to have a run_phase call here and check inside that for mode\u003d\u003dsource to call load_plugin_settings.  That also eliminates the above copy of the extras.d loop","commit_id":"e87a9698cd85091187b089285fe167e8a1e675e1"}]}
