Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option to specify an absolute salt:// path for config_files #57

Merged
merged 2 commits into from
Dec 19, 2019

Conversation

daks
Copy link
Member

@daks daks commented Dec 18, 2019

PR progress checklist (to be filled in by reviewers)

  • Changes to documentation are appropriate (or tick if not required)
  • Changes to tests are appropriate (or tick if not required)
  • Reviews completed

What type of PR is this?

Primary type

  • [build] Changes related to the build system
  • [chore] Changes to the build process or auxiliary tools and libraries such as documentation generation
  • [ci] Changes to the continuous integration configuration
  • [feat] A new feature
  • [fix] A bug fix
  • [perf] A code change that improves performance
  • [refactor] A code change that neither fixes a bug nor adds a feature
  • [revert] A change used to revert a previous commit
  • [style] Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc.)

Secondary type

  • [docs] Documentation changes
  • [test] Adding missing or correcting existing tests

Does this PR introduce a BREAKING CHANGE?

No.

Related issues and/or pull requests

This solves #56

Describe the changes you're proposing

The proposed changes lets you define a config file, using config_files pillar in two ways:

  • the previous one which search in slspath
  • the new one anywhere in salt:// fileserver. Just prefix it with salt:// to use this one

Pillar / config required to test the proposed changes

Please see pillar.example which is used for the additional test.

Debug log showing how the proposed changes work

Documentation checklist

  • Updated the README (e.g. Available states).
  • Updated pillar.example.

Testing checklist

  • Included in Kitchen (i.e. under state_top).
  • Covered by new/existing tests (e.g. InSpec, Serverspec, etc.).
  • Updated the relevant test pillar.

Additional context

@daks
Copy link
Member Author

daks commented Dec 18, 2019

yamllint raises an error

pillar.example
  44:1      warning  comment not indented like content  (comments-indentation)

not sure how to solve it. And Debian 10 fails on verify, I imagine this is the same train lib problem found by @myii

@daks daks mentioned this pull request Dec 18, 2019
19 tasks
pillar.example Outdated
source: templates/relay-rabbitmq.config
rabbitmq.conf:
# source is relative to `rabbitmq` formula
# source: templates/rabbitmq.conf
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comments-indentation error usually requires the indentation of the comment character to be in line with the line below, so in this case:

Suggested change
# source: templates/rabbitmq.conf
# source: templates/rabbitmq.conf

@myii
Copy link
Member

myii commented Dec 19, 2019

... And Debian 10 fails on verify, I imagine this is the same train lib problem ...

@daks That commit has already been added to this formula. Actually, there's failures during the verification:

  ×  rabbitmq configuration: should match desired lines (3 failed)
     ×  File /etc/rabbitmq/rabbitmq.conf is expected to exist
     expected File /etc/rabbitmq/rabbitmq.conf to exist
     ×  File /etc/rabbitmq/rabbitmq.conf is expected to be file
     expected `File /etc/rabbitmq/rabbitmq.conf.file?` to return true, got false
     ×  File /etc/rabbitmq/rabbitmq.conf content is expected to include "# Config file for rabbitmq"
     expected nil to include "# Config file for rabbitmq", but it does not respond to `include?`

Comment on lines +9 to +13
{%- if source.startswith('salt://') %}
- source: {{ source }}
{%- else %}
- source: salt://{{ slspath }}/{{ source }}
{% endif %}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we squash this into a one-liner?

@myii
Copy link
Member

myii commented Dec 19, 2019

@daks Rather than have this as a separate state (i.e. in Kitchen), shouldn't .config_files be added to this section?

{% set module_list = salt['sys.list_modules']() %}
{% if 'rabbitmqadmin' in module_list %}
include:
- .config_bindings
- .config_queue
- .config_exchange
{% endif %}

Or does it have any relationship to rabbitmq/config.sls?

@daks
Copy link
Member Author

daks commented Dec 19, 2019

@daks Rather than have this as a separate state (i.e. in Kitchen), shouldn't .config_files be added to this section?

{% set module_list = salt['sys.list_modules']() %}
{% if 'rabbitmqadmin' in module_list %}
include:
- .config_bindings
- .config_queue
- .config_exchange
{% endif %}

Or does it have any relationship to rabbitmq/config.sls?

I don't know. I wanted a minimal PR with no possible influence on existing behaviour. I prefer to let this refactoring (with breaking change) to a future PR

@daks daks force-pushed the source-files branch 2 times, most recently from 848ae4f to d3ce57c Compare December 19, 2019 16:38
@myii myii merged commit 7f5f6c3 into saltstack-formulas:master Dec 19, 2019
@myii
Copy link
Member

myii commented Dec 19, 2019

@daks Thanks, I've merged this after our conversation in Slack. Going forward, config_files should be added to the README.

@saltstack-formulas-travis

🎉 This PR is included in version 0.18.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@daks
Copy link
Member Author

daks commented Dec 19, 2019

thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants