github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/apiserver/facades/client/credentialmanager/client.go (about)

     1  // Copyright 2018 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package credentialmanager
     5  
     6  import (
     7  	"github.com/juju/loggo"
     8  
     9  	"github.com/juju/juju/apiserver/common"
    10  	"github.com/juju/juju/apiserver/common/credentialcommon"
    11  	"github.com/juju/juju/apiserver/facade"
    12  	"github.com/juju/juju/apiserver/params"
    13  )
    14  
    15  var logger = loggo.GetLogger("juju.apiserver.credentialmanager")
    16  
    17  // CredentialManager defines the methods on credentialmanager API endpoint.
    18  type CredentialManager interface {
    19  	InvalidateModelCredential(params.InvalidateCredentialArg) (params.ErrorResult, error)
    20  }
    21  
    22  type CredentialManagerAPI struct {
    23  	*credentialcommon.CredentialManagerAPI
    24  
    25  	resources facade.Resources
    26  }
    27  
    28  var _ CredentialManager = (*CredentialManagerAPI)(nil)
    29  
    30  // NewCredentialManagerAPI creates a new CredentialManager API endpoint on server-side.
    31  func NewCredentialManagerAPI(ctx facade.Context) (*CredentialManagerAPI, error) {
    32  	return internalNewCredentialManagerAPI(newStateShim(ctx.State()), ctx.Resources(), ctx.Auth())
    33  }
    34  
    35  func internalNewCredentialManagerAPI(backend credentialcommon.StateBackend, resources facade.Resources, authorizer facade.Authorizer) (*CredentialManagerAPI, error) {
    36  	if authorizer.GetAuthTag() == nil || !authorizer.AuthClient() {
    37  		return nil, common.ErrPerm
    38  	}
    39  
    40  	return &CredentialManagerAPI{
    41  		resources:            resources,
    42  		CredentialManagerAPI: credentialcommon.NewCredentialManagerAPI(backend),
    43  	}, nil
    44  }