Project

General

Profile

Tracker #29939

Improve setting definition DSL and move setting registry to memory

Added by Ondřej Ezr over 2 years ago. Updated 19 days ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Settings
Target version:
-
% Done:

100%

Difficulty:
medium
Triaged:
Yes
Bugzilla link:
Fixed in Releases:
Found in Releases:
Red Hat JIRA:

Description

Currently we have all the settings (both changed and unchanged) in the database, but we have all the defaults in code as well, so it makes no sense to have quite a heavy code base to keep both in sync.
Instead I'd like to bring the setting inventory into memory and database would keep only the changed settings.

It should give as an easy way for plugins to extend settings category not just adding a new one.


Subtasks

Refactor #30860: Create SettingPresenter as a proxy for setting UI valuesClosedOndřej Ezr
Refactor #30861: Move setting value collections to SettingPresenterClosedOndřej Ezr
Feature #30862: Introduce SettingRegistry as a setting inventoryClosedOndřej Ezr
Refactor #31471: Deprecate setting timestamps in API responsesClosedOndřej Ezr
Feature #32286: Create a new setting definition DSLClosedOndřej Ezr
Refactor #32287: Load Setting index page from memory registryClosedOndřej Ezr
Refactor #32403: Add custom validations to new setting DSLClosedOndřej Ezr
Refactor #32408: Use new DSL to define settingsClosedOndřej Ezr
Refactor #11836: Rename Puppet settings to ConfigurationClosed
Refactor #32893: Use new DSL to define General settingsClosedOndřej Ezr
Refactor #33589: Use new DSL to define Authentication settingsClosedOndřej Ezr
Refactor #33595: Use new DSL to define Email settingsClosedOndřej Ezr
Refactor #33596: Use new DSL to define Notification settingsClosedOndřej Ezr
Refactor #33601: Use new DSL to define Provisioning settingsClosedOndřej Ezr
Refactor #33607: Use new DSL to define Puppet settingsClosedOndřej Ezr
Refactor #32415: Use only SettingRegistry to read and update the settingsClosedOndřej Ezr
Bug #32489: Setting registry doesn't reload properly on autoreloadClosedOndřej Ezr
Refactor #32583: Mandatory setting typeDuplicate
Refactor #32894: Add strong typing to Setting DSLClosedOndřej Ezr
Katello - Refactor #33608: use new Settings DSL in KatelloClosedJeremy Lenz
Refactor #33781: Deprecate the old setting definitions without "default_settings"ClosedOndřej Ezr
Refactor #33782: Initialize Setting for tests without fixturesClosedOndřej Ezr
Refactor #34305: Stop creating settings in the DBClosedOndřej Ezr
Bug #34328: GraphQL is using Setting model directlyClosedOndřej Ezr
Refactor #34335: Make GraphQL read settings from RegistryRejectedOndřej Ezr
Refactor #34603: Deprecate other than DSL setting definitionsClosedOndřej Ezr
Refactor #35013: Refactor config rake to use Setting DSLClosedOndřej Ezr
Refactor #35793: Drop the settings category column from databaseNew

Related issues

Related to Katello - Refactor #30354: Use only public setting interface to update setting valuesClosed
Related to Foreman - Refactor #29257: remove x-editable-railsClosed
Related to Foreman - Bug #33791: Settings defined in settings.yaml do not take precedence in the new DSLClosed
Related to Boot disk - Refactor #34674: Use new DSL to define settingsClosed
Related to Discovery - Refactor #34677: Use new DSL to define settingsClosed
Blocks Ansible - Refactor #32409: Use new DSL to define settingsClosed
Blocks Templates - Refactor #32410: Use new DSL to define settingsClosed
Blocks Discovery - Refactor #32411: Remove the old Setting class, which now only holds helper methodsNew
Blocks foreman-tasks - Refactor #32412: Use new DSL to define settingsClosed
Blocks Foreman Remote Execution - Refactor #32413: Use new DSL to define settingsClosed
Blocks Statistics - Refactor #32414: Use new DSL to define settingsClosed

Associated revisions

Revision c791f6c7 (diff)
Added by Ondřej Ezr 19 days ago

Fixes #29939 - drop category column from settings

Settings table was holding category column to support old style of
settings, but it is now ready to be decomissioned as plugins were given
enough time.

History

#1 Updated by The Foreman Bot over 2 years ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/theforeman/foreman/pull/7702 added

#2 Updated by Ondřej Ezr over 2 years ago

  • Related to Refactor #30354: Use only public setting interface to update setting values added

#3 Updated by Amit Upadhye over 2 years ago

  • Target version changed from 2.2.0 to 2.3.0

#4 Updated by Ondřej Ezr over 2 years ago

  • Subject changed from Add extension point to setting defaults to Move setting registry into a memory

#5 Updated by Ondřej Ezr over 2 years ago

  • Description updated (diff)

#6 Updated by Ondřej Ezr over 2 years ago

  • % Done set to 0
  • Tracker changed from Feature to Tracker
  • Pull request deleted (https://github.com/theforeman/foreman/pull/7702)

#7 Updated by Ondřej Ezr over 2 years ago

  • Description updated (diff)

#8 Updated by Ondřej Ezr over 2 years ago

#9 Updated by Ondřej Ezr about 2 years ago

  • Target version changed from 2.3.0 to 2.4.0

#10 Updated by Tomer Brisker about 2 years ago

  • Target version deleted (2.4.0)

#11 Updated by Amit Upadhye about 2 years ago

  • Target version set to 2.5.0

#12 Updated by Ondřej Ezr almost 2 years ago

  • Subject changed from Move setting registry into a memory to Improve setting definition DSL and move setting registry to memory

#13 Updated by Ondřej Ezr almost 2 years ago

#14 Updated by Ondřej Ezr almost 2 years ago

#15 Updated by Ondřej Ezr almost 2 years ago

  • Blocks Refactor #32411: Remove the old Setting class, which now only holds helper methods added

#16 Updated by Ondřej Ezr almost 2 years ago

#17 Updated by Ondřej Ezr almost 2 years ago

#18 Updated by Ondřej Ezr almost 2 years ago

#19 Updated by Ondřej Ezr almost 2 years ago

  • Target version deleted (2.5.0)

#20 Updated by Ondřej Ezr over 1 year ago

  • Related to Bug #33791: Settings defined in settings.yaml do not take precedence in the new DSL added

#21 Updated by Ondřej Ezr 11 months ago

#22 Updated by Ondřej Ezr 8 months ago

#23 Updated by The Foreman Bot 19 days ago

  • Fixed in Releases 3.6.0 added

#24 Updated by Ondřej Ezr 19 days ago

  • % Done changed from 95 to 100
  • Status changed from Ready For Testing to Closed

Also available in: Atom PDF