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  }