sonic-net / sonic-mgmt

Configuration management examples for SONiC
Other
173 stars 689 forks source link

Validate /etc/resolv.conf in each docker container #13559

Closed ganglyu closed 1 day ago

ganglyu commented 5 days ago

Description of PR

Summary: Fixes https://github.com/sonic-net/sonic-mgmt/issues/8242

Type of change

Back port request

Approach

What is the motivation for this PR?

If /etc/resolv.conf is broken in docker container, some critical service may fail to start.

How did you do it?

Update test case to cover the validation of /etc/resolv.conf in each docker container.

How did you verify/test it?

Run DNS end to end test

Any platform specific information?

Supported testbed topology if it's a new test case?

Documentation

mssonicbld commented 5 days ago

The pre-commit check detected issues in the files touched by this pull request. The pre-commit check is a mandatory check, please fix detected issues.

Detailed pre-commit check results:

trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check yaml...........................................(no files to check)Skipped
check for added large files..............................................Passed
check python ast.........................................................Passed
flake8...................................................................Failed
- hook id: flake8
- exit code: 1

tests/dns/test_dns_resolv_conf.py:79:21: E128 continuation line under-indented for visual indent

flake8...............................................(no files to check)Skipped
check conditional mark sort..........................(no files to check)Skipped

To run the pre-commit checks locally, you can follow below steps:

  1. Ensure that default python is python3. In sonic-mgmt docker container, default python is python2. You can run the check by activating the python3 virtual environment in sonic-mgmt docker container or outside of sonic-mgmt docker container.
  2. Ensure that the pre-commit package is installed:
    sudo pip install pre-commit
  3. Go to repository root folder
  4. Install the pre-commit hooks:
    pre-commit install
  5. Use pre-commit to check staged file:
    pre-commit
  6. Alternatively, you can check committed files using:
    pre-commit run --from-ref <commit_id> --to-ref <commit_id>