Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions homeassistant/components/dnsip/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
"documentation": "https://www.home-assistant.io/integrations/dnsip",
"integration_type": "service",
"iot_class": "cloud_polling",
"quality_scale": "bronze",
"requirements": ["aiodns==4.0.0"]
}
79 changes: 79 additions & 0 deletions homeassistant/components/dnsip/quality_scale.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
rules:
action-setup:
status: exempt
comment: Integration does not register custom actions.
appropriate-polling: done
brands: done
common-modules: done
config-flow-test-coverage: done
config-flow: done
dependency-transparency: done
docs-actions:
status: exempt
comment: Integration does not register custom actions.
docs-high-level-description: done
docs-installation-instructions: done
docs-removal-instructions: done
entity-event-setup:
status: exempt
comment: Entities do not subscribe to events; the sensor polls via async_update.
entity-unique-id: done
has-entity-name: done
runtime-data:
status: exempt
comment: Each WanIpSensor manages its own aiodns.DNSResolver instance and there is no shared state at the config-entry level.
test-before-configure: done
test-before-setup:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We should probably fix that beforehand instead of exempting it.
We can create the resolver in setup, test the connection and attach it to config entry runtime to use later in the sensor (I don't see a need for a coordinator really)

status: exempt
comment: The integration has no central connection to validate at setup; each sensor performs DNS resolution independently and reports availability via async_update.
unique-config-entry: done
Comment on lines +22 to +25
action-exceptions:
status: exempt
comment: Integration does not register custom actions.
config-entry-unloading: done
docs-configuration-parameters: todo
docs-installation-parameters: todo
entity-unavailable: todo
integration-owner: done
log-when-unavailable: todo
parallel-updates: todo
reauthentication-flow:
status: exempt
comment: DNS resolution does not require authentication.
test-coverage: todo
devices: todo
diagnostics: todo
discovery-update-info:
status: exempt
comment: DNS resolvers do not support discovery.
discovery:
status: exempt
comment: DNS resolvers do not support discovery.
docs-data-update: todo
docs-examples: todo
docs-known-limitations: todo
docs-supported-devices:
status: exempt
comment: Integration does not represent physical devices.
docs-supported-functions: todo
docs-troubleshooting: todo
docs-use-cases: todo
dynamic-devices:
status: exempt
comment: Integration does not represent physical devices.
entity-category: todo
entity-device-class: todo
entity-disabled-by-default: todo
entity-translations: todo
exception-translations: todo
icon-translations: todo
reconfiguration-flow: todo
repair-issues: todo
stale-devices:
status: exempt
comment: Integration does not represent physical devices.
async-dependency: done
inject-websession:
status: exempt
comment: Integration uses aiodns directly; no shared HTTP websession applies.
strict-typing: todo
23 changes: 18 additions & 5 deletions homeassistant/components/dnsip/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,18 @@
"step": {
"user": {
"data": {
"hostname": "The hostname for which to perform the DNS query",
"port": "Port for IPV4 lookup",
"port_ipv6": "Port for IPV6 lookup",
"resolver": "Resolver for IPV4 lookup",
"resolver_ipv6": "Resolver for IPV6 lookup"
"hostname": "Hostname",
"port": "IPv4 port",
"port_ipv6": "IPv6 port",
"resolver": "IPv4 resolver",
"resolver_ipv6": "IPv6 resolver"
},
"data_description": {
"hostname": "The hostname for which to perform the DNS query.",
"port": "Port used for the IPv4 lookup.",
"port_ipv6": "Port used for the IPv6 lookup.",
"resolver": "Resolver used for the IPv4 lookup.",
"resolver_ipv6": "Resolver used for the IPv6 lookup."
}
}
}
Expand Down Expand Up @@ -50,6 +57,12 @@
"port_ipv6": "[%key:component::dnsip::config::step::user::data::port_ipv6%]",
"resolver": "[%key:component::dnsip::config::step::user::data::resolver%]",
"resolver_ipv6": "[%key:component::dnsip::config::step::user::data::resolver_ipv6%]"
},
"data_description": {
"port": "[%key:component::dnsip::config::step::user::data_description::port%]",
"port_ipv6": "[%key:component::dnsip::config::step::user::data_description::port_ipv6%]",
"resolver": "[%key:component::dnsip::config::step::user::data_description::resolver%]",
"resolver_ipv6": "[%key:component::dnsip::config::step::user::data_description::resolver_ipv6%]"
}
}
}
Expand Down
2 changes: 0 additions & 2 deletions script/hassfest/quality_scale.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,6 @@ class Rule:
"dlink",
"dlna_dmr",
"dlna_dms",
"dnsip",
"dominos",
"doods",
"doorbird",
Expand Down Expand Up @@ -1253,7 +1252,6 @@ class Rule:
"dlink",
"dlna_dmr",
"dlna_dms",
"dnsip",
"dominos",
"doods",
"doorbird",
Expand Down
Loading