Documentation
¶
Index ¶
- Constants
- func New(t testing.TB, coderURL *url.URL, agentToken string, ...) agent.Agent
- func WithContextConfigFromEnv() func(*agent.Options)
- type Client
- func (*Client) AsRequestOption() codersdk.RequestOption
- func (c *Client) Close()
- func (c *Client) ConnectRPC29(ctx context.Context) (agentproto.DRPCAgentClient29, proto.DRPCTailnetClient28, error)
- func (c *Client) ConnectRPC29WithRole(ctx context.Context, _ string) (agentproto.DRPCAgentClient29, proto.DRPCTailnetClient28, error)
- func (c *Client) ConnectRPC210(ctx context.Context) (agentproto.DRPCAgentClient210, proto.DRPCTailnetClient28, error)
- func (c *Client) ConnectRPC210WithRole(ctx context.Context, _ string) (agentproto.DRPCAgentClient210, proto.DRPCTailnetClient28, error)
- func (c *Client) ContextStatePushes() []*agentproto.PushContextStateRequest
- func (c *Client) GetConnectionReports() []*agentproto.ReportConnectionRequest
- func (c *Client) GetLifecycleStates() []codersdk.WorkspaceAgentLifecycle
- func (c *Client) GetMetadata() map[string]agentsdk.Metadata
- func (c *Client) GetNumRefreshTokenCalls() int
- func (*Client) GetSessionToken() string
- func (c *Client) GetStartup() <-chan *agentproto.Startup
- func (c *Client) GetStartupLogs() []agentsdk.Log
- func (c *Client) GetSubAgentApps(id uuid.UUID) ([]*agentproto.CreateSubAgentRequest_App, error)
- func (c *Client) GetSubAgentDirectory(id uuid.UUID) (string, error)
- func (c *Client) GetSubAgentDisplayApps(id uuid.UUID) ([]agentproto.CreateSubAgentRequest_DisplayApp, error)
- func (c *Client) GetSubAgents() []*agentproto.SubAgent
- func (c *Client) PushDERPMapUpdate(update *tailcfg.DERPMap) error
- func (c *Client) RefreshToken(context.Context) error
- func (*Client) RewriteDERPMap(*tailcfg.DERPMap)
- func (c *Client) SetAnnouncementBannersFunc(f func() ([]codersdk.BannerConfig, error))
- func (*Client) SetDialOption(*websocket.DialOptions)
- func (c *Client) SetLogsChannel(ch chan<- *agentproto.BatchCreateLogsRequest)
- func (c *Client) SetUpdateStatsOverride(...)
- type FakeAgentAPI
- func (f *FakeAgentAPI) AppHealthCh() <-chan *agentproto.BatchUpdateAppHealthRequest
- func (f *FakeAgentAPI) BatchCreateLogs(ctx context.Context, req *agentproto.BatchCreateLogsRequest) (*agentproto.BatchCreateLogsResponse, error)
- func (f *FakeAgentAPI) BatchUpdateAppHealths(ctx context.Context, req *agentproto.BatchUpdateAppHealthRequest) (*agentproto.BatchUpdateAppHealthResponse, error)
- func (f *FakeAgentAPI) BatchUpdateMetadata(ctx context.Context, req *agentproto.BatchUpdateMetadataRequest) (*agentproto.BatchUpdateMetadataResponse, error)
- func (f *FakeAgentAPI) ContextStatePushes() []*agentproto.PushContextStateRequest
- func (f *FakeAgentAPI) CreateSubAgent(ctx context.Context, req *agentproto.CreateSubAgentRequest) (*agentproto.CreateSubAgentResponse, error)
- func (f *FakeAgentAPI) DeleteSubAgent(ctx context.Context, req *agentproto.DeleteSubAgentRequest) (*agentproto.DeleteSubAgentResponse, error)
- func (f *FakeAgentAPI) GetAnnouncementBanners(context.Context, *agentproto.GetAnnouncementBannersRequest) (*agentproto.GetAnnouncementBannersResponse, error)
- func (f *FakeAgentAPI) GetConnectionReports() []*agentproto.ReportConnectionRequest
- func (f *FakeAgentAPI) GetLifecycleStates() []codersdk.WorkspaceAgentLifecycle
- func (f *FakeAgentAPI) GetManifest(context.Context, *agentproto.GetManifestRequest) (*agentproto.Manifest, error)
- func (f *FakeAgentAPI) GetMetadata() map[string]agentsdk.Metadata
- func (f *FakeAgentAPI) GetResourcesMonitoringConfiguration(_ context.Context, _ *agentproto.GetResourcesMonitoringConfigurationRequest) (*agentproto.GetResourcesMonitoringConfigurationResponse, error)
- func (*FakeAgentAPI) GetServiceBanner(context.Context, *agentproto.GetServiceBannerRequest) (*agentproto.ServiceBanner, error)
- func (f *FakeAgentAPI) GetSubAgentApps(id uuid.UUID) ([]*agentproto.CreateSubAgentRequest_App, error)
- func (f *FakeAgentAPI) GetSubAgentDirectory(id uuid.UUID) (string, error)
- func (f *FakeAgentAPI) GetSubAgentDisplayApps(id uuid.UUID) ([]agentproto.CreateSubAgentRequest_DisplayApp, error)
- func (f *FakeAgentAPI) GetSubAgents() []*agentproto.SubAgent
- func (f *FakeAgentAPI) GetTimings() []*agentproto.Timing
- func (f *FakeAgentAPI) ListSubAgents(ctx context.Context, req *agentproto.ListSubAgentsRequest) (*agentproto.ListSubAgentsResponse, error)
- func (f *FakeAgentAPI) PushContextState(_ context.Context, req *agentproto.PushContextStateRequest) (*agentproto.PushContextStateResponse, error)
- func (f *FakeAgentAPI) PushResourcesMonitoringUsage(_ context.Context, req *agentproto.PushResourcesMonitoringUsageRequest) (*agentproto.PushResourcesMonitoringUsageResponse, error)
- func (*FakeAgentAPI) ReportBoundaryLogs(_ context.Context, _ *agentproto.ReportBoundaryLogsRequest) (*agentproto.ReportBoundaryLogsResponse, error)
- func (f *FakeAgentAPI) ReportConnection(_ context.Context, req *agentproto.ReportConnectionRequest) (*emptypb.Empty, error)
- func (f *FakeAgentAPI) ScriptCompleted(_ context.Context, req *agentproto.WorkspaceAgentScriptCompletedRequest) (*agentproto.WorkspaceAgentScriptCompletedResponse, error)
- func (f *FakeAgentAPI) SetAnnouncementBannersFunc(fn func() ([]codersdk.BannerConfig, error))
- func (f *FakeAgentAPI) SetLogsChannel(ch chan<- *agentproto.BatchCreateLogsRequest)
- func (f *FakeAgentAPI) SetUpdateStatsOverride(...)
- func (*FakeAgentAPI) UpdateAppStatus(context.Context, *agentproto.UpdateAppStatusRequest) (*agentproto.UpdateAppStatusResponse, error)
- func (f *FakeAgentAPI) UpdateLifecycle(_ context.Context, req *agentproto.UpdateLifecycleRequest) (*agentproto.Lifecycle, error)
- func (f *FakeAgentAPI) UpdateStartup(ctx context.Context, req *agentproto.UpdateStartupRequest) (*agentproto.Startup, error)
- func (f *FakeAgentAPI) UpdateStats(ctx context.Context, req *agentproto.UpdateStatsRequest) (*agentproto.UpdateStatsResponse, error)
Constants ¶
const StatsInterval = 500 * time.Millisecond
StatsInterval is the report interval returned by FakeAgentAPI.UpdateStats.
Variables ¶
This section is empty.
Functions ¶
func New ¶ added in v2.2.0
func New(t testing.TB, coderURL *url.URL, agentToken string, opts ...func(*agent.Options)) agent.Agent
New starts a new agent for use in tests. The agent will use the provided coder URL and session token. The options passed to agent.New() can be modified by passing an optional variadic func(*agent.Options). Returns the agent. Closing the agent is handled by the test cleanup. It is the responsibility of the caller to call coderdtest.AwaitWorkspaceAgents to ensure agent is connected.
func WithContextConfigFromEnv ¶ added in v2.33.0
WithContextConfigFromEnv returns an agent option that populates ContextConfig from the current environment.
Types ¶
type Client ¶
type Client struct {
LastWorkspaceAgent func()
// contains filtered or unexported fields
}
func NewClientWithSecrets ¶ added in v2.33.0
func NewClientWithSecrets(t testing.TB, logger slog.Logger, agentID uuid.UUID, manifest agentsdk.Manifest, secrets []agentsdk.WorkspaceSecret, statsChan chan *agentproto.Stats, coordinator tailnet.Coordinator, ) *Client
NewClientWithSecrets is like NewClient but also injects user secrets into the agent's proto manifest. Separate from NewClient because agentsdk.Manifest intentionally does not carry secrets; see the Manifest doc comment in codersdk/agentsdk.
func (*Client) AsRequestOption ¶ added in v2.27.0
func (*Client) AsRequestOption() codersdk.RequestOption
func (*Client) ConnectRPC29 ¶ added in v2.34.0
func (c *Client) ConnectRPC29(ctx context.Context) ( agentproto.DRPCAgentClient29, proto.DRPCTailnetClient28, error, )
func (*Client) ConnectRPC29WithRole ¶ added in v2.34.0
func (c *Client) ConnectRPC29WithRole(ctx context.Context, _ string) ( agentproto.DRPCAgentClient29, proto.DRPCTailnetClient28, error, )
func (*Client) ConnectRPC210 ¶ added in v2.35.0
func (c *Client) ConnectRPC210(ctx context.Context) ( agentproto.DRPCAgentClient210, proto.DRPCTailnetClient28, error, )
func (*Client) ConnectRPC210WithRole ¶ added in v2.35.0
func (c *Client) ConnectRPC210WithRole(ctx context.Context, _ string) ( agentproto.DRPCAgentClient210, proto.DRPCTailnetClient28, error, )
func (*Client) ContextStatePushes ¶ added in v2.35.0
func (c *Client) ContextStatePushes() []*agentproto.PushContextStateRequest
ContextStatePushes returns every PushContextState request the agent has issued to the fake server so far.
func (*Client) GetConnectionReports ¶ added in v2.21.0
func (c *Client) GetConnectionReports() []*agentproto.ReportConnectionRequest
func (*Client) GetLifecycleStates ¶
func (c *Client) GetLifecycleStates() []codersdk.WorkspaceAgentLifecycle
func (*Client) GetNumRefreshTokenCalls ¶ added in v2.27.0
func (*Client) GetSessionToken ¶ added in v2.27.0
func (*Client) GetStartup ¶
func (c *Client) GetStartup() <-chan *agentproto.Startup
func (*Client) GetStartupLogs ¶
func (*Client) GetSubAgentApps ¶ added in v2.24.0
func (c *Client) GetSubAgentApps(id uuid.UUID) ([]*agentproto.CreateSubAgentRequest_App, error)
func (*Client) GetSubAgentDirectory ¶ added in v2.24.0
func (*Client) GetSubAgentDisplayApps ¶ added in v2.24.0
func (c *Client) GetSubAgentDisplayApps(id uuid.UUID) ([]agentproto.CreateSubAgentRequest_DisplayApp, error)
func (*Client) GetSubAgents ¶ added in v2.24.0
func (c *Client) GetSubAgents() []*agentproto.SubAgent
func (*Client) PushDERPMapUpdate ¶
func (*Client) RewriteDERPMap ¶ added in v2.8.0
func (*Client) SetAnnouncementBannersFunc ¶ added in v2.12.0
func (c *Client) SetAnnouncementBannersFunc(f func() ([]codersdk.BannerConfig, error))
func (*Client) SetDialOption ¶ added in v2.27.0
func (*Client) SetDialOption(*websocket.DialOptions)
func (*Client) SetLogsChannel ¶ added in v2.9.0
func (c *Client) SetLogsChannel(ch chan<- *agentproto.BatchCreateLogsRequest)
func (*Client) SetUpdateStatsOverride ¶ added in v2.35.0
func (c *Client) SetUpdateStatsOverride(fn func( ctx context.Context, req *agentproto.UpdateStatsRequest, next func(context.Context, *agentproto.UpdateStatsRequest) (*agentproto.UpdateStatsResponse, error), ) (*agentproto.UpdateStatsResponse, error), )
SetUpdateStatsOverride sets a function that wraps UpdateStats calls. The provided function receives a next callback for the default behavior.
type FakeAgentAPI ¶ added in v2.8.0
func NewFakeAgentAPI ¶ added in v2.8.0
func NewFakeAgentAPI(t testing.TB, logger slog.Logger, manifest *agentproto.Manifest, statsCh chan *agentproto.Stats) *FakeAgentAPI
func (*FakeAgentAPI) AppHealthCh ¶ added in v2.9.0
func (f *FakeAgentAPI) AppHealthCh() <-chan *agentproto.BatchUpdateAppHealthRequest
func (*FakeAgentAPI) BatchCreateLogs ¶ added in v2.8.0
func (f *FakeAgentAPI) BatchCreateLogs(ctx context.Context, req *agentproto.BatchCreateLogsRequest) (*agentproto.BatchCreateLogsResponse, error)
func (*FakeAgentAPI) BatchUpdateAppHealths ¶ added in v2.8.0
func (f *FakeAgentAPI) BatchUpdateAppHealths(ctx context.Context, req *agentproto.BatchUpdateAppHealthRequest) (*agentproto.BatchUpdateAppHealthResponse, error)
func (*FakeAgentAPI) BatchUpdateMetadata ¶ added in v2.8.0
func (f *FakeAgentAPI) BatchUpdateMetadata(ctx context.Context, req *agentproto.BatchUpdateMetadataRequest) (*agentproto.BatchUpdateMetadataResponse, error)
func (*FakeAgentAPI) ContextStatePushes ¶ added in v2.35.0
func (f *FakeAgentAPI) ContextStatePushes() []*agentproto.PushContextStateRequest
ContextStatePushes returns a snapshot of every PushContextState request received so far.
func (*FakeAgentAPI) CreateSubAgent ¶ added in v2.24.0
func (f *FakeAgentAPI) CreateSubAgent(ctx context.Context, req *agentproto.CreateSubAgentRequest) (*agentproto.CreateSubAgentResponse, error)
func (*FakeAgentAPI) DeleteSubAgent ¶ added in v2.24.0
func (f *FakeAgentAPI) DeleteSubAgent(ctx context.Context, req *agentproto.DeleteSubAgentRequest) (*agentproto.DeleteSubAgentResponse, error)
func (*FakeAgentAPI) GetAnnouncementBanners ¶ added in v2.12.0
func (f *FakeAgentAPI) GetAnnouncementBanners(context.Context, *agentproto.GetAnnouncementBannersRequest) (*agentproto.GetAnnouncementBannersResponse, error)
func (*FakeAgentAPI) GetConnectionReports ¶ added in v2.21.0
func (f *FakeAgentAPI) GetConnectionReports() []*agentproto.ReportConnectionRequest
func (*FakeAgentAPI) GetLifecycleStates ¶ added in v2.9.0
func (f *FakeAgentAPI) GetLifecycleStates() []codersdk.WorkspaceAgentLifecycle
func (*FakeAgentAPI) GetManifest ¶ added in v2.8.0
func (f *FakeAgentAPI) GetManifest(context.Context, *agentproto.GetManifestRequest) (*agentproto.Manifest, error)
func (*FakeAgentAPI) GetMetadata ¶ added in v2.9.0
func (f *FakeAgentAPI) GetMetadata() map[string]agentsdk.Metadata
func (*FakeAgentAPI) GetResourcesMonitoringConfiguration ¶ added in v2.20.0
func (f *FakeAgentAPI) GetResourcesMonitoringConfiguration(_ context.Context, _ *agentproto.GetResourcesMonitoringConfigurationRequest) (*agentproto.GetResourcesMonitoringConfigurationResponse, error)
func (*FakeAgentAPI) GetServiceBanner ¶ added in v2.8.0
func (*FakeAgentAPI) GetServiceBanner(context.Context, *agentproto.GetServiceBannerRequest) (*agentproto.ServiceBanner, error)
func (*FakeAgentAPI) GetSubAgentApps ¶ added in v2.24.0
func (f *FakeAgentAPI) GetSubAgentApps(id uuid.UUID) ([]*agentproto.CreateSubAgentRequest_App, error)
func (*FakeAgentAPI) GetSubAgentDirectory ¶ added in v2.24.0
func (f *FakeAgentAPI) GetSubAgentDirectory(id uuid.UUID) (string, error)
func (*FakeAgentAPI) GetSubAgentDisplayApps ¶ added in v2.24.0
func (f *FakeAgentAPI) GetSubAgentDisplayApps(id uuid.UUID) ([]agentproto.CreateSubAgentRequest_DisplayApp, error)
func (*FakeAgentAPI) GetSubAgents ¶ added in v2.24.0
func (f *FakeAgentAPI) GetSubAgents() []*agentproto.SubAgent
func (*FakeAgentAPI) GetTimings ¶ added in v2.16.0
func (f *FakeAgentAPI) GetTimings() []*agentproto.Timing
func (*FakeAgentAPI) ListSubAgents ¶ added in v2.24.0
func (f *FakeAgentAPI) ListSubAgents(ctx context.Context, req *agentproto.ListSubAgentsRequest) (*agentproto.ListSubAgentsResponse, error)
func (*FakeAgentAPI) PushContextState ¶ added in v2.35.0
func (f *FakeAgentAPI) PushContextState(_ context.Context, req *agentproto.PushContextStateRequest) (*agentproto.PushContextStateResponse, error)
PushContextState records the incoming snapshot and returns Accepted=true. Tests that need to assert against the captured pushes can read them via ContextStatePushes.
func (*FakeAgentAPI) PushResourcesMonitoringUsage ¶ added in v2.20.0
func (f *FakeAgentAPI) PushResourcesMonitoringUsage(_ context.Context, req *agentproto.PushResourcesMonitoringUsageRequest) (*agentproto.PushResourcesMonitoringUsageResponse, error)
func (*FakeAgentAPI) ReportBoundaryLogs ¶ added in v2.30.0
func (*FakeAgentAPI) ReportBoundaryLogs(_ context.Context, _ *agentproto.ReportBoundaryLogsRequest) (*agentproto.ReportBoundaryLogsResponse, error)
func (*FakeAgentAPI) ReportConnection ¶ added in v2.20.0
func (f *FakeAgentAPI) ReportConnection(_ context.Context, req *agentproto.ReportConnectionRequest) (*emptypb.Empty, error)
func (*FakeAgentAPI) ScriptCompleted ¶ added in v2.16.0
func (f *FakeAgentAPI) ScriptCompleted(_ context.Context, req *agentproto.WorkspaceAgentScriptCompletedRequest) (*agentproto.WorkspaceAgentScriptCompletedResponse, error)
func (*FakeAgentAPI) SetAnnouncementBannersFunc ¶ added in v2.12.0
func (f *FakeAgentAPI) SetAnnouncementBannersFunc(fn func() ([]codersdk.BannerConfig, error))
func (*FakeAgentAPI) SetLogsChannel ¶ added in v2.9.0
func (f *FakeAgentAPI) SetLogsChannel(ch chan<- *agentproto.BatchCreateLogsRequest)
func (*FakeAgentAPI) SetUpdateStatsOverride ¶ added in v2.35.0
func (f *FakeAgentAPI) SetUpdateStatsOverride(fn func( ctx context.Context, req *agentproto.UpdateStatsRequest, next func(context.Context, *agentproto.UpdateStatsRequest) (*agentproto.UpdateStatsResponse, error), ) (*agentproto.UpdateStatsResponse, error), )
func (*FakeAgentAPI) UpdateAppStatus ¶ added in v2.31.1
func (*FakeAgentAPI) UpdateAppStatus(context.Context, *agentproto.UpdateAppStatusRequest) (*agentproto.UpdateAppStatusResponse, error)
func (*FakeAgentAPI) UpdateLifecycle ¶ added in v2.8.0
func (f *FakeAgentAPI) UpdateLifecycle(_ context.Context, req *agentproto.UpdateLifecycleRequest) (*agentproto.Lifecycle, error)
func (*FakeAgentAPI) UpdateStartup ¶ added in v2.8.0
func (f *FakeAgentAPI) UpdateStartup(ctx context.Context, req *agentproto.UpdateStartupRequest) (*agentproto.Startup, error)
func (*FakeAgentAPI) UpdateStats ¶ added in v2.8.0
func (f *FakeAgentAPI) UpdateStats(ctx context.Context, req *agentproto.UpdateStatsRequest) (*agentproto.UpdateStatsResponse, error)