Documentation
¶
Index ¶
- Variables
- type BaseController
- func (b *BaseController) DatabaseClient() database.Client
- func (b *BaseController) DeploymentProcessor() deployment.DeploymentProcessor
- func (b *BaseController) KubeClient() runtimeclient.Client
- func (b *BaseController) ResourceType() string
- func (b *BaseController) UcpClient() *v20231001preview.ClientFactory
- type Controller
- type Options
- type Request
- type Result
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultAsyncOperationTimeout is the default timeout duration of async operation. DefaultAsyncOperationTimeout = time.Duration(120) * time.Second )
Functions ¶
This section is empty.
Types ¶
type BaseController ¶
type BaseController struct {
// contains filtered or unexported fields
}
BaseController is the base struct of async operation controller.
func NewBaseAsyncController ¶
func NewBaseAsyncController(options Options) BaseController
NewBaseAsyncController creates a new BaseController instance with the given Options for Async Operation.
func (*BaseController) DatabaseClient ¶ added in v0.42.0
func (b *BaseController) DatabaseClient() database.Client
DatabaseClient gets database client for this controller.
func (*BaseController) DeploymentProcessor ¶
func (b *BaseController) DeploymentProcessor() deployment.DeploymentProcessor
DeploymentProcessor gets the core rp deployment processor for this controller.
func (*BaseController) KubeClient ¶
func (b *BaseController) KubeClient() runtimeclient.Client
KubeClient gets Kubernetes client for this controller.
func (*BaseController) ResourceType ¶
func (b *BaseController) ResourceType() string
ResourceType gets the resource type for this controller.
func (*BaseController) UcpClient ¶ added in v0.47.0
func (b *BaseController) UcpClient() *v20231001preview.ClientFactory
UcpClient gets ucp client for this controller.
type Controller ¶
type Controller interface {
// Run runs async request operation.
Run(ctx context.Context, request *Request) (Result, error)
// DatabaseClient gets the database client for resource type.
DatabaseClient() database.Client
}
Controller is an interface to implement async operation controller.
type Options ¶
type Options struct {
// DatabaseClient is the database client.
DatabaseClient database.Client
// KubeClient is the Kubernetes controller runtime client.
KubeClient runtimeclient.Client
// ResourceType is the string that represents the resource type.
ResourceType string
// GetDeploymentProcessor is the factory function to create core rp DeploymentProcessor instance.
GetDeploymentProcessor func() deployment.DeploymentProcessor
// UcpClient is the UCP client factory.
UcpClient *v20231001preview.ClientFactory
}
Options represents controller options.
type Request ¶
type Request struct {
// APIVersion represents the api-version of operation request.
APIVersion string `json:"apiVersion"`
// OperationID represents the unique id of the async operation.
OperationID uuid.UUID `json:"asyncOperationID"`
// OperationType represents the type of operation.
OperationType string `json:"operationType"`
// ResourceID represents the id of the resource which requires async operation.
ResourceID string `json:"resourceID"`
// CorrelationID represents the correlation ID of async operation.
CorrelationID string `json:"correlationID,omitempty"`
// TraceparentID represents W3C trace parent ID of async operation.
TraceparentID string `json:"traceparent,omitempty"`
// AcceptLanguage represents the locale of operation request.
AcceptLanguage string `json:"language,omitempty"`
// HomeTenantID represents the home tenant id of caller.
HomeTenantID string `json:"homeTenantID,omitempty"`
// ClientObjectID represents the client object id of caller.
ClientObjectID string `json:"clientObjectID,omitempty"`
// OperationTimeout represents the timeout duration of async operation.
OperationTimeout *time.Duration `json:"asyncOperationTimeout"`
}
Request is a message used for async request queue message broker.
func (*Request) ARMRequestContext ¶
func (r *Request) ARMRequestContext() (*v1.ARMRequestContext, error)
ARMRequestContext creates v1.ARMRequestContext object from async operation request. It returns error if the given resource id is invalid.
type Result ¶
type Result struct {
// Requeue tells the Controller to requeue the reconcile key. Defaults to false.
Requeue bool
// Error represents the error when status is Cancelled or Failed.
Error *v1.ErrorDetails
// contains filtered or unexported fields
}
Result is the response of async operation controller.
func NewCanceledResult ¶
NewCanceledResult creates a new Result object with a canceled status and the given message.
func NewFailedResult ¶
func NewFailedResult(err v1.ErrorDetails) Result
NewFailedResult creates a new Result object with the given error details and sets the failed flag to true.
func (*Result) ProvisioningState ¶
func (r *Result) ProvisioningState() v1.ProvisioningState
ProvisioningState returns the provisioning state of the request object, which is either v1.ProvisioningStateSucceeded or the value of the state field if it is not nil.
func (*Result) SetCanceled ¶
SetCanceled sets the Result's Requeue field to false, sets the ProvisioningState to Canceled and sets the Error field to an ErrorDetails object with the given message.
func (*Result) SetFailed ¶
func (r *Result) SetFailed(err v1.ErrorDetails, requeue bool)
SetFailed sets the error response with Failed status.
func (*Result) SetProvisioningState ¶
func (r *Result) SetProvisioningState(s v1.ProvisioningState)
SetProvisioningState sets the state of a Result object to the given ProvisioningState.