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  }