@@ -170,22 +170,22 @@ def _validate_directive_attrs(self) -> None:
170170
171171 @field_validator ("address" )
172172 def validate_address (
173- cls , value : t .Union [IPv4Address , IPv6Address , str ], values : t . Dict [ str , t . Any ]
173+ cls , value : t .Union [IPv4Address , IPv6Address , str ], info : ValidationInfo
174174 ) -> t .Union [IPv4Address , IPv6Address , str ]:
175175 """Ensure a hostname is resolvable."""
176176
177177 if not isinstance (value , (IPv4Address , IPv6Address )):
178178 if not any (resolve_hostname (value )):
179179 raise ConfigError (
180180 "Device '{d}' has an address of '{a}', which is not resolvable." ,
181- d = values ["name" ],
181+ d = info . data ["name" ],
182182 a = value ,
183183 )
184184 return value
185185
186186 @field_validator ("avatar" )
187187 def validate_avatar (
188- cls , value : t .Union [FilePath , None ], values : t . Dict [ str , t . Any ]
188+ cls , value : t .Union [FilePath , None ], info : ValidationInfo
189189 ) -> t .Union [FilePath , None ]:
190190 """Migrate avatar to static directory."""
191191 if value is not None :
@@ -198,7 +198,7 @@ def validate_avatar(
198198 target = Settings .static_path / "images" / value .name
199199 copied = shutil .copy2 (value , target )
200200 log .bind (
201- device = values ["name" ],
201+ device = info . data ["name" ],
202202 source = str (value ),
203203 destination = str (target ),
204204 ).debug ("Copied device avatar" )
@@ -210,24 +210,24 @@ def validate_avatar(
210210 return value
211211
212212 @field_validator ("platform" , mode = "before" )
213- def validate_platform (cls : "Device" , value : t .Any , values : t . Dict [ str , t . Any ] ) -> str :
213+ def validate_platform (cls : "Device" , value : t .Any , info : ValidationInfo ) -> str :
214214 """Validate & rewrite device platform, set default `directives`."""
215215
216216 if value == "http" :
217- if values .get ("http" ) is None :
217+ if info . data .get ("http" ) is None :
218218 raise ConfigError (
219219 "Device '{device}' has platform 'http' configured, but no http parameters are defined." ,
220- device = values ["name" ],
220+ device = info . data ["name" ],
221221 )
222222
223223 if value is None :
224- if values .get ("http" ) is not None :
224+ if info . data .get ("http" ) is not None :
225225 value = "http"
226226 else :
227227 # Ensure device platform is defined.
228228 raise ConfigError (
229229 "Device '{device}' is missing a 'platform' (Network Operating System) property" ,
230- device = values ["name" ],
230+ device = info . data ["name" ],
231231 )
232232
233233 if value in SCRAPE_HELPERS .keys ():
0 commit comments