github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/apiserver/common/credentialcommon/cloudcredential.go (about) 1 // Copyright 2018 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package credentialcommon 5 6 import ( 7 "github.com/juju/juju/apiserver/common" 8 "github.com/juju/juju/apiserver/params" 9 ) 10 11 // StateBackend exposes State methods needed by credential manager. 12 type StateBackend interface { 13 InvalidateModelCredential(reason string) error 14 } 15 16 type CredentialManagerAPI struct { 17 backend StateBackend 18 } 19 20 // NewCredentialManagerAPI creates new model credential manager api endpoint. 21 func NewCredentialManagerAPI(backend StateBackend) *CredentialManagerAPI { 22 return &CredentialManagerAPI{backend: backend} 23 } 24 25 // InvalidateModelCredential marks the cloud credential for this model as invalid. 26 func (api *CredentialManagerAPI) InvalidateModelCredential(args params.InvalidateCredentialArg) (params.ErrorResult, error) { 27 err := api.backend.InvalidateModelCredential(args.Reason) 28 if err != nil { 29 return params.ErrorResult{Error: common.ServerError(err)}, nil 30 } 31 return params.ErrorResult{}, nil 32 }