Page MenuHomeDevCentral

Allow to filter a list by role
ClosedPublic

Authored by dereckson on Nov 23 2017, 04:42.

Details

Summary

Currently, content to deploy to /var/wwwroot are split
in mastodon, shellserver and webserver-legacy roles.

Plan is to consolidate all of them in the webserver-content
role, and from webserver-content/init.sls, to include the relevant
states files according the target role.

To use node.has_role with if condition isn't pretty, especially as
a sls file can't only have one unique include entry.

Instead, this change provides a node.filter_by_role method, to be
able to create a pillar like this:

web_content_sls:
  mastodon:
    - .org/nasqueron/social
  shellserver:
    - .com/paysannerebelle
    - .org/eglide
  webserver-legacy:
    - .be/dereckson
    - .org/nasqueron/docs

Then, node.filter_by_role('web_content_sls') called on a node
with the mastodon role will return this list:

- .org/nasqueron/social

Ref T1325

Test Plan

Unit tests have been provided for the new method.

Diff Detail

Repository
rOPS Nasqueron Operations
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

dereckson created this revision.Nov 23 2017, 04:42
dereckson accepted this revision.Nov 23 2017, 04:43
dereckson added a project: TDD.
This revision is now accepted and ready to land.Nov 23 2017, 04:43
This revision was automatically updated to reflect the committed changes.