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

[SVH] Add WINS Server and MasterBrowser options to SAMBA AddOn #3894

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

stefvanhooijdonk
Copy link

@stefvanhooijdonk stefvanhooijdonk commented Jan 16, 2025

Add configuration options to the SAMBA AddOn to enable:

  • The NMBD to enable WINS Server support
  • The NMBD to become the WORKGROUP browser master
  • Add the Configuration Page options and descriptions
  • Add the update to the DOCS and ChangeLog

Summary by CodeRabbit

Release Notes for Samba Add-on v12.4.1

  • New Features

    • Added option to enable Samba as a local browser master.
    • Added option to enable Samba WINS Server.
  • Configuration Updates

    • Introduced new configuration options: winsserver_mode (default: false) and masterbrowser_mode (default: true).
    • Enhanced documentation to guide users on new features.

These updates provide users with increased control over Samba's network interaction capabilities while preserving existing functionality.

Copy link

@home-assistant home-assistant bot left a comment

Choose a reason for hiding this comment

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

Hi @stefvanhooijdonk

It seems you haven't yet signed a CLA. Please do so here.

Once you do that we will be able to review and accept this pull request.

Thanks!

@home-assistant home-assistant bot marked this pull request as draft January 16, 2025 21:03
@home-assistant
Copy link

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

Copy link
Contributor

coderabbitai bot commented Jan 16, 2025

📝 Walkthrough

Walkthrough

The pull request introduces a new version entry for 12.4.1 in the Samba add-on, which includes two significant features: the ability to enable SAMBA as a local browser master and the option to enable the SAMBA WINS Server. These changes are reflected across multiple files, including the changelog, documentation, configuration schema, template, and translations, enhancing the configurability of the Samba service without affecting existing functionalities.

Changes

File Change Summary
samba/CHANGELOG.md Added version 12.4.1 with new features for SAMBA browser master and WINS server options
samba/DOCS.md Added new configuration options winsserver_mode: false and masterbrowser_mode: true
samba/config.yaml Introduced winsserver_mode and masterbrowser_mode options in schema and options sections
samba/rootfs/usr/share/tempio/smb.gtpl Added conditional configurations for WINS support and master browser settings
samba/translations/en.yaml Added translations for masterbrowser_mode and winsserver_mode configuration options

Sequence Diagram

sequenceDiagram
    participant User
    participant SambaConfig
    participant SambaService

    User->>SambaConfig: Set winsserver_mode and masterbrowser_mode
    SambaConfig->>SambaService: Apply network configuration
    alt WINS Server Enabled
        SambaService->>SambaService: Enable WINS support
    end
    alt Master Browser Enabled
        SambaService->>SambaService: Configure as local master browser
    end
    SambaService-->>User: Network services configured
Loading

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 262c7ad and d7c386c.

📒 Files selected for processing (1)
  • samba/config.yaml (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • samba/config.yaml

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🔭 Outside diff range comments (1)
samba/config.yaml (1)

Line range hint 2-2: Update version number to match changelog.

The version number should be updated to 12.4.1 to match the changelog.

-version: 12.4.0
+version: 12.4.1
🧹 Nitpick comments (1)
samba/translations/en.yaml (1)

31-34: Enhance WINS Server description for clarity.

The current description could be more informative about the purpose of WINS.

-      Enable this to use old legacy WINS protocols on this Samba add-on.
+      Enable this to use WINS (Windows Internet Name Service) for NetBIOS name resolution. This allows the Samba server to act as a WINS server for the network.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fabb9a8 and 3bbac0b.

📒 Files selected for processing (5)
  • samba/CHANGELOG.md (1 hunks)
  • samba/DOCS.md (1 hunks)
  • samba/config.yaml (2 hunks)
  • samba/rootfs/usr/share/tempio/smb.gtpl (1 hunks)
  • samba/translations/en.yaml (1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
samba/DOCS.md (6)

Pattern */**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.

  • Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
  • In step-by-step instructions, front the location phrase in the instructional sentence.
  • In step-by-step instructions, front the 'goal' in the instructional sentence.
  • In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
  • do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'

Pattern */**(html|markdown|md): - Use bold to mark UI strings.

  • If "" are used to mark UI strings, replace them by bold.

Pattern */**(html|markdown|md): - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"


Pattern */**(html|markdown|md): - Use sentence-style capitalization also in headings.


Pattern */**(html|markdown|md): do not comment on HTML used for icons


Pattern */**(html|markdown|md): Avoid flagging inline HTML for embedding videos in future reviews for this repository.

samba/CHANGELOG.md (6)

Pattern */**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.

  • Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
  • In step-by-step instructions, front the location phrase in the instructional sentence.
  • In step-by-step instructions, front the 'goal' in the instructional sentence.
  • In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
  • do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'

Pattern */**(html|markdown|md): - Use bold to mark UI strings.

  • If "" are used to mark UI strings, replace them by bold.

Pattern */**(html|markdown|md): - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"


Pattern */**(html|markdown|md): - Use sentence-style capitalization also in headings.


Pattern */**(html|markdown|md): do not comment on HTML used for icons


Pattern */**(html|markdown|md): Avoid flagging inline HTML for embedding videos in future reviews for this repository.

samba/config.yaml (6)

Pattern */**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.

  • Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
  • In step-by-step instructions, front the location phrase in the instructional sentence.
  • In step-by-step instructions, front the 'goal' in the instructional sentence.
  • In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
  • do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'

Pattern */**(html|markdown|md): - Use bold to mark UI strings.

  • If "" are used to mark UI strings, replace them by bold.

Pattern */**(html|markdown|md): - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"


Pattern */**(html|markdown|md): - Use sentence-style capitalization also in headings.


Pattern */**(html|markdown|md): do not comment on HTML used for icons


Pattern */**(html|markdown|md): Avoid flagging inline HTML for embedding videos in future reviews for this repository.

🔇 Additional comments (5)
samba/rootfs/usr/share/tempio/smb.gtpl (2)

6-8: LGTM: WINS server configuration is correctly implemented.

The WINS server configuration is properly implemented using the standard Samba parameter.


10-15: LGTM: Master Browser configuration follows best practices.

The Master Browser configuration includes all necessary settings:

  • domain master
  • preferred master
  • local master
  • os level (set to 255)

These settings ensure the server will effectively function as the Master Browser.

samba/config.yaml (1)

39-40: LGTM: New options are well-defined with appropriate defaults.

The new options are properly configured with appropriate default values and correct schema definitions.

Also applies to: 61-62

samba/CHANGELOG.md (1)

2-6: LGTM: Changelog entries are clear and follow the format.

The changelog properly documents the new features with clear descriptions.

samba/DOCS.md (1)

Line range hint 1-24: Documentation structure and style look good!

The documentation follows the style guidelines with:

  • Clear step-by-step instructions
  • Proper use of bold for UI elements
  • Direct and authoritative tone

samba/DOCS.md Show resolved Hide resolved
@stefvanhooijdonk
Copy link
Author

@coderabbitai review

Copy link
Member

@agners agners left a comment

Choose a reason for hiding this comment

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

Thank you for your PR!

Can you elaborate a bit more what your use case is/what you try to solve adding these options?

## 12.4.1

- Add the option to enable SAMBA to become local browsermaster
- Add the option to enable SAMBA WINS Server
Copy link
Member

Choose a reason for hiding this comment

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

From https://learn.microsoft.com/en-us/windows-server/networking/technologies/wins/wins-top:

Windows Internet Name Service (WINS) is a legacy computer name registration and resolution service that maps computer NetBIOS names to IP addresses.

If you do not already have WINS deployed on your network, do not deploy WINS - instead, deploy Domain Name System (DNS). [...]

Since even Microsoft considers WINS legacy, I don't think we should add support for it on our end.

Copy link
Author

Choose a reason for hiding this comment

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

MasterBrowser in my network helps with navigating my servers/shares.

wins is old, can live without.

Copy link
Author

Choose a reason for hiding this comment

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

Thanks at least for considering

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

Successfully merging this pull request may close these issues.

2 participants