diff --git a/internal/diagnostics/diagnostics.go b/internal/diagnostics/diagnostics.go index bd66329..ff032f8 100644 --- a/internal/diagnostics/diagnostics.go +++ b/internal/diagnostics/diagnostics.go @@ -1,7 +1,18 @@ package diagnostics +type ReleaseVersion string + var Version string - var Commit string - var BuildDate string + +const ( + DEV_VERSION ReleaseVersion = "dev" + PROD_VERSION ReleaseVersion = "prod" + CLOUD_VERSION ReleaseVersion = "cloud" + OTHER_VERSION ReleaseVersion = "other" +) + +func GetReleaseVersion() ReleaseVersion { + return ReleaseVersion(Version) +} diff --git a/internal/storage/storage.go b/internal/storage/storage.go index 8633f62..8ff3f25 100644 --- a/internal/storage/storage.go +++ b/internal/storage/storage.go @@ -6,24 +6,25 @@ import ( "path/filepath" "strings" + "github.com/edgebox-iot/edgeboxctl/internal/diagnostics" "github.com/edgebox-iot/edgeboxctl/internal/utils" "github.com/shirou/gopsutil/disk" ) // Device : Struct representing a storage device in the system type Device struct { - ID string `json:"id"` - Name string `json:"name"` - Size string `json:"size"` - InUse bool `json:"in_use"` - MainDevice bool `json:"main_device"` - MAJ string `json:"maj"` - MIN string `json:"min"` - RM string `json:"rm"` - RO string `json:"ro"` - Partitions []Partition `json:"partitions"` - Status DeviceStatus `json:"status"` - UsageStat UsageStat `json:"usage_stat"` + ID DeviceIdentifier `json:"id"` + Name string `json:"name"` + Size string `json:"size"` + InUse bool `json:"in_use"` + MainDevice bool `json:"main_device"` + MAJ string `json:"maj"` + MIN string `json:"min"` + RM string `json:"rm"` + RO string `json:"ro"` + Partitions []Partition `json:"partitions"` + Status DeviceStatus `json:"status"` + UsageStat UsageStat `json:"usage_stat"` } // DeviceStatus : Struct representing possible storage device statuses (code + description) @@ -66,8 +67,27 @@ type Partition struct { UsageStat UsageStat `json:"usage_stat"` } +type DeviceIdentifier string + +const ( + DISK_TYPE_SDA DeviceIdentifier = "sda" + DISK_TYPE_MCBLK DeviceIdentifier = "mmcblk0" + DISK_TYPE_VDA DeviceIdentifier = "vda" +) + +func GetDeviceIdentifier(release_version diagnostics.ReleaseVersion) DeviceIdentifier { + switch release_version { + case diagnostics.CLOUD_VERSION: + return DISK_TYPE_VDA + case diagnostics.PROD_VERSION: + return DISK_TYPE_MCBLK + } + + return DISK_TYPE_SDA +} + // GetDevices : Returns a list of all available sotrage devices in structs filled with information -func GetDevices(release_version string) []Device { +func GetDevices(release_version diagnostics.ReleaseVersion) []Device { var devices []Device @@ -80,15 +100,7 @@ func GetDevices(release_version string) []Device { firstDevice := true currentDeviceInUseFlag := false - mainDiskID := "sda" - - if release_version == "dev" { - mainDiskID = "sda" - } else if release_version == "prod" { - mainDiskID = "mmcblk0" - } else if release_version == "cloud" { - mainDiskID = "vda" - } + mainDiskID := GetDeviceIdentifier(release_version) for scanner.Scan() { // 1 Device is represented here. Extract words in order for filling a Device struct @@ -130,7 +142,7 @@ func GetDevices(release_version string) []Device { mainDevice := false device := Device{ - ID: deviceRawInfo[0], + ID: DeviceIdentifier(deviceRawInfo[0]), Name: deviceRawInfo[0], Size: deviceRawInfo[3], MainDevice: mainDevice, diff --git a/internal/tasks/tasks.go b/internal/tasks/tasks.go index b5c0eb9..347f897 100644 --- a/internal/tasks/tasks.go +++ b/internal/tasks/tasks.go @@ -121,7 +121,7 @@ func ExecuteTask(task Task) Task { log.Fatal(err.Error()) } - if diagnostics.Version == "dev" { + if diagnostics.GetReleaseVersion() == diagnostics.DEV_VERSION { log.Printf("Dev environemnt. Not executing tasks.") } else { log.Println("Task: " + task.Task) @@ -287,7 +287,7 @@ func ExecuteSchedules(tick int) { // }) // } - if diagnostics.Version == "cloud" { + if diagnostics.GetReleaseVersion() == diagnostics.CLOUD_VERSION { log.Println("Setting up cloud version options (name, email, api token)") taskSetupCloudOptions() } @@ -451,7 +451,7 @@ func taskGetSystemUptime() string { func taskGetStorageDevices() string { fmt.Println("Executing taskGetStorageDevices") - devices := storage.GetDevices(diagnostics.Version) + devices := storage.GetDevices(diagnostics.GetReleaseVersion()) devicesJSON, _ := json.Marshal(devices) utils.WriteOption("STORAGE_DEVICES_LIST", string(devicesJSON))