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

fix(FreeBSD): fix interaction with wireguard service #10

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

alxwr
Copy link
Member

@alxwr alxwr commented Aug 21, 2023

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

state apply wireguard.service.running always resulted in an error:

----------                                                                                                                                 
          ID: wireguard-service-running-service-running                                                                                    
    Function: service.running                                                                                                              
        Name: wireguard                                                                                                                    
      Result: False                                                                                                                        
     Comment: Service wireguard is already enabled, and is dead                                                                            
     Started: 12:28:50.280340                                                                                                              
    Duration: 254.583 ms                                                                                                                   
     Changes:

Describe the changes you're proposing

service wireguard status just does not behave as other services. My old implementation just does not work any more with the standard implementation of FreeBSD.

Therefore I use a bit of shellout to handle the peculiarities.

Pillar / config required to test the proposed changes

Debug log showing how the proposed changes work

% salt --state-output=changes --state-verbose=False 'host' state.apply wireguard.service.running
host:
----------
          ID: wireguard-service-running-sysrc-managed
    Function: sysrc.managed
        Name: wireguard_interfaces
      Result: True
     Comment: The value of "wireguard_interfaces" was changed!
     Started: 13:47:29.407565
    Duration: 111.769 ms
     Changes:   
              ----------
              new:
                  ----------
                  /etc/rc.conf:
                      ----------
                      wireguard_interfaces:
                           wgos0
              old:
                  None
----------
          ID: wireguard-service-running-service-enabled
    Function: service.enabled
        Name: wireguard
      Result: True
     Comment: Service wireguard has been enabled, and is in the desired state
     Started: 13:47:29.520550
    Duration: 172.543 ms
     Changes:   
              ----------
              wireguard:
                  True
----------
          ID: wireguard-service-running-service-running-trigger
    Function: cmd.run
        Name: /bin/sh -c 'exit 0'
      Result: True
     Comment: Command "/bin/sh -c 'exit 0'" run
     Started: 13:47:29.693542
    Duration: 59.307 ms
     Changes:   
              ----------
              pid:
                  18361
              retcode:
                  0
              stderr:
              stdout:
----------
          ID: wireguard-service-running-service-running
    Function: cmd.run
        Name: sh -c "service wireguard onerestart 0<&- >/dev/null 2>&1"
      Result: True
     Comment: Command "sh -c "service wireguard onerestart 0<&- >/dev/null 2>&1"" run
     Started: 13:47:29.754939
    Duration: 115.074 ms
     Changes:   
              ----------
              pid:
                  18367
              retcode:
                  0
              stderr:
              stdout:

Summary for host
-------------
Succeeded: 10 (changed=4)
Failed:     0
-------------
Total states run:     10
Total run time:    1.609 s

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

@alxwr alxwr requested a review from myii August 21, 2023 11:53
@alxwr alxwr self-assigned this Aug 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant