github.com/hugh712/snapd@v0.0.0-20200910133618-1a99902bd583/overlord/state/timings.go (about) 1 // -*- Mode: Go; indent-tabs-mode: t -*- 2 3 /* 4 * Copyright (C) 2019-2020 Canonical Ltd 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 3 as 8 * published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * 18 */ 19 20 package state 21 22 import ( 23 "github.com/snapcore/snapd/timings" 24 ) 25 26 // TimingsForTask creates a new Timings tree for the given task. 27 // Returned Timings tree has "task-id", "change-id" and "task-kind" 28 // tags set automatically from the respective task. 29 func TimingsForTask(task *Task) *timings.Timings { 30 tags := map[string]string{ 31 "task-id": task.ID(), 32 "task-kind": task.Kind(), 33 "task-status": task.Status().String(), 34 } 35 if chg := task.Change(); chg != nil { 36 tags["change-id"] = chg.ID() 37 } 38 return timings.New(tags) 39 } 40 41 // TagTimingsWithChange sets the "change-id" tag on the Timings object. 42 func TagTimingsWithChange(t *timings.Timings, change *Change) { 43 t.AddTag("change-id", change.ID()) 44 }