saltstack/salt — pull request #11867 by johnnoone (2014-04-09 05:20:03+00:00)
Title: expose sls serializer to sls files

This branch follows https://github.com/saltstack/salt/pull/10625 in order to expose *sls serializer* to sls files:

- added ext_pillar cmd_sls
- added #!sls renderer
- choose a merging strategy between pillar sources, via *pillar_source_merging_strategy* settings

In two words, it adds the ability to instruct the merging of pillar data with ``!aggregate`` and ``!reset`` yaml tags. For example, when properly configurated, these documents:

```yaml
#!sls
foo: !aggregate first
bar:
baz: default value
quux: !aggregate True
```

```yaml
#!sls
foo: !aggregate second
bar:
baz: overwritten value
quux: !aggregate False
```

will produce

```yaml
foo:
- first
- second
bar:
baz: overwritten value
quux:
- True
- False
```

Pillar merging strategy accepts these values:

- recurse: based on salt.utils.dictupdate:update()
- aggregate: based on salt.utils.aggregation:aggregate()
- smart (default): guesses the most relevant strategy, based on the *renderer* settings