Skip to content

Wiring: Register ProvisioningService in IoC and gRPC server #7477

@wbreza

Description

@wbreza

Summary

Register the new ProvisioningService in the IoC container (cmd/container.go) and register it on the gRPC server (internal/grpcserver/server.go). This wires the new service into the azd runtime so extensions can connect to it.

Parent Epic

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

Context

IoC Registration Pattern

All gRPC services are registered in cmd/container.go:

container.MustRegisterSingleton(grpcserver.NewServiceTargetService)
container.MustRegisterSingleton(grpcserver.NewFrameworkService)

gRPC Server Registration Pattern

In internal/grpcserver/server.go Start():

azdext.RegisterServiceTargetServiceServer(s.grpcServer, s.serviceTargetService)
azdext.RegisterFrameworkServiceServer(s.grpcServer, s.frameworkService)

Detailed Requirements

cmd/container.go

container.MustRegisterSingleton(grpcserver.NewProvisioningService)

internal/grpcserver/server.go

  1. Add provisioningService *ProvisioningService field to Server struct
  2. Add parameter to NewServer() constructor
  3. Register in Start():
azdext.RegisterProvisioningServiceServer(s.grpcServer, s.provisioningService)

Acceptance Criteria

  • container.MustRegisterSingleton(grpcserver.NewProvisioningService) in cmd/container.go
  • provisioningService field added to Server struct
  • NewServer() accepts ProvisioningService parameter
  • RegisterProvisioningServiceServer() called in Start()
  • Service is available when extensions connect
  • No circular dependency issues

Dependencies

Files

  • Modify: cmd/container.go
  • Modify: internal/grpcserver/server.go

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions