// Life requests the life cycle of the given entity from the given // server-side API facade via the given caller. func Life(caller base.FacadeCaller, tag names.Tag) (params.Life, error) { var result params.LifeResults args := params.Entities{ Entities: []params.Entity{{Tag: tag.String()}}, } if err := caller.FacadeCall("Life", args, &result); err != nil { return "", err } if len(result.Results) != 1 { return "", errors.Errorf("expected 1 result, got %d", len(result.Results)) } if err := result.Results[0].Error; err != nil { return "", err } return result.Results[0].Life, nil }
// Watch starts a NotifyWatcher for the entity with the specified tag. func Watch(facade base.FacadeCaller, tag names.Tag) (watcher.NotifyWatcher, error) { var results params.NotifyWatchResults args := params.Entities{ Entities: []params.Entity{{Tag: tag.String()}}, } err := facade.FacadeCall("Watch", args, &results) if err != nil { return nil, err } if len(results.Results) != 1 { return nil, fmt.Errorf("expected 1 result, got %d", len(results.Results)) } result := results.Results[0] if result.Error != nil { return nil, result.Error } return watcher.NewNotifyWatcher(facade.RawAPICaller(), result), nil }