~juju-qa/ubuntu/xenial/juju/2.0-rc2

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/apiserver/client/status.go

  • Committer: Nicholas Skaggs
  • Date: 2016-09-30 14:39:30 UTC
  • mfrom: (1.8.1)
  • Revision ID: nicholas.skaggs@canonical.com-20160930143930-vwwhrefh6ftckccy
import upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
288
288
                return info, errors.Annotate(err, "cannot get model")
289
289
        }
290
290
        info.Name = m.Name()
291
 
        info.Cloud = m.Cloud()
 
291
        info.CloudTag = names.NewCloudTag(m.Cloud()).String()
292
292
        info.CloudRegion = m.CloudRegion()
293
293
 
294
294
        cfg, err := m.Config()
609
609
}
610
610
 
611
611
func (context *statusContext) processApplication(service *state.Application) params.ApplicationStatus {
612
 
        serviceCharmURL, _ := service.CharmURL()
 
612
        serviceCharm, _, err := service.Charm()
 
613
        if err != nil {
 
614
                return params.ApplicationStatus{Err: common.ServerError(err)}
 
615
        }
 
616
 
613
617
        var processedStatus = params.ApplicationStatus{
614
 
                Charm:   serviceCharmURL.String(),
 
618
                Charm:   serviceCharm.URL().String(),
615
619
                Series:  service.Series(),
616
620
                Exposed: service.IsExposed(),
617
621
                Life:    processLife(service),
618
622
        }
619
623
 
620
 
        if latestCharm, ok := context.latestCharms[*serviceCharmURL.WithRevision(-1)]; ok && latestCharm != nil {
621
 
                if latestCharm.Revision() > serviceCharmURL.Revision {
 
624
        if latestCharm, ok := context.latestCharms[*serviceCharm.URL().WithRevision(-1)]; ok && latestCharm != nil {
 
625
                if latestCharm.Revision() > serviceCharm.URL().Revision {
622
626
                        processedStatus.CanUpgradeTo = latestCharm.String()
623
627
                }
624
628
        }
625
629
 
626
 
        var err error
627
630
        processedStatus.Relations, processedStatus.SubordinateTo, err = context.processServiceRelations(service)
628
631
        if err != nil {
629
 
                processedStatus.Err = err
 
632
                processedStatus.Err = common.ServerError(err)
630
633
                return processedStatus
631
634
        }
632
635
        units := context.units[service.Name()]
633
636
        if service.IsPrincipal() {
634
 
                processedStatus.Units = context.processUnits(units, serviceCharmURL.String())
 
637
                processedStatus.Units = context.processUnits(units, serviceCharm.URL().String())
635
638
        }
636
639
        applicationStatus, err := service.Status()
637
640
        if err != nil {
638
 
                processedStatus.Err = err
 
641
                processedStatus.Err = common.ServerError(err)
639
642
                return processedStatus
640
643
        }
641
644
        processedStatus.Status.Status = applicationStatus.Status.String()
643
646
        processedStatus.Status.Data = applicationStatus.Data
644
647
        processedStatus.Status.Since = applicationStatus.Since
645
648
 
646
 
        processedStatus.MeterStatuses = context.processUnitMeterStatuses(units)
 
649
        metrics := serviceCharm.Metrics()
 
650
        planRequired := metrics != nil && metrics.Plan != nil && metrics.Plan.Required
 
651
        if planRequired || len(service.MetricCredentials()) > 0 {
 
652
                processedStatus.MeterStatuses = context.processUnitMeterStatuses(units)
 
653
        }
647
654
 
648
655
        versions := make([]status.StatusInfo, 0, len(units))
649
656
        for _, unit := range units {
651
658
                        status.StatusHistoryFilter{Size: 1},
652
659
                )
653
660
                if err != nil {
654
 
                        processedStatus.Err = err
 
661
                        processedStatus.Err = common.ServerError(err)
655
662
                        return processedStatus
656
663
                }
657
664
                // Even though we fully expect there to be historical values there,
797
804
// processMachine retrieves version and status information for the given machine.
798
805
// It also returns deprecated legacy status information.
799
806
func processMachine(machine *state.Machine) (out params.DetailedStatus) {
800
 
        statusInfo, err := machine.Status()
 
807
        statusInfo, err := common.MachineStatus(machine)
801
808
        populateStatusFromStatusInfoAndErr(&out, statusInfo, err)
802
809
 
803
810
        out.Life = processLife(machine)