github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/apiserver/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  	"github.com/juju/names"
     8  
     9  	"github.com/juju/juju/apiserver/params"
    10  )
    11  
    12  type LeadershipService interface {
    13  	// ClaimLeadership makes a leadership claim with the given parameters.
    14  	ClaimLeadership(params params.ClaimLeadershipBulkParams) (params.ClaimLeadershipBulkResults, error)
    15  	// ReleaseLeadership makes a call to release leadership for all the
    16  	// parameters passed in.
    17  	ReleaseLeadership(params params.ReleaseLeadershipBulkParams) (params.ReleaseLeadershipBulkResults, error)
    18  	// BlockUntilLeadershipReleased blocks the caller until leadership is
    19  	// released for the given service.
    20  	BlockUntilLeadershipReleased(serviceTag names.ServiceTag) (params.ErrorResult, error)
    21  }