This commit is contained in:
42
internal/models/storage.go
Normal file
42
internal/models/storage.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package models
|
||||
|
||||
// SMBShare represents an SMB/CIFS share
|
||||
type SMBShare struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Path string `json:"path"` // dataset mountpoint
|
||||
Dataset string `json:"dataset"` // ZFS dataset name
|
||||
Description string `json:"description"`
|
||||
ReadOnly bool `json:"read_only"`
|
||||
GuestOK bool `json:"guest_ok"`
|
||||
ValidUsers []string `json:"valid_users"`
|
||||
Enabled bool `json:"enabled"`
|
||||
}
|
||||
|
||||
// NFSExport represents an NFS export
|
||||
type NFSExport struct {
|
||||
ID string `json:"id"`
|
||||
Path string `json:"path"` // dataset mountpoint
|
||||
Dataset string `json:"dataset"` // ZFS dataset name
|
||||
Clients []string `json:"clients"` // allowed clients (CIDR or hostnames)
|
||||
ReadOnly bool `json:"read_only"`
|
||||
RootSquash bool `json:"root_squash"`
|
||||
Enabled bool `json:"enabled"`
|
||||
}
|
||||
|
||||
// ISCSITarget represents an iSCSI target
|
||||
type ISCSITarget struct {
|
||||
ID string `json:"id"`
|
||||
IQN string `json:"iqn"` // iSCSI Qualified Name
|
||||
LUNs []LUN `json:"luns"`
|
||||
Initiators []string `json:"initiators"` // ACL list
|
||||
Enabled bool `json:"enabled"`
|
||||
}
|
||||
|
||||
// LUN represents a Logical Unit Number backed by a ZVOL
|
||||
type LUN struct {
|
||||
ID int `json:"id"` // LUN number
|
||||
ZVOL string `json:"zvol"` // ZVOL name
|
||||
Size uint64 `json:"size"` // bytes
|
||||
Backend string `json:"backend"` // "zvol"
|
||||
}
|
||||
Reference in New Issue
Block a user