Skip to content
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

Don't attempt to load SettingsChange too early #23096

Conversation

jrafanie
Copy link
Member

@jrafanie jrafanie commented Jul 18, 2024

Part of #22052

This is an attempt to reimplement #22853 since that was reverted in #23038.

High level: We have plugins that expect the Settings constant to be defined.

These will have to use the defaults from the filesystem as we don't have access to the database this early.

We can then use a rails 7 friendly location to start autoloading, the after_initialize.

Using the test from #23038, I was able to verify this on the rails7 branch and on master with rails 6.1:

joerafaniello@Joes-MBP manageiq % bin/rails c
Loading development environment (Rails 6.1.7.8)
irb(main):001:0> SettingsChange.first
=> nil
irb(main):002:0>  Settings.log.level
=> "info"
irb(main):003:0>  Settings.log.level = "debug"
=> "debug"
irb(main):004:0> Vmdb::Settings.save!(MiqServer.my_server, Settings.to_h)
=> []
irb(main):005:0>  Settings.log.level
=> "debug"
irb(main):006:0> SettingsChange.first
=> #<SettingsChange:0x00000001183e5648 id: 99000000000005, resource_type: "MiqServer", resource_id: 99000000000002, key: "/log/level", value: "debug", created_at: Thu, 18 Jul 2024 19:15:50.513221000 UTC +00:00, updated_at: Thu, 18 Jul 2024 19:15:50.513221000 UTC +00:00>
irb(main):007:0> exit
joerafaniello@Joes-MBP manageiq % bin/rails c
Loading development environment (Rails 6.1.7.8)
irb(main):001:0>  Settings.log.level
=> "debug"

Note, this was extracted from #22873

This is an attempt to reimplement ManageIQ#22853 since that was reverted in ManageIQ#23038.

High level: We have plugins that expect the `Settings` constant to be defined.
These will have to use the defaults from the filesystem as we don't have access to the database this early.

We can then use a rails 7 friendly location to start autoloading, the after_initialize.

Using the test from ManageIQ#23038, I was able to verify this on the rails7 branch and on master with rails 6.1:

```
joerafaniello@Joes-MBP manageiq % bin/rails c
Loading development environment (Rails 6.1.7.8)
irb(main):001:0> SettingsChange.first
=> nil
irb(main):002:0>  Settings.log.level
=> "info"
irb(main):003:0>  Settings.log.level = "debug"
=> "debug"
irb(main):004:0> Vmdb::Settings.save!(MiqServer.my_server, Settings.to_h)
=> []
irb(main):005:0>  Settings.log.level
=> "debug"
irb(main):006:0> SettingsChange.first
=> #<SettingsChange:0x00000001183e5648 id: 99000000000005, resource_type: "MiqServer", resource_id: 99000000000002, key: "/log/level", value: "debug", created_at: Thu, 18 Jul 2024 19:15:50.513221000 UTC +00:00, updated_at: Thu, 18 Jul 2024 19:15:50.513221000 UTC +00:00>
irb(main):007:0> exit
joerafaniello@Joes-MBP manageiq % bin/rails c
Loading development environment (Rails 6.1.7.8)
irb(main):001:0>  Settings.log.level
=> "debug"
```
@miq-bot
Copy link
Member

miq-bot commented Jul 18, 2024

Checked commit jrafanie@b3b6757 with ruby 3.1.5, rubocop 1.56.3, haml-lint 0.51.0, and yamllint
2 files checked, 0 offenses detected
Everything looks fine. 🏆

@jrafanie
Copy link
Member Author

@miq-bot cross-repo-tests /all

miq-bot pushed a commit to ManageIQ/manageiq-cross_repo-tests that referenced this pull request Jul 18, 2024
Copy link
Member

@agrare agrare left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 can confirm this still works locally on rails 6.1

@agrare agrare merged commit 77f2c9f into ManageIQ:master Jul 19, 2024
8 checks passed
@jrafanie jrafanie deleted the settings_changes_reimplement_22853_after_23038_revert branch July 19, 2024 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants