github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/state/apiserver/client/status.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package client 5 6 import ( 7 "launchpad.net/juju-core/juju" 8 "launchpad.net/juju-core/state/api" 9 "launchpad.net/juju-core/state/api/params" 10 "launchpad.net/juju-core/state/statecmd" 11 ) 12 13 // FullStatus gives the information needed for juju status over the api 14 func (c *Client) FullStatus(args params.StatusParams) (api.Status, error) { 15 conn, err := juju.NewConnFromState(c.api.state) 16 if err != nil { 17 return api.Status{}, err 18 } 19 20 status, err := statecmd.Status(conn, args.Patterns) 21 return *status, err 22 } 23 24 // Status is a stub version of FullStatus that was introduced in 1.16 25 func (c *Client) Status() (api.LegacyStatus, error) { 26 var legacyStatus api.LegacyStatus 27 status, err := c.FullStatus(params.StatusParams{}) 28 if err != nil { 29 return legacyStatus, err 30 } 31 32 legacyStatus.Machines = make(map[string]api.LegacyMachineStatus) 33 for machineName, machineStatus := range status.Machines { 34 legacyStatus.Machines[machineName] = api.LegacyMachineStatus{ 35 InstanceId: string(machineStatus.InstanceId), 36 } 37 } 38 return legacyStatus, nil 39 }