saltstack / saltstack/salt

[BUG] "system" module is not consistent between OSes

Open
#64,120 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug Execution-Module needs-triage Platform
Dominant language
Python
Stars
15.7k
Forks
5.6k
Avg merge
2d 44m
Merged PRs (30d)
80

Description

Description
The various functions in the "system" module are not consistent between OSes, specifically Linux and Windows (I don't have Macs to test).

Obviously, many of the features are not common between OSes, but things like "shutdown", "poweroff", etc are almost the same and the command parameters and behavior could be much closer.

For example, "poweroff":

  • Linux takes no parameters
  • Windows has "timeout" and "in_seconds"

"shutdown":

  • Linux has only "at_time" which is described as a "wait time" (so poor variable name as well)
  • Windows has 6-8 parameters. The shutdown delay is called "timeout". Unfortunately, it is the 2nd positional parameter so does not match Linux in that way either.

I know these were developed at different times, but consistency in the interface between different OSes would be very helpful.

Setup
Simple standard master and minions.

Expected behavior
It would be very helpful if (within reason), the functionality and esp. parameter names, were the same across all OSes. And, while I specifically care about the "system" module right now, obviously this applies to all common modules.

Versions Report
Linux running version 3005.1
Windows running version 3004.2

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the system module implementations for Linux and Windows and compare the shutdown and poweroff entry points and their parameters. Review how the existing tests cover these functions, then define a consistent cross-platform interface and tests that establish the expected behavior for both operating systems.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
infrastructure, operating-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.