Skip to content

Commit

Permalink
Add toolregistry client as DeploymentService member (#5228)
Browse files Browse the repository at this point in the history
* Implement toolregistry client

Signed-off-by: Shinnosuke Sawada-Dazai <[email protected]>

* Add toolRegistry member at DeploymentService

Signed-off-by: Shinnosuke Sawada-Dazai <[email protected]>

---------

Signed-off-by: Shinnosuke Sawada-Dazai <[email protected]>
  • Loading branch information
Warashi authored Sep 26, 2024
1 parent 997339c commit e9e076d
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 4 deletions.
14 changes: 10 additions & 4 deletions pkg/app/pipedv1/plugin/kubernetes/deployment/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,20 +25,26 @@ import (
"google.golang.org/grpc"
)

type toolRegistry interface {
InstallTool(ctx context.Context, name, version string) (path string, err error)
}

type DeploymentService struct {
deployment.UnimplementedDeploymentServiceServer

RegexPool *regexpool.Pool
Logger *zap.Logger
RegexPool *regexpool.Pool
Logger *zap.Logger
ToolRegistry toolRegistry
}

// NewDeploymentService creates a new planService.
func NewDeploymentService(
logger *zap.Logger,
) *DeploymentService {
return &DeploymentService{
RegexPool: regexpool.DefaultPool(),
Logger: logger.Named("planner"),
RegexPool: regexpool.DefaultPool(),
Logger: logger.Named("planner"),
ToolRegistry: nil, // TODO: set the tool registry
}
}

Expand Down
38 changes: 38 additions & 0 deletions pkg/app/pipedv1/plugin/toolregistry/toolregistry.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// Copyright 2024 The PipeCD Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package toolregistry

import (
"context"

"github.com/pipe-cd/pipecd/pkg/app/pipedv1/cmd/piped/service"
)

type ToolRegistry struct {
client service.PluginServiceClient
}

func (r *ToolRegistry) InstallTool(ctx context.Context, name, version string) (path string, err error) {
res, err := r.client.InstallTool(ctx, &service.InstallToolRequest{
Name: name,
Version: version,
})

if err != nil {
return "", err
}

return res.GetInstalledPath(), nil
}

0 comments on commit e9e076d

Please sign in to comment.