func (context *statusContext) processService(service *state.Service) (status api.ServiceStatus) { serviceCharmURL, _ := service.CharmURL() status.Charm = serviceCharmURL.String() status.Exposed = service.IsExposed() status.Life = processLife(service) latestCharm, ok := context.latestCharms[*serviceCharmURL.WithRevision(-1)] if ok && latestCharm != serviceCharmURL.String() { status.CanUpgradeTo = latestCharm } var err error status.Relations, status.SubordinateTo, err = context.processRelations(service) if err != nil { status.Err = err return } includeNetworks, excludeNetworks, err := service.Networks() if err == nil { status.Networks = api.NetworksSpecification{ Enabled: includeNetworks, Disabled: excludeNetworks, } } if service.IsPrincipal() { status.Units = context.processUnits(context.units[service.Name()], serviceCharmURL.String()) } return status }
func (s *DeployLocalSuite) assertCharm(c *gc.C, service *state.Service, expect *charm.URL) { curl, force := service.CharmURL() c.Assert(curl, gc.DeepEquals, expect) c.Assert(force, gc.Equals, false) }