github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/apiserver/meterstatus/meterstatus.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 // Package meterstatus provides functions for getting meterstatus information 5 // about units. 6 package meterstatus 7 8 import ( 9 "github.com/juju/errors" 10 11 "github.com/juju/juju/state" 12 ) 13 14 // MeterStatusWrapper takes a MeterStatus and converts it into an 'api friendly' form where 15 // Not Set and Not Available (which are important distinctions in state) are converted 16 // into Amber and Red respecitvely in the api. 17 func MeterStatusWrapper(getter func() (state.MeterStatus, error)) (state.MeterStatus, error) { 18 status, err := getter() 19 if err != nil { 20 return state.MeterStatus{}, errors.Trace(err) 21 } 22 if status.Code == state.MeterNotSet { 23 return state.MeterStatus{state.MeterAmber, "not set"}, nil 24 } 25 if status.Code == state.MeterNotAvailable { 26 27 return state.MeterStatus{state.MeterRed, "not available"}, nil 28 } 29 return status, nil 30 }