Added constants for release version and device types, added diagnostics.GetReleaseVersion

pull/17/head
Paulo Truta 2022-02-05 21:52:49 +00:00
parent 162665b115
commit ef994a1002
3 changed files with 51 additions and 28 deletions

View File

@ -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)
}

View File

@ -6,13 +6,14 @@ 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"`
ID DeviceIdentifier `json:"id"`
Name string `json:"name"`
Size string `json:"size"`
InUse bool `json:"in_use"`
@ -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,

View File

@ -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))