New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"bolt module install" no longer works on v3.16 when there's a task plugin in the bolt-project file #2992
Labels
Bug
Bug reports and fixes.
Comments
jschoewe
changed the title
"bolt module install" no longer works when there's a task plugin in the bolt-project file
"bolt module install" no longer works on v3.16 when there's a task plugin in the bolt-project file
Aug 19, 2021
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 19, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 19, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 19, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 19, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 19, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 19, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 19, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 19, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 19, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 20, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 20, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 20, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 20, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 20, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 20, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 20, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 20, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 23, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 23, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 25, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 25, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 25, 2021
This updates the Bolt to only resolve plugin config (`plugins`) and plugin hooks (`plugin-hooks`) as needed. Previously, when Bolt setup the `Bolt::Plugin` class, it resolved all plugin config and hooks as part of the setup process. Because Bolt now loads the `Bolt::Plugin` class for all commands, this resulted in Bolt erroring in cases where a plugin module was not available, even if the command run didn't need access to any plugins. This is particularly problematic for the `module install` command, as users installing the project for the first time would be attempting to install the very plugin modules that Bolt will say are missing when the command is run. !bug * **Resolve plugins as needed** ([puppetlabs#2992](puppetlabs#2992)) Bolt now only resolves plugin configuration, plugin hooks, and inventory plugins as needed. Previously, Bolt resolved all plugins each time a command was run, causing some commands to fail when they should not.
beechtom
added a commit
to beechtom/bolt
that referenced
this issue
Aug 25, 2021
This updates the inventory to defer resolving plugins until the inventory is needed. During the CLI refactor, Bolt was changed to always load the inventory, regardless of whether the inventory was actually used. This resulted any plugins in an inventory being resolved whenever a Bolt command was run, potentially leading to a significant degradation in performance. Now, when the inventory is instantiated, Bolt only stores the raw inventory data. Once Bolt requests access to any of the groups, targets, or config in the inventory, the inventory parses the data, resolves plugin references, and loads the groups and targets into inventory. !no-release-note
lucywyman
added a commit
that referenced
this issue
Aug 26, 2021
(GH-2992) Defer resolving plugin references
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the Bug
When running "bolt module install" on a project, installing the modules from the Puppetfile needs to be the first thing that happens because tasks from those modules sometimes need to be used as plugins in the bolt-project.yaml file.
Steps to Reproduce
Steps to reproduce the behavior:
Puppetfile:
bolt-project.yaml
Running "bolt module install" on a project with these files results in the following error:
Expected Behavior
Prior to version 3.16, these modules were being installed fine and we were able to use their tasks in the bolt-project file.
Environment
RHEL 8
The text was updated successfully, but these errors were encountered: