package dsdssandboxes import ( "fmt" ) var ( // Timezones Utc = "utc" Gmt = "gmt_standard_time" EasternStandardTime = "eastern_standard_time" AustralianEasternTime = "aus_eastern_standard_time" IsraelStandardTime = "israel_standard_time" IndiaStandardTime = "india_standard_time" // Label keys vmTimezoneLabel = "vmtz" vmAutoStartStopWeekday = "vmautostartstopweekday" vmAutoStartStopWeekend = "vmautostartstopweekend" ) type Schedule struct { WeekendStart *int WeekendStop *int WeekdayStart *int WeekdayStop *int Timezone string } // Converts to a string[string] map to allow labels // to be applied to instances using GCP libraries func (s *Schedule) ToLabelMap() map[string]string { ret := make(map[string]string) ret[vmTimezoneLabel] = s.Timezone ret[vmAutoStartStopWeekday] = timeToScheduleLabel( s.WeekdayStart, s.WeekdayStop, ) ret[vmAutoStartStopWeekend] = timeToScheduleLabel( s.WeekendStart, s.WeekendStop, ) return ret } func timeToScheduleLabel(start *int, stop *int) string { return fmt.Sprintf("%v-%v", timeToString(start), timeToString(stop)) } func timeToString(value *int) string { if value == nil { return "false" } return fmt.Sprintf("%02d", *value) }