Skip to content

AzdClient: Add ProvisioningServiceClient accessor #7471

Description

@wbreza

Summary

Extend AzdClient in pkg/azdext/azd_client.go to include a ProvisioningServiceClient so extensions can open the provisioning bidirectional stream. Add a lazy-initialized client field and accessor method following the same pattern as ServiceTarget() and FrameworkService().

Parent Epic

Part of #7465 — Provisioning Providers in the AZD Extension Framework

Context

AzdClient is the extension-side gRPC client wrapper that provides lazy-initialized accessors for each service. The ProvisioningManager needs client.Provisioning() to open the bidirectional stream.

Pattern to Follow

// Existing pattern in azd_client.go:
func (c *AzdClient) ServiceTarget() ServiceTargetServiceClient {
    return c.serviceTargetClient  // lazy initialized
}

Detailed Requirements

  1. Add provisioningClient ProvisioningServiceClient field (or lazy equivalent)
  2. Add Provisioning() ProvisioningServiceClient accessor method
  3. Initialize the client lazily on first access using the shared gRPC connection
  4. Follow the exact same pattern as other client accessors

Acceptance Criteria

  • provisioningClient ProvisioningServiceClient field on AzdClient
  • Provisioning() ProvisioningServiceClient accessor method
  • Client created lazily on first access
  • Uses the same gRPC connection as other service clients

Dependencies

Files

  • Modify: pkg/azdext/azd_client.go

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions