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 }