Project

General

Profile

Actions

Architecture #23727

closed

Group all node related access into one NodeFactRepository

Added by François ARMAND about 1 year ago. Updated 8 months ago.

Status:
Released
Priority:
N/A
Category:
Architecture - Code maintenance
Target version:
Effort required:
Name check:
To do
Fix check:
To do
Regression:
No

Description

We want to have all node access (ie: inventory, rudder settings, properties, etc) managed by only one repository.
This will allow to more easely advance on the path for #22672, but also to let us implements global security check on nodes (ACL) without fear that user-facing code does not consistently does cheks.

That will also define a defacto Internal API for node management, and so it must be done in a way that can be easely done with forward/backward compatibility in head.

Moreover, a central repository for both update and select will grantly simplify our cache management invalidation.

We will also take care in that refactoring to simplify to number of different node classes (by adding two more, à la XKCD protocol):
- a NodeFact will group all information, both inventory and rudder setting related, into only one normalized structure. It will be the sum of FullInventory and Node,
- a CoreNodeFact will group all cached information about a node. It will be like NodeInfo today, but with a simpler layout consistent with NodeFact.

Appart the massive internal code change, the observable external storage won't be changed: node will still be saved in LDAP.
Performance must be similar or better than before the change.
Code logic must be simpler.
User facing service and UI should not be modified, so we must be able to build a compatibility layer on top of that new infrastructure.


Subtasks 3 (0 open3 closed)

Bug #20752: There is no way to set the properties of a pending nodeResolvedActions
Rudder plugins - Architecture #23752: Implication of CoreNodeFactRepository to pluginsReleasedVincent MEMBRÉActions
Rudder plugins - Architecture #23753: Implication of CoreNodeFactRepository to plugins-privateReleasedVincent MEMBRÉActions

Related issues 5 (2 open3 closed)

Related to Rudder - Architecture #22672: Remove node information and inventories from LDAPPending technical reviewVincent MEMBRÉActions
Related to Rudder - Bug #20674: when saving processes in inventories, don't fetch them to replace themRejectedNicolas CHARLESActions
Related to Rudder - User story #23796: RBAC for nodes via tenants (view only)NewActions
Related to Rudder plugins - Architecture #24029: license plugin checks are not building since node facts changesReleasedFrançois ARMANDActions
Related to Rudder - Bug #24441: Cannot translate campaign on boot, leading to skipped eventsReleasedFrançois ARMANDActions
Actions #1

Updated by François ARMAND about 1 year ago

Actions #2

Updated by François ARMAND about 1 year ago

  • Description updated (diff)
Actions #3

Updated by François ARMAND about 1 year ago

  • Status changed from New to In progress
  • Assignee set to François ARMAND
Actions #4

Updated by François ARMAND about 1 year ago

  • Status changed from In progress to Pending technical review
  • Assignee changed from François ARMAND to Vincent MEMBRÉ
  • Pull Request set to https://github.com/Normation/rudder/pull/5167
Actions #5

Updated by François ARMAND about 1 year ago

  • Related to Bug #20674: when saving processes in inventories, don't fetch them to replace them added
Actions #6

Updated by François ARMAND about 1 year ago

  • Subtask #23752 added
Actions #7

Updated by François ARMAND about 1 year ago

  • Subtask #23753 added
Actions #8

Updated by Anonymous about 1 year ago

  • Status changed from Pending technical review to Pending release
Actions #9

Updated by Clark ANDRIANASOLO about 1 year ago

  • Related to Bug #23778: Hooks for newNodeManager was renamed in rudder config but not in plugins added
Actions #10

Updated by Clark ANDRIANASOLO about 1 year ago

  • Related to deleted (Bug #23778: Hooks for newNodeManager was renamed in rudder config but not in plugins)
Actions #11

Updated by François ARMAND about 1 year ago

Actions #12

Updated by Vincent MEMBRÉ 11 months ago

  • Related to Architecture #24029: license plugin checks are not building since node facts changes added
Actions #15

Updated by François ARMAND 9 months ago

  • Subtask #20752 added
Actions #16

Updated by Vincent MEMBRÉ 9 months ago

  • Related to Bug #24441: Cannot translate campaign on boot, leading to skipped events added
Actions #17

Updated by Vincent MEMBRÉ 8 months ago

  • Status changed from Pending release to Released

This bug has been fixed in Rudder 8.1.0~alpha1 which was released today.

Actions

Also available in: Atom PDF