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  }