Remove unused hostname_prefix from server types and add duplicate checking
build-and-push / test (push) Successful in 35s
build-and-push / build-and-push (push) Successful in 56s

The HostnamePrefix field on ServerType was loaded from YAML but never used —
hostnames are user-provided. This removes the field and adds explicit
duplicate checks (hostname + MAC) with clear per-field error messages in
both the JSON API and web UI, backed by a new GetByHostname store method
with case-insensitive matching.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-14 10:50:16 -04:00
parent 1317ff6369
commit 2a0fbf6923
7 changed files with 122 additions and 12 deletions
+8
View File
@@ -65,6 +65,14 @@ func (a *HostAPI) Create(w http.ResponseWriter, r *http.Request) {
writeJSONErr(w, http.StatusBadRequest, "unknown server_type")
return
}
if existing, err := a.Hosts.GetByHostname(r.Context(), req.Hostname); err == nil && existing != nil {
writeJSONErr(w, http.StatusConflict, "a host with this hostname already exists")
return
}
if existing, err := a.Hosts.GetByMAC(r.Context(), req.MAC); err == nil && existing != nil {
writeJSONErr(w, http.StatusConflict, "a host with this MAC address already exists")
return
}
id, err := a.Hosts.Create(r.Context(), model.Host{
Hostname: req.Hostname,