1. 14 Aug, 2015 3 commits
    • Don't convert nulls to strings. · c32b8335
      This change is similar to https://github.com/ansible/ansible/pull/10465
      
      It extends the logic there to also support none types.  Right now if you have
      a '!!null' in yaml, and that var gets passed around, it will get converted to
      a string.
      
      eg. defaults/main.yml
      ```
      ENABLE_AWESOME_FEATURE: !!null # Yaml Null
      OTHER_CONFIG:
        secret1: "so_secret"
        secret2: "even_more_secret"
      
      CONFIG:
        hostname: "some_hostname"
        features:
          awesame_feature: "{{ ENABLE_AWESOME_FEATURE}}"
        secrets: "{{ OTHER_CONFIG }}"
      ```
      
      If you output `CONFIG` to json or yaml, the feature flag would get represented in the output
      as a string instead of as a null, but secrets would get represented as a dictionary.  This is
      a mis-match in behaviour where some "types" are retained and others are not.  This change
      should fix the issue.
      
      I also updated the template test to test for this and made the changes to v2.
      
      Added a changelog entry specifically for the change from empty string to null as the default.
      
      Made the null representation configurable.
      
      It still defaults to the python NoneType but can be overriden to be an emptystring by updating
      the DEFAULT_NULL_REPRESENTATION config.
      
      Conflicts:
      	lib/ansible/constants.py
      
      The way get_config is implemented change from 1.9 to devel.  I matched my code to what was there.
      Feanil Patel committed
    • Don't convert numbers and booleans to strings. · bde7b7c3
      Before this change if a variable was of type int or bool and the variable was referenced
      by another variable, the type would change to string.
      
      eg. defaults/main.yml
      ```
      PORT: 4567
      OTHER_CONFIG:
        secret1: "so_secret"
        secret2: "even_more_secret"
      
      CONFIG:
        hostname: "some_hostname"
        port: "{{ PORT }}"
        secrets: "{{ OTHER_CONFIG }}"
      ```
      
      If you output `CONFIG` to json or yaml, the port would get represented in the output as a
      string instead of as a number, but secrets would get represented as a dictionary.  This is
      a mis-match in behaviour where some "types" are retained and others are not.  This change
      should fix the issue.
      
      Update template test to also test var retainment.
      
      Make the template changes in v2.
      Update to only short-circuit for booleans and numbers.
      
      Added an entry to the changelog.
      Feanil Patel committed
  2. 12 Aug, 2015 2 commits
  3. 11 Aug, 2015 1 commit
  4. 07 Aug, 2015 4 commits
  5. 06 Aug, 2015 2 commits
  6. 31 Jul, 2015 2 commits
  7. 29 Jul, 2015 1 commit
  8. 28 Jul, 2015 2 commits
  9. 25 Jul, 2015 1 commit
  10. 24 Jul, 2015 1 commit
  11. 23 Jul, 2015 1 commit
  12. 22 Jul, 2015 3 commits
  13. 21 Jul, 2015 3 commits
  14. 20 Jul, 2015 4 commits
  15. 09 Jul, 2015 1 commit
  16. 08 Jul, 2015 1 commit
  17. 07 Jul, 2015 1 commit
  18. 06 Jul, 2015 2 commits
  19. 05 Jul, 2015 1 commit
  20. 03 Jul, 2015 3 commits
  21. 02 Jul, 2015 1 commit