github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/apiserver/facades/agent/leadership/interface.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package leadership 5 6 import ( 7 "context" 8 9 "gopkg.in/juju/names.v2" 10 11 "github.com/juju/juju/apiserver/params" 12 ) 13 14 // LeadershipService implements a variant of leadership.Claimer for consumption 15 // over the API. 16 type LeadershipService interface { 17 18 // ClaimLeadership makes a leadership claim with the given parameters. 19 ClaimLeadership(params params.ClaimLeadershipBulkParams) (params.ClaimLeadershipBulkResults, error) 20 21 // BlockUntilLeadershipReleased blocks the caller until leadership is 22 // released for the given service. 23 BlockUntilLeadershipReleased(ctx context.Context, ApplicationTag names.ApplicationTag) (params.ErrorResult, error) 24 }