Conversation
Summary of ChangesHello @danlavu, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances the SSSD test framework by introducing new network utility functions and refining existing ones. It provides a dedicated method for managing hostnames, improves the Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new utility for managing the hostname, adds a common configuration for dynamic DNS, and adjusts the nslookup helper for easier use in test assertions. My review includes suggestions to improve the efficiency and correctness of the new hostname utility and to enhance the flexibility of the dyndns configuration helper by making its parameters configurable.
|
Writing the tests now, but they do seem to work. UPDATE: There was a problem changing the hostname during the test. The teardown did not always work leaving the domain. Updated sssd.conf to contain *_hostname. |
b5083d4 to
195bf1c
Compare
7128453 to
68b8673
Compare
spoore1
left a comment
There was a problem hiding this comment.
Just one question about the nslookup return value. Running the provided test passes currently:
PASSED tests/test_dynamic_dns.py::test_dynamic_dns__updates_forward_records (ad)
PASSED tests/test_dynamic_dns.py::test_dynamic_dns__updates_forward_records (ipa)
PASSED tests/test_dynamic_dns.py::test_dynamic_dns__updates_forward_records (samba)
8a01b91 to
37868ad
Compare
5d02429 to
9bbc0de
Compare
9bbc0de to
c7c24ff
Compare
c7c24ff to
d6f6e8b
Compare
Actually, it wasn't working correctly. things like if there were two A records but resolved to the wrong ip. Having the return code be 0, but the wrong IP is found, was just messy and complicated. |
|
This test works. |
|
|
||
|
|
||
| def ip_to_ptr(ip_address: str) -> str: | ||
| def ip_to_ptr(ip_address: str, prefixlen: int | None = None) -> str: |
There was a problem hiding this comment.
There was a problem hiding this comment.
I'm not sure, I think I wrote most of the function, then stumbled upon ipaddress module.
| [ | ||
| ("192.168.1.0", "1.168.192.in-addr.arpa."), | ||
| ("2001:db8::1", "1000000000000000000000008bd01002.ip6.arpa."), | ||
| ("192.168.1.0", "1.168.192.in-addr.arpa", None), |
There was a problem hiding this comment.
Shouldn't this be the expected value 0.1.168.192.in-addr.arpa ?
There was a problem hiding this comment.
Technically, yes, if were looking for the ptr record, but we want the zone file. Which will always omit the last octet.
| ("001:db8::", True), | ||
| ], | ||
| ) | ||
| def test_ip_is_valid(value, expected): |
There was a problem hiding this comment.
test_ip_is_valid is essentially only executing ipaddress.ip_address(ip) which is part of the ipaddress python library. Due to this, I see no value in adding sssd-test-framework tests for this test_ip_is_valid method.
There was a problem hiding this comment.
Ack, will remove it then.
|
|
||
| # Change client hostname to match the domain | ||
| self.logger.info(f"Changing hostname to {hostname}") | ||
| client.conn.run(f"hostname {hostname}") |
There was a problem hiding this comment.
If the hostname is changed as part of SSSD/sssd-ci-containers@0fbc04f why do we need it done here as part of topology setup also?
There was a problem hiding this comment.
When running a test with more than one topology, the hostname must change when switching between topologies.
| return self | ||
|
|
||
| def delete_record(self, name: str) -> None: | ||
| def delete_record(self, name: str, data: str) -> None: |
There was a problem hiding this comment.
Is data argument really needed? That seems a bit cumbersome
There was a problem hiding this comment.
It is very cumbersome.
If we wanted to delete the entire record, we couldn't remove it. IPA has sshfp records that I think we should keep? So the record data has to be specified so that record type is deleted.
No description provided.