feat(coderd): add endpoint to list provisioner daemons (#16028)

Updates #15190
Updates #15084
Supersedes #15940
This commit is contained in:
Mathias Fredriksson
2025-01-14 16:40:26 +00:00
committed by GitHub
parent d7809ecf3f
commit 071bb26018
31 changed files with 1106 additions and 188 deletions
+62
View File
@@ -1209,6 +1209,68 @@ func AllPortShareProtocolValues() []PortShareProtocol {
}
}
// The status of a provisioner daemon.
type ProvisionerDaemonStatus string
const (
ProvisionerDaemonStatusOffline ProvisionerDaemonStatus = "offline"
ProvisionerDaemonStatusIdle ProvisionerDaemonStatus = "idle"
ProvisionerDaemonStatusBusy ProvisionerDaemonStatus = "busy"
)
func (e *ProvisionerDaemonStatus) Scan(src interface{}) error {
switch s := src.(type) {
case []byte:
*e = ProvisionerDaemonStatus(s)
case string:
*e = ProvisionerDaemonStatus(s)
default:
return fmt.Errorf("unsupported scan type for ProvisionerDaemonStatus: %T", src)
}
return nil
}
type NullProvisionerDaemonStatus struct {
ProvisionerDaemonStatus ProvisionerDaemonStatus `json:"provisioner_daemon_status"`
Valid bool `json:"valid"` // Valid is true if ProvisionerDaemonStatus is not NULL
}
// Scan implements the Scanner interface.
func (ns *NullProvisionerDaemonStatus) Scan(value interface{}) error {
if value == nil {
ns.ProvisionerDaemonStatus, ns.Valid = "", false
return nil
}
ns.Valid = true
return ns.ProvisionerDaemonStatus.Scan(value)
}
// Value implements the driver Valuer interface.
func (ns NullProvisionerDaemonStatus) Value() (driver.Value, error) {
if !ns.Valid {
return nil, nil
}
return string(ns.ProvisionerDaemonStatus), nil
}
func (e ProvisionerDaemonStatus) Valid() bool {
switch e {
case ProvisionerDaemonStatusOffline,
ProvisionerDaemonStatusIdle,
ProvisionerDaemonStatusBusy:
return true
}
return false
}
func AllProvisionerDaemonStatusValues() []ProvisionerDaemonStatus {
return []ProvisionerDaemonStatus{
ProvisionerDaemonStatusOffline,
ProvisionerDaemonStatusIdle,
ProvisionerDaemonStatusBusy,
}
}
// Computed status of a provisioner job. Jobs could be stuck in a hung state, these states do not guarantee any transition to another state.
type ProvisionerJobStatus string