add disk type (prefix) to instance volume model
This commit is contained in:
@@ -190,6 +190,9 @@ func (instance *Instance) RebuildVolume(host *Node, volid string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
voltype := AnyPrefixes(volid, VolumeTypes)
|
||||
volume.Type = voltype
|
||||
|
||||
instance.Volumes[VolumeID(volid)] = volume
|
||||
|
||||
return nil
|
||||
|
10
app/types.go
10
app/types.go
@@ -48,8 +48,18 @@ type Instance struct {
|
||||
configHostPCIs map[string]string
|
||||
}
|
||||
|
||||
var VolumeTypes = []string{
|
||||
"sata",
|
||||
"scsi",
|
||||
"ide",
|
||||
"rootfs",
|
||||
"mp",
|
||||
"unused",
|
||||
}
|
||||
|
||||
type VolumeID string
|
||||
type Volume struct {
|
||||
Type string `json:"type"`
|
||||
Storage string `json:"storage"`
|
||||
Format string `json:"format"`
|
||||
Size uint64 `json:"size"`
|
||||
|
15
app/utils.go
15
app/utils.go
@@ -36,7 +36,7 @@ func GetConfig(configPath string) Config {
|
||||
return config
|
||||
}
|
||||
|
||||
// returns if a device pcie bus id is a super device or subsystem device
|
||||
// checks if a device pcie bus id is a super device or subsystem device
|
||||
//
|
||||
// subsystem devices always has the format xxxx:yy.z, whereas super devices have the format xxxx:yy
|
||||
//
|
||||
@@ -44,3 +44,16 @@ func GetConfig(configPath string) Config {
|
||||
func DeviceBusIDIsSuperDevice(BusID DeviceID) bool {
|
||||
return !strings.ContainsRune(string(BusID), '.')
|
||||
}
|
||||
|
||||
// checks if string s has one of any prefixes, and returns the prefix or "" if there was no match
|
||||
//
|
||||
// matches the first prefix match in array order
|
||||
func AnyPrefixes(s string, prefixes []string) string {
|
||||
for _, prefix := range prefixes {
|
||||
if strings.HasPrefix(s, prefix) {
|
||||
return prefix
|
||||
}
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
Reference in New Issue
Block a user